ICU 77.1  77.1
Namespaces | Typedefs | Functions
ulocbuilder.h File Reference

C API: Builder API for Locale. More...

#include "unicode/localpointer.h"
#include "unicode/ulocale.h"
#include "unicode/utypes.h"

Go to the source code of this file.

Namespaces

 icu
 File coll.h.
 

Typedefs

typedef struct ULocaleBuilder ULocaleBuilder
 C typedef for struct ULocaleBuilder. More...
 

Functions

U_CAPI ULocaleBuilderulocbld_open (void)
 ULocaleBuilder is used to build valid locale id string or IETF BCP 47 language tag from values configured by the setters. More...
 
U_CAPI void ulocbld_close (ULocaleBuilder *builder)
 Close the builder and destroy it's internal states. More...
 
U_CAPI void ulocbld_setLocale (ULocaleBuilder *builder, const char *locale, int32_t length)
 Resets the ULocaleBuilder to match the provided locale. More...
 
U_CAPI void ulocbld_adoptULocale (ULocaleBuilder *builder, ULocale *locale)
 Resets the ULocaleBuilder to match the provided ULocale. More...
 
U_CAPI void ulocbld_setLanguageTag (ULocaleBuilder *builder, const char *tag, int32_t length)
 Resets the ULocaleBuilder to match the provided IETF BCP 47 language tag. More...
 
U_CAPI void ulocbld_setLanguage (ULocaleBuilder *builder, const char *language, int32_t length)
 Sets the language. More...
 
U_CAPI void ulocbld_setScript (ULocaleBuilder *builder, const char *script, int32_t length)
 Sets the script. More...
 
U_CAPI void ulocbld_setRegion (ULocaleBuilder *builder, const char *region, int32_t length)
 Sets the region. More...
 
U_CAPI void ulocbld_setVariant (ULocaleBuilder *builder, const char *variant, int32_t length)
 Sets the variant. More...
 
U_CAPI void ulocbld_setExtension (ULocaleBuilder *builder, char key, const char *value, int32_t length)
 Sets the extension for the given key. More...
 
U_CAPI void ulocbld_setUnicodeLocaleKeyword (ULocaleBuilder *builder, const char *key, int32_t keyLength, const char *type, int32_t typeLength)
 Sets the Unicode locale keyword type for the given key. More...
 
U_CAPI void ulocbld_addUnicodeLocaleAttribute (ULocaleBuilder *builder, const char *attribute, int32_t length)
 Adds a unicode locale attribute, if not already present, otherwise has no effect. More...
 
U_CAPI void ulocbld_removeUnicodeLocaleAttribute (ULocaleBuilder *builder, const char *attribute, int32_t length)
 Removes a unicode locale attribute, if present, otherwise has no effect. More...
 
U_CAPI void ulocbld_clear (ULocaleBuilder *builder)
 Resets the builder to its initial, empty state. More...
 
U_CAPI void ulocbld_clearExtensions (ULocaleBuilder *builder)
 Resets the extensions to their initial, empty state. More...
 
U_CAPI int32_t ulocbld_buildLocaleID (ULocaleBuilder *builder, char *locale, int32_t localeCapacity, UErrorCode *err)
 Build the LocaleID string from the fields set on this builder. More...
 
U_CAPI ULocaleulocbld_buildULocale (ULocaleBuilder *builder, UErrorCode *err)
 Build the ULocale object from the fields set on this builder. More...
 
U_CAPI int32_t ulocbld_buildLanguageTag (ULocaleBuilder *builder, char *language, int32_t languageCapacity, UErrorCode *err)
 Build the IETF BCP 47 language tag string from the fields set on this builder. More...
 
U_CAPI UBool ulocbld_copyErrorTo (const ULocaleBuilder *builder, UErrorCode *outErrorCode)
 Sets the UErrorCode if an error occurred while recording sets. More...
 

Detailed Description

C API: Builder API for Locale.

Definition in file ulocbuilder.h.

Typedef Documentation

◆ ULocaleBuilder

C typedef for struct ULocaleBuilder.

