func init() { // bind app domain gettext.BindTextdomain("hello", "local", nil) gettext.Textdomain("hello") // $(LC_MESSAGES) or $(LANG) or empty fmt.Println(gettext.Gettext("Gettext in init.")) fmt.Println(gettext.PGettext("main.init", "Gettext in init.")) hi.SayHi() // Output(depends on local environment): // ? // ? // ? // ? // set simple chinese gettext.SetLocale("zh_CN") // simple chinese fmt.Println(gettext.Gettext("Gettext in init.")) fmt.Println(gettext.PGettext("main.init", "Gettext in init.")) hi.SayHi() // Output: // Init函数中的Gettext. // Init函数中的Gettext. // 来自"Hi"包的问候: 你好, 世界! // 来自"Hi"包的问候: 你好, 世界! }
// T translates a string, possibly substituting arguments into it along // the way. If len(args) is > 0, args1 is assumed to be the plural value // and plural translation is used. func T(defaultValue string, args ...int) string { if len(args) == 0 { return gettext.PGettext(defaultValue, defaultValue) } return fmt.Sprintf(gettext.PNGettext(defaultValue, defaultValue, defaultValue+".plural", args[0]), args[0]) }
func main() { // simple chinese fmt.Println(gettext.Gettext("Hello, world!")) fmt.Println(gettext.PGettext("main.main", "Hello, world!")) hi.SayHi() // Output: // 你好, 世界! // 你好, 世界! // 来自"Hi"包的问候: 你好, 世界! // 来自"Hi"包的问候: 你好, 世界! // set traditional chinese gettext.SetLocale("zh_TW") // traditional chinese func() { fmt.Println(gettext.Gettext("Gettext in func.")) fmt.Println(gettext.PGettext("main.func", "Gettext in func.")) hi.SayHi() // Output: // 閉包函數中的Gettext. // 閉包函數中的Gettext. // 來自"Hi"包的問候: 你好, 世界! // 來自"Hi"包的問候: 你好, 世界! }() fmt.Println() // translate resource gettext.SetLocale("zh_CN") fmt.Println("poems(simple chinese):") fmt.Println(string(gettext.Getdata("poems.txt"))) gettext.SetLocale("zh_TW") fmt.Println("poems(traditional chinese):") fmt.Println(string(gettext.Getdata("poems.txt"))) gettext.SetLocale("??") fmt.Println("poems(default is english):") fmt.Println(string(gettext.Getdata("poems.txt"))) // Output: ... }
func translate(input string) string { return gettext.PGettext("", input) }
func SayHi() { fmt.Println(gettext.Gettext("pkg hi: Hello, world!")) fmt.Println(gettext.PGettext("code.google.com/p/gettext-go/examples/hi.SayHi", "pkg hi: Hello, world!")) }