Open hekep opened 7 months ago
Notice that the select box has en_US but there is no such locale. There is en-US.
I'm not sure where en_US
is used in your example, if you want to make sure only existing locales are used you could use the availableLocales
property to either limit the options or check if the selected option is included.
See the component example on this page of the docs: https://vue-i18n.intlify.dev/guide/essentials/scope.html#global-scope-1 for reference.
As for why it's possible to set the locale without it throwing an error, I'm not sure, perhaps there are use cases in which this would be fine? 😅
Notice that the select box has en_US but there is no such locale. There is en-US.
As for why it's possible to set the locale without it throwing an error, I'm not sure, perhaps there are use cases in which this would be fine? 😅
May be it is falling back to the first default language, right now I do not have 3 languages to test. It should at least write some console.log(...) or something.
Notice that the select box has en_US but there is no such locale. There is en-US.
I'm not sure where
en_US
is used in your example, if you want to make sure only existing locales are used you could use theavailableLocales
property to either limit the options or check if the selected option is included.See the component example on this page of the docs: https://vue-i18n.intlify.dev/guide/essentials/scope.html#global-scope-1 for reference.
As for why it's possible to set the locale without it throwing an error, I'm not sure, perhaps there are use cases in which this would be fine? 😅
I have a question, when options.locale
in createI18n
is obtained by browser language detection, how can I dynamically import the correct locale file?
For example:
export const SUPPORT_LOCALES = ["en", "ja", "cn"] as const;
export type SupportLocale = typeof SUPPORT_LOCALES[number];
async function loadLocaleMessages(i18n: I18n, locale: SupportLocale) {
const messages = await import(
`~/assets/_locales/${locale}.json`
);
i18n.global.setLocaleMessage(locale, messages.default);
return nextTick();
}
I get the browser language setting through chrome.i18n.getUILanguage()
, it returns en-US
, which does not match any language translation file, but I want to load en.json
.
Clear and concise description of the problem
Quasar 2.x In
src/boot/i18n.js
we havein
layouts/MainLayout.vue
we haveNotice that the select box has
en_US
but there is no such locale. There isen-US
.Suggested solution
Error should be triggered when user tries to set invalid, unavailable locale.
Alternative
No response
Additional context
No response
Validations