我不想为此使用第三方模块..我只需要翻译类别名称。这是我的类别模型:
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带有内化
https://docs.djangoproject.com/en/2.0/topics/i18n/translation/
但是你必须有.po文件包含你想要翻译的所有字符串。
因此,您可能必须为类别的每个可能值都有预定义的翻译(这可能不那么容易)
但是一旦你这样做,你可以:
from django.utils.translation import ugettext
s = "whatever"
translated_s = ugettext(s)