<?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
* the languages supported by our platform.
*
* Refer to: https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4
 */
if (empty($_SESSION['locale']) && strlen($_SERVER['HTTP_ACCEPT_LANGUAGE']) >= 2) {
    $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";
            break;
        case "pt":
            $locale = "pt_BR.UTF-8";
            break;
        case "sv":
            $locale = "sv_SE.UTF-8";
            break;
        case "nl":
            $locale = "nl_NL.UTF-8";
            break;
        case "zh":
            $locale = "zh_CN.UTF-8";
            break;
        case "cs":
            $locale = "cs_CZ.UTF-8";
            break;
        case "ru":
            $locale = "ru_RU.UTF-8";
            break;
        case "es":
            $locale = "es_MX.UTF-8";
            break;
        case "fi":
            $locale = "fi_FI.UTF-8";
            break;
        case "si":
            $locale = "si_LK.UTF-8";
            break;
        case "tr":
            $locale = "tr_TR.UTF-8";
            break;
        default:
            $locale = "en_GB.UTF-8";
            break;
    }

    $_SESSION['locale'] = $locale;
}

// Note: the associated locale must be installed on the RPi 
// Use: 'sudo raspi-configure' and select 'Localisation Options' 

// activate the locale setting
putenv("LANG=" . $_SESSION['locale']);
setlocale(LC_ALL, $_SESSION['locale']);

bindtextdomain(LOCALE_DOMAIN, LOCALE_ROOT);
bind_textdomain_codeset(LOCALE_DOMAIN, 'UTF-8');

textdomain(LOCALE_DOMAIN);