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
Codice PHP:
...
include "traduzioni/".$_SESSION['lingua'].".php";
...
it.php
Codice PHP:
$_LANG['general'] = array(
"Acquista" => "Acquista"
);
en.php
Codice PHP:
$_LANG['general'] = array(
"Acquista" => "Buy"
);
si potrebbe fare anche con un semplice array ma con una matrice riuscirei a dividere meglio le varie traduzioni.
2) con questa semplice funzione:
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");
}
global $_CONFIG serve perchè in questa variabile ho l'oggetto che mi permette di fare le query e la connessione al DBMS.
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!