django将枚举中的项目翻译成其他语言

时间:2016-05-18 05:50:38

标签: python django enums

我在枚举中有很多变量,用于系统日志,但我不希望将消息转换为系统日志中的其他语言。但是,我有一个页面显示我想要翻译的变量(如英文到中文)。

如何翻译单引号。

# enumeration implement method
def enum(*sequential, **named):
    enums = dict(zip(sequential, range(len(sequential))), **named)
    reverse = dict((value, key) for key, value in enums.iteritems())
    sequence = dict((key, value) for key, value in enums.iteritems())
    enums['reverse_mapping'] = reverse
    enums['sequence_mapping'] = sequence
    return type('Enum', (), enums)

TASKS = enum(
    CREATE_NETWORK='Create Network', # <- Can't be translated here
    UPDATE_NETWORK='Update Network',
    ... ....
    DELETE_USER='Delete User')

1 个答案:

答案 0 :(得分:1)

如果你使用enum34反向端口,这样的事情可能会起作用:

class Tasks(Enum):
    CREATE_NETWORK = 'Create Network'
    UPDATE_NETWORK = 'Update Network'
    # ...
    def translate(self):
        return some_translation_lib.translate(self.value)

方法名称我确定需要更正,但希望能给你一个想法。

另外,请查看this answer以获取其他Django / Enum提示。