Container - Tag

Container - Tag — A container class for Language tag

Synopsis

char *              lt_tag_canonicalize                 (lt_tag_t *tag,
                                                         lt_error_t **error);
void                lt_tag_clear                        (lt_tag_t *tag);
lt_bool_t           lt_tag_compare                      (const lt_tag_t *v1,
                                                         const lt_tag_t *v2);
lt_tag_t *          lt_tag_convert_from_locale          (lt_error_t **error);
lt_tag_t *          lt_tag_convert_from_locale_string   (const char *locale,
                                                         lt_error_t **error);
char *              lt_tag_convert_to_locale            (lt_tag_t *tag,
                                                         lt_error_t **error);
lt_tag_t *          lt_tag_copy                         (const lt_tag_t *tag);
void                lt_tag_dump                         (const lt_tag_t *tag);
const lt_extension_t * lt_tag_get_extension             (const lt_tag_t *tag);
const lt_extlang_t * lt_tag_get_extlang                 (const lt_tag_t *tag);
const lt_grandfathered_t * lt_tag_get_grandfathered     (const lt_tag_t *tag);
const lt_lang_t *   lt_tag_get_language                 (const lt_tag_t *tag);
const lt_string_t * lt_tag_get_privateuse               (const lt_tag_t *tag);
const lt_region_t * lt_tag_get_region                   (const lt_tag_t *tag);
const lt_script_t * lt_tag_get_script                   (const lt_tag_t *tag);
const char *        lt_tag_get_string                   (lt_tag_t *tag);
const lt_list_t *   lt_tag_get_variants                 (const lt_tag_t *tag);
char *              lt_tag_lookup                       (const lt_tag_t *tag,
                                                         const char *pattern,
                                                         lt_error_t **error);
lt_bool_t           lt_tag_match                        (const lt_tag_t *v1,
                                                         const char *v2,
                                                         lt_error_t **error);
lt_tag_t *          lt_tag_new                          (void);
lt_bool_t           lt_tag_parse                        (lt_tag_t *tag,
                                                         const char *tag_string,
                                                         lt_error_t **error);
lt_bool_t           lt_tag_parse_with_extra_token       (lt_tag_t *tag,
                                                         const char *tag_string,
                                                         lt_error_t **error);
lt_tag_t *          lt_tag_ref                          (lt_tag_t *tag);
                    lt_tag_t;
char *              lt_tag_transform                    (lt_tag_t *tag,
                                                         lt_error_t **error);
lt_bool_t           lt_tag_truncate                     (lt_tag_t *tag,
                                                         lt_error_t **error);
void                lt_tag_unref                        (lt_tag_t *tag);

Description

This container class provides an interface to deal with the language tag.

Details

lt_tag_canonicalize ()

char *              lt_tag_canonicalize                 (lt_tag_t *tag,
                                                         lt_error_t **error);

Canonicalize the language tag according to various information of subtags.

tag :

a lt_tag_t.

error :

a lt_error_t or NULL. [allow-none]

Returns :

a language tag string.

lt_tag_clear ()

void                lt_tag_clear                        (lt_tag_t *tag);

(Re-)Initialize all of the subtag information stored in tag.

tag :

a lt_tag_t.

lt_tag_compare ()

lt_bool_t           lt_tag_compare                      (const lt_tag_t *v1,
                                                         const lt_tag_t *v2);

Compare if v1 and v2 is the same object or not.

v1 :

a lt_tag_t.

v2 :

a lt_tag_t.

Returns :

TRUE if it's the same, otherwise FALSE.

lt_tag_convert_from_locale ()

lt_tag_t *          lt_tag_convert_from_locale          (lt_error_t **error);

Convert current locale to the language tag.

error :

a lt_error_t. [allow-none]

Returns :

a lt_tag_t, NULL if fails. [transfer full]

lt_tag_convert_from_locale_string ()

lt_tag_t *          lt_tag_convert_from_locale_string   (const char *locale,
                                                         lt_error_t **error);

Convert locale to the language tag.

locale :

a locale string

error :

a lt_error_t or NULL. [allow-none]

Returns :

a lt_tag_t, NULL if fails. [transfer full]

lt_tag_convert_to_locale ()

char *              lt_tag_convert_to_locale            (lt_tag_t *tag,
                                                         lt_error_t **error);

Convert the language tag to the locale.

tag :

a lt_tag_t.

error :

a lt_error_t or NULL. [allow-none]

Returns :

a locale string or NULL if fails

lt_tag_copy ()

lt_tag_t *          lt_tag_copy                         (const lt_tag_t *tag);

Create a copy instance of tag.

tag :

a lt_tag_t.

Returns :

a new instance of lt_tag_t or NULL if fails. [transfer full]

lt_tag_dump ()

void                lt_tag_dump                         (const lt_tag_t *tag);

Dumps the container information to the standard output.

tag :

a lt_tag_t.

lt_tag_get_extension ()

const lt_extension_t * lt_tag_get_extension             (const lt_tag_t *tag);

Obtain a lt_extension_t instance in tag.

tag :

a lt_tag_t.

Returns :

a lt_extension_t. [transfer none]

lt_tag_get_extlang ()

const lt_extlang_t * lt_tag_get_extlang                 (const lt_tag_t *tag);

