gobuffalo i18n翻译器可以在动作中访问,但我如何在我的模型上访问它?它需要buffalo.Context
作为T *i18n.Translator
中的参数。
提前谢谢!
答案 0 :(得分:0)
这是一种解决方法。
1。在models.go中创建以下函数
test$`elem<-`(2, 3)
`$`(test, "elem<-")(2, 3)
在您的init()函数中添加
import "github.com/nicksnyder/go-i18n/i18n"
var Lang = "en"
func t(translationID string, args ...interface{}) string{
T, _ := i18n.Tfunc(Lang, fmt.Sprintf("locales/models.%s.yaml", Lang))
return T(translationID,args... )
}
您现在可以在模型中使用转换功能 i18n.LoadTranslationFile(fmt.Sprintf("locales/models.fr.yaml"))
i18n.LoadTranslationFile(fmt.Sprintf("locales/models.en.yaml"))
... other locale files if needed....
您可以通过简单地设置Lang变量t("translationID")