如何在Django中翻译类别名称

问题描述 投票:0回答:1

我不想为此使用第三方模块..我只需要翻译类别名称。这是我的类别模型:

class Category(models.Model):
    name = models.CharField(_('Category Name'), max_length=50)
    slug = models.SlugField(_('Link'))

    class Meta:
        verbose_name = _('Category')
        verbose_name_plural = _('Categories')

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse('abc:category', args=[self.slug])

我只想翻译Category模型实例的“name”字段。假设我添加了名为“General”的类别。当用户使用x语言查看我的网站时,“常规”文本应翻译为x语言。我怎么能得到这个? Django有没有内置的方法来做到这一点?

(我可以使用选择字段而不是类别的模型,但在这种情况下,它们不能是动态的,我每次想要添加类别时都需要更新models.py文件。)

django
1个回答
2
投票

是的django带有内化

https://docs.djangoproject.com/en/2.0/topics/i18n/translation/

但是你必须有.po文件包含你想要翻译的所有字符串。

因此,您可能必须为类别的每个可能值都有预定义的翻译(这可能不那么容易)

但是一旦你这样做,你可以:

from django.utils.translation import ugettext

s = "whatever"
translated_s = ugettext(s)
© www.soinside.com 2019 - 2024. All rights reserved.