如何使Web应用程序多语言? (ReactJS,Flux,NodeJS,Postgres)

时间:2016-03-12 08:51:00

标签: node.js web-applications reactjs internationalization multilingual

理想情况下,我希望它能像这样工作:

  • 客户端的浏览器向服务器发出请求,
  • 服务器根据请求标头识别语言,并发送特定语言文件以及js包和其他资产

只应该发送一种语言,因为webapp有很多文本。

我该如何实现?

2 个答案:

答案 0 :(得分:0)

我相信你的答案更理论化?我可以想象在这里尝试的几个场景:

  1. 默认加载英文。然后允许用户手动更改语言。或者在页面加载时显示弹出窗口以选择语言。

  2. 从节点提供模板,在这种情况下,您将知道要响应的模板。让我们说客户端只是请求index.html或index.js这个案例服务器返回具有正确语言的文件。但要小心缓存。做出同样的反应。

  3. 不确定是否有反应,但你在模板{{ctrl.text.helloText}}中有角度。稍后在控制器中,您可以使用所需语言的ajax加载文件。并使用响应填充ctrl.text。角度重新渲染这些碎片。在响应到来之前,页面上的文本将为空。希望如果获取文本文件需要不到100~200毫秒,那就没问题了。

答案 1 :(得分:0)

以下是我们的工作方式:

用户识别语言并将其存储到用户个人资料中。在Web应用程序初始化客户端加载应用程序代码+本地化字典(在我们的例子中是普通JSON文件) 在客户端,您向用户显示的任何字符串都会通过一些转换字符串的函数。 例如_('Welcome!')

字典看起来像这样:

//spanish.json
{
  "Welcome!": "Bienvenido!",
  ...
}

然后,只需要在初始化时获取所需的字典并使用translate函数而不是硬编码字符串。