Come creare query multilingue su MySQL con pHp

Sommario
Un aspetto che deve essere preso in considerazione è definire correttamente la struttura del database. Sebbene possano esserci diversi modi per salvare i record, dovremo vedere come dovrebbero essere strutturate le informazioni, questo è quello che viene chiamato il processo di normalizzazione del database, che è uno studio delle relazioni tra le tabelle. La prima cosa su cui dobbiamo essere chiari è che anche se abbiamo i record nel database, non subirà un carico di query, poiché utilizzeremo la cache di MySQL per memorizzare i record nella cache, diciamo che non ha senso ottenere il nome di una città in ogni query se sarà sempre chiamata allo stesso modo, cioè configureremo la nostra dimensione della cache in base al volume che il nostro database può generare. Se vuoi cambiare la dimensione della cache devi usare query_cache_size poiché è la variabile MySQL che controlla la dimensione totale della cache.
Creeremo la relazione dei record con InnoDB e l'uso di chiavi esterne per relazionare le tabelle, quindi ad esempio avremo una tabella chiamata Paesi e un campo sarà l'id della lingua e un'altra tabella con le lingue con le traduzioni sarà, quest'ultima tabella sarà quella che ha i record che verranno tradotti nome dei paesi in diverse lingue.

A partire dal PHP Il modo in cui controlliamo la lingua è utilizzando le sessioni, in questo caso salviamo l'ID record della tabella del database per identificare la lingua dell'utente, possiamo farlo tramite geolocalizzazione o utilizzare una lingua predefinita per il web e quindi l'utente la cambia.
Mettiamo una sessione con l'id della lingua:
$ _SESSION ['languageid'] = 1 o $ _SESSION ['languageid'] = 'es';

Grazie a questa variabile di sessione, quando interroghiamo il database utilizzeremo una clausola WHERE come questa per interrogare i record in base alla lingua.
 Seleziona * da Paesi WHERE languageid = '". $ _ SESSION [' languageid ']."' Seleziona * da Prodotti WHERE languageid = '". $ _ SESSION [' languageid ']."' 

Sulla base di questo metodo, dobbiamo preparare il nostro design per adattarsi ai linguaggi, creando l'intero design per accettare contenuti dinamici. Ad esempio in mysql per il titolo della pagina avremo un campo per ogni lingua:
 title = questo è il mio prodotto lingua = è titolo = questo è il mio prodotto lingua = en 

Proprio come la query mysql porta il linguaggio definito, possiamo generare il contenuto.
Ad esempio, il titolo della pagina sarebbe simile a questo:

Un collegamento anche dinamico con l'attributo alternativo:

Possiamo farlo anche per vari elementi del web come i pulsanti:

Questo ci consente di astrarre dalla lingua dell'utente per mostrare contenuti adattati in base al paese e persino a sezioni diverse. Oltre a Mysql, lo stesso metodo può essere utilizzato con file di testo o xml in base alle esigenze di ogni progetto.
wave wave wave wave wave