Multi-idioma
Estructuras de datos con soporte a varios idiomas
Última actualización
Estructuras de datos con soporte a varios idiomas
Última actualización
En Aurora disponemos de ficheros de traducción estáticos para facilitar la traducción de los interfaces de usuarios o mensajes de error.
Otra casuística que abordamos en esta sección es la capacidad de Aurora de plantear estructuras de datos de contemplen traducciones.
Si cogemos como ejemplo una entidad de Libro, podemos requerir de campos que sean traducibles, nombre, descripción, etc. Para estos casos Aurora propone una forma rápida y sencilla de crear y gestionar estos datos multi-idioma.
Debemos asegurarnos que nuestro fichero de variables de entorno .env tenga congigurado correctamente los siguientes valores:
APP_FALLBACK_LANG: Variable que determinará el idioma por defecto de nuestro sistema y por lo tanto el idioma principal, desde el que partirán el resto de traducciones.
APP_SEARCH_KEY_LANG: Establecerá el formato y el índices por el que buscará los idiomas, hay tres formatos disponibles:
id
(formato por defecto)
Una vez establecidos los valores, cuando generamos nuestras entidades debemos indicar en el fichero Yaml en aquellas propiedades que serán multi-idioma, si vamos a un ejemplo se vería de esta manera.
Dentro de nuestro yaml, tendremos que tener especial atención en las siguientes propiedades.
Esta propiedad es obligatoria, si tenemos una entidad multi idioma, debe de estar dentro del array aggregateProperties con estas características:
Es el valor que contendrá todas las propiedades que necesitas de múltiples traducciones. Estas propiedades generarán una tabla que contendrá las traducciones de la entidad, por lo que requiere sus propios campos id, createdAt, updatedAt y deletedAt, como si de una entidad independiente se tratara.
Este campo relaciona los campos con traducciones con los campos que no los tienes, el nombre de esta campo variará en función del nombre de la entidad principal.
uniqueBookIdLangId define un índice único compuesto, entre el bookId y langId, realizando una clave única evitando crear una traducción del mismo id y del mismo idioma.
Es importante que este nombre sea único, ya que de lo contrario la construcción del schema de la base de datos puede generar un error.
Este campo relaciona un registro multi-idioma con el idioma que corresponde, normalmente antes implementar multi-idioma en nuestro desarrollo, deberemos instalar el paquete para disponer de la tabla de idiomas.