Como muchos sabéis, desde la versión de NAV 2018 en adelante las traducciones tanto del código estándar de NAV como de los desarrollos a medida, han cambiado bastante.
Hoy, a quienes trabajamos con Business Central y extensiones ya nos queda muy lejos el recuerdo de que antes, para traducir cualquier objeto (campos de tablas y páginas, grupos de opciones, nombre de acciones, etc..) usábamos la propiedad CaptionML. En esta especificábamos las traducciones en todos los idiomas que requería nuestro desarrollo, así como la propiedad ToolTipML para dar información al usuario acerca de la función de un campo, acción, etc…
Desde NAV 2018 Microsoft ha introducido un nuevo sistema de traducciones a través de ficheros XLIFF para adaptarse a los estándares que usa el mercado. Pare ello hemos de olvidarnos de todas las propiedades que tenían el sufijo ML (de Multi Language), y sustituirlas por las mismas propiedades sin la terminación ML, es decir, CaptionML la sustituimos por Caption y ToolTipML la sustituimos por ToolTip.
Traducción de ficheros XLIFF
Microsoft, en vez de usar las propiedades con el sufijo ML para traducir los nombres de campos, etc.., usa ficheros XLIFF. Existirá un fichero XLIFF por cada idioma en el que deseamos que se traduzca nuestra extensión. Desde que apareció esta forma de traducirlo todo en nuestra extensión, lo que teníamos que hacer era lo siguiente:
- Activar el nuevo sistema de traducciones en nuestra extensión. Para ello en el fichero app.json hemos de incluir:
“features”: [“TranslationFile”]
- Sustituir en todos los ficheros .al de nuestra extensión los CaptionML por Caption, en el cuál especificaremos el nombre del campo, acción, etc… en el idioma original que deseemos (normalmente en inglés). Por ejemplo:
Sustituimos CaptionML = ENU = ‘Example’, ESP = ‘Ejemplo’;
por
Caption = ‘Example’;
Asimismo, cambiaremos el resto de las propiedades que terminen en ML por su misma propiedad sin el sufijo ML. Por ejemplo, ToolTipML lo cambiamos por ToolTip.
- Al crear el paquete de la extensión (AL: Package), el sistema, creará en el proyecto de nuestra extensión una carpeta con un fichero .xlf correspondiente a los textos originales en inglés (en-US).
- Si queremos traducirlo todo al español, debemos crear una copia del fichero .xlf anterior y llamarlo igual pero terminado en es.xlf. Deberemos abrir el fichero que termina en es.xlf y en éste cambiamos, al principio, el idioma de destino en la etiqueta target-language:
Se modifica esto:
Por esto:
- Después, dentro de cada trans-unit, especificaremos las traducciones usando las etiquetas target:
AL Language Tools, nuestra extensión de Visual Studio Code favorita
Como veis, traducir cualquier nuevo desarrollo en Business Central se convierte en una ardua tarea que nos llevaría mucho tiempo. Por ello, desde que apareció este sistema de traducciones (afortunadamente para nosotros, los desarrolladores) han aparecido también multitud de extensiones de Visual Studio Code (VSC) que nos ayudan y nos facilitan mucho el trabajo de añadir las traducciones a nuestro desarrollo. Hoy os vamos a hablar, en especial, de una de mis favoritas. Se llama “AL Language Tools” y nos permite hacer otras cosas, a parte del tema de traducciones, pero nos vamos a centrar sólo en este último.
La extensión en VSc es esta:
Una vez que tengamos instalada la extensión en nuestro VSC, y tengamos añadido esto en nuestro fichero app.json:
Tendremos que abrir todos los ficheros .al de nuestra extensión de BC, y añadir, a todas las propiedades Caption, Tooltip, Label y OptionCaption, lo siguiente:
, comment = ‘ESP=”Texto traducido al español”’;
Así, por ejemplo, si tenemos este caption en un campo de nuestra tabla:
Caption = ‘Book Details’;
La modificamos por:
Caption = ‘Book Details’, comment = ‘ESP=”Detalles de libros”’;
Una vez que hayamos añadido las traducciones a todos los elementos de nuestra extensión en el idioma o los idiomas deseados debemos:
- Crear el paquete .app de la extensión, por ejemplo, ejecutando el comando AL: Package. El sistema habrá creado en el proyecto la carpeta Translations con un fichero .xlf correspondiente a los textos originales en inglés (en-US). El comentario introducido en los textos también formará parte del archivo.
- Crear el fichero traducido al español: ejecutamos el comando AL: Generate Xliff files (AL Tools)
- Con este comando, el sistema habrá creado automáticamente el fichero .xlf correspondiente al idioma especificado en los comentarios, en el que habrá especificado el target-language y habrá creado una etiqueta target dentro de cada trans-unit.
Y eso no es todo, esta extensión, también tiene un snippet que nos ayuda a crear los caption, tootltips y labels con los comentarios en nuestra extensión:
Como veis, es una extensión muy útil, que nos alegra bastante el día a los programadores, pues ya no tenemos que quedarnos inmersos largo tiempo dentro de los ficheros .xlf traduciendo los textos de nuestra extensión.
Esperamos que os haya servido de ayuda este artículo a modo de mini-tutorial sobre Dynamics 365 Business Central.
¿Tienes más dudas? ¿Necesitas más ayuda? ¡Rellena el formulario sin compromiso y estudiemos tus necesidades!
Victoria Domínguez
Dynamics
Comments 2
Muy interesante y didáctico.
¡Muchas gracias por tus palabras Francesc!