Ga naar inhoud

i18n sleutel diff

Vergelijk twee JSON-bestanden voor lokalisatie en vermeld de vertaalsleutels die in elk ervan ontbreken.

Invoer
JSON B (vertaald bestand)
Uitvoer

i18n sleutel diff

Plak uw basislokalisatiebestand als JSON A en het vertaalde bestand als JSON B, en deze tool vlakt beide sleutelpaden in puntnotatie af - "nav.home", "errors.notFound" - en rapporteert vervolgens precies waar ze uiteenlopen. Het is gebouwd voor het moment dat een vertaalbestand achterop raakt bij de bron: een nieuw scherm levert een handvol tekenreeksen, iemand bewerkt de Engelse kopie rechtstreeks, of een landinstelling is maanden geleden machinaal vertaald en nooit opnieuw bezocht.

Kies wat u wilt rapporteren: ontbrekende sleutels in B (toegevoegd aan de bron maar nooit vertaald), ontbrekende sleutels in A (overgebleven tekenreeksen die sindsdien zijn verwijderd), of beide tegelijk. Een vierde modus, "onvertaald", geeft sleutels weer die in beide bestanden voorkomen met byte-identieke waarden - een sterk signaal dat een string eroverheen is gekopieerd in plaats van vertaald, aangezien een echte vertaling alleen bij toeval overeenkomt met de bron. Geneste objecten worden recursief doorlopen, ongeacht hoe diep het bestand gaat; arrays worden vergeleken als hele waarden in plaats van geïndexeerd, omdat echte lokalisatiebestanden zich nestelen in objecten en arrays behandelen als ondoorzichtige gegevens (meervoudsvormen, geordende lijsten), en niet via genummerde sleutels.

De uitvoer komt als een gewone lijst, één pad per regel, of als JSON, klaar om te worden ingevoerd in een script of een CI-controle die mislukt als de vertalingen afwijken. Het overzicht boven de uitvoer toont altijd het volledige beeld, ongeacht welke rapportmodus is geselecteerd (hoeveel sleutels bevinden zich in A, hoeveel bevinden zich in B en hoeveel ontbreken er aan beide kanten), zodat u de drift in één oogopslag kunt zien voordat u de details leest. Ongeldige JSON in beide bestanden wordt op naam gerapporteerd, waarbij het eigen bericht van de parser wordt geciteerd, zodat u meteen weet welk bestand u moet repareren.

Alles draait lokaal in uw browser: beide bestanden worden op uw apparaat geparseerd en vergeleken en nooit ergens geüpload, wat van belang is omdat lokalisatiebestanden vóór de lancering vaak niet-vrijgegeven functienamen en interne terminologie bevatten. Gebruik het om het pull-verzoek van een vertaler te beoordelen, een locale te controleren vóór een release, of elke string te vinden die een refactor stilletjes heeft laten vallen.

FAQ

Wat telt als een "sleutel" ter vergelijking?
Elke leaf-waarde in de JSON, geadresseerd door het volledige puntpad - een genest object zoals {"nav":{"home":Home"}} produceert de sleutel "nav.home". Arrays worden vergeleken als hele waarden, niet opgesplitst in geïndexeerde sleutels.
Wat detecteert de "onvertaalde" modus eigenlijk?
Sleutels die in beide bestanden voorkomen met een identieke waarde. Het markeert waarschijnlijk onvertaalde tekenreeksen, maar een korte waarde die legitiem hetzelfde is in beide talen (een merknaam, een nummer) zal ook verschijnen - behandel het als een aanwijzing om te controleren, niet als een gegarandeerde misser.
Wat gebeurt er als een sleutel een object in het ene bestand bevat en een gewone string in het andere?
Elke zijde wordt onafhankelijk afgevlakt, zodat mismatches op natuurlijke wijze aan het licht komen: de eigen geneste sleutels van het object lijken te ontbreken aan de stringzijde, en de sleutel van de string lijkt te ontbreken aan de objectzijde.
Is er een limiet op de bestandsgrootte?
Geen vaste limiet boven de uitvoerlimiet van 10 MB die de meeste tools delen. De verwerking vindt plaats op uw apparaat, dus zelfs grote catalogi met duizenden sleutels kunnen in milliseconden met elkaar worden vergeleken.
Worden mijn lokalisatiebestanden ergens geüpload?
Nee. Zowel JSON A als JSON B worden volledig in uw browser geparseerd en vergeleken; geen van beide bestanden verlaat uw apparaat.