Как добавить новый язык сайта в админке Django
Я работаю над проектом, в котором мы хотим иметь многоязычный сайт. Мы начинаем с двух языков, определенных в settings.py
LANGUAGES = (
("en-us", _("United States")),
("cs", _("Czech Republic")),
)
Может кто-нибудь подсказать мне, как мы можем управлять (добавлять, удалять или отключать) языками из админки Django?
Я проверил их, но не нашел ответа
- Добавление нового языка сайта в админке Django
- Как управлять языками системы из админки сайта django?
- https://djangowaves.com/tutorial/multiple-languages-in-Django/
- Добавьте перевод для поля модели с помощью django rosetta
Короткий ответ: вы не можете этого сделать.
settings.py проекта Django не предназначен и не рекомендуется для изменения веб-приложением. (Это может привести к нарушению безопасности)
Поэтому я рекомендую изменить LANGUAGES
вручную, или включить все языки, поддерживаемые Django, удалив ключ LANGUAGES
. Конечно, не забудьте сгенерировать файлы сообщений с помощью команды makemessages
.
Если вам действительно нужна такая динамическая функция, лучше всего будет реализовать ее самостоятельно, изменив исходный код Django Rosetta. (Определите элемент предпочтения для поддерживаемых языков в модели БД и фильтруйте языки по его значению)