Проблема:
Я собираюсь реализовать язык локализацию в уже очень большое приложении Ipad, который был построен с использованием Сенча сенсорного завернутым в PhoneGap. У меня есть английский и испанский переводы в json-файлах.PhoneGap/Сенч Язык Локализация
Что я планирую делать:
Я планирую, чтобы загрузить файлы JSon в Сенча сенсорный магазин, создавая глобальный объект. Затем в каждом месте, где я вызываю текст, который отображается, я заменю текст вызовом глобального объекта.
Мой вопрос (ы):
Есть ли более простой способ реализовать язык локализации с моей установки?
Будет ли я сталкиваться с проблемами с родными материалами sencha (например, datepickers)?
При загрузке/перезагрузки языка JSon файлов, будет ли у меня производительность вопросы (требуют WebView перезагружать ?, объект Сенча изменение размера проблемы, и т.д.)
редактировать 1: Полезные относящиеся Info:
Для тех, кто идет по этой дороге, быстро становится полезным написать простой плагин для телефонных разговоров, чтобы установить языковые настройки устройства 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: кодировка символов При добавлении дополнительных символов языка для проекта сенча (или любого WebView PhoneGap проекта), убедитесь, что у вас есть соответствующие кодировки, указанные в индексном файле. Это тег, который мне нужен.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Посмотрите на этот ответ о том, как загрузить текст локализации в качестве переопределений. Так Sencha делает это, чтобы локализовать встроенные виджеты. http://stackoverflow.com/questions/8226173/sencha-touch-localization-use-a-store-or-a-global-json-object/8227539#8227539 – Stuart