Cuprins
Un aspect care trebuie luat în considerare este definiți corect structura bazei de date. Deși pot exista diferite moduri de salvare a înregistrărilor, va trebui să vedem cum ar trebui structurate informațiile, acesta este ceea ce se numește procesul de normalizare a bazei de date, care este un studiu al relațiilor dintre tabele. Primul lucru despre care trebuie să fim clari este că, chiar dacă avem înregistrările în baza de date, nu va suferi o încărcare de interogare, deoarece vom folosi memoria cache a propriului MySQL pentru a avea înregistrările în cache, să spunem că nu are sens obținerea numele unui oraș din fiecare interogare, dacă va fi numit întotdeauna același, adică ne vom configura dimensiunea cache pe baza volumului pe care îl poate genera baza noastră de date. Dacă doriți să modificați dimensiunea cache-ului, trebuie să utilizați query_cache_size, deoarece variabila MySQL controlează dimensiunea cache-ului total.Vom crea relația înregistrărilor cu InnoDB și utilizarea tastelor străine pentru a relaționa tabele, așa că de exemplu vom avea un tabel numit Țări și un câmp va fi id-ul limbii și un alt tabel cu limbile cu traduceri va fi, acest ultim tabel va fi cel care are înregistrările care vor fi traduse numele țărilor în diferite limbi.
Din PHP Modul în care controlăm limba este prin utilizarea sesiunilor, în acest caz salvăm ID-ul înregistrării tabelului bazei de date pentru a identifica limba utilizatorului, o putem face prin geolocalizare sau folosim o limbă implicită pentru web și apoi utilizatorul o schimbă.
Am pus o sesiune cu id-ul limbii:
$ _SESSION ['languageid'] = 1 sau $ _SESSION ['languageid'] = 'es';
Datorită acestei variabile de sesiune, atunci când interogăm baza de date vom folosi o clauză WHERE ca aceasta pentru a interoga înregistrările în funcție de limbă.
Selectați * din țările WHERE languageid = '". $ _ SESSION [' languageid ']."' Selectați * din Produse WHERE languageid = '". $ _ SESSION [' languageid ']."'
Pe baza acestei metode, trebuie să ne pregătim designul pentru a ne adapta la limbi, creând întregul design pentru a accepta conținut dinamic. De exemplu, în mysql pentru titlul paginii vom avea un câmp pentru fiecare limbă:
title = acesta este limba produsului meu = este title = acesta este limba produsului meu = ro
La fel cum interogarea mysql aduce limbajul definit, putem genera conținutul.
De exemplu, titlul paginii ar arăta astfel:
O legătură dinamică, de asemenea, cu atributul alternativ:
O putem face și pentru diverse elemente ale webului, cum ar fi butoanele:
Acest lucru ne permite să ne extragem din limba utilizatorului pentru a afișa conținut adaptat în funcție de țară și chiar de diferite secțiuni. În plus față de Mysql, aceeași metodă poate fi utilizată cu fișiere text sau xml în funcție de nevoile fiecărui proiect.