Vai al contenuto

Differenza chiave i18n

Confronta due file JSON di localizzazione ed elenca le chiavi di traduzione mancanti in ciascuno.

Ingresso
JSON B (file tradotto)

Differenza chiave i18n

Incolla il file di localizzazione di base come JSON A e il file tradotto come JSON B e questo strumento appiattisce entrambi in percorsi chiave con notazione punto - "nav.home", "errors.notFound" - quindi segnala esattamente dove divergono. È costruito per il momento in cui un file di traduzione resta indietro rispetto alla sua fonte: una nuova schermata fornisce una manciata di stringhe, qualcuno modifica direttamente la copia inglese o una lingua è stata tradotta automaticamente mesi fa e mai rivisitata.

Scegli cosa segnalare: chiavi mancanti in B (aggiunte alla fonte ma mai tradotte), chiavi mancanti in A (stringhe rimanenti lasciate da una funzionalità rimossa da allora) o entrambi contemporaneamente. Una quarta modalità, "non tradotta", elenca le chiavi che esistono in entrambi i file con valori identici in byte: un segnale forte che una stringa è stata copiata anziché tradotta, poiché una traduzione reale corrisponde alla fonte solo per coincidenza.

L'output si presenta come un elenco semplice, un percorso per riga, o come JSON, pronto per essere inserito in uno script o in un controllo CI che non riesce a creare quando le traduzioni vanno alla deriva. Il conteggio sopra l'output mostra sempre l'immagine completa indipendentemente dalla modalità di report selezionata: quanti tasti sono in A, quanti sono in B e quanti mancano su entrambi i lati, in modo da poter cogliere la deriva con uno sguardo prima di leggere i dettagli. Il JSON non valido in entrambi i file viene segnalato per nome, citando il messaggio del parser, in modo da sapere immediatamente quale file correggere.

Tutto viene eseguito localmente nel tuo browser: entrambi i file vengono analizzati e confrontati sul tuo dispositivo e non vengono mai caricati da nessuna parte, il che è importante poiché i file di localizzazione spesso portano nomi di funzionalità e terminologia interna inediti prima del lancio. Usalo per rivedere la richiesta pull di un traduttore, controllare una locale prima di un rilascio o trovare ogni stringa rilasciata silenziosamente da un refactor.

FAQ

Cosa conta come "chiave" per il confronto?
Ogni valore foglia nel JSON, indirizzato dal suo percorso completo di punti: un oggetto annidato come {"nav":{"home":"Home"}} produce la chiave "nav.home". Le matrici vengono confrontate come valori interi, non suddivisi in chiavi indicizzate.
Cosa rileva effettivamente la modalità "non tradotta"?
Chiavi presenti in entrambi i file con un valore identico. Contrassegna le stringhe probabilmente non tradotte, ma verrà visualizzato anche un breve valore che è legittimamente lo stesso in entrambe le lingue (un nome di marca, un numero): trattalo come un indizio da controllare, non come un errore garantito.
Cosa succede se una chiave contiene un oggetto in un file e una semplice stringa nell'altro?
Ciascun lato viene appiattito in modo indipendente, in modo che la mancata corrispondenza emerga in modo naturale: le chiavi nidificate dell'oggetto appaiono come mancanti sul lato della stringa e la chiave della stringa appare come mancante sul lato dell'oggetto.
Esiste un limite alla dimensione del file?
Nessun limite fisso oltre il limite di output di 10 MB condiviso dalla maggior parte degli strumenti. L'elaborazione viene eseguita sul tuo dispositivo, quindi anche i cataloghi di grandi dimensioni con migliaia di chiavi vengono confrontati in millisecondi.
I miei file di localizzazione vengono caricati ovunque?
No. Sia JSON A che JSON B vengono analizzati e confrontati interamente nel tuo browser: nessuno dei due file lascia il tuo dispositivo.