logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
39 visiteur(s) et 0 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 110 429 844

  • Nb. de membres 8 696
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  English and others languages Support »» Traductions dans une table

Nouveau sujet
 Traductions dans une table#10699Répondre

2Contributeur(s)
shemzonedeveloppeur
3 Modérateur(s)
developpeurjpbJireck
shemzone shemzoneicon_post
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 (".("' target='").$val["LINK_TARGET"].("'>").("[img src='").$val["LANG_FLAG"].("']").$val["LINK_LABEL"].(""); ?>
-
Merci pour vos conseils

Shemzone

[ Message édité par : shemzone : 20-03-2004 14:56 ]

[ Message édité par : shemzone : 20-03-2004 14:57 ]
developpeur developpeuricon_post
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
shemzone shemzoneicon_post
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
developpeur developpeuricon_post
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