# README
I18n
i18n of different languages based go-i18n.
Usage
go get -u github.com/go-cinch/common/i18n
add language files
mkdir locales
cat <<EOF > locales/en.yml
hello.world: Hello world!
EOF
cat <<EOF > locales/zh.yml
hello.world: 你好, 世界!
EOF
import (
"embed"
"fmt"
"github.com/go-cinch/common/i18n"
"golang.org/x/text/language"
)
//go:embed locales
var locales embed.FS
func main() {
i := i18n.New(
i18n.WithFormat("yml"),
// with absolute files
i18n.WithFile("locales/en.yml"),
i18n.WithFile("locales/zh.yml"),
// with go embed files
// i18n.WithFs(locales),
i18n.WithLanguage(language.Chinese),
)
// print string
fmt.Println(i.T("hello.world"))
// 你好, 世界!
// print error
fmt.Println(i.E("hello.world").Error() == "你好, 世界!")
// true
// override default language
fmt.Println(i.Select(language.English).T("hello.world"))
// Hello world!
}
Options
WithFormat
- language file format, default ymlWithLanguage
- set default language file format, default enWithFile
- set language files by file systemWithFs
- set language files by go embed file