如何利用 Express.js 构建多语言支持的站点

在全球化的今天,多语言支持是一个网站必不可少的特性。本文将介绍如何利用 Express.js 构建多语言支持的站点,并提供详细的代码示例和指导意义。

1. 安装和配置 Express.js

首先,我们需要安装和配置 Express.js。请确保您已经安装了 Node.js 和 npm。然后,使用以下命令安装 Express.js:

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

接下来,创建一个名为 app.js 的文件,并在其中配置 Express.js:

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

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

这将启动一个 Express.js 服务器,并将其监听在本地的 3000 端口上。

2. 添加多语言支持

在 Express.js 中添加多语言支持的方法有很多种,本文将介绍其中一种基于 i18n 库的实现方法。i18n 是一个 Node.js 库,用于在 Web 应用程序中实现国际化和本地化。

首先,使用以下命令安装 i18n:

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

然后,在 app.js 文件中添加以下代码:

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

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

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

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

上面的代码中,locales 属性设置了支持的语言列表,directory 属性设置了语言文件所在的目录。i18n.init 中间件用于初始化 i18n 库,并将其绑定到 res 对象上。res.__ 方法用于翻译字符串。

接下来,我们需要在 locales 目录下创建对应的语言文件。例如,在 locales/en.json 文件中添加以下内容:

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

locales/zh.json 文件中添加以下内容:

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

现在,启动应用程序并访问 http://localhost:3000,您将看到 "Hello World" 或 "你好,世界",具体取决于您的浏览器语言设置。

3. 切换语言

为了允许用户切换语言,我们需要在应用程序中添加一个语言切换功能。最简单的方法是在 URL 中添加一个语言参数,例如 http://localhost:3000/?lang=en

首先,在 app.js 文件中添加以下代码:

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

上面的代码中,我们创建了一个 /lang/:locale 路由,用于接收语言参数,将其存储在 cookie 中,并重定向到上一个页面。

接下来,在 app.js 文件中添加以下代码:

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

上面的代码中,我们创建了一个语言中间件,用于从 cookie 中读取语言设置,并将其绑定到 reqres.locals 对象上。

最后,在模板文件中添加以下代码:

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

上面的代码中,我们创建了一个语言切换菜单,用于让用户选择语言。

现在,启动应用程序并访问 http://localhost:3000,您将看到语言切换菜单。选择不同的语言,页面将刷新并显示对应的翻译。

结论

本文介绍了如何利用 Express.js 和 i18n 库构建多语言支持的站点。通过添加语言中间件和语言切换功能,我们可以轻松地实现国际化和本地化。希望本文可以帮助您构建更加全球化的 Web 应用程序。完整代码示例请参见 GitHub

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/673a9af539d6d08e88aeeb9f