我不想为此使用第三方模块。我只需要翻译类别名称。这是我的类别模型:
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])
我只想翻译“类别”模型实例的“名称”字段。假设我添加了一个名为“常规”的类别。当用户使用x语言查看我的网站时,“常规”文本应翻译为x语言。我该如何实现? Django没有内置的方法吗?
(我可以将选择字段而不是模型用于类别,但是在这种情况下,它们不能是动态的,每次想添加类别时,我都需要更新models.py文件。)
答案 0 :(得分: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)