| 343 | === For Developers |
| 344 | |
| 345 | Here's a condensed list of a few things useful to know about i18n support when coding: |
| 346 | title attributes:: |
| 347 | those attributes are collected automatically (i.e. no need for explicit `${_('...')}` expressions), but only when the message doesn't contain an expression. In the latter case, they need an explicit `${_('... %(param)s ...', param=...)}` wrapping |
| 348 | typographical translation:: some languages, like French, have special typographical rules (non breaking space before ":" or ";"), so don't consider that those signs can be left outside of translation scope when part of the text (e.g. `_(";")` when ";" is used as a separator, `_("%(field)s:")`) |
| 349 | messages consolidation:: |
| 350 | when adding new messages, always look if there's not already a very close message, and then reuse it (e.g. we now have 7 occurrences of ''"Repository '%(repo)s' not found"'', previously we had 7 variants of that message) |
| 351 | |