我正在寻求有关如何最好地增强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 source,看起来我需要单独包装每个gettext(_lazy)
函数。有更聪明的方法吗?