// Copyright 2017 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main //go:generate gotext update -out catalog.go import ( "golang.org/x/text/language" "golang.org/x/text/message" ) func main() { p := message.NewPrinter(language.English) p.Print("Hello world!\n") p.Println("Hello", "world!") person := "Sheila" place := "Zürich" p.Print("Hello ", person, " in ", place, "!\n") // Greet everyone. p.Printf("Hello world!\n") city := "Amsterdam" // Greet a city. p.Printf("Hello %s!\n", city) town := "Amsterdam" // Greet a town. p.Printf("Hello %s!\n", town, // Town ) // Person visiting a place. p.Printf("%s is visiting %s!\n", person, // The person of matter. place, // Place the person is visiting. ) pp := struct { Person string // The person of matter. // TODO: get this comment. Place string extra int }{ person, place, 4, } // extract will drop this comment in favor of the one below. // argument is added as a placeholder. p.Printf("%[1]s is visiting %[3]s!\n", // Person visiting a place. pp.Person, pp.extra, pp.Place, // Place the person is visiting. ) // Numeric literal p.Printf("%d files remaining!", 2) const n = 2 // Numeric var p.Printf("%d more files remaining!", n) // Infer better names from type names. type referralCode int const c = referralCode(5) p.Printf("Use the following code for your discount: %d\n", c) // Using a constant for a message will cause the constant name to be // added as an identifier, allowing for stable message identifiers. // Explain that a device is out of order. const msgOutOfOrder = "%s is out of order!" // FOO const device = "Soda machine" p.Printf(msgOutOfOrder, device) // Double arguments. miles := 1.2345 p.Printf("%.2[1]f miles traveled (%[1]f)", miles) }