Buon Pomeriggio a tutti.
Vi chiedo una consultazione per aggiungere la possibilità di sceglie in che lingua visualizzare un sito di e-commere creato in PHP e mysql.
Ho pensato a due opzioni:
1) a seconda della lingua dell'utente (salvata in una session) includo un file contente la dichiarazione di una matrice composta da indice => "traduzione".
Scrivo il codice almeno mi spiego:
index.php
it.phpCodice PHP:...
include "traduzioni/".$_SESSION['lingua'].".php";
...
en.phpCodice PHP:$_LANG['general'] = array(
"Acquista" => "Acquista"
);
si potrebbe fare anche con un semplice array ma con una matrice riuscirei a dividere meglio le varie traduzioni.Codice PHP:$_LANG['general'] = array(
"Acquista" => "Buy"
);
2) con questa semplice funzione:
global $_CONFIG serve perchè in questa variabile ho l'oggetto che mi permette di fare le query e la connessione al DBMS.Codice PHP:function LoadTraduzione($id,$lang) {
global $_CONFIG;
$a = mysql_fetch_array($_CONFIG['objconn']->query("SELECT ".$lang." FROM traduzioni WHERE id = ".$id.";",$_CONFIG['conn']));
return ($a[$lang] != "") ? $a[$lang] : LoadTraduzione($id,"it");
}
Se la query ha tornato un valore allora lo ritorno se no richiamo la funzione però con la lingua italiana che sono sicuro che esiste.
La mia domanda è la seguente: quale è la migliore della due soluzioni? meglio portarsi a dietro una matrice (di abbastanza grandi dimensioni) o fare tante query quanti sono i testi da tradurre?
Suppongo che la prima porti ad un grande utilizzo di memoria, invece la secondo sprechi un po' di tempo... Però non so scegliere...
Chiedo a voi di consigliarmi oppure di darmi spunti per qualche altra soluzione.
Grazie in anticipo e a voi la parola!

Rispondi quotando