summaryrefslogtreecommitdiff
path: root/ext/intl/doc/locale_api.php
blob: 4633ac122797b0b8bfcf344e4ab2771b794b4fdd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
<?php

/**
 * A "Locale" is an identifier used to get language, culture, or regionally-specific
 * behavior from an API. PHP locales are organized and identified the same
 * way that the CLDR locales used by ICU (and many vendors of Unix-like operating
 * systems, the Mac, Java, and so forth) use. Locales are identified using
 * RFC 4646 language tags (which use hyphen, not underscore) in addition to the
 * more traditional underscore-using identifiers. Unless otherwise noted
 * the functions in this class are tolerant of both formats.
 *
 * Examples of identifiers include:
 *
 *  * en-US (English, United States)
 *  * zh-Hant-TW (Chinese, Traditional Script, Taiwan)
 *  * fr-CA, fr-FR (French for Canada and France respectively)
 *
 * The Locale class (and related procedural functions) are used to interact
 * with locale identifiers--to verify that an ID is well-formed, valid,
 * etc. The extensions used by CLDR in UAX #35 (and inherited by ICU) are
 * valid and used wherever they would be in ICU normally.
 *
 * Locales cannot be instantiated as objects. All of the functions/methods
 * provided are static.
 *
 *   * The null or empty string obtains the "root" locale.
 *     The "root" locale is equivalent to "en_US_POSIX" in CLDR.
 *   * Language tags (and thus locale identifiers) are case insensitive. There
 *     exists a canonicalization function to make case match the specification.
 *
 * @see http://www.icu-project.org/apiref/icu4c/uloc_8h.html
 * @see http://www.unicode.org/reports/tr35/
 *
 */
class Locale {

#############################################################################
# Common constants.
#############################################################################

   	/**
     	 * The following static members are used with the getLocale methods of
     	 * the various locale affected classes, such as numfmt.
     	 */
  	const DEFAULT_LOCALE 			= null;

   	/**
	 * identifiers for the actual locale, valid locale
 	 * WARNING:
	 * The values described here are NOT the actual values in PHP code.
	 * They are references to the ICU C definitions, so the line
	 *    const ACTUAL_LOCALE = 'ULOC_ACTUAL_LOCALE';
	 * actually means that Locale::ACTUAL_LOCALE is the same as
	 * ULOC_ACTUAL_LOCALE constant in the ICU library.
	 */
	const ACTUAL_LOCALE 			= 'ULOC_ACTUAL_LOCALE';
   	const VALID_LOCALE 			= 'ULOC_VALID_LOCALE';

	/**
	 * Valid locale tag and subtag values
	 */
	const LANG_TAG 				= "language";
	const EXTLANG_TAG 			= "extlang";
	const SCRIPT_TAG 			= "script";
	const REGION_TAG 			= "region";
	const VARIANT_TAG 			= "variant";
	const GRANDFATHERED_LANG_TAG 		= "grandfathered";
	const PRIVATE_TAG 			= "private";


#############################################################################
# Object-oriented API
#############################################################################

	/**
	 * Gets the default locale value from the INTL global 'default_locale'
	 * At the PHP initilaization (MINIT) this value is set to
	 * 'intl.default_locale' value from php.ini if that value exists
	 * or from ICU's function  uloc_getDefault()
	 * Then onwards picks up changes from setDefault() calls also
	 *
     	 * @return string the current runtime locale
     	 */
	public static function getDefault() {}

	/**
     	 * sets the default runtime locale to $locale
 	 * This changes the value of INTL global 'default_locale'
     	 *
     	 * @param 	string	 $locale 	is a BCP 47 compliant language tag containing the
     	 *					locale identifier. UAX #35 extensions are accepted.
     	 * @return	boolean 		'true' if okay, 'false' if an error
     	 */
    	public static function setDefault($locale) {}


