less than 1 minute read

Ever seen {number, plural, one {# message], other {# messages}} expressions in the text? That’s ICU Message Format syntax and it’s pretty common in apps and software. It’s rather rare in games: both Unreal and Unity have their own syntax. And it’s a shame because there’s no support for this special syntax in any of the CAT tools I know.

Anyway, here’s a link to a tool to test ICU Message Format expressions: https://format-message.github.io/icu-message-format-for-translators/editor.html

Here’s the official page about it: https://unicode-org.github.io/icu/userguide/format_parse/messages/

And they’re working on Message Format 2.0, which is going to make nested arguments much more manageable: https://unicode-org.github.io/icu/userguide/format_parse/messages/mf2.html

If you want to know more about ICU as a translator, CAT tools have the nicest guides:

And here’s a list of plural rules and keywords for all the languages ICU Message Format supports: https://unicode-org.github.io/cldr-staging/charts/37/supplemental/language_plural_rules.html

PS I’m working with Crowdin on better support for Unreal PO files. Among other things, it’ll convert Unreal format to ICU format and back, to leverage all the nice UI and QA tools Crowdin provides for ICU.