Как да създадете многоезични заявки към MySQL с pHp

Съдържание
Един аспект, който трябва да се има предвид, е правилно дефинирайте структурата на базата данни. Въпреки че може да има различни начини за запазване на записите, ще трябва да видим как трябва да бъде структурирана информацията, това се нарича процес на нормализиране на базата данни, който е изследване на връзките между таблиците. Първото нещо, с което трябва да сме наясно, е, че дори и да имаме записите в базата данни, това няма да понесе натоварване на заявка, тъй като ще използваме собствения кеш на MySQL, за да кешираме записите, да речем, че няма смисъл да се получава името на град във всяка заявка, ако винаги ще се нарича същото, тоест ще конфигурираме размера на кеша си въз основа на обема, който нашата база данни може да генерира. Ако искате да промените размера на кеша, трябва да използвате query_cache_size, тъй като променливата MySQL контролира общия размер на кеша.
Ще създадем връзката на записите с InnoDB и използването на чужди ключове за свързване на таблици, така че например ще имаме таблица, наречена Държави и поле ще бъде идентификатор на езика, а друга таблица с езиците с преводи ще бъде, последната таблица ще бъде тази, която има записите, които ще бъдат преведени имената на държавите на различни езици.

От PHP Начинът, по който контролираме езика, е чрез използване на сесии, в този случай запазваме идентификатора на записа в таблицата на базата данни, за да идентифицираме езика на потребителя, можем да го направим чрез геолокация или да използваме език по подразбиране за мрежата и след това потребителят да го промени.
Поставяме сесия с езиков идентификатор:
$ _SESSION ['languageid'] = 1 или $ _SESSION ['languageid'] = 'es';

Благодарение на тази променлива на сесията, когато запитваме базата данни, ще използваме клауза WHERE като тази, за да запитваме записите според езика.
 Изберете * от страни WHERE languageid = '". $ _ SESSION [' languageid ']."' Изберете * от продукти WHERE languageid = '". $ _ SESSION [' languageid ']."' 

Въз основа на този метод, ние трябва да подготвим нашия дизайн, за да се адаптира към езиците, създавайки целия дизайн, за да приема динамично съдържание. Например в mysql за заглавието на страницата ще имаме поле за всеки език:
 заглавие = това е езикът на моя продукт = е заглавие = това е езикът на моя продукт = bg 

Точно както заявката mysql носи определения език, можем да генерираме съдържанието.
Например заглавието на страницата ще изглежда така:

Също така динамична връзка с алтернативния атрибут:

Можем да го направим и за различни елементи в мрежата като бутони:

Това ни позволява да абстрахираме от езика на потребителя, за да покажем съдържание, адаптирано според държавата, и дори различни раздели. В допълнение към Mysql, същият метод може да се използва с текстови или xml файлове според нуждите на всеки проект.
wave wave wave wave wave