mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-02 03:55:55 +00:00
feat(i18n): add Russian (ru-RU) language support
This commit is contained in:
@@ -6,6 +6,7 @@ export interface I18nObject {
|
|||||||
th_TH?: string;
|
th_TH?: string;
|
||||||
vi_VN?: string;
|
vi_VN?: string;
|
||||||
es_ES?: string;
|
es_ES?: string;
|
||||||
|
ru_RU?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ComponentManifest {
|
export interface ComponentManifest {
|
||||||
|
|||||||
@@ -46,6 +46,9 @@ export function LanguageSelector({
|
|||||||
} else if (i18n.language === 'es' || i18n.language === 'es-ES') {
|
} else if (i18n.language === 'es' || i18n.language === 'es-ES') {
|
||||||
setCurrentLanguage('es-ES');
|
setCurrentLanguage('es-ES');
|
||||||
localStorage.setItem('langbot_language', 'es-ES');
|
localStorage.setItem('langbot_language', 'es-ES');
|
||||||
|
} else if (i18n.language === 'ru' || i18n.language === 'ru-RU') {
|
||||||
|
setCurrentLanguage('ru-RU');
|
||||||
|
localStorage.setItem('langbot_language', 'ru-RU');
|
||||||
} else {
|
} else {
|
||||||
setCurrentLanguage('en-US');
|
setCurrentLanguage('en-US');
|
||||||
localStorage.setItem('langbot_language', 'en-US');
|
localStorage.setItem('langbot_language', 'en-US');
|
||||||
@@ -74,6 +77,11 @@ export function LanguageSelector({
|
|||||||
browserLanguage.startsWith('es-')
|
browserLanguage.startsWith('es-')
|
||||||
) {
|
) {
|
||||||
detectedLanguage = 'es-ES';
|
detectedLanguage = 'es-ES';
|
||||||
|
} else if (
|
||||||
|
browserLanguage === 'ru' ||
|
||||||
|
browserLanguage.startsWith('ru-')
|
||||||
|
) {
|
||||||
|
detectedLanguage = 'ru-RU';
|
||||||
} else {
|
} else {
|
||||||
detectedLanguage = 'en-US';
|
detectedLanguage = 'en-US';
|
||||||
}
|
}
|
||||||
@@ -111,6 +119,7 @@ export function LanguageSelector({
|
|||||||
<SelectItem value="th-TH">ภาษาไทย</SelectItem>
|
<SelectItem value="th-TH">ภาษาไทย</SelectItem>
|
||||||
<SelectItem value="vi-VN">Tiếng Việt</SelectItem>
|
<SelectItem value="vi-VN">Tiếng Việt</SelectItem>
|
||||||
<SelectItem value="es-ES">Español</SelectItem>
|
<SelectItem value="es-ES">Español</SelectItem>
|
||||||
|
<SelectItem value="ru-RU">Русский</SelectItem>
|
||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ export const extractI18nObject = (i18nObject: I18nObject): string => {
|
|||||||
if (language === 'th_TH' && i18nObject.th_TH) return i18nObject.th_TH;
|
if (language === 'th_TH' && i18nObject.th_TH) return i18nObject.th_TH;
|
||||||
if (language === 'vi_VN' && i18nObject.vi_VN) return i18nObject.vi_VN;
|
if (language === 'vi_VN' && i18nObject.vi_VN) return i18nObject.vi_VN;
|
||||||
if (language === 'es_ES' && i18nObject.es_ES) return i18nObject.es_ES;
|
if (language === 'es_ES' && i18nObject.es_ES) return i18nObject.es_ES;
|
||||||
|
if (language === 'ru_RU' && i18nObject.ru_RU) return i18nObject.ru_RU;
|
||||||
return (
|
return (
|
||||||
i18nObject.en_US ||
|
i18nObject.en_US ||
|
||||||
i18nObject.zh_Hans ||
|
i18nObject.zh_Hans ||
|
||||||
@@ -56,6 +57,8 @@ export const getAPILanguageCode = (): string => {
|
|||||||
if (language === 'vi-VN') return 'vi_VN';
|
if (language === 'vi-VN') return 'vi_VN';
|
||||||
// es-ES -> es_ES
|
// es-ES -> es_ES
|
||||||
if (language === 'es-ES') return 'es_ES';
|
if (language === 'es-ES') return 'es_ES';
|
||||||
|
// ru-RU -> ru_RU
|
||||||
|
if (language === 'ru-RU') return 'ru_RU';
|
||||||
// 默认返回 en
|
// 默认返回 en
|
||||||
return 'en';
|
return 'en';
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import jaJP from './locales/ja-JP';
|
|||||||
import thTH from './locales/th-TH';
|
import thTH from './locales/th-TH';
|
||||||
import viVN from './locales/vi-VN';
|
import viVN from './locales/vi-VN';
|
||||||
import esES from './locales/es-ES';
|
import esES from './locales/es-ES';
|
||||||
|
import ruRU from './locales/ru-RU';
|
||||||
|
|
||||||
i18n
|
i18n
|
||||||
.use(LanguageDetector)
|
.use(LanguageDetector)
|
||||||
@@ -36,6 +37,31 @@ i18n
|
|||||||
'es-ES': {
|
'es-ES': {
|
||||||
translation: esES,
|
translation: esES,
|
||||||
},
|
},
|
||||||
|
'ru-RU': {
|
||||||
|
translation: ruRU,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'zh-Hans': {
|
||||||
|
translation: zhHans,
|
||||||
|
},
|
||||||
|
'zh-Hant': {
|
||||||
|
translation: zhHant,
|
||||||
|
},
|
||||||
|
'ja-JP': {
|
||||||
|
translation: jaJP,
|
||||||
|
},
|
||||||
|
'th-TH': {
|
||||||
|
translation: thTH,
|
||||||
|
},
|
||||||
|
'vi-VN': {
|
||||||
|
translation: viVN,
|
||||||
|
},
|
||||||
|
'es-ES': {
|
||||||
|
translation: esES,
|
||||||
|
},
|
||||||
|
'ru-RU': {
|
||||||
|
translation: ruRU,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
fallbackLng: 'zh-Hans',
|
fallbackLng: 'zh-Hans',
|
||||||
debug: process.env.NODE_ENV === 'development',
|
debug: process.env.NODE_ENV === 'development',
|
||||||
|
|||||||
1272
web/src/i18n/locales/ru-RU.ts
Normal file
1272
web/src/i18n/locales/ru-RU.ts
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user