使用 react-i18next-with-context npm 包进行国际化教程

随着全球化的趋势,更多的网站和应用程序需要提供多语言支持。在 React 程序中,我们可以使用 react-i18next 插件进行国际化。但是,当应用程序中存在多个组件,并且它们需要公用同一个语言资源时,react-i18next 的默认配置不能很好地支持此需求。为了解决这个问题,我们可以使用 react-i18next-with-context,这个 npm 包提供了在组件层级中传递语言资源的功能。

安装

使用 npm 安装:

--- ------- --------------------------

或者使用 yarn:

---- --- --------------------------

使用

首先引入必要的依赖:

------ ----- ---- --------
------ - --------------- - ---- ----------------
------ ----------- ---- -----------------------------

接下来,我们需要创建一个包含所需语言资源的上下文对象:

----- --------------- - ---------------------
    ----- --------
    --------- ---
    -------- -- -- ---
---

------ ------- ----------------

这里我们创建了一个 LanguageContext 对象,包含两个属性 langmessages,和一个方法 setLang。其中,lang 是当前语言代码,messages 是当前语言对应的文本信息。默认的语言为 en-USsetLang 方法可以用于更改当前语言。

接下来,我们将语言资源对象传递到上下文对象中:

------ -- ---- --------------------
------ -- ---- --------------------

----- --------- - -
    -------- ---
    -------- ---
--

-------------------------
    --------
        ----- --------
        --------- ----------
        -------- -- -- ---
    --
-

现在,我们可以创建组件了。我们使用 withContext 方法将包装好的 LanguageContext 上下文对象传递给组件。

----- ----- ------- --------------- -
    -------- -
        ----- - - - - -----------
        ------ -------------- ---------------
    -
-

----- -------------------- - -------------------------
----- ---------------- - ------------
    ----------------
    -- ----- -------- -- -- --
        ---- -----
        ---------- ---------
    --
------------------------

这里我们创建了一个 Hello 组件,并使用 withTranslation 将组件翻译为多语言。然后使用 withContext 将上下文对象绑定到 HelloWithTranslation 组件上,并且将 langmessage 属性分别传递给组件。

现在,我们可以在应用程序中使用 HelloWithContext 组件了,并且能够自动获取所需的语言资源。

-------- ----- -
    ------ ----------------- ---
-

当我们需要更改应用程序的当前语言时,可以通过 setLang 方法进行修改。

----- ---------------- ------- --------------- -
    -------- -
        ----- - ------- - - -------------
        ------ -
            -----
                ------- ----------- -- ----------------------------------
                ------- ----------- -- -----------------------------
            ------
        --
    -
-

---------------------------- - ----------------

这里我们创建了一个语言选择器组件,可以通过点击按钮来切换当前语言。

示例代码

完整的示例代码请参考以下链接:

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60066b5551ab1864dac66b14


