El problema:
Estoy a punto de poner en práctica la localización del idioma a una aplicación iPad ya muy grande que se construyó utilizando el tacto sencha envuelto en PhoneGap. Tengo las traducciones de inglés y español en archivos json.Phonegap/Sencha de localización de idioma
Lo que estoy pensando en hacer:
planeo para cargar los archivos JSON en una tienda toque sencha, la creación de un objeto global. Luego, en cada lugar donde llamo texto que se muestra, reemplazaré el texto con una llamada al objeto global.
Mi pregunta (s):
¿Existe una manera más fácil de implementar localización de idioma con mi configuración ?
¿Tendré problemas con las cosas de sencha nativo (como datapickers)?
Al cargar/recargar los archivos de lenguaje de JSON, voy a tener un rendimiento cuestiones (requieren una vista web recargar ?, cuestiones de cambio de tamaño de objetos sencha, etc)
edición 1: útil relacionada Información:
Para aquellos que están por este camino, rápidamente se vuelve útil escribir un plugin de teléfono simple para obtener la configuración de idioma del dispositivo de iPad en su javascript. Esto requiere un plugin, que se verá algo como esto:
Javascript:
parte 1:
PhoneGap.exec("PixFileDownload.getSystemLanguage");
parte 2 (función de devolución de llamada):
setLanguage(returnedLanguage)
{
GlobalVar.CurrentLanguage = returnedLanguage; //GloablVar.CurrentLanguage already defined
}
Objetivo 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];
}
editar 2: codificación de caracteres Al añadir caracteres de idiomas adicionales a un proyecto sencha (o cualquier proyecto vistaweb PhoneGap), asegúrese de que tiene la correcta codificación especificada en el archivo de índice. Esta es la etiqueta que necesitaba.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Mire esta respuesta sobre cómo cargar texto de localización como anulaciones. Esta es la forma en que Sencha lo hace para localizar los widgets incorporados. http://stackoverflow.com/questions/8226173/sencha-touch-localization-use-a-store-or-a-global-json-object/8227539#8227539 – Stuart