LOC-21Recommended
Give translators context and a review step
Every message carries a note for translators, and every translation, human or machine, is reviewed by a fluent speaker before release.
How to do it
"Book" is a noun on one screen and a verb on another, and a translator who sees only the word guesses. Write a note with each key that says where it appears and what each placeholder holds. Add a length limit where space is tight, and a screenshot where you can. Machine translation is a fine first draft, but a fluent speaker reviews it before it ships. Route each language through a pull request or a translation platform with a named reviewer. Test the layout as Test with a pseudo-locale says.
Examples
JSON example
{
"booking.cta": {
"defaultMessage": "Book",
"description": "Button on the room page that starts a booking. A verb. Maximum 12 characters."
}
}
How to check
A test finds a translator note of at least 20 characters on every source message. Each published language file names a reviewer for its last change.
Sources
- Android Developers: Localize your app (Provide context for declared strings)
- GNU gettext manual (xgettext --add-comments)
Related rules
- LOC-14 Test with a pseudo-locale in Localization
- LOC-30 Let every layout grow with the longest translation in Localization
- LOC-36 Keep app strings in the platform's resource files in Localization
- LOC-42 Run the evals in every language you support in Localization
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/localization/messages-and-translation/translator-context">Agent Wranglers localization playbook</a>. In code you write, add a comment next to it with the same link.