Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

$GLOBALS et class

5 réponses
Avatar
newdb
bonjour,

je travaille sur l'internationalisation d'un site.
ce que j'ai fait fonctionne, mais je me demande si j'ai bien fait tout
comme il faut.


j'ai donc créé x fichiers php de la forme :

$GLOBALS['trad'] = array(
'infos' => 'Informationen',
'contact' => 'Kontakt',
...
);

(les fichiers-langue sont des tableaux de 150 entrées environ pour 6000
caractères)

dans mon script appelant j'ai :

$langues = array('fr','en','de','es',...);
$trad_lg = isset($_REQUEST['lg']) && in_array($_REQUEST['lg'], $langues)
? $_REQUEST['lg'] : $langues[0];
include('../public/inter/lg_'.$trad_lg.'.php');

puis dans ma class appelante je fais :
class Generique {
var $trad;
function Generique() {
$this->trad = $GLOBALS['trad'];
...
} // f-Generique()

function Autre() {
echo $this->trad['infos'];
....
} // f-Autre()

} // c-Generique

ais-je "tout bon", "passable", "cépassadutou"... ?

merci de vos retours,

--
@@@@@
E -00 comme on est very beaux dis !
' `) /
|\_ =="

5 réponses

Avatar
Thief13
Les tableaux, c'est quand meme super lourd... Personnelement, je préfère
utiliser des constantes...
Avatar
Francois Girault
bonjour,

je travaille sur l'internationalisation d'un site.
ce que j'ai fait fonctionne, mais je me demande si j'ai bien fait tout
comme il faut.

[ snip solution alamano ]

ais-je "tout bon", "passable", "cépassadutou"... ?



hors-sujet ? :)

En effet, il existe un outil de traduction de chaîne, GNU gettext
(http://www.gnu.org/software/gettext/manual/gettext.html), que php
intègre nativement :

http://fr3.php.net/gettext

--
FG

Avatar
newdb
Thief13 wrote:
je travaille sur l'internationalisation d'un site.
ce que j'ai fait fonctionne, mais je me demande si j'ai bien fait
tout comme il faut.
$GLOBALS['trad'] = array(
.....
Les tableaux, c'est quand meme super lourd... Personnelement, je préfère

utiliser des constantes...


merci pour ta réponse.

lourds pourquoi ?
à l'écriture du script ? écrire $trad['truc'] ou _TRUC ...
les tableaux sont'ils plus consommateurs de ressources à l'exécution ?
et puis dans mon cas, j'ai l'impression (fausse ?) que définir 150
constantes ce serait un peu beaucoup... surtout que certaines entrées
sont des textes un peu conséquents alors que le manuel dit : " Une
constante est un identifiant (un nom) qui représente une valeur simple."

sinon, au niveau interne, comment php gére-t'il les constantes par
rapport aux tableaux ? c'est juste une différence d'indexation ou
y-a-t'il autre chose qui ferait préférer les uns aux autres ?

--
@@@@@
E -00 comme on est very beaux dis !
' `) /
|_ =="


Avatar
newdb
Francois Girault wrote:
je travaille sur l'internationalisation d'un site.
ce que j'ai fait fonctionne, mais je me demande si j'ai bien fait tout
comme il faut.
il existe un outil de traduction de chaîne, GNU gettext

(http://www.gnu.org/software/gettext/manual/gettext.html), que php
intègre nativement :
http://fr3.php.net/gettext


merci pour ta réponse.

j'ai regardé ça et nul doute que c'est la solution la plus 'intégrée' et
la plus portable, mais... je me suis un peu perdu...

apparemment, je dois à un moment ou à un autre avoir la main sur le
serveur pour définir les fichiers .po et .mo, et, si j'ai à peu près
compris, le serveur doit être relancé pour prendre en compte ces ajouts.

**dans le cas qui me préoccupe**, ça me parait un peu marteau-pilon pour
enfoncer un clou...

mais je regarderai encore pour d'autres projets plus 'lourds'.

--
@@@@@
E -00 comme on est very beaux dis !
' `) /
|_ =="


Avatar
Francois Girault
Francois Girault wrote:
il existe un outil de traduction de chaîne, GNU gettext
(http://www.gnu.org/software/gettext/manual/gettext.html), que php
intègre nativement :
http://fr3.php.net/gettext


merci pour ta réponse.

j'ai regardé ça et nul doute que c'est la solution la plus 'intégrée' et
la plus portable, mais... je me suis un peu perdu...


Certes, il vaut mieux lire la doc, et aussi les commentaires, et googler
un peu pour se faire une idée. comme d'hab non ?

apparemment, je dois à un moment ou à un autre avoir la main sur le
serveur pour définir les fichiers .po et .mo, et, si j'ai à peu près
compris, le serveur doit être relancé pour prendre en compte ces ajouts.



Pour ce qui est question d'avoir la main, vous l'avez puisque vous
mettez votre code php dessus. La génération des fichiers se fait en
local et se efftépète. Pas de redémarrage à ma connaissance.

**dans le cas qui me préoccupe**, ça me parait un peu marteau-pilon pour
enfoncer un clou...

mais je regarderai encore pour d'autres projets plus 'lourds'.



hum, n'était-ce pas l'occasion d'apprendre un outil standard ? Faut pas
avoir peur de trois fichiers ;)

--
FG