express使用i18n实现国际化

简介: express使用i18n实现国际化

文档 https: //www.npmjs.com/package/i18n

文件目录

.
├── index.js
├── locales
│   ├── en.json
│   └── zh.json
└── package.json

1、默认通过浏览器语言判断

2、可以通过查询参数指定语言

http: //localhost:8000/?lang=zh

index.js

var express = require('express'),

i18n = require("i18n");

const app = express()

// 语言配置
i18n.configure({
locales: ['en', 'zh'], // 声明包含语言
directory: __dirname + '/locales', // 设置语言文件目录
queryParameter: 'lang', // 设置查询参数
defaultLocale: 'en', // 设置默认语言
});

// 初始化
app.use(i18n.init)


app.get('/', function (req, res) {
console.log(req.getLocale());
var hello = res.__('Hello'); // --> Hallo`
return res.send(hello)
});


app.listen(8000, () => {
console.log("runing: http://localhost:8000/");
})

package.json

{
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js"
},
"dependencies": {
"express": "^4.17.1",
"i18n": "^0.9.0",
"nodemon": "^2.0.3"
}
}

locales/en.json

{
"Hello": "Hello"
}

locales/zh.json

{
"Hello": "你好"
}
            </div>
目录
相关文章
|
Web App开发 Java 测试技术
VSCode配置Golang单元测试实例
说到代码的健壮性,单元测试是少不了的,基本上所有语言都有自己的单元测试方案。工作这么多年,单元测试也没少写,像 Java、C++、Golang 都有过恶补单元测试的经历,为的就是应付各种 KPI,但是也不能说单元测试没有用,只是原始动力不是为了单元测试而单元测试,而是为了应付检查而单元测试。今天呢,就来说一说 Golang 语言的单元测试(这次真的是我自己主动要加的^_^)。
769 1
|
机器学习/深度学习 人工智能 自然语言处理
|
消息中间件 RocketMQ
RocketMQ消费失败重试机制分析
现象:mq消费1次,重试3次,然后停止
3652 0
|
5天前
|
数据采集 人工智能 安全
|
15天前
|
云安全 监控 安全
|
1天前
|
存储 SQL 大数据
删库跑路?别慌!Time Travel 带你穿回昨天的数据世界
删库跑路?别慌!Time Travel 带你穿回昨天的数据世界
236 156