node.js:获取浏览器语言

时间:2012-09-02 17:47:37

标签: javascript node.js internationalization

有没有办法让浏览器语言或类似内容知道客户端使用哪种语言?

我说的是node.js =)

感谢

2 个答案:

答案 0 :(得分:5)

与任何其他HTTP服务器一样,此处的密钥是浏览器随每个请求发送的Accept-Language header。请参阅HTTP 1.1 specAccept-Language used for locale setting W3C常见问题页面。

用于读取HTTP值的实际代码取决于您正在使用的确切框架(“vanilla”Node,Express等)。

答案 1 :(得分:1)

如果您碰巧使用着名的快递服务器,则存在可以完成工作的中间件。 request-language解析Accept-Language标题并为您返回最喜欢的语言:

var requestLanguage = require('express-request-language');
var cookieParser = require('cookie-parser');
var express = require('express');
var app = express();

app.use(cookieParser());
app.use(requestLanguage({
  languages: ['en-US', 'zh-CN'],
  cookie: {
    name: 'language',
    options: { maxAge: 24*3600*1000 },
    url: '/languages/{language}'
  }
}));

app.get('/', function(req, res, next) {
  console.log(req.language); // 'en-US'
});