如何在json节中的Vue文件中使用I18n

fiei3ece  于 2023-11-21  发布在  Vue.js
关注(0)|答案(1)|浏览(253)

我使用vue.js,nuxt.js,我安装了i18n包,配置了它,翻译工作正常,如果文本在Vue文件中。
Vue文件有一个从json加载的菜单,它在同一个页面上。
这是我的菜单,使用json方法加载:

{
     id: 1,
     title: "Home",
     submenus: [
       {
         id: 1,
         title: "Home 1",
         url: "/",
       },
       {
         id: 2,
         title: "Home 2",
         url: "/home-2",
       },
       {
         id: 3,
         title: "Home 3",
         url: "/home-3",
       },
     ],
   },

字符串

**编辑:**在Vue页面中添加i18n:

<script setup lang="ts">
const { locales, locale, setLocale } = useI18n();
const language = computed({
    get: () => locale.value,
    set: (value) => {
        setLocale(value);
    },
});


菜单是:

const menus = [
  {
    id: 1,
    title: "Home",
    submenus: [
      {
        id: 1,
        title: "Home 1",
        url: "/",
      },
      {
        id: 2,
        title: "Home 2",
        url: "/home-2",
      },
      {
        id: 3,
        title: "Home 3",
        url: "/home-3",
      },
    ],
  },
]


我如何需要从id1翻译title和从submenus翻译title,我如何才能正确翻译?
我试着做title: "{t('main_menu'}",,但它不工作,它只显示这个文本。

q5lcpyga

q5lcpyga1#

您可以使用来自useI18n()的Composer示例t来翻译:

const { t, locales, locale, setLocale } = useI18n();

个字符
在文档中可以看到。

相关问题