package stacks import ( "errors" "gitea.dooplex.hu/admin/felhom-controller/internal/i18n" ) // R-553 — the deploy path's refusals carry a KIND, so the API can pick its status code without // reading the customer's Hungarian sentence. The sentences themselves are unchanged (a test pins // each one byte-for-byte); `internal/util.KindErrorf` builds the message exactly as fmt.Errorf did. // // Before this, internal/api/router.go matched „kötelező", „memória", "does not exist" and // "already deployed" in the error text — so localisation slice 2 would have turned every validation // refusal into a 500. var ( // ErrAlreadyDeployed — the stack is already deployed (API: 409). ErrAlreadyDeployed = errors.New("stack already deployed") // ErrRequiredField — a required (or password) field was left empty (API: 400). ErrRequiredField = errors.New("required field empty") // ErrPathMissing — a path field names something that is not on the filesystem (API: 400). ErrPathMissing = errors.New("path field does not exist") // ErrNotEnoughMemory — the memory verdict refused the deploy (API: 400). ErrNotEnoughMemory = errors.New("not enough memory") ) // msgHU renders a bundle message in Hungarian. // // It exists for the few strings this package returns as TEXT rather than as an error — the soft // overcommit warning is the only one today. Those are display strings with no error to carry a key, // so the copy lives in the bundle (a translator sees it, and scripts/i18n_go_parity.py pins it) while // the value handed back is still Hungarian. **The consequence, stated rather than hidden: such a // string renders Hungarian on an English page.** Filed as R-575; the fix is for the caller to carry // the key the way Alert and UpdateRefusal do, not for this helper to guess a language it cannot know. func msgHU(key string, args ...interface{}) string { b, err := i18n.Shared() if err != nil { return key } if len(args) == 0 { return b.Msg(i18n.Default, key) } return b.Msgf(i18n.Default, key, args...) }