Subversion Repositories region

[/] [stable/] [1.0/] [classes/] [ezxISO939.php] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 xrow
<?php
2
/*
3
 * Usage:
4
 *
5
 *  $locale=al2gt(<array of supported languages/charsets in gettext syntax>,
6
 *                <MIME type of document>);
7
 *  setlocale('LC_ALL', $locale); // or 'LC_MESSAGES', or whatever...
8
 *
9
 * Example:
10
 *
11
 *  $langs=array('nl_BE.ISO-8859-15','nl_BE.UTF-8','en_US.UTF-8','en_GB.UTF-8');
12
 *  $locale=al2gt($langs, 'text/html');
13
 *  setlocale('LC_ALL', $locale);
14
 *
15
 * Note that this will send out header information (to be
16
 * RFC2616-compliant), so it must be called before anything is sent to
17
 * the user.
18
 *
19
 * Assumptions made:
20
 * * Charset encodings are written the same way as the Accept-Charset
21
 *   HTTP header specifies them (RFC2616), except that they're parsed
22
 *   case-insensitive.
23
 * * Country codes and language codes are the same in both gettext and
24
 *   the Accept-Language syntax (except for the case differences, which
25
 *   are dealt with easily). If not, some input may be ignored.
26
 * * The provided gettext-strings are fully qualified; i.e., no "en_US";
27
 *   always "en_US.ISO-8859-15" or "en_US.UTF-8", or whichever has been
28
 *   used. "en.ISO-8859-15" is OK, though.
29
 * * The language is more important than the charset; i.e., if the
30
 *   following is given:
31
 *
32
 *   Accept-Language: nl-be, nl;q=0.8, en-us;q=0.5, en;q=0.3
33
 *
34
 */
35
 
36
define( 'EZX_ISO936_1', 0 );
37
define( 'EZX_ISO936_2', 1 );
38
 
