Как создавать многоязычные запросы к MySQL с помощью pHp

{title}

Одним из аспектов, который необходимо учитывать, является правильное определение структуры базы данных . Хотя могут быть разные способы сохранения записей, нам нужно будет увидеть, насколько уместно структурировать информацию, это то, что называется процессом нормализации базы данных, то есть изучением отношений между таблицами. Первое, что мы должны прояснить, это то, что даже если у нас есть записи в базе данных, он не будет страдать от нагрузки запросов, так как мы будем использовать сам кэш MySQL для кэширования записей, скажем, нет смысла Получите название города в каждом запросе, если он всегда будет называться одинаковым, поэтому мы настроим размер нашего кэша на основе объема, который может генерировать наша база данных. Если вы хотите изменить размер кэша, вы должны использовать query_cache_size, поскольку именно переменная MySQL контролирует общий размер кэша.
Связь записей будет создаваться с InnoDB и использованием внешних ключей для связи таблиц, поэтому у нас будет, например, таблица, которая будет называться Страна, и поле с идентификатором языка и другая таблица с языками с переводами, эта последняя таблица будет Здесь есть записи, которые будут переводить названия стран на разные языки.

{title}


В PHP мы можем контролировать язык с помощью сессий, в этом случае мы сохраняем идентификатор записи таблицы базы данных, чтобы определить язык пользователя, мы можем сделать это с помощью геолокации или использовать язык по умолчанию. для Интернета, а затем пользователь меняет его.
Мы ставим сессию с идентификатором языка:
 $ _SESSION ['languageid'] = 1 или $ _SESSION ['languageid'] = 'is'; 

Благодаря этой переменной сеанса, когда мы делаем запросы к базе данных, мы будем использовать предложение WHERE, подобное этому, для запроса записей в соответствии с языком.
 Выберите * из стран, ГДЕ. $ _ SESSION ["язык". "" Выберите * из продуктов, ГДЕ. $ _ SESSION ["язык". "" 

Основываясь на этом методе, мы должны подготовить наш дизайн для адаптации к языкам, создав весь дизайн для принятия динамического контента. Например, в mysql для заголовка страницы у нас будет поле для каждого языка:
 название = это язык моего продукта = это название = это язык моего продукта = ru 

Так же, как запрос MySQL приносит определенный язык, мы можем генерировать контент.
Например, заголовок страницы будет выглядеть так:

Динамическая ссылка с альтернативным атрибутом:

Мы также можем сделать это для различных элементов сети в виде кнопок:

Это позволяет нам абстрагироваться от языка пользователя, чтобы показать контент, адаптированный в соответствии со страной и даже различными разделами. В дополнение к Mysql, тот же метод может использоваться с текстовыми или XML-файлами в соответствии с потребностями каждого проекта.