X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Futil.php;h=e7ea9df61395264cbabb84d3f3794d701c60fda6;hb=cae1329f3bca1f5f1fbfdb1d96b38cbb790fbe00;hp=1f3aaf711a2969eba2e5fb383f47f82414139e85;hpb=5c05cd2b1a93d360bde7cb7dfc9ba39e5a5a7624;p=quix0rs-gnu-social.git diff --git a/lib/util.php b/lib/util.php index 1f3aaf711a..e7ea9df613 100644 --- a/lib/util.php +++ b/lib/util.php @@ -41,11 +41,13 @@ function common_init_locale($language=null) } putenv('LANGUAGE='.$language); putenv('LANG='.$language); - return setlocale(LC_ALL, $language . ".utf8", + $ok = setlocale(LC_ALL, $language . ".utf8", $language . ".UTF8", $language . ".utf-8", $language . ".UTF-8", $language); + + return $ok; } function common_init_language() @@ -89,6 +91,32 @@ function common_init_language() $locale_set = common_init_locale($language); } + common_init_gettext(); +} + +/** + * @access private + */ +function common_init_gettext() +{ + setlocale(LC_CTYPE, 'C'); + // So we do not have to make people install the gettext locales + $path = common_config('site','locale_path'); + bindtextdomain("statusnet", $path); + bind_textdomain_codeset("statusnet", "UTF-8"); + textdomain("statusnet"); +} + +/** + * Switch locale during runtime, and poke gettext until it cries uncle. + * Otherwise, sometimes it doesn't actually switch away from the old language. + * + * @param string $language code for locale ('en', 'fr', 'pt_BR' etc) + */ +function common_switch_locale($language=null) +{ + common_init_locale($language); + setlocale(LC_CTYPE, 'C'); // So we do not have to make people install the gettext locales $path = common_config('site','locale_path'); @@ -97,6 +125,7 @@ function common_init_language() textdomain("statusnet"); } + function common_timezone() { if (common_logged_in()) { @@ -826,7 +855,7 @@ function common_linkify($url) { return XMLStringer::estring('a', $attrs, $url); } -function common_shorten_links($text) +function common_shorten_links($text, $always = false) { common_debug("common_shorten_links() called"); @@ -836,7 +865,7 @@ function common_shorten_links($text) common_debug("maxLength = $maxLength"); - if (mb_strlen($text) > $maxLength) { + if ($always || mb_strlen($text) > $maxLength) { common_debug("Forcing shortening"); return common_replace_urls_callback($text, array('File_redirection', 'forceShort')); } else {