如何在 Django 管理中添加新的站点语言

Rad*_*dek 4 python django multilingual internationalization

我正在从事一个项目,我们希望拥有多语言网站。我们从 settings.py 中定义的两种语言开始

LANGUAGES = (
    ("en-us", _("United States")),
    ("cs", _("Czech Republic")),
)
Run Code Online (Sandbox Code Playgroud)

我不是从事这项工作的程序员,但如果我理解正确的话,我们所需要的就是能够为整个网站添加法语,例如法语,但不是通过setting.py,而是通过 Django 管理 Web 界面。

LANGUAGES = (
    ("en-us", _("United States")),
    ("cs", _("Czech Republic")),
    ("fr", _("French")),
)
Run Code Online (Sandbox Code Playgroud)

我们使用 Rosetta 在 Django 管理中进行翻译。所以我想使用 Django admin 添加新语言,以便它出现在 Rosetta 界面中。

有人可以告诉我如何从 Django 管理控制(添加、删除或禁用)语言吗?

我检查了这些但没有找到答案

rel*_*t95 7

简而言之,你不能这样做。

Django 项目的 settings.py 未经设计,不建议由 Web 应用程序修改。(这可能会导致安全漏洞。)

所以我建议手动更改LANGUAGES,或者通过删除LANGUAGES密钥来启用 D​​jango 支持的所有语言。当然,不要忘记用makemessages命令生成消息文件。

如果您确实想要这样的动态功能,最好的选择是通过修改 Django Rosetta 源代码自行实现它。(为数据库模型上支持的语言定义首选项,并按其值过滤语言。)