如何解决如何在“选择”中应用语法性别?
我使用 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 举报,一经查实,本站将立刻删除。