Placeholder-checker voor iOS en Flutter

Plak een brontekst en de vertalingen: de tool meldt placeholders die zijn weggevallen, hernoemd, van type veranderd of verplaatst, zowel voor Apple-formaten (%@, %1$@, %lld) als voor ICU-berichten in Flutter. Gratis, zonder account, en je tekst verlaat je browser niet.

Vergelijk placeholders

Te controleren vertalingen

Vergeleken in je browser: er wordt niets geüpload.

Controleer elke vertaling vóór de export, zonder knippen en plakken

LocalePilot is een desktopapp die de placeholders van al je vertalingen automatisch met die van de bron vergelijkt (%@, %1$@, %lld, ICU), ze in een QA-overzicht zet en de export tegenhoudt tot een blokkerend probleem is opgelost. De app wordt afgerond voor macOS: laat je e-mailadres achter om te horen wanneer hij uitkomt.

Wat de tool vergelijkt

  • Apple-formaten: %@, %1$@, %d, %ld, %lld, %.2f, %u, %i en %s, positie voor positie. %% is tekst.
  • ICU-placeholders van Flutter: {name}, ook binnen plural- en select-takken.

Zeldzame conversies zoals %e of %x worden bewust genegeerd, zodat tekst als "20%en" niet voor een fout wordt aangezien.

De meest voorkomende fouten

  • Een weggevallen specifier: er crasht niets, maar de naam of het getal verdwijnt van het scherm.
  • Een ander type: %lld vervangen door %@ leest een integer als object en kan een crash veroorzaken.
  • Een andere volgorde zonder posities: om te verplaatsen nummer je elk argument (%1$@, %2$@); genummerd en ongenummerd mengen is ongedefinieerd gedrag.
  • "20 % de remise" in het Frans: door de spatie vóór het procentteken wordt % d als specifier gelezen. Verdubbel het teken: %%.
  • Een hernoemde ICU-placeholder: {count} veranderd in {aantal} wijzigt in Flutter de API van elke locale.

Deze gevallen worden uitgelegd in de handleiding over iOS-format specifiers en de handleiding over ICU-placeholders.

Beperkingen van de tool

De tool vergelijkt placeholders, geen betekenis: hij ziet niet dat twee %@ zijn verwisseld als de argumenten niet genummerd zijn, en ook geen slecht vertaalde zin. Hij interpreteert geen ICU-escaping met apostroffen (de optie use-escaping van Flutter): '{' wordt als accolade gelezen. Hij vergelijkt één tekst tegelijk; gebruik voor een heel bestand de checker voor ontbrekende ARB-sleutels of een editor die elke sleutel controleert.

Veelgestelde vragen

Welke iOS-format specifiers worden herkend?

%@, %1$@ (en andere posities), %d, %ld, %lld, %.2f, %u, %i, %s; %% wordt als tekst behandeld. Zeldzame conversies zoals %e of %x worden bewust genegeerd.

Waarom wordt "20 % de remise" gemeld?

In een format string is "% d" een geldige specifier (de spatie is een printf-flag), dus "%lld % de remise" bevat twee specifiers voor één argument. Schrijf "%lld %% de remise".

Mag ik de volgorde van argumenten in een vertaling veranderen?

Ja, door elk argument te nummeren: %1$@ is het eerste, %2$@ het tweede, waar ze ook in de zin staan. Binnen één tekst is alles genummerd of niets.

Controleert de tool ook ICU-berichten van Flutter?

Ja: placeholders tussen accolades worden met die van de bron vergeleken, ook binnen plural- en select-takken.

Wordt mijn tekst naar een server gestuurd?

Nee. Je teksten, die soms nog niet zijn uitgebracht, worden in de pagina vergeleken: er wordt niets verstuurd.

Wat is het verschil met LocalePilot?

Deze tool vergelijkt één tekst tegelijk. LocalePilot is een desktopapp (wordt afgerond voor macOS) die elke sleutel van je ARB-, .strings- en .xcstrings-bestanden vergelijkt en de export bij een blokkerend probleem tegenhoudt.

Ontvang een bericht bij de lancering

LocalePilot wordt afgerond. Laat je e-mailadres achter om te horen wanneer het uitkomt.

  • macOS 12 of nieuwer · Ollama of LM Studio optioneel
  • App-interface in het Engels, Frans, Spaans, Italiaans en Portugees.