github.com/wangyougui/gf/v2@v2.6.5/os/gview/gview_i18n.go (about) 1 // Copyright GoFrame Author(https://goframe.org). All Rights Reserved. 2 // 3 // This Source Code Form is subject to the terms of the MIT License. 4 // If a copy of the MIT was not distributed with this file, 5 // You can obtain one at https://github.com/wangyougui/gf. 6 7 package gview 8 9 import ( 10 "context" 11 12 "github.com/wangyougui/gf/v2/i18n/gi18n" 13 "github.com/wangyougui/gf/v2/util/gconv" 14 ) 15 16 const ( 17 i18nLanguageVariableName = "I18nLanguage" 18 ) 19 20 // i18nTranslate translate the content with i18n feature. 21 func (view *View) i18nTranslate(ctx context.Context, content string, variables Params) string { 22 if view.config.I18nManager != nil { 23 // Compatible with old version. 24 if language, ok := variables[i18nLanguageVariableName]; ok { 25 ctx = gi18n.WithLanguage(ctx, gconv.String(language)) 26 } 27 return view.config.I18nManager.T(ctx, content) 28 } 29 return content 30 } 31 32 // setI18nLanguageFromCtx retrieves language name from context and sets it to template variables map. 33 func (view *View) setI18nLanguageFromCtx(ctx context.Context, variables map[string]interface{}) { 34 if _, ok := variables[i18nLanguageVariableName]; !ok { 35 if language := gi18n.LanguageFromCtx(ctx); language != "" { 36 variables[i18nLanguageVariableName] = language 37 } 38 } 39 }