我正在对我的网站进行内部化,到目前为止, nuxt-i18n模块对我的服务很好。但是,我还没有弄清楚如何从服务器获取和加载路径的翻译。
在常见翻译的情况下,我从服务器和初始化中获取所有内容,并使用消息填充存储。然后我简单地从商店中导出翻译,如下所示。
// en-US.js
import store from '../store';
export default store().state.dictionary.labels.en;
然后将其延迟加载,如文档中所述
这是我的配置
// nuxt.config.js
modules: [
['nuxt-i18n', {
locales: [
{
name: 'Czech',
code: 'cs',
iso: 'cs-CS',
file: 'cs-CS.js',
},
{
name: 'English',
code: 'en',
iso: 'en-US',
file: 'en-US.js',
},
],
strategy: 'prefix_except_default',
langDir: 'lang/',
lazy: true,
defaultLocale: 'cs',
}],
],
但是,在自定义路径翻译的情况下,这似乎没有实现。理想情况下,我想使用第一个提到的方法,它在 nuxt 配置中定义路径转换。
所以我问,我能以某种方式做一些类似的事情吗?
modules: [
['nuxt-i18n', {
...
pages: [
{
name: 'Czech',
code: 'cs',
iso: 'cs-CS',
file: 'pages-cs.js',
},
{
name: 'English',
code: 'en',
iso: 'en-US',
file: 'pages-en.js',
},
],
}],
],
最后,我也会对组件方法感到满意。但是,因为nuxtI18n
是属性而不是函数,所以我无权访问 Nuxt ( this
),因此也无权访问应用商店。如果第一个选项不可行,有没有办法如何将nuxtI18n
商店中的值传递给属性?
我希望能够做到这一点。
// contact.vue
nuxtI18n: {
paths: {
cs: this.$store.state.pages.contact.cs
en: this.$store.state.pages.contact.en
},
},
非常感谢任何帮助。