Package i18n is for app Internationalization and Localization.
This package is a fork of the https://github.com/Unknwon/i18n.
It's heavly used inside the https://github.com/kataras/iris/tree/master/middleware/i18n middleware.
This package provides some additional functionality compared to the original one;
PATCH by @j-lenoch at L129:
// IsExistSimilar returns true if the language, or something similar
// exists (e.g. en-US maps to en).
// it returns the found name and whether it was able to match something.
func IsExistSimilar(lang string) (string, bool) {
_, ok := locales.store[lang]
if ok {
return lang, true
}
// remove the internationalization element from the IETF code
code := strings.Split(lang, "-")[0]
for _, lc := range locales.store {
if strings.Contains(lc.lang, code) {
return lc.lang, true
}
}
return "", false
}
A full Patch by @kataras to support multi languages, look the `localeFiles` new type
and the `GetKey, Reload` and improvement of `locales.Add` and more.