【发布时间】:2010-02-12 11:00:31
【问题描述】:
概述
我想听听有关我将 AJAX 应用程序国际化的方法的反馈。这是一种合理的方法吗?什么样的其他方法值得考虑?以下是该应用程序的摘要:
- AJAX 应用程序从使用 i18n 生成的服务器端生成的单个 HTML 页面运行
- HTML 页面导入 JQuery 和插件
- 根据需要使用 XHR 加载服务器生成的 i18n HTML 模板
- 从 REST url 加载 JSON 格式的应用程序数据
- 使用模板和数据组合结果
更多详情
构建一个重 ajax 的应用程序,它几乎只是一个标准的 HTML 页面。此页面是通过服务器端框架动态生成的,并在服务器端完全国际化。此页面加载 JQuery 以及几个插件。
从现在开始,应用程序主要只执行 XHR 请求。其中一些请求是针对 HTML 模板(带有占位符的 HTML 代码的 sn-ps),JQuery 使用这些模板在页面上生成动态内容。这些类型的请求通常不包含任何应用程序数据,而只是应显示数据的位置的占位符。这些 sn-ps 是在服务器端动态生成的,并且使用了 i18n。每个模板只需要请求一次。
应用程序正在使用的大部分请求都是针对应用程序数据的。该数据通过 XHR 请求检索到输出 JSON 数据的 REST 服务。然后,jQuery 代码使用这些原始数据来填充模板并构建页面的各个部分。数据数组导致模板重复。因为这些数据是来自数据库的,所以没有对其执行 i18n。
客户端国际化
如果 UI 最终需要任何其他 i18n 字符串,它们可以存储在 JSON 中,并作为初始 HTML 页面的一部分或作为返回 JSON 键/文本映射的特殊 REST url 提供。错误消息等功能可能需要这个。
客户端本地化
这让我想到了本地化。日期和金钱之类的东西将以标准化格式在 JSON 数据中传输。因此,由客户以正确的格式为客户显示此信息。我不认为这会是一个太大的问题,或者会吗?
如果可以,也许我应该让服务器端根据客户端区域设置返回适当的格式字符串。客户可以使用DateJS 之类的东西来格式化日期。我还不太确定,特别是因为 DateJS 太大了。但还有其他更小的客户端选项。
资源
我找到了一些可能对此有所帮助的 jQuery 插件。有人对他们有什么要说的吗?或者认识其他人?
【问题讨论】:
-
我想没有人对此有任何意见......我想知道这是否意味着 A:我的问题太罗嗦了,没有人在阅读它。 B:没有人认为这种方法有任何问题。 C:没有人真正关心。 ;)
-
你对这个问题有什么结论吗?
-
@Kimble:还没有确定性。我几乎推出了自己的 i18n/l10n 代码。由于我的应用程序已经在使用 FullCalendar 插件,因此我将它用于 formatDate 和 parseDate,而不是包含完整的 DateJS,但它的功能有限。我的解决方案目前有效,但我相信我很快就必须重新设计它。你有什么想法吗?
-
这些天我正在处理一个非常相似的问题。我采用了混合方法。 * 我通过加载的大部分数据。 rest 已经本地化/国际化。 * 我在服务器端生成 EJS 模板,所以我不必在客户端处理那么多字符串。我最大的问题/烦恼是客户端的日期处理。
-
你可以试试i18next.com 用于 i18n。有关日期的东西,请查看 http://momentjs.com(真的很棒)。
标签: javascript web-applications localization internationalization