]> git.mxchange.org Git - friendica.git/blobdiff - include/pgettext.php
Remove unrecommended leading backslash for fully qualified namespaces
[friendica.git] / include / pgettext.php
index ea08b4c5cd9eb3f5a8f239b69d26c4212427b4a5..9b541e8e3c77f6fe1cc3bd776a0490145af3ffe7 100644 (file)
@@ -10,6 +10,8 @@
  *
  */
 
+use Friendica\Core\Config;
+
 require_once("include/dba.php");
 
 if(! function_exists('get_browser_language')) {
@@ -42,17 +44,17 @@ function get_browser_language() {
        // 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];
-               if(file_exists("view/lang/$lang") && is_dir("view/lang/$lang")) {
+               if ($lang === 'en' || (file_exists("view/lang/$lang") && is_dir("view/lang/$lang"))) {
                        $preferred = $lang;
                        break;
                }
        }
-       if(isset($preferred))
+       if (isset($preferred)) {
                return $preferred;
+       }
 
        // in case none matches, get the system wide configured language, or fall back to English
-    $a = get_app();
-       return ((isset($a->config['system']['language'])) ? $a->config['system']['language'] : 'en');
+       return Config::get('system', 'language', 'en');
 }}
 
 
@@ -98,7 +100,7 @@ if(! function_exists('load_translation_table')) {
  * @param string $lang language code to load
  */
 function load_translation_table($lang) {
-       global $a;
+       $a = get_app();
 
        $a->strings = array();
        // load enabled plugins strings
@@ -162,25 +164,31 @@ function string_plural_select_default($n) {
 }}
 
 
+
 /**
- * Return installed languages as associative array
- * [
- *             lang => lang,
- *             ...
- * ]
+ * @brief Return installed languages codes as associative array
+ *
+ * Scans the view/lang directory for the existence of "strings.php" files, and
+ * returns an alphabetical list of their folder names (@-char language codes).
+ * Adds the english language if it's missing from the list.
+ *
+ * Ex: array('de' => 'de', 'en' => 'en', 'fr' => 'fr', ...)
+ *
+ * @return array
  */
-function get_avaiable_languages() {
-       $lang_choices = array();
-       $langs = glob('view/lang/*/strings.php'); /**/
-
-       if(is_array($langs) && count($langs)) {
-               if(! in_array('view/lang/en/strings.php',$langs))
-                       $langs[] = 'view/lang/en/';
-               asort($langs);
-               foreach($langs as $l) {
-                       $t = explode("/",$l);
-                       $lang_choices[$t[2]] = $t[2];
+function get_available_languages() {
+       $langs = array();
+       $strings_file_paths = glob('view/lang/*/strings.php');
+
+       if (is_array($strings_file_paths) && count($strings_file_paths)) {
+               if (!in_array('view/lang/en/strings.php', $strings_file_paths)) {
+                       $strings_file_paths[] = 'view/lang/en/strings.php';
+               }
+               asort($strings_file_paths);
+               foreach($strings_file_paths as $strings_file_path) {
+                       $path_array = explode('/', $strings_file_path);
+                       $langs[$path_array[2]] = $path_array[2];
                }
        }
-       return $lang_choices;
+       return $langs;
 }