猜你喜欢

  • npm 包 promise-all-sequential 使用教程

    简介 在前端编程中,使用异步操作是非常常见的需求。然而,在某些情况下,我们需要按照顺序进行异步操作。这时,我们可以使用 promise-all-sequential npm 包来解决这个问题。

    3 年前
  • npm 包 react-hooker 使用教程

    在前端开发中,React 成为了一个非常流行的 UI 库,能够帮助我们快速构建高效且美观的 Web 应用。而在开发过程中,一些常见的需求往往需要我们写出大量的代码,并且难度较高。

    3 年前
  • npm 包 angular-basic-calculator 使用教程

    在前端开发中,使用计算器是非常常见的需求。而 angular-basic-calculator 是一个通过 npm 包管理器发布的插件,可以快速实现基本的四则运算、数字输入和格式化等功能。

    3 年前
  • npm 包 pixiv-bookmark-downloader 使用教程

    在前端开发中,我们不仅需要掌握基础的 HTML、CSS、JavaScript 等知识,还需要了解一些辅助工具,比如 Node.js 和 npm。npm 是 Node.js 的包管理工具,通过它我们可以...

    3 年前
  • npm 包 react-native-template-pro 使用教程

    前言 React Native 是一款非常流行的移动应用开发框架,可以使用 JavaScript 和 React 构建 iOS 和 Android 应用程序。而 react-native-templa...

    3 年前
  • npm 包 exboost 使用教程

    什么是 exboost? exboost 是一个面向前端的 npm 包,它为我们提供了一些实用的 JavaScript 工具函数。它可以帮助我们快速解决某些常见的问题,提高开发效率。

    3 年前
  • npm 包 @qingclass/iconfont-loader 使用教程

    简介 @qingclass/iconfont-loader 是一个用于加载 iconfont 图标字体文件的webpack loader。它可以快速、简便地将 iconfont 字体集成到你的前端项目...

    3 年前
  • npm 包 @haschish/cards-core 使用教程

    介绍 @haschish/cards-core 是一个基于 JavaScript 的 npm 包,用于在 web 和移动应用中创建卡片式界面。它提供丰富的功能和定制选项,使得用户可以根据自己的需求创建...

    3 年前
  • npm 包 pusher-plugin 使用教程

    在前端开发中,我们经常需要进行实时通信。虽然使用原生 WebSocket 可以完成此任务,但是使用起来相对繁琐,需要掌握较多的技术细节。而 pusher-plugin 则可以简化实时通信的实现过程,为...

    3 年前
  • npm包@beisen-cmps/multi-select使用教程

    前言 随着前端开发的发展,各种优秀的组件库层出不穷,使得前端开发变得更加高效和便捷。而本文将介绍一个优秀的npm包: @beisen-cmps/multi-select,它是一个多选组件,可以方便地实...

    3 年前
  • npm 包 correntlykeygenerator 使用教程

    在前端开发中,我们时常需要在代码中使用 API 或其他服务,而这些服务通常会要求我们提供一些凭证,例如 API Key 或者 Access Token。在实际开发中,为了简化这个过程,我们可以使用 n...

    3 年前
  • npm包social-media-scraper使用教程

    前言 社交媒体在大众生活中扮演着日益重要的角色,通过社交媒体我们可以获得各种信息和资讯。但是,如果需要爬取某个社交媒体平台的数据,就需要运用到一些技术。近来,社交媒体平台的反爬措施越来越严格,需要使用...

    3 年前
  • npm 包 ne-fe-boot 使用教程

    什么是 ne-fe-boot ne-fe-boot 是一个快速搭建前端工程的脚手架工具,它主要用于减少前端开发过程中的重复性工作,提升开发效率,并且对于前后端分离的项目尤其有帮助。

    3 年前
  • npm 包 bs-retable 使用教程

    作为前端开发人员,我们经常需要处理表格数据。但是,手动编写表格可能是一项繁琐的任务。在这种情况下,一个优秀的工具可以使开发过程更加流畅。在这篇文章中,我们将深入了解一个 npm 包,即 bs-reta...

    3 年前
  • npm 包 easyify 使用教程

    在前端开发中,npm 是一个非常重要的工具,它可以让我们轻松地管理项目中的依赖,而 easyify 就是一个非常实用的 npm 包,它能够让我们快速地创建一个基础的前端项目,本文将介绍 easyify...

    3 年前
  • npm 包 about.inc 使用教程

    在前端开发过程中,我们通常需要获取不同部分的代码版本信息,例如应用程序版本、依赖版本、构建版本等。而在 Node.js 生态系统中,使用 about.inc 这个工具包可以轻松地实现这些功能。

    3 年前
  • npm 包 node-red-contrib-openaq 使用教程

    前言 在 Web 开发领域中,随着越来越多的数据交互需求出现,前端开发已经不再仅限于 HTML、CSS 和 JavaScript 的运用,而是需要更多的工具来支撑, npm 是其中必不可少的一个工具,...

    3 年前
  • npm 包 addon.inc 使用教程

    前言 随着前端开发的普及,越来越多的工具和库被开发出来,以方便开发者们更加高效地完成自己的工作。其中,npm 是前端开发中极为常用的一个包管理工具,而 addon.inc 则是一个非常优秀的 npm ...

    3 年前
  • npm 包 keras-predict 使用教程

    在深度学习领域中,Keras 是一个广泛使用的深度学习框架,它以高效、易扩展和用户友好著称。同时,npm 上也提供了一系列 Keras 相关的包,其中包括本文介绍的 keras-predict,这是一...

    3 年前
  • npm 包 tranquility-lane 使用教程

    在前端开发中,我们经常会使用各种工具和库来提高效率和优化代码。其中,npm 包是最常见的资源之一,它们可以帮助我们快速地加入功能强大的代码,并且可以简化项目的管理过程。

    3 年前

相关推荐

    暂无文章