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
/* Wifi Hotspot app for YunoHost
@ -19,9 +18,7 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
// Limonade configuration
// Framework configuration
function configure() {
option('env', ENV_PRODUCTION);
option('debug', false);
@ -30,12 +27,7 @@ function configure() {
define('PUBLIC_DIR', '<TPL:NGINX_LOCATION>/public');
}
// Not found page
function not_found($errno, $errstr, $errfile=null, $errline=null) {
$msg = h(rawurldecode($errstr));
return render($msg, 'error_layout.html.php');
}
// Gettext function
function T_($string) {
return gettext($string);
}
@ -46,43 +38,39 @@ function before($route) {
'fr' => 'fr_FR'
);
/**
* * Locale
* */
if (!isset($_SESSION['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'];
// 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.'.utf8';
$textdomain="localization";
putenv('LANGUAGE='.$lang);
putenv('LANG='.$lang);
putenv('LC_ALL='.$lang);
putenv('LC_MESSAGES='.$lang);
setlocale(LC_ALL,$lang);
setlocale(LC_CTYPE,$lang);
$lang = "$lang.utf8";
$textdomain = "localization";
putenv("LANGUAGE=$lang");
putenv("LANG=$lang");
putenv("LC_ALL=$lang");
putenv("LC_MESSAGES=$lang");
setlocale(LC_ALL, $lang);
setlocale(LC_CTYPE, $lang);
$locales_dir = dirname(__FILE__).'/i18n';
bindtextdomain($textdomain,$locales_dir);
bindtextdomain($textdomain, $locales_dir);
bind_textdomain_codeset($textdomain, 'UTF-8');
textdomain($textdomain);
// Set the $locale variable in template
set('locale', $lang);
}
// After routing
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;
}

View file

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