Languages

Languages

The package includes 185+ languages with ISO 639-1 codes.

Language Properties

Each language has the following fields:

FieldDescription
codeISO 639-1 language code (e.g. "en")
nativeNameName in the language itself (e.g. "English")
dialectsList of language dialects
defaultFlagCodeCountry code for a representative flag

Each dialect has:

FieldDescription
codeDialect code
nativeNameNative name of the dialect
flagCodeCountry code for the dialect's flag

Lookup by Code

lang, ok := intl.LanguageByCode("en")
if ok {
    fmt.Println(lang.NativeName) // English
    fmt.Println(lang.Code)       // en
}

List All Languages

allLanguages := intl.AllLanguages()
fmt.Println(len(allLanguages)) // 185

Dialects

Languages can have dialects representing regional variations.

lang, ok := intl.LanguageByCode("en")
if ok {
    for _, d := range lang.Dialects {
        fmt.Printf("%s (%s)\n", d.NativeName, d.FlagCode)
    }
}

Language Flags

Languages can have a representative flag based on their default flag code.

lang, ok := intl.LanguageByCode("fr")
if ok && lang.DefaultFlagCode != "" {
    flag, flagOk := intl.GetFlag(lang.DefaultFlagCode)
    if flagOk {
        fmt.Println(len(flag)) // SVG string length
    }
}

Type-Safe Language Codes

code := intl.LanguageFR
lang := code.Language()
fmt.Println(lang.NativeName) // Fran??ais