3

在服务器端渲染 HTML 模板时,我发现自己使用 Java 的 Locale 类(通过各种辅助函数)来渲染语言代码(ISO 639-1)、脚本代码(ISO 15294)和国家代码(ISO 3166)作为它们的名称(即"en" -> "English") 以尊重当前用户选择的语言环境的方式。

现在,将一些东西移动到客户端渲染(使用 Angular JS),我有点不确定如何处理这个问题。在服务器端进行代码到名称的转换并发送可识别区域设置的 JSON 是一种选择,但它会为各种数据如何获得 JSON 化增加相当多的复杂性(必须通过许多层传递区域设置主要是功能。)

另一方面,我可以看到 Java Locale 类的完整客户端版本如何涉及向客户端发送大量数据,其中大部分数据大部分时间都不会被使用。

是否有任何新兴的最佳实践可以用主要是单页应用程序来做这种事情,或者任何超级库可以一举解决我的问题?

4

1 回答 1

0

我不确定这是“最佳实践”,但我还开发了一个单页应用程序,我在其中加载了一个 JSON 数组,其中包含有用的 JS 数据,并使用 ajax 加载。如果数据没有在页面开头使用,这对我来说似乎是最好的解决方案。

否则,如果您不介意嵌入的 javascript,您可以在每个页面的末尾添加此脚本:

<script>
function get_locale(){
    return JSON.parse(/* render JSON.encoded data from server here */)
</script>

抱歉,如果这不是一个确定的答案。

于 2013-08-20T20:37:58.943 回答