From 328c71cd4febfeab496bc2b44b2b24d2111deeb2 Mon Sep 17 00:00:00 2001 From: pdontthink Date: Fri, 30 Mar 2007 20:45:55 +0000 Subject: [PATCH] Add sq_change_text_domain for plugins to use when switching text domains git-svn-id: https://svn.code.sf.net/p/squirrelmail/code/trunk/squirrelmail@12356 7612ce4b-ef26-0410-bec9-ea0150e637f0 --- include/languages.php | 49 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/include/languages.php b/include/languages.php index 0fbcc34d..592f1f54 100644 --- a/include/languages.php +++ b/include/languages.php @@ -22,6 +22,55 @@ */ +/** + * Wrapper for textdomain(), bindtextdomain() and + * bind_textdomain_codeset() primarily intended for + * plugins when changing into their own text domain + * and back again. + * + * Note that plugins using this function must have + * their translation files located in the SquirrelMail + * locale directory. + * + * @param string $domain_name The name of the text domain + * (usually the plugin name, or + * "squirrelmail") being switched to. + * + * @return void + * + * @since 1.5.2 and 1.4.10 + */ +function sq_change_text_domain($domain_name) { + + global $languages, $sm_notAlias; + static $domains_already_seen = array(); + + // only need to call bindtextdomain() once + // + if (in_array($domain_name, $domains_already_seen)) { + sq_textdomain($domain_name); + return; + } + + $domains_already_seen[] = $domain_name; + + sq_bindtextdomain($domain_name, SM_PATH . 'locale/'); + sq_textdomain($domain_name); + + // set codeset in order to avoid gettext charset conversions + if (function_exists('bind_textdomain_codeset') + && isset($languages[$sm_notAlias]['CHARSET'])) { + + // Japanese translation uses different internal charset + if ($sm_notAlias == 'ja_JP') { + bind_textdomain_codeset ($domain_name, 'EUC-JP'); + } else { + bind_textdomain_codeset ($domain_name, $languages[$sm_notAlias]['CHARSET']); + } + + } +} + /** * Gettext bindtextdomain wrapper. * -- 2.25.1