Obtain a lt_extlang_t instance in tag.

tag :

a lt_tag_t.

Returns :

a lt_extlang_t. [transfer none]

lt_tag_get_grandfathered ()

const lt_grandfathered_t * lt_tag_get_grandfathered     (const lt_tag_t *tag);

Obtain a lt_grandfathered_t instance in tag.

tag :

a lt_tag_t.

Returns :

a lt_grandfathered_t. [transfer none]

lt_tag_get_language ()

const lt_lang_t *   lt_tag_get_language                 (const lt_tag_t *tag);

Obtain a lt_lang_t instance in tag.

tag :

a lt_tag_t.

Returns :

a lt_lang_t. [transfer none]

lt_tag_get_privateuse ()

const lt_string_t * lt_tag_get_privateuse               (const lt_tag_t *tag);

Obtain a lt_string_t instance in tag.

tag :

a lt_tag_t.

Returns :

a lt_string_t. [transfer none]

lt_tag_get_region ()

const lt_region_t * lt_tag_get_region                   (const lt_tag_t *tag);

Obtain a lt_region_t instance in tag.

tag :

a lt_tag_t.

Returns :

a lt_region_t. [transfer none]

lt_tag_get_script ()

const lt_script_t * lt_tag_get_script                   (const lt_tag_t *tag);

Obtain a lt_script_t instance in tag.

tag :

a lt_tag_t.

Returns :

a lt_script_t. [transfer none]

lt_tag_get_string ()

const char *        lt_tag_get_string                   (lt_tag_t *tag);

Obtains a language tag in string.

tag :

a lt_tag_t.

Returns :

a language tag string.

lt_tag_get_variants ()

const lt_list_t *   lt_tag_get_variants                 (const lt_tag_t *tag);

Obtain a list of lt_variant_t instance in tag.

tag :

a lt_tag_t.

Returns :

a lt_list_t containing lt_variant_t. [transfer none]

lt_tag_lookup ()

char *              lt_tag_lookup                       (const lt_tag_t *tag,
                                                         const char *pattern,
                                                         lt_error_t **error);

Lookup the language tag that tag meets with pattern. Any of subtags in pattern is allowed to use the wildcard according to the syntax in RFC 4647.

tag :

a lt_tag_t.

pattern :

a language range string.

error :

a lt_error_t or NULL. [allow-none]

Returns :

a language tag string if any matches, otherwise NULL.

lt_tag_match ()

lt_bool_t           lt_tag_match                        (const lt_tag_t *v1,
                                                         const char *v2,
                                                         lt_error_t **error);

Try matching of v1 and v2. any of subtags in v2 is allowed to use the wildcard according to the syntax in RFC 4647.

v1 :

a lt_tag_t.

v2 :

a language range string.

error :

a lt_error_t or NULL. [allow-none]

Returns :

TRUE if it matches, otherwise FALSE.

lt_tag_new ()

lt_tag_t *          lt_tag_new                          (void);

Create a new instance of lt_tag_t.

Returns :

a new instance of lt_tag_t. [transfer full]

lt_tag_parse ()

lt_bool_t           lt_tag_parse                        (lt_tag_t *tag,
                                                         const char *tag_string,
                                                         lt_error_t **error);

Parse tag_string and create appropriate instances for subtags.

tag :

a lt_tag_t.

tag_string :

language tag to be parsed.

error :

a lt_error_t or NULL. [allow-none]

Returns :

TRUE if it's successfully completed, otherwise FALSE.

lt_tag_parse_with_extra_token ()

lt_bool_t           lt_tag_parse_with_extra_token       (lt_tag_t *tag,
                                                         const char *tag_string,
                                                         lt_error_t **error);

Continue to parse a language tag with tag_string. please use lt_tag_parse() at first.

tag :

a lt_tag_t.

tag_string :

a language tag to be parsed much more.

error :

a lt_error_t or NULL. [allow-none]

Returns :

TRUE if it's successfully completed, otherwise FALSE.

lt_tag_ref ()

lt_tag_t *          lt_tag_ref                          (lt_tag_t *tag);

Increases the reference count of tag.

tag :

a lt_tag_t.

Returns :

the same tag object. [transfer none]

lt_tag_t

typedef struct _lt_tag_t lt_tag_t;

All the fields in the lt_tag_t structure are private to the lt_tag_t implementation.


lt_tag_transform ()

char *              lt_tag_transform                    (lt_tag_t *tag,
                                                         lt_error_t **error);

Transform tag according to the likelySubtags database provided by CLDR.

tag :

a lt_tag_t.

error :

a lt_error_t or NULL. [allow-none]

Returns :

a string.

lt_tag_truncate ()

lt_bool_t           lt_tag_truncate                     (lt_tag_t *tag,
                                                         lt_error_t **error);

Truncate the last subtag.

tag :

a lt_tag_t.

error :

a lt_error_t. [allow-none]

Returns :

TRUE if a subtag was truncated, otherwise FALSE.

lt_tag_unref ()

void                lt_tag_unref                        (lt_tag_t *tag);

Decreases the reference count of tag. when its reference count drops to 0, the object is finalized (i.e. its memory is freed).

tag :

a lt_tag_t.