我正在进行网站的内部化工作,到目前为止,nuxt-i18n模块为我服务很好。但是,我还没有弄清楚如何从服务器获取和加载路径的转换。
在进行通用翻译的情况下,我从服务器和初始化中获取所有内容,并使用消息填充存储。然后,我只需按照以下步骤从商店中导出翻译。
// en-US.js
import store from '../store';
export default store().state.dictionary.labels.en;
然后按照documentation
中的说明进行延迟加载这是我的配置
// 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',
}],
],
但是,似乎在自定义路径转换的情况下未实现。理想情况下,我想使用第一种mentioned方法,该方法在nuxt config中定义路径转换。
所以我问,我能以某种方式做些类似的事情吗?
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',
},
],
}],
],
最后,我也会对 component 方法感到满意。但是,由于nuxtI18n
是属性而不是函数,因此我无权访问Nuxt(this
),因此也无权访问该应用程序的商店。如果第一种选择不可行,是否有办法将存储中的值传递给nuxtI18n
属性?
我希望能够做到这一点。
// contact.vue
nuxtI18n: {
paths: {
cs: this.$store.state.pages.contact.cs
en: this.$store.state.pages.contact.en
},
},
非常感谢任何帮助。