Fiberi18n
Fiber를 위한 go-i18n 지원.
참고: Go 1.18 이상이 필요합니다
Installation
이 미들웨어는 Fiber v2를 지원합니다.
go get -u github.com/gofiber/fiber/v2
go get -u github.com/gofiber/contrib/fiberi18n/v2
Signatures
New
New(config ...*fiberi18n.Config) fiber.Handler
새로운 fiberi18n 미들웨어 핸들러를 생성합니다.
Localize
Localize(ctx *fiber.Ctx, params interface{}) (string, error)
Localize는 현지화된 메시지를 반환합니다. param은 다음 중 하나의 유형입니다: messageID, *i18n.LocalizeConfig
MustLocalize
MustLocalize(ctx *fiber.Ctx, params interface{}) string
MustLocalize는 Localize와 유사하지만 오류가 발생하면 패닉이 발생합니다. param은 다음 중 하나의 유형입니다: messageID, *i18n.LocalizeConfig
Config
Next
func(c *fiber.Ctx) bool
true
를 반환할 때 이 미들웨어를 건너뛰는 함수입니다.
nil
RootPath
string
i18n 템플릿 폴더 경로입니다.
"./example/localize"
AcceptLanguages
[]language.Tag
처리할 수 있는 언어 컬렉션입니다.
[]language.Tag{language.Chinese, language.English}
FormatBundleFile
string
템플릿 파일의 유형입니다.
"yaml"
DefaultLanguage
language.Tag
기본 반환 언어 유형입니다.
language.English
Loader
Loader
Loader 인터페이스의 구현으로, 파일을 읽는 방법을 정의합니다. os.ReadFile과 embed.FS.ReadFile 둘 다 제공합니다.
LoaderFunc(os.ReadFile)
UnmarshalFunc
i18n.UnmarshalFunc
템플릿 파일 디코딩에 사용되는 함수입니다.
yaml.Unmarshal
LangHandler
func(ctx *fiber.Ctx, defaultLang string) string
*fiber.Ctx와 defaultLang에서 처리하는 언어의 종류를 가져오는 데 사용됩니다.
요청 헤더 Accept-Language
또는 쿼리 매개변수 lang
에서 검색됩니다.
Examples
package main
import (
"log"
"github.com/gofiber/contrib/fiberi18n/v2"
"github.com/gofiber/fiber/v2"
"github.com/nicksnyder/go-i18n/v2/i18n"
"golang.org/x/text/language"
)
func main() {
app := fiber.New()
app.Use(
fiberi18n.New(&fiberi18n.Config{
RootPath: "./example/localize",
AcceptLanguages: []language.Tag{language.Chinese, language.English},
DefaultLanguage: language.Chinese,
}),
)
app.Get("/", func(c *fiber.Ctx) error {
localize, err := fiberi18n.Localize(c, "welcome")
if err != nil {
return c.Status(fiber.StatusInternalServerError).SendString(err.Error())
}
return c.SendString(localize)
})
app.Get("/:name", func(ctx *fiber.Ctx) error {
return ctx.SendString(fiberi18n.MustLocalize(ctx, &i18n.LocalizeConfig{
MessageID: "welcomeWithName",
TemplateData: map[string]string{
"name": ctx.Params("name"),
},
}))
})
log.Fatal(app.Listen(":3000"))
}
Last updated