Gettext de PHP sur Windows
Il y a quelques tutoriels pour gettext (w/Poedit)... malheureusement, c'est surtout pour un environnement UNIX. Et d'autant plus regrettable, c'est que je suis en cours d'exécution de mon serveur WAMP sur Windows XP (mais je suis en train d'élaborer pour un environnement UNIX) et aucun des tutoriels pouvez obtenir gettext fonctionne correctement pour moi. À partir de la page de man (http://us3.php.net/manual/en/book.gettext.php), il apparaît que c'est un processus différent sur un environnement Windows. J'ai essayé quelques solutions dans les commentaires mais je ne peux toujours pas le faire fonctionner! S'il vous plaît, j'ai passé de nombreuses heures sur ce, j'espère que quelqu'un peut me pointer dans la bonne direction pour obtenir cette chose à travailler!!! (et je suis sûr qu'il ya d'autres qui partagent ma frustration). Jusqu'à présent avec ma configuration, je suis le seul à l'obtention de la sortie de "Hello World!" alors que je devrais être en train de la chaîne traduite.
Voici ma configuration/code:
<?php
//test.php
if (!defined('LC_MESSAGES')) {
define('LC_MESSAGES', 6);
}
$locale = "deu_DEU"; //apparently the locales are different on a WINDOWS platform
putenv("LC_ALL=$locale");
setlocale(LC_ALL, $locale);
bindtextdomain("greetings", ".\locale");
textdomain("greetings");
echo _("Hello World");
?>
Structure de dossier
racine: C:\Program Files\WampServer 2\www test.php: C:\Program Files\WampServer 2\www\site .po: C:\Program Files\WampServer 2\www\site\locale\deu_DEU\LC_MESSAGES\salutations.po .mo: C:\Program Files\WampServer 2\www\site\locale\deu_DEU\LC_MESSAGES\salutations.mo
Veuillez en informer! Merci pour votre temps 🙂
_() est un alias de gettext()
Les paramètres régionaux du chaos est ce qui m'a fait passer à framework.zend.com/manual/de/zend.translate.html
Pourquoi êtes-vous définir
LC_MESSAGES
?Parce que
LC_MESSAGES
est ce n'est pas nécessairement défini. Dans mon expérience, il n'a jamais existe sur Windows.OriginalL'auteur axsuul | 2009-09-24
Vous devez vous connecter pour publier un commentaire.
J'ai couru dans des problèmes en travaillant avec gettext sur ma machine locale, et après quelques recherches j'ai trouvé cette page qui a résolu mon problème:
http://www.kipras.com/getting-gettext-to-work-in-apache-on-windows/96
Je cite à partir de la page web:
OriginalL'auteur Wesam Alalem
J'ai eu le même problème, et perdu presque une journée. Enfin, j'ai trouvé une solution très simple, à savoir pour désinstaller WAMP Server (version 2.1), et installer une version plus récente (WampServer 2.1 e - 32 bits). C'est étrange, mais il a résolu complètement le problème.
Voici un exemple de code qui a fonctionné pour moi:
Espère que cela aide.
Résolu pour moi. Il semble qu'il y a un bug avec PHP 5.2.x, gettext et windows. Voir ce post: stackoverflow.com/questions/3398113/php-gettext-problems
OriginalL'auteur Hamid
Je n'ai pas fait une enquête complète sur ce sujet, mais je suis sûr que l'un de vos erreurs que vous avez utilisé invalide locale codes - même sur Windows les paramètres régionaux codes sont les mêmes - ces sont gettext locales et qu'ils sont multi-plateforme.
S'il vous plaît essayez d'utiliser "de", comme le code régional, il devrait fonctionner. Assurez-vous également que votre PHP extension gettext installé et activé (vérifier avec phpinfo).
gettext()
entrée sur le Manuel PHP.OriginalL'auteur sorin
Peut-être trop tard mais j'ai eu des problèmes similaires jusqu'à ce que je l'ai activé la "short open tag" dans mon WAMP php paramètres
OriginalL'auteur Auero
C'est la solution qui a fonctionné pour moi. Cela fonctionne sur la dernière wampserver. (source: http://www.extradrm.com/blog/?p=1035 )
1) Téléchargement de php-gettext ici: https://launchpad.net/php-gettext/+télécharger et décompressez-le
2) Ajouter les fichiers suivants se trouvent dans le package racine dans le même dossier que test-language.php :
- gettext.inc
- gettext.php
- streams.php
3) Ouvrez votre php.ini et commentaire de wampserver php_gettext.dll:
;extension=php_gettext.dll
4) C'est le nouveau fichier de test test-language.php
Après tout cela, vous devez créer dossier locale, en_US ( ou autre langue ) dossier, LC_MESSAGES dossier, puis placer les messages.fichier po.
OriginalL'auteur Alex
C'était parce que je n'ai pas les paramètres régionaux installés.
Ce que cela signifie que je n'avais pas les paramètres régionaux installés? Il doit être realz pénible pour copier le lien ou de type 3 lignes de texte.
OriginalL'auteur axsuul