Files
goi18n/example/example.go
2022-10-18 15:44:29 +03:00

43 lines
978 B
Go

package example
import (
"context"
"embed"
"fmt"
"golang.org/x/text/language"
"golang.org/x/text/language/display"
i18n "github.com/derfenix/goi18n"
)
//go:embed locales/**/*.json
var locales embed.FS
func Basic() {
if err := i18n.Init(locales); err != nil {
panic(err)
}
printer := i18n.GetPrinter(language.Russian)
fmt.Println(printer.Sprintf("test", "теста"))
printer = i18n.GetPrinter(language.English)
fmt.Println(printer.Sprintf("test", "beer"))
ctx := i18n.ContextWithLang(context.Background(), language.Russian)
handler(ctx)
ctx = i18n.ContextWithLang(context.Background(), language.English)
handler(ctx)
}
func handler(ctx context.Context) {
translated := i18n.Sprintf(ctx, "test plural", 2)
fmt.Println(translated)
lang := i18n.LanguageFromContext(ctx)
script, _ := lang.Script()
fmt.Println("Использован", display.Languages(language.Russian).Name(lang), "язык,", display.Scripts(language.Russian).Name(script))
}