Languages
Languages
The package includes 185+ languages with ISO 639-1 codes.
Language Properties
Each language has the following fields:
| Field | Description |
|---|---|
code | ISO 639-1 language code (e.g. "en") |
nativeName | Name in the language itself (e.g. "English") |
dialects | List of language dialects |
defaultFlagCode | Country code for a representative flag |
Each dialect has:
| Field | Description |
|---|---|
code | Dialect code |
nativeName | Native name of the dialect |
flagCode | Country 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)) // 185Dialects
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