lunes, 10 de septiembre de 2012

How to translate PhoneGap/Cordova App (Como traducir una App)

La verdad no soy muy versado en estas cosas, Android Tiendita es mi primera incursión al mercado android, la finalidad es hacer un PTV de facil manejo, costeo e implementación. Con la necesidad de hacerlo accesible a todo mundo, decidí buscar la forma de traducir mi aplicación hecha con phonegap. No hay mucho material al respecto y mucho menos en mi idioma, así que para empezar aportaré algo a la causa.
El caso que nos ocupa es como traducir nuestra aplicación Android a cualquier idioma. En primer lugar les comentaré que este trabajo lo base en varias fuentes y la experimentación Ensayo/Error, dado que mucho no esta documentado:

Requisitos:
  • JQuery.
  • Phonegap/Cordova 2.0 (deberia funcionar con otras, yo prefiero las versiones redondas).
  • Phonegap Resource plugin. Actualizado para Cordova 2.0 por su servidor.
  • lang.js  Clase de traducción.
prerequisites.


  • JQuery framework.
  • Phonegap/Cordova 2.0.
  • Phonegap Resource plugin. (Updated from Cordova 2.0 by me).
  • lang.js Javascript class, included in the example project.
Condiciones:
No se ha probado con elementos varios.



Crea tu proyecto phonegap.
Copia el archivo lang.js y resources.js a una ubicacion disponible en assets/www.


Make you phonegap project.
Copy lang.js and resources.js  in to assets/www folder (like /js).

Crea el directorio com/phonegap/plugins/resources en el directorio src.
Copia el Archivo LocalResources.java en el directorio creado.


Make com/phonegap/plugins/resources folder into src folder project.
Copy LocalResources.java into   created folder.


Habilita el Plugin agregando esta linea al archivo res/xml/plugins.xml
Enable the plugin writing   into file res/xml/plugins.xml.


Debe cambiar el la propiedad de XLang "packageName"  a Nombre Android del proyecto.

Para el archivo a traducir debe incluir como script el archivo resources.js, cordova.js y lang. js.
For translate, the html file required in "script" tag the files resources.js, cordova.js and lang.js.



La clase XLang de Javascript se inicializa con una propiedad llamada items, que contendra un array de arrays de elementos identificables con jquery como primer miembro y el segundo corresponderá al id del string en el archivo strings.xml.
The javascript class XLang initialize with items property, this property content array of arrays, integrated with one element "JQuery " identificator  and String Element name on strings.xml file.

          var oTras   = XLang;
        oTras.items        = [
                        ["#id", "my_translate_item"],
                       ];


The complete example:
Ejemplo completo:


Captura/screenshots.




 Download source code: Test Project.
 Descargue el Proyecto de ejemplo en este Link.

Note: If you possibility is donate  old Android devices, for tests. please email me...

3 comentarios:

pata_de_jaguar dijo...

Hola Summ3r, gracias por la recomendación, parece muy interesante y hay que probarlo... yo probé crodwin pero está demasiado caro para quienes empezamos...

Unknown dijo...

Hola! esto sirve solo para android o para cualquier plataforma soportada por phonegap?

pata_de_jaguar dijo...

Hola LAMIS.
Este plugin solo sirve para la Plataforma Android, en Blackberry utilizé este script http://pastebin.com/embed_iframe.php?i=cBRYunev que básicamente es el mismo script que aprovecha los mismos archivos.