Ne pouvez pas obtenir gettext (php) sur Ubuntu travail
L'exemple suivant fonctionne sur Mac OS X avec Apache, c'est à dire-je obtenir de la chaîne traduite en écho. Mais sur Ubuntu avec lighttpd-je obtenir le texte original de "compte Inactif'. J'ai essayé toutes sortes de combinaisons de l'environnement varialbes sans un peu de chance. Ce n'est pas les autorisations de fichier, soit parce que je peux echo le contenu de l' .mo fichier.
<?php
//$locale = 'sv_SE.UTF-8';
$locale = 'sv_SE';
$dir = dirname(__FILE__);
//File permission is apparantly not a problem as this works...
//echo file_get_contents($dir . '/sv_SE/LC_MESSAGES/flattr.mo');
putenv("LANG=$locale");
putenv("LANGUAGE=$locale");
putenv("LC_ALL=$locale");
putenv("LC_MESSAGES=$locale");
setlocale(LC_ALL, $locale);
setlocale(LC_MESSAGES, $locale);
//setlocale(LANG, $locale);
//setlocale(LANGUAGE, $locale);
bindtextdomain('flattr', $dir);
//bind_textdomain_codeset("flattr", 'UTF-8');
textdomain('flattr');
echo _("Inactive account");
?>
Quelqu'un a des idées?
La langue est correctement mis en place dans l'OS lui-même? Voir ma question précédente peut peut-être aider stackoverflow.com/questions/1431354/php-gettext-in-norwegian
Avez-vous généré les paramètres régionaux pour sv_SE ? Si non, alors ajouter (ou commentaires) une ligne contenant
sudo locale-gen sv_SE.UTF-8 (et puis redémarrez lighttpd). Pourriez-vous poster une réponse à cette question si je peux le marquer comme correct? Merci!
Avez-vous généré les paramètres régionaux pour sv_SE ? Si non, alors ajouter (ou commentaires) une ligne contenant
sv_SE.UTF-8
à /etc/locale.gen
puis exécutez sudo locale-gen
.sudo locale-gen sv_SE.UTF-8 (et puis redémarrez lighttpd). Pourriez-vous poster une réponse à cette question si je peux le marquer comme correct? Merci!
OriginalL'auteur pthulin | 2011-03-10
Vous devez vous connecter pour publier un commentaire.
J'ai été confrontée au même problème. Je vais vous décrire les choses que j'ai fait pour le fixer sur Ubuntu 10.10.
1) assurez-vous que vous avez 'gettext' installé,
Alternativement, vous pouvez installer "php-gettext' si 'gettext' ne peut pas être installé. Le paquet "php-gettext' n'est pas nécessaire si vous avez déjà 'gettext' installé.
2), Puis de générer les paramètres régionaux de votre langue. Dans cet exemple je vais utiliser 'sv_SE'. Recherchez les paramètres régionaux pris en charge dans '/usr/share/i18n/",
Vous trouverez plusieurs lignes qui commencent par "sv_SE',
Cela signifie que vous disposez de plusieurs options pour générer les paramètres régionaux pour sv_SE. L'une des options n'ont pas de point (.) dans son nom (c'est à dire
sv_SE ISO-8859-1
); c'est le jeu de caractères par défaut pour les paramètres régionaux. Pour générer les paramètres régionaux pour le jeu de caractères par défaut, exécutez la commande suivante,Si vous voulez générer que des paramètres régionaux pour le caractère UTF-8, exécutez cette commande,
Redémarrer Apache après la génération de paramètres régionaux (il ne trouve pas le nouvellement créées, les paramètres régionaux autrement),
3) Enfin, la mise à jour de votre script PHP pour faire correspondre les paramètres régionaux que vous avez généré. Si vous avez généré la locale pour l' 'sv_SE',
Mais si vous avez généré l'UTF-8 est l'équivalent de cette région, l'utilisation, la
Tout devrait fonctionner maintenant.
locales-all
qui peut fournir un moyen plus facile, sans avoir à fairelocale-gen
manuellement. J'ai aussi besoin deapt-get install locales
Génial! Enfin une solution. Merci beaucoup.
Merci beaucoup!
OriginalL'auteur Serrano
Si j'ai bien suivi les étapes décrites dans la accepté de répondre, je ne pouvais pas le faire fonctionner sur Ubuntu 14.04 LTS. J'ai eu à faire deux choses importantes:
(1) Avant de générer les messages.mo fichier, j'ai dû le préciser dans le message.po explicitement UTF-8 pour le charset:
(2) j'ai eu de conserver le même nom de dossier que les paramètres régionaux installés. Par exemple, j'ai installé le Kannada en cours d'exécution
sudo locale-gen kn_IN
. Cela a générékn_IN.UTF-8
. Notez la majuscule et trait d'union en UTF-8. J'ai utilisé ce même nom lors de la définition des paramètres régionaux dans mon script php et pour le nom du dossier où j'ai mis les messages.mo fichier:Script PHP:
Nom Du Dossier:
Ubuntu est sensible à la casse de dossier et des noms de fichiers. Donc, assurez-vous que les lettres majuscules sont maintenus comme indiqué ci-dessus.
OriginalL'auteur Sriram Ranganathan