Práctica de aplicaciones Android

Hola, Pablo:

Te quería preguntar si para practicar y traducir en XDA tenemos que registrarnos y estar atentos si alguien necesita traducir su aplicación y enviarles un mensaje ¿o cómo funciona? ya que tal vez tienes más idea. Porque al principio quise enviar un mensaje para decir que podía colaborar y traducir al español y me decía “You have insufficient privileges to reply here”, aunque ahora sí me deja responder los mensajes.

Siguiendo con XDA, lo que me pareció raro es que a veces están los strings en la página de One Sky, que por lo que vi es una página paga para traducir y localizar. Pero, aparte de eso, como me gustaría tener los strings para hacer una base de datos terminológica en Trados, pensé en copiarlos y pasarlos a un Excel.

En cuanto a F-droid tuve más suerte y pude traducir una aplicación. Lo único es que tampoco te deja bajar las cadenas de texto porque la traducción se hace directamente en Weblate.

Por último, he intentado con APKTool y me llevó casi todo el día (no soy para nada geek lamentablemente :grin: ). Con el paquete Zip que nos has preparado me funcionó perfectamente. Sin embargo, intenté descargar varias aplicaciones de Google Play, les cambié el nombre a APK_to_localize y seguí las instrucciones, pero me dice que no encuentra los archivos o que no los puede decodificar. Solo generaba la carpeta smali. Así que descargué la última versión de APKTool y le cambié el nombre a los archivos por apktool.jar pero ni con ese ni con APK_to_localize funcionaban. Incluso hice lo que decía en la página de APKTool https://ibotpeaches.github.io/Apktool/install/ al instalarlo y no hubo caso.

Este último método de APKTool me hubiera gustado poder usarlo y tener la libertad de elegir las aplicaciones que más me interesan; además se puede descargar las cadenas de texto directamente. Aunque leí que hay algunas aplicaciones que no funcionan.

Igual todos estos recursos que nos diste me parecen muy completos para comenzar a practicar, solo me quedaría conocerlos un poco más para poder aprovecharlos al máximo. Por ahora voy a seguir con weblet que está bastante fácil. Si tienes alguna sugerencia de dónde encontrar aplicaciones con cadenas de texto listas para descargarlas y traducirlas, como hicimos en los ejercicios de práctica, te lo agradecería también. :grinning:

¡Saludos!

¡Hola, @Sol_Marianela!

Gracias por tu mensaje porque creo que puede ayudar a otras personas. :smiley:

Como bien has visto, y como comento al principio del curso, muchos proyectos de traducción se hacen directamente en herramientas online y no tanto de forma local, ya que con tantas actualizaciones, hay que reconocer que es lo más práctico. Eso tiene como inconveniente que no puedes trabajar de la manera que a ti te gustaría y conservar tus memorias de traducción, pero bueno, es una práctica del sector para bien o para mal.

En cuanto a lo que me dices del APKTool, has hecho bien en descargar la última versión porque es verdad que la que pongo en el curso no está actualizado, tengo que actualizar el paquete aunque sea, bien visto. :face_with_monocle:

No obstante, me parece raro que hayas tenido tantos problemas de descompilación. Sí que es verdad que a veces luego no se compila, pero al menos deberías tener acceso al archivo de strings aunque sea para practicar aunque no puedas implementarlo todo luego.

¿Con qué aplicaciones has probado? Yo he probado con esta y me ha funcionado a la perfección:

Puedes descargar el APK desde aquí mismo:

¿Podrías probar a ver si te funciona con esa?

¡Ya me dirás! :slight_smile:

¡Muchas gracias Pablo! Al final logré descompilar nuevas aplicaciones sin problemas. Y en las aplicaciones que ayer me daban error como: SmartPosture™ The Ultimate Phone Posture App y ColorNote Bloc de notas Notas es verdad que al menos estaba el archivo de strings que es lo que más me interesaba, no me había dado cuenta.

Saludos :grinning:

¡Perfecto entonces! Todo en orden. :smiley: ¡Gracias a ti! :slight_smile:

¡Hola!

Me presento: soy Carmen y es la primera vez que participo en uno de vuestros foros. Soy lectora asidua de Traduversia, pero hoy, por fin, me he animado a escribir. :smiley:

