GetText : local et OVH ok... Mais pas Gandi !

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : GetText : local et OVH ok... Mais pas Gandi !

Re: GetText : local et OVH ok... Mais pas Gandi !

par Didjo » 25 oct. 2010, 13:55

Avec plaisir !

Re: GetText : local et OVH ok... Mais pas Gandi !

par jojolapine » 25 oct. 2010, 13:34

All right ;)
N'hésite pas à marquer ton sujet comme résolu (sur le message qui t'as aidé)
ça aidera les futurs personnes qui rechercherons celà ;)

Re: GetText : local et OVH ok... Mais pas Gandi !

par Didjo » 25 oct. 2010, 12:32

C'est installé !

Le support l'a fait pour moi, et tout marche à merveille.

Merci mille fois jojolapine ! =D>

Re: GetText : local et OVH ok... Mais pas Gandi !

par Didjo » 25 oct. 2010, 12:13

la seul aide indiquée ici: http://groups.gandi.net/fr/topic/gandi. ... pert/21814 est pour le mode expert.
Je viens de tomber dessus ! :D
Par rapport à bind_textdomain_codeset...
J'avoue que je ne sais pas là...
Moi je ne m'en sert pas :/
Voici le code que j'utilise (attention jamais testé chez gandi!)
Ah yeah, j'ai pas pensé à tout tester pour putenv et setlocale (utf8 UTF8 utf-8 etc.). Je m'en vais ajouter ça au miens en prévision d'une future exportation ! Je vais le laisser, on sait jamais ce qu'il peut se passer avec le russe...
Merci !
Tiens nous au courant de la réponse du support ;)
Of course !

Re: GetText : local et OVH ok... Mais pas Gandi !

par jojolapine » 25 oct. 2010, 12:01

Par rapport à bind_textdomain_codeset...
J'avoue que je ne sais pas là...
Moi je ne m'en sert pas :/
Voici le code que j'utilise (attention jamais testé chez gandi!)
switch ($lang) {
    case 'en':
      $language = 'en_US';
      break;
    case 'de':
      $language = 'de_DE';
      break;
    default:
      $language = 'fr_FR';
      break;
}


 // On modifie les variables d'environnement
putenv('LANG='.$language);
putenv('LC_ALL='.$language);
putenv('LANGUAGE='.$language);

// On modifie les informations de localisation en fonction de la langue
// tu peux mettre plusieurs "essais" de locales à la suite, il prendra la première qui fonctionne
$locale_set = setlocale(LC_ALL, $language . ".utf8",
                                $language . ".UTF8",
                                $language . ".utf-8",
                                $language . ".UTF-8",
                                $language);


// On indique les chemins vers le fichier global.mo
bindtextdomain('global', "path/to/locale");

Re: GetText : local et OVH ok... Mais pas Gandi !

par jojolapine » 25 oct. 2010, 11:57

Bonjour,

je n'ai jamais utilisé gandi en mode AI, mais toujours en expert... donc je ne peux pas vraiment t'aider sur ce point :/
la seul aide indiquée ici: http://groups.gandi.net/fr/topic/gandi. ... pert/21814 est pour le mode expert.

Tiens nous au courant de la réponse du support ;)

Re: GetText : local et OVH ok... Mais pas Gandi !

par Didjo » 25 oct. 2010, 11:49

Ok, donc pour le FN et l'EN je n'ai qu'à rajouter un ".utf8" à la fin du nom...
Et pour le russe, un accès root. Mais pour cela il me faut quitter Gandi AI, et je n'ai aucune connaissance de Gandi si ce n'est ce que j'ai pu faire pour le moment !

Je suis en contact avec le support. Ont-ils moyens de m'installer le russe en UTF8 sans que je n'ai à passer en root ? (je m'en vais leur demander mais peut-être est-tu au courant). Et sinon, une fois en root, j'imagine que c'est grace à dpkg-reconfigure que je pourrais m'installer mon russe...

EDIT
ok c'est bon pour l'anglais :
setlocale(LC_ALL, $lang_iso.".utf8");

Du coup ceci sert-il à quelque chose ?
bind_textdomain_codeset($domain, 'UTF-8');

Re: GetText : local et OVH ok... Mais pas Gandi !

par jojolapine » 25 oct. 2010, 09:08

Le rapport avec les locales installées, c'est que si elles ne sont pas présentes, tu ne pourras pas faire de bindtextdomain (ou en tout cas ça ne fonctionnera pas)
En l’occurrence ici fr_FR n'y est pas c'est fr_FR.utf8 qui la remplace, pareil pour en_GB...
Et ru_RU n'est même pas présent en utf8 ;)
Il va donc te falloir un accès root à ta machine, pas d'autre solution ;)

Re: GetText : local et OVH ok... Mais pas Gandi !

par Didjo » 25 oct. 2010, 01:18

Hello !

D'abord merci de ta réponse.

Effectivement je suis peux explicite...
En fait le contenu des alias _("..."); reste affiché et ne change pas en fonction de la variable affectée...

locale -a

Code : Tout sélectionner

C POSIX en_AU.utf8 en_BW.utf8 en_CA.utf8 en_DK.utf8 en_GB.utf8 en_HK.utf8 en_IE.utf8 en_IN en_NZ.utf8 en_PH.utf8 en_SG.utf8 en_US.utf8 en_ZA.utf8 en_ZW.utf8 fr_BE.utf8 fr_CA.utf8 fr_CH.utf8 fr_FR.utf8 fr_LU.utf8
dpkg-reconfigure locales

Code : Tout sélectionner

/usr/sbin/dpkg-reconfigure must be run as root
Utilisateur root dont je ne connais pas le mot de passe (je pense)...

Bon, sauf que je ne comprend tout ça qu'à moitié... Mes fichiers de langue sont dans ./locale/xx_XX/LC_MESSAGES/strings.mo (/po)
Quel rapport avec toutes ces langues au dessus ?

Merci encore !

Re: GetText : local et OVH ok... Mais pas Gandi !

par jojolapine » 24 oct. 2010, 23:21

Bonjour,

déjà qu'entends-tu par "ça ne marche pas!" ?
Si tu est chez gandi, je suppose, que tu as un accès ssh à ta machine?

Si oui vérifie que tes locales son correctement installées:

Code : Tout sélectionner

locale -a
au besoin fait un

Code : Tout sélectionner

dpkg-reconfigure locales

GetText : local et OVH ok... Mais pas Gandi !

par Didjo » 24 oct. 2010, 11:41

Bonjour !

Première intervention sur ce forum : Bonjour à vous !

Voici le problème... J'ai développé un site multilingue en local, et une fois upgradé chez Gandi, je me rend compte que les fonctions GetText ne marchent pas...

php_info() l'indique enabled, et sur un serveur chez OVH, pas de soucis...

Voilà le code concerné.

Code : Tout sélectionner

function setlanguage($lang, $langs) { $lang_iso = $langs[$lang]; putenv("LC_ALL=$lang_iso"); setlocale(LC_ALL, $lang_iso); $domain = "strings"; bindtextdomain($domain, "./locale"); textdomain($domain); bind_textdomain_codeset($domain, 'UTF-8'); $_SESSION['lang'] = $lang; } // Plein de bla-bla pour déterminer la langue du navigateur, et finalement on arrive à : $lang = "en"; // ou "fr" ou "ru" $langs = array("fr" => "fr_FR", "en" => "en_GB", "ru" => "ru_RU"); setlanguage($lang, $langs);
Une idée ? Un problème de localisation des fichiers mo/po ("./locale") ?

Merci de votre aide ! :wink: