Skip to content

iris-contrib/i18n

Repository files navigation

i18n GoDoc build status

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.

Changes

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.