Czego szuka walidator
- Brakujące klucze: są w szablonie, ale nie ma ich w danym języku. Aplikacja się kompiluje, ale użytkownicy widzą tekst w języku szablonu zamiast we własnym.
- Nadmiarowe klucze: są w tłumaczeniu, ale już nie w szablonie, często pozostałości po usuniętej funkcji.
- Puste wartości: klucz istnieje, ale tłumaczenie jest puste, czego zwykłe porównanie kluczy nie wychwyci.
- Niezgodne placeholdery:
{name} zamienione na {imie} albo pominięte. Placeholdery w liczbie mnogiej i select ICU też są odczytywane.
Klucze zaczynające się od @ (metadane i @@locale) są pomijane. Plikiem wzorcowym jest ten ustawiony w template-arb-file w l10n.yaml, zwykle app_en.arb: narzędzie go odgaduje, a Ty możesz wybrać inny.
Jak znaleźć brakujące klucze w aplikacji Flutter
- Zbierz pliki z folderu
arb-dir (domyślnie lib/l10n).
- Upuść je wszystkie naraz, łącznie z szablonem.
- Otwórz każdy język, żeby zobaczyć jego problemy, a potem skopiuj brakujące klucze w formacie ARB: zawierają tekst szablonu i są gotowe do tłumaczenia.
Automatyczną kontrolę przy każdym buildzie, czyli opcję untranslated-messages-file w flutter gen-l10n i mały skrypt do CI, opisuje poradnik o szukaniu brakujących kluczy w plikach ARB. Błędy placeholderów ICU wyjaśnia poradnik o liczbie mnogiej i placeholderach.
Ograniczenia walidatora
Narzędzie porównuje klucze i nazwy placeholderów: nie waliduje pełnej składni ICU (to zadanie flutter gen-l10n), nie ocenia jakości tłumaczeń i nigdy nie modyfikuje plików. Żeby zaimportować cały projekt, przetłumaczyć go i wyeksportować z kopią zapasową, potrzebujesz edytora lokalizacji, takiego jak LocalePilot.