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,70 +18,59 @@
* 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);
option('base_uri', '<TPL:NGINX_LOCATION>/'); option('base_uri', '<TPL:NGINX_LOCATION>/');
layout("layout.html.php"); layout("layout.html.php");
define('PUBLIC_DIR', '<TPL:NGINX_LOCATION>/public'); 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) { function T_($string) {
return gettext($string); return gettext($string);
} }
// Before routing // Before routing
function before($route) { function before($route) {
$lang_mapping = array( $lang_mapping = array(
'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'];
// Convert simple language code into full language code
if (array_key_exists($lang, $lang_mapping)) {
$lang = $lang_mapping[$lang];
}
$lang = $lang.'.utf8';
$textdomain="localization";
putenv('LANGUAGE='.$lang); $lang = $_SESSION['locale'];
putenv('LANG='.$lang);
putenv('LC_ALL='.$lang); // Convert simple language code into full language code
putenv('LC_MESSAGES='.$lang); if(array_key_exists($lang, $lang_mapping)) {
setlocale(LC_ALL,$lang); $lang = $lang_mapping[$lang];
setlocale(LC_CTYPE,$lang); }
$locales_dir = dirname(__FILE__).'/i18n';
bindtextdomain($textdomain,$locales_dir); $lang = "$lang.utf8";
bind_textdomain_codeset($textdomain, 'UTF-8'); $textdomain = "localization";
textdomain($textdomain);
// Set the $locale variable in template putenv("LANGUAGE=$lang");
set('locale', $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);
bind_textdomain_codeset($textdomain, 'UTF-8');
textdomain($textdomain);
set('locale', $lang);
} }
// After routing // After routing
function after($output, $route) { function after($output, $route) {
/* return $output;
$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,18 +335,14 @@ 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;
default: default:
$_SESSION['locale'] = 'en'; $_SESSION['locale'] = 'en';
} }
if(!empty($_GET['redirect_to'])) { redirect_to('/');
redirect_to($_GET['redirect_to']);
} else {
redirect_to('/');
}
}); });