За последние 24 часа нас посетили 20205 программистов и 1079 роботов. Сейчас ищут 753 программиста ...

Локализация в веб приложении

Тема в разделе "PHP для новичков", создана пользователем mepihindeveloper, 4 апр 2019.

  1. mepihindeveloper

    mepihindeveloper Активный пользователь

    С нами с:
    20 ноя 2018
    Сообщения:
    12
    Симпатии:
    1
    Я делаю своей решение (мини фреймворк) для себя и решил добавить i18n. Возник вопрос в подходе к организации процесса.
    Как я понял, то придется заводить новые таблицы для контента (новости, категории и другие) и постфиксом "_locale", где будет код записи (смотря куда относится запись) и колонка с текстами: ru, eng и другие.
    Класс Localization будет принимать параметры языка и в соответствии с этим выводить контент уже из этой таблицы, а не из основной.
    Логика верная для добавляющегося контента сайта или есть другие пути решения?

    P.S. Не предлагайте готовые решения, так как я хочу понять процесс работы локализации на сайтах.
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    Кто-то так делает как ты написал.
    На самом деле об этом регулярно говорят в т.ч. здесь на форуме. Не хочется в очередной раз то де самое писать. Гугли "site:php.ru локализация"

    Моё мнение вкратце: держать локализацию интерфейса и версии контента для разных языков раздельно. Это концептуально разные вещи. И я не вижу необходимости в куче полей с префиксами/постфиксами для поддерки языков.
     
  3. villiwalla

    villiwalla Активный пользователь

    С нами с:
    14 дек 2016
    Сообщения:
    471
    Симпатии:
    70
    Системные сообщения можно в файлах локализации держать, что для динамического контента то уже в бд.
     
  4. mepihindeveloper

    mepihindeveloper Активный пользователь

    С нами с:
    20 ноя 2018
    Сообщения:
    12
    Симпатии:
    1
    Для динамического контента вы не видите смысл или для интерфейсов? По поводу интерфейсов я полностью согласен, что проще иметь некие переменные, которые бы изменялись в соответствии с языком, но как быть с новостями и другим динамическим контентом?
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.548
    Симпатии:
    1.754
    @mepihindeveloper, таблицы новость и переводы новости, отношение один-ко-многим. Ничего сложного.
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.068
    Симпатии:
    1.231
    Адрес:
    там-сям
    Ни для чего я не вижу необходимости в костылях-постфиксах.

    Хоть ты и пишешь "не предлагайте готовые решения", но знай: фреймворки предлагают интернационализировать приложение через файлы переводов ))) Это отлично работает для интерфейсных элементов. Это то, что описывает программист, то что хранится в системе контроля версий. А вот вводимые пользователем статьи можно хранить в таблицах.

    Почему бы не иметь одну таблицу статей с полем content для содержимого и language для указания языка. А ссылки на варианты переводов в отдельной таблице.
     
    mepihindeveloper нравится это.