Golang : Translate language with language package example
Just a simple example on how to use the language
package to do language translation. Not a google translate type of translation engine.... still need to provide exact match for each translation to work.
Putting this here for my own future reference.
Here you go!
package main
import (
//"fmt" -- replace with message package in this example
"golang.org/x/text/language"
"golang.org/x/text/language/display"
"golang.org/x/text/message"
)
func main() {
// define a direct translation from English to Dutch
message.SetString(language.Dutch, "In %v people speak %v.", "In %v spreekt men %v.")
fr := language.French
region, _ := fr.Region()
for _, tag := range []string{"en", "nl"} {
p := message.NewPrinter(language.Make(tag))
p.Printf("In %v people speak %v.", display.Region(region), display.Language(fr))
p.Println()
}
// define a direct translation from English to Chinese
message.SetString(language.Chinese, "In %v people speak %v.", "在%v说%v.") // * Must match for translation to work
zh := language.Chinese
region, _ = zh.Region()
for _, tag := range []string{"en", "zh"} {
p := message.NewPrinter(language.Make(tag))
p.Printf("In %v people speak %v.", display.Region(region), display.Language(zh)) // * Must match for translation to work
p.Println()
}
// define a direct translation from English to Malay
message.SetString(language.Malay, "In %v people speak %v.", "Orang %v berbahasa %v.")
msmy := language.Malay
region, _ = msmy.Region()
for _, tag := range []string{"en", "ms"} {
p := message.NewPrinter(language.Make(tag))
p.Printf("In %v people speak %v.", display.Region(region), display.Language(msmy))
p.Println()
}
}
Output:
In France people speak French.
In Frankrijk spreekt men Frans.
In China people speak Chinese.
在中国说中文.
In Malaysia people speak Malay.
Orang Malaysia berbahasa Melayu.
References:
https://godoc.org/golang.org/x/text/message
https://godoc.org/golang.org/x/text/language/display#Dictionary.Languages
See also : Golang : Gargish-English language translator
By Adam Ng(黃武俊)
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+11.2k Golang : Generate random elements without repetition or duplicate
+20.1k Golang : Measure http.Get() execution time
+26.9k Golang : How to check if a connection to database is still alive ?
+55.5k Golang : Unmarshal JSON from http response
+14.2k Golang : convert rune to unicode hexadecimal value and back to rune character
+7.5k Linux : How to fix Brother HL-1110 printing blank page problem
+14.3k Javascript : Prompt confirmation before exit
+8.8k Golang : Progress bar with ∎ character
+5k HTTP common errors and their meaning explained
+6.5k WARNING: UNPROTECTED PRIVATE KEY FILE! error message
+6.4k PHP : How to handle URI or URL with non-ASCII characters such as Chinese/Japanese/Korean(CJK) ?
+18.9k Unmarshal/Load CSV record into struct in Go