Сведения о вопросе

DUNKER

08:44, 1st August, 2020

Архитектурный вопрос: мультиязычный сайт?

Просмотров: 354   Ответов: 6

Всем добрый день.

Возник вопрос по поводу создания мультиязычного сайта.

На сайте будут различные новости, статьи и тп разделы при этом нет гарантии, что статью из русской версии будут переводить на английский язык.

Открываться будет через подпапку domen.ru/(en/ru)/

Как лучше реализовать базу и администрирование контента?



  Сведения об ответе

lourence

15:17, 10th August, 2020

Самое простое в такой ситуации, по-моему, просто дублировать поля, которые надо переводить, что-то вроде:
id: integer, required
title_ru: string, required
body_ru: text, required
title_en: string
body_en: text

и изменять в зависимости от урла имена полей для выборки. Схема простая, легко реализуется, практически нет накладных расходов, но главный недостаток — очень негибкая


  Сведения об ответе

crush

03:17, 19th August, 2020

Ну если контент будет разный, то может быть — два разных сайта?


  Сведения об ответе

crush

21:06, 1st October, 2020

Как правило, в английской версии должны быть англоязычные страницы, тексты, новости и т.п. В Русской — конечно же русский. Devman правильно посоветовал, в обычный перечень полей в бд (как если бы это был одноязычный по архитектуре сайт) добавьте поле, отвечающее за язык. А дальше все просто, в админке делаете переключатель-фильтр — который будет показывать записи либо с одним значением поля, либо с другим. Во фронтенде тоже просто используем этот фильтр. Достаточно гибко, языков может быть хоть сколько, по сути можно из даже динамически добавлять из админки) Главное — база пухнуть избыточными полями не будет.


  Сведения об ответе

baggs

16:53, 5th August, 2020

А кто что скажет про gettext для мультиязычных сайтов?


  Сведения об ответе

repe

02:08, 19th August, 2020

Вот давеча как раз такой модуль и реализовал методом дописывания в существующие таблицы полей для локализации:

name_locale
content_locale и т.д.

В карточке редактирования данных в админке добавилась закладка «Язык», куда вынеслись поля для редактирования данных локализации. Локализацию добавил в страницы, новости, тестовые блоки. Так же вынес в настройки подключения отдельного шаблона дизайна для второго языка, который включается при смене языка.

можно посмотреть что получилось.


  Сведения об ответе

P_S_S

01:04, 9th August, 2020

Лучшая модель для перевода данных представлена, например, в плагине globalize для AR. github.com/svenfuchs/globalize3 — если интересно.

Вариант с отдельной таблицей для всех переводов — это перевод строк, например. Но придётся заморачиваться с кешированием, поскольку это дело будет делать ну очень много запросов.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться