我用的是Vue 3和Vue-i18 n。我有一个名为i18n.js的文件,位于App.vue文件和main.js的位置。在这个文件中,我初始化了组件,如下所示:
import { createI18n } from 'vue-i18n';
import translations from '@/translation.js';
const i18n = createI18n({
legacy: false,
locale: '', // It's empty because i want to set it in App.vue
fallbackLocale: 'de',
translation,
});
export default i18n;
字符串
然后我可以导入这个文件并使用i18n.global.t('translation. KEY');但它永远不会改变语言。它总是de=多伊奇。在我的App.vue文件中,我从一个文件中阅读客户端设置,在读取后的挂载部分中,我设置了如下语言环境:
mounted() {
this.$i18n.locale = this.$store.getters['settings'].language;
}
型
此外,在设置选项卡上的多项选择的变化,我正在改变它,并保存到文件。但没有用。始终显示多伊奇文本。如果我删除fallbackLocale,它将显示:* translation.KEY..*
这个问题有什么解决办法吗?
main.js
import {createApp} from 'vue';
import App from './App.vue';
import i18n from './config.js';
const app = createApp(App);
app.use(i18n);
app.mount('#app');
型
1条答案
按热度按时间erhoui1w1#
根据您的语法,您似乎仍在使用Options API。只需将
legacy
选项设置为true字符串
分配给
this.$i18n.locale
将起作用。如果你想看一个完整的工作示例,这里有一个codesandbox。