Przejdź do treści

różnica kluczy i18n

Porównaj dwa pliki JSON lokalizacji i wypisz brakujące klucze tłumaczenia w każdym z nich.

Wejście
JSON B (plik przetłumaczony)
Wynik

różnica kluczy i18n

Wklej swój podstawowy plik lokalizacyjny jako JSON A i przetłumaczony plik jako JSON B, a to narzędzie spłaszczy obie ścieżki kluczy w notacji kropkowej — „nav.home”, „errors.notFound” — a następnie poinformuje dokładnie, gdzie się rozchodzą. Jest tworzony na moment, w którym plik tłumaczenia pozostaje w tyle za swoim źródłem: nowy ekran zawiera kilka ciągów znaków, ktoś bezpośrednio edytuje kopię w języku angielskim lub ustawienia regionalne zostały przetłumaczone maszynowo kilka miesięcy temu i nigdy nie były ponownie odwiedzane.

Wybierz, co chcesz zgłosić: brak kluczy w B (dodano do źródła, ale nigdy nie przetłumaczono), brak kluczy w A (resztki ciągów znaków pozostawionych po usunięciu funkcji) lub oba na raz. Czwarty tryb, „nieprzetłumaczony”, wyświetla klucze istniejące w obu plikach z wartościami identycznymi w bajtach — silny sygnał, że ciąg znaków został skopiowany, a nie przetłumaczony, ponieważ prawdziwe tłumaczenie pasuje do źródła tylko przez przypadek. Zagnieżdżone obiekty są przeglądane rekurencyjnie, niezależnie od tego, jak głęboko sięga plik; tablice są porównywane jako całe wartości, a nie indeksowane, ponieważ rzeczywiste pliki lokalizacyjne zagnieżdżają się w obiektach i traktują tablice jako nieprzezroczyste dane (formy liczby mnogiej, listy uporządkowane), a nie poprzez klucze numerowane.

Dane wyjściowe mają postać zwykłej listy z jedną ścieżką w wierszu lub formatu JSON, gotowego do wprowadzenia do skryptu lub kontroli CI, która kończy się niepowodzeniem w przypadku dryfowania tłumaczeń. Zestawienie nad wynikami zawsze pokazuje pełny obraz, niezależnie od wybranego trybu raportu — ile kluczy znajduje się w A, ile w B i ile brakuje po obu stronach — dzięki czemu możesz szybko wykryć dryf przed zapoznaniem się ze szczegółami. Nieprawidłowy JSON w którymkolwiek pliku jest zgłaszany według nazwy, cytując komunikat parsera, dzięki czemu od razu wiesz, który plik należy naprawić.

Wszystko działa lokalnie w przeglądarce: oba pliki są analizowane i porównywane na Twoim urządzeniu i nigdy nigdzie nie przesyłane, co ma znaczenie, ponieważ pliki lokalizacyjne często zawierają niepublikowane nazwy funkcji i wewnętrzną terminologię przed uruchomieniem. Użyj go, aby przejrzeć żądanie ściągnięcia tłumacza, sprawdzić ustawienia regionalne przed wydaniem lub znaleźć każdy ciąg znaków, który refaktor po cichu upuścił.

Częste pytania

Co liczy się jako „klucz” do porównania?
Każda wartość liścia w JSON, adresowana przez pełną ścieżkę kropkową — obiekt zagnieżdżony, taki jak {"nav":{"home":"Home"}} generuje klucz "nav.home". Tablice są porównywane jako całe wartości, a nie dzielone na indeksowane klucze.
Co właściwie wykrywa tryb „nieprzetłumaczony”?
Klucze istniejące w obu plikach o identycznej wartości. Oznacza prawdopodobnie nieprzetłumaczone ciągi znaków, ale pojawi się również krótka wartość, która jest taka sama w obu językach (nazwa marki, liczba) — traktuj ją jako trop do sprawdzenia, a nie gwarantowane chybienie.
Co się stanie, jeśli klucz będzie zawierał obiekt w jednym pliku, a zwykły ciąg znaków w drugim?
Każda strona jest spłaszczona niezależnie, więc niedopasowania wychodzą na powierzchnię w naturalny sposób: własne zagnieżdżone klucze obiektu pojawiają się jako brakujące po stronie ciągu, a klucz ciągu wydaje się brakować po stronie obiektu.
Czy istnieje ograniczenie rozmiaru pliku?
Brak stałego limitu przekraczającego limit wyjściowy wynoszący 10 MB, z którego korzysta większość narzędzi. Przetwarzanie odbywa się na Twoim urządzeniu, więc nawet duże katalogi zawierające tysiące kluczy są porównywane w milisekundach.
Czy moje pliki lokalizacyjne są gdzieś przesłane?
Nie. Zarówno JSON A, jak i JSON B są analizowane i porównywane w całości w przeglądarce — żaden plik nie opuszcza urządzenia.