Estoy comenzando el TFM de mi segundo máster. Me gustaría localizar una app móvil sobre primeros auxilios, pero al descargar el APK y explorar los archivos, me he dado cuenta de que los títulos que conforman el índice no aparecen por ningún lado (los descargo desde APK Pure y los descompilo con APK Easy Tool). He probado un par de aplicaciones y siempre me topo con el mismo problema: encuentro todo el texto de la aplicación excepto los títulos del índice. ¿A qué podría deberse esto? ¿Tienen algo de especial los títulos del índice y no están alojados dentro del APK?

Muchas gracias por vuestra contribución a formar y ayudar a traductores. Hacéis una gran labor. :wink:

¡Saludos!

¡Hola y bienvenida, @carmennv96! :slight_smile:

Ten en cuenta que si el desarrollador prepara el índice de una manera atípica, con este método no podrás encontrar las cadenas, ya que a lo mejor las genera el propio código (hard-coded strings), y ahí poco se puede hacer sin el código original. :frowning:

No obstante, no sería raro que justo ese texto esté en otra carpeta en algún otro archivo XML. ¿Has comprobado eso?

¿Tienes por ahí el enlace a mano del APK en Pure Transfer para que le eche un vistazo?

¡Gracias!

Pablo

¡Hola, Pablo! Muchas gracias por tu respuesta. :grin:

El enlace en wetransfer es el siguiente: https://we.tl/t-WErvAM0vYY

Lo curioso de esta aplicación es que los archivos (que están en la capreta assets) no son XML, sino HTML (he hecho una comprobación y pueden editarse y luego compilarse perfectamente). Además, es curioso que, aunque la app está en inglés, algunos de los HTML tienen nombres españoles (aunque yo ya no me sorprendo de nada ja, ja).

¡Muchas gracias! :smiley:

1 me gusta

¡Hola de nuevo, Carmen!

Muchas gracias por el enlace. Acabo de probar y básicamente no es una aplicación creada mediante Android Studio y esas cosas, sino que es una aplicación HTML5 convertida directamente a una aplicación móvil. En el curso justo comento que hay aplicaciones que se crean mediante kits de desarrollo (SDK).

Por tanto, como bien has averiguado, realmente el texto que traducir está en la carpeta de assets, justo en los archivos HTML. Adjunto captura:

Si traduces el texto entre la etiqueta “title” del principio, ¿no aparece traducido luego en el índice al compilarlo todo de nuevo?

¡Hola, Pablo!

Siento decirte que no aparece traducido. :worried: Creo que no son los mismos segmentos. Me he fijado en que, en el índice, el tercer elemento es Dehydration and Heat Stroke, mientras que el título de la sección (el que se ve una vez que accedes) es Heat Stroke and Dehydration (justo al revés). He buscado el segmento Dehydration and Heat Stroke (en ese orden) y no me aparece por ningún lado.

¡Gracias y saludos!

1 me gusta

Vale, ¡gracias por mirarlo!

Creo que lo tengo, mira en este archivo:

smali/ferdari/primeros_auxilios/english/main.smali:

A ver si cambiando eso te funciona. :crossed_fingers: Claramante es algo hard-coded como decía, así que no sé si lo va a interpretar bien el compilador ahora, pero está ahí.

¡¡Siiiiiiiiii, ahora sí ha funcionado!! Muchísimas gracias :smiley: :clap: :clap:
Pablo, ¿hay alguna razón por la que hayan insertado el texto ahí y no en un archivo HTML o XML como el resto del texto?

1 me gusta

¡Bieeeeeeen! :partying_face: :partying_face: :partying_face:

Pues la razón, a mí modo de ver, es sencilla: es un poco chapucero básicamente. :rofl:

Pero bueno, la aplicación funciona y supongo que es lo importante de cara a la funcionalidad. Pero a nivel de localización, está claro que no se ha hecho una buena internacionalización. Es algo que puedes comentar en tu TFM, ya que básicamente esto te obliga a machacar el texto para todos los idiomas al no cambiar según el locale, ya que solo hay un archivo común para todos los idiomas.

Si te preguntas cómo lo he encontrado, Sublime Text tiene una función de “Find in files” para buscar en todos los archivos que contengan texto dentro de una carpeta (incluye subcarpetas). Me has dado una pista con el texto que era diferente, así que tienes tu mérito, por supuesto. :slight_smile:

¡Me alegro de haberte ayudado! Estas cosas me encantan, ja, ja, ja, lo malo es que no tengo mucho tiempo para trastear. :stuck_out_tongue:

No conocía esa herramienta, ¡me la apunto! :smile:

Pues sí, por desgracia son muchos los productos que no están bien internacionalizados y, claro, eso luego al hacer la localización se nota.

