squirrelmail-webmail
1.4.22
About: SquirrelMail is a standards-based webmail package with strong MIME support, address books, and folder manipulation (written in PHP4).
![]() ![]() |
Go to the source code of this file.
Namespaces | |
squirrelmail | |
Functions | |
sq_change_text_domain ($domain_name, $directory='') | |
sq_bindtextdomain ($domain, $dir='') | |
sq_setlocale ($category, $locale) | |
charset_decode ($charset, $string, $force_decode=false, $save_html=false) | |
charset_encode ($string, $charset, $htmlencode=true) | |
charset_convert ($in_charset, $string, $out_charset, $htmlencode=true) | |
fixcharset ($charset) | |
set_up_language ($sm_language, $do_search=false, $default=false) | |
set_my_charset () | |
is_conversion_safe ($input_charset) | |
japanese_charset_xtra () | |
korean_charset_xtra () | |
Variables | |
if (!defined( 'SM_PATH')) define( 'SM_PATH' | |
global | $squirrelmail_language |
global | $languages |
global | $use_gettext |
$languages | |
This array specifies the available translations. Structure of array: $languages['language']['variable'] = 'value' Possible 'variable' names: NAME - Translation name in English CHARSET - Encoding used by translation ALIAS - used when 'language' is only short name and 'value' should provide long language name ALTNAME - Native translation name. Any 8bit symbols must be html encoded. LOCALE - Full locale name (in xx_XX.charset format). It can use array with more than one locale name since 1.4.5 and 1.5.1 DIR - Text direction. Used to define Right-to-Left languages. Possible values 'rtl' or 'ltr'. If undefined - defaults to 'ltr' XTRA_CODE - translation uses special functions. See http://squirrelmail.org/docs/devel/devel-3.html Each 'language' definition requires NAME+CHARSET or ALIAS variables. @global array $languages | |
$languages ['bg_BG']['NAME'] = 'Bulgarian' | |
$languages ['bg_BG']['CHARSET'] = 'windows-1251' | |
$languages ['bg_BG']['LOCALE'] = 'bg_BG.CP1251' | |
$languages ['bg']['ALIAS'] = 'bg_BG' | |
$languages ['bn_BD']['NAME'] = 'Bengali (Bangladesh)' | |
$languages ['bn_BD']['ALTNAME'] = 'বাংলা' | |
$languages ['bn_BD']['CHARSET'] = 'utf-8' | |
$languages ['bn_BD']['LOCALE'] = array('bn_BD.UTF-8', 'bn_BD.UTF8', 'bn_BD', 'bn.UTF-8', 'bn.UTF8', 'bn') | |
$languages ['bn']['ALIAS'] = 'bn_BD' | |
$languages ['bn_IN']['NAME'] = 'Bengali (India)' | |
$languages ['bn_IN']['CHARSET'] = 'utf-8' | |
$languages ['bn_IN']['LOCALE'] = array('bn_IN.UTF-8', 'bn_IN.UTF8') | |
$languages ['ca_ES']['NAME'] = 'Catalan' | |
$languages ['ca_ES']['CHARSET'] = 'iso-8859-1' | |
$languages ['ca_ES']['LOCALE'] = array('ca_ES.ISO8859-1','ca_ES.ISO-8859-1','ca_ES') | |
$languages ['ca']['ALIAS'] = 'ca_ES' | |
$languages ['cs_CZ']['NAME'] = 'Czech' | |
$languages ['cs_CZ']['ALTNAME'] = 'Čeština' | |
$languages ['cs_CZ']['CHARSET'] = 'utf-8' | |
$languages ['cs_CZ']['LOCALE'] = array('cs_CZ.UTF-8', 'cs_CZ.UTF8', 'cs_CZ') | |
$languages ['cs']['ALIAS'] = 'cs_CZ' | |
$languages ['cy_GB']['NAME'] = 'Welsh' | |
$languages ['cy_GB']['CHARSET'] = 'iso-8859-1' | |
$languages ['cy_GB']['LOCALE'] = array('cy_GB.ISO8859-1','cy_GB.ISO-8859-1','cy_GB') | |
$languages ['cy']['ALIAS'] = 'cy_GB' | |
$languages ['da_DK']['NAME'] = 'Danish' | |
$languages ['da_DK']['CHARSET'] = 'iso-8859-1' | |
$languages ['da_DK']['LOCALE'] = array('da_DK.ISO8859-1','da_DK.ISO-8859-1','da_DK') | |
$languages ['da']['ALIAS'] = 'da_DK' | |
$languages ['de_DE']['NAME'] = 'German' | |
$languages ['de_DE']['ALTNAME'] = 'Deutsch' | |
$languages ['de_DE']['CHARSET'] = 'iso-8859-1' | |
$languages ['de_DE']['LOCALE'] = array('de_DE.ISO8859-1','de_DE.ISO-8859-1','de_DE') | |
$languages ['de']['ALIAS'] = 'de_DE' | |
$languages ['el_GR']['NAME'] = 'Greek' | |
$languages ['el_GR']['CHARSET'] = 'iso-8859-7' | |
$languages ['el_GR']['LOCALE'] = array('el_GR.ISO8859-7','el_GR.ISO-8859-7','el_GR') | |
$languages ['el']['ALIAS'] = 'el_GR' | |
$languages ['en_US']['NAME'] = 'English' | |
$languages ['en_US']['CHARSET'] = 'iso-8859-1' | |
$languages ['en_US']['LOCALE'] = 'en_US.ISO8859-1' | |
$languages ['en']['ALIAS'] = 'en_US' | |
$languages ['es_ES']['NAME'] = 'Spanish' | |
$languages ['es_ES']['CHARSET'] = 'iso-8859-1' | |
$languages ['es_ES']['LOCALE'] = array('es_ES.ISO8859-1','es_ES.ISO-8859-1','es_ES') | |
$languages ['es']['ALIAS'] = 'es_ES' | |
$languages ['et_EE']['NAME'] = 'Estonian' | |
$languages ['et_EE']['CHARSET'] = 'iso-8859-15' | |
$languages ['et_EE']['LOCALE'] = array('et_EE.ISO8859-15','et_EE.ISO-8859-15','et_EE') | |
$languages ['et']['ALIAS'] = 'et_EE' | |
$languages ['eu_ES']['NAME'] = 'Basque' | |
$languages ['eu_ES']['CHARSET'] = 'iso-8859-1' | |
$languages ['eu_ES']['LOCALE'] = array('eu_ES.ISO8859-1','eu_ES.ISO-8859-1','eu_ES') | |
$languages ['eu']['ALIAS'] = 'eu_ES' | |
$languages ['fi_FI']['NAME'] = 'Finnish' | |
$languages ['fi_FI']['CHARSET'] = 'iso-8859-1' | |
$languages ['fi_FI']['LOCALE'] = array('fi_FI.ISO8859-1','fi_FI.ISO-8859-1','fi_FI') | |
$languages ['fi']['ALIAS'] = 'fi_FI' | |
$languages ['fo_FO']['NAME'] = 'Faroese' | |
$languages ['fo_FO']['CHARSET'] = 'iso-8859-1' | |
$languages ['fo_FO']['LOCALE'] = array('fo_FO.ISO8859-1','fo_FO.ISO-8859-1','fo_FO') | |
$languages ['fo']['ALIAS'] = 'fo_FO' | |
$languages ['fr_FR']['NAME'] = 'French' | |
$languages ['fr_FR']['CHARSET'] = 'iso-8859-1' | |
$languages ['fr_FR']['LOCALE'] = array('fr_FR.ISO8859-1','fr_FR.ISO-8859-1','fr_FR') | |
$languages ['fr']['ALIAS'] = 'fr_FR' | |
$languages ['fy']['NAME'] = 'Frisian' | |
$languages ['fy']['CHARSET'] = 'utf-8' | |
$languages ['fy']['LOCALE'] = array('fy.UTF-8', 'fy.UTF8', 'fy_NL.UTF-8', 'fy_NL.UTF8') | |
$languages ['hr_HR']['NAME'] = 'Croatian' | |
$languages ['hr_HR']['CHARSET'] = 'iso-8859-2' | |
$languages ['hr_HR']['LOCALE'] = array('hr_HR.ISO8859-2','hr_HR.ISO-8859-2','hr_HR') | |
$languages ['hr']['ALIAS'] = 'hr_HR' | |
$languages ['hu_HU']['NAME'] = 'Hungarian' | |
$languages ['hu_HU']['ALTNAME'] = 'Magyar' | |
$languages ['hu_HU']['CHARSET'] = 'utf-8' | |
$languages ['hu_HU']['LOCALE'] = array('hu_HU.UTF-8', 'hu_HU.UTF8', 'hu_HU') | |
$languages ['hu']['ALIAS'] = 'hu_HU' | |
$languages ['id_ID']['NAME'] = 'Bahasa Indonesia' | |
$languages ['id_ID']['CHARSET'] = 'iso-8859-1' | |
$languages ['id_ID']['LOCALE'] = array('id_ID.ISO8859-1','id_ID.ISO-8859-1','id_ID') | |
$languages ['id']['ALIAS'] = 'id_ID' | |
$languages ['is_IS']['NAME'] = 'Icelandic' | |
$languages ['is_IS']['CHARSET'] = 'iso-8859-1' | |
$languages ['is_IS']['LOCALE'] = array('is_IS.ISO8859-1','is_IS.ISO-8859-1','is_IS') | |
$languages ['is']['ALIAS'] = 'is_IS' | |
$languages ['it_IT']['NAME'] = 'Italian' | |
$languages ['it_IT']['ALTNAME'] = 'Italiano' | |
$languages ['it_IT']['CHARSET'] = 'utf-8' | |
$languages ['it_IT']['LOCALE'] = array('it_IT.UTF-8','it_IT-UTF8','it_IT') | |
$languages ['it']['ALIAS'] = 'it_IT' | |
$languages ['ja_JP']['NAME'] = 'Japanese' | |
$languages ['ja_JP']['CHARSET'] = 'iso-2022-jp' | |
$languages ['ja_JP']['XTRA_CODE'] = 'japanese_charset_xtra' | |
$languages ['ja']['ALIAS'] = 'ja_JP' | |
$languages ['ka']['NAME'] = 'Georgian' | |
$languages ['ka']['CHARSET'] = 'utf-8' | |
$languages ['ka']['LOCALE'] = array('ka_GE.UTF-8', 'ka_GE.UTF8', 'ka_GE', 'ka') | |
$languages ['ka_GE']['ALIAS'] = 'ka' | |
$languages ['km']['NAME'] = 'Khmer' | |
$languages ['km']['ALTNAME'] = 'ខ្មែរ' | |
$languages ['km']['CHARSET'] = 'utf-8' | |
$languages ['km']['LOCALE'] = array('km.UTF-8', 'km.UTF8', 'km_KH.UTF-8', 'km_KH.UTF8', 'km', 'km_KH') | |
$languages ['km_KH']['ALIAS'] = 'km' | |
$languages ['ko_KR']['NAME'] = 'Korean' | |
$languages ['ko_KR']['CHARSET'] = 'euc-KR' | |
$languages ['ko']['ALIAS'] = 'ko_KR' | |
$languages ['lv_LV']['NAME'] = 'Latvian' | |
$languages ['lv_LV']['ALTNAME'] = 'Latvių' | |
$languages ['lv_LV']['CHARSET'] = 'utf-8' | |
$languages ['lv_LV']['LOCALE'] = array('lv_LV.UTF-8', 'lv_LV.UTF8') | |
$languages ['lv']['ALIAS'] = 'lv_LV' | |
$languages ['lt_LT']['NAME'] = 'Lithuanian' | |
$languages ['lt_LT']['CHARSET'] = 'utf-8' | |
$languages ['lt_LT']['LOCALE'] = array('lt_LT.UTF-8', 'lt_LT.UTF8') | |
$languages ['lt']['ALIAS'] = 'lt_LT' | |
$languages ['mk']['NAME'] = 'Macedonian' | |
$languages ['mk']['CHARSET'] = 'utf-8' | |
$languages ['mk']['LOCALE'] = array('mk.UTF-8', 'mk.UTF8', 'mk_MK.UTF-8', 'mk_MK.UTF8') | |
$languages ['ms_MY']['NAME'] = 'Bahasa Melayu' | |
$languages ['ms_MY']['CHARSET'] = 'iso-8859-1' | |
$languages ['ms_MY']['LOCALE'] = array('ms_MY.ISO8859-1','ms_MY.ISO-8859-1','ms_MY') | |
$languages ['my']['ALIAS'] = 'ms_MY' | |
$languages ['nl_NL']['NAME'] = 'Dutch' | |
$languages ['nl_NL']['CHARSET'] = 'iso-8859-1' | |
$languages ['nl_NL']['LOCALE'] = array('nl_NL.ISO8859-1','nl_NL.ISO-8859-1','nl_NL') | |
$languages ['nl']['ALIAS'] = 'nl_NL' | |
$languages ['nb_NO']['NAME'] = 'Norwegian (Bokmål)' | |
$languages ['nb_NO']['CHARSET'] = 'utf-8' | |
$languages ['nb_NO']['LOCALE'] = array('nb_NO.UTF-8', 'nb_NO.UTF8', 'nb_NO') | |
$languages ['nb']['ALIAS'] = 'nb_NO' | |
$languages ['nn_NO']['NAME'] = 'Norwegian (Nynorsk)' | |
$languages ['nn_NO']['CHARSET'] = 'iso-8859-1' | |
$languages ['nn_NO']['LOCALE'] = array('nn_NO.ISO8859-1','nn_NO.ISO-8859-1','nn_NO') | |
$languages ['pl_PL']['NAME'] = 'Polish' | |
$languages ['pl_PL']['CHARSET'] = 'iso-8859-2' | |
$languages ['pl_PL']['LOCALE'] = array('pl_PL.ISO8859-2','pl_PL.ISO-8859-2','pl_PL') | |
$languages ['pl']['ALIAS'] = 'pl_PL' | |
$languages ['pt_PT']['NAME'] = 'Portuguese (Portugal)' | |
$languages ['pt_PT']['CHARSET'] = 'iso-8859-1' | |
$languages ['pt_PT']['LOCALE'] = array('pt_PT.ISO8859-1','pt_PT.ISO-8859-1','pt_PT') | |
$languages ['pt']['ALIAS'] = 'pt_PT' | |
$languages ['pt_BR']['NAME'] = 'Portuguese (Brazil)' | |
$languages ['pt_BR']['CHARSET'] = 'iso-8859-1' | |
$languages ['pt_BR']['LOCALE'] = array('pt_BR.ISO8859-1','pt_BR.ISO-8859-1','pt_BR') | |
$languages ['ro_RO']['NAME'] = 'Romanian' | |
$languages ['ro_RO']['CHARSET'] = 'utf-8' | |
$languages ['ro_RO']['LOCALE'] = array('ro_RO.UTF-8', 'ro_RO.UTF8', 'ro_RO') | |
$languages ['ro']['ALIAS'] = 'ro_RO' | |
$languages ['ru_RU']['NAME'] = 'Russian' | |
$languages ['ru_RU']['CHARSET'] = 'utf-8' | |
$languages ['ru_RU']['LOCALE'] = array('ru_RU.UTF-8', 'ru_RU.UTF8') | |
$languages ['ru']['ALIAS'] = 'ru_RU' | |
$languages ['sk_SK']['NAME'] = 'Slovak' | |
$languages ['sk_SK']['CHARSET'] = 'utf-8' | |
$languages ['sk_SK']['LOCALE'] = array('sk_SK.UTF-8', 'sk_SK.UTF8', 'sk_SK') | |
$languages ['sk']['ALIAS'] = 'sk_SK' | |
$languages ['sl_SI']['NAME'] = 'Slovenian' | |
$languages ['sl_SI']['CHARSET'] = 'iso-8859-2' | |
$languages ['sl_SI']['LOCALE'] = array('sl_SI.ISO8859-2','sl_SI.ISO-8859-2','sl_SI') | |
$languages ['sl']['ALIAS'] = 'sl_SI' | |
$languages ['sr_YU']['NAME'] = 'Serbian' | |
$languages ['sr_YU']['CHARSET'] = 'iso-8859-2' | |
$languages ['sr_YU']['LOCALE'] = array('sr_YU.ISO8859-2','sr_YU.ISO-8859-2','sr_YU') | |
$languages ['sr']['ALIAS'] = 'sr_YU' | |
$languages ['sv_SE']['NAME'] = 'Swedish' | |
$languages ['sv_SE']['CHARSET'] = 'utf-8' | |
$languages ['sv_SE']['LOCALE'] = array('sv_SE.UTF-8', 'sv_SE.UTF8', 'sv_SE') | |
$languages ['sv']['ALIAS'] = 'sv_SE' | |
$languages ['ta_LK']['NAME'] = 'Tamil' | |
$languages ['ta_LK']['ALTNAME'] = 'தமிழ்' | |
$languages ['ta_LK']['CHARSET'] = 'utf-8' | |
$languages ['ta_LK']['LOCALE'] = array('ta_LK.UTF-8', 'ta_LK.UTF8', 'ta_LK', 'ta.UTF-8', 'ta.UTF8', 'ta') | |
$languages ['ta']['ALIAS'] = 'ta_LK' | |
$languages ['tr_TR']['NAME'] = 'Turkish' | |
$languages ['tr_TR']['CHARSET'] = 'iso-8859-9' | |
$languages ['tr_TR']['LOCALE'] = array('tr_TR.ISO8859-9','tr_TR.ISO-8859-9','tr_TR') | |
$languages ['tr']['ALIAS'] = 'tr_TR' | |
$languages ['zh_TW']['NAME'] = 'Chinese Trad' | |
$languages ['zh_TW']['CHARSET'] = 'utf-8' | |
$languages ['zh_TW']['LOCALE'] = array('zh_TW.UTF-8', 'zh_TW.UTF8') | |
$languages ['tw']['ALIAS'] = 'zh_TW' | |
$languages ['zh_CN']['NAME'] = 'Chinese Simp' | |
$languages ['zh_CN']['CHARSET'] = 'gb2312' | |
$languages ['zh_CN']['LOCALE'] = 'zh_CN.GB2312' | |
$languages ['cn']['ALIAS'] = 'zh_CN' | |
$languages ['uk_UA']['NAME'] = 'Ukrainian' | |
$languages ['uk_UA']['CHARSET'] = 'utf-8' | |
$languages ['uk_UA']['LOCALE'] = array('uk_UA.UTF-8', 'uk_UA.UTF8', 'uk_UA', 'uk') | |
$languages ['uk']['ALIAS'] = 'uk_UA' | |
$languages ['vi_VN']['NAME'] = 'Vietnamese' | |
$languages ['vi_VN']['CHARSET'] = 'utf-8' | |
$languages ['vi']['ALIAS'] = 'vi_VN' | |
$languages ['ar']['NAME'] = 'Arabic' | |
$languages ['ar']['CHARSET'] = 'windows-1256' | |
$languages ['ar']['DIR'] = 'rtl' | |
$languages ['fa_IR']['NAME'] = 'Persian' | |
$languages ['fa_IR']['CHARSET'] = 'utf-8' | |
$languages ['fa_IR']['DIR'] = 'rtl' | |
$languages ['fa_IR']['LOCALE'] = array('fa_IR.UTF-8', 'fa_IR.UTF8') | |
$languages ['fa']['ALIAS'] = 'fa_IR' | |
$languages ['he_IL']['NAME'] = 'Hebrew' | |
$languages ['he_IL']['CHARSET'] = 'windows-1255' | |
$languages ['he_IL']['DIR'] = 'rtl' | |
$languages ['he']['ALIAS'] = 'he_IL' | |
$languages ['ug']['NAME'] = 'Uighur' | |
$languages ['ug']['CHARSET'] = 'utf-8' | |
$languages ['ug']['DIR'] = 'rtl' | |
$gettext_flags = 0 | |
charset_convert | ( | $in_charset, | |
$string, | |||
$out_charset, | |||
$htmlencode = true |
|||
) |
Combined decoding and encoding functions
If conversion is done to charset different that utf-8, unsupported symbols will be replaced with question marks.
string | $in_charset | initial charset |
string | $string | string that has to be converted |
string | $out_charset | final charset |
boolean | $htmlencode | keep htmlspecialchars encoding |
Definition at line 264 of file i18n.php.
References charset_decode(), and charset_encode().
Referenced by abook_ldap_server\charset_decode(), abook_ldap_server\charset_encode(), decodeHeader(), and newMail().
charset_decode | ( | $charset, | |
$string, | |||
$force_decode = false , |
|||
$save_html = false |
|||
) |
Converts string from given charset to charset, that can be displayed by user translation.
Function by default returns html encoded strings, if translation uses different encoding. If Japanese translation is used - function returns string converted to euc-jp If $charset is not supported - function returns unconverted string.
sanitizing of html tags is also done by this function.
string | $charset | |
string | $string | Text to be decoded |
boolean | $force_decode | converts string to html without $charset!=$default_charset check. Argument is available since 1.4.5 and 1.5.1. |
boolean | $save_html | disables htmlspecialchars() in order to preserve html formating. Use with care. Available since 1.4.6 and 1.5.1 |
Definition at line 178 of file i18n.php.
References $charset, $default_charset, $languages, $ret, $squirrelmail_language, fixcharset(), set_my_charset(), and SM_PATH.
Referenced by charset_convert(), decodeHeader(), formatBody(), Rfc822Header\processParameters(), and translateText().
charset_encode | ( | $string, | |
$charset, | |||
$htmlencode = true |
|||
) |
Converts html string to given charset
string | $string | |
string | $charset | |
boolean | $htmlencode | keep htmlspecialchars encoding |
fix for yahoo users that remove all us-ascii related things
Undo html special chars, some places (like compose form) have own sanitizing functions and don't need html symbols. Undo chars only after encoding in order to prevent conversion of html entities in plain text emails.
Definition at line 220 of file i18n.php.
References $charset, $default_charset, $ret, charset_encode_us_ascii(), elseif, fixcharset(), and SM_PATH.
Referenced by charset_convert().
fixcharset | ( | $charset | ) |
Makes charset name suitable for decoding cycles
ks_c_5601_1987, x-euc-* and x-windows-* charsets are supported since 1.4.6 and 1.5.1.
string | $charset | Name of charset |
Definition at line 280 of file i18n.php.
References $charset.
Referenced by charset_decode(), and charset_encode().
is_conversion_safe | ( | $input_charset | ) |
Function informs if it is safe to convert given charset to the one that is used by user.
It is safe to use conversion only if user uses utf-8 encoding and when converted charset is similar to the one that is used by user.
string | $input_charset | Charset of text that needs to be converted |
Definition at line 540 of file i18n.php.
References $default_charset, $languages, and $lossy_encoding.
Referenced by decodeHeader(), and newMail().
japanese_charset_xtra | ( | ) |
Japanese charset extra function
First argument ($ret) contains header string. SquirrelMail ja_JP translation uses euc-jp as internal encoding. euc-jp stores Japanese letters in 0xA1-0xFE block (source: JIS X 0208 unicode.org mapping. see euc_jp.php in extra decoding library). Standard SquirrelMail 8bit test should detect if text is in euc or in ascii.
Minimize dependency on mb_mime_encodeheader(). PHP 4.4.1 bug and maybe other bugs.
Convert text from euc-jp (internal encoding) to iso-2022-jp (commonly used Japanese encoding) with mbstring functions.
Use SquirrelMail internal B encoding function. 'encodeheader' XTRA_CODE is executed in encodeHeader() function, so functions/mime.php (encodeHeaderBase64) and functions/strings.php (sq_is8bit) are already loaded.
if text is in ascii, we leave it unchanged. If some ASCII chars must be encoded, add code here in else statement.
Definition at line 618 of file i18n.php.
References $ret, encodeHeaderBase64(), and sq_is8bit().
set_my_charset | ( | ) |
Sets default_charset variable according to the one that is used by user's translations.
Function changes global $default_charset variable in order to be sure, that it contains charset used by user's translation. Sanity of $squirrelmail_language and $default_charset combination provided in the SquirrelMail configuration is also tested.
There can be a $default_charset setting in the config.php file, but the user may have a different language selected for a user interface. This function checks the language selected by the user and tags the outgoing messages with the appropriate charset corresponding to the language selection. This is "more right" (tm), than just stamping the message blindly with the system-wide $default_charset.
Definition at line 511 of file i18n.php.
References $data_dir, $default_charset, $languages, $my_language, $squirrelmail_language, $username, and getPref().
Referenced by charset_decode(), imap_utf7_decode_local(), imap_utf7_encode_local(), newMail(), and SendMDN().
set_up_language | ( | $sm_language, | |
$do_search = false , |
|||
$default = false |
|||
) |
Set up the language to be output if $do_search is true, then scan the browser information for a possible language that we know
Function sets system locale environment (LC_ALL, LANG, LANGUAGE), gettext translation bindings and html header information.
Function returns error codes, if there is some fatal error. 0 = no error, 1 = mbstring support is not present, 2 = mbstring support is not present, user's translation reverted to en_US.
string | $sm_language | Translation used by user's interface |
bool | $do_search | Use browser's preferred language detection functions. Defaults to false. |
bool | $default | Set $sm_language to $squirrelmail_default_language if language detection fails or language is not set. Defaults to false. |
If function is asked to detect preferred language OR SquirrelMail default language is set to empty string AND SquirrelMail language ($sm_language) is empty string (not set in user's prefs and no cookie with language info) AND browser provides list of preferred languages THEN get preferred language from HTTP_ACCEPT_LANGUAGE header
If language preference is not set OR script asks to use default language AND default SquirrelMail language is not set to empty string THEN use default SquirrelMail language value from configuration.
provide failsafe language when detection fails
mbstring.func_overload fix (#929644).
php mbstring extension can replace standard string functions with their multibyte equivalents. See http://php.net/ref.mbstring#mbstring.overload. This feature was added in php v.4.2.0
Some SquirrelMail functions work with 8bit strings in bytes. If interface is forced to use mbstring functions and mbstring internal encoding is set to multibyte charset, interface can't trust regular string functions. Due to mbstring overloading design limits php scripts can't control this setting.
This hack should fix some issues related to 8bit strings in passwords. Correct fix is to disable mbstring overloading. Japanese translation uses different internal encoding.
Definition at line 330 of file i18n.php.
References $default_charset, $languages, $squirrelmail_default_language, $squirrelmail_language, $use_gettext, $user_is_logged_in, _(), bindtextdomain(), check_php_version(), elseif, PAGE_NAME, SM_PATH, SQ_SERVER, SQ_SESSION, sq_setlocale(), sqgetGlobalVar(), and textdomain().
Referenced by is_logged_in(), logout_error(), sqimap_append_checkresponse(), sqimap_get_headerfield(), sqimap_get_small_header_list(), sqimap_login(), sqimap_read_data_list(), sqimap_run_command(), sqimap_run_command_list(), and sqimap_run_literal_command().
sq_bindtextdomain | ( | $domain, | |
$dir = '' |
|||
) |
Gettext bindtextdomain wrapper.
Wrapper solves differences between php versions in order to provide ngettext support. Should be used if translation uses ngettext functions.
This also provides a bind_textdomain_codeset call to make sure the domain's encoding will not be overridden.
string | $domain | gettext domain name |
string | $dir | directory that contains all translations (OPTIONAL; if not specified, defaults to SquirrelMail locale directory) |
Definition at line 94 of file i18n.php.
References $domain, $languages, bindtextdomain(), and SM_PATH.
Referenced by sq_change_text_domain().
sq_change_text_domain | ( | $domain_name, | |
$directory = '' |
|||
) |
Everything uses global.php... Wrapper for textdomain(), bindtextdomain() and bind_textdomain_codeset() primarily intended for plugins when changing into their own text domain and back again.
Note that if plugins using this function have their translation files located in the SquirrelMail locale directory, the second argument is optional.
string | $domain_name | The name of the text domain (usually the plugin name, or "squirrelmail") being switched to. |
string | $directory | The directory that contains all translations for the domain (OPTIONAL; default is SquirrelMail locale directory). |
Definition at line 49 of file i18n.php.
References $use_gettext, NULL, SM_PATH, sq_bindtextdomain(), and textdomain().
Referenced by validate_mail_fetch_port_number(), and validate_mail_fetch_server_address().
sq_setlocale | ( | $category, | |
$locale | |||
) |
php setlocale function wrapper
From php 4.3.0 it is possible to use arrays in order to set locale. php gettext extension works only when locale is set. This wrapper function allows to use more than one locale name.
int | $category | locale category name. Use php named constants (LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME) |
mixed | $locale | option contains array with possible locales or string with one locale |
Welcome to We-Don't-Follow-Own-Fine-Manual department OpenBSD 3.8, 3.9-current and maybe later versions return invalid response to setlocale command. SM bug report #1427512.
Definition at line 131 of file i18n.php.
References $ret, check_php_version(), and elseif.
Referenced by set_up_language().
$languages[ 'bn_BD'][ 'ALTNAME'] = 'বাংলা' |
$languages[ 'bn_BD'][ 'LOCALE'] = array('bn_BD.UTF-8', 'bn_BD.UTF8', 'bn_BD', 'bn.UTF-8', 'bn.UTF8', 'bn') |
$languages[ 'bn_IN'][ 'LOCALE'] = array('bn_IN.UTF-8', 'bn_IN.UTF8') |
$languages[ 'ca_ES'][ 'LOCALE'] = array('ca_ES.ISO8859-1','ca_ES.ISO-8859-1','ca_ES') |
$languages[ 'cs_CZ'][ 'LOCALE'] = array('cs_CZ.UTF-8', 'cs_CZ.UTF8', 'cs_CZ') |
$languages[ 'cy_GB'][ 'LOCALE'] = array('cy_GB.ISO8859-1','cy_GB.ISO-8859-1','cy_GB') |
$languages[ 'da_DK'][ 'LOCALE'] = array('da_DK.ISO8859-1','da_DK.ISO-8859-1','da_DK') |
$languages[ 'de_DE'][ 'LOCALE'] = array('de_DE.ISO8859-1','de_DE.ISO-8859-1','de_DE') |
$languages[ 'el_GR'][ 'LOCALE'] = array('el_GR.ISO8859-7','el_GR.ISO-8859-7','el_GR') |
$languages[ 'es_ES'][ 'LOCALE'] = array('es_ES.ISO8859-1','es_ES.ISO-8859-1','es_ES') |
$languages[ 'et_EE'][ 'LOCALE'] = array('et_EE.ISO8859-15','et_EE.ISO-8859-15','et_EE') |
$languages[ 'eu_ES'][ 'LOCALE'] = array('eu_ES.ISO8859-1','eu_ES.ISO-8859-1','eu_ES') |
$languages[ 'fa_IR'][ 'LOCALE'] = array('fa_IR.UTF-8', 'fa_IR.UTF8') |
$languages[ 'fi_FI'][ 'LOCALE'] = array('fi_FI.ISO8859-1','fi_FI.ISO-8859-1','fi_FI') |
$languages[ 'fo_FO'][ 'LOCALE'] = array('fo_FO.ISO8859-1','fo_FO.ISO-8859-1','fo_FO') |
$languages[ 'fr_FR'][ 'LOCALE'] = array('fr_FR.ISO8859-1','fr_FR.ISO-8859-1','fr_FR') |
$languages[ 'fy'][ 'LOCALE'] = array('fy.UTF-8', 'fy.UTF8', 'fy_NL.UTF-8', 'fy_NL.UTF8') |
$languages[ 'hr_HR'][ 'LOCALE'] = array('hr_HR.ISO8859-2','hr_HR.ISO-8859-2','hr_HR') |
$languages[ 'hu_HU'][ 'LOCALE'] = array('hu_HU.UTF-8', 'hu_HU.UTF8', 'hu_HU') |
$languages[ 'id_ID'][ 'LOCALE'] = array('id_ID.ISO8859-1','id_ID.ISO-8859-1','id_ID') |
$languages[ 'is_IS'][ 'LOCALE'] = array('is_IS.ISO8859-1','is_IS.ISO-8859-1','is_IS') |
$languages[ 'it_IT'][ 'LOCALE'] = array('it_IT.UTF-8','it_IT-UTF8','it_IT') |
$languages[ 'ja_JP'][ 'XTRA_CODE'] = 'japanese_charset_xtra' |
$languages[ 'ka'][ 'LOCALE'] = array('ka_GE.UTF-8', 'ka_GE.UTF8', 'ka_GE', 'ka') |
$languages[ 'km'][ 'ALTNAME'] = 'ខ្មែរ' |
$languages[ 'km'][ 'LOCALE'] = array('km.UTF-8', 'km.UTF8', 'km_KH.UTF-8', 'km_KH.UTF8', 'km', 'km_KH') |
$languages[ 'lt_LT'][ 'LOCALE'] = array('lt_LT.UTF-8', 'lt_LT.UTF8') |
$languages[ 'lv_LV'][ 'LOCALE'] = array('lv_LV.UTF-8', 'lv_LV.UTF8') |
$languages[ 'mk'][ 'LOCALE'] = array('mk.UTF-8', 'mk.UTF8', 'mk_MK.UTF-8', 'mk_MK.UTF8') |
$languages[ 'ms_MY'][ 'LOCALE'] = array('ms_MY.ISO8859-1','ms_MY.ISO-8859-1','ms_MY') |
$languages[ 'nb_NO'][ 'LOCALE'] = array('nb_NO.UTF-8', 'nb_NO.UTF8', 'nb_NO') |
$languages[ 'nl_NL'][ 'LOCALE'] = array('nl_NL.ISO8859-1','nl_NL.ISO-8859-1','nl_NL') |
$languages[ 'nn_NO'][ 'LOCALE'] = array('nn_NO.ISO8859-1','nn_NO.ISO-8859-1','nn_NO') |
$languages[ 'pl_PL'][ 'LOCALE'] = array('pl_PL.ISO8859-2','pl_PL.ISO-8859-2','pl_PL') |
$languages[ 'pt_BR'][ 'LOCALE'] = array('pt_BR.ISO8859-1','pt_BR.ISO-8859-1','pt_BR') |
$languages[ 'pt_PT'][ 'LOCALE'] = array('pt_PT.ISO8859-1','pt_PT.ISO-8859-1','pt_PT') |
$languages[ 'ro_RO'][ 'LOCALE'] = array('ro_RO.UTF-8', 'ro_RO.UTF8', 'ro_RO') |
$languages[ 'ru_RU'][ 'LOCALE'] = array('ru_RU.UTF-8', 'ru_RU.UTF8') |
$languages[ 'sk_SK'][ 'LOCALE'] = array('sk_SK.UTF-8', 'sk_SK.UTF8', 'sk_SK') |
$languages[ 'sl_SI'][ 'LOCALE'] = array('sl_SI.ISO8859-2','sl_SI.ISO-8859-2','sl_SI') |
$languages[ 'sr_YU'][ 'LOCALE'] = array('sr_YU.ISO8859-2','sr_YU.ISO-8859-2','sr_YU') |
$languages[ 'sv_SE'][ 'LOCALE'] = array('sv_SE.UTF-8', 'sv_SE.UTF8', 'sv_SE') |
$languages[ 'ta_LK'][ 'ALTNAME'] = 'தமிழ்' |
$languages[ 'ta_LK'][ 'LOCALE'] = array('ta_LK.UTF-8', 'ta_LK.UTF8', 'ta_LK', 'ta.UTF-8', 'ta.UTF8', 'ta') |
$languages[ 'tr_TR'][ 'LOCALE'] = array('tr_TR.ISO8859-9','tr_TR.ISO-8859-9','tr_TR') |
$languages[ 'uk_UA'][ 'LOCALE'] = array('uk_UA.UTF-8', 'uk_UA.UTF8', 'uk_UA', 'uk') |
$languages[ 'zh_TW'][ 'LOCALE'] = array('zh_TW.UTF-8', 'zh_TW.UTF8') |
global $languages |
Definition at line 774 of file i18n.php.
Referenced by charset_decode(), decodeHeader(), encodeHeader(), filter_search_and_delete(), formatBody(), getAttachments(), html_tag(), imap_utf7_decode_local(), imap_utf7_encode_local(), is_conversion_safe(), load_optpage_data_display(), newMail(), processSubject(), SendDownloadHeaders(), SendMDN(), set_my_charset(), set_up_language(), sq_bindtextdomain(), sqimap_search(), and sqWordWrap().
global $squirrelmail_language |
Definition at line 774 of file i18n.php.
Referenced by _(), addr_display_result(), address_form(), charset_decode(), charset_decode_utf_8(), decodeHeader(), displayHtmlHeader(), encodeHeader(), filter_search_and_delete(), formatBody(), formatEnvheader(), getAttachments(), gettext_php_load_strings(), html_tag(), imap_utf7_decode_local(), imap_utf7_encode_local(), is_logged_in(), load_optpage_data_display(), logout_error(), newMail(), processSubject(), SendDownloadHeaders(), SendMDN(), set_my_charset(), set_up_language(), sqimap_append_checkresponse(), sqimap_get_headerfield(), sqimap_get_small_header_list(), sqimap_login(), sqimap_read_data_list(), sqimap_run_command(), sqimap_run_command_list(), sqimap_run_literal_command(), sqimap_search(), sqUnWordWrap(), sqWordWrap(), and translate_does_it_match_language().
global $use_gettext |
Definition at line 774 of file i18n.php.
Referenced by set_up_language(), and sq_change_text_domain().