如何在 Gin 的 url 中添加语言前缀?

How to add language prefix in url in Gin?

我想在 url 中添加语言前缀,例如 localhost/en/someurl 或 localhost/de/一些url。 我找到了这个解决方案:

en := r.Group("/en")
{
    en.GET("/someurl", ...)
    ...
}
de := r.Group("/de")
{
    de.GET("/someurl", ...)
    ...
}

但它需要重复所有路由器,添加新语言将需要另一次重复。我可以用 Gin 避免它吗?

使用 path parameter 怎么样?

r.Get("/:lang/someurl", ...)

然后您可以在处理程序中访问语言:

func(c *gin.Context) {
    lang := c.Param("lang")

    // ...
}