mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-07-17 18:06:06 +00:00
chore: add more language supports
This commit is contained in:
@@ -3,6 +3,9 @@ export interface I18nObject {
|
||||
zh_Hans: string;
|
||||
zh_Hant?: string;
|
||||
ja_JP?: string;
|
||||
th_TH?: string;
|
||||
vi_VN?: string;
|
||||
es_ES?: string;
|
||||
}
|
||||
|
||||
export interface ComponentManifest {
|
||||
|
||||
@@ -39,6 +39,15 @@ export function LanguageSelector({
|
||||
} else if (i18n.language === 'ja' || i18n.language === 'ja-JP') {
|
||||
setCurrentLanguage('ja-JP');
|
||||
localStorage.setItem('langbot_language', 'ja-JP');
|
||||
} else if (i18n.language === 'th' || i18n.language === 'th-TH') {
|
||||
setCurrentLanguage('th-TH');
|
||||
localStorage.setItem('langbot_language', 'th-TH');
|
||||
} else if (i18n.language === 'vi' || i18n.language === 'vi-VN') {
|
||||
setCurrentLanguage('vi-VN');
|
||||
localStorage.setItem('langbot_language', 'vi-VN');
|
||||
} else if (i18n.language === 'es' || i18n.language === 'es-ES') {
|
||||
setCurrentLanguage('es-ES');
|
||||
localStorage.setItem('langbot_language', 'es-ES');
|
||||
} else {
|
||||
setCurrentLanguage('en-US');
|
||||
localStorage.setItem('langbot_language', 'en-US');
|
||||
@@ -58,6 +67,15 @@ export function LanguageSelector({
|
||||
detectedLanguage = 'zh-Hant';
|
||||
} else if (browserLanguage === 'ja' || browserLanguage === 'ja-JP') {
|
||||
detectedLanguage = 'ja-JP';
|
||||
} else if (browserLanguage === 'th' || browserLanguage === 'th-TH') {
|
||||
detectedLanguage = 'th-TH';
|
||||
} else if (browserLanguage === 'vi' || browserLanguage === 'vi-VN') {
|
||||
detectedLanguage = 'vi-VN';
|
||||
} else if (
|
||||
browserLanguage === 'es' ||
|
||||
browserLanguage.startsWith('es-')
|
||||
) {
|
||||
detectedLanguage = 'es-ES';
|
||||
} else {
|
||||
detectedLanguage = 'en-US';
|
||||
}
|
||||
@@ -92,6 +110,9 @@ export function LanguageSelector({
|
||||
<SelectItem value="zh-Hant">繁體中文</SelectItem>
|
||||
<SelectItem value="en-US">English</SelectItem>
|
||||
<SelectItem value="ja-JP">日本語</SelectItem>
|
||||
<SelectItem value="th-TH">ภาษาไทย</SelectItem>
|
||||
<SelectItem value="vi-VN">Tiếng Việt</SelectItem>
|
||||
<SelectItem value="es-ES">Español</SelectItem>
|
||||
</SelectContent>
|
||||
</Select>
|
||||
);
|
||||
|
||||
@@ -27,6 +27,9 @@ export const extractI18nObject = (i18nObject: I18nObject): string => {
|
||||
if (language === 'zh_Hans' && i18nObject.zh_Hans) return i18nObject.zh_Hans;
|
||||
if (language === 'zh_Hant' && i18nObject.zh_Hant) return i18nObject.zh_Hant;
|
||||
if (language === 'ja_JP' && i18nObject.ja_JP) return i18nObject.ja_JP;
|
||||
if (language === 'th_TH' && i18nObject.th_TH) return i18nObject.th_TH;
|
||||
if (language === 'vi_VN' && i18nObject.vi_VN) return i18nObject.vi_VN;
|
||||
if (language === 'es_ES' && i18nObject.es_ES) return i18nObject.es_ES;
|
||||
return (
|
||||
i18nObject.en_US ||
|
||||
i18nObject.zh_Hans ||
|
||||
@@ -49,6 +52,12 @@ export const getAPILanguageCode = (): string => {
|
||||
if (language === 'en-US') return 'en';
|
||||
// ja-JP -> ja_JP
|
||||
if (language === 'ja-JP') return 'ja_JP';
|
||||
// th-TH -> th_TH
|
||||
if (language === 'th-TH') return 'th_TH';
|
||||
// vi-VN -> vi_VN
|
||||
if (language === 'vi-VN') return 'vi_VN';
|
||||
// es-ES -> es_ES
|
||||
if (language === 'es-ES') return 'es_ES';
|
||||
// 默认返回 en
|
||||
return 'en';
|
||||
};
|
||||
|
||||
@@ -8,6 +8,9 @@ import enUS from './locales/en-US';
|
||||
import zhHans from './locales/zh-Hans';
|
||||
import zhHant from './locales/zh-Hant';
|
||||
import jaJP from './locales/ja-JP';
|
||||
import thTH from './locales/th-TH';
|
||||
import viVN from './locales/vi-VN';
|
||||
import esES from './locales/es-ES';
|
||||
|
||||
i18n
|
||||
.use(LanguageDetector)
|
||||
@@ -26,6 +29,15 @@ i18n
|
||||
'ja-JP': {
|
||||
translation: jaJP,
|
||||
},
|
||||
'th-TH': {
|
||||
translation: thTH,
|
||||
},
|
||||
'vi-VN': {
|
||||
translation: viVN,
|
||||
},
|
||||
'es-ES': {
|
||||
translation: esES,
|
||||
},
|
||||
},
|
||||
fallbackLng: 'zh-Hans',
|
||||
debug: process.env.NODE_ENV === 'development',
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user