Home | History | Annotate | Download | only in common
      1 /*
      2 **********************************************************************
      3 *   Copyright (C) 2004-2014, International Business Machines
      4 *   Corporation and others.  All Rights Reserved.
      5 **********************************************************************
      6 */
      7 
      8 #ifndef ULOCIMP_H
      9 #define ULOCIMP_H
     10 
     11 #include "unicode/uloc.h"
     12 
     13 /**
     14  * Create an iterator over the specified keywords list
     15  * @param keywordList double-null terminated list. Will be copied.
     16  * @param keywordListSize size in bytes of keywordList
     17  * @param status err code
     18  * @return enumeration (owned by caller) of the keyword list.
     19  * @internal ICU 3.0
     20  */
     21 U_CAPI UEnumeration* U_EXPORT2
     22 uloc_openKeywordList(const char *keywordList, int32_t keywordListSize, UErrorCode* status);
     23 
     24 /**
     25  * Look up a resource bundle table item with fallback on the table level.
     26  * This is accessible so it can be called by C++ code.
     27  */
     28 U_CAPI const UChar * U_EXPORT2
     29 uloc_getTableStringWithFallback(
     30     const char *path,
     31     const char *locale,
     32     const char *tableKey,
     33     const char *subTableKey,
     34     const char *itemKey,
     35     int32_t *pLength,
     36     UErrorCode *pErrorCode);
     37 
     38 /*returns TRUE if a is an ID separator FALSE otherwise*/
     39 #define _isIDSeparator(a) (a == '_' || a == '-')
     40 
     41 U_CFUNC const char*
     42 uloc_getCurrentCountryID(const char* oldID);
     43 
     44 U_CFUNC const char*
     45 uloc_getCurrentLanguageID(const char* oldID);
     46 
     47 U_CFUNC int32_t
     48 ulocimp_getLanguage(const char *localeID,
     49                     char *language, int32_t languageCapacity,
     50                     const char **pEnd);
     51 
     52 U_CFUNC int32_t
     53 ulocimp_getScript(const char *localeID,
     54                    char *script, int32_t scriptCapacity,
     55                    const char **pEnd);
     56 
     57 U_CFUNC int32_t
     58 ulocimp_getCountry(const char *localeID,
     59                    char *country, int32_t countryCapacity,
     60                    const char **pEnd);
     61 
     62 U_CAPI const char * U_EXPORT2
     63 locale_getKeywordsStart(const char *localeID);
     64 
     65 
     66 U_CFUNC UBool
     67 ultag_isUnicodeLocaleKey(const char* s, int32_t len);
     68 
     69 U_CFUNC UBool
     70 ultag_isUnicodeLocaleType(const char* s, int32_t len);
     71 
     72 U_CFUNC const char*
     73 ulocimp_toBcpKey(const char* key);
     74 
     75 U_CFUNC const char*
     76 ulocimp_toLegacyKey(const char* key);
     77 
     78 U_CFUNC const char*
     79 ulocimp_toBcpType(const char* key, const char* type, UBool* isKnownKey, UBool* isSpecialType);
     80 
     81 U_CFUNC const char*
     82 ulocimp_toLegacyType(const char* key, const char* type, UBool* isKnownKey, UBool* isSpecialType);
     83 
     84 #endif
     85