## gsttaglanguagecodes gsttaglanguagecodes — mappings for ISO-639 language codes and names |

## Synopsis

    #include <gst/tag/tag.h>

    gchar **            gst_tag_get_language_codes          (void);
    const gchar *       gst_tag_get_language_name           (const gchar *language_code);
    #define             gst_tag_get_language_code           (lang_code)
    const gchar *       gst_tag_get_language_code_iso_639_1 (const gchar *lang_code);
    const gchar *       gst_tag_get_language_code_iso_639_2B
                                                            (const gchar *lang_code);
    const gchar *       gst_tag_get_language_code_iso_639_2T
                                                            (const gchar *lang_code);

## Description

Provides helper functions to convert between the various ISO-639 language codes, and to map language codes to language names.

## Details

### gst_tag_get_language_codes ()

    gchar **            gst_tag_get_language_codes          (void);

Returns a list of known language codes (in form of two-letter ISO-639-1 codes). This is useful for UIs to build a list of available languages for tagging purposes (e.g. to tag an audio track appropriately in a video or audio editor).

Returns : | NULL-terminated string array with two-letter language codes. Free with `g_strfreev()` when no longer needed.

Since 0.10.26

### gst_tag_get_language_name ()

    const gchar *       gst_tag_get_language_name           (const gchar *language_code);

Returns the name of the language given an ISO-639 language code, such as often found in a GST_TAG_LANGUAGE tag. The name will be translated according to the current locale (if the library was built against the iso-codes package, otherwise the English name will be returned).

Language codes are case-sensitive and expected to be lower case.

`language_code` : | two or three-letter ISO-639 language code
Returns : | language name in UTF-8 format, or NULL if `language_code` could not be mapped to a language name. The returned string must not be modified and does not need to freed; it will stay valid until the application is terminated.

Since 0.10.26

### gst_tag_get_language_code()

    #define             gst_tag_get_language_code(lang_code)

Convenience macro wrapping `gst_tag_get_language_code_iso_639_1()`.

`lang_code` : | ISO-639 language code (e.g. "deu" or "ger" or "de")

Since 0.10.26

### gst_tag_get_language_code_iso_639_1 ()

    const gchar *       gst_tag_get_language_code_iso_639_1 (const gchar *lang_code);

Returns two-letter ISO-639-1 language code given a three-letter ISO-639-2 language code or two-letter ISO-639-1 language code (both are accepted for convenience).

Language codes are case-sensitive and expected to be lower case.

`lang_code` : | ISO-639 language code (e.g. "deu" or "ger" or "de")
Returns : | two-letter ISO-639-1 language code string that maps to `lang_code`, or NULL if no mapping is known. The returned string must not be modified or freed.

Since 0.10.26

### gst_tag_get_language_code_iso_639_2B ()

    const gchar *       gst_tag_get_language_code_iso_639_2B
                                                            (const gchar *lang_code);

Returns three-letter ISO-639-2 "bibliographic" language code given a two-letter ISO-639-1 language code or a three-letter ISO-639-2 language code (both are accepted for convenience).

The "bibliographic" code is derived from the English name of the language (e.g. "ger" for German instead of "de" or "deu"). In most scenarios, the "terminological" codes are prefered.

Language codes are case-sensitive and expected to be lower case.

`lang_code` : | ISO-639 language code (e.g. "deu" or "ger" or "de")
Returns : | three-letter ISO-639-2 language code string that maps to `lang_code`, or NULL if no mapping is known. The returned string must not be modified or freed.

Since 0.10.26

### gst_tag_get_language_code_iso_639_2T ()

    const gchar *       gst_tag_get_language_code_iso_639_2T
                                                            (const gchar *lang_code);

Returns three-letter ISO-639-2 "terminological" language code given a two-letter ISO-639-1 language code or a three-letter ISO-639-2 language code (both are accepted for convenience).

The "terminological" code is derived from the local name of the language (e.g. "deu" for German instead of "ger"). In most scenarios, the "terminological" codes are prefered over the "bibliographic" ones.

Language codes are case-sensitive and expected to be lower case.

`lang_code` : | ISO-639 language code (e.g. "deu" or "ger" or "de")
Returns : | three-letter ISO-639-2 language code string that maps to `lang_code`, or NULL if no mapping is known. The returned string must not be modified or freed.

Since 0.10.26

## See Also

GstTagList