## page was renamed from FeatureRequests/NamespacesForMessageIds = Context for gettext messages = Some message ids in gettext system may be ambiguous and lead to wrong translations, specially those too short. I think that these message ids should be prefixed with some namespace giving context for the translator. For example, in pt-br, `_('Move')` can be translated as ''mover'' (verb, please move it) or ''movimento'' (noun, make the move), therefore a correct translation would need context. With namespaces, we would rather write `_('verb:Move')` or `_('noum:Move')`, depending on what exactly we want. The namespace would be removed from the translated message by `i18n.getText`, even if translation is defaulting to English, and msgstrs could avoid using the namespace to improve performance. The syntax for the namespaces here is just an example, of course. == Real examples from the source code == See [[http://hg.moinmo.in/moin/1.9/file/9b85f7601772/MoinMoin/search/Xapian/search.py#l71|line 71 of MoinMoin/search/Xapian/search.py]]. The word about can mean many things, but it was translated as ''sobre'' in pt-br, which was totally wrong according to the mentioned line. The correct translation is ''aproximadamente'' (approximately) in this case. However, some other code may really want to use `_('about')` in the sense of ''sobre'' (regarding something): that's why we need something like namespaces. In this case, they would give the possible solution of using something like `_('approximately:about')` or `_('regarding:about')`, depending on the context. == Discussion == This is the common problem of gettext system. The common solution is to use more verbose and distinct messages. -- EugeneSyromyatnikov <> RenatoSilva - I believe the namespaces would eliminate the worrying about short messages. Your request may lead to severe changes in i18n system, potentially made it incompatible with existing gettext uilities. -- EugeneSyromyatnikov <> RenatoSilva - I can't see any problem, these utilities will think the namespaces are part of the messages, and that's it. Do you have examples? RenatoSilva - Why isn't it easy, ReimarBauer? I believe you just need to add context to the message, and truncate it when translating with `i18n.getText`. Do you have examples too? /* Requested by RenatoSilva */ ---- CategoryFeatureRequest CategoryForMoin2