From 4862f1beb266aa19ebefe4d74689b1d7fda175c5 Mon Sep 17 00:00:00 2001 From: Okhin <okhin@okhin.fr> Date: Mon, 17 Dec 2018 18:45:23 +0100 Subject: [PATCH] Translatiosn are now fixed --- app/config.ini | 4 ---- app/config.php | 2 ++ app/controller/controller.php | 34 ++++++++++++++++++++++++---------- app/view/toolbar.html | 4 ++-- 4 files changed, 28 insertions(+), 16 deletions(-) diff --git a/app/config.ini b/app/config.ini index a263fb7..44a0d0a 100644 --- a/app/config.ini +++ b/app/config.ini @@ -19,7 +19,3 @@ DEBUG=0 ; Langue par défaut LANGUAGE='fr' - -; Variables globales du site -languages=["fr-FR", "en-US"] - diff --git a/app/config.php b/app/config.php index 616684f..ef40d0b 100644 --- a/app/config.php +++ b/app/config.php @@ -28,6 +28,8 @@ define("CTX_MODE", getenv('CTX_MODE')); //define("CERTIFICATE","XXXXXXXXXXXXXXXXXXXXXXXXx"); //define("CTX_MODE","PRODUCTION"); +define("LANGUAGES", ["fr_FR", "en_US"]); + define("PIPLOME_PATH", getenv('PIPLOME_PATH')); define("PIPLOME_URL", getenv('PIPLOME_URL')); diff --git a/app/controller/controller.php b/app/controller/controller.php index 73cdbad..f935182 100644 --- a/app/controller/controller.php +++ b/app/controller/controller.php @@ -23,32 +23,46 @@ class Controller define("ROOTURL", "https://".$HTTP_HOST.'/'); // Sélection de la langue par header - $lang = 'fr-FR'; + $lang = 'fr_FR'; $lang_short = 'fr'; - var_dump($f3->get('HEADERS')); - /*$accept_languages = $f3->exists('HEADERS.Accept-Language') ? $f3->get('HEADERS.Accept-Language').split[','] : []; - //$accept_languages[] = $f3->exists('GET.lang') ? $f3->get('GET.lang') : 'C' ; - foreach ($f3->get('languages') as $language) { + if ($f3->exists('GET.lang')) { + // On force la langue passée dans l'URL GET + $accept_languages = [$f3->get('GET.lang')]; + $f3->set('SESSION.lang', $f3->get('GET.lang')); + } else { + if ($f3->exists('SESSION.lang')) { + // On a déjà défini une langue précédemment + $accept_languages = [$f3->get('SESSION.lang')]; + } else { + // On récupère la langue du navigateur + $accept_languages = $f3->exists('HEADERS.Accept-Language') ? explode(',', $f3->get('HEADERS.Accept-Language')) : []; + } + } + + foreach (LANGUAGES as $language) { foreach ($accept_languages as $accept_language) { - if (substr($language, $accept_language) > 0) { + if (strpos($language, $accept_language)>=0) { $lang = $language; $lang_short = explode($language, '-')[0]; } } } - */ - if (!bindtextdomain("messages", dirname(__FILE__)."/../locales")) { + + var_dump($lang); + if (!bindtextdomain("messages", "../locales/")) { + var_dump(bindtextdomain("messages", "../locales/")); echo "<!-- bondtextdomain failed -->"; } // Language ok, set the locale environment putenv("LC_MESSAGES=".$lang); putenv("LANG=".$lang); putenv("LANGUAGE=".$lang); - // this locale MUST be selected in "dpkg-reconfigure locales" + if (!setlocale(LC_ALL, $lang)) { - echo "<!-- setlocale failed -->"; + echo "<!-- setlocale $lang failed -->"; } + if (!textdomain("messages")) { echo "<!-- textdomain failed -->"; } diff --git a/app/view/toolbar.html b/app/view/toolbar.html index 875bfdf..6a575f3 100644 --- a/app/view/toolbar.html +++ b/app/view/toolbar.html @@ -90,8 +90,8 @@ <div class="hidden-xs hidden-sm"> <nav id="up-bar" class="navbar navbar-default dark-blue"> <ul class="nav navbar-nav navbar-right blue"> - <li><a href="?lang=fr">{{ _("[FR]")}}</a></li> - <li><a href="?lang=en">{{ _("[EN]")}}</a></li> + <li><a href="?lang=fr_FR">{{ _("[FR]")}}</a></li> + <li><a href="?lang=en_US">{{ _("[EN]")}}</a></li> </ul> <ul class="nav navbar-nav navbar-right"> <check if="{{ array_key_exists('user', @SESSION) }}"> -- GitLab