天天看點

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": "你好"
}      

繼續閱讀