    	/**
	 * Gets the primary language for the input locale
	 *
     	 * @param	string	$locale 	the locale to extract the primary language code from
     	 * @return 	string 			the language code associated with the language
	 *					or null in case of error.
     	 */
    	public static function getPrimaryLanguage($locale) {}


    	/**
	 * Gets the script for the input locale
	 *
     	 * @param 	string 	$locale 	the locale to extract the script code from
     	 * @return 	string 			the script subtag for the locale or null if not present
     	 */
    	public static function getScript($locale) {}


    	/**
	 * Gets the region for the input locale
	 *
     	 * @param 	string 	$locale 	the locale to extract the region code from
     	 * @return 	string 			the region subtag for the locale or null if not present
     	 */
    	public static function getRegion($locale) {}


    	/**
	 * Gets the variants for the input locale
	 *
    	 * @param 	string 	$locale 	the locale to extract the variants from
     	 * @return 	array 			the array containing the list of all variants
	 *					subtag for the locale or null if not present
     	 */
	public static function getAllVariants($locale) {}


	/**
	 * Gets the keywords for the input locale
	 *
     	 * @param 	string 	$locale 	the locale to extract the keywords from
     	 * @return 	array 			associative array containing the keyword-value pairs for this locale
     	 */
    	public static function getKeywords($locale) {}


    	/**
	 * Returns an appropriately localized display name for the input locale
	 *
    	 * @param 	string 	 	$locale 	the locale to return a displayname for
	 * @param 	[string] 	$in_locale  	optional format locale
	 * 						If is 'null' then the default locale is used.
	 * @return 	string  			display name of the locale in the format
	 * 						appropriate for $in_locale.
     	 */
    	public static function getDisplayName($locale, $in_locale = null) {}


    	/**
	 * Returns an appropriately localized display name for language of the input locale
	 *
     	 * @param 	string 	 	$locale 	the locale to return a display language for
	 * @param 	[string] 	$in_locale  	optional format locale to use to display the language name
	 * 						If is 'null' then the default locale is used.
	 * @return 	string  			display name of the language for the $locale in the format
	 * 						appropriate for $in_locale.
     	 */
	public static function getDisplayLanguage($lang, $in_locale = null) {}

    	/**
	 * Returns an appropriately localized display name for script of the input locale
	 *
    	 * @param 	string 	 	$locale 	the locale to return a display script for
	 * @param 	[string] 	$in_locale  	optional format locale to use to display the script name
	 * 						If is 'null' then the default locale is used.
	 * @return 	string  			display name of the script for the $locale in the format
	 * 						appropriate for $in_locale.
     	 */
	public static function getDisplayScript($script, $in_locale = null) {}


    	/**
	 * Returns an appropriately localized display name for region of the input locale
	 *
    	 * @param 	string 	 	$locale 	the locale to return a display region for
	 * @param 	[string] 	$in_locale  	optional format locale to use to display the region name
	 * 						If is 'null' then the default locale is used.
	 * @return 	string  			display name of the region for the $locale in the format
	 * 						appropriate for $in_locale.
     	 */
	public static function getDisplayRegion($region, $in_locale = null) {}


    	/**
	 * Returns an appropriately localized display name for variants of the input locale
	 *
    	 * @param 	string 	 	$locale 	the locale to return a display variant for
	 * @param 	[string] 	$in_locale  	optional format locale to use to display the variant name
	 * 						If is 'null' then the default locale is used.
	 * @return 	string  			display name of the variant for the $locale in the format
	 * 						appropriate for $in_locale.
     	 */
	public static function getDisplayVariant($variant, $in_locale = null) {}


    	/**
	 * Checks if a $langtag  filter matches with $locale according to
	 * RFC 4647's basic filtering algorithm
	 *
     	 * @param 	string 		$langtag	the language tag to check
	 * @param 	string 		$locale		the language range to check against
	 * @param 	bool 		$canonicalize	Canonicalize parameters?
     	 * @return 	boolean 			'true' if $locale matches $langtag 'false' otherwise
	 */
    	public static function filterMatches($langtag, $locale, $canonicalize) {}

