// TODO: refactoring ongoing down from here...
function getWeekDayName($id) {
- $id = intval($id);
+ $id = (int) $id;
return $this->weekdayNames[$id];
}
return file_exists($filename);
}
+ // getBrowserLanguage() returns a first supported language from browser settings.
function getBrowserLanguage()
{
$acclang = @$_SERVER['HTTP_ACCEPT_LANGUAGE'];
if (empty($acclang)) {
- return "";
+ return false;
}
$lang_prefs = explode(',', $acclang);
foreach ($lang_prefs as $lang_pref) {
$lang_pref_parts = explode(';', trim($lang_pref));
- if ($this->hasLang($lang_pref_parts[0])) {
- return $lang_pref_parts[0];
+ $lang = $lang_pref_parts[0];
+ if ($this->hasLang($lang)) {
+ return $lang; // Return full language designation (if available), such as pt-BR.
}
- $lang_parts = explode('-', trim($lang_pref_parts[0]));
+
+ if (strlen($lang) <= 2)
+ continue; // Do not bother determining main language because we already have it.
+
+ $lang_parts = explode('-', trim($lang));
$lang_main = $lang_parts[0];
- if ($this->hasLang($lang_main)) {
- return $lang_main;
+ if ($lang_main != $lang && $this->hasLang($lang_main)) {
+ return $lang_main; // Return main language designation, such as pt.
}
}
- return "";
+ return false;
}
// getLangFileList() returns a list of language files.