gpt4 book ai didi

javascript - 在 express 中使用 i18n-2 创建多语言 Web 应用程序

转载 作者:搜寻专家 更新时间:2023-11-01 00:42:23 26 4
gpt4 key购买 nike

我用两种语言创建了一个 express(node.js) 网站 i18n-2 module现在我有问题了。我在想,如果我更改默认语言以外的新语言,我网站中的所有链接都会自动具有 /?lang 参数! i18n-2 会做还是我必须编写此功能?

现在,如果我手动添加 /?lang=de,它会起作用,但如果我返回我的网站根目录,它会转到默认语言环境,并且该参数会从 url 中删除。

这是我的配置:

I18n.expressBind(app, {
locales: ['en', 'de'],
defaultLocale: 'en',
cookieName: 'locale',
extension: ".json"
});

app.use(function(req, res, next) {
req.i18n.setLocaleFromQuery();
req.i18n.setLocaleFromCookie();

next();
});

最佳答案

为了使所选语言永久化,您需要安装一个名为 cookie-parser 的软件包:

npm install --save cookie-parser

然后按如下方式将其附加到 Express 应用程序:

var app = require('express')(),
cookieParser = require('coookie-parser'),
i18n2 = require('i18n-2');

app.use(cookieParser());
i18n2.expressBind(app, {
locales: ['en', 'de'],
defaultLocale: 'en',
cookieName: 'locale'
});
app.use(function(req, res, next) {
if (req.query.lang) {
req.i18n.setLocaleFromQuery();
res.cookie(config.locale.cookie, req.i18n.getLocale());
} else {
req.i18n.setLocaleFromCookie();
}
next();
})

这样您就可以通过 lang 查询参数更改语言,并使用 cookie 存储使其永久化。

关于javascript - 在 express 中使用 i18n-2 创建多语言 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30154594/

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