【问题标题】:How-To support Internationalization of JQuery Mobile Offline Web App (i18n)?如何支持 JQuery Mobile Offline Web App (i18n) 的国际化?
【发布时间】:2012-05-04 15:48:30
【问题描述】:

我正在寻找一种通用机制来国际化必须在离线模式下工作的 Web 应用程序。

最初我正在考虑向元素添加 data-i18n 标记,但这似乎是一个非常丑陋的解决方案。

我遇到了http://panacodalabs.github.com/The-M-Docs/#components_&_utilities/m_i18n,但我不希望(或由于时间限制)将我的应用程序移植到该框架。

我需要一个 HTML5 jQuery Mobile 友好的解决方案来解决这个问题,它可以在离线模式下工作。

在我看来,HTML5 框架中缺少这个关键组件。

【问题讨论】:

    标签: html jquery-mobile internationalization offline-mode


    【解决方案1】:

    我不一定会说这是 JQM 应该提供的功能,因为这可能最好通过一些服务器端逻辑来完成。

    我可以想到两种方法:
    1. 在一些独立的 js 文件中包含所有语言翻译,您必须将其包含在清单文件中。检查datebox plugin 以了解如何做到这一点(右上角 - 选项)。
    2. 创建一个本地数据库并在其中存储所需语言的翻译。

    我认为第一个应该更容易处理,但可能更难设置/维护。另外,根据翻译的数量,js文件确实会变大......

    【讨论】:

    • 感谢您的建议。如您所知,越来越多的 Web 应用程序需要离线工作,因此我们需要开始越来越少地依赖服务器端来解决某些问题,例如国际化。我认为这不得不破解一些东西...... M项目提供了开箱即用的国际化,但我不想依赖那个纯js的框架,我没有时间学习他们的mvc应用模式。
    • 是的,这有点棘手。我也在用多种语言开发一个项目,但我不太确定如何让它离线(嗯......需要先让它在线......)。现在我正在混合 javascript 和服务器端,但是对于离线,我不确定我是否要下载完整的语言表,因为正如你所说,这些往往会变大。对于表单验证文本之类的简单内容,我可以将带有相关文本的 javascript array-sn-ps 放入页面中,离线存储时可以使用。虽然并不完美。
    • 我又看了看 Datebox。如果您在这里查看:源代码中的dev.jtsage.com/cdn/datebox/i18n,我认为每种语言的设置非常好。因此,您将拥有每种语言的 .js 文件,并且可能让用户决定他们希望哪一个使 avaialbel 离线。如果您破解某些东西,我几乎建议您朝这个方向发展。
    【解决方案2】:

    你看过 jQuery i18n 插件吗?

    http://recursive-design.com/projects/jquery-i18n/

    我目前正在将它与 jQuery 1.7.1 和 jQuery Mobile 1.1.0 一起使用,它运行良好。

    【讨论】:

    • 我看不出这有什么帮助。为 JS 文件中的每种语言创建一个 JSON 字典,并在文本应包含的位置包含变量。然后在JS文件之间切换以更改语言。这就是我的解决方案。我看不出那个插件有什么帮助 - 你能详细说明一下吗?
    猜你喜欢
    • 2012-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 2016-11-06
    相关资源
    最近更新 更多