# Lang
A 2/3 letter code compatible lang enum.
module main
import khalyomede.lang { Lang }
fn main() {
accepted_language := Lang.from_iso_2("fr")
message := match accepted_language {
.fr { "Bonjour le monde" }
.ru { "Привет мир" }
.en { "Hello world" }
}
}
Summary
About
I want to have a finite list I can rely on when listing available languages for web apps or to parse
Accept-Language
Features
- Parses from "iso 2" (fr), "iso 3" (fra) and "locale" (fr_FR, ru-RU) formats
- Can convert to "iso 2", "iso 3", or full text (like "French")
- Fault tolerent as it allows to parse with or without spaces and lower/uppercase
Installation
Using V installer
Run this command at the root of your project:
v install khalyomede.lang
Examples
- Parse
- Convert
Parse ISO 2 lang
module main
import khalyomede.lang { Lang }
fn main() {
language := Lang.from_iso_2("fr") or { Lang.en }
}
Parse ISO 3 lang
module main
import khalyomede.lang { Lang }
fn main() {
language := Lang.from_iso_3("ita") or { Lang.en }
}
Parse lang locale
module main
import khalyomede.lang { Lang }
fn main() {
language := Lang.from_iso_3("ru_RU") or { Lang.en }
}
It also supports dash format
module main
import khalyomede.lang { Lang }
fn main() {
language := Lang.from_iso_3("fr-FR") or { Lang.en }
}
Convert to ISO 2
module main
import khalyomede.lang { Lang }
fn main() {
iso_2 := Lang.es.to_iso_2()
assert iso_2 == "es"
}
Convert to ISO 3
module main
import khalyomede.lang { Lang }
fn main() {
iso_3 := Lang.ru.to_iso_3()
assert iso_3 == "rus"
}
Convert to string
module main
import khalyomede.lang { Lang }
fn main() {
language := Lang.fr.str()
assert language == "French"
}