go-vise

Constrained Size Output Virtual Machine
Info | Log | Files | Refs | README | LICENSE

lang.go (476B)


      1 package lang
      2 
      3 import (
      4 	"fmt"
      5 
      6 	"github.com/barbashov/iso639-3"
      7 )
      8 
      9 var (
     10 	Default = "eng" // ISO639-3
     11 )
     12 
     13 type Language struct {
     14 	Code string
     15 	Name string
     16 }
     17 
     18 func LanguageFromCode(code string) (Language, error) {
     19 	r := iso639_3.FromAnyCode(code)
     20 	if r == nil {
     21 		return Language{}, fmt.Errorf("invalid language code: %s", code)
     22 	}
     23 	return Language{
     24 		Code: r.Part3,
     25 		Name: r.Name,
     26 	}, nil
     27 }
     28 
     29 func(l Language) String() string {
     30 	return fmt.Sprintf("%s (%s)", l.Code, l.Name)
     31 }