4D v16

XLIFF y traducción

Inicio

 
4D v16
XLIFF y traducción

XLIFF y traducción    


 

 

Además de las manipulaciones explicadas en el vídeo, debe notar que:

Para que sean tenidos en cuenta por 4D, sus archivos XLIFF deben ubicarse aquí:

  • Windows: en MyDatabase\Resources\Lang.lproj\MyEnLoc.xlf
  • Mac OS: en MyPackage:Resources:Lang.lproj:MyEnLoc.xlf (si la extensión .4dbase está activa)
  • Mac OS: en MyDatabase:Resources:Lang.lproj:MyEnLoc.xlf (si eliminó la extensión .4dbase)

Por defecto, 4D busca el lenguaje a utilizar en:

  1. El lenguaje del sistema
  2. El lenguaje de la aplicación 4D
  3. En inglés
  4. Si todo esto falla, el primer lenguaje encontrado se carga en la carpeta Resources.

En este vídeo, vamos a aprender a implementar archivos de traducción XLIFF que se utilizan para localizar toda la interfaz.

Es muy sencillo: sólo tiene que sustituir los textos que se encuentran en la interfaz por una referencia a un archivo externo que contiene los textos deseados.

Esto será de la forma ":xliff: y un nombre de objeto", por ejemplo "bOK" que es la referencia del botón OK. Aquí vemos que el texto ha cambiado de "Finish" a "OK".
¿Por qué?

Porque en la carpeta de la base en la subcarpeta resources hay una carpeta para cada idioma.
Actualmente el sistema está en inglés y dentro de esta carpeta tenemos:

  • un archivo XML que contiene
  • además de las declaraciones estándar, en el cuerpo
  • un cierto número de grupos (los grupos no son obligatorias pero son útiles para estructurar el archivo XLIFF)
  • y en cada grupo, las unidades de traducción.

Resulta que tenemos un recurso llamado bOK donde el texto contenido en el Target es "OK".

Si cambiamos esto a "Finish" y guardamos el archivo y regresamos a 4D, el texto "Finish" se sustituye.

Podemos probar esto aquí:

  • End
  • Guardar
  • Volver a 4D y podemos ver "End"

Para todo el texto de la interfaz, tenemos que reemplazar:

  • el texto English
  • por el texto en el idioma deseado.

En la actualidad, estamos en el archivo en.xlf de manera que todos los textos "target" son nombres en inglés.

Vamos a crear una entrada para el texto llamada "Add".

El archivo se guarda. En este caso, si se reemplaza el texto por ":xliff:bAdd", recuperamos el texto "Add".

Eso es para la versión en inglés.

Ahora vamos a recuperar esta entrada, cerrar el archivo y abrirlo en la carpeta French.

Añadimos la unidad en cuestión "Ajouter" y guardamos.

Ahora imaginemos que queremos trabajar en un sistema francés.

  • En las preferencias del sistema, ya sea en Mac o en Windows
  • podemos definir el idioma prioritario
  • aquí podemos ver un aviso de que los cambios tendrán efecto la próxima vez que se inicie la aplicación.

Así que vamos a salir de nuestra base de prueba y comenzar de nuevo.

Y podemos ver que el texto "Add" fue reemplazado por la versión francesa (Ajouter).

Si queremos, podemos:

  • Cambiar e indicar "un enregistrement"
  • Guardar
  • Atención: la actualización no es automática en el formulario mostrado debido a que los recursos se cargan cuando se carga el formulario.
  • Sin embargo, si salimos y volvemos a la estructura, el formulario se actualiza con el nuevo texto.

Ahora sólo tenemos que crear las otras entradas, "Tout selectionner? Tous les enregistrements?" por ejemplo y aquí indicar que el botón es una referencia (":xliff:bAll") y tenemos el texto "Tout selectionner? Tous les enregistrements?".

Ahora vamos a volver al sistema inglés por lo que necesitamos salir de 4D.

Cuando reiniciamos, nos encontramos con el texto anterior, sin embargo, en el archivo English, no  indicamos la traducción de la entrada "bAll" y y por lo tanto en este caso, se muestra la referencia XLIFF.

Así que tenemos que:

  • volver atrás y recuperar el archivo XLIFF en cuestión
  • añadir la entrada "bAll" indicando "All"
  • cuando volvemos a 4D, la actualización se efectúa.

Un elemento complementario importante en la implementación de archivos XLIFF se refiere a las cadenas de caracteres en los métodos.

Volvamos al formulario Test_Variables que hemos creado y donde asignamos valores al menú pop-up que tiene 3 textos aquí.
Podemos:

  • remplazar los 3 textos utilizando el comando Get localized string
  • indicar un resname que corresponda en el archivo XLIFF en cuestión, una etiqueta en el idioma elegido.

Aquí vemos el texto "Text1Test" que es:

  • "Hello" en inglés
  • "Bonjour" en francés.

Vamos a:

  • declarar el array
  • hacer seguimiento a la asignación de valores (el array está vacío)
  • y cuando vamos a leer las cadenas correspondientes, el array se llena con el contenido de los datos del archivo XLIFF.

 
 

 
PROPIEDADES 

Producto: 4D
Tema: XLIFF y traducción

 
HISTORIA 

 
ARTICLE USAGE

Autoformación ( 4D v16)