removed require_once() calls that are already loaded by include/validate.php
[squirrelmail.git] / doc / i18n.txt
... / ...
CommitLineData
1SquirrelMail internationalization
2
3This document should explain how SquirrelMail internationalization works and
4provide information about some aspects of implementation.
5
61. Supported languages
72. $languages array
83. XTRA_CODE functions
94. Display of different charsets
105. IMAP folder names
11
12-------------------------------
131. Supported languages
14-------------------------------
15Valid language codes are:
16* ar - Arabic, windows-1256 charset
17* bg_BG - Bulgarian, windows-1251 charset
18* ca_ES - Catalan, iso-8859-1 charset
19* cs_CZ - Czech, iso-8859-2 charset
20* cy_GB - Welsh, iso-8859-1 charset
21* da_DK - Danish, iso-8859-1 charset
22* de_DE - German, iso-8859-1 charset
23* el_GR - Greek, iso-8859-7 charset
24* en_GB - British, iso-8859-15 charset
25* en_US - English, charset depends on $default_charset
26* es_ES - Spanish, iso-8859-1 charset
27* et_EE - Estonian, iso-8859-15 charset
28* eu_ES - Basque, iso-8859-1 charset
29* fa_IR - Farsi, utf-8 charset
30* fi_FI - Finnish, iso-8859-1 charset
31* fo_FO - Faroese, iso-8859-1 charset
32* fr_FR - French, iso-8859-1 charset
33* he_IL - Hebrew, windows-1255 charset
34* hr_HR - Croatian, iso-8859-2 charset
35* hu_HU - Hungarian, iso-8859-2 charset
36* id_ID - Indonesian, iso-8859-1 charset
37* is_IS - Icelandic, iso-8859-1 charset
38* it_IT - Italian, iso-8859-1 charset
39* ja_JP - Japanese, euc-jp charset (emails are created in iso-2022-jp)
40* ko_KR - Korean, euc-kr charset
41* lt_LT - Lithuanian, utf-8 charset
42* ms_MY - Malay, iso-8859-1 charset
43* nb_NO - Norwegian (Bokmal), iso-8859-1 charset
44* nl_NL - Dutch, iso-8859-1 charset
45* nn_NO - Norwegian (Nynorsk), iso-8859-1 charset
46* pl_PL - Polish, iso-8859-2 charset
47* pt_BR - Portuguese (Brazil), iso-8859-1 charset
48* pt_PT - Portuguese (Portugal), iso-8859-1 charset
49* ro_RO - Romanian, iso-8859-2 charset
50* ru_UA - Ukrainian Russian, koi8-r charset
51* ru_RU - Russian, utf-8 charset
52* sk_SK - Slovak, iso-8859-2 charset
53* sl_SI - Slovenian, iso-8859-2 charset
54* sr_YU - Serbian, iso-8859-2 charset
55* sv_SE - Swedish, iso-8859-1 charset
56* ug - Uighur, utf-8 charset (some systems don't support Uighur system locale)
57* th_TH - Thai, tis-620 charset
58* tl_PH - Tagalog, iso-8859-1 charset (main translation is missing, only some plugins are translated)
59* tr_TR - Turkish, iso-8859-9 charset
60* uk_UA - Ukrainian, koi8-u charset
61* zh_CN - Chinese Simplified, gb2312 charset
62* zh_TW - Chinese Traditional, big5 charset
63
64-------------------
652. $languages array
66-------------------
67$languages array is stored in functions/i18n.php and defines translations
68that are enabled in SquirrelMail.
69
70Format of array:
71 $languages['language_code']['key'] = 'value'
72
73Possible array key names:
74* NAME - Translation name in English. Any 8bit symbols must be html encoded.
75* CHARSET - Charset used by translation
76* ALIAS - 'language_code' should contain short language name
77 (iso-639). 'value' should contain name of other 'language_code'
78 that defines translation with NAME and CHARSET keys.
79 Entry links short language form with long form (language+country).
80 See: http://www.loc.gov/standards/iso639-2/langhome.html and
81 http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html
82* ALTNAME - Native translation name. Any 8bit symbols must be html encoded.
83 Name is visible when $show_alternative_names is enabled.
84* LOCALE - Full locale name (in xx_XX.charset format or other format required
85 by php gettext functions). From 1.4.4/1.5.1 'value' can contain
86 array. If php version is older than 4.3.0, system uses only first
87 locale name listed in array. First locale name must be compatible
88 with FreeBSD system locale names.
89* DIR - Text direction. Used to define Right-to-Left languages. Possible
90 values 'rtl' or 'ltr'. If undefined - defaults to 'ltr'.
91* XTRA_CODE - translation uses special functions. (see chapter 3. XTRA_CODE functions)
92
93Each 'language_code' definition requires NAME+CHARSET or ALIAS keys. Other keys are
94optional.
95
96----------------------
973. XTRA_CODE functions
98----------------------
99XTRA_CODE functions provide way to change interface behavior, when translation
100requires special handling of some SquirrelMail functions. Functions are enabled
101by setting XTRA_CODE option in $languages array and including appropriate
102functions in functions/i18n.php. First part of function name is word listed in
103$languages['language_code']['XTRA_CODE'] value. Second part is one of special
104keywords. Possible keywords:
105* _decode
106Used in src/compose.php, src/i18n.php, src/view_text.php, functions/mime.php
107Requires mbstring support
108
109* _encode
110Used in src/compose.php, src/read_body.php
111
112* _encodeheader
113Used in functions/mime.php
114Returning function
115
116* _decodeheader
117Used in functions/mime.php
118Returning function
119
120* _downloadfilename
121Used in functions/mime.php
122
123* _utf7_imap_encode
124Used in functions/imap_utf7_local.php
125Returning function
126
127* _utf7_imap_decode
128Used in functions/imap_utf7_local.php
129Returning function
130
131* _strimwidth
132Used in functions/mailbox_display.php
133Returning function
134
135* _wordwrap
136Used in functions/strings.php (sqWordWrap)
137
138--------------------------------
1394. Display of different charsets
140--------------------------------
141When SquirrelMail generates html pages, it uses charset set by translation
142selected by end user. Interface can display emails encoded in different
143charsets. In order to display characters that might be unsupported by user's
144charset, SquirrelMail uses decoding functions that convert non us-ascii symbols
145into html entities. All decoding functions are stored in functions/decode/
146directory.
147
148By default SquirrelMail includes decoding functions that support iso-8859-x,
149windows-125x, utf-8, us-ascii, koi8-r, koi8-u, tis-620, ns-4551_1, iso-ir-111,
150cp855 and cp866 charsets. Other decoding functions are distributed in separate
151packages. Separate packaging of decoding functions is supported from
152SquirrelMail 1.4.4 and 1.5.0.
153
154Some decoding functions might require php recode support. If your php
155installation does not support recode, you might be using slower and cpu/memory
156intensive functions.
157
158--------------------
1595. IMAP folder names
160--------------------
161IMAP folder names use UTF7-IMAP charset. Folder names that are stored in
162conf.pl must be encoded in UTF7-IMAP charset. SquirrelMail uses internal
163functions that convert folder names from/to utf7-imap charset. By default those
164functions work with iso-8859-1 charset. Other iso-8859-x and utf-8 charsets are
165supported only when php installation contains mbstring support.