首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在页面中向Nuxt i18n添加内容(wordpress headless cms)

如何在页面中向Nuxt i18n添加内容(wordpress headless cms)
EN

Stack Overflow用户
提问于 2021-03-24 11:01:40
回答 1查看 205关注 0票数 0

我正在尝试使用Wordpress作为一个无头CMS,并使用Nuxt拉取内容,我正在使用它作为SSG。我需要把它翻译成几种语言,但我不太清楚如何让它工作。

我想做这样的事情,但它不起作用,因为块似乎只接受字符串:

代码语言:javascript
复制
<i18n>
{
  "en": en,
  "nb": nb
}
</i18n>

<template>
  <div class="container">
    {{ $t('frontpage_top_section.frontpage_heading') }}
  </div>
</template>

<script>
export default {
  async asyncData() {
      const en = await fetch('https://wordpressurl.net/wp-json/wp/v2/pages/4685').then(res => res.json());
      const nb = await fetch('https://wordpressurl.net/wp-json/wp/v2/pages/4235').then(res => res.json());
      return {
        en, nb
      }
  },
}
</script>

这里的正确方法是什么?如何在每个页面/组件的基础上从Wordpress api中提取内容并在模板中使用它?

如果我遗漏了什么,请告诉我,谢谢:)

EN

回答 1

Stack Overflow用户

发布于 2021-03-25 11:18:35

所以我已经解决了这个问题,我想我应该在这里分享一下,以防其他人感到困惑。如果有人想详细说明这一点,请随意。

因此,我所做的不是尝试将其包含在页面/组件本身中,而是使用单独的文件来调用数据,如下所示:https://i18n.nuxtjs.org/lazy-load-translations

所以在nuxt.config.js中我有:

代码语言:javascript
复制
  modules: [
[
  'nuxt-i18n',
  {
    locales: [
      {
        code: 'en',
        iso: 'en-US',
        name: 'English',
        file: 'en-US.js'
      },
      {
        code: 'nb',
        iso: 'nb_NO',
        name: 'Norwegian',
        file: 'nb.js'
      },
    ],
    lazy: true,
    langDir: 'lang/',
    defaultLocale: 'en',
    fallbackLocale: 'en',
    seo: true
  },
]
]

然后,例如,在/lang/en-US.js中,我调用该语言的特定页面(并对其他语言执行相同的操作):

代码语言:javascript
复制
export default async (context, locale) => {
let homepage = await fetch('https://wordpressurl.net/wp-json/wp/v2/pages/4685').then(res => res.json());
let about = await fetch('https://wordpressurl.net/wp-json/wp/v2/pages/9519').then(res => res.json());
return {
    homepage, about
}
}

然后在我的模板中,我可以调用:

代码语言:javascript
复制
<template>
  <div class="container">
{{ $t('homepage.acf.frontpage_top_section.frontpage_heading') }}
  </div>
</template>

现在,当我加载页面时,会显示正确的内容,例如,如果我转到: /nb,就会显示挪威内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66774137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档