Проблема:
Я собираюсь внедрить локализацию языка в уже очень большое приложение ipad, которое было построено с использованием сенсорного экрана sencha, завернутого в телефонную связку. У меня есть английский и испанский переводы в json файлах.
Что я планирую делать:
Я планирую загрузить json файлы в сенсорный магазин sencha, создав глобальный объект. Затем в каждом месте, где я вызываю текст, который отображается, я заменю текст вызовом глобального объекта.
Мой вопрос (ы):
-
Есть ли более простой способ реализовать локализацию языка с помощью моего установка?
-
Я буду сталкиваться с проблемами с родным материалом sencha (например, datepickers)?
-
При загрузке/перезагрузке языковых json файлов у меня будет производительность проблемы (требуется перезагрузка webview, вопросы изменения размера объекта sencha, и т.д.)
edit 1: Полезная информация:
Для тех, кто идет по этой дороге, быстро становится полезным написать простой плагин для телефонных разговоров, чтобы получить настройки языка устройства ipad/iphone в вашем javascript. Для этого требуется плагин, который будет выглядеть примерно так:
Javascript:
часть 1:
PhoneGap.exec("PixFileDownload.getSystemLanguage");
часть 2 (функция обратного вызова):
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 (или любой проект телефонной сети веб-просмотра) убедитесь, что у вас есть правильная кодировка, указанная в индексном файле. Это тег, который мне нужен.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">