Herramientas de usuario

Herramientas del sitio


wiki:2.-desarrollo-app:2.1.-ide-desarrollo:cloudstudio:proyecto:traducir_proyecto:start



Traducir Proyecto

La plataforma de programación y diseño de XOne, Cloud Studio, nos ofrece esta opción, la cual permite traducir cualquier proyecto ya realizado, en el idioma deseado.

Para acceder a ella, basta con abrir el proyecto que deseamos traducir y elegir la opción Proyecto>Traducir Proyecto en el Menú Principal, mostrando la siguiente pantalla:

En esta pantalla aparece la opción de seleccionar la Google Translator Api Key que se quiera tomar como base para generar el nuevo proyecto traducido. Esta Google Api Key no se almacena nunca.


  1. Si se tiene GOOGLE API KEY, las traducciones se realizan desde la Google Translator Api Key: https://translation.googleapis.com
  2. Si no se tiene GOOGLE API KEY, las traducciones se realizan tomando como base el traductor gratuito YANDEX: https://translate.yandex.net

En el selector de idiomas tenemos en la primera opción, el idioma implícito del Proyecto actual que vamos a traducir y en la segunda opción, seleccionaremos entonces el idioma al que queremos traducirlo.

Para continuar seleccionamos PRÓXIMO, y aparecerá la siguiente pantalla la cual mostrará los resultados de la traducción.

Se muestran los resultados de la traducción de la siguiente forma:

Texto (palabra original), Traducción (palabra traducida) y True o False

Aquí el propio usuario podrá modificar la traducción generada, posicionándose sobre la palabra traducida e indicando una nueva traducción para la misma.

Al presionar Update quedará modificada según sugerencia del usuario y cambiará locked o false por true, ya que esa modificación no se volverá a traducir.

ANTERIOR retorna a la pantalla previa y GENERAR ARCHIVOS, automáticamente genera el nuevo proyecto traducido, el cual podrá visualizarse en el árbol de las carpetas del proyecto. En este caso se ha traducido del español al inglés.

