diff --git a/boot.php b/boot.php index 0caf591459..07bd618735 100644 --- a/boot.php +++ b/boot.php @@ -35,7 +35,6 @@ use Friendica\Module\Login; require_once 'include/network.php'; require_once 'include/text.php'; require_once 'include/datetime.php'; -require_once 'include/pgettext.php'; define('FRIENDICA_PLATFORM', 'Friendica'); define('FRIENDICA_CODENAME', 'Asparagus'); diff --git a/include/pgettext.php b/include/pgettext.php deleted file mode 100644 index fa3260cb1a..0000000000 --- a/include/pgettext.php +++ /dev/null @@ -1,233 +0,0 @@ -3 ) { - $dashpos = strpos($lang_parse[1][$i], '-'); - if (!in_array(substr($lang_parse[1][$i], 0, $dashpos), $lang_list ) ) { - $lang_list[] = strtolower(substr($lang_parse[1][$i], 0, $dashpos)); - } - } - } - } - } - - // check if we have translations for the preferred languages and pick the 1st that has - foreach ($lang_list as $lang) { - if ($lang === 'en' || (file_exists("view/lang/$lang") && is_dir("view/lang/$lang"))) { - $preferred = $lang; - break; - } - } - if (isset($preferred)) { - return $preferred; - } - - // 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) { - global $lang, $a; - - $a->langsave = $lang; - - if ($language === $lang) { - return; - } - - if (isset($a->strings) && count($a->strings)) { - $a->stringsave = $a->strings; - } - $a->strings = []; - load_translation_table($language); - $lang = $language; -} - -function pop_lang() { - global $lang, $a; - - if ($lang === $a->langsave) { - return; - } - - if (isset($a->stringsave)) { - $a->strings = $a->stringsave; - } else { - $a->strings = []; - } - - $lang = $a->langsave; -} - -// l - -/** - * load string translation table for alternate language - * - * first addon strings are loaded, then globals - * - * @param string $lang language code to load - */ -function load_translation_table($lang) { - $a = get_app(); - - $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"); - } - } - - if (file_exists("view/lang/$lang/strings.php")) { - include("view/lang/$lang/strings.php"); - } - -} - -/** - * @brief Return the localized version of the provided string with optional string interpolation - * - * This function takes a english string as parameter, and if a localized version - * exists for the current language, substitutes it before performing an eventual - * string interpolation (sprintf) with additional optional arguments. - * - * Usages: - * - t('This is an example') - * - t('URL %s returned no result', $url) - * - t('Current version: %s, new version: %s', $current_version, $new_version) - * - * @param string $s - * @return string - */ -function t($s) -{ - $a = get_app(); - - if (x($a->strings, $s)) { - $t = $a->strings[$s]; - $s = is_array($t) ? $t[0] : $t; - } - if (func_num_args() > 1) { - $args = array_slice(func_get_args(), 1); - $s = @vsprintf($s, $args); - } - - return $s; -} - -/** - * @brief Return the localized version of a singular/plural string with optional string interpolation - * - * This function takes two english strings as parameters, singular and plural, as - * well as a count. If a localized version exists for the current language, they - * are used instead. Discrimination between singular and plural is done using the - * localized function if any or the default one. Finally, a string interpolation - * is performed using the count as parameter. - * - * Usages: - * - tt('Like', 'Likes', $count) - * - tt("%s user deleted", "%s users deleted", count($users)) - * - * @global type $lang - * @param string $singular - * @param string $plural - * @param int $count - * @return string - */ -function tt($singular, $plural, $count) -{ - global $lang; - $a = get_app(); - - if (x($a->strings, $singular)) { - $t = $a->strings[$singular]; - if (is_array($t)) { - $plural_function = 'string_plural_select_' . str_replace('-', '_', $lang); - if (function_exists($plural_function)) { - $plural_function = 'string_plural_select_default'; - } - $i = $plural_function($count); - $s = $t[$i]; - } else { - $s = $t; - } - } elseif (string_plural_select_default($count)) { - $s = $plural; - } else { - $s = $singular; - } - - $s = @sprintf($s, $count); - - return $s; -} - -// provide a fallback which will not collide with -// a function defined in any language file -function string_plural_select_default($n) -{ - return $n != 1; -} - - - -/** - * @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_available_languages() { - $langs = []; - $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 $langs; -} diff --git a/mod/babel.php b/mod/babel.php index 9cbaa82102..4d6f3c8b81 100644 --- a/mod/babel.php +++ b/mod/babel.php @@ -8,7 +8,6 @@ use Friendica\Core\L10n; require_once 'include/bbcode.php'; require_once 'include/bb2diaspora.php'; require_once 'include/html2bbcode.php'; -require_once 'include/pgettext.php'; function visible_lf($s) { diff --git a/mod/lostpass.php b/mod/lostpass.php index ec397b7a16..5b7f7af262 100644 --- a/mod/lostpass.php +++ b/mod/lostpass.php @@ -13,7 +13,6 @@ require_once 'boot.php'; require_once 'include/datetime.php'; require_once 'include/enotify.php'; require_once 'include/text.php'; -require_once 'include/pgettext.php'; function lostpass_post(App $a) { diff --git a/src/Content/Nav.php b/src/Content/Nav.php index 3bbb7e7ce5..c7dfd447cd 100644 --- a/src/Content/Nav.php +++ b/src/Content/Nav.php @@ -16,7 +16,6 @@ use dba; require_once 'boot.php'; require_once 'dba.php'; -require_once 'include/pgettext.php'; require_once 'include/text.php'; class Nav diff --git a/src/Model/User.php b/src/Model/User.php index cd88b9cc7c..6bd1173ee0 100644 --- a/src/Model/User.php +++ b/src/Model/User.php @@ -25,7 +25,6 @@ require_once 'include/dba.php'; require_once 'include/enotify.php'; require_once 'include/network.php'; require_once 'library/openid.php'; -require_once 'include/pgettext.php'; require_once 'include/text.php'; /** * @brief This class handles User related functions diff --git a/src/Module/Login.php b/src/Module/Login.php index 339019d477..fdfa6623fe 100644 --- a/src/Module/Login.php +++ b/src/Module/Login.php @@ -14,7 +14,6 @@ use dba; require_once 'boot.php'; require_once 'include/datetime.php'; -require_once 'include/pgettext.php'; require_once 'include/security.php'; require_once 'include/text.php'; diff --git a/src/Module/Logout.php b/src/Module/Logout.php index 366f000a8a..a03ef05c2e 100644 --- a/src/Module/Logout.php +++ b/src/Module/Logout.php @@ -1,12 +1,14 @@ get_baseurl()); } }