require_once "include/dba.php";
-if (! function_exists('get_browser_language')) {
/**
* @brief get the prefered language from the HTTP_ACCEPT_LANGUAGE header
*/
function get_browser_language() {
+ $lang_list = [];
if (x($_SERVER, 'HTTP_ACCEPT_LANGUAGE')) {
// break up string into pieces (languages and q factors)
preg_match_all('/([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/i',
$_SERVER['HTTP_ACCEPT_LANGUAGE'], $lang_parse);
- $lang_list = [];
if (count($lang_parse[1])) {
// go through the list of prefered languages and add a generic language
// for sub-linguas (e.g. de-ch will add de) if not already in array
}
// check if we have translations for the preferred languages and pick the 1st that has
- for ($i = 0; $i < count($lang_list); $i++) {
- $lang = $lang_list[$i];
+ foreach ($lang_list as $lang) {
if ($lang === 'en' || (file_exists("view/lang/$lang") && is_dir("view/lang/$lang"))) {
$preferred = $lang;
break;
// in case none matches, get the system wide configured language, or fall back to English
return Config::get('system', 'language', 'en');
-}}
+}
function push_lang($language) {
if (isset($a->strings) && count($a->strings)) {
$a->stringsave = $a->strings;
}
- $a->strings = array();
+ $a->strings = [];
load_translation_table($language);
$lang = $language;
}
if (isset($a->stringsave)) {
$a->strings = $a->stringsave;
} else {
- $a->strings = array();
+ $a->strings = [];
}
$lang = $a->langsave;
// l
-if (! function_exists('load_translation_table')) {
/**
* load string translation table for alternate language
*
- * first plugin strings are loaded, then globals
+ * first addon strings are loaded, then globals
*
* @param string $lang language code to load
*/
function load_translation_table($lang) {
$a = get_app();
- $a->strings = array();
- // load enabled plugins strings
- $plugins = dba::select('addon', array('name'), array('installed' => true));
- while ($p = dba::fetch($plugins)) {
+ $a->strings = [];
+ // load enabled addons strings
+ $addons = dba::select('addon', ['name'], ['installed' => true]);
+ while ($p = dba::fetch($addons)) {
$name = $p['name'];
if (file_exists("addon/$name/lang/$lang/strings.php")) {
include("addon/$name/lang/$lang/strings.php");
include("view/lang/$lang/strings.php");
}
-}}
+}
/**
* @brief Return the localized version of the provided string with optional string interpolation
* @return array
*/
function get_available_languages() {
- $langs = array();
+ $langs = [];
$strings_file_paths = glob('view/lang/*/strings.php');
if (is_array($strings_file_paths) && count($strings_file_paths)) {