func Example() { i18n.MustLoadTranslationFile("../goi18n/testdata/expected/en-US.all.json") T, _ := i18n.Tfunc("en-US") fmt.Println(T("program_greeting")) fmt.Println(T("person_greeting", map[string]interface{}{ "Person": "Bob", })) fmt.Println(T("your_unread_email_count", 0)) fmt.Println(T("your_unread_email_count", 1)) fmt.Println(T("your_unread_email_count", 2)) fmt.Println(T("my_height_in_meters", "1.7")) fmt.Println(T("person_unread_email_count", 0, map[string]interface{}{ "Person": "Bob", })) fmt.Println(T("person_unread_email_count", 1, map[string]interface{}{ "Person": "Bob", })) fmt.Println(T("person_unread_email_count", 2, map[string]interface{}{ "Person": "Bob", })) fmt.Println(T("person_unread_email_count_timeframe", 3, map[string]interface{}{ "Person": "Bob", "Timeframe": T("d_days", 0), })) fmt.Println(T("person_unread_email_count_timeframe", 3, map[string]interface{}{ "Person": "Bob", "Timeframe": T("d_days", 1), })) fmt.Println(T("person_unread_email_count_timeframe", 3, map[string]interface{}{ "Person": "Bob", "Timeframe": T("d_days", 2), })) // Output: // Hello world // Hello Bob // You have 0 unread emails. // You have 1 unread email. // You have 2 unread emails. // I am 1.7 meters tall. // Bob has 0 unread emails. // Bob has 1 unread email. // Bob has 2 unread emails. // Bob has 3 unread emails in the past 0 days. // Bob has 3 unread emails in the past 1 day. // Bob has 3 unread emails in the past 2 days. }
// loadTranslationFiles loads the found translation files into the i18n // messaging system for use by the application func loadTranslationFiles(directory string) { // Read the directory fileInfos, err := ioutil.ReadDir(directory) if err != nil { tracelog.CompletedError(err, "localize", "loadTranslationFiles") return } // Look for JSON files for _, fileInfo := range fileInfos { if path.Ext(fileInfo.Name()) != ".json" { continue } fileName := fmt.Sprintf("%s/%s", directory, fileInfo.Name()) tracelog.Info("localize", "loadTranslationFiles", "Loading %s", fileName) i18n.MustLoadTranslationFile(fileName) } }
func Example_template() { i18n.MustLoadTranslationFile("../goi18n/testdata/expected/en-US.all.json") T, _ := i18n.Tfunc("en-US") tmpl.Funcs(map[string]interface{}{ "T": T, }) tmpl.Execute(os.Stdout, map[string]interface{}{ "Person": "Bob", "Timeframe": T("d_days", 1), }) // Output: // Hello world // Hello Bob // You have 0 unread emails. // You have 1 unread email. // You have 2 unread emails. // Bob has 0 unread emails. // Bob has 1 unread email. // Bob has 2 unread emails. }