グローバリゼーションの発展に伴い、より多くのユーザーを引き付けるために複数の言語をサポートする必要があるアプリケーションがますます増えています。 Go 言語で国際化を使用するにはどうすればよいですか?この記事では、Go で国際化を実現するために標準ライブラリとサードパーティ ライブラリを使用する方法を紹介します。
1. 国際化を実現するための Go 標準ライブラリ
Go 標準ライブラリには、国際化を実現するためのメソッドがいくつか用意されています。
fmt.Sprintf は、書式設定テンプレートを使用して文字列を生成でき、多言語書式文字列をサポートします。複数言語環境では、%q を使用して文字列を出力し、文字列出力の形式が正しいことを確認できます。
サンプル コード:
package main import "fmt" func main() { name := "world" msg := fmt.Sprintf("Hello, %q!", name) fmt.Println(msg) }
このコードは次のように出力します: "Hello, "world"!"
package main import ( "errors" "fmt" ) func main() { err := errors.New("Something went wrong") fmt.Println(err) }
package main import ( "fmt" "time" ) func main() { loc, err := time.LoadLocation("Asia/Shanghai") if err != nil { fmt.Println(err) return } t := time.Now().In(loc) fmt.Println(t) }
package main import ( "fmt" "github.com/nicksnyder/go-i18n/i18n" "os" ) func main() { i18n.MustLoadTranslationFile("en-US.all.json") i18n.MustLoadTranslationFile("zh-CN.all.json") lang := i18n.NewLocalizer(i18n.NewBundle(language.English)) fmt.Println(lang.MustLocalize(&i18n.LocalizeConfig{MessageID: "hello-world"})) }
package main import ( "fmt" "github.com/leonelquinteros/gotext" "golang.org/x/text/language" ) func main() { pofile := "./locales/en_US/LC_MESSAGES/messages.po" catalog, err := gotext.ParsePOFile(pofile) if err != nil { fmt.Println(err) return } lang := language.Make("en-US") translatedText, err := catalog.Get(lang, "Hello World!") if err != nil { fmt.Println(err) return } fmt.Println(translatedText) }
以上がGo で国際化を使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。