1

gobuffalo i18n 翻译器可以在操作中访问,但我如何在我的模型上访问它?它需要buffalo.Context作为参数在T *i18n.Translator.

先感谢您!

4

1 回答 1

0

这是一个变通解决方案。

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"

于 2019-08-22T17:20:14.013 回答