Skip to content

clevergo/i18nmiddleware

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

I18N Middleware for CleverGo

Build Status Coverage Status Go.Dev reference Go Report Card Release Downloads Chat Community

$ go get -u clevergo.tech/i18nmiddleware

Usage

package main

import (
	"net/http"

	"clevergo.tech/clevergo"
	"clevergo.tech/i18nmiddleware"
	"github.com/nicksnyder/go-i18n/v2/i18n"
	"golang.org/x/text/language"
)

func main() {
	app := clevergo.New()
	bundle := i18n.NewBundle(language.English)
	bundle.ParseMessageFileBytes([]byte(`{"home": "Home"}`), "en.json")
	bundle.ParseMessageFileBytes([]byte(`{"home": "主页"}`), "zh-CN.json")
	app.Use(i18nmiddleware.New(bundle))
	app.Get("/", func(c *clevergo.Context) error {
		localizer := i18nmiddleware.Localizer(c)
		s, _, _ := localizer.LocalizeWithTag(&i18n.LocalizeConfig{
			MessageID: "home",
		})
		return c.String(http.StatusOK, s)
	})
	app.Run(":8080")
}
$ curl http://localhost:8080/
Home

$ curl http://localhost:8080/?lang=zh-CN
主页

$ curl -H "Accept-Language: zh-CN" http://localhost:8080
主页