raspap-webgui-mirror/includes/locale.php

50 lines
2.5 KiB
PHP
Raw Normal View History

2017-10-23 17:26:07 +00:00
<?php
/**
* Sets locale information for i18n support
*
*/
/**
* 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 08:34:20 +00:00
* the languages supported by our platform.
*
* Refer to: https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4
2018-05-29 18:55:08 +00:00
*/
if (empty($_SESSION['locale'])) {
2017-10-23 20:02:39 +00:00
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($lang){
case "fr":
$locale = "fr_FR.UTF-8";
break;
case "it":
$locale = "it_IT.UTF-8";
break;
2018-05-28 20:36:08 +00:00
case "pt":
$locale = "pt_BR.UTF-8";
break;
2018-05-27 15:50:16 +00:00
default:
$locale = "en_GB.UTF-8";
2017-10-23 20:02:39 +00:00
break;
}
2018-05-29 18:55:08 +00:00
$_SESSION['locale'] = $locale;
2017-10-23 17:26:07 +00:00
}
// Note: the associated locale must be installed on the RPi
2018-05-27 15:50:16 +00:00
// Use: 'sudo raspi-configure' and select 'Localisation Options'
// Uncomment for testing
2018-05-28 20:36:08 +00:00
// $locale = "pt_BR.UTF-8";
2018-05-27 15:50:16 +00:00
2017-10-23 17:26:07 +00:00
// activate the locale setting
2018-05-29 18:55:08 +00:00
putenv("LANG=" . $_SESSION['locale']);
setlocale(LC_ALL, $_SESSION['locale']);
2017-10-23 17:26:07 +00:00
2017-10-23 20:02:39 +00:00
bindtextdomain(LOCALE_DOMAIN, LOCALE_ROOT);
bind_textdomain_codeset(LOCALE_DOMAIN, 'UTF-8');
2017-10-23 17:26:07 +00:00
2017-10-23 20:02:39 +00:00
textdomain(LOCALE_DOMAIN);
2017-10-23 17:26:07 +00:00
?>