Список вопросов
Как зайти в Даркнет?!
25th January, 01:11
4
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
892
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
912
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4380
0
Помогите пожалуйста решить задачи
24th November, 23:53
6084
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4395
0
Метода Крамера С++
23rd October, 11:55
4308
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2598
0
Архитектурный вопрос: мультиязычный сайт?
Просмотров: 354
 
Ответов: 6
Всем добрый день.
Возник вопрос по поводу создания мультиязычного сайта.
На сайте будут различные новости, статьи и тп разделы при этом нет гарантии, что статью из русской версии будут переводить на английский язык.
Открываться будет через подпапку domen.ru/(en/ru)/
Как лучше реализовать базу и администрирование контента?
Самое простое в такой ситуации, по-моему, просто дублировать поля, которые надо переводить, что-то вроде:
id: integer, required
title_ru: string, required
body_ru: text, required
title_en: string
body_en: text
и изменять в зависимости от урла имена полей для выборки. Схема простая, легко реализуется, практически нет накладных расходов, но главный недостаток — очень негибкая
Как правило, в английской версии должны быть англоязычные страницы, тексты, новости и т.п. В Русской — конечно же русский. Devman правильно посоветовал, в обычный перечень полей в бд (как если бы это был одноязычный по архитектуре сайт) добавьте поле, отвечающее за язык. А дальше все просто, в админке делаете переключатель-фильтр — который будет показывать записи либо с одним значением поля, либо с другим. Во фронтенде тоже просто используем этот фильтр. Достаточно гибко, языков может быть хоть сколько, по сути можно из даже динамически добавлять из админки) Главное — база пухнуть избыточными полями не будет.
Вот давеча как раз такой модуль и реализовал методом дописывания в существующие таблицы полей для локализации:
name_locale
content_locale и т.д.
В карточке редактирования данных в админке добавилась закладка «Язык», куда вынеслись поля для редактирования данных локализации. Локализацию добавил в страницы, новости, тестовые блоки. Так же вынес в настройки подключения отдельного шаблона дизайна для второго языка, который включается при смене языка.
можно посмотреть что получилось.
Лучшая модель для перевода данных представлена, например, в плагине globalize для AR. github.com/svenfuchs/globalize3 — если интересно.
Вариант с отдельной таблицей для всех переводов — это перевод строк, например. Но придётся заморачиваться с кешированием, поскольку это дело будет делать ну очень много запросов.
Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться