1
0
Fork 0
mirror of https://github.com/YunoHost-Apps/hotspot_ynh.git synced 2024-09-03 19:25:53 +02:00

Fix controller for gettext

This commit is contained in:
Julien VAUBOURG 2015-07-08 18:08:52 +02:00
parent 3cc40acff0
commit 285b02fd3f
2 changed files with 44 additions and 60 deletions

View file

@ -1,4 +1,3 @@
<?php <?php
/* Wifi Hotspot app for YunoHost /* Wifi Hotspot app for YunoHost
@ -19,9 +18,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
// Framework configuration
// Limonade configuration
function configure() { function configure() {
option('env', ENV_PRODUCTION); option('env', ENV_PRODUCTION);
option('debug', false); option('debug', false);
@ -30,12 +27,7 @@ function configure() {
define('PUBLIC_DIR', '<TPL:NGINX_LOCATION>/public'); define('PUBLIC_DIR', '<TPL:NGINX_LOCATION>/public');
} }
// Not found page // Gettext function
function not_found($errno, $errstr, $errfile=null, $errline=null) {
$msg = h(rawurldecode($errstr));
return render($msg, 'error_layout.html.php');
}
function T_($string) { function T_($string) {
return gettext($string); return gettext($string);
} }
@ -46,43 +38,39 @@ function before($route) {
'fr' => 'fr_FR' 'fr' => 'fr_FR'
); );
/** if(!isset($_SESSION['locale'])) {
* * Locale $locale = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
* */ $_SESSION['locale'] = strtolower(substr(chop($locale[0]), 0, 2));
if (!isset($_SESSION['locale'])) {
$locale = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']);
$_SESSION['locale'] = strtolower(substr(chop($locale[0]),0,2));
} }
$lang = $_SESSION['locale']; $lang = $_SESSION['locale'];
// Convert simple language code into full language code // Convert simple language code into full language code
if (array_key_exists($lang, $lang_mapping)) { if(array_key_exists($lang, $lang_mapping)) {
$lang = $lang_mapping[$lang]; $lang = $lang_mapping[$lang];
} }
$lang = $lang.'.utf8';
$textdomain="localization";
putenv('LANGUAGE='.$lang); $lang = "$lang.utf8";
putenv('LANG='.$lang); $textdomain = "localization";
putenv('LC_ALL='.$lang);
putenv('LC_MESSAGES='.$lang); putenv("LANGUAGE=$lang");
setlocale(LC_ALL,$lang); putenv("LANG=$lang");
setlocale(LC_CTYPE,$lang); putenv("LC_ALL=$lang");
putenv("LC_MESSAGES=$lang");
setlocale(LC_ALL, $lang);
setlocale(LC_CTYPE, $lang);
$locales_dir = dirname(__FILE__).'/i18n'; $locales_dir = dirname(__FILE__).'/i18n';
bindtextdomain($textdomain,$locales_dir);
bindtextdomain($textdomain, $locales_dir);
bind_textdomain_codeset($textdomain, 'UTF-8'); bind_textdomain_codeset($textdomain, 'UTF-8');
textdomain($textdomain); textdomain($textdomain);
// Set the $locale variable in template
set('locale', $lang); set('locale', $lang);
} }
// After routing // After routing
function after($output, $route) { function after($output, $route) {
/*
$time = number_format( (float)substr(microtime(), 0, 10) - LIM_START_MICROTIME, 6);
$output .= "\n<!-- page rendered in $time sec., on ".date(DATE_RFC822)." -->\n";
$output .= "<!-- for route\n";
$output .= print_r($route, true);
$output .= "-->";
*/
return $output; return $output;
} }

View file

@ -335,7 +335,7 @@ dispatch('/status', function() {
}); });
dispatch('/lang/:locale', function($locale = 'en') { dispatch('/lang/:locale', function($locale = 'en') {
switch ($locale) { switch($locale) {
case 'fr': case 'fr':
$_SESSION['locale'] = 'fr'; $_SESSION['locale'] = 'fr';
break; break;
@ -344,9 +344,5 @@ dispatch('/lang/:locale', function($locale = 'en') {
$_SESSION['locale'] = 'en'; $_SESSION['locale'] = 'en';
} }
if(!empty($_GET['redirect_to'])) {
redirect_to($_GET['redirect_to']);
} else {
redirect_to('/'); redirect_to('/');
}
}); });