Tha*_*hka 5 javascript html5 localization cordova
我正在创建一个可在所有3个移动平台(Android,iOS a和Windows Mobile 8)上运行的HTML5移动应用程序.我正在使用javascript进行本地化(https://github.com/eligrey/l10n.js/#readme).
该应用程序在浏览器上正常工作.但是当我在移动模拟器上部署它时,本地化不起作用.
我认为问题是javascript从浏览器获取语言信息,但在移动设备中我们使用PhoneGap运行HTML5.
有什么方法可以在PhoeGap中使用javascript启用本地化.
我刚刚通过为每个平台创建一个自定义 PhoneGap 插件来解决同样类型的问题,该插件仅返回用户当前的区域设置。
\n\n例如,在 Android 上,该插件仅检查:
\n\nvar message = Locale.getDefault().getLanguage();
然后在 Javascript 方面,当你得到该语言名称时,例如。en
,您将使用以该语言命名的 JSON 对象。JSON 对象的示例如下所示:
MyApp.Language = en: {\n \'Player\' : \'Player\',\n \'Players\' : \'Players\',\n \'Not Set\' : \'Not Set\'\n},\nfi: {\n \'Player\' : \'Pelaaja\',\n \'Players\' : \'Pelaajat\',\n \'Not Set\' : \'Ei m\xc3\xa4\xc3\xa4ritetty\'\n}\n
Run Code Online (Sandbox Code Playgroud)\n\nAndroid 的插件很简单:
\n\nJS文件
\n\nwindow.localizeMe = {\n getDefaultLocale: function( callback ) {\n cordova.exec(\n callback,\n function(err) {\n callback( \'Error: \' + err.code );\n },\n "LocalizeMe",\n "getDefaultLocale",\n []);\n }\n}\n
Run Code Online (Sandbox Code Playgroud)\n\nJava文件
\n\npublic class LocalizeMe extends CordovaPlugin {\n @Override\n public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {\n if (action.equals("getDefaultLocale")) {\n String message = Locale.getDefault().getLanguage();\n this.getDefaultLocale(message, callbackContext);\n return true;\n }\n return false;\n }\n\n private void getDefaultLocale(String message, CallbackContext callbackContext) {\n if (message != null && message.length() > 0) { \n callbackContext.success(message);\n } else {\n callbackContext.error("Expected one non-empty string argument.");\n }\n }\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n最后,在主 JS 文件中,设置应用程序的语言:
\n\nwindow.localizeMe.getDefaultLocale( function( result ) {\n if ( result != null && result.length > 0 ) {\n if ( result.toLowerCase().indexOf( \'fi\' ) !== -1 ) {\n MyApp.Lang = MyApp.Language.fi;\n } else {\n MyApp.Lang = MyApp.Language.en;\n }\n }\n});\n
Run Code Online (Sandbox Code Playgroud)\n
归档时间: |
|
查看次数: |
10576 次 |
最近记录: |