	/**
     	 * Searchs the items in $langtag for the best match to the language
	 * range specified in $locale according to RFC 4647's lookup algorithm.
	 *
	 * @param 	array 		$langtag  	an array containing a list of language tags to compare
	 *            					to $locale
	 * @param 	string 		$locale   	the locale to use as the language range when matching
	 * @param 	string 		$default  	the locale to use if no match is found
	 * @return 	string 				closest matching language tag, $default,
	 *						or empty string
	 */
    	public static function lookup(array $langtag, $locale, $default = null) {}


	/**
     	 * Returns a correctly ordered and delimited locale ID
	 *
	 * @param 	array 		$subtags 	an array containing a list of key-value pairs, where
	 * 						the keys identify the particular locale ID subtags,
	 *						and the values are the associated subtag values.
	 *
	 * @return 	string 				the corresponding locale identifier.
	 */
    	public static function composeLocale(array $subtags) {}


	/**
	 * Returns a key-value array of locale ID subtag elements.
	 *
	 * @param 	string		$locale		the locale to extract the subtag array from
	 *
	 * @return 	array 		$subtags 	an array containing a list of key-value pairs, where
	 * 						the keys identify the particular locale ID subtags,
	 *						and the values are the associated subtag values.
	 */
    	public static function parseLocale($locale) {}

}

