Spanish [SOLUCIONADO] Has traducido la ficha de PlayStore al Español , pero no has traducido el APK.

vbmundo

Well-Known Member
Licensed User
Amigos,

Mi APK esta en Ingles, porque el mercado de ese idioma es inmenso, y porque los desarrolladores Españoles (mi App es un MySQL Manager) comprenden perfectamente una APP en Ingles.

y he creado ambas fichas en Google Play.. en Español (con textos en Español) Y la ficha en Ingles.

Como se hace para convertir tu APP en MultiCulture ? es decir, que internamente detecte el idioma del Usuario y cambie los textos en tiempo de Ejecución ?

Gracias
 

Descartex

Well-Known Member
Licensed User
Longtime User
Muy buenas, Pablo.
En las apps multiidioma que he creado, he tirado por el camino fáci, te explico.
He creado una base de datos SQlite en la cual creo una tabla llamada LanguageFields, en ella para cada etiqueta "a traducir" le creo un campo y en el campo Tag del objeto, le pongo el nombre del campo. Por ejemplo:
Tengo 3 botones que serán Abrir, Cerrar, Salir y 2 labels llamadas Usuario y Contraseña.
En la tabla LanguageFields, tendré 5 campos llamados lfOpen, lfClose, lfExit, lfUser y lfPassword, con 2 registros, en este caso uno para Inglés y otro para Español. los datos serían:
LanguageName --- Español --- English
lfOpen --- Abrir --- Open
lfClose --- Cerrar --- Close
lfExit --- Salir --- Exit
lfUser --- Usuario --- User
lfPassword --- Contraseña --- Password

B4X:
btnOpen.Tag="lfOpen"
btnClose.Tag="lfClose"
btnExit.Tag="llfExit"
lblUser.Tag="lfUser"
lblPassword.Tag="lfPassword"

En la primera ejecución, le pregunto al usuario que idioma utilizar y lo guardo con StateManager, así ya se para las proximas ejecuciones el idioma a utilizar. Antes de arrancar la app, cargo todos los valores del idioma en un map, llamado LanguageFields, para hacer más sencillo el acceso a las etiquetas.
Despues de cargar los controles, hago la asignación de valores:
B4X:
btnClose.Text=LanguageFields.Get(bntClose.Tag)

Espero que te haga ayudado.
Un saludo
 

vbmundo

Well-Known Member
Licensed User
Mira amigo,

Estuve buscando y a lo que Google Play se refiere es a esto..

https://www.b4x.com/android/forum/threads/localize-your-app-using-androidresources.19165/

a Archivos XML en la carpeta RES, que indican un archivo para cada idioma.

Así es como se resuelve en el resto de los lenguajes.

Si tu le "Preguntas" al usuario el idioma, estas haciendo que tu APP no sea intuitiva y como usuario me gustaria que funcione en Automático.

Y el otro problema, es que Google Play seguiría alertandote de que tu APP no es MultiIdioma.

Saludos y Gracias
 

Descartex

Well-Known Member
Licensed User
Longtime User
Muy buenas, Pablo.
El tutorial que enlazas es bastante sencillo... me imagino que no tendrás problemas en adaptarlo a tu app. Con ello, Google Play te debería decir que es Multiidioma.
Leyendolo con detenimiento, evidentemente es la mejor solucion, mucho mejor que mi "chapuza" para salir del paso.
Si necesitas ayuda en la adaptación, no dudes en pedirla.
Un Saludo.
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola Pablo

Si tu le "Preguntas" al usuario el idioma, estas haciendo que tu APP no sea intuitiva y como usuario me gustaria que funcione en Automático.

Creo que es un poco fuerte que le digas a Descartex que sus App no son intuitivas, no sólo hace intuitiva una App la selección del lenguaje automatico, que es una selección de una sola vez, no estas cambiando el lenguaje cada momento, lo intuitivo de la App será la forma de hacer el codígo y la interacción con el usuario, y si no has visto sus App creo que ese comentario está fuera de lugar, y que conste que no intento ser árbitro de nadie, solo exponer lo que leo y que posiblemente Descartex por prudencia no te haya contestado. Y mas cuando es un miembro de los mas activos de este foro ayudando a la gente.

Si tan importante es para ti la seleccion de idioma automatico, puedes hacer una consulta con la libreria reflector y saber que idioma tiene el dispositivo y poner el mismo idioma automaticamente, pero eso seria un nuevo hilo y no este.

Saludos
 

vbmundo

Well-Known Member
Licensed User
Hola Pablo



Creo que es un poco fuerte que le digas a Descartex que sus App no son intuitivas, no sólo hace intuitiva una App la selección del lenguaje automatico, que es una selección de una sola vez, no estas cambiando el lenguaje cada momento, lo intuitivo de la App será la forma de hacer el codígo y la interacción con el usuario, y si no has visto sus App creo que ese comentario está fuera de lugar, y que conste que no intento ser árbitro de nadie, solo exponer lo que leo y que posiblemente Descartex por prudencia no te haya contestado. Y mas cuando es un miembro de los mas activos de este foro ayudando a la gente.

Si tan importante es para ti la seleccion de idioma automatico, puedes hacer una consulta con la libreria reflector y saber que idioma tiene el dispositivo y poner el mismo idioma automaticamente, pero eso seria un nuevo hilo y no este.

Saludos

Jesus, no le he dicho a Descartex que sus Apps no son Intuitivas. En todo caso, de que esa práctica en particular lo es. esto es un foro y volcamos opiniones e ideas,. el termino "Intuitivo" en Sistemas, refiere exactamente a eso. a que la APP descubra info sin necesidad de pedirsela al usuario.

No fue mi intensión ofender a nadie. y por lo que se.. todos tenemos mucho que aprender y si hay un "Ignorante" en B4A aquí soy yo.. pero como buen programador, tuve que darle a Descartex mi opinión al respecto.

Mientras yo culpaba a una Clase por no funcionar, muchos me decían que quizás era mi código el erróneo, y yo me enojaba porque lo revisaba 1000 veces y lo veía perfecto. y finalmente no importaba si era una cuestión Ilógica.. el lenguaje B4A maneja las cosas así y si te gusta bien y sino también. Fue una gran lección para mi.

Y me encantaria descargarme aplicaciones de ustedes... quiero aprender mucho mas .. y ustedes saben mucho de B4A.

que nadie se ofenda y vuelvo a pedir disculpas si fui mal interpretado.

Saludos y Gracias
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola Pablo

Supongo que ya resolviste de una forma u otra esta cuestión, podrias añadir a la cabecera [SOLUCIONADO] y así ayudas a que el foro sea mas activo.

Gracias

Saludos
 

bgsoft

Well-Known Member
Licensed User
Longtime User
gracias ;)
 
Top