next-i18next 翻译在故事书中不起作用,控制台记录 missingKey

next-i18next translation not working in storybook, console logs missingKey

我正在设置故事书,我正在使用 next-i18next 进行翻译。我是这样设置的:

// .storybook/i18n.js
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';

i18n.use(initReactI18next).init({
  fallbackLng: 'de',
  debug: true,
});

export default i18n;
// .storybook/preview.js
import { StoreMall } from '../components/layouts/StoreMall';
import { I18nextProvider } from 'react-i18next';
import i18n from './i18n';
import { ThemeProvider } from '@material-ui/core/styles';
import { jamesTheme } from '../components/colors';
import { themes } from '@storybook/theming';
import CssBaseline from '@material-ui/core/CssBaseline';

export const parameters = {
  // ...
};

export const decorators = [
  (Story) => (
    <I18nextProvider i18n={i18n}>
      <ThemeProvider theme={jamesTheme}>
        <CssBaseline />
        <StoreMall>{Story()}</StoreMall>
      </ThemeProvider>
    </I18nextProvider>
  ),
];

// .storybook/main.js
const path = require('path');

module.exports = {
  stories: ['../components/**/*.stories.js', '../components/**/*.stories.mdx'],
  addons: [
    '@storybook/addon-links',
    '@storybook/addon-essentials',
    'storybook-dark-mode',
  ],
  webpackFinal: async (config, { isServer }) => {
    config.resolve.modules = [path.resolve(__dirname, '..'), 'node_modules'];
    config.resolve.alias = {
      ...config.resolve.alias,
      '@': path.resolve(__dirname, '../components'),
      store: path.resolve(__dirname, '../utils/stores'),
      dummy: path.resolve(__dirname, '../utils/dummy'),
    };
    if (!isServer) {
      config.node = {
        fs: 'empty',
      };
    }
    return config;
  },
};

现在在我使用翻译的任何地方,它都没有被翻译,并且这种类型的警告正在控制台中显示:

i18next::translator: missingKey de editor unlock_page_margins unlock_page_margins

这是我 package.json 中用于在本地启动故事书的脚本。

    "storybook": "start-storybook -s ./public -p 6006",

Storybook 尚未设置为可在网站上查看。

当我 运行 开发服务器时翻译工作,只是在故事书中它不工作。我正在按照本指南进行设置:https://dev.to/justincy/using-next-i18next-in-storybook-3he9

我安装了这个包:https://www.npmjs.com/package/i18next-http-backend

然后在我的 i18n.js 文件中,添加后端。

import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import HttpApi from 'i18next-http-backend';

i18n
  .use(HttpApi)
  .use(initReactI18next).init({
    fallbackLng: 'de',
    debug: true,
});

export default i18n;

现在我的故事书里有了翻译。