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.