Django模型内容的国际化

4 投票
1 回答
3315 浏览
提问于 2025-04-16 09:34

在我的设计中,有一些模型需要用不同的语言来存储某些字段。这种情况以前有人处理过吗?我看到一些Django的模块可以帮助进行模型翻译,但有些模块并没有正常工作。

有没有什么好的做法呢?下面是我的代码。

我的模型是,

class Lookup_I18n(models.Model):
    i18n_code = models.CharField(max_length=5, default=settings.LANGUAGE_CODE)
    value = models.CharField(max_length=300)

class Lookup(models.Model):

    purpose = models.CharField(max_length=10)
    key = models.CharField(max_length=10)
    value_i18n = models.ForeignKey(Lookup_I18n)
    value = models.Field()

    class Meta:
        unique_together = (('purpose', 'key'),)

1 个回答

5

我最近使用了django_modeltranslation这个工具。它会在每个表里创建额外的字段,用来存储某个字段在特定语言下的翻译。你可以通过Django的管理面板来提供这些翻译。这里有一些Django的应用,可以用来翻译模型。我只需要翻译模型中的一个字段,它就成功了。你可以选择最适合你设计的应用。

撰写回答