ICU 77.1 77.1

uloc.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 **********************************************************************
5 * Copyright (C) 1997-2016, International Business Machines
6 * Corporation and others. All Rights Reserved.
7 **********************************************************************
8 *
9 * File ULOC.H
10 *
11 * Modification History:
12 *
13 * Date Name Description
14 * 04/01/97 aliu Creation.
15 * 08/22/98 stephen JDK 1.2 sync.
16 * 12/08/98 rtg New C API for Locale
17 * 03/30/99 damiba overhaul
18 * 03/31/99 helena Javadoc for uloc functions.
19 * 04/15/99 Madhu Updated Javadoc
20 ********************************************************************************
21 */
22
23 #ifndef ULOC_H
24 #define ULOC_H
25
26 #include "unicode/utypes.h"
27 #include "unicode/uenum.h"
28
203 #define ULOC_CHINESE "zh"
205 #define ULOC_ENGLISH "en"
207 #define ULOC_FRENCH "fr"
209 #define ULOC_GERMAN "de"
211 #define ULOC_ITALIAN "it"
213 #define ULOC_JAPANESE "ja"
215 #define ULOC_KOREAN "ko"
217 #define ULOC_SIMPLIFIED_CHINESE "zh_CN"
219 #define ULOC_TRADITIONAL_CHINESE "zh_TW"
220
222 #define ULOC_CANADA "en_CA"
224 #define ULOC_CANADA_FRENCH "fr_CA"
226 #define ULOC_CHINA "zh_CN"
228 #define ULOC_PRC "zh_CN"
230 #define ULOC_FRANCE "fr_FR"
232 #define ULOC_GERMANY "de_DE"
234 #define ULOC_ITALY "it_IT"
236 #define ULOC_JAPAN "ja_JP"
238 #define ULOC_KOREA "ko_KR"
240 #define ULOC_TAIWAN "zh_TW"
242 #define ULOC_UK "en_GB"
244 #define ULOC_US "en_US"
245
251 #define ULOC_LANG_CAPACITY 12
252
258 #define ULOC_COUNTRY_CAPACITY 4
264 #define ULOC_FULLNAME_CAPACITY 157
265
271 #define ULOC_SCRIPT_CAPACITY 6
272
277 #define ULOC_KEYWORDS_CAPACITY 96
278
283 #define ULOC_KEYWORD_AND_VALUES_CAPACITY 100
284
289 #define ULOC_KEYWORD_SEPARATOR '@'
290
296 #define ULOC_KEYWORD_SEPARATOR_UNICODE 0x40
297
302 #define ULOC_KEYWORD_ASSIGN '='
303
309 #define ULOC_KEYWORD_ASSIGN_UNICODE 0x3D
310
315 #define ULOC_KEYWORD_ITEM_SEPARATOR ';'
316
322 #define ULOC_KEYWORD_ITEM_SEPARATOR_UNICODE 0x3B
323
338 typedef enum {
342 ULOC_ACTUAL_LOCALE = 0,
346 ULOC_VALID_LOCALE = 1,
347
348 #ifndef U_HIDE_DEPRECATED_API
352 ULOC_REQUESTED_LOCALE = 2,
353
358 ULOC_DATA_LOCALE_TYPE_LIMIT = 3
359 #endif // U_HIDE_DEPRECATED_API
360 } ULocDataLocaleType;
361
362 #ifndef U_HIDE_SYSTEM_API
374 U_CAPI const char* U_EXPORT2
375 uloc_getDefault(void);
376
394 U_CAPI void U_EXPORT2
395 uloc_setDefault(const char* localeID,
396 UErrorCode* status);
397 #endif /* U_HIDE_SYSTEM_API */
398
414 U_CAPI int32_t U_EXPORT2
415 uloc_getLanguage(const char* localeID,
416 char* language,
417 int32_t languageCapacity,
418 UErrorCode* err);
419
435 U_CAPI int32_t U_EXPORT2
436 uloc_getScript(const char* localeID,
437 char* script,
438 int32_t scriptCapacity,
439 UErrorCode* err);
440
456 U_CAPI int32_t U_EXPORT2
457 uloc_getCountry(const char* localeID,
458 char* country,
459 int32_t countryCapacity,
460 UErrorCode* err);
461
477 U_CAPI int32_t U_EXPORT2
478 uloc_getVariant(const char* localeID,
479 char* variant,
480 int32_t variantCapacity,
481 UErrorCode* err);
482
483
504 U_CAPI int32_t U_EXPORT2
505 uloc_getName(const char* localeID,
506 char* name,
507 int32_t nameCapacity,
508 UErrorCode* err);
509
527 U_CAPI int32_t U_EXPORT2
528 uloc_canonicalize(const char* localeID,
529 char* name,
530 int32_t nameCapacity,
531 UErrorCode* err);
532
540 U_CAPI const char* U_EXPORT2
541 uloc_getISO3Language(const char* localeID);
542
543
551 U_CAPI const char* U_EXPORT2
552 uloc_getISO3Country(const char* localeID);
553
565 U_CAPI uint32_t U_EXPORT2
566 uloc_getLCID(const char* localeID);
567
589 U_CAPI int32_t U_EXPORT2
590 uloc_getDisplayLanguage(const char* locale,
591 const char* displayLocale,
592 UChar* language,
593 int32_t languageCapacity,
594 UErrorCode* status);
595
618 U_CAPI int32_t U_EXPORT2
619 uloc_getDisplayScript(const char* locale,
620 const char* displayLocale,
621 UChar* script,
622 int32_t scriptCapacity,
623 UErrorCode* status);
624
650 U_CAPI int32_t U_EXPORT2
651 uloc_getDisplayCountry(const char* locale,
652 const char* displayLocale,
653 UChar* country,
654 int32_t countryCapacity,
655 UErrorCode* status);
656
657
680 U_CAPI int32_t U_EXPORT2
681 uloc_getDisplayVariant(const char* locale,
682 const char* displayLocale,
683 UChar* variant,
684 int32_t variantCapacity,
685 UErrorCode* status);
686
729 U_CAPI int32_t U_EXPORT2
730 uloc_getDisplayKeyword(const char* keyword,
731 const char* displayLocale,
732 UChar* dest,
733 int32_t destCapacity,
734 UErrorCode* status);
757 U_CAPI int32_t U_EXPORT2
758 uloc_getDisplayKeywordValue( const char* locale,
759 const char* keyword,
760 const char* displayLocale,
761 UChar* dest,
762 int32_t destCapacity,
763 UErrorCode* status);
780 U_CAPI int32_t U_EXPORT2
781 uloc_getDisplayName(const char* localeID,
782 const char* inLocaleID,
783 UChar* result,
784 int32_t maxResultSize,
785 UErrorCode* err);
786
787
804 U_CAPI const char* U_EXPORT2
805 uloc_getAvailable(int32_t n);
806
813 U_CAPI int32_t U_EXPORT2 uloc_countAvailable(void);
814
820 typedef enum ULocAvailableType {
827 ULOC_AVAILABLE_DEFAULT,
828
845 ULOC_AVAILABLE_ONLY_LEGACY_ALIASES,
846
853 ULOC_AVAILABLE_WITH_LEGACY_ALIASES,
854
855 #ifndef U_HIDE_INTERNAL_API
859 ULOC_AVAILABLE_COUNT
860 #endif /* U_HIDE_INTERNAL_API */
861 } ULocAvailableType;
862
874 U_CAPI UEnumeration* U_EXPORT2
875 uloc_openAvailableByType(ULocAvailableType type, UErrorCode* status);
876
888 U_CAPI const char* const* U_EXPORT2
889 uloc_getISOLanguages(void);
890
900 U_CAPI const char* const* U_EXPORT2
901 uloc_getISOCountries(void);
902
916 U_CAPI int32_t U_EXPORT2
917 uloc_getParent(const char* localeID,
918 char* parent,
919 int32_t parentCapacity,
920 UErrorCode* err);
921
922
923
924
947 U_CAPI int32_t U_EXPORT2
948 uloc_getBaseName(const char* localeID,
949 char* name,
950 int32_t nameCapacity,
951 UErrorCode* err);
952
962 U_CAPI UEnumeration* U_EXPORT2
963 uloc_openKeywords(const char* localeID,
964 UErrorCode* status);
965
979 U_CAPI int32_t U_EXPORT2
980 uloc_getKeywordValue(const char* localeID,
981 const char* keywordName,
982 char* buffer, int32_t bufferCapacity,
983 UErrorCode* status);
984
985
1016 U_CAPI int32_t U_EXPORT2
1017 uloc_setKeywordValue(const char* keywordName,
1018 const char* keywordValue,
1019 char* buffer, int32_t bufferCapacity,
1020 UErrorCode* status);
1021
1036 U_CAPI UBool U_EXPORT2
1037 uloc_isRightToLeft(const char *locale);
1038
1044 typedef enum {
1045 ULOC_LAYOUT_LTR = 0, /* left-to-right. */
1046 ULOC_LAYOUT_RTL = 1, /* right-to-left. */
1047 ULOC_LAYOUT_TTB = 2, /* top-to-bottom. */
1048 ULOC_LAYOUT_BTT = 3, /* bottom-to-top. */
1049 ULOC_LAYOUT_UNKNOWN
1050 } ULayoutType;
1051
1060 U_CAPI ULayoutType U_EXPORT2
1061 uloc_getCharacterOrientation(const char* localeId,
1062 UErrorCode *status);
1063
1072 U_CAPI ULayoutType U_EXPORT2
1073 uloc_getLineOrientation(const char* localeId,
1074 UErrorCode *status);
1075
1083 typedef enum {
1088 ULOC_ACCEPT_FAILED = 0,
1093 ULOC_ACCEPT_VALID = 1,
1099 ULOC_ACCEPT_FALLBACK = 2 /* */
1100 } UAcceptResult;
1101
1119 U_CAPI int32_t U_EXPORT2
1120 uloc_acceptLanguageFromHTTP(char *result, int32_t resultAvailable,
1121 UAcceptResult *outResult,
1122 const char *httpAcceptLanguage,
1123 UEnumeration* availableLocales,
1124 UErrorCode *status);
1125
1144 U_CAPI int32_t U_EXPORT2
1145 uloc_acceptLanguage(char *result, int32_t resultAvailable,
1146 UAcceptResult *outResult, const char **acceptList,
1147 int32_t acceptListCount,
1148 UEnumeration* availableLocales,
1149 UErrorCode *status);
1150
1151
1164 U_CAPI int32_t U_EXPORT2
1165 uloc_getLocaleForLCID(uint32_t hostID, char *locale, int32_t localeCapacity,
1166 UErrorCode *status);
1167
1168
1203 U_CAPI int32_t U_EXPORT2
1204 uloc_addLikelySubtags(const char* localeID,
1205 char* maximizedLocaleID,
1206 int32_t maximizedLocaleIDCapacity,
1207 UErrorCode* err);
1208
1209
1243 U_CAPI int32_t U_EXPORT2
1244 uloc_minimizeSubtags(const char* localeID,
1245 char* minimizedLocaleID,
1246 int32_t minimizedLocaleIDCapacity,
1247 UErrorCode* err);
1248
1276 U_CAPI int32_t U_EXPORT2
1277 uloc_forLanguageTag(const char* langtag,
1278 char* localeID,
1279 int32_t localeIDCapacity,
1280 int32_t* parsedLength,
1281 UErrorCode* err);
1282
1304 U_CAPI int32_t U_EXPORT2
1305 uloc_toLanguageTag(const char* localeID,
1306 char* langtag,
1307 int32_t langtagCapacity,
1308 UBool strict,
1309 UErrorCode* err);
1310
1332 U_CAPI const char* U_EXPORT2
1333 uloc_toUnicodeLocaleKey(const char* keyword);
1334
1363 U_CAPI const char* U_EXPORT2
1364 uloc_toUnicodeLocaleType(const char* keyword, const char* value);
1365
1378 U_CAPI const char* U_EXPORT2
1379 uloc_toLegacyKey(const char* keyword);
1380
1407 U_CAPI const char* U_EXPORT2
1408 uloc_toLegacyType(const char* keyword, const char* value);
1409
1410 #endif /*_ULOC*/
uenum.h
C API: String Enumeration.
UEnumeration
struct UEnumeration UEnumeration
structure representing an enumeration object instance
Definition: uenum.h:44
uloc_acceptLanguage
U_CAPI int32_t uloc_acceptLanguage(char *result, int32_t resultAvailable, UAcceptResult *outResult, const char **acceptList, int32_t acceptListCount, UEnumeration *availableLocales, UErrorCode *status)
Based on a list of available locales, determine an acceptable locale for the user.
uloc_getAvailable
U_CAPI const char * uloc_getAvailable(int32_t n)
Gets the specified locale from a list of available locales.
uloc_getDefault
U_CAPI const char * uloc_getDefault(void)
Gets ICU's default locale.
uloc_getISO3Language
U_CAPI const char * uloc_getISO3Language(const char *localeID)
Gets the ISO language code for the specified locale.
uloc_getLineOrientation
U_CAPI ULayoutType uloc_getLineOrientation(const char *localeId, UErrorCode *status)
Get the layout line orientation for the specified locale.
uloc_toLanguageTag
U_CAPI int32_t uloc_toLanguageTag(const char *localeID, char *langtag, int32_t langtagCapacity, UBool strict, UErrorCode *err)
Returns a well-formed language tag for this locale ID.
uloc_toUnicodeLocaleType
U_CAPI const char * uloc_toUnicodeLocaleType(const char *keyword, const char *value)
Converts the specified keyword value (legacy type, or BCP 47 Unicode locale extension type) to the we...
uloc_getDisplayName
U_CAPI int32_t uloc_getDisplayName(const char *localeID, const char *inLocaleID, UChar *result, int32_t maxResultSize, UErrorCode *err)
Gets the full name suitable for display for the specified locale.
UAcceptResult
UAcceptResult
Output values which uloc_acceptLanguage() writes to the 'outResult' parameter.
Definition: uloc.h:1083
ULOC_ACCEPT_VALID
@ ULOC_ACCEPT_VALID
An exact match was found.
Definition: uloc.h:1093
ULOC_ACCEPT_FALLBACK
@ ULOC_ACCEPT_FALLBACK
A fallback was found.
Definition: uloc.h:1099
ULOC_ACCEPT_FAILED
@ ULOC_ACCEPT_FAILED
No exact match was found.
Definition: uloc.h:1088
uloc_getDisplayVariant
U_CAPI int32_t uloc_getDisplayVariant(const char *locale, const char *displayLocale, UChar *variant, int32_t variantCapacity, UErrorCode *status)
Gets the variant name suitable for display for the specified locale.
uloc_getDisplayScript
U_CAPI int32_t uloc_getDisplayScript(const char *locale, const char *displayLocale, UChar *script, int32_t scriptCapacity, UErrorCode *status)
Gets the script name suitable for display for the specified locale.
uloc_getVariant
U_CAPI int32_t uloc_getVariant(const char *localeID, char *variant, int32_t variantCapacity, UErrorCode *err)
Gets the variant code for the specified locale.
uloc_getISO3Country
U_CAPI const char * uloc_getISO3Country(const char *localeID)
Gets the ISO country code for the specified locale.
uloc_getKeywordValue
U_CAPI int32_t uloc_getKeywordValue(const char *localeID, const char *keywordName, char *buffer, int32_t bufferCapacity, UErrorCode *status)
Get the value for a keyword.
uloc_toLegacyType
U_CAPI const char * uloc_toLegacyType(const char *keyword, const char *value)
Converts the specified keyword value (BCP 47 Unicode locale extension type, or legacy type or type al...
ULayoutType
ULayoutType
enums for the return value for the character and line orientation functions.
Definition: uloc.h:1044
uloc_getLanguage
U_CAPI int32_t uloc_getLanguage(const char *localeID, char *language, int32_t languageCapacity, UErrorCode *err)
Gets the language code for the specified locale.
uloc_getLCID
U_CAPI uint32_t uloc_getLCID(const char *localeID)
Gets the Win32 LCID value for the specified locale.
uloc_canonicalize
U_CAPI int32_t uloc_canonicalize(const char *localeID, char *name, int32_t nameCapacity, UErrorCode *err)
Gets the full name for the specified locale.
uloc_minimizeSubtags
U_CAPI int32_t uloc_minimizeSubtags(const char *localeID, char *minimizedLocaleID, int32_t minimizedLocaleIDCapacity, UErrorCode *err)
Minimize the subtags for a provided locale ID, per the algorithm described in the following CLDR tech...
uloc_addLikelySubtags
U_CAPI int32_t uloc_addLikelySubtags(const char *localeID, char *maximizedLocaleID, int32_t maximizedLocaleIDCapacity, UErrorCode *err)
Add the likely subtags for a provided locale ID, per the algorithm described in the following CLDR te...
uloc_openKeywords
U_CAPI UEnumeration * uloc_openKeywords(const char *localeID, UErrorCode *status)
Gets an enumeration of keywords for the specified locale.
uloc_getISOCountries
U_CAPI const char *const * uloc_getISOCountries(void)
Gets a list of all available 2-letter country codes defined in ISO 639.
uloc_acceptLanguageFromHTTP
U_CAPI int32_t uloc_acceptLanguageFromHTTP(char *result, int32_t resultAvailable, UAcceptResult *outResult, const char *httpAcceptLanguage, UEnumeration *availableLocales, UErrorCode *status)
Based on a HTTP header from a web browser and a list of available locales, determine an acceptable lo...
uloc_openAvailableByType
U_CAPI UEnumeration * uloc_openAvailableByType(ULocAvailableType type, UErrorCode *status)
Gets a list of available locales according to the type argument, allowing the user to access differen...
uloc_getScript
U_CAPI int32_t uloc_getScript(const char *localeID, char *script, int32_t scriptCapacity, UErrorCode *err)
Gets the script code for the specified locale.
uloc_getCharacterOrientation
U_CAPI ULayoutType uloc_getCharacterOrientation(const char *localeId, UErrorCode *status)
Get the layout character orientation for the specified locale.
uloc_setDefault
U_CAPI void uloc_setDefault(const char *localeID, UErrorCode *status)
Sets ICU's default locale.
uloc_getCountry
U_CAPI int32_t uloc_getCountry(const char *localeID, char *country, int32_t countryCapacity, UErrorCode *err)
Gets the country code for the specified locale.
uloc_isRightToLeft
U_CAPI UBool uloc_isRightToLeft(const char *locale)
Returns whether the locale's script is written right-to-left.
uloc_toUnicodeLocaleKey
U_CAPI const char * uloc_toUnicodeLocaleKey(const char *keyword)
Converts the specified keyword (legacy key, or BCP 47 Unicode locale extension key) to the equivalent...
uloc_getParent
U_CAPI int32_t uloc_getParent(const char *localeID, char *parent, int32_t parentCapacity, UErrorCode *err)
Truncate the locale ID string to get the parent locale ID.
uloc_getBaseName
U_CAPI int32_t uloc_getBaseName(const char *localeID, char *name, int32_t nameCapacity, UErrorCode *err)
Gets the full name for the specified locale, like uloc_getName(), but without keywords.
uloc_getName
U_CAPI int32_t uloc_getName(const char *localeID, char *name, int32_t nameCapacity, UErrorCode *err)
Gets the full name for the specified locale.
uloc_countAvailable
U_CAPI int32_t uloc_countAvailable(void)
Gets the size of the all available locale list.
uloc_forLanguageTag
U_CAPI int32_t uloc_forLanguageTag(const char *langtag, char *localeID, int32_t localeIDCapacity, int32_t *parsedLength, UErrorCode *err)
Returns a locale ID for the specified BCP47 language tag string.
uloc_getDisplayKeyword
U_CAPI int32_t uloc_getDisplayKeyword(const char *keyword, const char *displayLocale, UChar *dest, int32_t destCapacity, UErrorCode *status)
Gets the keyword name suitable for display for the specified locale.
ULocDataLocaleType
ULocDataLocaleType
Constants for *_getLocale() Allow user to select whether she wants information on requested,...
Definition: uloc.h:338
ULOC_DATA_LOCALE_TYPE_LIMIT
@ ULOC_DATA_LOCALE_TYPE_LIMIT
One more than the highest normal ULocDataLocaleType value.
Definition: uloc.h:358
ULOC_ACTUAL_LOCALE
@ ULOC_ACTUAL_LOCALE
This is locale the data actually comes from.
Definition: uloc.h:342
ULOC_VALID_LOCALE
@ ULOC_VALID_LOCALE
This is the most specific locale supported by ICU.
Definition: uloc.h:346
ULOC_REQUESTED_LOCALE
@ ULOC_REQUESTED_LOCALE
This is the requested locale.
Definition: uloc.h:352
uloc_getDisplayCountry
U_CAPI int32_t uloc_getDisplayCountry(const char *locale, const char *displayLocale, UChar *country, int32_t countryCapacity, UErrorCode *status)
Gets the country name suitable for display for the specified locale.
uloc_setKeywordValue
U_CAPI int32_t uloc_setKeywordValue(const char *keywordName, const char *keywordValue, char *buffer, int32_t bufferCapacity, UErrorCode *status)
Sets or removes the value of the specified keyword.
uloc_toLegacyKey
U_CAPI const char * uloc_toLegacyKey(const char *keyword)
Converts the specified keyword (BCP 47 Unicode locale extension key, or legacy key) to the legacy key...
uloc_getDisplayLanguage
U_CAPI int32_t uloc_getDisplayLanguage(const char *locale, const char *displayLocale, UChar *language, int32_t languageCapacity, UErrorCode *status)
Gets the language name suitable for display for the specified locale.
uloc_getLocaleForLCID
U_CAPI int32_t uloc_getLocaleForLCID(uint32_t hostID, char *locale, int32_t localeCapacity, UErrorCode *status)
Gets the ICU locale ID for the specified Win32 LCID value.
uloc_getISOLanguages
U_CAPI const char *const * uloc_getISOLanguages(void)
Gets a list of all available 2-letter language codes defined in ISO 639, plus additional 3-letter cod...
ULocAvailableType
ULocAvailableType
Types for uloc_getAvailableByType and uloc_countAvailableByType.
Definition: uloc.h:820
ULOC_AVAILABLE_ONLY_LEGACY_ALIASES
@ ULOC_AVAILABLE_ONLY_LEGACY_ALIASES
Legacy or alias locales that return data when passed to ICU APIs.
Definition: uloc.h:845
ULOC_AVAILABLE_COUNT
@ ULOC_AVAILABLE_COUNT
Definition: uloc.h:859
ULOC_AVAILABLE_WITH_LEGACY_ALIASES
@ ULOC_AVAILABLE_WITH_LEGACY_ALIASES
The union of the locales in ULOC_AVAILABLE_DEFAULT and ULOC_AVAILABLE_ONLY_LEGACY_ALIAS.
Definition: uloc.h:853
ULOC_AVAILABLE_DEFAULT
@ ULOC_AVAILABLE_DEFAULT
Locales that return data when passed to ICU APIs, but not including legacy or alias locales.
Definition: uloc.h:827
uloc_getDisplayKeywordValue
U_CAPI int32_t uloc_getDisplayKeywordValue(const char *locale, const char *keyword, const char *displayLocale, UChar *dest, int32_t destCapacity, UErrorCode *status)
Gets the value of the keyword suitable for display for the specified locale.
UBool
int8_t UBool
The ICU boolean type, a signed-byte integer.
Definition: umachine.h:247
U_CAPI
#define U_CAPI
This is used to declare a function as a public ICU C API.
Definition: umachine.h:110
UChar
char16_t UChar
The base type for UTF-16 code units and pointers.
Definition: umachine.h:378
utypes.h
Basic definitions for ICU, for both C and C++ APIs.
UErrorCode
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:430