Skip to content

Commit

Permalink
More localization template examples for #1597 (comment)
Browse files Browse the repository at this point in the history
  • Loading branch information
kataras committed Sep 10, 2020
1 parent b172174 commit bfb7b19
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 3 deletions.
5 changes: 5 additions & 0 deletions _examples/i18n/i18n-template/locales/el-GR/user.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[forms]
member = μέλος
register = Γίνε {{tr "forms.member" }}
registered = εγγεγραμμένοι
registered_members = Υπάρχουν {{ concat (plural (tr "forms.member") .count) (tr "forms.registered") }}
5 changes: 5 additions & 0 deletions _examples/i18n/i18n-template/locales/en-US/user.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[forms]
member = member
register = Become a {{tr "forms.member" }}
registered = registered
registered_members = There are {{ concat (plural (tr "forms.member") .count) (tr "forms.registered") }}
20 changes: 17 additions & 3 deletions _examples/i18n/i18n-template/main.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package main

import (
"strings"
"text/template"

"github.com/kataras/iris/v12"
Expand Down Expand Up @@ -36,22 +37,35 @@ func newApp() *iris.Application {
// pluralize words based on the given language.
return pluralize.Pluralize(word, count, true)
},
"uppercase": func(word string) string {
return strings.ToUpper(word)
},
"concat": func(words ...string) string {
return strings.Join(words, " ")
},
}
}

app.I18n.Load("./locales/*/*.yml", "en-US", "el-GR")
app.I18n.Load("./locales/*/*", "en-US", "el-GR")

app.Get("/", func(ctx iris.Context) {
text := ctx.Tr("HiDogs", iris.Map{
"count": 2,
}) // prints "Hi 2 dogs".
}) // en-US: prints "Hi 2 dogs".
ctx.WriteString(text)
})

app.Get("/singular", func(ctx iris.Context) {
text := ctx.Tr("HiDogs", iris.Map{
"count": 1,
}) // prints "Hi 1 dog".
}) // en-US: prints "Hi 1 dog".
ctx.WriteString(text)
})

app.Get("/members", func(ctx iris.Context) {
text := ctx.Tr("forms.registered_members", iris.Map{
"count": 42,
}) // en-US: prints "There are 42 members registered".
ctx.WriteString(text)
})

Expand Down
2 changes: 2 additions & 0 deletions _examples/i18n/i18n-template/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ func TestI18nLoaderFuncMap(t *testing.T) {
Body().Equal("Hi 2 dogs")
e.GET("/singular").Expect().Status(httptest.StatusOK).
Body().Equal("Hi 1 dog")
e.GET("/members").Expect().Status(httptest.StatusOK).
Body().Equal("There are 42 members registered")
e.GET("/").WithHeader("Accept-Language", "el").Expect().Status(httptest.StatusOK).
Body().Equal("Γειά 2 σκυλί")
}

0 comments on commit bfb7b19

Please sign in to comment.