Skip to content

Latest commit

 

History

History
118 lines (88 loc) · 3.05 KB

File metadata and controls

118 lines (88 loc) · 3.05 KB

14.5 El soporte multi-idioma

Hemos introducido en el capítulo de internacionalización y localización, hemos desarrollado una biblioteca de go-i18n, la biblioteca esta sección vamos a integrar beego marco interior, por lo que nuestro marco es compatible con la internacionalización y localización.

Integración I18n

beego variable global se establece de la siguiente manera:

Translation i18n.IL
Lang string // set the language pack, zh, en
LangPath string // set the language pack location

Función multi-idioma para inicializar:

func InitLang(){
	beego.Translation:=i18n.NewLocale()
	beego.Translation.LoadPath(beego.LangPath)
	beego.Translation.SetLocale(beego.Lang)
}

Con el fin de facilitar la más llamada directa en el paquete de idioma de la plantilla, hemos diseñado tres funciones para manejar la respuesta de múltiples idiomas:

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)
}

Utiliza el desarrollo de multi-idioma

  1. Establecer la ubicación de idiomas y paquetes de idioma, entonces inicializar los objetos i18n:

     beego.Lang = "zh"
     beego.LangPath = "views/lang"
     beego.InitLang()
  2. Paquete de Diseño Multi-language

Lo anterior se habla de cómo inicializar paquete multi lenguaje, el paquete de idioma está ahora diseñando múltiples, el paquete multi-idioma es el archivo json, como se describe en el Capítulo X, tenemos que diseñar un documento sobre LangPath siguiente ejemplo zh.json o en.json

	# zh.json

	{
	"zh": {
	    "submit": "提交",
	    "create": "创建"
	    }
	}
	
	#en.json
	
	{
	"en": {
	    "submit": "Submit",
	    "create": "Create"
	    }
	}
  1. Use el paquete de idioma

Podemos llamar al controlador para obtener la respuesta de la traducción en idioma de traducción, de la siguiente manera:

	func (this *MainController) Get() {
		this.Data["create"] = beego.Translation.Translate("create")
		this.TplNames = "index.tpl"
	}

También podemos llamar directamente a la respuesta en la función de traducción de plantilla:

	// Direct Text translation
	{{.create | Trans}}

	// Time to translate
	{{.time | TransDate}}

	// Currency translation
	{{.money | TransMoney}}

Links