Storybook Addon i18next allows your stories to be displayed in different language with i18next.
NOTE: It only support React for now.
Install the following npm module:
npm i --save-dev storybook-addon-i18next
or with yarn:
yarn add -D storybook-addon-i18next
Then, add following content to .storybook/addons.js
import 'storybook-addon-i18next/register';
There's only one decorator for configuration.
Import and use the withI18next
decorator in your config.js
file.
import { withI18next } from 'storybook-addon-i18next';
An configuration object for i18next.
A key-value pair of language codes and display name
Example:
{
en: 'English',
'zh-TW': '繁體中文',
}
Simply import the Storybook i18next Addon in the addons.js
file in your .storybook
directory.
import 'storybook-addon-i18next/register';
Please refer to i18next-configuration-options.
Example in .storybook/config.js
:
import i18n from 'i18next';
import { initReactI18next } from 'react-i18next';
import Backend from 'i18next-xhr-backend';
import LanguageDetector from 'i18next-browser-languagedetector';
i18n
.use(Backend)
.use(LanguageDetector)
.use(initReactI18next)
.init({
whitelist: ['en', 'zh-TW'],
lng: 'en',
fallbackLng: 'en',
interpolation: {
escapeValue: false,
},
});
addDecorator(
withI18next({
i18n,
languages: {
en: 'English',
'zh-TW': '繁體中文',
},
})
);
// Add <Suspense> after withI18next decorator
addDecorator((story, context) => (
<Suspense fallback="Loading...">{story(context)}</Suspense>
));