reactjs react-i18 next-如何使用t()访问具有动态值的js文件中的嵌套键

eqqqjvef  于 2023-04-20  发布在  React
关注(0)|答案(1)|浏览(139)

请问我如何使用t()函数调用action[EDIT].title以返回字符串“Edit”。包含我的翻译的EN.js文件如下所示

// EN.js

const EDIT = "EDIT";
const DELETE = "DELETE";

action: {
    [EDIT]: {
      title: 'Edit',
    },
    [DELETE]: {
      title: 'Delete',
    },
}

我的配置是

// i18n.js

const resources = {
  en: {
    translation: EN
  },
  de: {
    translation: DE
  },
};
i18next
  .use(initReactI18next)
  .init({
    resources,
    lng: 'en',
    fallbackLng: 'en',
    interpolation: {
      escapeValue: false,
    },
    debug: true,
  });

export default i18next;

我期望t(action[EDIT].title)返回字符串'Edit'

t8e9dugd

t8e9dugd1#

要使用动态值访问翻译文件中的嵌套键,您应该修改翻译对象以包含名称空间或键路径。然后,您可以使用t()函数和路径。
首先,更新EN.js文件,以包含action对象的命名空间或密钥路径:

// EN.js
const EDIT = "EDIT";
const DELETE = "DELETE";

const EN = {
  action: {
    [EDIT]: {
      title: 'Edit',
    },
    [DELETE]: {
      title: 'Delete',
    },
  },
};

export default EN;

现在,你可以像这样使用t()函数访问嵌套的键:

const editTitle = t('action.EDIT.title');

相关问题