Localization customs terminal · five formats, unequal cargo
Messages can cross platforms. Their grammar cannot be assumed.
Keys and plain values are the easy freight. Placeholders, plural categories, comments, review state, variation axes, and inline codes need separate passports before any conversion is safe.
Format topology map
RUNTIME RESOURCE
keys · values · comments
SOURCE CATALOG
locales · state · variations
RUNTIME RESOURCE
strings · plurals · arrays
EXCHANGE ENVELOPE
source · target · inline codes
SOURCE + METADATA
ICU messages · companion metadata
Key parity customs desk
Placeholder embassy
object token · %2$dPOSITION + TYPE%1$s · %dPOSITION + TYPExliff:g id=timeINLINE GUARDnamed argument · pluralNAME + CATEGORYph · x · equiv-textINLINE CODEPlural jurisdiction
VARIATION TREELOCALE SELECTS CATEGORYMESSAGE GRAMMARCONTAINER, NOT ONE PLURAL MODELNO NATIVE PLURAL TREEMetadata freight manifest
context
language contract
workflow evidence
cannot flatten safely
placeholder schema
structural resource
Conversion loss docket
simple key + value
comment and locale metadata
placeholder dialect
plural categories
variation, array, or rich inline structure without policy
Release QA lane
Structural parity is the gate, not the finish line.
Compare keys
Audit placeholder sets
Find empty targets
Review plural/variation cargo
Export shared subset
Compile with Xcode / Android / Flutter
Test UI, bidi, truncation and locale behavior