我正在寻找有关如何最好地增强 Django 翻译框架的建议。
目的是修改翻译系统,以便系统首先尝试从另一种(预定义的)语言代码中获取翻译,而不是立即退回到msgid
找不到映射时。
背景:
首先尝试回退到另一种语言的愿望,而不是msgids
因为当前的“msgids”集不是人类可读的。该项目使用令牌/标识符。人类可读的英语与所有其他语言一起在它自己的翻译 PO 文件中。这在调整英文副本时是有利的……无需触摸其他语言文件。
尝试:
def ugettext_fb(message):
trans_output = translation.ugettext(message)
if trans_output == message:
preset_language = translation.get_language()
logger.warn('Missing \'%s\' translation for %s' % (preset_language, message))
translation.activate(settings.LANGUAGE_FALLBACK)
trans_output = translation.ugettext(message)
translation.activate(preset_language)
return trans_output
这个包装器似乎可以工作,尽管我很感兴趣,如果人们知道更好的方法吗?
此外,查看Django 源代码,看来我需要gettext(_lazy)
单独包装每个函数。有没有更聪明的方法来做到这一点?