gpt4 book ai didi

javascript - i18n nodejs 和前端 javascript 本地化

转载 作者:行者123 更新时间:2023-11-30 20:21:29 25 4
gpt4 key购买 nike

我正在使用 express js 4.0 并且有 https://github.com/mashpie/i18n-node使用 ejs View 配置的 i18n 模块。

我希望也支持 .js 文件。如何使 i18n 函数 __() 在 .js 文件中可见?

最佳答案

var i18n = require("i18n");
var express = require('express')
//I18n Module
i18n.configure({
locales: ['en'],
defaultLocale: 'en',
register: global,
syncFiles: true,
directory: __dirname + '/../locales'
});
i18n.setLocale('en');


var router = express.Router()
router.get('/i18n/:key', function (req, res, next) {
var result = "Not Found";
var key = req.params.key;
if(key != null){
result = i18n.__(key);
}

res.send(result);

})

router.get('/i18n.json', function (req, res, next) {
res.send(i18n.getCatalog(i18n.getLocale()));
});

router.get("/i18n.js", function(req, res, next){
var locals = i18n.getCatalog(i18n.getLocale());
res.send("var __ = function(key) { var locals = "+JSON.stringify(locals)+"; return locals[key] != null ? locals[key] : key }");
})





module.exports = {
config: function(req, res, next) {

i18n.init(req, res);

console.log("langueage inited")
return next();
},
frontend: router
}

我制作了一个简单的工具,用于将语言环境作为 __() 暴露给前端。但是有现成的解决方案吗?

要使用它,你只需在 app.js 中添加

var i18nConfig = require('./app/i18n')
app.use(i18nConfig.config);
app.use(i18nConfig.frontend);

关于javascript - i18n nodejs 和前端 javascript 本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51407572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com