Repository

# 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 browser header to return the correct lang.

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 ISO 2 lang

module main

import khalyomede.lang { Lang }

fn main() {
  language := Lang.from_iso_2("fr") or { Lang.en }
}

back to examples

Parse ISO 3 lang

module main

import khalyomede.lang { Lang }

fn main() {
  language := Lang.from_iso_3("ita") or { Lang.en }
}

back to examples

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 }
}

back to examples

Convert to ISO 2

module main

import khalyomede.lang { Lang }

fn main() {
  iso_2 := Lang.es.to_iso_2()

  assert iso_2 == "es"
}

back to examples

Convert to ISO 3

module main

import khalyomede.lang { Lang }

fn main() {
  iso_3 := Lang.ru.to_iso_3()

  assert iso_3 == "rus"
}

back to examples

Convert to string

module main

import khalyomede.lang { Lang }

fn main() {
  language := Lang.fr.str()

  assert language == "French"
}

back to examples

About

A 2/3 letter code compatible lang enum.

0
0
last Oct 2

Author

khalyomede