1b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/* 2b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru********************************************************************** 327f654740f2a26ad62a5c155af9199af9e69b889claireho* Copyright (C) 1997-2010, International Business Machines 4b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* Corporation and others. All Rights Reserved. 5b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru********************************************************************** 6b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* 7b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* File URES.H (formerly CRESBUND.H) 8b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* 9b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* Modification History: 10b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* 11b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* Date Name Description 12b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* 04/01/97 aliu Creation. 13b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* 02/22/99 damiba overhaul. 14b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* 04/04/99 helena Fixed internal header inclusion. 15b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* 04/15/99 Madhu Updated Javadoc 16b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* 06/14/99 stephen Removed functions taking a filename suffix. 17b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* 07/20/99 stephen Language-independent ypedef to void* 18b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* 11/09/99 weiv Added ures_getLocale() 19b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru* 06/24/02 weiv Added support for resource sharing 20b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru****************************************************************************** 21b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru*/ 22b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 23b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#ifndef URES_H 24b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#define URES_H 25b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 26b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/utypes.h" 27b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/uloc.h" 2850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#include "unicode/localpointer.h" 29b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 30b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 31b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * \file 32b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * \brief C API: Resource Bundle 33b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 34b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <h2>C API: Resource Bundle</h2> 35b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 36b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * C API representing a collection of resource information pertaining to a given 37b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * locale. A resource bundle provides a way of accessing locale- specific information in 38b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * a data file. You create a resource bundle that manages the resources for a given 39b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * locale and then ask it for individual resources. 40b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <P> 41b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Resource bundles in ICU4C are currently defined using text files which conform to the following 42b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <a href="http://source.icu-project.org/repos/icu/icuhtml/trunk/design/bnf_rb.txt">BNF definition</a>. 43b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * More on resource bundle concepts and syntax can be found in the 44b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <a href="http://icu-project.org/userguide/ResourceManagement.html">Users Guide</a>. 45b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <P> 46b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 47b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 48b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 49b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * UResourceBundle is an opaque type for handles for resource bundles in C APIs. 50b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 51b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 52b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querustruct UResourceBundle; 53b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 54b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 55b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 56b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 57b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querutypedef struct UResourceBundle UResourceBundle; 58b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 59b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 60b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Numeric constants for types of resource items. 61b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getType 62b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 63b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 64b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Querutypedef enum { 65b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** Resource type constant for "no resource". @stable ICU 2.6 */ 66b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru URES_NONE=-1, 67b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 68b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** Resource type constant for 16-bit Unicode strings. @stable ICU 2.6 */ 69b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru URES_STRING=0, 70b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 71b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** Resource type constant for binary data. @stable ICU 2.6 */ 72b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru URES_BINARY=1, 73b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 74b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** Resource type constant for tables of key-value pairs. @stable ICU 2.6 */ 75b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru URES_TABLE=2, 76b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 77b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 78b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Resource type constant for aliases; 79b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * internally stores a string which identifies the actual resource 80b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * storing the data (can be in a different resource bundle). 81b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Resolved internally before delivering the actual resource through the API. 82b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.6 83b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 84b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru URES_ALIAS=3, 85b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 86b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 87b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Resource type constant for a single 28-bit integer, interpreted as 88b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * signed or unsigned by the ures_getInt() or ures_getUInt() function. 89b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getInt 90b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getUInt 91b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.6 92b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 93b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru URES_INT=7, 94b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 95b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** Resource type constant for arrays of resources. @stable ICU 2.6 */ 96b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru URES_ARRAY=8, 97b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 98b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** 99b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Resource type constant for vectors of 32-bit integers. 100b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getIntVector 101b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.6 102b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 103b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru URES_INT_VECTOR = 14, 104b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#ifndef U_HIDE_DEPRECATED_API 105b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** @deprecated ICU 2.6 Use the URES_ constant instead. */ 106b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru RES_NONE=URES_NONE, 107b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** @deprecated ICU 2.6 Use the URES_ constant instead. */ 108b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru RES_STRING=URES_STRING, 109b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** @deprecated ICU 2.6 Use the URES_ constant instead. */ 110b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru RES_BINARY=URES_BINARY, 111b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** @deprecated ICU 2.6 Use the URES_ constant instead. */ 112b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru RES_TABLE=URES_TABLE, 113b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** @deprecated ICU 2.6 Use the URES_ constant instead. */ 114b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru RES_ALIAS=URES_ALIAS, 115b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** @deprecated ICU 2.6 Use the URES_ constant instead. */ 116b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru RES_INT=URES_INT, 117b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** @deprecated ICU 2.6 Use the URES_ constant instead. */ 118b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru RES_ARRAY=URES_ARRAY, 119b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** @deprecated ICU 2.6 Use the URES_ constant instead. */ 120b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru RES_INT_VECTOR=URES_INT_VECTOR, 121b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru /** @deprecated ICU 2.6 Not used. */ 122b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru RES_RESERVED=15, 123b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif /* U_HIDE_DEPRECATED_API */ 124b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 125b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru URES_LIMIT = 16 126b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} UResType; 127b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 128b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/* 129b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Functions to create and destroy resource bundles. 130b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 131b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 132b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 133b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Opens a UResourceBundle, from which users can extract strings by using 134b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * their corresponding keys. 135b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Note that the caller is responsible of calling <TT>ures_close</TT> on each succesfully 136b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * opened resource bundle. 137b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param packageName The packageName and locale together point to an ICU udata object, 138b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * as defined by <code> udata_open( packageName, "res", locale, err) </code> 139b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * or equivalent. Typically, packageName will refer to a (.dat) file, or to 140b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * a package registered with udata_setAppData(). Using a full file or directory 141b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * pathname for packageName is deprecated. If NULL, ICU data will be used. 142b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param locale specifies the locale for which we want to open the resource 143b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * if NULL, the default locale will be used. If strlen(locale) == 0 144b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * root locale will be used. 145b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 146b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status fills in the outgoing error code. 147b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * The UErrorCode err parameter is used to return status information to the user. To 148b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * check whether the construction succeeded or not, you should check the value of 149b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * U_SUCCESS(err). If you wish more detailed information, you can check for 150b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * informational status results which still indicate success. U_USING_FALLBACK_WARNING 151b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * indicates that a fall back locale was used. For example, 'de_CH' was requested, 152b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * but nothing was found there, so 'de' was used. U_USING_DEFAULT_WARNING indicates that 153b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * the default locale data or root locale data was used; neither the requested locale 154b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * nor any of its fall back locales could be found. Please see the users guide for more 155b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * information on this topic. 156b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return a newly allocated resource bundle. 157b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_close 158b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 159b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 160b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE UResourceBundle* U_EXPORT2 161b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_open(const char* packageName, 162b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* locale, 163b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode* status); 164b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 165b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 166b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** This function does not care what kind of localeID is passed in. It simply opens a bundle with 167b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * that name. Fallback mechanism is disabled for the new bundle. If the requested bundle contains 168b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * an %%ALIAS directive, the results are undefined. 169b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param packageName The packageName and locale together point to an ICU udata object, 170b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * as defined by <code> udata_open( packageName, "res", locale, err) </code> 171b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * or equivalent. Typically, packageName will refer to a (.dat) file, or to 172b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * a package registered with udata_setAppData(). Using a full file or directory 173b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * pathname for packageName is deprecated. If NULL, ICU data will be used. 174b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param locale specifies the locale for which we want to open the resource 175b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * if NULL, the default locale will be used. If strlen(locale) == 0 176b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * root locale will be used. 177b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 178b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status fills in the outgoing error code. Either U_ZERO_ERROR or U_MISSING_RESOURCE_ERROR 179b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return a newly allocated resource bundle or NULL if it doesn't exist. 180b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_close 181b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 182b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 183b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE UResourceBundle* U_EXPORT2 184b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_openDirect(const char* packageName, 185b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* locale, 186b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode* status); 187b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 188b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 189b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Same as ures_open() but takes a const UChar *path. 190b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * This path will be converted to char * using the default converter, 191b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * then ures_open() is called. 192b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 193b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param packageName The packageName and locale together point to an ICU udata object, 194b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * as defined by <code> udata_open( packageName, "res", locale, err) </code> 195b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * or equivalent. Typically, packageName will refer to a (.dat) file, or to 196b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * a package registered with udata_setAppData(). Using a full file or directory 197b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * pathname for packageName is deprecated. If NULL, ICU data will be used. 198b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param locale specifies the locale for which we want to open the resource 199b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * if NULL, the default locale will be used. If strlen(locale) == 0 200b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * root locale will be used. 201b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status fills in the outgoing error code. 202b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return a newly allocated resource bundle. 203b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_open 204b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 205b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 206b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE UResourceBundle* U_EXPORT2 207b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_openU(const UChar* packageName, 208b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* locale, 209b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode* status); 210b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 211b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 212b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns the number of strings/arrays in resource bundles. 213b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Better to use ures_getSize, as this function will be deprecated. 214b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 215b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru *@param resourceBundle resource bundle containing the desired strings 216b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru *@param resourceKey key tagging the resource 217b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru *@param err fills in the outgoing error code 218b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found 219b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * could be a non-failing error 220b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_FALLBACK_WARNING </TT> 221b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru *@return: for <STRONG>Arrays</STRONG>: returns the number of resources in the array 222b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <STRONG>Tables</STRONG>: returns the number of resources in the table 223b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * <STRONG>single string</STRONG>: returns 1 224b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru *@see ures_getSize 225b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @deprecated ICU 2.8 User ures_getSize instead 226b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 227b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_DEPRECATED int32_t U_EXPORT2 228b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_countArrayItems(const UResourceBundle* resourceBundle, 229b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* resourceKey, 230b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode* err); 231b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 232b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Close a resource bundle, all pointers returned from the various ures_getXXX calls 233b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * on this particular bundle should be considered invalid henceforth. 234b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 235b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle a pointer to a resourceBundle struct. Can be NULL. 236b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_open 237b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 238b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 239b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE void U_EXPORT2 240b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_close(UResourceBundle* resourceBundle); 241b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 24250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#if U_SHOW_CPLUSPLUS_API 24350294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 24450294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoU_NAMESPACE_BEGIN 24550294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 24650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho/** 24750294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * \class LocalUResourceBundlePointer 24850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * "Smart pointer" class, closes a UResourceBundle via ures_close(). 24950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * For most methods see the LocalPointerBase base class. 25050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * 25150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @see LocalPointerBase 25250294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @see LocalPointer 25327f654740f2a26ad62a5c155af9199af9e69b889claireho * @stable ICU 4.4 25450294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho */ 25550294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoU_DEFINE_LOCAL_OPEN_POINTER(LocalUResourceBundlePointer, UResourceBundle, ures_close); 25650294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 25750294ead5e5d23f5bbfed76e00e6b510bd41eee1clairehoU_NAMESPACE_END 25850294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 25950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#endif 26050294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho 261b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 262b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Return the version number associated with this ResourceBundle as a string. Please 263b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * use ures_getVersion as this function is going to be deprecated. 264b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 265b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle The resource bundle for which the version is checked. 266b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return A version number string as specified in the resource bundle or its parent. 267b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * The caller does not own this string. 268b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getVersion 269b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @deprecated ICU 2.8 Use ures_getVersion instead. 270b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 271b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_DEPRECATED const char* U_EXPORT2 272b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getVersionNumber(const UResourceBundle* resourceBundle); 273b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 274b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 275b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Return the version number associated with this ResourceBundle as an 276b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * UVersionInfo array. 277b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 278b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resB The resource bundle for which the version is checked. 279b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param versionInfo A UVersionInfo array that is filled with the version number 280b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * as specified in the resource bundle or its parent. 281b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 282b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 283b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE void U_EXPORT2 284b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getVersion(const UResourceBundle* resB, 285b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UVersionInfo versionInfo); 286b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 287b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 288b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Return the name of the Locale associated with this ResourceBundle. This API allows 289b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * you to query for the real locale of the resource. For example, if you requested 290b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * "en_US_CALIFORNIA" and only "en_US" bundle exists, "en_US" will be returned. 291b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * For subresources, the locale where this resource comes from will be returned. 292b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If fallback has occured, getLocale will reflect this. 293b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 294b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle resource bundle in question 295b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status just for catching illegal arguments 296b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return A Locale name 297b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @deprecated ICU 2.8 Use ures_getLocaleByType instead. 298b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 299b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_DEPRECATED const char* U_EXPORT2 300b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getLocale(const UResourceBundle* resourceBundle, 301b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode* status); 302b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 303b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 304b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 305b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Return the name of the Locale associated with this ResourceBundle. 306b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * You can choose between requested, valid and real locale. 307b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 308b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle resource bundle in question 309b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param type You can choose between requested, valid and actual 310b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * locale. For description see the definition of 311b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * ULocDataLocaleType in uloc.h 312b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status just for catching illegal arguments 313b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return A Locale name 314b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.8 315b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 316b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE const char* U_EXPORT2 317b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getLocaleByType(const UResourceBundle* resourceBundle, 318b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru ULocDataLocaleType type, 319b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode* status); 320b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 321b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 322b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 323b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Same as ures_open() but uses the fill-in parameter instead of allocating 324b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * a bundle, if r!=NULL. 325b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * TODO need to revisit usefulness of this function 326b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * and usage model for fillIn parameters without knowing sizeof(UResourceBundle) 327b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param r The resourcebundle to open 328b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param packageName The packageName and locale together point to an ICU udata object, 329b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * as defined by <code> udata_open( packageName, "res", locale, err) </code> 330b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * or equivalent. Typically, packageName will refer to a (.dat) file, or to 331b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * a package registered with udata_setAppData(). Using a full file or directory 332b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * pathname for packageName is deprecated. If NULL, ICU data will be used. 333b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param localeID specifies the locale for which we want to open the resource 334b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status The error code 335b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return a newly allocated resource bundle or NULL if it doesn't exist. 336b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @internal 337b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 338b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_INTERNAL void U_EXPORT2 339b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_openFillIn(UResourceBundle *r, 340b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* packageName, 341b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* localeID, 342b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode* status); 343b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 344b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 345b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns a string from a string resource type 346b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 347b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle a string resource 348b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param len fills in the length of resulting string 349b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status fills in the outgoing error code 350b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found 351b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Always check the value of status. Don't count on returning NULL. 352b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * could be a non-failing error 353b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT> 354b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return a pointer to a zero-terminated UChar array which lives in a memory mapped/DLL file. 355b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getBinary 356b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getIntVector 357b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getInt 358b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getUInt 359b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 360b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 361b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE const UChar* U_EXPORT2 362b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getString(const UResourceBundle* resourceBundle, 363b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t* len, 364b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode* status); 365b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 366b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 367b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns a UTF-8 string from a string resource. 368b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * The UTF-8 string may be returnable directly as a pointer, or 369b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * it may need to be copied, or transformed from UTF-16 using u_strToUTF8() 370b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * or equivalent. 371b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 372b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If forceCopy==TRUE, then the string is always written to the dest buffer 373b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * and dest is returned. 374b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 375b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If forceCopy==FALSE, then the string is returned as a pointer if possible, 376b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * without needing a dest buffer (it can be NULL). If the string needs to be 377b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * copied or transformed, then it may be placed into dest at an arbitrary offset. 378b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 379b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If the string is to be written to dest, then U_BUFFER_OVERFLOW_ERROR and 380b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * U_STRING_NOT_TERMINATED_WARNING are set if appropriate, as usual. 381b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 382b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If the string is transformed from UTF-16, then a conversion error may occur 383b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * if an unpaired surrogate is encountered. If the function is successful, then 384b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * the output UTF-8 string is always well-formed. 385b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 386b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resB Resource bundle. 387b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param dest Destination buffer. Can be NULL only if capacity=*length==0. 388b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param length Input: Capacity of destination buffer. 389b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Output: Actual length of the UTF-8 string, not counting the 390b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * terminating NUL, even in case of U_BUFFER_OVERFLOW_ERROR. 391b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Can be NULL, meaning capacity=0 and the string length is not 392b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * returned to the caller. 393b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param forceCopy If TRUE, then the output string will always be written to 394b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * dest, with U_BUFFER_OVERFLOW_ERROR and 395b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * U_STRING_NOT_TERMINATED_WARNING set if appropriate. 396b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If FALSE, then the dest buffer may or may not contain a 397b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * copy of the string. dest may or may not be modified. 398b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If a copy needs to be written, then the UErrorCode parameter 399b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * indicates overflow etc. as usual. 400b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status Pointer to a standard ICU error code. Its input value must 401b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * pass the U_SUCCESS() test, or else the function returns 402b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * immediately. Check for U_FAILURE() on output or use with 403b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * function chaining. (See User Guide for details.) 404b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return The pointer to the UTF-8 string. It may be dest, or at some offset 405b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * from dest (only if !forceCopy), or in unrelated memory. 406b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Always NUL-terminated unless the string was written to dest and 407b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * length==capacity (in which case U_STRING_NOT_TERMINATED_WARNING is set). 408b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 409b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getString 410b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see u_strToUTF8 411b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 3.6 412b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 413b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE const char * U_EXPORT2 414b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getUTF8String(const UResourceBundle *resB, 415b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru char *dest, int32_t *length, 416b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UBool forceCopy, 417b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode *status); 418b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 419b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 420b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns a binary data from a binary resource. 421b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 422b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle a string resource 423b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param len fills in the length of resulting byte chunk 424b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status fills in the outgoing error code 425b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found 426b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Always check the value of status. Don't count on returning NULL. 427b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * could be a non-failing error 428b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT> 42950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @return a pointer to a chunk of unsigned bytes which live in a memory mapped/DLL file. 430b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getString 431b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getIntVector 432b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getInt 433b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getUInt 434b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 435b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 436b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE const uint8_t* U_EXPORT2 437b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getBinary(const UResourceBundle* resourceBundle, 438b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t* len, 439b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode* status); 440b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 441b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 442b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns a 32 bit integer array from a resource. 443b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 444b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle an int vector resource 445b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param len fills in the length of resulting byte chunk 446b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status fills in the outgoing error code 447b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found 448b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Always check the value of status. Don't count on returning NULL. 449b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * could be a non-failing error 450b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT> 45150294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho * @return a pointer to a chunk of integers which live in a memory mapped/DLL file. 452b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getBinary 453b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getString 454b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getInt 455b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getUInt 456b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 457b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 458b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE const int32_t* U_EXPORT2 459b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getIntVector(const UResourceBundle* resourceBundle, 460b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t* len, 461b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode* status); 462b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 463b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 464b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns an unsigned integer from a resource. 465b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * This integer is originally 28 bits. 466b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 467b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle a string resource 468b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status fills in the outgoing error code 469b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found 470b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * could be a non-failing error 471b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT> 472b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return an integer value 473b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getInt 474b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getIntVector 475b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getBinary 476b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getString 477b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 478b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 479b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE uint32_t U_EXPORT2 480b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getUInt(const UResourceBundle* resourceBundle, 481b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode *status); 482b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 483b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 484b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns a signed integer from a resource. 485b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * This integer is originally 28 bit and the sign gets propagated. 486b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 487b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle a string resource 488b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status fills in the outgoing error code 489b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found 490b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * could be a non-failing error 491b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT> 492b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return an integer value 493b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getUInt 494b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getIntVector 495b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getBinary 496b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getString 497b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 498b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 499b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE int32_t U_EXPORT2 500b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getInt(const UResourceBundle* resourceBundle, 501b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode *status); 502b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 503b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 504b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns the size of a resource. Size for scalar types is always 1, 505b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * and for vector/table types is the number of child resources. 506b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @warning Integer array is treated as a scalar type. There are no 507b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * APIs to access individual members of an integer array. It 508b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * is always returned as a whole. 509b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle a resource 510b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return number of resources in a given resource. 511b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 512b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 513b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE int32_t U_EXPORT2 514b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getSize(const UResourceBundle *resourceBundle); 515b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 516b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 517b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns the type of a resource. Available types are defined in enum UResType 518b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 519b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle a resource 520b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return type of the given resource. 521b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see UResType 522b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 523b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 524b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE UResType U_EXPORT2 525b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getType(const UResourceBundle *resourceBundle); 526b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 527b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 528b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns the key associated with a given resource. Not all the resources have a key - only 529b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * those that are members of a table. 530b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 531b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle a resource 532b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return a key associated to this resource, or NULL if it doesn't have a key 533b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 534b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 535b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE const char * U_EXPORT2 536b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getKey(const UResourceBundle *resourceBundle); 537b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 538b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/* ITERATION API 539b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru This API provides means for iterating through a resource 540b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru*/ 541b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 542b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 543b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Resets the internal context of a resource so that iteration starts from the first element. 544b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 545b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle a resource 546b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 547b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 548b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE void U_EXPORT2 549b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_resetIterator(UResourceBundle *resourceBundle); 550b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 551b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 552b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Checks whether the given resource has another element to iterate over. 553b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 554b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle a resource 555b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return TRUE if there are more elements, FALSE if there is no more elements 556b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 557b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 558b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE UBool U_EXPORT2 559b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_hasNext(const UResourceBundle *resourceBundle); 560b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 561b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 562b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns the next resource in a given resource or NULL if there are no more resources 563b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * to iterate over. Features a fill-in parameter. 564b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 565b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle a resource 566b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param fillIn if NULL a new UResourceBundle struct is allocated and must be closed by the caller. 567b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Alternatively, you can supply a struct to be filled by this function. 568b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status fills in the outgoing error code. You may still get a non NULL result even if an 569b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * error occured. Check status instead. 570b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must close it 571b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 572b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 573b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE UResourceBundle* U_EXPORT2 574b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getNextResource(UResourceBundle *resourceBundle, 575b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UResourceBundle *fillIn, 576b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode *status); 577b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 578b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 579b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns the next string in a given resource or NULL if there are no more resources 580b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * to iterate over. 581b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 582b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle a resource 583b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param len fill in length of the string 584b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param key fill in for key associated with this string. NULL if no key 585b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status fills in the outgoing error code. If an error occured, we may return NULL, but don't 586b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * count on it. Check status instead! 587b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return a pointer to a zero-terminated UChar array which lives in a memory mapped/DLL file. 588b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 589b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 590b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE const UChar* U_EXPORT2 591b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getNextString(UResourceBundle *resourceBundle, 592b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t* len, 593b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char ** key, 594b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode *status); 595b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 596b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 597b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns the resource in a given resource at the specified index. Features a fill-in parameter. 598b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 599b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle the resource bundle from which to get a sub-resource 600b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param indexR an index to the wanted resource. 601b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param fillIn if NULL a new UResourceBundle struct is allocated and must be closed by the caller. 602b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Alternatively, you can supply a struct to be filled by this function. 603b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status fills in the outgoing error code. Don't count on NULL being returned if an error has 604b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * occured. Check status instead. 605b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must close it 606b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 607b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 608b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE UResourceBundle* U_EXPORT2 609b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getByIndex(const UResourceBundle *resourceBundle, 610b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t indexR, 611b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UResourceBundle *fillIn, 612b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode *status); 613b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 614b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 615b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns the string in a given resource at the specified index. 616b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 617b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle a resource 618b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param indexS an index to the wanted string. 619b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param len fill in length of the string 620b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status fills in the outgoing error code. If an error occured, we may return NULL, but don't 621b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * count on it. Check status instead! 622b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return a pointer to a zero-terminated UChar array which lives in a memory mapped/DLL file. 623b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 624b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 625b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE const UChar* U_EXPORT2 626b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getStringByIndex(const UResourceBundle *resourceBundle, 627b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t indexS, 628b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t* len, 629b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode *status); 630b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 631b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 632b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns a UTF-8 string from a resource at the specified index. 633b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * The UTF-8 string may be returnable directly as a pointer, or 634b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * it may need to be copied, or transformed from UTF-16 using u_strToUTF8() 635b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * or equivalent. 636b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 637b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If forceCopy==TRUE, then the string is always written to the dest buffer 638b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * and dest is returned. 639b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 640b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If forceCopy==FALSE, then the string is returned as a pointer if possible, 641b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * without needing a dest buffer (it can be NULL). If the string needs to be 642b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * copied or transformed, then it may be placed into dest at an arbitrary offset. 643b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 644b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If the string is to be written to dest, then U_BUFFER_OVERFLOW_ERROR and 645b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * U_STRING_NOT_TERMINATED_WARNING are set if appropriate, as usual. 646b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 647b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If the string is transformed from UTF-16, then a conversion error may occur 648b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * if an unpaired surrogate is encountered. If the function is successful, then 649b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * the output UTF-8 string is always well-formed. 650b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 651b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resB Resource bundle. 652b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru * @param stringIndex An index to the wanted string. 653b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param dest Destination buffer. Can be NULL only if capacity=*length==0. 654b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param pLength Input: Capacity of destination buffer. 655b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Output: Actual length of the UTF-8 string, not counting the 656b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * terminating NUL, even in case of U_BUFFER_OVERFLOW_ERROR. 657b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Can be NULL, meaning capacity=0 and the string length is not 658b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * returned to the caller. 659b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param forceCopy If TRUE, then the output string will always be written to 660b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * dest, with U_BUFFER_OVERFLOW_ERROR and 661b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * U_STRING_NOT_TERMINATED_WARNING set if appropriate. 662b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If FALSE, then the dest buffer may or may not contain a 663b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * copy of the string. dest may or may not be modified. 664b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If a copy needs to be written, then the UErrorCode parameter 665b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * indicates overflow etc. as usual. 666b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status Pointer to a standard ICU error code. Its input value must 667b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * pass the U_SUCCESS() test, or else the function returns 668b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * immediately. Check for U_FAILURE() on output or use with 669b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * function chaining. (See User Guide for details.) 670b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return The pointer to the UTF-8 string. It may be dest, or at some offset 671b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * from dest (only if !forceCopy), or in unrelated memory. 672b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Always NUL-terminated unless the string was written to dest and 673b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * length==capacity (in which case U_STRING_NOT_TERMINATED_WARNING is set). 674b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 675b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getStringByIndex 676b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see u_strToUTF8 677b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 3.6 678b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 679b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE const char * U_EXPORT2 680b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getUTF8StringByIndex(const UResourceBundle *resB, 681b0ac937921a2c196d8b9da665135bf6ba01a1ccfJean-Baptiste Queru int32_t stringIndex, 682b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru char *dest, int32_t *pLength, 683b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UBool forceCopy, 684b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode *status); 685b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 686b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 687b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns a resource in a given resource that has a given key. This procedure works only with table 688b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * resources. Features a fill-in parameter. 689b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 690b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resourceBundle a resource 691b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param key a key associated with the wanted resource 692b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param fillIn if NULL a new UResourceBundle struct is allocated and must be closed by the caller. 693b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Alternatively, you can supply a struct to be filled by this function. 694b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status fills in the outgoing error code. 695b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must close it 696b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 697b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 698b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE UResourceBundle* U_EXPORT2 699b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getByKey(const UResourceBundle *resourceBundle, 700b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* key, 701b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UResourceBundle *fillIn, 702b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode *status); 703b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 704b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 705b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns a string in a given resource that has a given key. This procedure works only with table 706b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * resources. 707b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 708b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resB a resource 709b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param key a key associated with the wanted string 710b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param len fill in length of the string 711b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status fills in the outgoing error code. If an error occured, we may return NULL, but don't 712b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * count on it. Check status instead! 713b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return a pointer to a zero-terminated UChar array which lives in a memory mapped/DLL file. 714b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 715b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 716b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE const UChar* U_EXPORT2 717b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getStringByKey(const UResourceBundle *resB, 718b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* key, 719b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t* len, 720b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode *status); 721b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 722b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 723b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns a UTF-8 string from a resource and a key. 724b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * This function works only with table resources. 725b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 726b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * The UTF-8 string may be returnable directly as a pointer, or 727b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * it may need to be copied, or transformed from UTF-16 using u_strToUTF8() 728b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * or equivalent. 729b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 730b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If forceCopy==TRUE, then the string is always written to the dest buffer 731b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * and dest is returned. 732b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 733b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If forceCopy==FALSE, then the string is returned as a pointer if possible, 734b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * without needing a dest buffer (it can be NULL). If the string needs to be 735b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * copied or transformed, then it may be placed into dest at an arbitrary offset. 736b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 737b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If the string is to be written to dest, then U_BUFFER_OVERFLOW_ERROR and 738b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * U_STRING_NOT_TERMINATED_WARNING are set if appropriate, as usual. 739b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 740b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If the string is transformed from UTF-16, then a conversion error may occur 741b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * if an unpaired surrogate is encountered. If the function is successful, then 742b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * the output UTF-8 string is always well-formed. 743b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 744b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resB Resource bundle. 745b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param key A key associated with the wanted resource 746b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param dest Destination buffer. Can be NULL only if capacity=*length==0. 747b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param pLength Input: Capacity of destination buffer. 748b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Output: Actual length of the UTF-8 string, not counting the 749b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * terminating NUL, even in case of U_BUFFER_OVERFLOW_ERROR. 750b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Can be NULL, meaning capacity=0 and the string length is not 751b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * returned to the caller. 752b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param forceCopy If TRUE, then the output string will always be written to 753b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * dest, with U_BUFFER_OVERFLOW_ERROR and 754b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * U_STRING_NOT_TERMINATED_WARNING set if appropriate. 755b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If FALSE, then the dest buffer may or may not contain a 756b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * copy of the string. dest may or may not be modified. 757b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * If a copy needs to be written, then the UErrorCode parameter 758b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * indicates overflow etc. as usual. 759b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status Pointer to a standard ICU error code. Its input value must 760b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * pass the U_SUCCESS() test, or else the function returns 761b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * immediately. Check for U_FAILURE() on output or use with 762b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * function chaining. (See User Guide for details.) 763b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return The pointer to the UTF-8 string. It may be dest, or at some offset 764b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * from dest (only if !forceCopy), or in unrelated memory. 765b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Always NUL-terminated unless the string was written to dest and 766b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * length==capacity (in which case U_STRING_NOT_TERMINATED_WARNING is set). 767b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 768b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see ures_getStringByKey 769b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @see u_strToUTF8 770b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 3.6 771b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 772b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE const char * U_EXPORT2 773b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getUTF8StringByKey(const UResourceBundle *resB, 774b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char *key, 775b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru char *dest, int32_t *pLength, 776b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UBool forceCopy, 777b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode *status); 778b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 77950294ead5e5d23f5bbfed76e00e6b510bd41eee1claireho#if U_SHOW_CPLUSPLUS_API 780b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#include "unicode/unistr.h" 781b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 782b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_NAMESPACE_BEGIN 783b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 784b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * returns a string from a string resource type 785b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 786b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resB a resource 787b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status: fills in the outgoing error code 788b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * could be <TT>U_MISSING_RESOURCE_ERROR</TT> if the key is not found 789b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * could be a non-failing error 790b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * e.g.: <TT>U_USING_FALLBACK_WARNING</TT>,<TT>U_USING_DEFAULT_WARNING </TT> 791b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return a UnicodeString object. If there is an error, string is bogus 792b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 793b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 794b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruinline UnicodeString 795b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getUnicodeString(const UResourceBundle *resB, 796b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode* status) 797b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 798b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t len = 0; 799b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const UChar *r = ures_getString(resB, &len, status); 800b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return UnicodeString(TRUE, r, len); 801b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 802b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 803b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 804b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns the next string in a resource or NULL if there are no more resources 805b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * to iterate over. 806b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 807b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resB a resource 808b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param key fill in for key associated with this string 809b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status fills in the outgoing error code 810b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return an UnicodeString object. 811b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 812b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 813b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruinline UnicodeString 814b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getNextUnicodeString(UResourceBundle *resB, 815b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char ** key, 816b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode* status) 817b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 818b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t len = 0; 819b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const UChar* r = ures_getNextString(resB, &len, key, status); 820b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return UnicodeString(TRUE, r, len); 821b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 822b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 823b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 824b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns the string in a given resource at the specified index. 825b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 826b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resB a resource 827b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param index an index to the wanted string. 828b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status fills in the outgoing error code 829b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return an UnicodeString object. If there is an error, string is bogus 830b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 831b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 832b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruinline UnicodeString 833b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getUnicodeStringByIndex(const UResourceBundle *resB, 834b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t indexS, 835b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode* status) 836b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 837b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t len = 0; 838b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const UChar* r = ures_getStringByIndex(resB, indexS, &len, status); 839b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return UnicodeString(TRUE, r, len); 840b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 841b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 842b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 843b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Returns a string in a resource that has a given key. This procedure works only with table 844b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * resources. 845b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * 846b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param resB a resource 847b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param key a key associated with the wanted string 848b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status fills in the outgoing error code 849b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @return an UnicodeString object. If there is an error, string is bogus 850b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 2.0 851b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 852b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruinline UnicodeString 853b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_getUnicodeStringByKey(const UResourceBundle *resB, 854b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const char* key, 855b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru UErrorCode* status) 856b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru{ 857b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru int32_t len = 0; 858b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru const UChar* r = ures_getStringByKey(resB, key, &len, status); 859b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru return UnicodeString(TRUE, r, len); 860b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru} 861b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 862b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_NAMESPACE_END 863b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 864b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif 865b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 866b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/** 867b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * Create a string enumerator, owned by the caller, of all locales located within 868b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * the specified resource tree. 869b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param packageName name of the tree, such as (NULL) or U_ICUDATA_ALIAS or or "ICUDATA-coll" 870b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * This call is similar to uloc_getAvailable(). 871b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @param status error code 872b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru * @stable ICU 3.2 873b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru */ 874b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste QueruU_STABLE UEnumeration* U_EXPORT2 875b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queruures_openAvailableLocales(const char *packageName, UErrorCode *status); 876b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 877b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru 878b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru#endif /*_URES*/ 879b13da9df870a61b11249bf741347908dbea0edd8Jean-Baptiste Queru/*eof*/ 880