微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在“选择”中应用语法性别?

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

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

这些状态最终可能适用于男性或女性对象(法语),我不明白如何在此处定义 pgettext 上下文。

非常感谢!

解决方法

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

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

,

您自己提供的答案是不必要的黑客攻击。消息上下文不适用于此类用途。

为什么不直接使用这个:

portfolio_reviewed = gettext('Reviewed portfolio')

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

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

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

为什么它是一个黑客?您的解决方案表明您正在组装/连接翻译,这是众所周知的麻烦秘诀。其他语言可能并且将会要求在一个句子中使用不同的词序。

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。