diff options
Diffstat (limited to 'include/language.php')
-rw-r--r-- | include/language.php | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/include/language.php b/include/language.php index 96d3e48a9..efe9397fb 100644 --- a/include/language.php +++ b/include/language.php @@ -327,3 +327,61 @@ function get_language_name($s, $l = null) { return $language->getName(); } + + + +function language_list() { + + $langs = glob('view/*/hstrings.php'); + + $lang_options = array(); + $selected = ""; + + if(is_array($langs) && count($langs)) { + if(! in_array('view/en/hstrings.php',$langs)) + $langs[] = 'view/en/'; + asort($langs); + foreach($langs as $l) { + $ll = substr($l,5); + $ll = substr($ll,0,strrpos($ll,'/')); + $lang_options[$ll] = get_language_name($ll, $ll) . " ($ll)"; + } + } + return $lang_options; +} + +function lang_selector() { + + $langs = glob('view/*/hstrings.php'); + + $lang_options = array(); + $selected = ""; + + if(is_array($langs) && count($langs)) { + $langs[] = ''; + if(! in_array('view/en/hstrings.php',$langs)) + $langs[] = 'view/en/'; + asort($langs); + foreach($langs as $l) { + if($l == '') { + $lang_options[""] = t('default'); + continue; + } + $ll = substr($l,5); + $ll = substr($ll,0,strrpos($ll,'/')); + $selected = (($ll === App::$language && (x($_SESSION, 'language'))) ? $ll : $selected); + $lang_options[$ll] = get_language_name($ll, $ll) . " ($ll)"; + } + } + + $tpl = get_markup_template('lang_selector.tpl'); + + $o = replace_macros($tpl, array( + '$title' => t('Select an alternate language'), + '$langs' => array($lang_options, $selected), + + )); + + return $o; +} + |