Stable:
ICU 74

Definition at line 1 of file ulocbuilder.h.

Function Documentation

◆ ulocbld_addUnicodeLocaleAttribute()

U_CAPI void ulocbld_addUnicodeLocaleAttribute ( ULocaleBuilder builder,
const char *  attribute,
int32_t  length 
)

Adds a unicode locale attribute, if not already present, otherwise has no effect.

The attribute must not be empty string and must be well-formed or U_ILLEGAL_ARGUMENT_ERROR will be set to status during the ulocbld_buildLocaleID() and ulocbld_buildLanguageTag() calls.

Parameters
builderthe builder
attributethe attribute, a const char * pointer (need not be terminated when the length is non-negative)
lengththe length of the attribute; if negative, then the attribute need to be null terminated,
Stable:
ICU 74

◆ ulocbld_adoptULocale()

U_CAPI void ulocbld_adoptULocale ( ULocaleBuilder builder,
ULocale locale 
)

Resets the ULocaleBuilder to match the provided ULocale.

Existing state is discarded.

The locale must be not bogus.

This method clears the internal UErrorCode.

Parameters
builderthe builder.
localethe locale, a ULocale* pointer. The builder adopts the locale after the call and the client must not delete it.
Stable:
ICU 74

◆ ulocbld_buildLanguageTag()

U_CAPI int32_t ulocbld_buildLanguageTag ( ULocaleBuilder builder,
char *  language,
int32_t  languageCapacity,
UErrorCode err 
)

Build the IETF BCP 47 language tag string from the fields set on this builder.

If any set methods or during the ulocbld_buildLanguageTag() call require memory allocation but fail U_MEMORY_ALLOCATION_ERROR will be set to status. If any of the fields set by the setters are not well-formed, the status will be set to U_ILLEGAL_ARGUMENT_ERROR. The state of the builder will not change after the ulocbld_buildLanguageTag() call and the caller is free to keep using the same builder to build more locales.

Parameters
builderthe builder
languagethe language tag
languageCapacitythe size of the language buffer to store the language tag
errthe error code
Returns
the length of the language tag in buffer
Stable:
ICU 74

◆ ulocbld_buildLocaleID()

U_CAPI int32_t ulocbld_buildLocaleID ( ULocaleBuilder builder,
char *  locale,
int32_t  localeCapacity,
UErrorCode err 
)

Build the LocaleID string from the fields set on this builder.

If any set methods or during the ulocbld_buildLocaleID() call require memory allocation but fail U_MEMORY_ALLOCATION_ERROR will be set to status. If any of the fields set by the setters are not well-formed, the status will be set to U_ILLEGAL_ARGUMENT_ERROR. The state of the builder will not change after the ulocbld_buildLocaleID() call and the caller is free to keep using the same builder to build more locales.

Parameters
builderthe builder
localethe locale id
localeCapacitythe size of the locale buffer to store the locale id
errthe error code
Returns
the length of the locale id in buffer
Stable:
ICU 74

◆ ulocbld_buildULocale()

U_CAPI ULocale* ulocbld_buildULocale ( ULocaleBuilder builder,
UErrorCode err 
)

Build the ULocale object from the fields set on this builder.

If any set methods or during the ulocbld_buildULocale() call require memory allocation but fail U_MEMORY_ALLOCATION_ERROR will be set to status. If any of the fields set by the setters are not well-formed, the status will be set to U_ILLEGAL_ARGUMENT_ERROR. The state of the builder will not change after the ulocbld_buildULocale() call and the caller is free to keep using the same builder to build more locales.

Parameters
builderthe builder.
errthe error code.
Returns
the locale, a ULocale* pointer. The created ULocale must be destroyed by calling ulocale_close.
Stable:
ICU 74

◆ ulocbld_clear()

U_CAPI void ulocbld_clear ( ULocaleBuilder builder)

Resets the builder to its initial, empty state.

This method clears the internal UErrorCode.

Parameters
builderthe builder
Stable:
ICU 74

◆ ulocbld_clearExtensions()