|
shemzone 3
| Posté : 20-03-2004 14:49
Bonjour à tous !
Je me posais la question sur la gestion des traductions dans NPDS. J'ai pu voir que les trads étaient codées en dur dans un fichier lang dans le repertoire "language".
Est-ce qu'il ne serait pas judicieux de balancer tout ça dans une table "langues" avec une clé ID_lng + .ID_label qui en fonction du "$lng=$_GET["LanguageCode"];" ou d'un clic sur un drapeau irai chercher le résultat String_Label dans la table au lieu du fichier "lang-ma_langue.php"?
J'ai, il y a quelques années fait ça en asp et base Oracle, ça doit être facilement jouable avec php/mySql, qu'en pensez-vous ? Est-ce que ça serait facilement réalisable sur NPDS sans tout "casser" ?
J'imagine un truc du genre :
une fonction stringDisplay($lng,$label)
une requête select string_label from tbl_lang_labels where ID_lng=$lng and ID_label=$label
avec le résultat qui va bien : mysql_fetch_array($result)) et <? echo $label["String_Label"]; ?>
Puis à l'affichage :
<?
stringDisplay(lng,"myLabelID")
?>
Un exemple rapide fait à l'instant :
-
<?
$table1="tbl_websites tbl_ws";
$table2="tbl_languages tbl_lang";
$table3="tbl_links tbl_l";
$query = "SELECT tbl_ws.ID_WS, tbl_ws.LABEL, tbl_ws.ID_LANG, tbl_lang.LANG_LABEL, tbl_lang.LANG_FLAG, tbl_l.LINK, tbl_l.LINK_LABEL, tbl_l.LINK_TARGET " ;
$query = $query."FROM $table1, $table2, $table3 ";
$query = $query."WHERE tbl_ws.ID_LANG = tbl_lang.ID_LANG ";
$query = $query."AND tbl_l.ID_LANG = tbl_lang.ID_LANG ";
$result = mysql_query($query);
while ($val = mysql_fetch_array($result)) { ?>
<? echo $val["ID_WS"]; ?> -
<? echo $val["LABEL"]; ?> -
<? echo $val["ID_LANG"]; ?> -
<? echo $val["LANG_LABEL"]; ?>-
<? echo ("[a href='http://").$val["LINK"].("' target='").$val["LINK_TARGET"].("'>").("[img src='").$val["LANG_FLAG"].("']").$val["LINK_LABEL"].("[/a]"); ?>
-
Merci pour vos conseils
Shemzone
[ Message édité par : shemzone : 20-03-2004 14:56 ]
[ Message édité par : shemzone : 20-03-2004 14:57 ] |  Profil Citation
|
|
developpeur 24581
| Posté : 21-03-2004 18:05
TRES faisable mais aussi assez "glouton" en requêtes Mysql ... ou alors tu lit la table completement et tu la stocke dans un fichier ....
Pour des probs de charges MySql, cette solution est donc difficelement envisagéable.
A suivre
|  Profil E-mail www Citation
|
|
shemzone 3
| Posté : 21-03-2004 18:34
Citation : "21-03-2004 18:05, developpeur a écrit :
ou alors tu lit la table completement et tu la stocke dans un fichier ....
"
----------
Ca c'est une bonne idée !
En fait, je vois plutôt l'aspect "maintenance", est-il plus facile de maintenir une table ou un fichier php (tel qu'il existe aujourd'hui) ?
Quoiqu'il en soit, si un nouveau terme apparait, dans un cas, il faut fournir la requete d'insert SQl et dans l'autre le fichier lang modifié... alors...
C'est vrai que ce que j'avais fait marchait du tonnerre mais c'était sur Oracle qui tournait sur un bipro...
Shemzone |  Profil Citation
|
|
developpeur 24581
| Posté : 21-03-2004 23:25
En fait, il faudrait faire un jour, une appli capable de rechercher toutes les trads, de les triers pour pouvoir en éliminer certaines (fausses, inutiles, redondantes ...) et ainsi alléger le code de NPDS (et surtout les fichiers de Trad).
Ensuite on pourrait imaginer une appli de gestion et de fabrication d'un fichier statique (comme supercache par exemple)
Voilu |  Profil E-mail www Citation
|
|