Zadaj pytanie i otrzymaj streszczenie dokumentu, odwołując się do tej strony i wybranego dostawcy AI
Historia wersji
- "Początkowa historia"v9.7.13.11.2026
Treść tej strony została przetłumaczona przy użyciu sztucznej inteligencji.
Zobacz ostatnią wersję oryginalnej treści w języku angielskimJeśli masz pomysł na ulepszenie tej dokumentacji, zachęcamy do przesłania pull requesta na GitHubie.
Link do dokumentacji na GitHubieKopiuj dokument Markdown do schowka
Wtyczka Prettier
prettier-plugin-intlayer układa klucze Twoich tłumaczeń w stałej kolejności przy każdym formatowaniu pliku przez Prettier. Różnice w kodzie (diffs) pozostają małe, konflikty scalania (merge conflicts) stają się rzadsze, a brakujące ustawienie regionalne można natychmiast zauważyć.
Skopiuj kod do schowka
Instalacja
Skopiuj kod do schowka
Wymaga Prettier w wersji 3 lub nowszej.
Jeśli Twój projekt korzysta już z Prettier, polecenie intlayer init prettier automatycznie zainstaluje wtyczkę i doda ją do konfiguracji.
Użycie
Dodaj wtyczkę do konfiguracji Prettier:
Skopiuj kod do schowka
Aby zastosować ją wyłącznie do deklaracji zawartości, użyj nadpisania (override):
Skopiuj kod do schowka
Co podlega sortowaniu
t(): ustawienia regionalne (locales)
Przypięte ustawienia regionalne występują jako pierwsze (domyślnie en). Pozostałe ustawienia regionalne są sortowane alfabetycznie.
Skopiuj kod do schowka
plural(): kolejność CLDR
Kategorie układają się od najmniejszej ilości do wartości zapasowej (fallback): zero, one, two, few, many, other.
Skopiuj kod do schowka
enu(): rosnące progi
Warunki są sortowane według wartości liczbowej, a następnie według operatora (<1, <=1, 1, >=1, >1). Wartość fallback znajduje się na końcu.
Skopiuj kod do schowka
W czasie wykonywania wygrywa pierwszy pasujący warunek. Wtyczka stosuje nową kolejność tylko wtedy, gdy każda wartość liczbowa nadal daje dokładnie taką samą zawartość. Jeśli kolejność decyduje o wyniku, obiekt pozostaje bez zmian. Na przykład w { '<1': …, '<=-2.3': … } klucz '<1' obejmuje każdą liczbę ujemną.
select(): alfabetycznie
Przypadki są sortowane alfabetycznie, a fallback znajduje się na końcu.
Skopiuj kod do schowka
Bez klucza fallback lub other ostatni przypadek służy jako fallback. Ten przypadek pozostaje na końcu i tylko przypadki przed nim są sortowane.
Pliki .content.json
Forma zserializowana jest sortowana w ten sam sposób: { "nodeType": "translation", "translation": { … } }, jak również węzły plural, enumeration oraz select.
Klucze zawartości (opcjonalnie)
Po włączeniu intlayerSortContentKeys: true wtyczka sortuje również klucze content słownika alfabetycznie na każdym poziomie zagnieżdżenia. Dotyczy to wyłącznie plików *.content.*.
Skopiuj kod do schowka
Sortowanie przechodzi przez każdą funkcję pomocniczą (t, plural, enu, select, cond, gender, md, insert, nest, file…), aby dotrzeć do obiektów wewnątrz nich. Wewnętrzna mapa kluczy każdego helpera zachowuje swój porządek. Klucze przekazywane do cond() i gender() nigdy nie zmieniają kolejności, ponieważ ich ostatni klucz służy jako fallback. Pola znajdujące się obok content (key, title, locale…) pozostają nienaruszone.
Opcje
Otwórz tabelę w oknie modalnym, aby wyraźnie zobaczyć całą zawartość
| Opcja | Domyślnie | Opis |
|---|---|---|
intlayerPinnedLocales | ["en"] | Ustawienia regionalne umieszczane na początku w t(), w tej kolejności. Przekaż [], aby posortować wszystkie. |
intlayerSortContentKeys | false | W plikach *.content.* sortuje także klucze zawartości słownika i obiekty zagnieżdżone. |
Co pozostaje bez zmian
- Obiekty zawierające operator rozproszenia (
...base), klucz obliczany ([key]), metodę lub zduplikowany klucz. - Mapy
plural()z kluczem, który nie jest kategorią CLDR. - Mapy
enu(), których nowa kolejność zmieniłaby wynikowy tekst. - Wywołania innych funkcji o nazwach takich samych jak helpery, ale z argumentem innym niż obiekt.
Komentarze przenoszą się razem z kluczem, do którego należą.
Obsługiwane parsery
babel, babel-flow, babel-ts, typescript, flow, acorn, espree, meriyah, json, json5 oraz jsonc. Bloki <script> plików Vue, Svelte i Astro są formatowane za pomocą tych parserów.
Znane ograniczenie. Prettier uruchamia tylko jedną wtyczkę na dany parser. Jeśli inna wtyczka również zastępuje parsery JavaScript/TypeScript (na przykładprettier-plugin-tailwindcss), tylko ostatnia wymieniona wtyczka zostanie zastosowana do tych plików. Ograniczprettier-plugin-intlayerdo plików*.content.*za pomocą reguły override, aby uniknąć konfliktów.
