PDA

Ver la Versión Completa : Deployment con TLang


jhonny
02-07-2014, 15:51:19
Hola amigos, estoy realizando un sencillo juego para Android y considero que en la experiencia me ha ido bien pues ya tengo algunas revisiones en fase alpha que funcionan, pero en la última versión decidí incorporar la utilización del TLang para varios idiomas, si lo ejecuto en mi Windows para probarle funciona de mil maravillas, pero al pasarlo a un dispositivo móvil dejó de abrir, no sale un error, ni un aviso... simplemente parece que fuera a cargar y antes de que lo haga se cierra.

Le he echado la culpa al TLang porque fue lo último que monté y además sin él corre sin problema.

¿Hay algún archivo que se debe pasar en el apk que sirva como recurso del TLang?, ¿a alguien le ha sucedido algo parecido o tiene alguna sugerencia de lo que pueda estar sucediendo?

jhonny
02-07-2014, 21:54:56
¡Caramba!, ya lo solucioné. Resulta que estaba capturando la cadena correspondiente al idioma configurado en Android (Para hacer esto solo es necesario asignarle True a la propiedad Autoselect del TLang), yo solo había ingresado la traducción para es (Español Latinoamerica) y en (Ingles), pero resultó que en algunos celulares, el codigo de idioma es sp (español estados unidos), al hacer dicha captura pues no encontraba sp y ahí el defecto.

Entonces las 2 posibles soluciones a este caso son:

1) Agregar sp como idioma al TLang.
2) Y por esta fue la que opté... validar la situación manualmente donde se presente el problema e indicarle que si no está en la lista (TLang.Resource) el idioma en cuestión, pues ejecute el valor por defecto.

En mi caso tenía lo siguiente:


vMensajeAdvertencia := LngPpal.LangStr[LngPpal.Lang].Values['vMensajeAdvertencia'];


Y ahora tuve que hacer...


if LngPpal.Resources.IndexOf(LngPpal.Lang) <> -1 then
vMensajeAdvertencia := LngPpal.LangStr[LngPpal.Lang].Values['vMensajeAdvertencia']
else
vMensajeAdvertencia := 'Aún quedan';


Quizá no sea lo más optimo, pero mientras comprendo más este componente, dicha solución me ha funcionado muy bien.