1

我非常清楚如何组织服务器端国际化 - 检测语言首选项并在处理请求页面的 HTML 中打印相应的翻译字符串。

但是在客户端上做不是更合适吗?应该如何组织?我在想

  1. 检测 JavaScript 中的语言首选项
  2. 请求语言文件
  3. 打印页面上的字符串

我在弄清楚最后一部分时遇到问题:在页面上打印字符串。我们使用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 的努力真的是这样吗?

4

3 回答 3

1

做客户端 i18n 正在增长——随着在 Web 中实现客户端应用程序变得更加成熟。

您可能会受到http://i18next.com/docs/的启发

于 2013-06-05T09:00:31.353 回答
0

在我看来,您应该通过服务器端翻译它,因为它更容易处理搜索引擎优化 (SEO)。

当您在客户端执行此操作时,慢速连接可能更难看到它。我见过一些网站会在几秒钟后翻译所有内容,更改所有内容,这对观众来说太可怕了!

于 2021-10-03T08:09:45.787 回答
0

这取决于您使用的框架。如果您使用诸如 ASP.NET 或 PHP 之类的服务器端框架,那么您将在服务器端进行本地化。如果您使用 Angular 或 React 等客户端框架,那么您可以在客户端执行此操作。

如果您的应用使用来自 REST API 的数据,您可能需要在服务器上进行一些本地化。

于 2021-10-03T18:29:56.303 回答