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}) }