feat(10-02): backend strings, controller messages and declarative toolbar
- phrasebook ships the backend::lang admin strings (pl, en) with CLDR plural maps, loads them as namespace backend, applies pact.HasLangOverrides trees (lang/<locale>/<namespace>/<group>.yaml) after every namespace, and fails activation when a backend key cannot convert to plural forms - Translator.Forms, Bundle, Resolved and Has serve keys as CLDR form maps - Public GET /lang returns every backend::lang key for the request locale over the fallback locale, Cache-Control no-cache - config_list, config_form and config_relation accept a strict messages block; omitted keys take framework defaults, schemas serve every message as CLDR forms, and activation fails on a missing phrase key - toolbar.buttons is an ordered [create, delete] list; the Winter string form, duplicates, unknown actions and delete without showCheckboxes fail at boot, and create is dropped when the controller has no form - Form schema serves the raw Winter redirects; scaffold emits the list syntax; form and relation schema routes are typed in the admin OpenAPI
This commit is contained in:
@@ -978,6 +978,8 @@ func TestMakeAdminControllerLayout(t *testing.T) {
|
||||
for _, text := range []string{
|
||||
"modelClass: Albums",
|
||||
"list: ~/plugins/golem15/demo/models/albums/columns.yaml",
|
||||
"buttons: [create]",
|
||||
"prompt: backend::lang.list.search_prompt",
|
||||
} {
|
||||
if !bytes.Contains(listSrc, []byte(text)) {
|
||||
t.Fatalf("config_list.yaml missing %s:\n%s", text, listSrc)
|
||||
|
||||
Reference in New Issue
Block a user