Traducir Aplicaciones
Todos nos hemos encontrado alguna vez con alguna ROM, aplicación o juego al que le hemos echado en falta tenerlo en nuestro propio idioma, el castellano. Hoy vamos a mostraros de un modo muy sencillo como incorporar otro idioma a una aplicación. En mi caso todo empezó el día que me propuse traducir por completo una ROM de la que hemos hablado ya aquí en 4ndroid, la RoDrIgUeZ, de xda-developers. Posteriormente he seguido traduciendo otras ROMs y aplicaciones de las cuales hoy en día siguen teniendo mi soporte como es el caso de QuickPic.
Para poder añadir un idioma a una aplicación con Windows necesitamos varias herramientas, todas ellas fácilmente localizables con Google:
- Apktool
- Apktool Windows Instaler
- Java
- Notepad2
- 7zip
Tanto el Apktool como el Apktool Windows Instaler (aapt.exe, apktool.bat y apktool.jar) hay que copiarlo directamente en “c:WindowsSystem32”, de este modo siempre tendremos indexado esta aplicación y podremos, desde cualquier directorio, llamarlo para trabajar con el.
1.- Si lo que queremos traducir es una ROM entera usaremos el 7zip para extraer de ella las apks (aplicaciones) que queremos traducir. Si lo que queremos hacer es simplemente traducir una apk en concreto podemos pasar directamente al paso 4. Ojo, no debemos descomprimir el zip puesto que si así lo hacemos quedará inutilizado al no estar firmado y haber perdido su compresión.
2.- Ahora necesitamos extraer el “framework-res.apk” de la ROM y copiarlo en una carpeta de fácil acceso (por ejemplo “c:Temp”).
3.- Abrimos la consola del DOS (CMD) y escribimos:
apktool if framework-res.apk
Con esto lo que hacemos es asegurarnos que los recursos necesarios que usa la aplicación y están enlazados con el núcleo de la ROM (“framework-res”) se enlazarán correctamente y no tendremos errores al decompilar (desmontar) o compilar (montar) la aplicación.
4.- Colocamos nuestra apk en una carpeta de fácil acceso tipo “c:Temp”. Para poder explicarlo de modo sencillo vamos a tomar como ejemplo la aplicación “calculator.apk” que ya lleva el idioma español incorporado. Luego cada uno pondrá el nombre de la aplicación que quiere traducir en lugar de la “calculator.apk” que tomamos como ejemplo. Abrimos la consola del DOS (CMD) y nos situamos en la carpeta donde hemos colocado la apk (si habéis seguido el ejemplo sería en “c:Temp”). Una vez allí dentro escribimos:
apktool d calculator.apk
En este momento se pondrá el motor del apktool en marcha y procederá a decompilar la apk. Una vez haya finalizado el proceso nos habrá creado una carpeta con el nombre de la aplicación que hemos decompilado.
5.- Abrimos la carpeta nueva que se nos ha creado. Dentro encontraremos que nos ha creado varias subcarpetas (res, smail, AndroidManifest.xml y apktool.yml). La subcarpeta que nos interesa a nosotros es la que pone “res”. Dentro de esta subcarpeta se haya la parte de los idiomas y los gráficos. (como el tema que nos ocupa hoy es la traducción vamos a dejar la parte gráfica para explicarlo en otra ocasión).
6.- Abrimos la subcarpeta “res” y vemos que existen otras muchas subcarpetas. A nosotros nos interesa la carpeta “values”. La carpeta “values” sería la principal y es la que coje el sistema por defecto para poder entender que es lo que se le está pidiendo. Luego vendría la propia del idioma que tiene el teléfono seleccionado por defecto, en nuestro caso sería “values-es”.
7.- Ahora cogemos la carpeta “values” y hacemos una copia de la misma añadiendo la terminación “–es”de modo que nos quedará así “values-es”.
8.- Abrimos la carpeta que hemos creado, “values-es”, y vemos que dentro hay varios archivos (en nuestro caso solo uno). El archivo que siempre se ha de traducir es el “strings.xml”. Las traducciones deben ser las que están dentro de los símbolos “<” y” >” y lo haremos usando el notepad2. En otras ocasiones también es necesario traducir el “arrays.xml” y “plurals.xml”. Con estos archivos debemos llevar cuidado ya que no se deben traducir todos los strings. Sólo aquellos que no estén denominados como values. Para saber cuales se deben traducir y cuáles no lo mejor es cogerse otra carpeta de otro idioma (tipo “values-it” por ejemplo) y ver que cadenas se han traducido y cuáles no. Si se tradujera un valor que no se debe traducir, al ejecutar la aplicación nos daría un FC.
Ejemplo:
Original -> <string name=”basic”>Basic panel</string>
Traducido-> <string name=”basic”>Panel de funciones básicas</string>
9.- Una vez hemos traducido todas las cadenas nos queda compilar la aplicación. Para ello abrimos la consola del DOS (CMD) y nos situamos en la carpeta donde hemos colocado la apk (si habéis seguido el ejemplo sería en “c:Temp”). Una vez allí dentro escribimos:
apktool b calculator calculator-es.apk
Haciendo esto lo que hemos conseguido, si toda ha ido bien, es crear una compilación nueva con nuestra traducción incorporada llamada “calculator-es.apk”.
10.- La aplicación creada no nos sirve como sustituta de la original que tenemos. Tened en cuenta que el uso del apktool es una manera de entrada a la aplicación por la puerta trasera, es decir, forzada, no creada por programación. Sin embargo no todo está perdido. Para solventar este problema y poder tener la aplicación traducida, debemos abrir ambas apks (original y la compilada por nosotros) con el 7zip y simplemente sustituir el archivo “resources.arsc” de nuestra compilación por el que tiene la original. Tan sencillo como arrastrar de una ventana a otra sobrescribiéndolo y listo. Ya tenemos nuestra apk con el idioma que le hemos añadido.
En otra ocasión os enseñaremos a manejar una aplicación, creada por xda-developers, que automatiza mucho más este método e incluye numerosas opciones más como, por ejemplo, el firmado de las aplicaciones o creación de zips.
Estaría interesante que hablaseis un poco de APK Manager 4.9 que creo que es la aplicacion a la que haceis referencia al final de la noticia 🙂
Un saludo…
Efectivamente compi, en breve hablaremos del APK Manager 😉 Una gran aplicación que nos facilita mucho la faena. Seguid atentos. ^_^
buenas noches:
gracias por enseñarnos algo sobre android. He seguido los diez puntos con una aplicación que es un juego de niños (kids shape puzzle), me ha parecido un proceso bastante sencillo, lo he repasado varias veces y no se en que me he equivocado. El caso es que al meter la aplicación de nuevo en el teléfono, la intenta instalar pero al final me dice que la aplicación no está instalada. Lo he intentando metiendo primero la aplicación original y luego la aplicación traducida, me dice pregunta que si quiero actualizar, le digo que si, y al final me dice lo mismo, la aplicación no está instalada. Aunque realmente si está instalada la aplicación original.
En que me he equivocado?
gracias
Muy buenas. Ese problema suele aparecer al no vincular el “framework-res” con la aplicación. De todos modos, tened en cuenta que estamos haciendo uso de una “puerta trasera” (por llamarlo de algún modo) y no siempre es fiable (aparte, por supuesto, de las protecciones que el desarrollador le ponga a su aplicación). Es por ello que la mejor forma para no tener problemas es que el desarrollador incorpore la traducción a su apk. En breve sacaremos una noticia sobre un grupo que se dedica a hacer estos menesteres para uso y disfrute de toda la comunidad Android.
gracias Pablo
Fitipardi, con el Apk Manager el procedimiento que yo hago es,
22 - Seleccionar APK
9 - Decompilar APK
Una vez traducida o editada…
11 - Compilar APK
12 - Firmar APK
13 - Instalar APK, previamente tienes que desinstalarla si la tienes instalada ya para instalar la nueva modificada.
Espero que con esto puedas instalarla.
En estos momentos se está fraguando, en los fogones de nuestra redacción, el artículo que pedíais del Apk Manager. Con este artículo pretendemos saciar vuestra inquietud y aclarar algunos términos que han quedado un poco en el aire. De paso, hacer camino para un futuro artículo que tengo previsto, donde usaremos algunas de las características que nos brinda esta fabulosa herramienta.
Para los que quieran colaborar directamente con los desarrolladores, hay webs como esta con muchos proyectos de android.
http://crowdin.net/projects?q=android
Efectivamente “Feo”, igual que crowin, tenemos otra más “cercanita” en htcmania que posteamos en su día aquí mismo en 4ndroid. Os coloco el Link por si le queréis pegar un vistazo, no tiene desperdicio:
https://4ndroid.com/spanish-translation-group/
Muy buena esta eh!! Me lo apunto! Un abrazo Bro! Peace!
ya seguí todos los pasos y lo paso al mobil y me dice “no se pudo instalar”
ya desistale el anterior y igual
uso un x10 mini pro
gracias
No se si existe alguna app q te traduzca directamente las app al abrirlas…. no entiendo mucho de lo q hablais aqui, pero descargué apk manager y sòlo pone inst/desinstalar. Serìa genial una app más sencilla para los q no sabemos mucho.Porq no m imagino traduciendo con mi pc…