SquirrelMail internationalization functions
This file contains variuos functions that are needed to do internationalization of SquirrelMail.
Internally the output character set is used. Other characters are encoded using Unicode entities according to HTML 4.0.
Before 1.5.2 functions were stored in functions/i18n.php. Script is moved because it executes some code in order to detect functions supported by existing PHP installation and implements fallback functions when required functions are not available. Scripts in functions/ directory should not setup anything when they are loaded.
Automatic translation loading from setup.php files.
Solution for bug. 1240889. setup.php file can contain $languages array entries and XTRA_CODE functions.
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.
Combined decoding and encoding functions
If conversion is done to charset different that utf-8, unsupported symbols will be replaced with question marks.
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 iconv or recode functions are enabled and translation uses utf-8 - function returns utf-8 encoded string. If $charset is not supported - function returns unconverted string.
sanitizing of html tags is also done by this function.
Converts html string to given charset
Replaces non-braking spaces inserted by some browsers with regular space
This function can be used to replace non-braking space symbols that are inserted in forms by some browsers instead of normal space symbol.
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.
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.
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.
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.
Converts html character entities to numeric entities
SquirrelMail encoding functions work only with numeric entities. This function fixes issues with decoding functions that might convert some symbols to character entities. Issue is specific to PHP recode extension decoding. Function is used internally in charset_convert() function.
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.
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.
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.
Gettext textdomain wrapper.
Makes sure that gettext_domain global is modified.
Documentation generated on Mon, 13 Jan 2020 04:22:54 +0100 by phpDocumentor 1.4.3