Formaty / Rails YAML

Rails YAML z kluczem głównym języka, który piszemy za ciebie

Plik lokalizacji Rails wygląda jak zwykły zagnieżdżony YAML. O tym, czy plik, który dostajesz z powrotem, wczyta się jako język, o który ci chodziło, decydują dwa szczegóły.

.yml / .yaml

Klucz główny to język i przy eksporcie musi się zmienić

Rails obejmuje cały plik lokalizacji jednym kluczem najwyższego poziomu: en: w pliku angielskim, pl: w polskim. Skopiuj plik angielski, przetłumacz każdą wartość, zapomnij o kluczu głównym, a Rails wczyta twoje polskie teksty jako drugą kopię angielskiego.

Linguiqo odczytuje klucz główny jako język, a nie jako część każdego klucza, więc cart.empty w en.yml i cart.empty w pl.yml rozpoznaje jako ten sam tekst. Przy eksporcie klucz główny zapisuje się jako eksportowany język, w takiej pisowni, jakiej używa twój plik: pt-BR zostaje pt-BR.

Plik, którego jedyny klucz najwyższego poziomu nie jest językiem, na przykład app: w katalogu Symfony, zachowuje ten klucz dokładnie takim, jaki był.

Zagnieżdżone klucze stają się jednym adresem na tekst

Każdy poziom zagnieżdżenia zamienia się w kropkę, więc tłumacz widzi checkout.cart.empty, tę samą nazwę, którą twój kod przekazuje do t(). Przy eksporcie kropki znowu stają się zagnieżdżeniem, a lista zostaje listą: errors: [First, Second] wraca jako lista, a nie jako hash z kluczami 0 i 1.

Długie wartości nigdy nie są łamane na kilka linii, a znaki diakrytyczne zapisuje się wprost, a nie jako sekwencje escape, więc plik pozostaje czytelny w diffie.

Interpolacje są sprawdzane, a nie tylko kopiowane

Tłumaczenie, które pomija %{count} albo zmienia %{name} na %{nom}, wyświetla dosłowną zmienną albo rzuca błąd w czasie działania. Linguiqo rozpoznaje interpolację Rails jako zmienną, a kontrole jakości oznaczają tłumaczenie, którego zmienne nie zgadzają się z tekstem źródłowym.

Pytania

Czy mogę importować .yaml tak samo jak .yml?

Tak. Oba rozszerzenia są rozpoznawane, a format jest wykrywany z nazwy pliku przy wgrywaniu.

Jak obsługiwane są klucze liczby mnogiej w Rails?

Hash liczby mnogiej, na przykład items: { one: ..., other: ... }, przychodzi jako osobne teksty items.one i items.other i wraca w tym samym zagnieżdżeniu. Linguiqo nie dodaje dodatkowych form, których potrzebuje język taki jak czeski czy polski, więc dla tych języków dodaj klucze few i many w pliku źródłowym.

Czy klucz z kontekstem przetrwa?

YAML nie ma pola na kontekst, więc każdy klucz trzyma jeden tekst. Jeśli projekt ma dwa teksty pod jednym kluczem, eksport jeszcze przed zapisaniem pliku powie, który zostałby pominięty.

Wgraj plik Rails YAML i przekonaj się

Wersja demo czyta prawdziwy plik i pokazuje wynik. Bez konta, a po dwóch godzinach wszystko jest usuwane.

Otwórz demo

Czym jest Linguiqo