【发布时间】:2011-10-26 20:49:36
【问题描述】:
问题:
我即将对一个已经非常大的 ipad 应用程序实施语言本地化,该应用程序是使用封装在 phonegap 中的 sencha touch 构建的。我在 json 文件中有英语和西班牙语的翻译。
我打算做什么:
我计划将 json 文件加载到 sencha touch 存储中,创建一个全局对象。然后在我调用显示的文本的每个地方,我将用对全局对象的调用替换文本。
我的问题:
有没有更简单的方法来实现语言本地化与我的 设置?
我会遇到原生煎茶的问题(如日期选择器)吗?
加载/重新加载语言json文件时,会有性能吗 问题(需要重新加载 webview?,sencha 对象调整大小问题, 等)
编辑 1:有用的相关信息:
对于那些走这条路的人来说,编写一个简单的 phonegap 插件来将 ipad/iphone 设备的语言设置到您的 javascript 中很快就会变得有用。这需要一个插件,它看起来像这样:
Javascript :
part 1:
PhoneGap.exec("PixFileDownload.getSystemLanguage");
第二部分(回调函数):
setLanguage(returnedLanguage)
{
GlobalVar.CurrentLanguage = returnedLanguage; //GloablVar.CurrentLanguage already defined
}
目标 C:
-(void)getSystemLanguage:(NSMutableArray*)paramArray withDict:(NSMutableDictionary*)options
{
/*Plugin Details
PhoneGap.exec("PixFileDownload.getSystemLanguage");
Returns Language Code
*/
NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
NSArray* languages = [defs objectForKey:@"AppleLanguages"];
NSString *language = [languages objectAtIndex:0];
NSLog(@"####### This is the language code%@",language);
NSString *jsCallBack;
jsCallBack = [NSString stringWithFormat:@"setLanguage('%@');",language];
[self.webView stringByEvaluatingJavaScriptFromString:jsCallBack];
}
编辑 2:字符编码 在向 sencha 项目(或任何 webview phonegap 项目)添加其他语言字符时,请确保您在索引文件中指定了正确的编码。这是我需要的标签。
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
【问题讨论】:
-
看看这个关于如何将本地化文本加载为覆盖的答案。这是 Sencha 本地化内置小部件的方式。 stackoverflow.com/questions/8226173/…
标签: ios json localization cordova sencha-touch