#############################################################################
# Procedural API
#############################################################################


	/**
	 * Gets the default locale value from the INTL global 'default_locale'
	 * At the PHP initilaization (MINIT) this value is set to
	 * 'intl.default_locale' value from php.ini if that value exists
	 * or from ICU's function  uloc_getDefault()
	 * Then onwards picks up changes from setDefault() calls also
	 *
     	 * @return string the current runtime locale
     	 */
	 function locale_get_default() {}

	/**
     	 * sets the default runtime locale to $locale
 	 * This changes the value of INTL global 'default_locale'
     	 *
     	 * @param 	string	 $locale 	is a BCP 47 compliant language tag containing the
     	 *					locale identifier. UAX #35 extensions are accepted.
     	 * @return	boolean 		'true' if okay, 'false' if an error
     	 */
    	 function locale_set_default($locale) {}


    	/**
	 * Gets the primary language for the input locale
	 *
     	 * @param	string	$locale 	the locale to extract the primary language code from
     	 * @return 	string 			the language code associated with the language
	 *					or null in case of error.
     	 */
    	 function locale_get_primary_language($locale) {}


    	/**
	 * Gets the script for the input locale
	 *
     	 * @param 	string 	$locale 	the locale to extract the script code from
     	 * @return 	string 			the script subtag for the locale or null if not present
     	 */
    	 function locale_get_script($locale) {}


    	/**
	 * Gets the region for the input locale
	 *
     	 * @param 	string 	$locale 	the locale to extract the region code from
     	 * @return 	string 			the region subtag for the locale or null if not present
     	 */
    	 function locale_get_region($locale) {}


    	/**
	 * Gets the variants for the input locale
	 *
    	 * @param 	string 	$locale 	the locale to extract the variants from
     	 * @return 	array 			the array containing the list of all variants
	 *					subtag for the locale or null if not present
     	 */
	 function locale_get_all_variants($locale) {}


	/**
	 * Gets the keywords for the input locale
	 *
     	 * @param 	string 	$locale 	the locale to extract the keywords from
     	 * @return 	array 			associative array containing the keyword-value pairs for this locale
     	 */
    	 function locale_get_keywords($locale) {}


    	/**
	 * Returns an appropriately localized display name for the input locale
	 *
    	 * @param 	string 	 	$locale 	the locale to return a displayname for
	 * @param 	[string] 	$in_locale  	optional format locale
	 * 						If is 'null' then the default locale is used.
	 * @return 	string  			display name of the locale in the format
	 * 						appropriate for $in_locale.
     	 */
    	 function locale_get_display_name($locale, $in_locale = null) {}


    	/**
	 * Returns an appropriately localized display name for language of the input locale
	 *
     	 * @param 	string 	 	$locale 	the locale to return a display language for
	 * @param 	[string] 	$in_locale  	optional format locale to use to display the language name
	 * 						If is 'null' then the default locale is used.
	 * @return 	string  			display name of the language for the $locale in the format
	 * 						appropriate for $in_locale.
     	 */
	 function locale_get_display_language($lang, $in_locale = null) {}

    	/**
	 * Returns an appropriately localized display name for script of the input locale
	 *
    	 * @param 	string 	 	$locale 	the locale to return a display script for
	 * @param 	[string] 	$in_locale  	optional format locale to use to display the script name
	 * 						If is 'null' then the default locale is used.
	 * @return 	string  			display name of the script for the $locale in the format
	 * 						appropriate for $in_locale.
     	 */
	 function locale_get_display_script($script, $in_locale = null) {}


    	/**
	 * Returns an appropriately localized display name for region of the input locale
	 *
    	 * @param 	string 	 	$locale 	the locale to return a display region for
	 * @param 	[string] 	$in_locale  	optional format locale to use to display the region name
	 * 						If is 'null' then the default locale is used.
	 * @return 	string  			display name of the region for the $locale in the format
	 * 						appropriate for $in_locale.
     	 */
	 function locale_get_display_region($region, $in_locale = null) {}


    	/**
	 * Returns an appropriately localized display name for variants of the input locale
	 *
    	 * @param 	string 	 	$locale 	the locale to return a display variant for
	 * @param 	[string] 	$in_locale  	optional format locale to use to display the variant name
	 * 						If is 'null' then the default locale is used.
	 * @return 	string  			display name of the variant for the $locale in the format
	 * 						appropriate for $in_locale.
     	 */
	 function locale_get_display_variant($variant, $in_locale = null) {}


    	/**
	 * Checks if a $langtag  filter matches with $locale according to
	 * RFC 4647's basic filtering algorithm
	 *
     	 * @param 	string 		$langtag	the language tag to check
	 * @param 	string 		$locale		the language range to check against
	 * @param 	bool 		$canonicalize	Canonicalize parameters?
     	 * @return 	boolean 			'true' if $locale matches $langtag 'false' otherwise
	 */
    	 function locale_filter_matches($langtag, $locale, $canonicalize) {}

	/**
     	 * Searchs the items in $langtag for the best match to the language
	 * range specified in $locale according to RFC 4647's lookup algorithm.
	 *
	 * @param 	array 		$langtag  	an array containing a list of language tags to compare
	 *            					to $locale
	 * @param 	string 		$locale   	the locale to use as the language range when matching
	 * @param 	string 		$default  	the locale to use if no match is found
	 * @return 	string 				closest matching language tag, $default,
	 *						or empty string
	 */
    	 function locale_lookup(array $langtag, $locale, $default = null) {}


	/**
     	 * Returns a correctly ordered and delimited locale ID
	 *
	 * @param 	array 		$subtags 	an array containing a list of key-value pairs, where
	 * 						the keys identify the particular locale ID subtags,
	 *						and the values are the associated subtag values.
	 *
	 * @return 	string 				the corresponding locale identifier.
	 */
    	 function locale_compose_locale(array $subtags) {}


	/**
	 * Returns a key-value array of locale ID subtag elements.
	 *
	 * @param 	string		$locale		the locale to extract the subtag array from
	 *
	 * @return 	array 		$subtags 	an array containing a list of key-value pairs, where
	 * 						the keys identify the particular locale ID subtags,
	 *						and the values are the associated subtag values.
	 */
    	 function locale_parse_locale($locale) {}

?>