Sări la conținut

Diferența tastei i18n

Comparați două fișiere JSON de localizare și enumerați cheile de traducere care lipsesc din fiecare.

Intrare
JSON B (fișier tradus)
Ieșire

Diferența tastei i18n

Lipiți fișierul de localizare de bază ca JSON A și fișierul tradus ca JSON B, iar acest instrument le aplatizează pe ambele căi ale cheilor cu notație de puncte — „nav.home”, „errors.notFound” — apoi raportează exact unde diferă. Este creat pentru momentul în care un fișier de traducere rămâne în urmă sursei sale: un nou ecran conține câteva șiruri de caractere, cineva editează copia în limba engleză direct sau o locație a fost tradusă automat cu luni în urmă și nu a fost niciodată revizuită.

Alegeți ce să raportați: chei lipsă din B (adăugate la sursă, dar niciodată traduse), chei lipsă din A (șiruri rămase o caracteristică eliminată de atunci) sau ambele deodată. Un al patrulea mod, „netradus”, listează cheile care există în ambele fișiere cu valori identice pentru octeți - un semnal puternic prin care un șir a fost copiat mai degrabă decât tradus, deoarece o traducere reală se potrivește cu sursa doar prin coincidență.

Ieșirea vine ca o listă simplă, o cale pe linie sau ca JSON, gata să fie introdusă într-un script sau o verificare CI care eșuează o construcție atunci când traducerile se deplasează. Numărul de deasupra rezultatului arată întotdeauna imaginea completă, indiferent de modul de raportare selectat - câte taste sunt în A, câte sunt în B și câte lipsesc pe ambele părți - astfel încât să puteți surprinde deriva cu o privire înainte de a citi detaliile. JSON nevalid în fiecare fișier este raportat după nume, citând propriul mesaj al analizorului, astfel încât să știți imediat ce fișier să remediați.

Totul rulează local în browserul dvs.: ambele fișiere sunt analizate și comparate pe dispozitivul dvs. și nu sunt încărcate niciodată nicăieri, ceea ce contează, deoarece fișierele de localizare poartă adesea nume de caracteristici nepublicate și terminologie internă înainte de lansare. Folosiți-l pentru a examina cererea de extragere a unui traducător, pentru a audita o locație înainte de o lansare sau pentru a găsi fiecare șir pe care un refactor a fost aruncat în tăcere.

FAQ

Ce contează drept „cheie” pentru comparație?
Fiecare valoare a frunzei din JSON, adresată prin calea sa completă a punctelor — un obiect imbricat precum {"nav":{"home":"Home"}} produce cheia "nav.home". Matricele sunt comparate ca valori întregi, nu împărțite în chei indexate.
Ce detectează de fapt modul „netradus”?
Chei care există în ambele fișiere cu o valoare identică. Semnalizează șirurile probabil netraduse, dar o valoare scurtă care este în mod legitim aceeași în ambele limbi (un nume de marcă, un număr) va apărea, de asemenea, - tratați-o ca un indiciu de verificare, nu o ratare garantată.
Ce se întâmplă dacă o cheie deține un obiect într-un fișier și un șir simplu în celălalt?
Fiecare parte este aplatizată în mod independent, astfel încât suprafețele nepotrivite să apară în mod natural: cheile imbricate proprii ale obiectului apar ca lipsă pe partea șirului, iar cheia șirului apare ca lipsă pe partea obiectului.
Există o limită pentru dimensiunea fișierului?
Nicio limită fixă dincolo de limita de ieșire de 10 MB partajată de majoritatea instrumentelor. Procesarea rulează pe dispozitivul dvs., astfel încât chiar și cataloagele mari cu mii de taste se compară în milisecunde.
Fișierele mele de localizare sunt încărcate de undeva?
Nu. Atât JSON A, cât și JSON B sunt analizați și comparați în întregime în browser - niciun fișier nu părăsește dispozitivul.