1b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/*
2b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru**********************************************************************
350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho*   Copyright (C) 2004-2010, International Business Machines
4b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru*   Corporation and others.  All Rights Reserved.
5b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru**********************************************************************
6b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru*/
7b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
8b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#ifndef ULOCIMP_H
9b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#define ULOCIMP_H
10b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
11b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/uloc.h"
12b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
13b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/**
14b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Create an iterator over the specified keywords list
15b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param keywordList double-null terminated list. Will be copied.
16b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param keywordListSize size in bytes of keywordList
17b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status err code
18b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return enumeration (owned by caller) of the keyword list.
19b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal ICU 3.0
20b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */
21b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_CAPI UEnumeration* U_EXPORT2
22b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruuloc_openKeywordList(const char *keywordList, int32_t keywordListSize, UErrorCode* status);
23b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru
2450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/**
2550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * Look up a resource bundle table item with fallback on the table level.
2650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * This is accessible so it can be called by C++ code.
2750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */
2850294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoU_CAPI const UChar * U_EXPORT2
2950294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehouloc_getTableStringWithFallback(
3050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    const char *path,
3150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    const char *locale,
3250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    const char *tableKey,
3350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    const char *subTableKey,
3450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    const char *itemKey,
3550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    int32_t *pLength,
3650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho    UErrorCode *pErrorCode);
3750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
3850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/*returns TRUE if a is an ID separator FALSE otherwise*/
3950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#define _isIDSeparator(a) (a == '_' || a == '-')
4050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
4150294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoU_CFUNC const char*
4250294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehouloc_getCurrentCountryID(const char* oldID);
4350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
4450294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoU_CFUNC const char*
4550294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehouloc_getCurrentLanguageID(const char* oldID);
4650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
4750294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoU_CFUNC int32_t
4850294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoulocimp_getLanguage(const char *localeID,
4950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                    char *language, int32_t languageCapacity,
5050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                    const char **pEnd);
5150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
5250294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoU_CFUNC int32_t
5350294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoulocimp_getScript(const char *localeID,
5450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                   char *script, int32_t scriptCapacity,
5550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                   const char **pEnd);
5650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
5750294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoU_CFUNC int32_t
5850294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoulocimp_getCountry(const char *localeID,
5950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                   char *country, int32_t countryCapacity,
6050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho                   const char **pEnd);
6150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho
6227f654740f2a26ad62a5c155af9199af9e69b889clairehoU_CAPI const char * U_EXPORT2
6327f654740f2a26ad62a5c155af9199af9e69b889claireholocale_getKeywordsStart(const char *localeID);
6427f654740f2a26ad62a5c155af9199af9e69b889claireho
65b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif
66