Я пытаюсь создать приложение, которое будет хранить некоторые данные на сербском языке (который написан как кириллицей, так и латиницей), и в зависимости от выбора пользователя оно сможет отображать их в выбранном сценарии. Преобразование из кириллицы в латиницу довольно простое, потому что у каждого кириллического символа есть аналог (или два) в латинице ('Б'->'В', 'Ш'->'Ш', 'Љ'->'). LJ'...), но наоборот может быть немного сложнее ("LJ"->'Љ' или 'LJ'->'ЛЈ', нет никакого способа указать программе, как решать, хотя большинство времени 'LJ'->'Љ' было бы правильным выбором). В любом случае, я собираюсь ввести кириллицу, но мне нужны и латиница, и кириллица. Итак, мой вопрос: что было бы наиболее эффективным способом добиться этого? Должен ли я выполнять преобразование строк в forms.py и хранить данные в разных таблицах (это звучит неэффективно) или лучше выполнять преобразование в представлениях? Некоторый JavaScript в шаблонах, я думаю, был бы еще одним вариантом, но я считаю, что это не очень хорошая идея. Я новичок в Django, поэтому, пожалуйста, простите, если я спрашиваю ерунду.
Django - Перевод данных с кириллицы на латиницу
Ответы (1)
Я думаю, что проще всего рассматривать сербскую кириллицу (официальную) и сербскую латиницу как два разных «языка». После этого вы получите все преимущества платформы Django и ее интернационализации и локализации техника.
имя локали: sr
и sr_Latn
.
ОБНОВЛЕНИЕ
Выше заботятся о строках в моделях, представлениях, формах и шаблонах. Но вам нужно перевести значения базы данных.
Если вы можете автоматизировать свой перевод (без исключений или с небольшими исключениями), вы можете использовать фильтр пользовательского шаблона. Но если вы хотите, чтобы ваши редакторы могли исправлять непредвиденные исключения, вам необходимо создать поля базы данных для хранения перевода. Как и в любом многоязычном проекте. Для этого существует множество структур моделей и приложений. Все зависит от потребностей вашего проекта.