Tom*_*rle 12 django localization admin internationalization
我正在做一个Django应用程序的本地化.
前端网站运行正常,Django管理站点也可以选择所选语言.
但它仅在某些地方应用语言设置,并使用字段和列名称的默认英语版本,即使这些已被翻译.为什么?如何让它在管理界面中使用列和字段名称的翻译名称?
例:
class Order(models.Model):
OPTIONS = ( (0, _("Bank transfer") ), (1, _("Cash on delivery") ), )
user = models.ForeignKey(User, name=_("User") )
payment = models.IntegerField(choices=self.OPTIONS, name=_("Payment"))
Run Code Online (Sandbox Code Playgroud)
我得到了:
我正在使用Django 1.0.2.未被翻译的文本确实出现在区域设置文件中以及有效的文本中.
子问题:是否可以本地化应用程序名称?
Tom*_*rle 15
事实证明我正在为name而不是verbose_name设置翻译版本.
这有效:
class Order(models.Model):
OPTIONS = ( (0, _("Bank transfer") ), (1, _("Cash on delivery") ), )
user = models.ForeignKey(User, verbose_name=_("User") )
payment = models.IntegerField(choices=self.OPTIONS, verbose_name=_("Payment"))
Run Code Online (Sandbox Code Playgroud)
TomA得到了正确的答案.
但现在的Django取第一个参数字段的详细名称,除了为ForeignKey,ManyToManyField和OneToOneField字段类型.所以如果你很懒,你也可以写:
payment = models.IntegerField(_("Payment"), choices=self.OPTIONS)
Run Code Online (Sandbox Code Playgroud)
但是,您仍然必须使用关键字参数作为ForeignKey示例:
user = models.ForeignKey(User, verbose_name=_("User"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5743 次 |
| 最近记录: |