История коммитов

.
fix(consent): make the title field a textarea and fix the checkbox markup
The title accepts HTML and long texts, so a single-line input was too cramped. Also switches the consent checkboxes to the Bootstrap 5 form-check classes.
.
fix(consent): clarify that the context field accepts any value
The hint told the admin to pick a suggestion, which read as if the list was closed; it now says a context of another form can be typed in.
.
feat(consent): name the known consent contexts in the admin form
The context suggestions were bare codes; they now carry a translated form name, and the hint no longer lists the codes.
.
chore(i18n): regenerate the lng.php dictionaries
The generated dictionaries had drifted from their .po sources: languages translated on Crowdin were missing, and the collections module had no dictionaries at all.
.
fix(consent): suggest the contexts that forms actually use
The admin form offered 'feedback' and 'newsletter': the contacts form asks for the 'contacts' context, and no newsletter form exists.
.
feat(consent): allow HTML in the cookie banner text
The banner text is entered by an administrator and is now sanitized on output with an inline-only allowlist instead of being escaped, so it can carry links to the cookie policy. The admin form documents the supported markup.
.
fix(consent): use bootstrap 5 markup for the consent checkbox
The template still used the Bootstrap 4 custom-control classes, which no longer exist in the compiled CSS, so a long consent title wrapped the checkbox onto its own line.
.
refactor(consent): return a real 404 page for a missing consent
The controller rendered system::pages/result with a manual response code; it now calls the standard pageNotFound() helper, like the other modules do.
.
fix(i18n): translate the 404 page texts
pageNotFound() resolved its message through __(), which looks it up in the current translation domain - the domain of the module handling the request, where the string does not exist - so the page always fell back to English. The ERROR: 404 Not Found title never went through translation at all, being a plain default parameter value. Both strings are now taken from the system domain explicitly.
.
feat(consent): mark required consent checkboxes as required in the form
The consents.title column is created as TEXT by the module installer, so the separate update script is not needed before the release.