【问题标题】:Using Closure Library on Phonegap(Android) application在 Phonegap(Android) 应用程序上使用闭包库
【发布时间】:2012-10-26 23:07:36
【问题描述】:

您好,有人在 Android 上构建 Phonegap 应用程序时使用过 google 的 Closure Library https://developers.google.com/closure/。我读过 Closure 对应用程序的国际化有很好的支持。因此,如果有人可以提供他们参考的材料或示例 sn-ps 以了解如何实施它。

【问题讨论】:

  • 您的问题相当模糊。还有更多细节吗?附带说明一下,在移动应用程序中使用 Google 的 Closure 库听起来是个好主意,事实上,我正在帮助的一个项目正在计划使用 Closure 库和编译器来开发适用于 Android 和 iOS 的移动应用程序,尽管我们'重新计划只使用 Web 视图而不使用 Phonegap。
  • 我打算使用 Closure 库来实现我的 phonegap 应用程序的国际化。目前我在我的应用程序中使用它,但我得到的错误很少。所以我想知道是否有人在这里做过类似的工作。此外,在您的项目中,您将使用 Closure 作为手机浏览器,如果我错了,请纠正我。
  • 从本质上讲,PhoneGap 只是使用 WebView 显示您的代码,但它添加了一些通过 JavaScript 可用的额外 API。我已经使用 WebViews 完成了一些事情,我添加了 JavaScript 可以调用来播放音频的函数。 PhoneGap 基本上做同样的事情。
  • 好的,那么你开始在你的应用程序中使用闭包了吗?
  • 还没有,我们仍处于计划阶段,但我一直在使用 Closure 而不是移动设备。

标签: javascript android cordova internationalization google-closure-library


【解决方案1】:

您使用 PhoneGap 的方式没有区别。在原生应用背景中构建 Web 视图,不会改变。

与任何其他库不同,Closure 库会将您的 javascript 编译为具有语义特征的原始代码。 否则是的,请随意使用,包括PhoneGap。

当你用 Closure 构建东西时,你可以用 JavaScript 渲染 DOM。它超级快,比传统方式好得多。

所以您使用goog.dom.createDom 创建您的页面。您将在下面找到一个示例。

var menuButton = goog.dom.createDom('a', {
    'class': 'menu-button',
    'otherAttributes': 'otherValues etc'
}, myproject.translations.menuButton.currentLanguage);

//Now you have a file like this:
goog.provide('myproject.translations');

// Language variations corresponding to that element.
myproject.translations.menuButton = {
    'EN': 'go',
    'FR': 'aller',
    'DE': 'gehen'//etc...

};

在需要翻译的地方执行上述操作。然后只需使用非常简单的方法设置当前语言即可。

myproject.boot = function(parameters) {
    myproject.translations.currentLanguage = parameters['currentLanguage'];
};
goog.exportSymbol('myproject.boot', myproject.boot);

然后调用 index.php 或 window.load 上的任何内容中的 boot 方法,并使用来自服务器的引导参数回显 JSON 字符串。请注意,来自服务器的所有内容在引用时都必须包含在引号中。否则编译器将在 ADVANCED_OPTIMIZATIONS 模式下展平属性名称。

【讨论】:

  • 是的,我同意你所说的,但我想知道如何使用closure.js 对字符串进行本地化。
  • 如果您想使用“google”方式进行本地化,您需要为每个语言环境编译一个单独的 js 文件 - 实际上,默认情况下,编译器会为您可能的任何库假定 en_US 语言环境具有语言环境支持的使用。我不知道是否可以在运行时为这些库选择语言环境(如果您使用它们),但我对此表示怀疑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-11
  • 2023-03-09
  • 1970-01-01
相关资源
最近更新 更多