Express.js 中使用 i18n 进行国际化支持

阅读时长 4 分钟读完

在现今全球化的环境中,网站和应用程序需要支持不同语言和地区的用户。国际化(i18n)可以帮助我们实现这个目的,使我们的应用程序能够在全球范围内以多种语言和地区提供服务。

在前端开发中,国际化是一项非常重要的技能。随着用户对多语言支持和本地化的要求不断增长,使用国际化技术能使我们的应用程序更有竞争力。

Express.js 是一个流行的 Node.js Web 框架,我们可以使用它以及 i18n 库来实现国际化支持。

安装 i18n

首先,我们需要安装 i18n 库。我们可以使用 npm 命令来安装 i18n:

配置 i18n

下一步是在 Express 应用程序中配置 i18n。我们需要创建一个 i18n 实例,然后配置语言环境和本地化翻译。

在项目的根目录下,创建一个名为 i18n.js 的文件,并添加以下代码:

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

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

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

在这个配置文件中,我们:

  • 引入 i18n 库
  • 配置可接受的语言环境
  • 指定存放翻译文件的目录
  • 设置默认语言环境
  • 配置查询参数和 cookie,用于切换语言环境

在项目中,我们需要在每个需要进行国际化支持的路由中加载 i18n 实例。

现在,我们已经成功地在 Express 应用程序中配置了 i18n,接下来我们将学习如何使用它进行本地化支持。

资源文件

为了支持本地化,我们需要为应用程序的每个语言环境创建一个资源文件。这些资源文件存储了应用程序中需要本地化的翻译文本。

locales 文件夹中创建一个名为 en.json 的文件,添加以下内容:

再创建一个名为 fr.json 的文件,添加以下内容:

locales 文件夹中,也可以创建一个文件夹 zh ,然后再创建一个名为 zh.json 的文件,添加以下内容:

在这些资源文件中,我们定义了一个名为 greeting 的属性,它将显示在我们的应用程序中。

使用 i18n 翻译

在 Express 应用程序中,我们可以使用 __() 函数来翻译我们的文本。

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

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

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

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

在这个示例中,我们使用 __() 函数来翻译名为 greeting 的本地化文本。

当用户请求该路由时,__() 函数将根据当前语言环境返回对应的翻译文本。

切换语言环境

最后,我们需要添加一个方法来切换语言环境。

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

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

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

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

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

在这个示例中,我们创建了一个新的路由 /lang/:lang ,该路由通过 cookie 设置语言环境,并使用 res.redirect() 方法返回到之前访问的页面。

结论

在这篇文章中,我们学习了如何在 Express 应用程序中使用 i18n 库进行国际化支持。

我们首先安装了 i18n 库,然后创建了一个 i18n 实例,并根据需要配置语言环境和本地化翻译资源。

接着,我们学习了如何在路由中使用 __() 函数进行翻译。

最后,我们介绍了如何通过设置 cookie 来切换语言环境。

希望这篇文章能够帮助你学习如何在 Express 应用程序中使用 i18n 实现国际化支持。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6732ff580bc820c5823fefcc

纠错
反馈