Formati / Rails YAML

YAML di Rails, con la chiave radice della lingua già scritta

Un file di lingua di Rails sembra un normale YAML annidato. Due dettagli decidono se il file che ricevi si carica come la lingua che volevi.

.yml / .yaml

La chiave radice è la lingua, e in uscita deve cambiare

Rails avvolge un intero file di lingua in una chiave di primo livello: en: nel file inglese, it: in quello italiano. Copia il file inglese, traduci ogni valore, dimentica la radice, e Rails carica i tuoi testi italiani come una seconda copia dell'inglese.

Linguiqo legge la chiave radice come lingua e non come parte di ogni chiave, così cart.empty in en.yml e cart.empty in it.yml vengono riconosciuti come lo stesso testo. All'esportazione la radice viene scritta come la lingua esportata, con la grafia usata dal tuo file: pt-BR resta pt-BR.

Un file la cui unica chiave di primo livello non è una lingua, come app: in un catalogo Symfony, conserva quella chiave esattamente com'era.

Le chiavi annidate diventano un indirizzo per testo

Ogni livello di annidamento diventa un punto, così il traduttore vede checkout.cart.empty, lo stesso nome che il tuo codice passa a t(). All'esportazione i punti tornano annidamento e una lista resta una lista: errors: [First, Second] torna come lista, non come un hash con chiavi 0 e 1.

I valori lunghi non vengono mai spezzati su più righe e i caratteri accentati vengono scritti così come sono invece che come sequenze di escape, così il file resta leggibile in un diff.

Le interpolazioni vengono controllate, non solo copiate

Una traduzione che omette %{count} o rinomina %{name} in %{nom} mostra un segnaposto letterale o genera un errore in esecuzione. Linguiqo riconosce l'interpolazione di Rails come segnaposto, e i controlli di qualità segnalano una traduzione i cui segnaposto non corrispondono al testo sorgente.

Domande

Posso importare .yaml oltre a .yml?

Sì. Entrambe le estensioni vengono riconosciute, e il formato viene rilevato dal nome del file al caricamento.

Come vengono gestite le chiavi dei plurali di Rails?

Un hash dei plurali come items: { one: ..., other: ... } entra come testi separati, items.one e items.other, ed esce con lo stesso annidamento. Linguiqo non aggiunge le forme in più di cui ha bisogno una lingua come il ceco o il polacco, quindi per quelle lingue aggiungi le chiavi few e many al file sorgente.

Una chiave con contesto sopravvive?

YAML non ha un campo per il contesto, quindi ogni chiave contiene un testo. Se un progetto ha due testi sotto la stessa chiave, l'esportazione dice quale verrebbe escluso prima di scrivere il file.

Carica un file Rails YAML e guarda tu stesso

La demo legge un tuo file reale e mostra il risultato. Senza account, e dopo due ore viene cancellato tutto.

Apri la demo

Cos'è Linguiqo