Forum CMS Made Simple FR
[Fermé] Trouver la langue courante d'un site... - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Modules, Tags (https://forum.cmsmadesimple.fr/forum-14.html)
+--- Sujet : [Fermé] Trouver la langue courante d'un site... (/thread-1600.html)



[Fermé] Trouver la langue courante d'un site... - heriquet - 15/11/2011

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: #1.10.1
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour,

J'ai une question qui me parait simple mais sur laquelle je sèche depuis hier soir...

J'ai un site en dev avec CMSMS 1.10.1, MleCMS dernière version, et j'aimerais pouvoir filtrer sur la langue courante dans un module perso.

Et je trouve pas comment je peux récupérer la langue... J'ai même forcé le paramètre en mettant un paramèter "lang" à l'appel du module, mais rien n'y fait... je ne sais pas le récupérer avec un $params['lang'].

Est-ce que j'ai loupé quelque chose ? Je n'ai pas trouvé dans la doc sur le .org, ni dans Google...

D'avance merci de me sortir de ce pétrin !

Heriquet


[Fermé] Trouver la langue courante d'un site... - airelibre - 15/11/2011

Salut Eric,

As-tu regardé à tout hasard dans les variables de session ?


[Fermé] Trouver la langue courante d'un site... - heriquet - 15/11/2011

Je sais pas si c'est la bonne partie du forum pour ca d'ailleurs...


[Fermé] Trouver la langue courante d'un site... - heriquet - 15/11/2011

Salut airelibre,

Petite précision, je ne cherche pas la variable "mle" mais bien la locale : fr-FR par ex.


[Fermé] Trouver la langue courante d'un site... - Jean le Chauve - 15/11/2011

Et avec {get_template_vars} ?


[Fermé] Trouver la langue courante d'un site... - heriquet - 15/11/2011

J'avais déjà tenté avec le get_template_vars :


Code :
[== PHP ==]
$smarty=$gCms->GetSmarty();
$lang = $smarty->get_template_vars('lang_parent');

Mais il me retourne également "fr" pour le français au lieu de fr-FR.

Je peux m'en sortir avec ca mais j'aurais été curieux de retrouver mon "fr-FR" initial... Manière de pouvoir le distinguer d'un fr-CA par exemple.


[Fermé] Trouver la langue courante d'un site... - heriquet - 15/11/2011

D'autant que j'ai fais un {MonBeauModule lang='fr-FR'} et que je ne retrouve pas le fr-FR.

Pourtant j'ai déjà réalisé un module qui reçoit des paramètres et cela passait sans souci dans l'array $params...


[Fermé] Trouver la langue courante d'un site... - Jean le Chauve - 15/11/2011

Quand je fais {get_template_vars} dans une page, je peux voir que la variable lang contient fr_FR (pas lang_parent).


[Fermé] Trouver la langue courante d'un site... - heriquet - 15/11/2011

Ok merci je vais regarder à ca dès que possible.

Je vous tiens au courant et je ferme dès que c'est ok...


[Fermé] Trouver la langue courante d'un site... - heriquet - 15/11/2011

Voilà ou j'en suis... mais la fonction me retourne nl-NL même quand je suis dans le français...

Code :
[== PHP ==]
    function getCurrentLanguageId($separator='_')
    {
        global $gCms;
        
        $lang = $gCms->GetSmarty()->get_template_vars('lang');
        
        return str_replace('_', $separator, $lang['locale']);
    }



[Fermé] Trouver la langue courante d'un site... - heriquet - 15/11/2011

Bon alors j'ai trouvé le topic suivant : Creating a Multilingual CMSMS Site Using MleCMS Module (Goran Ilic)

Je vois que notre ami Goran a procédé comme suit :

Citation :if ($root_alias == 'de') {
setlocale(LC_ALL, array('de_DE.UTF-8','de_DE@euro','de_DE','german'));
} else {
setlocale(LC_ALL, array('en_US.UTF-8','en_US','english'));
}


Ma fonction est donc ceci :

Code :
[== PHP ==]
    function getCurrentLanguageId($separator='_')
    {
        global $gCms;
        
        $lang = $gCms->GetSmarty()->get_template_vars('lang_parent');
        
        switch($lang)
        {
            case "de":
                return 'de'.$separator.'DE';
            case "fr":
                return 'fr'.$separator.'FR';
            case "nl":
                return 'nl'.$separator.'BE';
            default:
                return 'fr'.$separator.'FR';
        }
    }

Pas hyper flexible mais on fait avec les moyens du bord...

Seule optimisation à laquelle je penserai, c'est de créer un string dans les paramètres du module avec la conversion entre chaque préfixe et chaque langue mais pour le moment ca fait ce que ca doit.