Задать вопрос
Ответы пользователя по тегу Интернационализация и локализация
  • Как спроектировать базу данных для мультиязычного сайта?

    yesbro
    @yesbro
    Думаю, помогаю думать
    Другие варианты есть.

    1) Переводы хранить в поле типа json. То есть будет одно поле name на таблицу. Дополнительные таблицы не нужны. Только не советую в шаблонах выводить данные из поля напрямую, что-то типа $name->ru. Лучше написать хелпер и выводить через него (или трейт для модели). В нем же тогда можно использовать замену из языка по умолчанию если для используемого сейчас языка нет перевода. Будет что-то типа t($name, 'ru')

    2) Из основной таблицы убираем все поля для которых нужны переводы в отдельную таблицу переводов для этой таблицы. У нее следующая структура. id, field_name, lang_name( или id), value. Придется писать много кода для реализации удобного сохранение/чтения используя текущую работу с моделями (или как они там в yii2 называются).

    По мне лучше первый вариант.
    Ответ написан
    Комментировать