GoFrame 模板高级特性
I18N 国际化支持
模板引擎支持 i18n 特性,可以通过注入特定的 i18n 语言上下文来实现不同请求/页面的多语言渲染。
示例代码
package main
import (
"context"
"fmt"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/i18n/gi18n"
)
func main() {
var (
ctxCN = gi18n.WithLanguage(context.TODO(), "zh-CN")
ctxJa = gi18n.WithLanguage(context.TODO(), "ja")
content = `{
{.name}} says "{#hello}{#world}!"`
)
result1, _ := g.View().ParseContent(ctxCN, content, g.Map{
"name": "john",
})
fmt.Println(result1)
result2, _ := g.View().ParseContent(ctxJa, content, g.Map{
"name": "john",
})
fmt.Println(result2)
}
输出结果:
john says "你好世界!"
john says "こんにちは世界!"
注意:确保运行目录中包含相应的 i18n 转译配置文件。
HTTP 对象视图
GoFrame WebServer 的响应对象提供了基础的模板解析方法:
func (r *Response) WriteTpl(tpl string, params map[string]interface