Skip to content

Instantly share code, notes, and snippets.

@fujiwara
Created October 7, 2016 14:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fujiwara/7c74bc68ce4eee13cccbd4c1cc6a3059 to your computer and use it in GitHub Desktop.
Save fujiwara/7c74bc68ce4eee13cccbd4c1cc6a3059 to your computer and use it in GitHub Desktop.
go-gettext i18n
package main
import (
"fmt"
"os"
"strconv"
"strings"
"github.com/samuel/go-gettext/gettext"
)
var domain *gettext.Domain
func main() {
var err error
domain, err = gettext.NewDomain("im", "./lang")
if err != nil {
panic(err)
}
fmt.Println(loc("logined as %1", os.Getenv("LOGNAME")))
}
func loc(msgid string, args ...string) string {
tr := domain.GetText(os.Getenv("LANG"), msgid)
for i, v := range args {
p := "%" + strconv.Itoa(i+1)
tr = strings.Replace(tr, p, v, 1)
}
return tr
}
@fujiwara
Copy link
Author

fujiwara commented Oct 7, 2016

$ LANG=ja_JP.UTF-8 go run i18n.go
fujiwara としてログインしています
$ LANG=en_US.UTF-8 go run i18n.go
logined as fujiwara

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment