2

我在 settings.py 中指定了模型字段应该可用的语言:

gettext = lambda s: s
LANGUAGES = (
    ('en', gettext('English')),
    ('zh-cn', gettext('Simplified Chinese')),
    ('zh-tw', gettext('Traditional Chinese')),
)

但是当我应用迁移时,这意味着除了原始字段之外,它将创建这三个额外的字段。如果原来的字段是“name”,我现在将有“​​name”、“name_en”、“name_zh_cn”和“name_zh_tw”。

应该如何处理原始字段?忽略它?删除它?我应该不把英文放在LANGUAGES中,把原文当作英文翻译吗?

当我在他们的 Github 页面上寻找解决方案时,有人说您可以将默认设置为您想要的语言,而不是将其包含在您的 TRANSLATIONMODEL_LANGUAGES 中,https://github.com/deschler/django-modeltranslation/issues/488 #issuecomment-457427502但这不是真的(至少对于最新版本的翻译模型),因为它会给你一个django.core.exceptions.ImproperlyConfigured: MODELTRANSLATION_DEFAULT_LANGUAGE not in LANGUAGES setting.错误。

4

1 回答 1

0

您可以通过以下设置实现没有额外的英语字段:

gettext = lambda s: s
LANGUAGES = (
    ('en', gettext('English')),
    ('zh-cn', gettext('Simplified Chinese')),
    ('zh-tw', gettext('Traditional Chinese')),
)
MODELTRANSLATION_LANGUAGES = ('zh-cn', 'zh-tw')

这不一定是最佳实践,因为您应该使用原始值:https ://django-modeltranslation.readthedocs.io/en/latest/usage.html#rules

于 2019-12-27T15:31:49.510 回答