¡Muchísimas gracias por tu ayuda, Pablo! Dos TFM, y en los dos me has ayudado :grinning: :clap: (mi TFM anterior fue de testeo de videojuegos y también supe que podía contar contigo para resolver unas dudillas :slightly_smiling_face:)

¡Gracias y saludos!

1 me gusta

¡Hola Pablo!

Te escribo porque hace bastante tengo dudas con algunas cadenas a la hora de traducir. Por ejemplo, el siguiente fragmento:

1-
image

El cuál a veces aparece traducido de la siguiente manera:

image

o

image

(donde el signo Más aparece separao de Alt y de Shift, por ejemplo). Aquí, yo dejo el signo Más pegado a la palabra, como aparece en la segunda imagen. ¿Está bien?
Delete, enter, space ¿hay que traducirlos por: eliminar,enter/intro, espacio? ¿Alt+, Ctrl+, Meta+, Shift+ se lo deja igual?

2- Por otro lado, te quería preguntar si a la palabra App la podemos dejar como app en lugar de aplicación ya que es más corta y me parece más adecuado en una aplicación.
También, si la frase Navigate up la podemos traducir simplemente como Subir, en lugar de Desplazarse hacia arriba que es más corto y se entiende igual.

3- ¿Debemos traducir la parte que dice sans-serif? Yo lo he dejado así como estaba porque sería el tipo de letra.

image

4- Cuando decido descomprimir los APK, muy pocas veces consigo casi todas las cadenas de texto de una app. Generalmente, lo único que se descarga son estan cadenas:

Solo tuve éxito con unas pocas apps, por ejemplo, la famosa app Too Good To Go que pude descargar, pero igual no estaban todas las cadenas que se ven en la app. ¿Por qué será? ¿Es el dueño de la app que no deja ver todas las cadenas o es otra cosa?

5- Por último, si bien sé que las cadenas a traducir se encuentran en el documento strings, mi duda es si el documento plurals ¿también debemos traducirlo?

Espero haber sido clara.

Saludos :grinning:

1 me gusta

¡Hola, @Sol_Marianela!

Muchas gracias por tus preguntas. Te agradezco también que hayas usado capturas de pantalla porque sin duda así es más fácil seguirlo todo. :smiley:

Sí, el signo + es correcto dejarlo tal cual. Normalmente aparecerá combinado, tipo “Ctrl+Mayús”. Hay quien considera que debería haber un espacio en el operador (es decir, “Ctrl + Mayús”), pero sin más contexto sinceramente no probaría a añadir espacios, es algo que no afecta a la comprensión.

“Eliminar” está bien y sinceramente lo prefiero, pero al menos en teclados se suele ver más “Suprmir”. De hecho, la abreviatura suele ser “Supr”. “Shift” se traduce como “Mayús” (sin punto).

No hay ningún problema en usar “app”. Personalmente prefiero “aplicación” si cabe, pero a día de hoy “app” es algo ya bastante establecido. Esto también puede ser preferencia del cliente, así que buscaría en su terminología (si la hay).

No veo ningún problema en esto, me parece buena solución si no hay espacio. :smiley:

Esto no me atrevería a modificarlo sin preguntar al cliente. Lo más seguro sin duda es dejarlo como está porque quien lo lea lo va a entender seguro.

Esto la verdad es que depende mucho de la aplicación. Al fin y al cabo, estamos usando un proceso de ingeniería inversa, así que es esperable encontrar este tipo de cuestiones. :sweat_smile: ¿Has probado a usar la última versión del APK Tool? Apktool | Apktool

Tener la última versión puede ayudar. Las instrucciones de descompilación y compilación deberían ser las mismas. :slight_smile:

También puede suceder que las cadenas no estén en la carpeta “values” o que incluso no estén en un archivo llamado “strings.xml”. Nada como investigar todos los XML “sospechosos” que encuentres.

Muy buena pregunta. Te confirmo que sí, hay que traducirlos. Esto es algo relativamente nuevo, ahora se separan estas cadenas para una mejor identificación.

¡Espero haberte ayudado! Si me he olvidado de algo o necesitas más aclaraciones, aquí me tienes. :smiley:

¡Muchísimas gracias Pablo! ¡Está todo más que claro! Admiro todo lo que sabes y quisiera ser como tú cuando sea grande :grin:

Saludos :grinning:

1 me gusta

Ja, ja, ja, nada, es simplemente experiencia… Tú vas muy bien encaminada con el nivel de estas preguntas y la forma de exponerlas. :smiley:

¡Que vaya todo bien! :relaxed:

1 me gusta