发布于 2026-01-06 1 阅读
0

使用 i18n hook 进行 React 翻译

使用 i18n hook 进行 React 翻译

介绍

最近,我的工作中遇到了一个需要为使用 React 构建的项目添加翻译的问题。我对此进行了研究,并找到了这个解决方案,希望对其他人有所帮助。

安装必要的软件包

要安装这些软件包,我们需要事先安装并配置npm

安装完npm之后,我们必须安装以下软件包:

npm install --save i18next

npm install --save react-i18next

npm install --save i18next-browser-languagedetector

创建一个文件,用于存储翻译内容。

我们将在 src 目录下创建一个名为 translations 的文件夹,然后在 translations 文件夹内,为每种要添加翻译的语言创建一个文件夹。

./src
    ./translations
        ./es
            ./translations.js

Enter fullscreen mode Exit fullscreen mode

我们将创建 translation.js 文件,用于存储翻译内容,在本例中,翻译内容针对的是西班牙语:


// File: translations.js

export const TRANSLATIONS_ES = {

    "female": "Femenino"

}

Enter fullscreen mode Exit fullscreen mode

创建 i18n 的配置文件

./src
    ./translations
        ./i18n.js

Enter fullscreen mode Exit fullscreen mode

内容如下:

// File: i18n.js

import i18n from "i18next";
import { initReactI18next } from "react-i18next";
import LanguageDetector from "i18next-browser-languagedetector";

// import translations file
import { TRANSLATIONS_ES } from '../translations/es/translations'

i18n
    .use(LanguageDetector)
    .use(initReactI18next)
    .init({
    resources: {
        es: {
            // use translations file for spanish resources
            translation: TRANSLATIONS_ES,
        },
    }
});
Enter fullscreen mode Exit fullscreen mode

在组件中使用翻译钩子

// File: ExampleComponent.js

// import hook for translations and i18n configuration file
import { useTranslation } from "react-i18next";
import '../../translations/i18n.js';

export const ExampleComponent = () => {

    // destructuring t() function for useTranslation()
    const { t } = useTranslation();

    return (
        {// using t() function for translate}
        <p>{ t('female') }</p>
    )
}
Enter fullscreen mode Exit fullscreen mode

感谢阅读。😊

谢谢

文章来源:https://dev.to/wealize/translations-for-react-using-i18n-hook-1616