diff --git a/CHANGELOG.md b/CHANGELOG.md
index ca5d702dd03..7a707be8326 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,30 @@
This project adheres to [Semantic Versioning].
+## [4.9.28] (2022-03-31)
+
+**Fixed issues:**
+
+- [#4427] Handle long page titles and URLs in the search table ([leofeyer])
+- [#4424] Also hover over the parent records in "paste" mode ([leofeyer])
+- [#4423] Decode the folder name when checking for circular references ([leofeyer])
+- [#4219] Make the contao:install:lock command idempotent ([richardhj])
+- [#4408] Improve insert tags speed ([ausi])
+- [#4252] Fix the trigger_error() calls ([leofeyer])
+- [#4402] Fixed nested http client options not supported ([Toflar])
+- [#4357] Fix srcToInsertTag() for URL encoded paths ([fritzmg])
+- [#4294] Rename the Controller::reset() method ([aschempp])
+- [#4331] Fix typos in the Environment class ([fritzmg])
+- [#4293] Revert 'Do not use the `.tl_confirm` CSS class in the front end' ([leofeyer])
+- [#4299] Fix invalid news content element ID ([ausi])
+- [#4263] Make the search accent insensitive ([ausi])
+- [#4256] Allow fragment reference with fake model instance ([aschempp])
+- [#4236] Also create a new version if a checkbox is auto-submitted ([leofeyer])
+- [#4373] Also clean textarea of caption for last metawizard ([aschempp])
+- [#4322] Use FQCN instead of aliased class name ([bytehead])
+- [#4266] Forward IO to Composer filesystem in ScriptHandler ([aschempp])
+- [#4285] Fix DCA extractor wrongly assuming every DCA is database driven ([fritzmg])
+
## [4.9.27] (2022-03-09)
**Fixed issues:**
@@ -861,6 +885,7 @@ This project adheres to [Semantic Versioning].
- [#991] Replace mb_strlen() with Utf8::strlen() ([leofeyer])
[Semantic Versioning]: https://semver.org/spec/v2.0.0.html
+[4.9.28]: https://github.com/contao/contao/releases/tag/4.9.28
[4.9.27]: https://github.com/contao/contao/releases/tag/4.9.27
[4.9.26]: https://github.com/contao/contao/releases/tag/4.9.26
[4.9.25]: https://github.com/contao/contao/releases/tag/4.9.25
@@ -928,6 +953,25 @@ This project adheres to [Semantic Versioning].
[xchs]: https://github.com/xchs
[xprojects-de]: https://github.com/xprojects-de
[zonky2]: https://github.com/zonky2
+[#4427]: https://github.com/contao/contao/pull/4427
+[#4424]: https://github.com/contao/contao/pull/4424
+[#4423]: https://github.com/contao/contao/pull/4423
+[#4219]: https://github.com/contao/contao/pull/4219
+[#4408]: https://github.com/contao/contao/pull/4408
+[#4252]: https://github.com/contao/contao/pull/4252
+[#4402]: https://github.com/contao/contao/pull/4402
+[#4357]: https://github.com/contao/contao/pull/4357
+[#4294]: https://github.com/contao/contao/pull/4294
+[#4331]: https://github.com/contao/contao/pull/4331
+[#4293]: https://github.com/contao/contao/pull/4293
+[#4299]: https://github.com/contao/contao/pull/4299
+[#4263]: https://github.com/contao/contao/pull/4263
+[#4256]: https://github.com/contao/contao/pull/4256
+[#4236]: https://github.com/contao/contao/pull/4236
+[#4373]: https://github.com/contao/contao/pull/4373
+[#4322]: https://github.com/contao/contao/pull/4322
+[#4266]: https://github.com/contao/contao/pull/4266
+[#4285]: https://github.com/contao/contao/pull/4285
[#4248]: https://github.com/contao/contao/pull/4248
[#4241]: https://github.com/contao/contao/pull/4241
[#4235]: https://github.com/contao/contao/pull/4235
diff --git a/calendar-bundle/src/Resources/contao/languages/pt/tl_calendar.xlf b/calendar-bundle/src/Resources/contao/languages/pt/tl_calendar.xlf
index d74a06fb196..682b0f075ac 100644
--- a/calendar-bundle/src/Resources/contao/languages/pt/tl_calendar.xlf
+++ b/calendar-bundle/src/Resources/contao/languages/pt/tl_calendar.xlf
@@ -71,9 +71,11 @@
+ Permitir apenas aos membros autenticados a criação de comentários.
+ Desactivar a protecção contra spam
diff --git a/calendar-bundle/src/Resources/contao/languages/pt/tl_module.xlf b/calendar-bundle/src/Resources/contao/languages/pt/tl_module.xlf
index b010470817b..2f1beb9b897 100644
--- a/calendar-bundle/src/Resources/contao/languages/pt/tl_module.xlf
+++ b/calendar-bundle/src/Resources/contao/languages/pt/tl_module.xlf
@@ -79,6 +79,7 @@
+ Aqui pode seleccionar um modelo de evento.
@@ -86,6 +87,7 @@
+ Aqui pode seleccionar um modelo de calendário.
diff --git a/comments-bundle/src/Resources/contao/languages/pt/tl_content.xlf b/comments-bundle/src/Resources/contao/languages/pt/tl_content.xlf
index c1acf33c5e0..91a0443d59c 100644
--- a/comments-bundle/src/Resources/contao/languages/pt/tl_content.xlf
+++ b/comments-bundle/src/Resources/contao/languages/pt/tl_content.xlf
@@ -39,12 +39,15 @@
+ Permitir apenas aos membros autenticados a criação de comentários.
+ Desactivar a protecção contra spam
+ Aqui pode desactivar a protecção contra spam (não recomendado).
@@ -52,6 +55,7 @@
+ Aqui pode seleccionar um modelo de comentários.
diff --git a/core-bundle/src/Resources/contao/config/constants.php b/core-bundle/src/Resources/contao/config/constants.php
index ca1926b8327..4a32a7e57c3 100644
--- a/core-bundle/src/Resources/contao/config/constants.php
+++ b/core-bundle/src/Resources/contao/config/constants.php
@@ -10,7 +10,7 @@
// Core version
define('VERSION', '4.9');
-define('BUILD', '27');
+define('BUILD', '28');
define('LONG_TERM_SUPPORT', true);
// Link constants
diff --git a/core-bundle/src/Resources/contao/languages/it/default.xlf b/core-bundle/src/Resources/contao/languages/it/default.xlf
index 43ebf6578d5..93401d998c2 100644
--- a/core-bundle/src/Resources/contao/languages/it/default.xlf
+++ b/core-bundle/src/Resources/contao/languages/it/default.xlf
@@ -1519,6 +1519,7 @@
+ Scopri di più su come velocizzare il tuo flusso di lavoro usando le scelte rapide da tastiera.
diff --git a/core-bundle/src/Resources/contao/languages/it/exception.xlf b/core-bundle/src/Resources/contao/languages/it/exception.xlf
index 3d197fbf3bc..8986ddc8366 100644
--- a/core-bundle/src/Resources/contao/languages/it/exception.xlf
+++ b/core-bundle/src/Resources/contao/languages/it/exception.xlf
@@ -31,6 +31,7 @@
+ L'esecuzione dello script si è arrestato, perché qualcosa non funziona correttamente. Il messaggio di errore effettivo è nascosto da questo avviso per motivi di sicurezza e può essere trovato nel file di log corrente (vedi sopra). Se non capisci il messaggio di errore o non sai come risolvere il problema, visita la pagina di <a href="https://to.contao.org/support" target="_blank" rel="noreferrer noopener">supporto di Contao</a>.
@@ -42,6 +43,7 @@
+ Per favore, <a href="javascript:window.location.href=window.location.href">clicca qui</a> e riprova. Non usare il pulsante indietro del tuo browser.
@@ -49,6 +51,7 @@
+ Per maggiori informazioni, visita la <a href="https://to.contao.org/support" target="_blank" rel="noreferrer noopener">pagina di supporto di Contao</a>.
diff --git a/core-bundle/src/Resources/contao/languages/it/explain.xlf b/core-bundle/src/Resources/contao/languages/it/explain.xlf
index e2655bd03c5..2f7d571848f 100644
--- a/core-bundle/src/Resources/contao/languages/it/explain.xlf
+++ b/core-bundle/src/Resources/contao/languages/it/explain.xlf
@@ -7,6 +7,7 @@
+ Per ulteriori informazioni su TinyMCE, visitate <a href="https://www.tiny.cloud/tinymce/" target="_blank" rel="noreferrer noopener">https://www.tiny.cloud/tinymce/</a>.
@@ -14,6 +15,7 @@
+ Per ulteriori informazioni sui tag di inserimento, visitate <a href="https://docs.contao.org/dev/framework/insert-tags/" target="_blank" rel="noreferrer noopener">https://docs.contao.org/dev/framework/insert-tags/.
@@ -21,6 +23,7 @@
+ Per ulteriori informazioni su Ace, visitate <a href="https://ace.c9.io" target="_blank" rel="noreferrer noopener">https://ace.c9.io</a>.
@@ -92,6 +95,7 @@
+ L'attributo HTML <code>sizes</code> definisce la larghezza del layout dell'immagine, opzionalmente combinato con una media query. Puoi usare qualsiasi valore di lunghezza CSS in questo attributo,<br><br> Per esempio <code>(max-width: 600px) 100vw, 50vw</code> significa che la larghezza dell'immagine è il 100% del viewport per schermi piccoli e il 50% del viewport per schermi più grandi. <br><br>E <code>(max-width: 600px) calc(100vw - 20px), 500px</code> significa che la larghezza dell'immagine è 20px più piccola del viewport per schermi piccoli e 500px per schermi più grandi. <br><br>L'attributo sizes non dovrebbe essere usato per lo stile, usa invece i CSS. L'attributo sizes non deve necessariamente corrispondere esattamente alla larghezza effettiva dell'immagine come specificato nel CSS. <br><br>Per maggiori informazioni sull'attributo sizes visita <a href="https://www.w3.org/TR/2016/PR-html51-20160915/semantics-embedded-content.html#element-attrdef-img-sizes" target="_blank" rel="noreferrer noopener">w3.org</a>.
@@ -99,6 +103,7 @@
+ Se l'attributo sizes non è definito, questa impostazione definisce semplicemente le densità di pixel che volete supportare. Le dimensioni delle immagini sono regolate automaticamente. Ad es. <code>1x, 1.5x, 2x</code> crea il seguente codice HTML: <code><img srcset="img-a.jpg 1x, img-b.jpg 1.5x, img-c.jpg 2x"></code><br><br>Se l'attributo sizes è definito, vengono generate le stesse dimensioni delle immagini ma vengono utilizzati descrittori di larghezza per l'attributo srcset. Per esempio, un'immagine larga 200 pixel con le densità <code>1x, 1.5x, 2x</code> crea il seguente codice HTML: <code><img srcset="img-a.jpg 200w, img-b.jpg 300w, img-c.jpg 400w"></code><br><br>Per maggiori informazioni sull'attributo srcset visitate <a href="https://www.w3.org/TR/2016/PR-html51-20160915/semantics-embedded-content.html#element-attrdef-img-srcset" target="_blank" rel="noreferrer noopener">w3.org</a>.