Formatos / Rails YAML

YAML de Rails, con la clave raíz del idioma ya escrita

Un archivo de idioma de Rails parece YAML anidado normal. Dos detalles deciden si el archivo que recibes se carga como el idioma que querías.

.yml / .yaml

La clave raíz es el idioma, y tiene que cambiar a la salida

Rails envuelve todo un archivo de idioma en una clave de nivel superior: en: en el archivo inglés, es: en el español. Copia el archivo inglés, traduce cada valor, olvida la raíz, y Rails cargará tus textos en español como una segunda copia del inglés.

Linguiqo lee la clave raíz como el idioma y no como parte de cada clave, así que cart.empty en en.yml y cart.empty en es.yml se reconocen como el mismo texto. Al exportar, la raíz se escribe como el idioma exportado, con la grafía que usa tu archivo: pt-BR sigue siendo pt-BR.

Un archivo cuya única clave de nivel superior no es un idioma, como app: en un catálogo de Symfony, conserva esa clave tal como estaba.

Las claves anidadas se convierten en una dirección por texto

Cada nivel de anidación se convierte en un punto, así que el traductor ve checkout.cart.empty, el mismo nombre que tu código pasa a t(). Al exportar, los puntos vuelven a ser anidación y una lista sigue siendo una lista: errors: [First, Second] vuelve como lista, no como un hash con las claves 0 y 1.

Los valores largos nunca se parten en varias líneas y los caracteres acentuados se escriben tal cual, no como secuencias de escape, así que el archivo sigue siendo legible en un diff.

Las interpolaciones se comprueban, no solo se copian

Una traducción que omite %{count} o cambia %{name} por %{nom} muestra un marcador literal o provoca un error en tiempo de ejecución. Linguiqo reconoce la interpolación de Rails como marcador, y las comprobaciones de calidad señalan una traducción cuyos marcadores no coinciden con el texto de origen.

Preguntas

¿Puedo importar .yaml además de .yml?

Sí. Se reconocen las dos extensiones, y el formato se detecta por el nombre del archivo al subirlo.

¿Cómo se tratan las claves de plural de Rails?

Un hash de plurales como items: { one: ..., other: ... } entra como textos separados, items.one e items.other, y sale con el mismo anidamiento. Linguiqo no añade las formas adicionales que necesita un idioma como el checo o el polaco, así que para esos idiomas añade las claves few y many al archivo de origen.

¿Sobrevive una clave con contexto?

YAML no tiene campo para el contexto, así que cada clave contiene un texto. Si un proyecto tiene dos textos bajo una clave, la exportación indica cuál quedaría fuera antes de escribir el archivo.

Sube un archivo Rails YAML y compruébalo

La demo lee un archivo real tuyo y te muestra el resultado. Sin cuenta, y a las dos horas se borra todo.

Abrir la demo

Qué es Linguiqo