Dc_Translator 1.0.0: traducir Magento de forma sencilla

A partir de hoy pueden encontrar en GitHub el módulo que permite gestionar las traducciones de forma sencilla (o, por ahora, de la más sencilla posible) de Magento.

Las ideas principales detrás del módulo son:

  • permitir a cualquier usuario gestionar el contenido de los archivos CSV sin necesidad de tener acceso al código
  • de no requerir de un programador que baje los archivos y luego haga el commit de los archivos modificados
  • poder gestionar múltiples traducciones a la vez (en particular las claves que se repiten)

Si bien podría suponerse que son temas menores, en el día a día, cuando se trabaja con muchos proyectos, estos puntos toman relevancia.

La lisa de funcionalidades incluye:

  • Creación de nuevos paquetes de idioma desde 0 o copiando uno existente para tomar como base.
  • Importación de paquetes de idioma existentes.
  • Traducción de mensajes de forma masiva cuando la clave se repite.
  • Integración con el traductor de BING.
  • La posibilidad de importar y exportar los archivos de traducción entre una instancia de la plataforma y otra.
  • Búsqueda rápida de claves.
  • Si sos desarrollador, podés crear el archivo de traducciones y al finalizar separar el archivo para incluirlo con tu código.
  • Implementada la directiva CMS translate (la cual permite traducir textos dentro de un bloque o página CMS).
  • Compatible con Magento CE 1.5.x a 1.9.x.
  • Compatible con Magento EE 1.11.x a 1.14.x.

Si bien durante los próximos días estará disponible la wiki, detallando paso por paso, a manera de adelanto, el funcionamiento es el siguiente.

Dentro del menú Sistema -> Translator, encontraremos una grilla que nos mostrará los paquetes de idioma que tengamos dentro del módulo.

Lista de paquetes de idioma importados en Magento

El siguiente paso podrá ser el de Crear un nuevo paquete.

Opciones para crear un nuevo paquete de idioma para Magento

Como opciones, podemos crear un paquete desde 0 o podemos copiar desde alguno que ya hayamos creado o importado, previamente, dentro del módulo.

La forma de importar un paquete ya existente (es decir, que los archivos ya existan físicamente en nuestra instancia de Magento), es bastante sencilla.

Importar paquetes de idioma existentes en Magento

Seleccionamos el idioma que buscamos y con el botón Importar obtendremos todos los valores dentro del módulo.

Detalle de un paquete de idioma en Magento

Ahora nuestra grilla de paquetes comenzará a mostrar registros.

Lista de paquetes de idioma disponibles dentro del Translator

Con la opción «Administrar» podemos realizar varias tareas más bien administrativas sobre el paquete. Más allá de poder ver información anecdótica sobre el locale, podemos descargar los archivos CSV.

Descarga manual de archivos de un pauqete de idioma

Ahí podemos seleccionar el que estemos buscando o todos. Con la acción se generará un único archivo zip que contendrá a los demás archivos.

También podemos subir un archivo CSV al paquete.

Subida de archivos CSV al paquete de idioma

Ahora, para trabajar específicamente sobre las traducciones de cada una de las claves (las calves son el mensaje tal cual como se encuentra programado en el código), volvemos a la grilla principal y hacemos click en Ver.

Lista de claves y traducciones en un paquete de idioma en Magento

Esto nos llevará dentro del paquete y nos mostrará cada una de las claves, su traducción y a qué módulo pertenece.

Al editar una clave, llegaremos a ésta pantalla.

Edición de claves de traducción en Magento

Nos indica a qué módulo pertenece, la calve (el valor que se encuentra en el código) y la traducción que queremos asignarle.

Dado que hay veces en que una misma clave se encuentra en múltiples archivos de traducción, existe la opción de actualización masiva. Esto quiere decir que se reemplazará esa clave en todos los módulos (un caso común puede ser «and»).

Si en lugar de editar, estamos creando una clave, el formulario será:

Agregar traducción a un paquete de idioma en Magento

Unas de las funcionalidades opcionales es la integración con el traductor de BING. El mismo ofrece un servicio gratuito de hasta 2 millones de caracteres por mes.

Para configurar la opción debemos ir a Sistema -> Configuración -> Translator (casi al final de todas las opciones, dentro del grupo DC Modules).

Configuración Translator en Magento

Ahí habilitaremos el uso de la integración e ingresaremos nuestras credenciales. Una vez guardadas veremos el siguiente mensaje.

Configuración de BING para el Translator en Magento

Ahora si, podemos probar que las credenciales sean correctas.

Prueba credenciales BING

El mensaje nos indicará si todo fue correcto o si existiera algún problema.

Hecho esto, si volvemos a crear o editar una clave, el formulario mostrará la opción de traducción automática y ya podremos usarlo.

Traducción de claves de idioma con BING en Magento

Básicamente, ingresamos nuestro mensaje y al hacer click sobre el botón de Traducción Automática, obtendremos el mejor mensaje posible, según el servicio.

Si suponemos que ya hemos aplicado todas las traducciones que necesitábamos, el paso siguiente será el de generar los nuevos archivos CSV con nuestra nuevas traducciones.

Para eso volvemos a la lista de paquetes de idioma e ingresamos en Administrar.

Generar paquete de idioma en Magento

El botón de Generar Paquete es el encargado de finalizar el proceso. Una vez presionado, si todo sale bien, volveremos a la grilla general con un mensaje informativo.

Paquete de idioma generado correctamente en Magento

Existe un escenario en el cual este proceso podría fallar y es cuando la configuración de permisos hace que por algún motivo, la carpeta /app/locale no puede ser modificada por el usuario que ejecuta el webserver. Es necesario tener la configuración de forma correcta, sino tendremos un mensaje de error al intentar escribir los archivos.

Del roadmap de futuras funcionalidades, la que ya se ha agregado es la de una nueva directiva cms: {{translate text=»Mensaje a traducir»}}

(Esta funcionalidad se ha tomado del módulo MB_Translate, de Miguel Balparda)

Directiva CMS de traducción en Magento

Esto hará que en nuestros bloques o páginas, podamos traducir un texto sin la necesidad de duplicar bloques (está claro que es válido para ciertos escenarios, para otros, la asignación de bloques o páginas diferentes es la opción correcta).

Repositorio de Dc_Translator en GitHub.

Ahora si, pasen, vean, prueben y forkeen.