我非常清楚如何组织服务器端国际化 - 检测语言首选项并在处理请求页面的 HTML 中打印相应的翻译字符串。
但是在客户端上做不是更合适吗?应该如何组织?我在想
- 检测 JavaScript 中的语言首选项
- 请求语言文件
- 打印页面上的字符串
我在弄清楚最后一部分时遇到问题:在页面上打印字符串。我们使用Handlebars,我们的页面结构如下:
<body>
<h1>TEXT_1</h1>
<script type="text/template">
Some {{copy}} goes here
</script>
<p>TEXT_2</p>
<script type="text/template">
Some other {{othercopy}} goes here
</script>
... and so on
现在,对于 TEXT_1 和 TEXT_2 我必须创建一个单独的模板吗?我将如何翻译模板中的字符串?我无法替换Some {{copy}} goes here
为,{{lang.copy_of_template1}}
因为{{copy}}
不会扩展。
那么,做客户端 i18n 的努力真的是这样吗?