39
class ezxISO936
40
{
41
    var $languages = array
42
    (
43
    #   array( array( 'ISO 639-1' ), array( 'ISO 639-2' ) ),
44
   # oder
45
   #   array( array( 'ISO 639-1' ), array( 'ISO 639-2', 'ISO 639-2-ALTERNATIV2', 'ISO 639-2-ALTERNATIV3' ) ),
46
       array( array( 'ab' ), array( 'abk' ) ),
47
        array( array( '' ), array( 'ace' ) ),
48
        array( array( '' ), array( 'ach' ) ),
49
        array( array( '' ), array( 'ada' ) ),
50
        array( array( '' ), array( 'ady' ) ),
51
        array( array( '' ), array( 'ady' ) ),
52
        array( array( 'aa' ), array( 'aar' ) ),
53
        array( array( '' ), array( 'afh' ) ),
54
        array( array( '' ), array( 'afr' ) ),
55
        array( array( '' ), array( 'afa' ) ),
56
        array( array( '' ), array( 'ain' ) ),
57
        array( array( 'ak' ), array( 'aka' ) ),
58
        array( array( '' ), array( 'akk' ) ),
59
        array( array( 'sq' ), array( 'alb', 'sqi' ) ),
60
        array( array( '' ), array( 'gsw' ) ),
61
        array( array( '' ), array( 'ale' ) ),
62
        array( array( '' ), array( 'alg' ) ),
63
        array( array( '' ), array( 'tut' ) ),
64
        array( array( 'am' ), array( 'amh' ) ),
65
        array( array( '' ), array( 'anp' ) ),
66
        array( array( '' ), array( 'apa' ) ),
67
        array( array( 'ar' ), array( 'ara' ) ),
68
        array( array( 'an' ), array( 'arg' ) ),
69
        array( array( '' ), array( 'arc' ) ),
70
        array( array( '' ), array( 'arp' ) ),
71
        array( array( '' ), array( 'arn' ) ),
72
        array( array( '' ), array( 'arw' ) ),
73
        array( array( 'hy' ), array( 'arm', 'hye' ) ),
74
        array( array( '' ), array( 'rup' ) ),
75
        array( array( 'as' ), array( 'asm' ) ),
76
        array( array( '' ), array( 'ast' ) ),
77
        array( array( '' ), array( 'ath' ) ),
78
        array( array( '' ), array( 'aus' ) ),
79
        array( array( '' ), array( 'map' ) ),
80
        array( array( 'av' ), array( 'ava' ) ),
81
        array( array( 'ae' ), array( 'ave' ) ),
82
        array( array( '' ), array( 'awa' ) ),
83
        array( array( 'ay' ), array( 'aym' ) ),
84
        array( array( 'az' ), array( 'aze' ) ),
85
        array( array( '' ), array( 'ast' ) ),
86
        array( array( '' ), array( 'ban' ) ),
87
        array( array( '' ), array( 'bat' ) ),
88
        array( array( '' ), array( 'bal' ) ),
89
        array( array( 'bm' ), array( 'bam' ) ),
90
        array( array( '' ), array( 'bai' ) ),
91
        array( array( '' ), array( 'bad' ) ),
92
        array( array( '' ), array( 'bnt' ) ),
93
        array( array( '' ), array( 'bas' ) ),
94
        array( array( 'ba' ), array( 'bak' ) ),
95
        array( array( 'eu' ), array( 'baq', 'eus' ) ),
96
        array( array( '' ), array( 'btk' ) ),
97
        array( array( '' ), array( 'bej' ) ),
98
        array( array( 'be' ), array( 'bel' ) ),
99
        array( array( '' ), array( 'bem' ) ),
100
        array( array( 'bn' ), array( 'ben' ) ),
101
        array( array( '' ), array( 'ber' ) ),
102
        array( array( '' ), array( 'bho' ) ),
103
        array( array( 'bh' ), array( 'bih' ) ),
104
        array( array( '' ), array( 'spa' ) ),
105
        array( array( '' ), array( 'bik' ) ),
106
        array( array( '' ), array( 'byn' ) ),
107
        array( array( 'nb' ), array( 'nob' ) ),
108
        array( array( 'bs' ), array( 'bos' ) ),
109
        array( array( '' ), array( 'bra' ) ),
110
        array( array( 'br' ), array( 'bre' ) ),
111
        array( array( '' ), array( 'bug' ) ),
112
        array( array( 'bg' ), array( 'bul' ) ),
113
        array( array( 'es' ), array( 'spa' ) ),
114
        array( array( '' ), array( 'bua' ) ),
115
        array( array( 'es' ), array( 'spa' ) ),
116
        array( array( 'my' ), array( 'bur', 'mya' ) ),
117
                array( array( '' ), array( 'cad' ) ),
118
        array( array( '' ), array( 'car' ) ),
119
        array( array( 'es' ), array( 'spa' ) ),
120
        array( array( 'ca' ), array( 'cat' ) ),
121
        array( array( '' ), array( 'cau' ) ),
122
        array( array( '' ), array( 'ceb' ) ),
123
        array( array( '' ), array( 'cel' ) ),
124
        array( array( '' ), array( 'cai' ) ),
125
        array( array( '' ), array( 'chg' ) ),
126
        array( array( '' ), array( 'cmc' ) ),
127
        array( array( 'ch' ), array( 'cha' ) ),
128
        array( array( 'ce' ), array( 'che' ) ),
129
        array( array( '' ), array( 'chr' ) ),
130
        array( array( 'ny' ), array( 'nya' ) ),
131
        array( array( '' ), array( 'spa' ) ),
132
        array( array( '' ), array( 'chy' ) ),
133
        array( array( '' ), array( 'chb' ) ),
134
        array( array( 'ny' ), array( 'nya' ) ),
135
        array( array( 'zh' ), array( 'chi', 'zho' ) ),
136
        array( array( '' ), array( 'chn' ) ),
137
        array( array( '' ), array( 'chp' ) ),
138
        array( array( '' ), array( 'cho' ) ),
139
        array( array( 'za' ), array( 'zha' ) ),
140
        array( array( 'cu' ), array( 'chu' ) ),
141
        array( array( 'cu' ), array( 'chu' ) ),
142
        array( array( '' ), array( 'chk' ) ),
143
        array( array( 'cv' ), array( 'chv' ) ),
144
        array( array( '' ), array( 'nwc' ) ),
145
        array( array( '' ), array( 'nwc' ) ),
146
        array( array( '' ), array( 'cop' ) ),
147
        array( array( 'kw' ), array( 'cor' ) ),
148
        array( array( 'co' ), array( 'cos' ) ),
149
        array( array( 'ce' ), array( 'cre' ) ),
150
        array( array( '' ), array( 'mus' ) ),
151
        array( array( '' ), array( 'crp' ) ),
152
        array( array( '' ), array( 'cpe' ) ),
153
        array( array( '' ), array( 'cpf' ) ),
154
        array( array( '' ), array( 'cpp' ) ),
155
        array( array( '' ), array( 'crh' ) ),
156
        array( array( '' ), array( 'crh' ) ),
157
        array( array( 'hr' ), array( 'scr', 'hrv' ) ),
158
        array( array( '' ), array( 'cus' ) ),
159
        array( array( 'cs' ), array( 'cze', 'ces' ) ),
160
        array( array( '' ), array( 'dak' ) ),
161
        array( array( 'da' ), array( 'dan' ) ),
162
        array( array( '' ), array( 'dar' ) ),
163
        array( array( '' ), array( 'day' ) ),
164
        array( array( '' ), array( 'del' ) ),
165
        array( array( 'dv' ), array( 'div' ) ),
166
        array( array( '' ), array( 'din' ) ),
167
        array( array( 'dv' ), array( 'div' ) ),
168
        array( array( '' ), array( 'doi' ) ),
169
        array( array( '' ), array( 'dgr' ) ),
170
        array( array( '' ), array( 'dra' ) ),
171
        array( array( '' ), array( 'dua' ) ),
172
        array( array( 'nl' ), array( 'dut', 'nld' ) ),
173
        array( array( '' ), array( 'dum' ) ),
174
        array( array( '' ), array( 'dyn' ) ),
175
        array( array( 'dz' ), array( 'dzo' ) ),
176
        array( array( '' ), array( 'frs' ) ),
177
        array( array( '' ), array( 'efi' ) ),
178
        array( array( '' ), array( 'egy' ) ),
179
        array( array( '' ), array( 'eka' ) ),
180
        array( array( '' ), array( 'elx' ) ),
181
        array( array( 'en' ), array( 'eng' ) ),
182
        array( array( '' ), array( 'enm' ) ),
183
        array( array( '' ), array( 'ang' ) ),
184
        array( array( '' ), array( 'myv' ) ),
185
        array( array( 'eo' ), array( 'epo' ) ),
186
        array( array( 'et' ), array( 'est' ) ),
187
        array( array( 'ee' ), array( 'ewe' ) ),
188
        array( array( '' ), array( 'ewo' ) ),
189
        array( array( '' ), array( 'fan' ) ),
190
        array( array( '' ), array( 'fat' ) ),
191
        array( array( 'fo' ), array( 'fao' ) ),
192
        array( array( 'fj' ), array( 'fij' ) ),
193
        array( array( '' ), array( 'fil' ) ),
194
        array( array( 'fi' ), array( 'fin' ) ),
195
        array( array( '' ), array( 'fiu' ) ),
196
        array( array( 'nl' ), array( 'dut', 'nld' ) ),
197
        array( array( '' ), array( 'fon' ) ),
198
        array( array( 'fr' ), array( 'fre', 'fra' ) ),
199
        array( array( '' ), array( 'frm' ) ),
200
        array( array( '' ), array( 'fro' ) ),
201
        array( array( '' ), array( 'fur' ) ),
202
        array( array( 'ff' ), array( 'ful' ) ),
203
        array( array( '' ), array( 'gaa' ) ),
204
        array( array( 'gd' ), array( 'gla' ) ),
205
        array( array( 'gl' ), array( 'glg' ) ),
206
        array( array( 'lg' ), array( 'lug' ) ),
207
        array( array( '' ), array( 'gay' ) ),
208
        array( array( '' ), array( 'gba' ) ),
209
        array( array( '' ), array( 'gez' ) ),
210
        array( array( 'ka' ), array( 'geo', 'kat' ) ),
211
        array( array( 'de' ), array( 'ger', 'deu' ) ),
212
        array( array( '' ), array( 'nds' ) ),
213
        array( array( '' ), array( 'gmh' ) ),
214
        array( array( '' ), array( 'goh' ) ),
215
        array( array( '' ), array( 'gem' ) ),
216
        array( array( 'ki' ), array( 'kik' ) ),
217
        array( array( '' ), array( 'gil' ) ),
218
        array( array( '' ), array( 'gon' ) ),
219
        array( array( '' ), array( 'gor' ) ),
220
        array( array( '' ), array( 'got' ) ),
221
        array( array( '' ), array( 'grb' ) ),
222
        array( array( '' ), array( 'grc' ) ),
223
        array( array( 'el' ), array( 'gre', 'ell' ) ),
224
        array( array( 'kl' ), array( 'kal' ) ),
225
        array( array( 'gn' ), array( 'grn' ) ),
226
        array( array( 'gu' ), array( 'guj' ) ),
227
        array( array( '' ), array( 'gwi' ) ),
228
        array( array( '' ), array( 'hai' ) ),
229
        array( array( 'ht' ), array( 'hat' ) ),
230
        array( array( 'ht' ), array( 'hat' ) ),
231
        array( array( 'ha' ), array( 'hau' ) ),
232
        array( array( '' ), array( 'haw' ) ),
233
        array( array( 'he' ), array( 'heb' ) ),
234
        array( array( 'hz' ), array( 'her' ) ),
235
        array( array( '' ), array( 'hil' ) ),
236
        array( array( '' ), array( 'him' ) ),
237
        array( array( 'hi' ), array( 'hin' ) ),
238
        array( array( 'ho' ), array( 'hmo' ) ),
239
        array( array( '' ), array( 'hit' ) ),
240
        array( array( '' ), array( 'hmn' ) ),
241
        array( array( 'hu' ), array( 'hun' ) ),
242
        array( array( '' ), array( 'hup' ) ),
243
        array( array( '' ), array( 'iba' ) ),
244
        array( array( 'is' ), array( 'ice', 'isl' ) ),
245
        array( array( 'io' ), array( 'ido' ) ),
246
        array( array( 'ig' ), array( 'ibo' ) ),
247
        array( array( '' ), array( 'ijo' ) ),
248
        array( array( '' ), array( 'ilo' ) ),
249
        array( array( '' ), array( 'smn' ) ),
250
        array( array( '' ), array( 'inc' ) ),
251
        array( array( '' ), array( 'ine' ) ),
252
        array( array( 'id' ), array( 'ind' ) ),
253
        array( array( '' ), array( 'inh' ) ),
254
        array( array( 'ia' ), array( 'ina' ) ),
255
        array( array( 'ie' ), array( 'ile' ) ),
256
        array( array( 'iu' ), array( 'iku' ) ),
257
        array( array( 'ik' ), array( 'ipk' ) ),
258
        array( array( '' ), array( 'ira' ) ),
259
        array( array( 'ga' ), array( 'gle' ) ),
260
        array( array( '' ), array( 'mga' ) ),
261
        array( array( '' ), array( 'sga' ) ),
262
        array( array( '' ), array( 'iro' ) ),
263
        array( array( 'it' ), array( 'ita' ) ),
264
        array( array( 'ja' ), array( 'jpn' ) ),
265
        array( array( 'jv' ), array( 'jav' ) ),
266
        array( array( '' ), array( 'jrb' ) ),
267
        array( array( '' ), array( 'jpr' ) ),
268
        array( array( '' ), array( 'kbd' ) ),
269
        array( array( '' ), array( 'kab' ) ),
270
        array( array( '' ), array( 'kac' ) ),
271
        array( array( 'kl' ), array( 'kal' ) ),
272
        array( array( '' ), array( 'xal' ) ),
273
        array( array( '' ), array( 'kam' ) ),
274
        array( array( 'kn' ), array( 'kan' ) ),
275
        array( array( 'kr' ), array( 'kau' ) ),
276
        array( array( '' ), array( 'krc' ) ),
277
        array( array( '' ), array( 'kaa' ) ),
278
        array( array( '' ), array( 'krl' ) ),
279
        array( array( '' ), array( 'kar' ) ),
280
        array( array( 'ks' ), array( 'kas' ) ),
281
        array( array( '' ), array( 'csb' ) ),
282
        array( array( '' ), array( 'kaw' ) ),
283
        array( array( 'kk' ), array( 'kaz' ) ),
284
        array( array( '' ), array( 'kha' ) ),
285
        array( array( 'km' ), array( 'khm' ) ),
286
        array( array( '' ), array( 'khi' ) ),
287
        array( array( '' ), array( 'kho' ) ),
288
        array( array( 'ki' ), array( 'kik' ) ),
289
        array( array( '' ), array( 'kmb' ) ),
290
        array( array( 'rw' ), array( 'kin' ) ),
291
        array( array( 'ky' ), array( 'kir' ) ),
292
        array( array( '' ), array( 'tlh' ) ),
293
        array( array( 'kv' ), array( 'kom' ) ),
294
        array( array( 'kg' ), array( 'kon' ) ),
295
        array( array( '' ), array( 'kok' ) ),
296
        array( array( 'ko' ), array( 'kor' ) ),
297
        array( array( '' ), array( 'kos' ) ),
298
        array( array( '' ), array( 'kpe' ) ),
299
        array( array( '' ), array( 'kro' ) ),
300
        array( array( 'kj' ), array( 'kua' ) ),
301
        array( array( '' ), array( 'kum' ) ),
302
        array( array( 'ku' ), array( 'kru' ) ),
303
        array( array( '' ), array( 'kut' ) ),
304
        array( array( 'kj' ), array( 'kua' ) ),
305
        array( array( '' ), array( 'lad' ) ),
306
        array( array( '' ), array( 'lah' ) ),
307
        array( array( '' ), array( 'lam' ) ),
308
        array( array( 'lo' ), array( 'lao' ) ),
309
        array( array( 'la' ), array( 'lat' ) ),
310
        array( array( 'lv' ), array( 'lav' ) ),
311
        array( array( 'lb' ), array( 'ltz' ) ),
312
        array( array( '' ), array( 'lez' ) ),
313
        array( array( 'li' ), array( 'lim' ) ),
314
        array( array( 'li' ), array( 'lim' ) ),
315
        array( array( 'li' ), array( 'lim' ) ),
316
        array( array( 'ln' ), array( 'lin' ) ),
317
        array( array( 'lt' ), array( 'lit' ) ),
318
        array( array( '' ), array( 'jbo' ) ),
319
        array( array( '' ), array( 'nds' ) ),
320
        array( array( '' ), array( 'nds' ) ),
321
        array( array( '' ), array( 'dsb' ) ),
322
        array( array( '' ), array( 'loz' ) ),
323
        array( array( 'lu' ), array( 'lub' ) ),
324
        array( array( '' ), array( 'lua' ) ),
325
        array( array( '' ), array( 'lui' ) ),
326
        array( array( '' ), array( 'smj' ) ),
327
        array( array( '' ), array( 'lun' ) ),
328
        array( array( '' ), array( 'luo' ) ),
329
        array( array( '' ), array( 'lus' ) ),
330
        array( array( 'lb' ), array( 'ltz' ) ),
331
        array( array( '' ), array( 'rup' ) ),
332
        array( array( 'mk' ), array( 'mac', 'mkd' ) ),
333
        array( array( '' ), array( 'mad' ) ),
334
        array( array( '' ), array( 'mag' ) ),
335
        array( array( '' ), array( 'mai' ) ),
336
        array( array( '' ), array( 'mak' ) ),
337
        array( array( 'mg' ), array( 'mlg' ) ),
338
        array( array( 'ms' ), array( 'may', 'msa' ) ),
339
        array( array( 'ml' ), array( 'mal' ) ),
340
        array( array( 'dv' ), array( 'div' ) ),
341
        array( array( 'mt' ), array( 'mlt' ) ),
342
        array( array( '' ), array( 'mnc' ) ),
343
        array( array( '' ), array( 'mdr' ) ),
344
        array( array( '' ), array( 'man' ) ),
345
        array( array( '' ), array( 'mni' ) ),
346
        array( array( '' ), array( 'mno' ) ),
347
        array( array( 'gv' ), array( 'glv' ) ),
348
        array( array( 'mi' ), array( 'mao', 'mri' ) ),
349
        array( array( 'mr' ), array( 'mar' ) ),
350
        array( array( '' ), array( 'chm' ) ),
351
        array( array( 'mh' ), array( 'mah' ) ),
352
        array( array( '' ), array( 'mur' ) ),
353
        array( array( '' ), array( 'mas' ) ),
354
        array( array( '' ), array( 'myn' ) ),
355
        array( array( '' ), array( 'men' ) ),
356
        array( array( '' ), array( 'mic' ) ),
357
        array( array( '' ), array( 'mic' ) ),
358
        array( array( '' ), array( 'min' ) ),
359
        array( array( '' ), array( 'mwl' ) ),
360
        array( array( '' ), array( 'mis' ) ),
361
        array( array( '' ), array( 'moh' ) ),
362
        array( array( '' ), array( 'mdf' ) ),
363
        array( array( 'mo' ), array( 'mol' ) ),
364
        array( array( '' ), array( 'mkh' ) ),
365
        array( array( '' ), array( 'lol' ) ),
366
        array( array( 'mn' ), array( 'mon' ) ),
367
        array( array( '' ), array( 'mos' ) ),
368
        array( array( '' ), array( 'mul' ) ),
369
        array( array( '' ), array( 'mun' ) ),
370
        array( array( '' ), array( 'nah' ) ),
371
        array( array( 'na' ), array( 'nau' ) ),
372
        array( array( 'nv' ), array( 'nav' ) ),
373
        array( array( 'nv' ), array( 'nav' ) ),
374
        array( array( 'nd' ), array( 'nde' ) ),
375
        array( array( 'nr' ), array( 'nbl' ) ),
376
        array( array( 'ng' ), array( 'ndo' ) ),
377
        array( array( '' ), array( 'nap' ) ),
378
        array( array( '' ), array( 'new' ) ),
379
        array( array( 'ne' ), array( 'nep' ) ),
380
        array( array( '' ), array( 'new' ) ),
381
        array( array( '' ), array( 'nia' ) ),
382
        array( array( '' ), array( 'nic' ) ),
383
        array( array( '' ), array( 'ssa' ) ),
384
        array( array( '' ), array( 'niu' ) ),
385
        array( array( '' ), array( 'nqo' ) ),
386
        array( array( '' ), array( 'zxx' ) ),
387
        array( array( '' ), array( 'nog' ) ),
388
        array( array( '' ), array( 'non' ) ),
389
        array( array( '' ), array( 'nai' ) ),
390
        array( array( '' ), array( 'frr' ) ),
391
        array( array( 'se' ), array( 'sme' ) ),
392
        array( array( '' ), array( 'nso' ) ),
393
        array( array( 'nd' ), array( 'nde' ) ),
394
        array( array( 'no' ), array( 'nor' ) ),
395
        array( array( 'nb' ), array( 'nob' ) ),
396
        array( array( 'nn' ), array( 'nno' ) ),
397
        array( array( '' ), array( 'nub' ) ),
398
        array( array( '' ), array( 'nym' ) ),
399
        array( array( 'ny' ), array( 'nya' ) ),
400
        array( array( '' ), array( 'nyn' ) ),
401
        array( array( 'nn' ), array( 'nno' ) ),
402
        array( array( '' ), array( 'nyo' ) ),
403
        array( array( '' ), array( 'nzi' ) ),
404
        array( array( 'oc' ), array( 'oci' ) ),
405
        array( array( '' ), array( 'xal' ) ),
406
        array( array( 'oj' ), array( 'oji' ) ),
407
        array( array( 'cu' ), array( 'chu' ) ),
408
        array( array( 'or' ), array( 'ori' ) ),
409
        array( array( 'om' ), array( 'orm' ) ),
410
        array( array( '' ), array( 'osa' ) ),
411
        array( array( 'os' ), array( 'oss' ) ),
412
        array( array( 'os' ), array( 'oss' ) ),
413
        array( array( '' ), array( 'oto' ) ),
414
        array( array( '' ), array( 'pal' ) ),
415
        array( array( '' ), array( 'pau' ) ),
416
        array( array( '' ), array( 'pli' ) ),
417
        array( array( '' ), array( 'pam' ) ),
418
        array( array( '' ), array( 'pag' ) ),
419
        array( array( 'pa' ), array( 'pan' ) ),
420
        array( array( '' ), array( 'pap' ) ),
421
        array( array( '' ), array( 'paa' ) ),
422
        array( array( '' ), array( 'nso' ) ),
423
        array( array( 'fa' ), array( 'per', 'fas' ) ),
424
        array( array( '' ), array( 'peo' ) ),
425
        array( array( '' ), array( 'phi' ) ),
426
        array( array( '' ), array( 'phn' ) ),
427
        array( array( '' ), array( 'fil' ) ),
428
        array( array( '' ), array( 'pon' ) ),
429
        array( array( 'pl' ), array( 'pol' ) ),
430
        array( array( 'pt' ), array( 'por' ) ),
431
        array( array( '' ), array( 'pra' ) ),
432
        array( array( 'oc' ), array( 'oci' ) ),
433
        array( array( '' ), array( 'pro' ) ),
434
        array( array( 'pa' ), array( 'pan' ) ),
435
        array( array( 'ps' ), array( 'pus' ) ),
436
        array( array( 'qu' ), array( 'que' ) ),
437
        array( array( 'rm' ), array( 'roh' ) ),
438
        array( array( '' ), array( 'raj' ) ),
439
        array( array( '' ), array( 'rap' ) ),
440
        array( array( '' ), array( 'rar' ) ),
441
        array( array( '' ), array( 'qaa', 'qtz' ) ),
442
        array( array( '' ), array( 'roa' ) ),
443
        array( array( 'ro' ), array( 'rum', 'ron' ) ),
444
        array( array( '' ), array( 'rom' ) ),
445
        array( array( 'rn' ), array( 'run' ) ),
446
        array( array( 'ru' ), array( 'rus' ) ),
447
        array( array( '' ), array( 'sal' ) ),
448
        array( array( '' ), array( 'sam' ) ),
449
        array( array( '' ), array( 'smi' ) ),
450
        array( array( 'sm' ), array( 'smo' ) ),
451
        array( array( '' ), array( 'sad' ) ),
452
        array( array( 'sg' ), array( 'sag' ) ),
453
        array( array( 'sa' ), array( 'san' ) ),
454
        array( array( '' ), array( 'sat' ) ),
455
        array( array( 'sc' ), array( 'srd' ) ),
456
        array( array( '' ), array( 'sas' ) ),
457
        array( array( '' ), array( 'nds' ) ),
458
        array( array( '' ), array( 'spa' ) ),
459
        array( array( '' ), array( 'sco' ) ),
460
        array( array( 'gd' ), array( 'gla' ) ),
461
        array( array( '' ), array( 'sel' ) ),
462
        array( array( '' ), array( 'sem' ) ),
463
        array( array( '' ), array( 'nso' ) ),
464
        array( array( 'sr' ), array( 'scc', 'srp' ) ),
465
        array( array( '' ), array( 'srr' ) ),
466
        array( array( '' ), array( 'shn' ) ),
467
        array( array( 'sn' ), array( 'sna' ) ),
468
        array( array( 'ii' ), array( 'iii' ) ),
469
        array( array( '' ), array( 'scn' ) ),
470
        array( array( '' ), array( 'sid' ) ),
471
        array( array( '' ), array( 'sgn' ) ),
472
        array( array( '' ), array( 'bla' ) ),
473
        array( array( 'sd' ), array( 'snd' ) ),
474
        array( array( 'si' ), array( 'sin' ) ),
475
        array( array( 'si' ), array( 'sin' ) ),
476
        array( array( '' ), array( 'sit' ) ),
477
        array( array( '' ), array( 'sio' ) ),
478
        array( array( '' ), array( 'sms' ) ),
479
        array( array( '' ), array( 'den' ) ),
480
        array( array( '' ), array( 'sla' ) ),
481
        array( array( 'sk' ), array( 'slo', 'slk' ) ),
482
        array( array( 'sl' ), array( 'slv' ) ),
483
        array( array( '' ), array( 'sog' ) ),
484
        array( array( 'so' ), array( 'som' ) ),
485
        array( array( '' ), array( 'son' ) ),
486
        array( array( '' ), array( 'snk' ) ),
487
        array( array( '' ), array( 'wen' ) ),
488
        array( array( '' ), array( 'wen' ) ),
489
        array( array( '' ), array( 'nso' ) ),
490
        array( array( 'st' ), array( 'sot' ) ),
491
        array( array( '' ), array( 'sai' ) ),
492
        array( array( '' ), array( 'alt' ) ),
493
        array( array( '' ), array( 'sma' ) ),
494
        array( array( 'nr' ), array( 'nbl' ) ),
495
        array( array( 'es' ), array( 'spa' ) ),
496
        array( array( '' ), array( 'spa' ) ),
497
        array( array( '' ), array( 'srn' ) ),
498
        array( array( '' ), array( 'suk' ) ),
499
        array( array( '' ), array( 'sux' ) ),
500
        array( array( '' ), array( 'sun' ) ),
501
        array( array( '' ), array( 'sus' ) ),
502
        array( array( 'sw' ), array( 'swa' ) ),
503
        array( array( 'ss' ), array( 'ssw' ) ),
504
        array( array( 'sv' ), array( 'swe' ) ),
505
        array( array( '' ), array( 'gsv' ) ),
506
        array( array( '' ), array( 'syr' ) ),
507
        array( array( 'tl' ), array( 'tgl' ) ),
508
        array( array( 'ty' ), array( 'tah' ) ),
509
        array( array( '' ), array( 'tai' ) ),
510
        array( array( 'tg' ), array( 'tgk' ) ),
511
        array( array( '' ), array( 'tmh' ) ),
512
        array( array( 'ta' ), array( 'tam' ) ),
513
        array( array( 'tt' ), array( 'tat' ) ),
514
        array( array( 'te' ), array( 'tel' ) ),
515
        array( array( '' ), array( 'ter' ) ),
516
        array( array( '' ), array( 'tet' ) ),
517
        array( array( 'th' ), array( 'tha' ) ),
518
        array( array( 'bo' ), array( 'tib', 'bod' ) ),
519
        array( array( '' ), array( 'tig' ) ),
520
        array( array( 'ti' ), array( 'tir' ) ),
521
        array( array( '' ), array( 'tem' ) ),
522
        array( array( '' ), array( 'tiv' ) ),
523
        array( array( '' ), array( 'tlh' ) ),
524
        array( array( '' ), array( 'tli' ) ),
525
        array( array( '' ), array( 'tpi' ) ),
526
        array( array( '' ), array( 'tke' ) ),
527
        array( array( '' ), array( 'tog' ) ),
528
        array( array( 'to' ), array( 'ton' ) ),
529
        array( array( '' ), array( 'tsi' ) ),
530
        array( array( '' ), array( 'tso' ) ),
531
        array( array( 'tn' ), array( 'tsn' ) ),
532
        array( array( '' ), array( 'tum' ) ),
533
        array( array( '' ), array( 'tup' ) ),
534
        array( array( 'tr' ), array( 'tur' ) ),
535
        array( array( '' ), array( 'ota' ) ),
536
        array( array( 'tk' ), array( 'tuk' ) ),
537
        array( array( '' ), array( 'tvl' ) ),
538
        array( array( '' ), array( 'tyv' ) ),
539
        array( array( 'tw' ), array( 'twi' ) ),
540
        array( array( '' ), array( 'udm' ) ),
541
        array( array( '' ), array( 'uga' ) ),
542
        array( array( 'ug' ), array( 'uig' ) ),
543
        array( array( 'uk' ), array( 'ukr' ) ),
544
        array( array( '' ), array( 'umb' ) ),
545
        array( array( '' ), array( 'und' ) ),
546
        array( array( '' ), array( 'hsb' ) ),
547
        array( array( 'ur' ), array( 'urd' ) ),
548
        array( array( 'ug' ), array( 'uig' ) ),
549
        array( array( 'uz' ), array( 'uzb' ) ),
550
        array( array( '' ), array( 'vai' ) ),
551
        array( array( 'ca' ), array( 'cat' ) ),
552
        array( array( 've' ), array( 'ven' ) ),
553
        array( array( 'vi' ), array( 'vie' ) ),
554
        array( array( 'vo' ), array( 'vol' ) ),
555
        array( array( '' ), array( 'vot' ) ),
556
        array( array( '' ), array( 'wak' ) ),
557
        array( array( '' ), array( 'wal' ) ),
558
        array( array( 'wa' ), array( 'wln' ) ),
559
        array( array( '' ), array( 'war' ) ),
560
        array( array( '' ), array( 'was' ) ),
561
        array( array( 'cy' ), array( 'wet', 'cym' ) ),
562
        array( array( 'fy' ), array( 'fry' ) ),
563
        array( array( 'wo' ), array( 'wol' ) ),
564
        array( array( 'xh' ), array( 'xho' ) ),
565
        array( array( '' ), array( 'sah' ) ),
566
        array( array( '' ), array( 'yao' ) ),
567
        array( array( '' ), array( 'yap' ) ),
568
        array( array( 'yi' ), array( 'yid' ) ),
569
        array( array( 'yo' ), array( 'yor' ) ),
570
        array( array( '' ), array( 'ypk' ) ),
571
        array( array( '' ), array( 'znd' ) ),
572
        array( array( '' ), array( 'zap' ) ),
573
        array( array( '' ), array( 'zen' ) ),
574
        array( array( 'za' ), array( 'zha' ) ),
575
        array( array( 'zu' ), array( 'zul' ) ),
576
        array( array( '' ), array( 'zun' ) ),
577
 
578
    );
579
    function ezxISO936()
580
    {
581
 
582
    }
583
    function convert( $lang )
584 4 xrow
    {        
585 2 xrow
        if( strlen( $lang ) == 2 )
586
        {
587
            foreach ( $this->languages as $language )
588
            {
589
                if ( $language[0][0] == $lang )
590
                {
591
                    return $language[1][0];
592
                }
593
            }
594
        }
595
    }
596
    /* not really important, this one; perhaps I could've put it inline with
597
 * the rest. */
598
function find_match($curlscore,$curcscore,$curgtlang,$langval,$charval,
599
                    $gtlang)
600
{
601
  if($curlscore < $langval) {
602
    $curlscore=$langval;
603
    $curcscore=$charval;
604
    $curgtlang=$gtlang;
605
  } else if ($curlscore == $langval) {
606
    if($curcscore < $charval) {
607
      $curcscore=$charval;
608
      $curgtlang=$gtlang;
609
    }
610
  }
611
  return array($curlscore, $curcscore, $curgtlang);
612
}
613
 
614
    function languages()
615
    {
616
        $regionini = eZINI::instance( 'region.ini' );
617
        $regions = $regionini->groups();
618
 
619
        $languages = array();
620
        foreach ( $regions as $key => $region )
621
        {
622
            $list = split( '[_-]',  $key, 2 );
623
            if ( isset( $list[0] ) )
624
                $languages[$list[0]] = $list[0];
625
        }
626
        return $languages;
627
    }
628
    function preferredLanguages( $format =  EZX_ISO936_2 )
629
    {
630
        $iso = new ezxISO936();
631
        $alscores = array();
632
        /* default to "everything is acceptable", as RFC2616 specifies */
633
        $acceptLang = ( ( $_SERVER["HTTP_ACCEPT_LANGUAGE"] == '' ) ? '*' : $_SERVER["HTTP_ACCEPT_LANGUAGE"]);
634
        $alparts=@preg_split(   "/,/", $acceptLang  );
635
        /* Parse the contents of the Accept-Language header.*/
636
        foreach( $alparts as $part )
637
        {
638
            $part=trim($part);
639
            if( preg_match( "/;/", $part ) )
640
            {
641
                $lang=@preg_split("/;/",$part);
642 4 xrow
                $score=@preg_split("/=/",$lang[1]);
643
                if( strpos( $lang[0], '-' ) !== false )
644
                {
645
                    list( $lang[0], $langalternate ) = split( '-', $lang[0] );
646
                }
647
                $convert = $iso->convert( $lang[0] );
648
                if ( !array_key_exists( $convert, $alscores ) )
649
                {
650
                    $alscores[$convert]=$score[1];
651
                }
652 2 xrow
            }
653
            else
654 4 xrow
            {
655
                if( strpos( $part, '-' ) !== false )
656
                {
657
                    list( $part, $langalternate ) = split( '-', $part );
658
                }
659
                $convert = $iso->convert( $part );
660
                if ( !array_key_exists( $convert, $alscores ) )
661
                {
662
                    $alscores[$convert]=1;
663
                }
664 2 xrow
            }
665
        }
666
        return $alscores;
667
 
668
  /*
669
   * Loop through the available languages/encodings, and pick the one
670
   * with the highest score, excluding the ones with a charset the user
671
   * did not include.
672
 
673
  $curlscore=0;
674
  $curcscore=0;
675
  $curgtlang=NULL;
676
  foreach($gettextlangs as $gtlang) {
677
 
678
    $tmp1=preg_replace("/\_/","-",$gtlang);
679
    $tmp2=@preg_split("/\./",$tmp1);
680
    $allang=strtolower($tmp2[0]);
681
    $gtcs=strtoupper($tmp2[1]);
682
    $noct=@preg_split("/-/",$allang);
683
 
684
    $testvals=array(
685
         array($alscores[$allang], $acscores[$gtcs]),
686
         array($alscores[$noct[0]], $acscores[$gtcs]),
687
         array($alscores[$allang], $acscores["*"]),
688
         array($alscores[$noct[0]], $acscores["*"]),
689
         array($alscores["*"], $acscores[$gtcs]),
690
         array($alscores["*"], $acscores["*"]));
691
 
692
    $found=FALSE;
693
    foreach($testvals as $tval) {
694
      if(!$found && isset($tval[0]) && isset($tval[1])) {
695
        $arr=ezxISO936::find_match($curlscore, $curcscore, $curgtlang, $tval[0],
696
                  $tval[1], $gtlang);
697
        $curlscore=$arr[0];
698
        $curcscore=$arr[1];
699
        $curgtlang=$arr[2];
700
        $found=TRUE;
701
      }
702
    }
703
  }
704
   */
705
 
706
 
707
    }
708
}
709
?>