[ja] Translate 14.5.md into japanese
This commit is contained in:
113
ja/ebook/14.5.md
Normal file
113
ja/ebook/14.5.md
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
# 14.5 多言語サポート
|
||||||
|
第10章において国際化とローカライゼーションおよびgo-i18nライブラリの開発についてご紹介しました。この節ではこのライブラリをbeegoフレームワークの中にもってくることで、我々のフレームワークにおいて国際化とローカライゼーションをサポートさせます。
|
||||||
|
|
||||||
|
## i18nの導入
|
||||||
|
beegoにおいて以下のようにグローバル変数を設定します:
|
||||||
|
|
||||||
|
Translation i18n.IL
|
||||||
|
Lang string //言語パッケージの設定、zh、en
|
||||||
|
LangPath string //言語パッケージのパスを設定
|
||||||
|
|
||||||
|
多言語関数を初期化:
|
||||||
|
|
||||||
|
func InitLang(){
|
||||||
|
beego.Translation:=i18n.NewLocale()
|
||||||
|
beego.Translation.LoadPath(beego.LangPath)
|
||||||
|
beego.Translation.SetLocale(beego.Lang)
|
||||||
|
}
|
||||||
|
|
||||||
|
テンプレートにおいて直接多言語パッケージをコールできるよう、3つの関数によって対応する多言語を設計します:
|
||||||
|
|
||||||
|
beegoTplFuncMap["Trans"] = i18n.I18nT
|
||||||
|
beegoTplFuncMap["TransDate"] = i18n.I18nTimeDate
|
||||||
|
beegoTplFuncMap["TransMoney"] = i18n.I18nMoney
|
||||||
|
|
||||||
|
func I18nT(args ...interface{}) string {
|
||||||
|
ok := false
|
||||||
|
var s string
|
||||||
|
if len(args) == 1 {
|
||||||
|
s, ok = args[0].(string)
|
||||||
|
}
|
||||||
|
if !ok {
|
||||||
|
s = fmt.Sprint(args...)
|
||||||
|
}
|
||||||
|
return beego.Translation.Translate(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
func I18nTimeDate(args ...interface{}) string {
|
||||||
|
ok := false
|
||||||
|
var s string
|
||||||
|
if len(args) == 1 {
|
||||||
|
s, ok = args[0].(string)
|
||||||
|
}
|
||||||
|
if !ok {
|
||||||
|
s = fmt.Sprint(args...)
|
||||||
|
}
|
||||||
|
return beego.Translation.Time(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
func I18nMoney(args ...interface{}) string {
|
||||||
|
ok := false
|
||||||
|
var s string
|
||||||
|
if len(args) == 1 {
|
||||||
|
s, ok = args[0].(string)
|
||||||
|
}
|
||||||
|
if !ok {
|
||||||
|
s = fmt.Sprint(args...)
|
||||||
|
}
|
||||||
|
return beego.Translation.Money(s)
|
||||||
|
}
|
||||||
|
|
||||||
|
## 多言語開発の使用
|
||||||
|
1. 言語および言語パッケージのパスを設定します。その後i18nオブジェクトを初期化します:
|
||||||
|
|
||||||
|
beego.Lang = "zh"
|
||||||
|
beego.LangPath = "views/lang"
|
||||||
|
beego.InitLang()
|
||||||
|
|
||||||
|
2. 多言語パッケージの設計
|
||||||
|
|
||||||
|
上ではどのようにして多言語パッケージを初期化するかについてご紹介しました。今から多言語パッケージを設計します。多言語パッケージはjsonファイルです。第10章でご紹介したのと同じように、設計する必要のあるファイルをLangPathの下に置きます。例えばzh.jsonまたはen.jsonといったものです。
|
||||||
|
|
||||||
|
# zh.json
|
||||||
|
|
||||||
|
{
|
||||||
|
"zh": {
|
||||||
|
"submit": "送信",
|
||||||
|
"create": "新規作成"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#en.json
|
||||||
|
|
||||||
|
{
|
||||||
|
"en": {
|
||||||
|
"submit": "Submit",
|
||||||
|
"create": "Create"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
3. 多言語パッケージを使用する
|
||||||
|
|
||||||
|
controllerの中でコンパイラをコールして対応する翻訳言語を取得することができます。以下に示します:
|
||||||
|
|
||||||
|
func (this *MainController) Get() {
|
||||||
|
this.Data["create"] = beego.Translation.Translate("create")
|
||||||
|
this.TplNames = "index.tpl"
|
||||||
|
}
|
||||||
|
|
||||||
|
テンプレートの中で直接対応する翻訳関数をコールしてもかまいません:
|
||||||
|
|
||||||
|
//直接テキスト翻訳
|
||||||
|
{{.create | Trans}}
|
||||||
|
|
||||||
|
//時間の翻訳
|
||||||
|
{{.time | TransDate}}
|
||||||
|
|
||||||
|
//通貨の翻訳
|
||||||
|
{{.money | TransMoney}}
|
||||||
|
|
||||||
|
## links
|
||||||
|
* [目次](<preface.md>)
|
||||||
|
* 前へ: [ユーザ認証](<14.4.md>)
|
||||||
|
* 次へ: [pprofのサポート](<14.6.md>)
|
||||||
Reference in New Issue
Block a user