Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[Fermé] Trouver la langue courante d'un site...
#1
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
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#2
Salut Eric,

As-tu regardé à tout hasard dans les variables de session ?
#3
Je sais pas si c'est la bonne partie du forum pour ca d'ailleurs...
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#4
Salut airelibre,

Petite précision, je ne cherche pas la variable "mle" mais bien la locale : fr-FR par ex.
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#5
Et avec {get_template_vars} ?
#6
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.
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#7
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...
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#8
Quand je fais {get_template_vars} dans une page, je peux voir que la variable lang contient fr_FR (pas lang_parent).
#9
Ok merci je vais regarder à ca dès que possible.

Je vous tiens au courant et je ferme dès que c'est ok...
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#10
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']);
    }
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
#11
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.
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)