Localization and finishing operations workshop / 6 MIN READ
Test the sentence selected by each locale’s plural rules
Validate the runtime grammar path, not just the translation visible in a spreadsheet.
AI-assisted research and analysis for the SNS Creative Fieldbook
Sources checked 2026-11-07
A localized message pattern is a small decision system. Its parser must accept the syntax, its arguments must select the intended branch, and the resulting sentence must make sense in the target language. A correct-looking default example does not establish any of those properties for other inputs.
What you will leave with: A grammar-branch test matrix with actual formatted outputs, parser failures and qualified linguistic decisions.
Use this when
- A website uses ICU-style patterns for counts or named selections.
- Translated messages fail only for particular numbers or combinations of inputs.
This concerns runtime grammar and parser behavior, not mobile resource-version availability, audience eligibility or numeric display conventions. ICU implementations and message-format generations differ; confirm the deployed API and obtain qualified bilingual review. Sources checked on 7 November 2026.
Record the message contract and formatter
Identify the resource, source meaning, locale passed to the formatter and exact implementation/version. Record each argument’s name, type, allowed values and purpose. A count of selected lessons is different from a formatted text label containing that count. Identify whether the system formats on the server, in the browser or both, because agreement in one preview tool does not establish agreement in the delivered route.
Unicode’s long-standing ICU MessageFormat documentation distinguishes plural selection by numeric value and language rules from select branches chosen by keywords. It recommends preserving complete messages rather than assembling fragments. Use that distinction to describe the test contract. Do not assume a library that advertises ICU-style syntax supports every feature or the same escaping behavior as another implementation.
Build cases from branches rather than English examples
Ask the developer and qualified language reviewer to identify which branches the target pattern needs and which inputs exercise them. Include explicit numeric cases, applicable grammatical categories and nested combinations. Zero, one and several may be useful starting points, but they are not a complete universal grammar test. Include fractional inputs only when the underlying product can legitimately produce them, and test invalid inputs separately from ordinary language cases.
For each row, record the input arguments, expected branch and intended sentence meaning. Where a pattern uses an offset, distinguish the original count from the quantity described after that adjustment. Do not infer correctness merely because the visible numeral looks plausible. Have the reviewer explain a disputed grammatical choice in the context of the whole sentence rather than letting a source-language editor choose the shortest translation.
Separate parser success from grammatical success
Run the actual translated pattern through the deployed formatter. Capture failures with the exact resource and input, excluding private reader data. Check punctuation, braces and literal text as well as branch structure. ICU’s documentation specifically discusses quoting and escaping, including version-related apostrophe behavior; the relevant implementation must settle the syntax. A visually harmless punctuation edit can therefore deserve a parser regression test.
Next, inspect the formatted output with the language reviewer. Confirm that all required information survived, variables appear in the intended grammatical positions and the selected wording describes the real count or state. A syntactically valid message can still select an inappropriate sentence. Conversely, a good translation in a spreadsheet can be unusable if the application interprets part of it as syntax. Keep these two failure types separate so the correct owner fixes each.
Verify repaired patterns in the complete interface
Rerun the entire affected branch matrix after a change, not only the input that first failed. Include missing or unexpected argument values under the application’s agreed recovery behavior. A fallback sentence must not invent a completed action or a quantity the system cannot establish. Route that product decision to the responsible owner rather than having a translator improvise around invalid data.
Finally, inspect the resulting message in its real component and keep the approved pattern, test inputs and linguistic decision together. Reopen the matrix when arguments, grammar structure or formatter behavior changes. Do not confuse this record with proof that every installed application has the resource: availability belongs to a separate release check. This acceptance establishes which tested inputs produce which understood sentences in the specified runtime.
Make the reasoning concrete.
A fictional learning portal displays a message about the number of modules remaining. Its English test uses one and three, while a new locale has additional approved grammatical branches. A punctuation edit also changes how one nested pattern is parsed.
Approve the default preview
Opening: Read one translated output and assume the remaining inputs behave similarly.
Hypothesis: The example sentence sounds natural.
Risk: Untested branches and parser-sensitive punctuation remain hidden.
Review runtime branch evidence
Opening: Run the agreed input matrix and have a bilingual reviewer inspect the actual outputs.
Hypothesis: Syntax failures and incorrect grammatical selection become separate, reproducible findings.
Risk: The matrix must be maintained when the formatter or message contract changes.
The team repairs the pattern, reruns every relevant branch and accepts the tested runtime outputs. It makes no claim about untested language rules or resource availability on older applications.
Take the questions into your next brief.
Use these prompts in your own notes. Nothing is submitted from this page.
Runtime
Which exact formatter and locale process this pattern?
Arguments
What types, allowed values and meanings do its inputs have?
Branches
Which legitimate inputs exercise every required grammatical path?
Review
Which failures are syntax, branch selection or linguistic meaning?
Regression
What changes require the approved matrix to run again?
Watch for the wrong conclusion.
- Assuming English singular and plural cases cover every target language.
- Treating a parseable pattern as a correct translation.
- Editing punctuation without retesting syntax-sensitive messages.
Your next action
Choose one nested or pluralized message and capture actual outputs for a reviewer-approved branch matrix before accepting its translation.
Sources & scope
Workflows, worksheets and fictional examples are original editorial analysis. Sources support only specifically attributed principles. Platform guidance can change; legal requirements depend on jurisdiction and context. No measured results or named human reviewer are claimed.
- Unicode ICU: Formatting Messages →Primary formatter documentation · Supports: The long-standing ICU MessageFormat guide distinguishes plural and select arguments, recommends complete message units, and describes quoting/escaping behavior. It does not certify the grammar of any lesson example or every ICU-style implementation.