fix(stage-ui,i18n) fix a bug when change language (#1666)

This commit is contained in:
akrlin
2026-04-15 14:47:26 +08:00
committed by GitHub
parent b9f88ef84f
commit e75b6618b3
4 changed files with 13 additions and 82 deletions
+2 -30
View File
@@ -1,29 +1,8 @@
import messages from '@proj-airi/i18n/locales'
import { resolveSupportedLocale } from '@proj-airi/i18n'
import { createI18n } from 'vue-i18n'
// TODO: Align this bootstrap locale normalization with `@proj-airi/i18n`.
const languageRemap: Record<string, string> = {
'zh-CN': 'zh-Hans',
'zh-TW': 'zh-Hant',
'zh-HK': 'zh-Hans', // TODO: remove this when zh-Hant is supported
'zh-Hant': 'zh-Hans', // TODO: remove this when zh-Hant is supported
'en-US': 'en',
'en-GB': 'en',
'en-AU': 'en',
'en': 'en',
'es-ES': 'es',
'es-MX': 'es',
'es-AR': 'es',
'es': 'es',
'vi': 'vi',
'vi-VN': 'vi',
'ru': 'ru',
'ru-RU': 'ru',
'fr': 'fr',
'fr-FR': 'fr',
}
function getLocale() {
let language = localStorage.getItem('settings/language')
@@ -32,14 +11,7 @@ function getLocale() {
language = navigator.language || 'en'
}
const languages = Object.keys(messages!)
if (languageRemap[language || 'en'] != null) {
language = languageRemap[language || 'en']
}
if (language && languages.includes(language))
return language
return 'en'
return resolveSupportedLocale(language, Object.keys(messages!))
}
export const i18n = createI18n({
@@ -1,38 +1,17 @@
import messages from '@proj-airi/i18n/locales'
import { resolveSupportedLocale } from '@proj-airi/i18n'
import { createI18n } from 'vue-i18n'
// TODO: Align this bootstrap locale normalization with `@proj-airi/i18n`.
const languageRemap: Record<string, string> = {
'zh-CN': 'zh-Hans',
'zh-TW': 'zh-Hans', // TODO: remove this when zh-Hant is supported
'zh-HK': 'zh-Hans', // TODO: remove this when zh-Hant is supported
'zh-Hant': 'zh-Hans', // TODO: remove this when zh-Hant is supported
'en-US': 'en',
'en-GB': 'en',
'en-AU': 'en',
'en': 'en',
'es-ES': 'es',
'es-MX': 'es',
'es-AR': 'es',
'es': 'es',
'vi': 'vi',
'vi-VN': 'vi',
'ru': 'ru',
'ru-RU': 'ru',
}
function getLocale() {
let language = localStorage.getItem('settings/language')
const languages = Object.keys(messages!)
if (languageRemap[language || 'en'] != null) {
language = languageRemap[language || 'en']
if (!language) {
// Fallback to browser language
language = navigator.language || 'en'
}
if (language && languages.includes(language))
return language
return 'en'
return resolveSupportedLocale(language, Object.keys(messages!))
}
export const i18n = createI18n({
+1 -1
View File
@@ -13,7 +13,7 @@ export const all = {
export const localeRemap: Record<string, string> = {
'zh-CN': 'zh-Hans',
'zh-TW': 'zh-Hant',
'zh-HK': 'zh-Hans',
'zh-HK': 'zh-Hant',
'zh-Hant': 'zh-Hant',
'zh-Hans': 'zh-Hans',
'en': 'en',
+5 -25
View File
@@ -1,37 +1,17 @@
import messages from '@proj-airi/i18n/locales'
import { resolveSupportedLocale } from '@proj-airi/i18n'
import { createI18n } from 'vue-i18n'
const languageRemap: Record<string, string> = {
'zh-CN': 'zh-Hans',
'zh-TW': 'zh-Hans', // TODO: remove this when zh-Hant is supported
'zh-HK': 'zh-Hans', // TODO: remove this when zh-Hant is supported
'zh-Hant': 'zh-Hans', // TODO: remove this when zh-Hant is supported
'en-US': 'en',
'en-GB': 'en',
'en-AU': 'en',
'en': 'en',
'es-ES': 'es',
'es-MX': 'es',
'es-AR': 'es',
'es': 'es',
'ru': 'ru',
'ru-RU': 'ru',
'fr': 'fr',
'fr-FR': 'fr',
}
function getLocale() {
let language = localStorage.getItem('settings/language')
const languages = Object.keys(messages!)
if (languageRemap[language || 'en'] != null) {
language = languageRemap[language || 'en']
if (!language) {
// Fallback to browser language
language = navigator.language || 'en'
}
if (language && languages.includes(language))
return language
return 'en'
return resolveSupportedLocale(language, Object.keys(messages!))
}
export const i18n = createI18n({