- Move remaining beach packages and embedded admin assets\n- Rewrite framework, example, build, and gate paths
25 lines
798 B
Go
25 lines
798 B
Go
package cabana
|
|
|
|
import (
|
|
"net/http"
|
|
)
|
|
|
|
// adminLangPrefix is the only namespace the public bundle serves (D-20).
|
|
const adminLangPrefix = "backend::lang."
|
|
|
|
// langBundle serves GET {prefix}/api/v1/lang: every backend::lang key as CLDR
|
|
// forms for the request locale, with the fallback locale's keys underneath.
|
|
// It is public (the login screen needs it) and never includes another
|
|
// namespace.
|
|
func (s *service) langBundle(w http.ResponseWriter, r *http.Request) {
|
|
tr := s.translator()
|
|
locale := schemaLocale(r.Context(), tr)
|
|
data := map[string]map[string]string{}
|
|
if tr != nil {
|
|
locale = tr.Resolved(locale, adminLangPrefix)
|
|
data = tr.Bundle(locale, adminLangPrefix)
|
|
}
|
|
w.Header().Set("Cache-Control", "no-cache")
|
|
WriteData(w, http.StatusOK, data, map[string]any{"locale": locale})
|
|
}
|