Integración de idiomas

Fenómenus es multilingüe a través de la capa de traducción del sitio. Esta página documenta qué valores son por idioma, cuáles son compartidos y dónde el producto los mantiene alineados.

La división

Por idioma Compartidos entre traducciones
Título de la entrada Meta de precio
Subtítulo, descripción, descripción larga Términos de alérgenos
Títulos y contenidos de los bloques de menú de degustación y de menú cerrado Asignación de categoría
Notas al pie Marca de destacado
Nombres de categoría Imágenes
Etiquetas de la interfaz menu_order
post_status

Compartir los hechos es deliberado: a un cliente que lea en cualquier idioma se le debe indicar el mismo precio y los mismos alérgenos.

Dónde se aplica la alineación

Cambios de estado. Cambiar el estado de un elemento a través de la pantalla de listado se aplica al elemento y a cada traducción devuelta por la capa de traducción.

Orden. Guardar el orden de los elementos aplica el mismo menu_order a cada traducción de cada elemento.

Alérgenos. Guardar un elemento aplica sus términos de alérgenos a cada traducción.

Categorías. Guardar un elemento desde su pantalla de edición mantiene el elemento traducido apuntando a la categoría traducida correspondiente, creando el enlace donde puede.

Las integraciones que escriban estos valores directamente deben reproducir el mismo comportamiento o los idiomas divergirán.

Campos traducibles por tipo de contenido

El panel de traducción expone un conjunto definido por tipo de menú:

Tipo de contenido Campos
a_la_carte_menu, terrace_menu subtitulo, descripcion, descripcion-larga, descripcion-vino-recomendado
wine_list, cocktails, beverages, breakfast, desserts, bar_menu subtitulo, descripcion, descripcion-larga
tasting_menu subtitulo, descripcion, los títulos y contenidos de los bloques, nota-al-pie
set_menu subtitulo, descripcion, los títulos de los bloques, nota-al-pie

Los campos marcados como que admiten HTML se sanean en consecuencia; el resto se almacena como texto plano.

Crear una traducción

Se crea un registro traducido cuando se proporciona un título para ese idioma y se guarda el elemento. La nueva entrada:

  • toma el tipo de contenido y el estado del origen;
  • se le asigna el idioma de destino;
  • se enlaza al origen como su traducción;
  • recibe los valores de los campos traducidos;
  • tiene sus asignaciones de categoría alineadas con el origen.

Un idioma con un título vacío no produce ningún registro, deliberadamente.

Consultas del administrador

Las pantallas de listado del administrador están limitadas al idioma principal, por lo que muestran una fila por elemento de menú en lugar de una por traducción. Las consultas de administrador personalizadas sobre estos tipos de contenido deben hacer lo mismo, o los recuentos se multiplicarán por el número de idiomas.

URLs del front-end

Cada idioma tiene sus propias URLs de archivo y de categoría. El código que construye enlaces debe resolverlos por idioma en lugar de manipular mediante cadenas una URL base.

Artefactos

  • El generador de QR produce un código por idioma, agrupados y etiquetados.
  • El generador de PDF expone un selector de idioma y produce un archivo por idioma.

Ambos se tratan en sus propias páginas de contrato.

Sin una capa de traducción

Todo comportamiento de traducción queda inerte. Los elementos no tienen panel de traducción, el conmutador de idioma no tiene nada que mostrar y la generación de QR y PDF produce un único resultado predeterminado. Nada más cambia.

Protege el código de integración con una comprobación de función en lugar de asumir que la capa está presente.