2017-10-23 19:26:07 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets locale information for i18n support
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2017-10-24 09:18:23 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Rudimentary language detection via the browser.
|
|
|
|
* Accept-Language returns a list of weighted values with a quality (or 'q') parameter.
|
|
|
|
* A better method would parse the list of preferred languages and match this with
|
2017-10-24 10:34:20 +02:00
|
|
|
* the languages supported by our platform.
|
2017-10-24 09:18:23 +02:00
|
|
|
*
|
|
|
|
* Refer to: https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4
|
|
|
|
*/
|
2017-10-23 21:51:34 +02:00
|
|
|
if (!isset($_SESSION["locale"])) {
|
2017-10-23 22:02:39 +02:00
|
|
|
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
|
|
|
|
switch ($lang){
|
|
|
|
case "de":
|
|
|
|
$locale = "de_DE.UTF-8";
|
|
|
|
break;
|
|
|
|
case "fr":
|
|
|
|
$locale = "fr_FR.UTF-8";
|
|
|
|
break;
|
|
|
|
case "it":
|
|
|
|
$locale = "it_IT.UTF-8";
|
2017-10-24 09:18:23 +02:00
|
|
|
break;
|
|
|
|
case "es":
|
|
|
|
$locale = "es_ES.UTF-8";
|
|
|
|
break;
|
2017-10-23 22:02:39 +02:00
|
|
|
default:
|
|
|
|
$locale = "en_US.UTF-8";
|
|
|
|
break;
|
|
|
|
}
|
2017-10-23 19:26:07 +02:00
|
|
|
}
|
2017-10-23 21:51:34 +02:00
|
|
|
|
2017-10-24 09:18:23 +02:00
|
|
|
// Uncomment for testing
|
|
|
|
// Note: the associated locale must be installed on the RPi
|
2017-10-24 10:34:20 +02:00
|
|
|
// $locale = "fr_FR.UTF-8";
|
2017-10-23 21:51:34 +02:00
|
|
|
$_SESSION["locale"] = $locale;
|
2017-10-23 19:26:07 +02:00
|
|
|
// activate the locale setting
|
2017-10-23 21:51:34 +02:00
|
|
|
putenv("LANG=" . $_SESSION["locale"]);
|
|
|
|
setlocale(LC_ALL, $_SESSION["locale"]);
|
2017-10-23 19:26:07 +02:00
|
|
|
|
2017-10-23 22:02:39 +02:00
|
|
|
bindtextdomain(LOCALE_DOMAIN, LOCALE_ROOT);
|
|
|
|
bind_textdomain_codeset(LOCALE_DOMAIN, 'UTF-8');
|
2017-10-23 19:26:07 +02:00
|
|
|
|
2017-10-23 22:02:39 +02:00
|
|
|
textdomain(LOCALE_DOMAIN);
|
2017-10-23 19:26:07 +02:00
|
|
|
?>
|