如何在选择中应用语法性别?

2024-09-30 16:25:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用模型Utils来定义Django中的状态:

class MetaData(TimeStampedModel, StatusModel, SoftDeletableModel):
    STATUS = Choices(('Draft', _('Draft')),
                     ('Submitted', _('Submitted')),
                     ('Reviewed', _('Reviewed')),
                     ('Final', _('Final')),)

这些状态最终可能应用于阳性或阴性对象(法语),我不明白如何定义pgettext上下文

多谢各位


Tags: django模型定义状态statusutilsclassfinal
2条回答

我找到了一个解决方案,为每个状态上下文向类中添加了一个虚拟变量,例如:

portfolio_reviewed = pgettext('portfolio', 'Reviewed')

你给自己提供的答案是不必要的。消息上下文不适用于此类用途

你为什么不用这个:

portfolio_reviewed = gettext('Reviewed portfolio')

将其与您的版本进行比较:

portfolio_reviewed = pgettext('portfolio', 'Reviewed')

它甚至更短。它还有一个额外的好处,翻译人员不需要任何关于上下文portfolio在这里被使用(读:滥用)的额外信息

为什么是黑客?您的解决方案表明您正在组装/连接翻译,这是一个众所周知的解决问题的方法。其他语言可能也将需要在一个句子中使用不同的语序

你的黑客可能适用于芬兰语,因为它只有一种语法性别,但可能不适用于德语或俄语,只有三种。在国际化软件时,您应该避免对其他语言的语法进行任何假设

相关问题 更多 >