如何解决如何取消翻译用 gettext 翻译的消息?
我需要在 python 中取消翻译一条消息。我的来源是英语,我使用 gettext
翻译该字符串,比如法语。我需要“返回”到英文的原始字符串。以某种方式可能吗?
原因如下:我在用户界面中显示了一些消息,因此需要翻译消息。相同的函数将该消息记录在数据库中(用于调试)。我想将消息以原始形式(英文)存储在数据库中。
示例:
alert_please( _("message to be shown and stored") )
这里是定义:
def alert_please(translated_message):
show_the_message(translated_message)
store_the_message(translated_message)
仅供参考,我不会翻译 show_the_message
调用中的消息,因为这样做我将无法查看代码来构建消息目录。
解决方法
感谢@martineau,我以这种方式定义了自己的新 _()
函数:
reverse_dict = {}
def translate(msg_to_translate,get_ori=False):
global reverse_dict
if get_ori:
return reverse_dict.get(msg_to_translate,msg_to_translate)
translation = en.gettext(msg_to_translate)
reverse_dict = {translation: msg_to_translate}
return translation
import builtins
builtins.__dict__['_'] = translate
这个调用 _(msg)
只是翻译消息,调用 _(msg,True)
返回原始字符串。就我而言,我只存储一条消息:就足够了,我只记录最后一条。最坏的情况是返回翻译后的味精,而不是原始味精。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。