在全球化的今天,多语言支持是一个网站必不可少的特性。本文将介绍如何利用 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 中读取语言设置,并将其绑定到 req
和 res.locals
对象上。
最后,在模板文件中添加以下代码:
---- ------ -------------------------------- ------ --------------------------- -----
上面的代码中,我们创建了一个语言切换菜单,用于让用户选择语言。
现在,启动应用程序并访问 http://localhost:3000
,您将看到语言切换菜单。选择不同的语言,页面将刷新并显示对应的翻译。
结论
本文介绍了如何利用 Express.js 和 i18n 库构建多语言支持的站点。通过添加语言中间件和语言切换功能,我们可以轻松地实现国际化和本地化。希望本文可以帮助您构建更加全球化的 Web 应用程序。完整代码示例请参见 GitHub。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/673a9af539d6d08e88aeeb9f