El Nuevo Proyecto traducido se encuentra en la carpeta dentro del proyecto Lang.. /Lang/En.(La subcarpeta dentro de /Lang.. se nombra según el idioma que hayas seleccionado para la traducción. El fichero _cachedictionary.xml guarda cada traducción realizada por el generador.

Cada palabra traducida tendrá un un indicador Locked, el cual si su valor es “true”, significa que esa será la traducción final para dicha palabra y si es “false” es que no encontró traducción posible el generador para esa palabra, y en este caso el usuario podrá definir su propia traducción.Este fichero es el más importante para futuras traducciones. No borrar salvo que queramos traducir nuevamente el proyecto desde cero.

Uso de MACROS para la traducción

Para no traducir algo, se usan las macros destinadas a ello:

##XONE_SCRIPT_NO_TRANSLATE##: Esta macro indica al traductor que a partir de la siguiente línea no se traduce nada

##XONE_SCRIPT_TRANSLATE##: Esta macro indica al traductor que a partir de la siguiente línea se continua traduciendo normalmente

##XONE_NOTRANSLATE_NEXT_LINE##: Esta macro indica al traductor que la siguiente línea no se traduce (aunque deba)

##XONE_TRANSLATE_NEXT_LINE##: Esta macro indica al traductor que la siguiente línea se traduce, cumpla o no lo de mostrarse en pantalla y tenga o no previamente la macro ##XONE_SCRIPT_NO_TRANSLATE##

##XONE_TRANSLATE_ALL_LINES##: Esta macro indica al traductor que todas las líneas a partir de esta se traducen, cumpla o no lo de mostrarse en pantalla y tenga o no previamente la macro ##XONE_SCRIPT_NO_TRANSLATE##. Su efecto termina con el final de la función o del script o hasta encontrar otra macro (siempre que no sea ##XONE_TRANSLATE_NEXT_LINE## que no tendría efecto alguno sobre ella)

El traductor analiza las variables y textos, según su uso en el script, sabe si se trata de textos que se muestran en pantalla o no. El sistema solo traduce los textos que se van a mostrar en pantalla. Los textos 'no visibles' para el cliente no tienen sentido traducirlos.

Ejemplo:

En este script, se traducirían los mensajes del 1 al 5, el 0 no, ya que al no mostrarse en pantalla, no lo considera texto a traducir
 
mensaje0="Mensaje0"
mensaje1="Mensaje1"
mensaje2="Mensaje2"
mensaje3="Mensaje3"
mensaje4="Mensaje4"
mensaje5="Mensaje5"
mensaje6="Mensaje6"
 
appdata.userinterface.msgbox mensaje1,"Info",0
appdata.userinterface.msgbox mensaje2,"Info",0
appdata.userinterface.msgbox mensaje3,"Info",0
appdata.userinterface.msgbox mensaje4,"Info",0
appdata.userinterface.msgbox mensaje5,"Info",0
appdata.userinterface.msgbox mensaje6,"Info",0

Otros Usos de MACROS

##XONE_SCRIPT_NO_TRANSLATE##: Esta macro indica al traductor que a partir de la siguiente línea no se traduce nada

##XONE_SCRIPT_TRANSLATE##: Esta macro indica al traductor que a partir de la siguiente línea se continua traduciendo normalmente

##XONE_NOTRANSLATE_NEXT_LINE##: Esta macro indica al traductor que la siguiente línea no se traduce (aunque deba)

##XONE_TRANSLATE_NEXT_LINE##: Esta macro indica al traductor que la siguiente línea se traduce, cumpla o no lo de mostrarse en pantalla y tenga o no previamente la macro ##XONE_SCRIPT_NO_TRANSLATE##

##XONE_TRANSLATE_ALL_LINES##: Esta macro indica al traductor que todas las líneas a partir de esta se traducen, cumpla o no lo de mostrarse en pantalla y tenga o no previamente la macro ##XONE_SCRIPT_NO_TRANSLATE##. Su efecto termina con el final de la función o del script o hasta encontrar otra macro (siempre que no sea ##XONE_TRANSLATE_NEXT_LINE## que no tendría efecto alguno sobre ella)

Ejemplo:

##XONE_TRANSLATE_NEXT_LINE##
mensaje0="Mensaje0"
##XONE_NOTRANSLATE_NEXT_LINE##
mensaje1="Mensaje1"
mensaje2="Mensaje2"
##XONE_SCRIPT_NO_TRANSLATE##
mensaje3="Mensaje3"
mensaje4="Mensaje4"
##XONE_TRANSLATE_NEXT_LINE##
mensaje5="Mensaje5"
 
##XONE_SCRIPT_TRANSLATE##
mensaje6="Mensaje6"
 
appdata.userinterface.msgbox mensaje1,"Info",0
appdata.userinterface.msgbox mensaje2,"Info",0
appdata.userinterface.msgbox mensaje3,"Info",0
appdata.userinterface.msgbox mensaje4,"Info",0
appdata.userinterface.msgbox mensaje5,"Info",0
appdata.userinterface.msgbox mensaje6,"Info",0
 
  * Mensaje0 se traduciría porque se le fuerza a traducirse
  * Mensaje1 no se traduce, porque se indica que esa línea no se traduce
  * Mensaje2 si se traduce, porque no le afecta ninguna macro
  * Mensaje3 y Mensaje4 no se traducen porque se interrumpe la traducción del script
  * Mensaje5 si se traduce, porque se fuerza a traducir solo esa línea
  * Mensaje6 si se traduce, ya que a partir de aquí el script se traduce de nuevo
wiki/2.-desarrollo-app/2.1.-ide-desarrollo/cloudstudio/proyecto/traducir_proyecto/start.txt · Última modificación: 2019/11/22 16:57 por ary