diff --git a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/ActionButton/DeferredAction.ts b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/ActionButton/DeferredAction.ts
index aa561942b55372d0a0dcfaf6b1d260f2224ee601..15793fad350310dd04368899dd8d7d89651fb369 100644
--- a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/ActionButton/DeferredAction.ts
+++ b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/ActionButton/DeferredAction.ts
@@ -15,7 +15,7 @@ import {AbstractAction} from './AbstractAction';
 import Icons = require('../Icons');
 
 /**
- * Action used when an operation execution time is unkown.
+ * Action used when an operation execution time is unknown.
  */
 class DeferredAction extends AbstractAction {
   protected callback: () => Promise<any>;
diff --git a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/ContextMenuActions.ts b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/ContextMenuActions.ts
index bfaf7a1850ed5e9c5aad1fa9ad3f47b7da59bbd3..102ac6fb6a5751c9d97073fd7a5bc1825f6253f7 100644
--- a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/ContextMenuActions.ts
+++ b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/ContextMenuActions.ts
@@ -325,7 +325,7 @@ class ContextMenuActions {
    * Paste db record after another
    *
    * @param {string} table any db table except sys_file
-   * @param {number} uid uid of the record after which record from the cliboard will be pasted
+   * @param {number} uid uid of the record after which record from the clipboard will be pasted
    */
   public static pasteAfter(table: string, uid: number): void {
     ContextMenuActions.pasteInto.bind($(this))(table, -uid);
@@ -335,7 +335,7 @@ class ContextMenuActions {
    * Paste page into another page
    *
    * @param {string} table any db table except sys_file
-   * @param {number} uid uid of the record after which record from the cliboard will be pasted
+   * @param {number} uid uid of the record after which record from the clipboard will be pasted
    */
   public static pasteInto(table: string, uid: number): void {
     const $anchorElement = $(this);
diff --git a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/DragUploader.ts b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/DragUploader.ts
index 0d0237b83412caa3e0310a32a7de2b6787befead..49d1a6d856a5f97e22e554284eb1818a9c1e8e25 100644
--- a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/DragUploader.ts
+++ b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/DragUploader.ts
@@ -647,7 +647,7 @@ class FileQueueItem {
    */
   public showFileInfo(fileInfo: UploadedFile): void {
     this.removeProgress();
-    // add spacing cells when clibboard and/or extended view is enabled
+    // add spacing cells when clipboard and/or extended view is enabled
     for (let i = 7; i < this.dragUploader.fileListColumnCount; i++) {
       $('<td />').text('').appendTo(this.$row);
     }
diff --git a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/FormEngine/Element/SlugElement.ts b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/FormEngine/Element/SlugElement.ts
index c32228b4fc5ae112cff3d5554d4208db50b0842e..9e9694e84f59efa07700817a5c142e1538bfd07c 100644
--- a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/FormEngine/Element/SlugElement.ts
+++ b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/FormEngine/Element/SlugElement.ts
@@ -59,7 +59,7 @@ enum ProposalModes {
  *
  * For new and existing records, the toggle switch will allow editors to modify the slug
  *  - for new records, we only need to see if that is already in use or not (uniqueInSite), if it is taken, show a message.
- *  - for existing records, we also check for conflicts, and check if we have subpges, or if we want to add a redirect (todo)
+ *  - for existing records, we also check for conflicts, and check if we have subpages, or if we want to add a redirect (todo)
  */
 class SlugElement {
   private options: FieldOptions = null;
diff --git a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/GridEditor.ts b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/GridEditor.ts
index 6515f2235be5681f96589bd1907d3d492a81c13a..063a28f5c5a13a02cbfc1448fcfddc16511daef3 100644
--- a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/GridEditor.ts
+++ b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/GridEditor.ts
@@ -47,7 +47,7 @@ export class GridEditor {
   protected field: JQuery;
   protected data: any[];
   protected nameLabel: string = 'name';
-  protected columnLabel: string = 'columen label';
+  protected columnLabel: string = 'column label';
   protected targetElement: JQuery;
   protected defaultCell: object = {spanned: 0, rowspan: 1, colspan: 1, name: '', colpos: '', column: undefined};
   protected selectorEditor: string = '.t3js-grideditor';
diff --git a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/ImageManipulation.ts b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/ImageManipulation.ts
index 6a920512257c657dc2eb1467bbaf0fef14644d41..6a0538e4a7802d9800be9e2aa49fbf22289b748a 100644
--- a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/ImageManipulation.ts
+++ b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/ImageManipulation.ts
@@ -285,7 +285,7 @@ class ImageManipulation {
 
   /**
    * @method init
-   * @desc Initializes the cropper UI and sets up all the event indings for the UI
+   * @desc Initializes the cropper UI and sets up all the event bindings for the UI
    * @private
    */
   private init(): void {
@@ -320,7 +320,7 @@ class ImageManipulation {
 
       /**
        * Is the current cropVariantTrigger is active, bail out.
-       * Bootstrap doesn't provide this functionality when collapsing the Collaps panels
+       * Bootstrap doesn't provide this functionality when collapsing the Collapse panels
        */
       if ($(e.currentTarget).hasClass('is-active')) {
         e.stopPropagation();
@@ -405,7 +405,7 @@ class ImageManipulation {
      * Initialise the cropper
      *
      * Note: We use the extraneous jQuery object here, as CropperJS won't work inside the <iframe>
-     * The top.require is now inlined @see ImageManipulationElemen.php:143
+     * The top.require is now inlined @see ImageManipulationElement.php:143
      * TODO: Find a better solution for cross iframe communications
      */
     this.cropper = (top.$(image) as any).cropper($.extend(this.defaultOpts, {
@@ -667,7 +667,7 @@ class ImageManipulation {
    * @method initCoverAreas
    * @desc Initialise cover areas inside the cropper container
    * @param {JQuery} container - The container element to append the cover areas
-   * @param {Array<Area>} coverAreas - An array of areas to construxt the cover area elements from
+   * @param {Array<Area>} coverAreas - An array of areas to construct the cover area elements from
    */
   private initCoverAreas(container: JQuery, coverAreas: Area[]): void {
     coverAreas.forEach((coverArea: Area): void => {
@@ -684,7 +684,7 @@ class ImageManipulation {
 
   /**
    * @method updatePreviewThumbnail
-   * @desc Sync the croping (and focus area) to the preview thumbnail
+   * @desc Sync the cropping (and focus area) to the preview thumbnail
    * @param {CropVariant} cropVariant - The crop variant to preview in the thumbnail
    * @param {JQuery} cropVariantTrigger - The crop variant element containing the thumbnail
    * @private
diff --git a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/LayoutModule/DragDrop.ts b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/LayoutModule/DragDrop.ts
index 3e00d1ba4bccb6fa12c7aefb78dcdcb7db3c7a16..92af0226769ccf3085f5d4ff394d2868638eef07 100644
--- a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/LayoutModule/DragDrop.ts
+++ b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/LayoutModule/DragDrop.ts
@@ -171,7 +171,7 @@ class DragDrop {
 
     $droppableElement.removeClass(DragDrop.dropPossibleHoverClass);
 
-    // send an AJAX requst via the AjaxDataHandler
+    // send an AJAX request via the AjaxDataHandler
     const contentElementUid: number = parseInt($draggableElement.data('uid'), 10);
 
     if (typeof(contentElementUid) === 'number' && contentElementUid > 0) {
diff --git a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/LayoutModule/Paste.ts b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/LayoutModule/Paste.ts
index daca175cdc3264fc3b1a2ad39cf4b898c7d5ae0b..e7ac9cf680d47da5908942fffb9b2787b406d9fa 100644
--- a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/LayoutModule/Paste.ts
+++ b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/LayoutModule/Paste.ts
@@ -147,7 +147,7 @@ class Paste {
   }
 
   /**
-   * Send an AJAX requst via the AjaxDataHandler
+   * Send an AJAX request via the AjaxDataHandler
    *
    * @param {JQuery} $element
    */
diff --git a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/Storage/Persistent.ts b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/Storage/Persistent.ts
index 70c073b66a074f0ce4d56e235354c8a9b80f23f6..5cf64c0eef541b164e65fe26602a51bf9640bb02 100644
--- a/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/Storage/Persistent.ts
+++ b/Build/Sources/TypeScript/backend/Resources/Public/TypeScript/Storage/Persistent.ts
@@ -182,7 +182,7 @@ class Persistent {
    * Helper function used to set a value which could have been a flat object key data["my.foo.bar"] to
    * data[my][foo][bar] is called recursively by itself
    *
-   * @param {Object} data the data to be uased as base
+   * @param {Object} data the data to be used as base
    * @param {String} keyParts the keyParts for the subtree
    * @returns {Object}
    */
diff --git a/Build/Sources/TypeScript/beuser/Resources/Public/TypeScript/Permissions.ts b/Build/Sources/TypeScript/beuser/Resources/Public/TypeScript/Permissions.ts
index 1187faef0e63f80eff1af73a1516025b4bc162dd..4a5420a3b6c8826741245701b80032603b196fcf 100644
--- a/Build/Sources/TypeScript/beuser/Resources/Public/TypeScript/Permissions.ts
+++ b/Build/Sources/TypeScript/beuser/Resources/Public/TypeScript/Permissions.ts
@@ -20,7 +20,7 @@ declare global {
 }
 
 /**
- * Module: TYPO3/CMS/Beuser/Permissons
+ * Module: TYPO3/CMS/Beuser/Permissions
  * Javascript functions regarding the permissions module
  */
 class Permissions {
diff --git a/typo3/sysext/backend/Classes/Authentication/PasswordReset.php b/typo3/sysext/backend/Classes/Authentication/PasswordReset.php
index 8accc3f3ca5e4a7e263961832ace331ec3d9876a..788eb640a57065730bab693e978a37bd41f30d04 100644
--- a/typo3/sysext/backend/Classes/Authentication/PasswordReset.php
+++ b/typo3/sysext/backend/Classes/Authentication/PasswordReset.php
@@ -321,7 +321,7 @@ class PasswordReset implements LoggerAwareInterface
      *
      * @param ServerRequestInterface $request
      * @param Context $context current context
-     * @return bool whether the password was resetted or not
+     * @return bool whether the password was reset or not
      */
     public function resetPassword(ServerRequestInterface $request, Context $context): bool
     {
diff --git a/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaSelectItems.php b/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaSelectItems.php
index 50b64080c66b3866f491c11d2d4c0f27e76b7dc0..9cd3b37dca88cb6a7f3980554e1a8e1c8089e9f8 100644
--- a/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaSelectItems.php
+++ b/typo3/sysext/backend/Classes/Form/FormDataProvider/TcaSelectItems.php
@@ -217,7 +217,7 @@ class TcaSelectItems extends AbstractItemProvider implements FormDataProviderInt
         // Extract --div-- into itemGroups
         foreach ($allItems as $key => $item) {
             if ($item[1] === '--div--') {
-                // A divider is added as a group (existing groups will get their label overriden)
+                // A divider is added as a group (existing groups will get their label overridden)
                 if (isset($item[3])) {
                     $currentGroup = $item[3];
                     $itemGroups[$currentGroup] = $item[0];
diff --git a/typo3/sysext/backend/Classes/View/PageLayoutView.php b/typo3/sysext/backend/Classes/View/PageLayoutView.php
index 3842d77f08ae170b8e914742878ea51f4e068d65..2a55b74894c6b972cd5d403601d592477030244a 100644
--- a/typo3/sysext/backend/Classes/View/PageLayoutView.php
+++ b/typo3/sysext/backend/Classes/View/PageLayoutView.php
@@ -2046,7 +2046,7 @@ class PageLayoutView implements LoggerAwareInterface
     }
 
     /**
-     * Check if current user has modification and access permissons for content set
+     * Check if current user has modification and access permissions for content set
      *
      * @return bool
      */
diff --git a/typo3/sysext/backend/Resources/Public/JavaScript/GridEditor.js b/typo3/sysext/backend/Resources/Public/JavaScript/GridEditor.js
index a2ef7f1790271a11bc29cbd57e2fe3391fb2a190..d54d802e3a0dcbb946ef03ac917241789e19a29f 100644
--- a/typo3/sysext/backend/Resources/Public/JavaScript/GridEditor.js
+++ b/typo3/sysext/backend/Resources/Public/JavaScript/GridEditor.js
@@ -10,4 +10,4 @@
  *
  * The TYPO3 project - inspiring people to share!
  */
-define(["require","exports","./Enum/Severity","jquery","./Modal","bootstrap"],(function(t,e,n,o,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class s{constructor(t=null){this.colCount=1,this.rowCount=1,this.nameLabel="name",this.columnLabel="columen label",this.defaultCell={spanned:0,rowspan:1,colspan:1,name:"",colpos:"",column:void 0},this.selectorEditor=".t3js-grideditor",this.selectorAddColumn=".t3js-grideditor-addcolumn",this.selectorRemoveColumn=".t3js-grideditor-removecolumn",this.selectorAddRowTop=".t3js-grideditor-addrow-top",this.selectorRemoveRowTop=".t3js-grideditor-removerow-top",this.selectorAddRowBottom=".t3js-grideditor-addrow-bottom",this.selectorRemoveRowBottom=".t3js-grideditor-removerow-bottom",this.selectorLinkEditor=".t3js-grideditor-link-editor",this.selectorLinkExpandRight=".t3js-grideditor-link-expand-right",this.selectorLinkShrinkLeft=".t3js-grideditor-link-shrink-left",this.selectorLinkExpandDown=".t3js-grideditor-link-expand-down",this.selectorLinkShrinkUp=".t3js-grideditor-link-shrink-up",this.selectorDocHeaderSave=".t3js-grideditor-savedok",this.selectorDocHeaderSaveClose=".t3js-grideditor-savedokclose",this.selectorConfigPreview=".t3js-grideditor-preview-config",this.selectorConfigPreviewButton=".t3js-grideditor-preview-button",this.modalButtonClickHandler=t=>{const e=t.target;"cancel"===e.name?i.currentModal.trigger("modal-dismiss"):"ok"===e.name&&(this.setName(i.currentModal.find(".t3js-grideditor-field-name").val(),i.currentModal.data("col"),i.currentModal.data("row")),this.setColumn(i.currentModal.find(".t3js-grideditor-field-colpos").val(),i.currentModal.data("col"),i.currentModal.data("row")),this.drawTable(),this.writeConfig(this.export2LayoutRecord()),i.currentModal.trigger("modal-dismiss"))},this.addColumnHandler=t=>{t.preventDefault(),this.addColumn(),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.removeColumnHandler=t=>{t.preventDefault(),this.removeColumn(),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.addRowTopHandler=t=>{t.preventDefault(),this.addRowTop(),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.addRowBottomHandler=t=>{t.preventDefault(),this.addRowBottom(),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.removeRowTopHandler=t=>{t.preventDefault(),this.removeRowTop(),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.removeRowBottomHandler=t=>{t.preventDefault(),this.removeRowBottom(),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.linkEditorHandler=t=>{t.preventDefault();const e=o(t.target);this.showOptions(e.data("col"),e.data("row"))},this.linkExpandRightHandler=t=>{t.preventDefault();const e=o(t.target);this.addColspan(e.data("col"),e.data("row")),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.linkShrinkLeftHandler=t=>{t.preventDefault();const e=o(t.target);this.removeColspan(e.data("col"),e.data("row")),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.linkExpandDownHandler=t=>{t.preventDefault();const e=o(t.target);this.addRowspan(e.data("col"),e.data("row")),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.linkShrinkUpHandler=t=>{t.preventDefault();const e=o(t.target);this.removeRowspan(e.data("col"),e.data("row")),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.configPreviewButtonHandler=t=>{t.preventDefault();const e=o(this.selectorConfigPreview),n=o(this.selectorConfigPreviewButton);e.is(":visible")?(n.empty().append(TYPO3.lang["button.showPageTsConfig"]),o(this.selectorConfigPreview).slideUp()):(n.empty().append(TYPO3.lang["button.hidePageTsConfig"]),o(this.selectorConfigPreview).slideDown())};const e=o(this.selectorEditor);this.colCount=e.data("colcount"),this.rowCount=e.data("rowcount"),this.field=o('input[name="'+e.data("field")+'"]'),this.data=e.data("data"),this.nameLabel=null!==t?t.nameLabel:"Name",this.columnLabel=null!==t?t.columnLabel:"Column",this.targetElement=o(this.selectorEditor),o(this.selectorConfigPreview).hide(),o(this.selectorConfigPreviewButton).empty().append(TYPO3.lang["button.showPageTsConfig"]),this.initializeEvents(),this.drawTable(),this.writeConfig(this.export2LayoutRecord())}static stripMarkup(t){return t=t.replace(/<(.*)>/gi,""),o("<p>"+t+"</p>").text()}initializeEvents(){o(document).on("click",this.selectorAddColumn,this.addColumnHandler),o(document).on("click",this.selectorRemoveColumn,this.removeColumnHandler),o(document).on("click",this.selectorAddRowTop,this.addRowTopHandler),o(document).on("click",this.selectorAddRowBottom,this.addRowBottomHandler),o(document).on("click",this.selectorRemoveRowTop,this.removeRowTopHandler),o(document).on("click",this.selectorRemoveRowBottom,this.removeRowBottomHandler),o(document).on("click",this.selectorLinkEditor,this.linkEditorHandler),o(document).on("click",this.selectorLinkExpandRight,this.linkExpandRightHandler),o(document).on("click",this.selectorLinkShrinkLeft,this.linkShrinkLeftHandler),o(document).on("click",this.selectorLinkExpandDown,this.linkExpandDownHandler),o(document).on("click",this.selectorLinkShrinkUp,this.linkShrinkUpHandler),o(document).on("click",this.selectorConfigPreviewButton,this.configPreviewButtonHandler)}getNewCell(){return o.extend({},this.defaultCell)}writeConfig(t){this.field.val(t);const e=t.split("\n");let n="";for(const t of e)t&&(n+="\t\t\t"+t+"\n");o(this.selectorConfigPreview).find("code").empty().append("mod.web_layout.BackendLayouts {\n  exampleKey {\n    title = Example\n    icon = EXT:example_extension/Resources/Public/Images/BackendLayouts/default.gif\n    config {\n"+n.replace(new RegExp("\t","g"),"  ")+"    }\n  }\n}\n")}addRowTop(){const t=[];for(let e=0;e<this.colCount;e++){const n=this.getNewCell();n.name=e+"x"+this.data.length,t[e]=n}this.data.unshift(t),this.rowCount++}addRowBottom(){const t=[];for(let e=0;e<this.colCount;e++){const n=this.getNewCell();n.name=e+"x"+this.data.length,t[e]=n}this.data.push(t),this.rowCount++}removeRowTop(){if(this.rowCount<=1)return!1;const t=[];for(let e=1;e<this.rowCount;e++)t.push(this.data[e]);for(let t=0;t<this.colCount;t++)1===this.data[0][t].spanned&&this.findUpperCellWidthRowspanAndDecreaseByOne(t,0);return this.data=t,this.rowCount--,!0}removeRowBottom(){if(this.rowCount<=1)return!1;const t=[];for(let e=0;e<this.rowCount-1;e++)t.push(this.data[e]);for(let t=0;t<this.colCount;t++)1===this.data[this.rowCount-1][t].spanned&&this.findUpperCellWidthRowspanAndDecreaseByOne(t,this.rowCount-1);return this.data=t,this.rowCount--,!0}findUpperCellWidthRowspanAndDecreaseByOne(t,e){const n=this.getCell(t,e-1);return!!n&&(1===n.spanned?this.findUpperCellWidthRowspanAndDecreaseByOne(t,e-1):n.rowspan>1&&this.removeRowspan(t,e-1),!0)}removeColumn(){if(this.colCount<=1)return!1;const t=[];for(let e=0;e<this.rowCount;e++){const n=[];for(let t=0;t<this.colCount-1;t++)n.push(this.data[e][t]);1===this.data[e][this.colCount-1].spanned&&this.findLeftCellWidthColspanAndDecreaseByOne(this.colCount-1,e),t.push(n)}return this.data=t,this.colCount--,!0}findLeftCellWidthColspanAndDecreaseByOne(t,e){const n=this.getCell(t-1,e);return!!n&&(1===n.spanned?this.findLeftCellWidthColspanAndDecreaseByOne(t-1,e):n.colspan>1&&this.removeColspan(t-1,e),!0)}addColumn(){for(let t=0;t<this.rowCount;t++){const e=this.getNewCell();e.name=this.colCount+"x"+t,this.data[t].push(e)}this.colCount++}drawTable(){const t=o("<colgroup>");for(let e=0;e<this.colCount;e++){const e=100/this.colCount;t.append(o("<col>").css({width:parseInt(e.toString(),10)+"%"}))}const e=o('<table id="base" class="table editor">');e.append(t);for(let t=0;t<this.rowCount;t++){if(0===this.data[t].length)continue;const n=o("<tr>");for(let e=0;e<this.colCount;e++){const i=this.data[t][e];if(1===i.spanned)continue;const r=100/this.rowCount,a=100/this.colCount,l=o("<td>").css({height:parseInt(r.toString(),10)*i.rowspan+"%",width:parseInt(a.toString(),10)*i.colspan+"%"}),d=o('<div class="cell_container">');l.append(d);const c=o('<a href="#" data-col="'+e+'" data-row="'+t+'">');d.append(c.clone().attr("class","t3js-grideditor-link-editor link link_editor").attr("title",TYPO3.lang.grid_editCell)),this.cellCanSpanRight(e,t)&&d.append(c.clone().attr("class","t3js-grideditor-link-expand-right link link_expand_right").attr("title",TYPO3.lang.grid_mergeCell)),this.cellCanShrinkLeft(e,t)&&d.append(c.clone().attr("class","t3js-grideditor-link-shrink-left link link_shrink_left").attr("title",TYPO3.lang.grid_splitCell)),this.cellCanSpanDown(e,t)&&d.append(c.clone().attr("class","t3js-grideditor-link-expand-down link link_expand_down").attr("title",TYPO3.lang.grid_mergeCell)),this.cellCanShrinkUp(e,t)&&d.append(c.clone().attr("class","t3js-grideditor-link-shrink-up link link_shrink_up").attr("title",TYPO3.lang.grid_splitCell)),l.append(o('<div class="cell_data">').html(TYPO3.lang.grid_name+": "+(i.name?s.stripMarkup(i.name):TYPO3.lang.grid_notSet)+"<br />"+TYPO3.lang.grid_column+": "+(void 0===i.column||isNaN(i.column)?TYPO3.lang.grid_notSet:parseInt(i.column,10)))),i.colspan>1&&l.attr("colspan",i.colspan),i.rowspan>1&&l.attr("rowspan",i.rowspan),n.append(l)}e.append(n)}o(this.targetElement).empty().append(e)}setName(t,e,n){const o=this.getCell(e,n);return!!o&&(o.name=s.stripMarkup(t),!0)}setColumn(t,e,n){const o=this.getCell(e,n);return!!o&&(o.column=parseInt(t.toString(),10),!0)}showOptions(t,e){const r=this.getCell(t,e);if(!r)return!1;let a;a=0===r.column?0:r.column?parseInt(r.column.toString(),10):"";const l=o("<div>"),d=o('<div class="form-group">'),c=o("<label>"),h=o("<input>");l.append([d.clone().append([c.clone().text(TYPO3.lang.grid_nameHelp),h.clone().attr("type","text").attr("class","t3js-grideditor-field-name form-control").attr("name","name").val(s.stripMarkup(r.name)||"")]),d.clone().append([c.clone().text(TYPO3.lang.grid_columnHelp),h.clone().attr("type","text").attr("class","t3js-grideditor-field-colpos form-control").attr("name","column").val(a)])]);const p=i.show(TYPO3.lang.grid_windowTitle,l,n.SeverityEnum.notice,[{active:!0,btnClass:"btn-default",name:"cancel",text:o(this).data("button-close-text")||TYPO3.lang["button.cancel"]||"Cancel"},{btnClass:"btn-primary",name:"ok",text:o(this).data("button-ok-text")||TYPO3.lang["button.ok"]||"OK"}]);return p.data("col",t),p.data("row",e),p.on("button.clicked",this.modalButtonClickHandler),!0}getCell(t,e){return!(t>this.colCount-1)&&(!(e>this.rowCount-1)&&(this.data.length>e-1&&this.data[e].length>t-1?this.data[e][t]:null))}cellCanSpanRight(t,e){if(t===this.colCount-1)return!1;const n=this.getCell(t,e);let o;if(n.rowspan>1){for(let i=e;i<e+n.rowspan;i++)if(o=this.getCell(t+n.colspan,i),!o||1===o.spanned||o.colspan>1||o.rowspan>1)return!1}else if(o=this.getCell(t+n.colspan,e),!o||1===n.spanned||1===o.spanned||o.colspan>1||o.rowspan>1)return!1;return!0}cellCanSpanDown(t,e){if(e===this.rowCount-1)return!1;const n=this.getCell(t,e);let o;if(n.colspan>1){for(let i=t;i<t+n.colspan;i++)if(o=this.getCell(i,e+n.rowspan),!o||1===o.spanned||o.colspan>1||o.rowspan>1)return!1}else if(o=this.getCell(t,e+n.rowspan),!o||1===n.spanned||1===o.spanned||o.colspan>1||o.rowspan>1)return!1;return!0}cellCanShrinkLeft(t,e){return this.data[e][t].colspan>1}cellCanShrinkUp(t,e){return this.data[e][t].rowspan>1}addColspan(t,e){const n=this.getCell(t,e);if(!n||!this.cellCanSpanRight(t,e))return!1;for(let o=e;o<e+n.rowspan;o++)this.data[o][t+n.colspan].spanned=1;return n.colspan+=1,!0}addRowspan(t,e){const n=this.getCell(t,e);if(!n||!this.cellCanSpanDown(t,e))return!1;for(let o=t;o<t+n.colspan;o++)this.data[e+n.rowspan][o].spanned=1;return n.rowspan+=1,!0}removeColspan(t,e){const n=this.getCell(t,e);if(!n||!this.cellCanShrinkLeft(t,e))return!1;n.colspan-=1;for(let o=e;o<e+n.rowspan;o++)this.data[o][t+n.colspan].spanned=0;return!0}removeRowspan(t,e){const n=this.getCell(t,e);if(!n||!this.cellCanShrinkUp(t,e))return!1;n.rowspan-=1;for(let o=t;o<t+n.colspan;o++)this.data[e+n.rowspan][o].spanned=0;return!0}export2LayoutRecord(){let t="backend_layout {\n\tcolCount = "+this.colCount+"\n\trowCount = "+this.rowCount+"\n\trows {\n";for(let e=0;e<this.rowCount;e++){t+="\t\t"+(e+1)+" {\n",t+="\t\t\tcolumns {\n";let n=0;for(let o=0;o<this.colCount;o++){const i=this.getCell(o,e);i&&(i.spanned||(n++,t+="\t\t\t\t"+n+" {\n",t+="\t\t\t\t\tname = "+(i.name?i.name:o+"x"+e)+"\n",i.colspan>1&&(t+="\t\t\t\t\tcolspan = "+i.colspan+"\n"),i.rowspan>1&&(t+="\t\t\t\t\trowspan = "+i.rowspan+"\n"),"number"==typeof i.column&&(t+="\t\t\t\t\tcolPos = "+i.column+"\n"),t+="\t\t\t\t}\n"))}t+="\t\t\t}\n",t+="\t\t}\n"}return t+="\t}\n}\n",t}}e.GridEditor=s}));
\ No newline at end of file
+define(["require","exports","./Enum/Severity","jquery","./Modal","bootstrap"],(function(t,e,n,o,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});class s{constructor(t=null){this.colCount=1,this.rowCount=1,this.nameLabel="name",this.columnLabel="column label",this.defaultCell={spanned:0,rowspan:1,colspan:1,name:"",colpos:"",column:void 0},this.selectorEditor=".t3js-grideditor",this.selectorAddColumn=".t3js-grideditor-addcolumn",this.selectorRemoveColumn=".t3js-grideditor-removecolumn",this.selectorAddRowTop=".t3js-grideditor-addrow-top",this.selectorRemoveRowTop=".t3js-grideditor-removerow-top",this.selectorAddRowBottom=".t3js-grideditor-addrow-bottom",this.selectorRemoveRowBottom=".t3js-grideditor-removerow-bottom",this.selectorLinkEditor=".t3js-grideditor-link-editor",this.selectorLinkExpandRight=".t3js-grideditor-link-expand-right",this.selectorLinkShrinkLeft=".t3js-grideditor-link-shrink-left",this.selectorLinkExpandDown=".t3js-grideditor-link-expand-down",this.selectorLinkShrinkUp=".t3js-grideditor-link-shrink-up",this.selectorDocHeaderSave=".t3js-grideditor-savedok",this.selectorDocHeaderSaveClose=".t3js-grideditor-savedokclose",this.selectorConfigPreview=".t3js-grideditor-preview-config",this.selectorConfigPreviewButton=".t3js-grideditor-preview-button",this.modalButtonClickHandler=t=>{const e=t.target;"cancel"===e.name?i.currentModal.trigger("modal-dismiss"):"ok"===e.name&&(this.setName(i.currentModal.find(".t3js-grideditor-field-name").val(),i.currentModal.data("col"),i.currentModal.data("row")),this.setColumn(i.currentModal.find(".t3js-grideditor-field-colpos").val(),i.currentModal.data("col"),i.currentModal.data("row")),this.drawTable(),this.writeConfig(this.export2LayoutRecord()),i.currentModal.trigger("modal-dismiss"))},this.addColumnHandler=t=>{t.preventDefault(),this.addColumn(),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.removeColumnHandler=t=>{t.preventDefault(),this.removeColumn(),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.addRowTopHandler=t=>{t.preventDefault(),this.addRowTop(),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.addRowBottomHandler=t=>{t.preventDefault(),this.addRowBottom(),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.removeRowTopHandler=t=>{t.preventDefault(),this.removeRowTop(),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.removeRowBottomHandler=t=>{t.preventDefault(),this.removeRowBottom(),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.linkEditorHandler=t=>{t.preventDefault();const e=o(t.target);this.showOptions(e.data("col"),e.data("row"))},this.linkExpandRightHandler=t=>{t.preventDefault();const e=o(t.target);this.addColspan(e.data("col"),e.data("row")),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.linkShrinkLeftHandler=t=>{t.preventDefault();const e=o(t.target);this.removeColspan(e.data("col"),e.data("row")),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.linkExpandDownHandler=t=>{t.preventDefault();const e=o(t.target);this.addRowspan(e.data("col"),e.data("row")),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.linkShrinkUpHandler=t=>{t.preventDefault();const e=o(t.target);this.removeRowspan(e.data("col"),e.data("row")),this.drawTable(),this.writeConfig(this.export2LayoutRecord())},this.configPreviewButtonHandler=t=>{t.preventDefault();const e=o(this.selectorConfigPreview),n=o(this.selectorConfigPreviewButton);e.is(":visible")?(n.empty().append(TYPO3.lang["button.showPageTsConfig"]),o(this.selectorConfigPreview).slideUp()):(n.empty().append(TYPO3.lang["button.hidePageTsConfig"]),o(this.selectorConfigPreview).slideDown())};const e=o(this.selectorEditor);this.colCount=e.data("colcount"),this.rowCount=e.data("rowcount"),this.field=o('input[name="'+e.data("field")+'"]'),this.data=e.data("data"),this.nameLabel=null!==t?t.nameLabel:"Name",this.columnLabel=null!==t?t.columnLabel:"Column",this.targetElement=o(this.selectorEditor),o(this.selectorConfigPreview).hide(),o(this.selectorConfigPreviewButton).empty().append(TYPO3.lang["button.showPageTsConfig"]),this.initializeEvents(),this.drawTable(),this.writeConfig(this.export2LayoutRecord())}static stripMarkup(t){return t=t.replace(/<(.*)>/gi,""),o("<p>"+t+"</p>").text()}initializeEvents(){o(document).on("click",this.selectorAddColumn,this.addColumnHandler),o(document).on("click",this.selectorRemoveColumn,this.removeColumnHandler),o(document).on("click",this.selectorAddRowTop,this.addRowTopHandler),o(document).on("click",this.selectorAddRowBottom,this.addRowBottomHandler),o(document).on("click",this.selectorRemoveRowTop,this.removeRowTopHandler),o(document).on("click",this.selectorRemoveRowBottom,this.removeRowBottomHandler),o(document).on("click",this.selectorLinkEditor,this.linkEditorHandler),o(document).on("click",this.selectorLinkExpandRight,this.linkExpandRightHandler),o(document).on("click",this.selectorLinkShrinkLeft,this.linkShrinkLeftHandler),o(document).on("click",this.selectorLinkExpandDown,this.linkExpandDownHandler),o(document).on("click",this.selectorLinkShrinkUp,this.linkShrinkUpHandler),o(document).on("click",this.selectorConfigPreviewButton,this.configPreviewButtonHandler)}getNewCell(){return o.extend({},this.defaultCell)}writeConfig(t){this.field.val(t);const e=t.split("\n");let n="";for(const t of e)t&&(n+="\t\t\t"+t+"\n");o(this.selectorConfigPreview).find("code").empty().append("mod.web_layout.BackendLayouts {\n  exampleKey {\n    title = Example\n    icon = EXT:example_extension/Resources/Public/Images/BackendLayouts/default.gif\n    config {\n"+n.replace(new RegExp("\t","g"),"  ")+"    }\n  }\n}\n")}addRowTop(){const t=[];for(let e=0;e<this.colCount;e++){const n=this.getNewCell();n.name=e+"x"+this.data.length,t[e]=n}this.data.unshift(t),this.rowCount++}addRowBottom(){const t=[];for(let e=0;e<this.colCount;e++){const n=this.getNewCell();n.name=e+"x"+this.data.length,t[e]=n}this.data.push(t),this.rowCount++}removeRowTop(){if(this.rowCount<=1)return!1;const t=[];for(let e=1;e<this.rowCount;e++)t.push(this.data[e]);for(let t=0;t<this.colCount;t++)1===this.data[0][t].spanned&&this.findUpperCellWidthRowspanAndDecreaseByOne(t,0);return this.data=t,this.rowCount--,!0}removeRowBottom(){if(this.rowCount<=1)return!1;const t=[];for(let e=0;e<this.rowCount-1;e++)t.push(this.data[e]);for(let t=0;t<this.colCount;t++)1===this.data[this.rowCount-1][t].spanned&&this.findUpperCellWidthRowspanAndDecreaseByOne(t,this.rowCount-1);return this.data=t,this.rowCount--,!0}findUpperCellWidthRowspanAndDecreaseByOne(t,e){const n=this.getCell(t,e-1);return!!n&&(1===n.spanned?this.findUpperCellWidthRowspanAndDecreaseByOne(t,e-1):n.rowspan>1&&this.removeRowspan(t,e-1),!0)}removeColumn(){if(this.colCount<=1)return!1;const t=[];for(let e=0;e<this.rowCount;e++){const n=[];for(let t=0;t<this.colCount-1;t++)n.push(this.data[e][t]);1===this.data[e][this.colCount-1].spanned&&this.findLeftCellWidthColspanAndDecreaseByOne(this.colCount-1,e),t.push(n)}return this.data=t,this.colCount--,!0}findLeftCellWidthColspanAndDecreaseByOne(t,e){const n=this.getCell(t-1,e);return!!n&&(1===n.spanned?this.findLeftCellWidthColspanAndDecreaseByOne(t-1,e):n.colspan>1&&this.removeColspan(t-1,e),!0)}addColumn(){for(let t=0;t<this.rowCount;t++){const e=this.getNewCell();e.name=this.colCount+"x"+t,this.data[t].push(e)}this.colCount++}drawTable(){const t=o("<colgroup>");for(let e=0;e<this.colCount;e++){const e=100/this.colCount;t.append(o("<col>").css({width:parseInt(e.toString(),10)+"%"}))}const e=o('<table id="base" class="table editor">');e.append(t);for(let t=0;t<this.rowCount;t++){if(0===this.data[t].length)continue;const n=o("<tr>");for(let e=0;e<this.colCount;e++){const i=this.data[t][e];if(1===i.spanned)continue;const r=100/this.rowCount,a=100/this.colCount,l=o("<td>").css({height:parseInt(r.toString(),10)*i.rowspan+"%",width:parseInt(a.toString(),10)*i.colspan+"%"}),d=o('<div class="cell_container">');l.append(d);const c=o('<a href="#" data-col="'+e+'" data-row="'+t+'">');d.append(c.clone().attr("class","t3js-grideditor-link-editor link link_editor").attr("title",TYPO3.lang.grid_editCell)),this.cellCanSpanRight(e,t)&&d.append(c.clone().attr("class","t3js-grideditor-link-expand-right link link_expand_right").attr("title",TYPO3.lang.grid_mergeCell)),this.cellCanShrinkLeft(e,t)&&d.append(c.clone().attr("class","t3js-grideditor-link-shrink-left link link_shrink_left").attr("title",TYPO3.lang.grid_splitCell)),this.cellCanSpanDown(e,t)&&d.append(c.clone().attr("class","t3js-grideditor-link-expand-down link link_expand_down").attr("title",TYPO3.lang.grid_mergeCell)),this.cellCanShrinkUp(e,t)&&d.append(c.clone().attr("class","t3js-grideditor-link-shrink-up link link_shrink_up").attr("title",TYPO3.lang.grid_splitCell)),l.append(o('<div class="cell_data">').html(TYPO3.lang.grid_name+": "+(i.name?s.stripMarkup(i.name):TYPO3.lang.grid_notSet)+"<br />"+TYPO3.lang.grid_column+": "+(void 0===i.column||isNaN(i.column)?TYPO3.lang.grid_notSet:parseInt(i.column,10)))),i.colspan>1&&l.attr("colspan",i.colspan),i.rowspan>1&&l.attr("rowspan",i.rowspan),n.append(l)}e.append(n)}o(this.targetElement).empty().append(e)}setName(t,e,n){const o=this.getCell(e,n);return!!o&&(o.name=s.stripMarkup(t),!0)}setColumn(t,e,n){const o=this.getCell(e,n);return!!o&&(o.column=parseInt(t.toString(),10),!0)}showOptions(t,e){const r=this.getCell(t,e);if(!r)return!1;let a;a=0===r.column?0:r.column?parseInt(r.column.toString(),10):"";const l=o("<div>"),d=o('<div class="form-group">'),c=o("<label>"),h=o("<input>");l.append([d.clone().append([c.clone().text(TYPO3.lang.grid_nameHelp),h.clone().attr("type","text").attr("class","t3js-grideditor-field-name form-control").attr("name","name").val(s.stripMarkup(r.name)||"")]),d.clone().append([c.clone().text(TYPO3.lang.grid_columnHelp),h.clone().attr("type","text").attr("class","t3js-grideditor-field-colpos form-control").attr("name","column").val(a)])]);const p=i.show(TYPO3.lang.grid_windowTitle,l,n.SeverityEnum.notice,[{active:!0,btnClass:"btn-default",name:"cancel",text:o(this).data("button-close-text")||TYPO3.lang["button.cancel"]||"Cancel"},{btnClass:"btn-primary",name:"ok",text:o(this).data("button-ok-text")||TYPO3.lang["button.ok"]||"OK"}]);return p.data("col",t),p.data("row",e),p.on("button.clicked",this.modalButtonClickHandler),!0}getCell(t,e){return!(t>this.colCount-1)&&(!(e>this.rowCount-1)&&(this.data.length>e-1&&this.data[e].length>t-1?this.data[e][t]:null))}cellCanSpanRight(t,e){if(t===this.colCount-1)return!1;const n=this.getCell(t,e);let o;if(n.rowspan>1){for(let i=e;i<e+n.rowspan;i++)if(o=this.getCell(t+n.colspan,i),!o||1===o.spanned||o.colspan>1||o.rowspan>1)return!1}else if(o=this.getCell(t+n.colspan,e),!o||1===n.spanned||1===o.spanned||o.colspan>1||o.rowspan>1)return!1;return!0}cellCanSpanDown(t,e){if(e===this.rowCount-1)return!1;const n=this.getCell(t,e);let o;if(n.colspan>1){for(let i=t;i<t+n.colspan;i++)if(o=this.getCell(i,e+n.rowspan),!o||1===o.spanned||o.colspan>1||o.rowspan>1)return!1}else if(o=this.getCell(t,e+n.rowspan),!o||1===n.spanned||1===o.spanned||o.colspan>1||o.rowspan>1)return!1;return!0}cellCanShrinkLeft(t,e){return this.data[e][t].colspan>1}cellCanShrinkUp(t,e){return this.data[e][t].rowspan>1}addColspan(t,e){const n=this.getCell(t,e);if(!n||!this.cellCanSpanRight(t,e))return!1;for(let o=e;o<e+n.rowspan;o++)this.data[o][t+n.colspan].spanned=1;return n.colspan+=1,!0}addRowspan(t,e){const n=this.getCell(t,e);if(!n||!this.cellCanSpanDown(t,e))return!1;for(let o=t;o<t+n.colspan;o++)this.data[e+n.rowspan][o].spanned=1;return n.rowspan+=1,!0}removeColspan(t,e){const n=this.getCell(t,e);if(!n||!this.cellCanShrinkLeft(t,e))return!1;n.colspan-=1;for(let o=e;o<e+n.rowspan;o++)this.data[o][t+n.colspan].spanned=0;return!0}removeRowspan(t,e){const n=this.getCell(t,e);if(!n||!this.cellCanShrinkUp(t,e))return!1;n.rowspan-=1;for(let o=t;o<t+n.colspan;o++)this.data[e+n.rowspan][o].spanned=0;return!0}export2LayoutRecord(){let t="backend_layout {\n\tcolCount = "+this.colCount+"\n\trowCount = "+this.rowCount+"\n\trows {\n";for(let e=0;e<this.rowCount;e++){t+="\t\t"+(e+1)+" {\n",t+="\t\t\tcolumns {\n";let n=0;for(let o=0;o<this.colCount;o++){const i=this.getCell(o,e);i&&(i.spanned||(n++,t+="\t\t\t\t"+n+" {\n",t+="\t\t\t\t\tname = "+(i.name?i.name:o+"x"+e)+"\n",i.colspan>1&&(t+="\t\t\t\t\tcolspan = "+i.colspan+"\n"),i.rowspan>1&&(t+="\t\t\t\t\trowspan = "+i.rowspan+"\n"),"number"==typeof i.column&&(t+="\t\t\t\t\tcolPos = "+i.column+"\n"),t+="\t\t\t\t}\n"))}t+="\t\t\t}\n",t+="\t\t}\n"}return t+="\t}\n}\n",t}}e.GridEditor=s}));
\ No newline at end of file
diff --git a/typo3/sysext/beuser/Tests/Unit/Domain/Model/DemandTest.php b/typo3/sysext/beuser/Tests/Unit/Domain/Model/DemandTest.php
index 7316c9a164a16eaa2235bb2b16f7b193796346fc..65297998d5c421cec0bb2d8a4d98c464291d3bdc 100644
--- a/typo3/sysext/beuser/Tests/Unit/Domain/Model/DemandTest.php
+++ b/typo3/sysext/beuser/Tests/Unit/Domain/Model/DemandTest.php
@@ -117,7 +117,7 @@ class DemandTest extends UnitTestCase
     /**
      * @test
      */
-    public function setLoginxSameExpectedValueForInt()
+    public function setLoginSameExpectedValueForInt()
     {
         $login = Demand::LOGIN_SOME;
         $this->subject->setLogins($login);
diff --git a/typo3/sysext/core/Tests/Acceptance/Backend/FormEngine/ElementsBasicInputDateCest.php b/typo3/sysext/core/Tests/Acceptance/Backend/FormEngine/ElementsBasicInputDateCest.php
index ae42986ea88672b8075a2ab5f910eb43c104feb2..02f533428431e0d4020579ad93badac6c11ca1aa 100644
--- a/typo3/sysext/core/Tests/Acceptance/Backend/FormEngine/ElementsBasicInputDateCest.php
+++ b/typo3/sysext/core/Tests/Acceptance/Backend/FormEngine/ElementsBasicInputDateCest.php
@@ -280,7 +280,7 @@ class ElementsBasicInputDateCest extends AbstractElementsBasicCest
                         'expectedValue' => '12:09:04',
                         'expectedInternalValue' => '1970-01-01T12:09:04Z',
                         'expectedValueAfterSave' => '1970-01-01T12:09:04+00:00',
-                        'comment' => 'inputdatetime_6 eval=timesec additon input',
+                        'comment' => 'inputdatetime_6 eval=timesec addition input',
                     ],
         ];
     }
diff --git a/typo3/sysext/dashboard/Classes/Widgets/WidgetConfigurationInterface.php b/typo3/sysext/dashboard/Classes/Widgets/WidgetConfigurationInterface.php
index 71f3c6439cd233ade3bcbe09a9c6fe62a70eca1e..65f1a108a09a38ebd9ab99ea2e9243eb24ccc7b2 100644
--- a/typo3/sysext/dashboard/Classes/Widgets/WidgetConfigurationInterface.php
+++ b/typo3/sysext/dashboard/Classes/Widgets/WidgetConfigurationInterface.php
@@ -25,7 +25,7 @@ namespace TYPO3\CMS\Dashboard\Widgets;
 interface WidgetConfigurationInterface
 {
     /**
-     * Returns the unique identifer of a widget
+     * Returns the unique identifier of a widget
      *
      * @return string
      */
diff --git a/typo3/sysext/dashboard/Tests/Unit/DependencyInjection/DashboardWidgetPassTest.php b/typo3/sysext/dashboard/Tests/Unit/DependencyInjection/DashboardWidgetPassTest.php
index 2d410a3c79fe0454089f76bad2fa7b703f30f030..3ce47d1396b249b69e97ff2cf4c02fad092cfabc 100644
--- a/typo3/sysext/dashboard/Tests/Unit/DependencyInjection/DashboardWidgetPassTest.php
+++ b/typo3/sysext/dashboard/Tests/Unit/DependencyInjection/DashboardWidgetPassTest.php
@@ -53,7 +53,7 @@ class DashboardWidgetPassTest extends UnitTestCase
     /**
      * @test
      */
-    public function doesNothingIfWidgetRegistryIsUnkown(): void
+    public function doesNothingIfWidgetRegistryIsUnknown(): void
     {
         $this->container->findDefinition(WidgetRegistry::class)->willReturn(false);
         $this->container->findTaggedServiceIds('dashboard.widget')->shouldNotBeCalled();
@@ -90,7 +90,7 @@ class DashboardWidgetPassTest extends UnitTestCase
     /**
      * @test
      */
-    public function registersTaggedWidgetWithMiniumConfigurationInRegistry(): void
+    public function registersTaggedWidgetWithMinimumConfigurationInRegistry(): void
     {
         $this->container->findDefinition(WidgetRegistry::class)->willReturn($this->widgetRegistryDefinition->reveal());
         $definition = $this->prophesize(Definition::class);
diff --git a/typo3/sysext/workspaces/Classes/Notification/StageChangeNotification.php b/typo3/sysext/workspaces/Classes/Notification/StageChangeNotification.php
index f60a73b2a7bccf6fb28e55c1f39bc372159ef1da..137bca9da7cf2906734422fc5cd5d01ab173b27c 100644
--- a/typo3/sysext/workspaces/Classes/Notification/StageChangeNotification.php
+++ b/typo3/sysext/workspaces/Classes/Notification/StageChangeNotification.php
@@ -60,7 +60,7 @@ class StageChangeNotification
     }
 
     /**
-     * Send an email notification to users in workspace in multiple languages, depending on each BE users' langauge
+     * Send an email notification to users in workspace in multiple languages, depending on each BE users' language
      * preference.
      *
      * @param array $workspaceRecord
diff --git a/typo3/sysext/workspaces/Documentation/Administration/CustomWorkspace/Index.rst b/typo3/sysext/workspaces/Documentation/Administration/CustomWorkspace/Index.rst
index 3d2e14a4f71b3663dc083e7f31b0ab2e11277877..f73155e9e3beb77e5c7df57dda2ed12b87db6c3c 100644
--- a/typo3/sysext/workspaces/Documentation/Administration/CustomWorkspace/Index.rst
+++ b/typo3/sysext/workspaces/Documentation/Administration/CustomWorkspace/Index.rst
@@ -177,7 +177,7 @@ can be chosen from among "Owners" and "Members". They are called
    Defining the notification settings of a custom stage
 
 
-The notitication settings for a custom stage are mostly the same
+The notification settings for a custom stage are mostly the same
 as for the default stages, except that the "Responsible persons"
 can also be chosen in the predefined list of users to notify
 and that a "Default mail comment" can be defined for that stage.
diff --git a/typo3/sysext/workspaces/Documentation/Index.rst b/typo3/sysext/workspaces/Documentation/Index.rst
index 46d325b8dcc9ebd0c18f4f924b0f6306cbac98e0..467f541ba7f8a9b3b4ccd0cf1998e301547e86d1 100644
--- a/typo3/sysext/workspaces/Documentation/Index.rst
+++ b/typo3/sysext/workspaces/Documentation/Index.rst
@@ -20,7 +20,7 @@ Workspaces and Versioning
       Workspace functionality for TYPO3 CMS.
 
 :Keywords:
-      worspaces
+      workspaces
 
 :Copyright:
       2000-2020
diff --git a/typo3/sysext/workspaces/Resources/Private/Language/locallang.xlf b/typo3/sysext/workspaces/Resources/Private/Language/locallang.xlf
index 7271c5ed892bcee767f654c26348138f73738456..adaac62e42e38a0f6fc572adbfd4ee922b2ca118 100644
--- a/typo3/sysext/workspaces/Resources/Private/Language/locallang.xlf
+++ b/typo3/sysext/workspaces/Resources/Private/Language/locallang.xlf
@@ -337,7 +337,7 @@
 				<source><![CDATA[Default language record for record "%s"]]></source>
 			</trans-unit>
 			<trans-unit id="integrity.hasIssuesDescription" resname="integrity.hasIssuesDescription">
-				<source>The integrity check discovered several issues, see status icons infront of each record for further details.</source>
+				<source>The integrity check discovered several issues, see status icons in front of each record for further details.</source>
 			</trans-unit>
 			<trans-unit id="integrity.hasIssuesQuestion" resname="integrity.hasIssuesQuestion">
 				<source>Do you want to continue?</source>