python的国际化方案如何处理语境问题?

python的国际化方案如何处理语境问题?

大致了解了一下Python的i18n方案。按照我的理解,基本上就是一个msgid => msgstr的映射。
但是这样的映射办法如何处理如下问题:同一个英文原文,在不同的上下文中需要翻译成不同的文字?

例如,process,按照具体的意义,可能被翻译成进程、过程或者处理,具体翻译成什么要看实际的语境。
再如,Office,如果代表的是Microsoft Office产品,就不能翻译;一般则要翻译成办公室。

msgid=>msgstr映射没有反映出语境的要求,一个msgid似乎也不能对应到多个msgstr。Python如何处理这种需要联系上下文的翻译问题呢?
你的问题对于相同的msg_id是无法解决的。只能尽量包含更多的内容,让它们不同,好在不同的内容中体现不同的内容。i18n不是机器翻译,无法实现你说的语境功能。而且绝大多数情况下很少出现你说的问题。
这种情况属于少数,但是确实存在。
我以前参加的一个C++项目本来实现了一个类似Python的文本对照翻译方案,后来发现有的文本在不同地方需要翻译成不同的中文,只好又重新实现了一套多语言系统。

我们也考虑过修改成有区别的文字,但是讨论后认为由于实现的限制而扭曲设计不可取。一些已经约定俗成的用语也不是能随便修改的。
那么你只能使用不标准的做法了。标准的gettext方式没有你说的功能。
了解了,谢谢。