mirror of
https://github.com/Buriburizaem0n/nezha_domains.git
synced 2026-02-05 13:10:07 +00:00
🌐 localization [skip ci]
This commit is contained in:
@@ -3,25 +3,48 @@ package main
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/jinzhu/copier"
|
||||
"github.com/naiba/nezha/service/singleton"
|
||||
"github.com/nicksnyder/go-i18n/v2/i18n"
|
||||
"golang.org/x/text/language"
|
||||
)
|
||||
|
||||
type Cat struct {
|
||||
age int
|
||||
name string
|
||||
friends []string
|
||||
func htmlTemplateTranslateFn(id string, data interface{}, count interface{}) string {
|
||||
return singleton.Localizer.MustLocalize(&i18n.LocalizeConfig{
|
||||
MessageID: id,
|
||||
TemplateData: data,
|
||||
PluralCount: count,
|
||||
})
|
||||
}
|
||||
|
||||
func main() {
|
||||
a := Cat{7, "Wilson", []string{"Tom", "Tabata", "Willie"}}
|
||||
b := Cat{7, "Wilson", []string{"Tom", "Tabata", "Willie"}}
|
||||
c := Cat{7, "Wilson", []string{"Tom", "Tabata", "Willie"}}
|
||||
wilson := []*Cat{&a, &b, &c}
|
||||
nikita := []Cat{}
|
||||
copier.Copy(&nikita, &wilson)
|
||||
singleton.InitLocalizer()
|
||||
fmt.Println(singleton.Localizer.MustLocalize(&i18n.LocalizeConfig{
|
||||
MessageID: "nezhaMonitor",
|
||||
}))
|
||||
|
||||
nikita[0].friends = append(nikita[0].friends, "Syd")
|
||||
fmt.Println(singleton.Localizer.MustLocalize(&i18n.LocalizeConfig{
|
||||
MessageID: "nezhaMonitor",
|
||||
}))
|
||||
|
||||
fmt.Println(wilson[0])
|
||||
fmt.Println(nikita[0])
|
||||
fmt.Println("tr nezhaMonitor", htmlTemplateTranslateFn("nezhaMonitor", nil, nil))
|
||||
fmt.Println("tr nezhaMonitor", htmlTemplateTranslateFn("nezhaMonitor", nil, 2))
|
||||
fmt.Println("tr nezhaMonitor", htmlTemplateTranslateFn("nezhaMonitor", map[string]string{
|
||||
"Ext": "Plus",
|
||||
}, 2))
|
||||
|
||||
bundle := i18n.NewBundle(language.English)
|
||||
localizer := i18n.NewLocalizer(bundle, "en")
|
||||
catsMessage := &i18n.Message{
|
||||
ID: "Cats",
|
||||
One: "I have {{.PluralCount}} cat.",
|
||||
Other: "I have {{.PluralCount}} cats.",
|
||||
}
|
||||
fmt.Println(localizer.MustLocalize(&i18n.LocalizeConfig{
|
||||
DefaultMessage: catsMessage,
|
||||
PluralCount: 1,
|
||||
}))
|
||||
fmt.Println(localizer.MustLocalize(&i18n.LocalizeConfig{
|
||||
DefaultMessage: catsMessage,
|
||||
PluralCount: 2,
|
||||
}))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user