Generator liczby mnogiej ICU dla plików ARB Fluttera

Wybierz języki: narzędzie pokazuje kategorie liczby mnogiej wymagane przez każdy z nich, z przykładowymi liczbami, i generuje komunikat ICU gotowy do wklejenia w pliki ARB. Darmowe, bez rejestracji, a wszystko zostaje w przeglądarce.

Wygeneruj komunikat z liczbą mnogą

Języki

Potem sprawdź, czy każde tłumaczenie zachowało placeholder

LocalePilot to aplikacja desktopowa, która otwiera wszystkie pliki ARB, porównuje placeholdery ICU każdego tłumaczenia ze źródłem, wskazuje brakujące klucze i eksportuje z kopią zapasową. Wersja na macOS jest na ostatniej prostej: zostaw e-mail, a damy znać o premierze.

Dlaczego liczba mnoga zmienia się między językami

Kategorie zero, one, two, few, many i other wynikają z reguł CLDR każdego języka. Po angielsku one oznacza tylko 1; po francusku obejmuje 0 i 1; rosyjski i polski dodają few i many („2 pliki”, „5 plików”); arabski używa wszystkich sześciu; japoński ma jedną, other. Komunikat z dwiema gałęziami napisany dla angielskiego jest więc niekompletny, gdy tylko go przetłumaczysz.

Narzędzie odczytuje te reguły w przeglądarce (Intl.PluralRules): pokazane kategorie i przykładowe liczby pochodzą z samego języka, bez tabeli do utrzymywania.

Pułapka =1 w gen-l10n

Gałąź =1 staje się kategorią one w kodzie generowanym przez flutter gen-l10n. Po francusku ta kategoria dotyczy też zera: przy count = 0 pojawiłoby się „1 article restant”. Lepiej użyć kategorii one z liczbą w tekście albo dodać gałąź =0: narzędzie oferuje ją jako pole wyboru. Szczegóły w poradniku o liczbie mnogiej i placeholderach ICU.

Jak użyć wyniku

  1. Skopiuj linię "key": "{count, plural, …}" każdego języka do odpowiedniego pliku app_xx.arb.
  2. Dodaj metadane @key raz, w pliku szablonu.
  3. Uruchom flutter gen-l10n: brak gałęzi other lub niezamknięty nawias klamrowy przerywa generowanie z nazwą pliku.

Żeby potem sprawdzić, czy żadne tłumaczenie nie zgubiło ani nie przemianowało placeholdera, użyj wyszukiwarki brakujących kluczy ARB.

Ograniczenia narzędzia

Narzędzie generuje strukturę, nie tłumaczenie: tekst każdej formy piszesz sam. Nie obsługuje komunikatów select ani zagnieżdżonej liczby mnogiej i nie podwaja apostrofów, jeśli włączyłeś use-escaping w l10n.yaml.

Najczęściej zadawane pytania

Jakich kategorii liczby mnogiej potrzebuje polski?

Czterech: one (1), few (2–4, 22–24…), many (0, 5–21, 25…) i other (ułamki). gen-l10n wymaga gałęzi other, a polski tekst potrzebuje few i many, żeby było „2 pliki” i „5 plików”.

Dlaczego gałąź other jest obowiązkowa?

flutter gen-l10n odrzuca liczbę mnogą bez gałęzi other i przerywa generowanie, podając nazwę pliku. Narzędzie zawsze ją dodaje.

Czym różni się =1 od one?

W wygenerowanym kodzie =1 staje się kategorią one, która w niektórych językach (na przykład po francusku) obejmuje też 0. Wpisz liczbę w gałęzi one albo dodaj =0.

Czy mój tekst jest wysyłany na serwer?

Nie. Komunikaty są składane na stronie na podstawie reguł liczby mnogiej przeglądarki; nic nie jest wysyłane.

Czy działa dla języka, którego nie ma na liście?

Tak: wpisz jego kod (na przykład cs lub sv) w wolnym polu. Narzędzie akceptuje każdy kod rozpoznawany przez przeglądarkę.

Czym to się różni od LocalePilot?

To narzędzie tworzy jeden komunikat z liczbą mnogą. LocalePilot to aplikacja desktopowa, kończona właśnie na macOS, która otwiera wszystkie pliki ARB i przed eksportem sprawdza placeholdery ICU każdego tłumaczenia.

Daj mi znać o premierze

LocalePilot jest na etapie finalizacji. Zostaw swój adres e-mail, aby dowiedzieć się o premierze.

  • macOS 12 lub nowszy · Ollama lub LM Studio opcjonalnie
  • Interfejs aplikacji po angielsku, francusku, hiszpańsku, włosku i portugalsku.