在Phonegap(Android)应用程序上使用Closure Library

sha*_*enq 7 javascript android internationalization google-closure-library cordova

您有任何人使用谷歌的Closure Library https://developers.google.com/closure/在Android上构建Phonegap应用程序.我已经读过Closure对应用程序的国际化有很好的支持.因此,如果任何人都可以提供他们推荐的材料或样本片段,以了解如何实现它.

fla*_*ian 3

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...

};
Run Code Online (Sandbox Code Playgroud)

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

myproject.boot = function(parameters) {
    myproject.translations.currentLanguage = parameters['currentLanguage'];
};
goog.exportSymbol('myproject.boot', myproject.boot);
Run Code Online (Sandbox Code Playgroud)

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