gobuffalo i18n 翻译器可以在操作中访问,但我如何在我的模型上访问它?它需要buffalo.Context
作为参数在T *i18n.Translator
.
先感谢您!
这是一个变通解决方案。
1.在models.go中创建如下函数
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... )
}
在您的 init() 函数中添加
i18n.LoadTranslationFile(fmt.Sprintf("locales/models.fr.yaml"))
i18n.LoadTranslationFile(fmt.Sprintf("locales/models.en.yaml"))
... other locale files if needed....
在您的模型中,您现在可以使用翻译功能 t("translationID")
您可以通过简单地设置 Lang 变量来更改模型语言环境models.Lang="fr"