Многоязычный веб-сайт Django с пользовательскими URL-адресами

#django #internationalization #multilingual

#django #интернационализация #многоязычный

Вопрос:

Я немного застрял и нуждаюсь в ваших советах, ребята… Я создаю веб-сайт, который будет переведен на два языка. Например, у меня есть два URL-адреса / gallery / pictures и /galerija / paveikslai (это один и тот же, но на разных языках), которые указывают на один и тот же контент (например, будет показана галерея картин).

Конечно, в зависимости от ссылки должен изменяться язык содержимого и самой страницы. Есть идеи, как сделать это лучше? Может быть, мне нужно использовать языковой префикс? Если да, то как тогда я буду с этим справляться (промежуточное программное обеспечение или что-то в этом роде)?

Может быть, кто-то уже сделал то же самое и у него есть несколько хороших советов или кода для показа?

Спасибо, Игнас

Комментарии:

1. Вы смотрели на django Internationalization and localization ? docs.djangoproject.com/en/dev/topics/i18n

2. конечно. Но вы же не говорите мне, чтобы весь контент, который получает из DB, переводился вот так? Когда у вас есть динамический контент, и он поступает из базы данных, я предпочитаю сохранять этот другой контент в базе данных с индикатором языка. А затем, используя другую ссылку или slug, вы получаете другой контент. Для перевода некоторых слов, предложений — конечно, неплохо иметь файлы переводов.

3. Это довольно старое сообщение в блоге, но, тем не менее, может быть полезным: muhuk.com/2010/01/dynamic-translation-apps-for-django

4. Спасибо! Больше никаких советов? Странно 🙂

Ответ №1:

Возможно, что-то вроде этого:

settings.py:

 from django.utils.translation import ugettext_lazy as _

GALLERY_URL = _('gallery')
PICTURES_URL = _('pictures')
  

urls.py:

 url(r'^' settings.GALLERY_URL '/' settings.PICTURES_URL '/$',
    'my_view',         
    name='my_view'),
  

Вы должны каким-то образом подтвердить, что GALLERY_URL и PICTURE_URL не являются пустыми.

Комментарии:

1. Хороший совет. Я сделал это, разделив url.py файлы зависят от языка. Я также поставил языковой префикс. Промежуточное программное обеспечение проверяет язык в URL. Это помогает получить более удобную для пользователя ссылку. Но ваш совет тоже хорош. Спасибо.