推荐答案
在 Express 中实现国际化 (i18n) 可以通过使用 i18n 库来实现。以下是一个简单的步骤指南:
安装
i18n库:npm install i18n
配置
i18n: 在你的 Express 应用中配置i18n库,设置默认语言和语言文件路径。// www.javascriptcn.com code example const i18n = require('i18n'); const express = require('express'); const app = express(); i18n.configure({ locales: ['en', 'zh'], directory: __dirname + '/locales', defaultLocale: 'en', cookie: 'lang', }); app.use(i18n.init);创建语言文件: 在
locales目录下创建语言文件,例如en.json和zh.json。// www.javascriptcn.com code example // locales/en.json { "greeting": "Hello" } // locales/zh.json { "greeting": "你好" }在路由中使用国际化: 在路由中使用
req.__或res.__来获取翻译后的字符串。app.get('/', (req, res) => { res.send(req.__('greeting')); });切换语言: 可以通过设置
req.locale或使用req.setLocale方法来切换语言。app.get('/change-lang/:lang', (req, res) => { req.setLocale(req.params.lang); res.redirect('/'); });
本题详细解读
1. 安装 i18n 库
i18n 是一个流行的 Node.js 库,用于处理国际化。通过 npm install i18n 命令可以轻松安装。
2. 配置 i18n
在 Express 应用中,i18n 库需要被配置以支持多语言。locales 数组定义了支持的语言,directory 指定了语言文件的存放路径,defaultLocale 设置了默认语言,cookie 用于存储用户的语言偏好。
3. 创建语言文件
语言文件是 JSON 格式的文件,每个文件对应一种语言。文件中的键值对定义了翻译内容。例如,greeting 键在 en.json 中对应 "Hello",在 zh.json 中对应 "你好"。
4. 在路由中使用国际化
在路由处理函数中,可以使用 req.__ 或 res.__ 方法来获取翻译后的字符串。这些方法会根据当前的语言设置返回相应的翻译内容。
5. 切换语言
通过 req.setLocale 方法可以动态切换语言。例如,通过访问 /change-lang/zh 可以将语言切换为中文,并重定向到首页以应用新的语言设置。
通过以上步骤,你可以在 Express 应用中轻松实现国际化功能。