4

我正在寻找有关如何最好地增强 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)单独包装每个函数。有没有更聪明的方法来做到这一点?

4

0 回答 0