具有语言代码优先级/后备的Django翻译

时间:2015-05-06 12:25:55

标签: python django django-multilingual

我正在寻求有关如何最好地增强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)函数。有更聪明的方法吗?

0 个答案:

没有答案