09-11-2011, 12:31 AM
Bonjour,
Je suis confronté a une question. Comment désactiver l'alias d'une fonction interne (se trouvant dans un module) ?
J'utilise la bibliothèque GETtext pour internationaliser mon jeu. Cette bibliothèque définit 1 fonctions :
gettext ($string)
et son alias
_($string)
Cela marche plutôt bien. Cependant, aujourd'hui, j'aimerais pour des tests, redéfinir l'alias de cette fonction.
ainsi, au lieu que _('bonjour') me renvoie 'hello' en anglais, je voudrais qu'elle me renvoie 'Chaine traduire : bonjour : RAS'
(ou un truc du genre.)
Je n'arrive pas à simplement re-définir la fonction :
function _($string)
{
return '';
}
J'ai fouillé mon php.ini, épluché la doc, tenté des rename_function, etc.
De même, j'ai essayé de mettre un namespace en tête de mon fichier main... ça a marché (hooo), mais uniquement pour le fichier main. Les autres fichiers inclus ne profite pas de la fonction.
En dernier recours, j'ai dégagé le module Gettext, re-défini ma fonction _() ainsi que toutes les autres (bindtextdomain, bind_textdomain_codeset et textdomain).
Ca marche ainsi ... mais bon, je suis bien loin de ma solution simple initiale consistant à désactiver un alias de fonction pour la redéfinir ensuite !
Kéké
PS : Mon but est de traquer les derniers éléments qui n'auraient pas encore été passé à la moulinette gettext. Je veux que les chaines de caractères traduite RESSORTE fortement.
(PS : internationalisation de Magdales = 60% pour fichier plat, 80% pour BDD)
Je suis confronté a une question. Comment désactiver l'alias d'une fonction interne (se trouvant dans un module) ?
J'utilise la bibliothèque GETtext pour internationaliser mon jeu. Cette bibliothèque définit 1 fonctions :
gettext ($string)
et son alias
_($string)
Cela marche plutôt bien. Cependant, aujourd'hui, j'aimerais pour des tests, redéfinir l'alias de cette fonction.
ainsi, au lieu que _('bonjour') me renvoie 'hello' en anglais, je voudrais qu'elle me renvoie 'Chaine traduire : bonjour : RAS'
(ou un truc du genre.)
Je n'arrive pas à simplement re-définir la fonction :
function _($string)
{
return '';
}
J'ai fouillé mon php.ini, épluché la doc, tenté des rename_function, etc.
De même, j'ai essayé de mettre un namespace en tête de mon fichier main... ça a marché (hooo), mais uniquement pour le fichier main. Les autres fichiers inclus ne profite pas de la fonction.
En dernier recours, j'ai dégagé le module Gettext, re-défini ma fonction _() ainsi que toutes les autres (bindtextdomain, bind_textdomain_codeset et textdomain).
Ca marche ainsi ... mais bon, je suis bien loin de ma solution simple initiale consistant à désactiver un alias de fonction pour la redéfinir ensuite !
Kéké
PS : Mon but est de traquer les derniers éléments qui n'auraient pas encore été passé à la moulinette gettext. Je veux que les chaines de caractères traduite RESSORTE fortement.
(PS : internationalisation de Magdales = 60% pour fichier plat, 80% pour BDD)