//try to determine user language
$dlang = self::DEFAULT_LANG;
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
- $blang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
- if (substr($blang, 0, 2) == 'fr') {
- $dlang = 'fr_FR';
- } elseif (substr($blang, 0, 2) == 'en') {
- $dlang = 'en_US';
- } else {
- $dlang = self::DEFAULT_LANG;
+ $preferred_locales = array_reduce(
+ explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']),
+ function ($res, $el) {
+ list($l, $q) = array_merge(explode(';q=', $el), [1]);
+ $res[$l] = (float) $q;
+ return $res;
+ }, []);
+ arsort($preferred_locales);
+
+ foreach (array_keys($preferred_locales) as $preferred_locale) {
+ if (array_key_exists(str_replace('-', '_', $preferred_locale), $this->langs)) {
+ $dlang = str_replace('-', '_', $preferred_locale);
+ break;
+ }
}
}
$this->changeLanguage($dlang);
$list = $this->getList();
$al = array();
foreach ($list as $l) {
- //FIXME: shoudl use mb with sthing like:
+ //FIXME: should use mb with something like:
//$strlen = mb_strlen($string, $encoding);
//$firstChar = mb_substr($string, 0, 1, $encoding);
//$then = mb_substr($string, 1, $strlen - 1, $encoding);
if ($row->priorite_statut < Members::NON_STAFF_MEMBERS) {
$this->staff = true;
}
- //check if member is up to date
+ //check if member is up-to-date
if ($row->bool_exempt_adh == true) {
- //member is due free, he's up to date.
+ //member is due free, he's up-to-date.
$this->uptodate = true;
} else {
//let's check from end date, if present