Localization Catalog Auditor

Localization Catalog Auditor

Compare nested JSON message catalogs in your browser. The auditor validates bounded ICU MessageFormat 1 patterns, reports key and argument differences, and checks locale-specific plural categories. An optional complete usage manifest supports evidence-backed unused-key review.

Local JSON only · 2–6 locales · 256 KB each · 3,000 string leaves per catalog · 12,000 characters per message · 1,500 reported issues. ICU MessageFormat 1 subset; runtime plural categories depend on the browser CLDR version.

Locale JSON catalogs and optional usage evidence

Catalog 1

Catalog 2

One JSON Pointer path per line, such as /cart/count. Supply only if this list includes every key your product uses. Without it, unused-key findings are disabled.

Example loaded.

JSON catalogs and usage paths stay in this browser tab. Reports omit message text. Only choose local files you are allowed to inspect.

Comments & questions

Localization Catalog Auditor

Compare nested JSON message catalogs in your browser. The auditor validates bounded ICU MessageFormat 1 patterns, reports key and argument differences, and checks locale-specific plural categories. An optional complete usage manifest supports evidence-backed unused-key review.

Key features

  • Compare nested string keys using unambiguous JSON Pointer paths
  • Reject duplicate decoded JSON keys and malformed ICU syntax
  • Check missing/extra arguments and their formatting kinds
  • Inspect select branches and locale-specific plural fallback from runtime Intl.PluralRules
  • Mark unused keys only when an explicit complete usage list is supplied
  • Download CSV or JSON issue reports without message text

How to use

  1. Paste or import two to six JSON catalogs and enter BCP 47 locale tags.
  2. Choose the base locale and optionally provide a complete list of used JSON Pointer paths.
  3. Run the audit to see parsing, key, ICU argument, select and plural findings.
  4. Review the exact locale and path for each issue, then export the report.

Use cases

  • Review missing strings before a bilingual release
  • Catch renamed ICU placeholders in translated messages
  • Check plural fallback across English and Korean catalogs
  • Audit unused keys against an explicit usage inventory

Frequently asked questions

Does this translate or upload messages?

No. Catalogs are processed in browser memory. It does not call a translation API, fetch remote files or submit message text.

How are unused keys determined?

Only when you supply a complete list of used JSON Pointer paths. Without that evidence, the auditor makes no unused-key claim. The list is your assertion of completeness, not an automatic source-code scan.

Does a missing plural category make the message invalid?

No. ICU requires an other branch. Other locale categories may fall back to it or be matched by an exact-number branch, so the category finding is informational.

Is this a full ICU MessageFormat implementation?

No. It validates a bounded MessageFormat 1 subset: plain arguments, number/date/time, nested plural/select/selectordinal, offsets and apostrophe quoting. Choice and MessageFormat 2 syntax are rejected.

What is exported?

Only locale tags, key counts, JSON Pointer paths and findings. Raw translated message text is omitted; path labels may still reveal information.

Privacy

JSON catalogs and usage paths stay in this browser tab. Reports omit message text. Only choose local files you are allowed to inspect.

References

Related Tools

Bilingual QA CheckerJSON Structure DiffTranslation Memory WorkbenchWasm Module InspectorHreflang Matrix CheckerAST Query PlaygroundContainer Build GraphDependency Graph ExplorerSemver Range LabCron Schedule AuditorPatch Review WorkbenchSource Map ExplorerStructured Data ReviewerHTTP Archive AnalyzerWebhook Signature LabProtobuf Schema WorkbenchGraphQL Schema LabAvro Schema EvolutionLocal SQL WorkbenchSchema Form BuilderMesh Repair WorkbenchPipe Network LabRobot Arm Kinematics LabThermal Network LabBeam Response LabGear Train DesignerTolerance Stackup LabSensor Calibration FitPCB Stackup PlannerDigital Filter DesignerNetwork Reachability MapSun Shadow MapGPS Error SimulatorDigital Logic SimulatorAnalog Circuit LabMechanism Linkage LabAnalysis Mesh GeneratorOpenAPI Contract InspectorDatabase Migration PlannerDimensional Equation CheckerTruss Force LabBoolean Minimization LabControl Response LabQueueing Simulation LabGeofence Event SimulatorCoordinate Reference LabSurvey Traverse LabRaster Classification LabChoropleth Design LabMap Print ComposerRaster Reprojection LabElevation Contour MakerTerrain Viewshed LabWatershed DelineatorMap Tile PackagerText File Encoding WorkbenchFilesystem Portability AuditorSBOM License ExplorerFile Signature Auditornpm Lockfile Conflict ResolverSource Secret AuditorOffline Web Package BuilderCertificate Chain InspectorTorrent Metainfo InspectorChunked File PackagerEncrypted File VaultDuplicate File FinderArchive WorkbenchDesign Token ManagerSpacing Token DesignerResponsive Type SystemPackaging Dieline DesignerSVG Icon Sprite PackerFlex Layout PlaygroundCSS Grid PlaygroundRegex Equivalence LabMarkdown Repository AuditorLog Template MinerResponsive Layout AuditorEmail Template PreviewInternal Link GraphState Machine TesterPetri Net SimulatorGit History VisualizerCurl Request WorkbenchBinary Protocol DesignerHex File EditorBinary Patch WorkbenchFile Signature WorkbenchAPI Mock SandboxSchema Column MapperEvent Log SessionizerER Diagram DesignerTime Series Gap AuditorStratified Data SplitterData Lineage DesignerDecision Tree LabData Anonymization WorkbenchData Expectation RunnerJSON Schema ValidatorBasket Pattern AnalyzerRobots Policy TesterSEO HTML AuditorAccessibility Structure AuditorSyndication Feed WorkbenchIndexNow Payload BuilderCrawl Log AnalyzerCSP Policy WorkbenchSearch Performance AnalyzerCSV Formula Risk AuditorCORS Response SimulatorCache Header LabCookie Policy InspectorWeb Vitals Trace LabSitemap Health AuditorBatch File RenamerFile Manifest VerifierFolder Space MapFolder Difference ReviewerRoute Order OptimizerGeoJSON Map EditorPolygon Overlay LabCartographic Label PlacerSpatial Table JoinGeoJSON Topology AuditorGPX Track AnalyzerTrack Privacy RedactorCSV Table JoinCSV Pivot WorkbenchScientific Data ProfilerTabular Cleaning WorkbenchRecord ReconciliationData Dictionary BuilderCanonical Graph AuditorRedirect Plan TesterHTTP response and ping reference testBrowser and System InformationJSON ↔ YAML ConverterXML ↔ JSON ConverterHTML FormatterJavaScript MinifierMock Data Generator.gitignore GeneratorLicense GeneratorUser-Agent ParserPassword Strength CheckerCode to ImageXML FormatterHTTP Status Code LookupMIME Type LookupJS & SQL String EscapeCSS Box Shadow GeneratorCSS Gradient GeneratorIndent ConverterNumber Base ConverterUnicode Escape ConverterUnicode InspectorMarkdown Table GeneratorBase64 EncoderJSON FormatterURL EncoderSQL FormatterCron Expression GeneratorRegex TesterUUID GeneratorHash GeneratorTimestamp ConverterJWT DecoderHTML Entity ConverterMarkdown PreviewCSS MinifierMeta Tag GeneratorJSON ↔ CSVCase ConverterImage to Base64
Explore all Dev Tools tools →Image/Media →Text/Convert →Life/Fun →