diff --git a/core/.cspell.json b/core/.cspell.json
new file mode 100644
index 0000000000000000000000000000000000000000..262287439710894045fb7a36cb6a190e1709a00c
--- /dev/null
+++ b/core/.cspell.json
@@ -0,0 +1,48 @@
+{
+    "version": "0.1",
+    "language": "en-US",
+    "allowCompoundWords": false,
+    "ignorePaths": [
+      "assets/vendor/**",
+      "lib/Drupal/Component/Diff/**",
+      "lib/Drupal/Component/Transliteration/data/**",
+      "lib/Drupal/Core/File/MimeType/ExtensionMimeTypeGuesser.php",
+      "modules/**/Migrate*Test.php",
+      "modules/color/preview.html",
+      "modules/color/tests/modules/color_test/themes/color_test_theme/color/preview.html",
+      "modules/migrate_drupal/tests/fixtures/drupal6.php",
+      "modules/migrate_drupal/tests/fixtures/drupal7.php",
+      "modules/search/tests/UnicodeTest.txt",
+      "modules/system/tests/logo.svgz",
+      "node_modules/*",
+      "profiles/demo_umami/modules/demo_umami_content/default_content/languages/es/**/*",
+      "themes/bartik/color/preview.html",
+      "COPYRIGHT.txt",
+      "MAINTAINERS.txt",
+      "package.json",
+      "yarn.lock",
+      "misc/cspell/dictionary.txt"
+    ],
+    "ignoreRegExpList": [
+      "^msgstr .*",
+      "!!binary .*",
+      "%[0-9][0-9A-F]"
+    ],
+    "dictionaries": ["drupal","companies", "fonts", "html", "php", "softwareTerms"],
+    "dictionaryDefinitions": [
+      { "name": "drupal", "path": "./misc/cspell/dictionary.txt"}
+    ],
+    "flagWords": [
+      "hte"
+    ],
+    "overrides": [
+      {
+        "filename": "**/{*.engine,*.inc,*.install,*.module,*.profile,*.theme}",
+        "languageId": "php"
+      },
+      {
+        "filename": "**/scripts/{*.php.txt, *.sh}",
+        "languageId": "php"
+      }
+    ]
+}
diff --git a/core/lib/Drupal/Component/Utility/Random.php b/core/lib/Drupal/Component/Utility/Random.php
index 6c2f9056e590e0d9accb56756fb897cd7a2e22d2..22c971c41384fabf12217847798bae78bc86e367 100644
--- a/core/lib/Drupal/Component/Utility/Random.php
+++ b/core/lib/Drupal/Component/Utility/Random.php
@@ -192,6 +192,7 @@ public function object($size = 4) {
    *   Nonsense latin words which form sentence(s).
    */
   public function sentences($min_word_count, $capitalize = FALSE) {
+    // cSpell:disable
     $dictionary = ["abbas", "abdo", "abico", "abigo", "abluo", "accumsan",
       "acsi", "ad", "adipiscing", "aliquam", "aliquip", "amet", "antehabeo",
       "appellatio", "aptent", "at", "augue", "autem", "bene", "blandit",
@@ -223,6 +224,7 @@ public function sentences($min_word_count, $capitalize = FALSE) {
       "virtus", "voco", "volutpat", "vulpes", "vulputate", "wisi", "ymo",
       "zelus",
     ];
+    // cSpell:enable
     $dictionary_flipped = array_flip($dictionary);
     $greeking = '';
 
diff --git a/core/lib/Drupal/Core/Language/LanguageManager.php b/core/lib/Drupal/Core/Language/LanguageManager.php
index c0177df11412dfa1e600cfe118bc792a7670b66d..eb5295cdbe570e13c383ea9808bfb6d02ae87c21 100644
--- a/core/lib/Drupal/Core/Language/LanguageManager.php
+++ b/core/lib/Drupal/Core/Language/LanguageManager.php
@@ -229,6 +229,7 @@ public static function getStandardLanguageList() {
     // The "Left-to-right marker" comments and the enclosed UTF-8 markers are to
     // make otherwise strange looking PHP syntax natural (to not be displayed in
     // right to left). See https://www.drupal.org/node/128866#comment-528929.
+    // cSpell:disable
     return [
       'af' => ['Afrikaans', 'Afrikaans'],
       'am' => ['Amharic', 'አማርኛ'],
@@ -326,6 +327,7 @@ public static function getStandardLanguageList() {
       'zh-hans' => ['Chinese, Simplified', '简体中文'],
       'zh-hant' => ['Chinese, Traditional', '繁體中文'],
     ];
+    // cSpell:enable
   }
 
   /**
@@ -340,6 +342,7 @@ public static function getStandardLanguageList() {
    *   names as values.
    */
   public static function getUnitedNationsLanguageList() {
+    // cSpell:disable
     return [
       'ar' => ['Arabic', /* Left-to-right marker "‭" */ 'العربية', LanguageInterface::DIRECTION_RTL],
       'zh-hans' => ['Chinese, Simplified', '简体中文'],
@@ -348,6 +351,7 @@ public static function getUnitedNationsLanguageList() {
       'ru' => ['Russian', 'Русский'],
       'es' => ['Spanish', 'Español'],
     ];
+    // cSpell:enable
   }
 
   /**
diff --git a/core/lib/Drupal/Core/Locale/CountryManager.php b/core/lib/Drupal/Core/Locale/CountryManager.php
index b2f094c37a7438b78ebcdb659d31bf511cc51864..b5b01acfe0deca56424341ad01cb4dba09d067ff 100644
--- a/core/lib/Drupal/Core/Locale/CountryManager.php
+++ b/core/lib/Drupal/Core/Locale/CountryManager.php
@@ -37,6 +37,7 @@ public function __construct(ModuleHandlerInterface $module_handler) {
    *   An array of country code => country name pairs.
    */
   public static function getStandardList() {
+    // cSpell:disable
     $countries = [
       'AC' => t('Ascension Island'),
       'AD' => t('Andorra'),
@@ -297,6 +298,7 @@ public static function getStandardList() {
       'ZM' => t('Zambia'),
       'ZW' => t('Zimbabwe'),
     ];
+    // cSpell:enable
 
     // Sort the list.
     natcasesort($countries);
diff --git a/core/misc/cspell/dictionary.txt b/core/misc/cspell/dictionary.txt
new file mode 100644
index 0000000000000000000000000000000000000000..eaba7a36cc54d1ee8d25ee64e7d236ef6f452445
--- /dev/null
+++ b/core/misc/cspell/dictionary.txt
@@ -0,0 +1,2262 @@
+a'foo
+abantu
+abbrfilter
+abcdefg
+abcdefghijklmno
+abcdefghijklmnopqrstuvwxyz
+abempty
+abiword
+absolutezero
+accesslog
+accum
+actionid
+adamson
+adbin
+addedline
+addtogroup
+admin's
+adminforms
+adminlabel
+adnum
+adrelid
+adsense
+adsrc
+aewesome
+aflopend
+afterbegin
+afterclose
+aftercreate
+afterend
+ahah
+ahughes
+aimez
+ajaxcallback
+ajaxify
+ajaxing
+akiko
+aliasable
+aliquet
+alle
+allowtransparency
+allwords
+alows
+alphadecimal
+alterjs
+alternatif
+amet
+amphibius
+ampm
+and's
+anded
+andif
+annot
+annotationwithconstants
+annots
+anonyme
+anonymize
+anothermodule
+anotherwordenglish
+anotherwordgerman
+antilop
+anyall
+api's
+apng
+apos
+appers
+applix
+aptain
+archiver
+archivers
+arctor
+argaven
+arity's
+arrakis
+arrayx
+arrowrefresh
+arrowreturn
+arrowreturnthick
+arrowstop
+arrowthick
+arrowthickstop
+arrr
+ascript
+asdf
+asdrsad
+assertable
+assertsame
+asssert
+asterix
+asubject
+atomentry
+atomfeed
+atomrendererfeed
+atsign
+attibute
+attisdropped
+attname
+attnum
+attrdef
+attrelid
+attributename
+attrlist
+attrval
+attrvals
+atttypid
+atttypmod
+auditable
+autcomplete
+auth's
+authless
+authmap
+authz
+autocompletefocus
+autocompleteresponses
+autocompletesearch
+autocompleteselect
+autocompleting
+autocreate
+autocreated
+autocreation
+autodetect
+autodiscovered
+autoescape
+autoescaped
+autoescaping
+autofilling
+autofix
+autofloat
+autogenerate
+autogenerator
+autoincrement
+autoincrementing
+autoindex
+autoloadable
+autoloaded
+autoloader
+autoloaders
+autoloading
+autop
+autoplay
+autoreply
+autosave
+autosubmit
+autowire
+autowired
+autowiring
+availble
+backend's
+backlink
+backlinks
+backport
+backreferences
+backtraces
+bakeware
+bangpow
+barbar
+barbaz
+barchart
+barfoo
+barmm
+baro
+barqux
+bartik
+bartik's
+basefield
+basepath
+baseroot
+basestrings
+basetheme
+basicpage
+basicstyles
+bazbaz
+bazinga
+bazqux
+bazs
+beatle
+becalled
+beforeclose
+beforecreate
+beforeend
+behat
+bergmann
+berne
+bgblue
+bgcolor
+bgred
+bgsound
+biblio
+bigpipe
+bigserial
+bikeshed
+bikesheds
+bing
+bistromathic
+bitmask
+bkmgtpezy
+bkslshv
+blackhat
+blist
+blockarticles
+blockbasic
+blockcontent
+blocknodebundle
+blockpromoted
+blockquotes
+blockrecipe
+blocktest
+blogapi
+bloggy
+blorf
+blub
+bnode
+bodyformat
+bodyless
+bodyvalue
+boing
+bomofo
+bonacieux
+boskoop
+boskop
+bovigo
+breezer
+brion
+brotli
+browserkit
+browsertest
+browsertestbase
+brûlée
+bscript
+bubbleable
+bubleable
+buildable
+buildinfo
+buildtest
+bundable
+bundleable
+bundleless
+buttonpane
+buttonset
+buytaert
+bytouched
+bzzzzzzzt
+cachable
+cacheability
+cacheable
+cacheablemetadata
+cacheablity
+cachebackend
+cachebackends
+cachebin
+cacheble
+cacher
+cachetag
+cachetags
+cafr
+cagatio
+cait
+calendarsignup
+callable's
+callables
+callout
+camelcase
+camelid
+camelids
+camelize
+camelized
+canonicalized
+canonicalizing
+castable
+catalana
+catbro
+catchable
+ccyy
+ccyymm
+ccyymmdd
+cdns
+cette
+cfield
+chainable
+chainedfast
+changelist
+charcodes
+checkbox's
+checkboxified
+checkboxifier
+checkboxify
+checkboxradio
+checkmark
+chedked
+chien
+chiens
+childlist
+chnged
+chocolatiers
+chromedriver
+chroot'd
+chtext
+chumillas
+chvotes
+cidhash
+cids
+cillum
+cincopa
+circlesmall
+cjds
+ckeditor
+ckers
+claro's
+classloader
+classmap
+classmaps
+classname
+classtype
+classwithconstants
+classy's
+cldr
+clearfix
+clearfix's
+cleartype
+clicksort
+clicksorter
+clist
+closethick
+closur
+cnenzrgre
+cnfi
+cochez
+codefilter
+codesniffer
+colgroups
+collegehumor
+colletion
+colonpos
+colspans
+columnschange
+comida
+commandline
+commenter's
+commenters
+commmand
+commonmark
+commontest
+comparision
+compliane
+complote
+compositionend
+compositionstart
+config's
+configentity
+configtranslation
+configurability
+configurator
+confirm's
+conformant
+conkey
+conname
+conneg
+conrelid
+constucts
+contant
+contaynz
+contentblock
+contenteditable
+contententry
+contentrendererentry
+contextual's
+contextuals
+contrained
+contribs
+controlgroup
+contype
+coord
+copmplete
+corefake
+coretest
+corge
+cotrol
+countquery
+coversions
+cpan
+cpio
+createkey
+createrole
+createuser
+crema
+cript
+crudui
+crypted
+cscript
+csrf
+csrftoken
+cssidentifier
+csslint
+csslintrc
+ctags
+ctes
+ctools
+ctund
+cucurbitaceae
+curle
+curlopt
+currenttime
+currentuser
+customly
+customrequest
+cves
+cweagans
+data's
+databasefilename
+databasename
+datafld
+dataformatas
+datapoint
+dataprovider
+datas
+datasrc
+datatypes
+datefield
+dateformatter
+datelist
+dateonly
+datepicker
+daterange
+datestamp
+datetimecallback
+datetimeiso
+datetimeplus
+datetype
+davysgrey
+daycount
+daycounter
+dblog
+dbtng
+dburl
+dcom
+ddblock
+ddev
+deckard
+deconstructor
+dedupe
+deduplicated
+deduplicates
+deepzoom
+defalt
+defaultable
+defgroup
+defintion
+deletable
+deletedline
+deletee
+deleteing
+deleter
+delim
+delsp
+denormalizable
+denormalization
+denormalize
+denormalized
+denormalizer
+denormalizers
+denormalizes
+denormalizing
+denyall
+dependee
+dependee's
+dependees
+dependening
+depenencies
+deprioritize
+dequeues
+derivedfrom
+derp
+desaturate
+desaturated
+desaturates
+desaturating
+descripcion
+deserialization
+deserializes
+destid
+destinationproperty
+destion
+destructable
+destructured
+desynchronized
+deutsch
+deutscher
+devel
+deviantart
+dflt
+diactoros
+dialog's
+dialogcreate
+dialogsave
+diff'd
+diffchange
+differring
+discoverability
+displaymessage
+displayname
+distincted
+ditka
+divs
+dnumber
+docblock
+docroot
+docroots
+docx
+dolore
+dont
+doubleclick
+downcasting
+downlevel
+doxygen
+drag'n'drop
+draggable
+dragtable
+dramallama
+dramallamas
+drei
+drillable
+driveletter
+drivernumber
+drivertest
+drivertestmysql
+drivertestpgsql
+drivertext
+dropbutton
+dropbuttons
+droping
+dropzone
+drup
+drupalci
+drupaldatetime
+drupaldevdays
+drupalget
+drupalimage
+drupalimage's
+drupalimagecaption
+drupalin
+drupalism
+drupalisms
+drupallink
+drupalmedia
+drupalmedialibrary
+drupaltest
+drupalunlink
+druplicon
+drush
+drépal
+dublincoreentry
+dublincorefeed
+dublincorerendererentry
+dublincorerendererfeed
+dynsrc
+défaut
+détruire
+eacute
+easyrdf
+ecmascript
+editables
+editdrupalimage
+editorconfig
+editunblock
+eerste
+egroe
+egulias
+eins
+elbonia
+elementspath
+elems
+elit
+embed's
+emebd
+emogrifier
+emptry
+emptyparagraphkiller
+emtity
+emtpy
+encapsed
+encoding's
+endapply
+endautoescape
+endcode
+endembed
+endfor
+endlink
+endmacro
+endofheader
+endofscript
+endpo
+endset
+endtrans
+eniac
+enim
+enoki
+enregistrer
+entit
+entites
+entitiesto
+entitynodeedit
+entityreference
+entitytype
+entityviewedit
+entrypoint
+eridani
+errmode
+errored
+errrf
+escapeable
+eslintignore
+eslinting
+espagnol
+ession
+estraven
+etag
+etags
+etheopian
+eurozone
+evenodd
+eventhandler
+exampleurl
+exdep
+exeption
+existant
+exitcode
+expirable
+extlink
+extraday
+extrasmall
+extraspace
+exts
+fabpot
+faible
+failonerror
+fakepath
+falsey
+falsish
+fapi
+farb
+farbtastic
+fatals
+favicon
+favicons
+favourite
+favstar
+fcgi
+februar
+feededit
+fetchmode
+fffffg
+ffnli
+fichiers
+fieldable
+fieldapi
+fieldblock
+fieldbody
+fieldby
+fieldeset
+fieldgroups
+fielditem
+fieldlinks
+fieldnames
+fieldright
+fieldsets
+filecount
+filefield
+filefields
+filelist
+filemime
+filesort
+filespecs
+filestorage
+filesystems
+filetransfer
+filevalidationerror
+fillfactor
+filterprovider
+filtertypes
+findwith
+finegrained
+firstcolumn
+fixnull
+flexbox
+flexslider
+flic
+flickr
+floatingspace
+foaf
+foat
+focusable
+focusring
+fodg
+fodp
+fods
+fodt
+fontsizer
+fooalert
+foobarbaz
+foobargorilla
+foobars
+foobartik
+foobaz
+foofoo
+foomm
+foos
+fooÿñ
+forder
+foreaching
+forena
+forentity
+formated
+formating
+formatless
+formattable
+formatter's
+formvalidation
+fouc
+fourcol
+fourthcolumn
+fozzie
+fqcn
+fqdn
+francais
+français
+fraîche
+freenode
+frombracket
+frontcontroller
+frontpage
+fsdf
+ftest
+fubar
+fudgy
+fulldata
+fulldate
+fulltext
+fullwidth
+funciona
+functionaljavascripttest
+functionaltest
+funic
+furchtbar
+gabilondo
+gato
+gaurd
+gbmb
+get's
+getcode
+getfile
+gethttpclient
+geting
+getlist
+getmachine
+getview
+gids
+gifs
+giggabyte
+gitattributes
+gitignored
+gloop
+gnomovision
+gnumeric
+goldfinger
+gonner
+googleapis
+gotit
+gotwo
+goutte
+grandgrandchild
+grandgrandchild's
+granularities
+grayblue
+greeking
+greyskull
+gripsmall
+groupable
+groupby
+groupname
+groupnames
+groupwise
+guzzle's
+guzzlehttp
+gzipped
+hande
+hant
+hardcode
+hardcodes
+hardcoding
+harkonnen
+harnhammar
+hasdata
+hasher
+hashmarks
+hateoas
+hbox
+heartz
+heke
+hellip
+helpfiles
+heroless
+herpderp
+herro
+heure
+heures
+hidpi
+highwater
+hijklmn
+hilfetestmodul
+hilited
+hinode
+hippopotamidae
+hisu
+hisue
+hoglet
+hola
+hookname
+horizontalrule
+hosters
+hostnames
+hreflang
+hrefs
+htaccess
+htkey
+htmlcorrector
+htmlpurifier
+htmls
+htmltidy
+htmlto
+httpd
+httpheader
+httpkernel
+httponly
+httpoxy
+huhuu
+humfrey
+hurlant
+hustlin
+hwldf
+iacute
+iana
+icann
+ichars
+iconwrap
+idconflict
+idekey
+idempotency
+idempotently
+identation
+identifier's
+idmap
+ieid
+iframe's
+iframes
+iframeupload
+ignoretag
+iids
+ilike
+imageapi
+imagecache
+imagecreatefrom
+imagefield
+imagefields
+imagelink
+imagemagick
+imagetest
+inator
+indetation
+indexname
+indexrelid
+indisprimary
+indkey
+indrelid
+ingoa
+inited
+inno
+inorrect
+inpur
+inputtypes
+insidekeyword
+inspectable
+instace
+instaclick
+install's
+installable
+instantiator
+inteface
+intefacewithconstants
+interger
+internal's
+intlinks
+introspectable
+invalida
+invalidateby
+invalidators
+invalididentifier
+invokable
+iopt
+ip's
+isam
+isdst
+isid
+isinstallable
+isnew
+items's
+itoa
+itok
+itunesentry
+itunesfeed
+itunesrendererentry
+itunesrendererfeed
+ized
+j'aime
+jamo
+janeway
+januar
+januari
+janvier
+javascripts
+jcbfyr
+jessebeach
+jkro
+jnoub
+johansson
+johndoe
+johnsmith
+jours
+jqueryui
+json's
+jsonapi
+jsonlint
+jssdk
+jumplinks
+juni
+junidecode
+junit
+justifyblock
+justifycenter
+justifyleft
+justifyright
+justinrainbow
+kakec
+kangarookitten
+kerneltest
+kernighan
+keyname
+keypresses
+keyvalue
+killswitch
+kinberg
+kitt
+kolkata
+kontex
+kpresenter
+kristiaan
+kses
+kspread
+kthxbai
+kword
+laatste
+labely
+lamoids
+langcode
+langcodes
+langname
+languageswitcher
+larowlan
+lastsplit
+latn
+layouted
+lazybuilder
+lazyload
+lazyloader
+lcode
+ldquo
+leftjoin
+libc
+libellé
+libicu
+libmysqlclient
+librariesby
+libyaml
+licious
+lified
+lightbulb
+lightninggreen
+linebreak
+linebreaks
+linecap
+linefeeds
+linkability
+linkback
+linkgenerator
+linkification
+linksby
+linktitle
+lisu
+litererally
+livescript
+llamaids
+llamasarelame
+llame
+llamma
+lnumber
+localemark
+localetranslatedirty
+localizable
+localpath
+lolspeak
+longblob
+longerthan
+longtext
+loquesea
+loreming
+loremipsumloremipsum
+lowercased
+lowlevel
+lowline
+lrdd
+lspeak
+lsquo
+lstitle
+ltitle
+ltlanguage
+lugin
+lundi
+lzop
+maailma
+macbinary
+machinename
+madeup
+magrathea
+mainpage
+makealternatemessage
+makedefaultmessage
+makewarningmessage
+mame
+mank
+mapkey
+mapwith
+mariadb
+maryjane
+marz
+marzo
+matchout
+mathematica
+mattfarina
+maxage
+maxdepth
+maximumred
+maxlifetime
+maxsize
+may've
+maynot
+mbytes
+mdash
+mdhash
+mediumint
+mediumtext
+membersonly
+menulist
+merhaba
+messagekey
+metacharacters
+metainformation
+metapackage
+metapackages
+metatag
+metatags
+methodname
+meφω
+miaus
+middlewares
+midgardmvc
+mikey
+milli
+mimeheaders
+mimetypes
+mimick
+minifiers
+minifyzombies
+minimise
+minipager
+minky
+minusthick
+mirakolous
+misrendered
+missingkey
+missingkeys
+miterlimit
+mjuc
+mlfr
+mlid
+mlids
+moby
+mocktail
+mocktails
+mocky
+moderatable
+modernizr
+modernizr's
+modulename
+modulenarrow
+modules's
+mojito
+montag
+monthnames
+moono
+mooooh
+mosie
+mostrar
+moutons
+moyenne
+mple
+msgbox
+msgctxt
+msgid
+msgstr
+msword
+mtas
+mtimes
+mucho
+mulrev
+mulrevpub
+multibuys
+multibyte
+multicardinality
+multicolumn
+multifield
+multigroup
+multilanguage
+multilink
+multipage
+multipass
+multipleforms
+multirow
+multisite
+multistar
+multistep
+multivalue
+multivalued
+multiwidgetfield
+munge
+muuh
+muun
+muuuh
+myclabs
+myclass
+mydistro
+mydriver
+myeditor
+myeditoroverride
+myfragment
+myfrontpage
+myfunctions
+mymenu
+mymodule
+mynewpassword
+myothermenu
+mypath
+myprimarykey
+myprofile
+myproject
+myrootuser
+myroute
+myselect
+myservice
+mysetting
+mysite
+mysqladmin
+mysqldump
+mystring
+mytab
+mytable
+mytheme
+mytube
+mytype
+myvalue
+myvar
+myverylongurl
+myverylongurlexample
+műveletek
+nalias
+nameofbin
+namespacing
+narf
+nbaz
+nbchoices
+nblocks
+ncck
+ncontent
+ncript
+ndash
+ndelay
+ndocs
+nearbykeyword
+necolas
+negotiatiors
+nemo
+networkerror
+newcol
+newdata
+newfieldinitial
+newname
+newnode
+newstr
+newterm
+nextval
+nfocus
+nids
+nightlies
+nightwatch
+nightwatchjs
+nmedi
+nmenu
+nmouseover
+nmsgid
+nmsgstr
+nntp
+noaccess
+noadd
+nocache
+nocase
+nocdata
+nocookie
+nocssjs
+nodeaccess
+nodeapi
+nodelink
+nodereference
+nodo
+noemptytag
+noevent
+nofields
+nofollow
+noindex
+nojs
+nolink
+nomask
+nonamespace
+nonconfigurable
+nonexistingfilename
+nonoptional
+nonspacing
+nonwordgerman
+nonworditem
+noquotes
+normalizer's
+noschema
+noslash
+nosniff
+nostart
+nosuchcolumn
+nosuchindex
+nosuchscheme
+nosuchtable
+nosuchtag
+notag
+notawordenglish
+notawordgerman
+notexisting
+nothere
+notnull
+notsimpletest
+nourriture
+noxss
+nplurals
+npoll
+nprofile
+nresponse
+nspname
+nstrings
+nsync
+ntaxonomy
+ntfs
+nturn
+nullaction
+nyan
+nyancat
+nyans
+nzdt
+nœud
+objectid
+objectindex
+oembed
+officedocument
+oldsilver
+omitscript
+omittable
+ondemand
+onecol
+oneplusfourgrid
+onetwo
+onewidgetfield
+onmediaerror
+onoff
+opendocument
+opengraph
+openid
+openlayers
+openxmlformats
+oplopend
+opmls
+optgroups
+optimizable
+optin
+optionchecker
+optionwidgets
+or'd
+or's
+ored
+org's
+orgchart
+origdir
+oring
+ossp
+otherfield
+otherjob
+othername
+otherpage
+otherprofile
+otsikko
+ouptut
+outdata
+outdent
+outdir
+outro
+overidden
+overridable
+overriden
+overrider
+overrider's
+overriders
+overridetest
+overwritable
+pageable
+pagecache
+pagetop
+pageviews
+pagina
+pagnel
+pangram
+paramaters
+paramconverter
+parens
+parentc
+parentlist
+parseable
+parsererror
+pastafazoul
+pastefromword
+pastetext
+pathauto
+pathnames
+pcre
+pcss
+pdo's
+pecl
+peole
+percona
+perfoming
+performant
+perma
+permissionless
+persion
+persistable
+pharextract
+phars
+phpass
+phpcs
+phpdoc
+phpdocumentor
+phpfile
+phplint
+phps
+phpserialize
+phpspec
+phpunit
+phpunit's
+pianura
+pickable
+picturefill
+pingback
+pioggia
+pjpeg
+placeholdered
+placeholdering
+playsholdr
+plid
+pluggable
+plugins's
+pluralforms
+plusthick
+podcastentry
+podcastfeed
+poink
+pommes
+ponedjeljak
+popperedge
+popperjs
+porterstemmer
+português
+postbar
+postcondition
+postfields
+postfoo
+postge
+postgres
+postgresql
+postorder
+postprocess
+postupdate
+potx
+poweredby
+powerpoint
+powriter
+pptx
+prebar
+precache
+precompiled
+preconfigure
+preconfigured
+preconnect
+precreated
+predelete
+prefech
+prefetches
+preffix
+prefill
+prefilled
+prefilling
+prefills
+prefixsqlite
+prefoo
+preinstall
+preload
+preloadable
+preloads
+preorder
+prepended
+prepending
+prepopulate
+prepopulated
+prepopulates
+prepopulating
+prepopulation
+preprocess
+preprocesses
+preprocessors
+prerender
+prerendered
+presave
+presentationml
+presetid
+presetname
+pression
+pretransaction
+preuninstall
+processlist
+projecta
+projectb
+proname
+propegated
+propertyname
+prophesize
+prophesized
+prophesizing
+protcol
+protossl
+proxied
+proxying
+pseudocode
+pseudotag
+ptablenode
+pterm
+pulks
+punit
+puzzlepiece
+pvde
+pwprompt
+qcait
+queryor
+querystring
+querystrings
+questionmark
+quickedit
+quickediting
+quickeditor
+quicklinks
+quickstart
+quicktime
+quinlan
+quux
+quxqux
+qvalue
+qvalues
+qwer
+qwerqwer
+ragdoll
+ralouphie
+rasterizable
+rasterize
+rasterized
+rasterizes
+rawurlencoded
+rawurlencoding
+rbaz
+rdfa
+rdfs
+rdftype
+rdquo
+readmore
+readonlydir
+readwrite
+readystate
+realelement
+realpaths
+realword
+rebuilder
+receieved
+reclosed
+recolorable
+redirections
+redstrawberryhiddenfield
+refactorings
+refback
+referenceable
+referenceables
+referencer
+referencers
+referer
+refinable
+regclass
+regexes
+rehydrated
+reimplement
+reimplementing
+reindex
+reindexing
+reinitializes
+reinject
+reinstantiated
+reiss
+relkind
+relname
+relnamespace
+removeformat
+renderable
+renderables
+renderd
+renderer's
+renderered
+renormalize
+reparenting
+reparsed
+replyto
+require'd
+rerender
+rerendered
+rerendering
+resampling
+resave
+resaved
+resaving
+rescan
+resizer
+resonse
+restirct
+restplugin
+restrictor
+restripe
+restriped
+restui
+rethrown
+retrigger
+returntransfer
+reuploading
+revisionability
+revisionable
+revisioned
+revisionid
+revisioning
+revist
+revlog
+revpub
+ribisi
+ript
+ritchie
+robloach
+robo
+rolename
+roly
+roota
+rootb
+routable
+routeable
+routename
+rowspans
+rowtest
+rpos
+rrggbb
+rsyslog
+rtsp
+ruleset
+rulesets
+rupal
+rxpq
+répét
+répété
+safa
+safed
+sameline
+samename
+sameorigin
+sanitizable
+sapere
+sata
+savepath
+savepoints
+sayre
+scaffol
+scarlett
+schemaapi
+schemaless
+schemaname
+schemeless
+schipul
+schipulcon
+scorewords
+screenreader
+screenreaders
+scri
+scriptable
+scriptlet
+scrollable
+scrollbars
+scrscriptipt
+sdeeeee
+searchdirs
+searchfield
+searchpages
+sebe
+secondcolumn
+seld
+selectbox
+selectlist
+semver
+sendmail
+seralization
+seriailize
+serializer's
+serialzer
+serviceform
+sesison
+sess
+sessionpath
+settingstray
+setttings
+setval
+sevice
+sharedspace
+shatner
+shortcode
+shorterthan
+shortlink
+shortname
+shortnames
+showblocks
+shrinked
+sidebarborders
+siema
+silverlight
+silvie
+simpletest
+simpletest's
+simpletests
+singlebyte
+sioc
+sioct
+sisko
+sitename
+sitewide
+sivun
+skiptags
+skos
+skynet
+skłodowska
+slackjaw
+slashentry
+slashrendererentry
+slatkin
+sloopal
+smacss
+smalldatetime
+smallint
+smtp
+someclass
+somecompany
+somefieldname
+somefile
+somelinks
+somemodule
+someplugin
+someschema
+sometext
+somethinggeneric
+soofy
+sortby
+sorteren
+sourcearea
+sourcearea's
+sourcedialog
+sourcedialog's
+sourcedir
+sourceid
+spacebar
+spagna
+spamspan
+spdx
+specialchar
+specialchars
+spiffiness
+splitbuttons
+spreadsheetml
+sqlpassword
+sqlusername
+sqruct
+squaresmall
+squiz
+squizlabs
+srcset
+ssess
+ssid
+stardivision
+starrrrr
+startpunt
+starzzzz
+statuscode
+stdclass
+stdlib
+stitle
+streamwrapper
+streamwrappers
+strikethrough
+stringable
+stringis
+striptags
+strs
+sttid
+stuffit
+styleguide
+styleing
+stylelint
+stylescombo
+subarrays
+subchild
+subclassing
+subcompile
+subcondition
+subcontainer
+subdir
+subelements
+subfolder
+subform
+subform's
+subforms
+subjectkeyword
+subkey
+subkeys
+submenu
+submited
+subpackage
+subparse
+subpath
+subpatterns
+subplugins
+subproject
+subprojects
+subproperties
+subqueries
+subquery
+subrequest
+subrequest's
+subrequests
+subresults
+subselect
+subsequentially
+subseven
+subshell
+substrategies
+subsub
+subsubtheme
+subtheme
+subtheme's
+subthemes
+subtoken
+subvalue
+subvalues
+subview
+suggestionnotimplemented
+suis
+sulaco
+sunz
+sunzzzzzzz
+supercede
+suppresion
+supresses
+sut's
+svenska
+svgs
+svgz
+svibanj
+swcf
+symfony's
+symlinking
+symlinks
+synchronizable
+syrop
+sytem
+tabarnak
+tabbable
+tabbingmanager
+tabindex
+tabledrag
+tableheader
+tableinfo
+tableresponsive
+tableselect
+tablesort
+tablesort's
+tablesorts
+tabset
+tabwidth
+tagstack
+tagwords
+takeshita
+tappable
+targetdir
+tarz
+tascript
+taskless
+tatou
+tbodies
+tcomment
+tdlanguage
+teletubbies
+tempfile
+templating
+tempstore
+tempuser
+tendenci
+tercera
+terok
+testajax
+testattribute
+testblock
+testbody
+testbot
+testbots
+testcase
+testcases
+testcontent
+testcontextual
+testdescription
+testdialog
+testdisplay
+testen
+testfetch
+testfield
+testfilename
+testfilter
+testformat
+testfunc
+testfunction
+testget
+testgroups
+testid
+testitem
+testkey
+testlist
+testload
+testname
+testnoschema
+testproject
+testproperty
+testservice
+teststring
+testsuite
+testsuites
+testvalue
+testwithleadingslash
+testwithnewline
+testwithslashes
+testwithtrailingslash
+texample
+textareas
+textboxes
+texte
+textfield
+textfield's
+textfields
+textfile
+textformat
+textgroup
+textwithsummary
+thaana
+themable
+themeable
+themename
+themer
+themers
+themey
+theming
+theseer
+theseparator
+thingie
+thirdcolumn
+thisval
+threadentry
+threadingrendererentry
+threecol
+throttleable
+tids
+timecurrent
+timeframe
+timegate
+timemap
+timepicker
+timespan
+timetime
+tinyint
+tinytext
+tiplist
+titel
+titlealert
+titlebar
+titleslogan
+tlds
+tmpdir
+tmpfs
+tnid
+todos
+toepassen
+toggleable
+togglewrap
+tongatapu
+toolgroup
+toolgroups
+toolkits
+toplevel
+topop
+torder
+totalcount
+totoro
+totranslate
+touchevent
+touchevents
+tparams
+trackback
+trailingslash
+traint
+tranformed
+transferthick
+transitionend
+translatables
+translateable
+transpiled
+traslation
+trayblock
+trex
+trgm
+trid
+troopal
+truecolor
+tsid
+tspan
+turbolinks
+twistie
+twoa
+twob
+twocol
+txtzzzz
+typehint
+typehinted
+typehinting
+typehints
+typemanager
+typogrify
+typr
+tzid
+uberawesome
+ubmit
+ui's
+uicrud
+uids
+ulwa
+umami
+unajaxify
+unaliased
+unallowed
+unassigning
+unassigns
+unban
+unbans
+unbold
+unbundleable
+unbustable
+uncacheable
+uncategorized
+uncheck
+unchecking
+unclickable
+uncollapsible
+unconfigured
+undecorate
+undelayed
+undelegate
+undraggable
+uneccesarilly
+unextracted
+unfieldable
+unflagged
+ungenerated
+ungroup
+ungroupable
+ungrouped
+unhashed
+unhide
+unicoded
+unidecode
+unidecoder
+unindented
+unindexed
+uninstal
+uninstallation
+uninstallations
+uninstantiatable
+uninstantiated
+unioned
+unitalicize
+unixepoch
+unixtimestamp
+unkeyed
+unknow
+unmanaged
+unmatch
+unmigrated
+unminified
+unmoderated
+unmunge
+unmunged
+unmunging
+unoptimized
+unpad
+unparsable
+unparseable
+unpermissioned
+unprefix
+unprefixed
+unpreloaded
+unprocessable
+unpromote
+unpromoted
+unpublish
+unpublishes
+unpublishing
+unregisters
+unrendered
+unrevisionable
+unrouted
+unsanitized
+unserialization
+unserialized
+unserializes
+unserializing
+unsets
+unsetting
+unshortened
+unsimplified
+unsticky
+unstripped
+unsynchronized
+untabbable
+untarring
+untruncated
+untrustable
+untrusted
+unvalidated
+unversioned
+unwrapper
+upcasted
+upcasting
+updateing
+updateprogress
+updatetype
+upload's
+uploader
+uploaders
+uploadprogress
+uploadsize
+uppercased
+upscaling
+upsert
+upserting
+upto
+urandom
+uri's
+url's
+urlalias
+urldecoding
+urlto
+useage
+usecase
+userid
+userinfo
+userref
+userreference
+users's
+userspace
+usuario
+utton
+uuid's
+uuids
+validatable
+valign
+vals
+vampirize
+vancode
+varchar
+vbscript
+veeeery
+vendored
+veniam
+verison
+versionable
+versionless
+veryfast
+verygreatdrupalmodule
+vfsstream
+vibber
+vids
+viewmode
+viewport's
+viewports
+viewsviewfiles
+vivamus
+vmov
+vocabfixed
+vocablocalized
+vocabs
+vocabtranslate
+volgende
+vorige
+vous
+vxezb
+vxfbk
+waitfor
+wambooli
+wamboolipastafazoul
+wcprops
+wcsrefsdf
+webassert
+webcal
+webconfig
+webdriver
+webflo
+webfonts
+webheads
+webhosting
+webm
+webmention
+webmozart
+webroot
+webserver
+webservers
+webtest
+webuser
+wellformedwebentry
+wellformedwebrendererentry
+whakamataku
+whitespaces
+whois
+whos
+widget's
+widt
+widthx
+wiget
+wimoids
+windir
+winnt
+withut
+wmlscript
+woff
+wonkiness
+wontmatter
+wordfilter
+wordprocessingml
+wordsafe
+wordword
+worklow
+workspace's
+workspaceswitcher
+wqkcy
+writability
+writeln
+wrongparam
+wsod
+wwwrun
+wxuczpzdmc
+wysiwygs
+xampl
+xbap
+xbbcode
+xbeg
+xbitmap
+xcache
+xfbml
+xhr's
+xjkm
+xlen
+xlgp
+xlink
+xlsx
+xmlhttp
+xmlhttprequest
+xmlurl
+xoxo
+xpsdocument
+xsiemax
+xsses
+xtmpl
+xvnsm
+xxgroup
+xyabz
+yamls
+yarhar
+yarr
+ybeg
+yearless
+ylen
+yml's
+yokotsoko
+yottabytes
+yourbackend
+yourmodule
+youtube
+yowser
+yoyodyne
+yygroup
+yyyymm
+zartan
+zendframework
+zipf's
+znor
+zomg
+zoneinfo
+zonelist
+zoomin
+zoomout
+zwei
+zxvf
+zzgroup
+übersetzung
diff --git a/core/modules/dblog/tests/src/Functional/DbLogTest.php b/core/modules/dblog/tests/src/Functional/DbLogTest.php
index 5391280b74f2579525156b94450a38090ca5958b..7ce90acf3e5ba9fa8b0fc8fdb7170054daed4de1 100644
--- a/core/modules/dblog/tests/src/Functional/DbLogTest.php
+++ b/core/modules/dblog/tests/src/Functional/DbLogTest.php
@@ -819,6 +819,7 @@ public function testTemporaryUser() {
    */
   public function testOverviewLinks() {
     $this->drupalLogin($this->adminUser);
+    // cSpell:disable-next-line
     $this->generateLogEntries(1, ['message' => "&lt;script&gt;alert('foo');&lt;/script&gt;<strong>Lorem</strong> ipsum dolor sit amet, consectetur adipiscing & elit."]);
     $this->drupalGet('admin/reports/dblog');
     $this->assertSession()->statusCodeEquals(200);
diff --git a/core/modules/file/tests/src/Functional/DownloadTest.php b/core/modules/file/tests/src/Functional/DownloadTest.php
index 35d2589323ca7b01cef76ae2b9c9bd01aeedef6e..2ed06384df7ef0b93cf8509e23b3ddb38e91e164 100644
--- a/core/modules/file/tests/src/Functional/DownloadTest.php
+++ b/core/modules/file/tests/src/Functional/DownloadTest.php
@@ -115,6 +115,7 @@ public function testFileCreateUrl() {
       // Characters that look like a percent-escaped string.
       "%23%25%26%2B%2F%3F" .
       // Characters from various non-ASCII alphabets.
+      // cSpell:disable-next-line
       "éøïвβ中國書۞";
     $basename_encoded = '%20-._~%21%24%27%22%28%29%2A%40%5B%5D%3F%26%2B%25%23%2C%3B%3D%3A__' .
       '%2523%2525%2526%252B%252F%253F' .
diff --git a/core/modules/file/tests/src/Functional/FileManagedTestBase.php b/core/modules/file/tests/src/Functional/FileManagedTestBase.php
index f18972aef7855d513c140324c6ab017544d9eeff..8f7964e1fee9e900d3257d547bb529082794f311 100644
--- a/core/modules/file/tests/src/Functional/FileManagedTestBase.php
+++ b/core/modules/file/tests/src/Functional/FileManagedTestBase.php
@@ -183,6 +183,7 @@ public function createUri($filepath = NULL, $contents = NULL, $scheme = NULL) {
     if (!isset($filepath)) {
       // Prefix with non-latin characters to ensure that all file-related
       // tests work with international filenames.
+      // cSpell:disable-next-line
       $filepath = 'Файл для тестирования ' . $this->randomMachineName();
     }
     if (!isset($scheme)) {
diff --git a/core/modules/file/tests/src/Functional/FileTokenReplaceTest.php b/core/modules/file/tests/src/Functional/FileTokenReplaceTest.php
index 5ff9d3d6f91bca5d177905fd505ac16f6a84c5ed..650210dd972db3f7776bb29d5c93813135276b64 100644
--- a/core/modules/file/tests/src/Functional/FileTokenReplaceTest.php
+++ b/core/modules/file/tests/src/Functional/FileTokenReplaceTest.php
@@ -37,6 +37,7 @@ public function testFileTokenReplacement() {
 
     $test_file = $this->getTestFile('text');
     // Coping a file to test uploads with non-latin filenames.
+    // cSpell:disable-next-line
     $filename = \Drupal::service('file_system')->dirname($test_file->getFileUri()) . '/текстовый файл.txt';
     $test_file = file_copy($test_file, $filename);
 
diff --git a/core/modules/file/tests/src/Kernel/FileManagedUnitTestBase.php b/core/modules/file/tests/src/Kernel/FileManagedUnitTestBase.php
index ae6121421adf19e38785304f14540536605818d7..277cc282dab1e545ee2fb6ee1928a3c21267e015 100644
--- a/core/modules/file/tests/src/Kernel/FileManagedUnitTestBase.php
+++ b/core/modules/file/tests/src/Kernel/FileManagedUnitTestBase.php
@@ -196,6 +196,7 @@ public function createUri($filepath = NULL, $contents = NULL, $scheme = NULL) {
     if (!isset($filepath)) {
       // Prefix with non-latin characters to ensure that all file-related
       // tests work with international filenames.
+      // cSpell:disable-next-line
       $filepath = 'Файл для тестирования ' . $this->randomMachineName();
     }
     if (!isset($scheme)) {
diff --git a/core/modules/file/tests/src/Kernel/SaveDataTest.php b/core/modules/file/tests/src/Kernel/SaveDataTest.php
index 38a53c601ec11a9edee0de4ba4e979a6fcf5b55a..c3a7a1ed01a8cf2bc87d7f2a142ddd6ed56b4a0b 100644
--- a/core/modules/file/tests/src/Kernel/SaveDataTest.php
+++ b/core/modules/file/tests/src/Kernel/SaveDataTest.php
@@ -44,6 +44,7 @@ public function testWithFilename() {
     $contents = $this->randomMachineName(8);
 
     // Using filename with non-latin characters.
+    // cSpell:disable-next-line
     $filename = 'Текстовый файл.txt';
 
     $result = file_save_data($contents, 'public://' . $filename);
diff --git a/core/modules/filter/tests/src/Kernel/FilterKernelTest.php b/core/modules/filter/tests/src/Kernel/FilterKernelTest.php
index 834518b37de20fd0bb33f32fe4da2c6ae4b39611..530ab2be1c45586b3479d28d5c7374234d352949 100644
--- a/core/modules/filter/tests/src/Kernel/FilterKernelTest.php
+++ b/core/modules/filter/tests/src/Kernel/FilterKernelTest.php
@@ -323,6 +323,7 @@ public function testLineBreakFilter() {
     // Since the line break filter naturally needs plenty of newlines in test
     // strings and expectations, we're using "\n" instead of regular newlines
     // here.
+    // cSpell:disable
     $tests = [
       // Single line breaks should be changed to <br /> tags, while paragraphs
       // separated with double line breaks should be enclosed with <p></p> tags.
@@ -381,6 +382,7 @@ public function testLineBreakFilter() {
         '<p><drupal-media data-caption=" " data-entity-type="media" data-entity-uuid="dbb16f97-cd11-4357-acde-cd09e19e312b"></drupal-media></p>' => FALSE,
       ],
     ];
+    // cSpell:enable
     $this->assertFilteredString($filter, $tests);
 
     // Very long string hitting PCRE limits.
@@ -1023,8 +1025,10 @@ public function testHtmlCorrectorFilter() {
     $f = Html::normalize('<p>test\n</p>\n');
     $this->assertEqual($f, '<p>test\n</p>\n', 'HTML corrector -- New-lines are accepted and kept as-is.');
 
+    // cSpell:disable
     $f = Html::normalize('<p>دروبال');
     $this->assertEqual($f, '<p>دروبال</p>', 'HTML corrector -- Encoding is correctly kept.');
+    // cSpell:enable
 
     $f = Html::normalize('<script>alert("test")</script>');
     $this->assertEqual($f, '<script>
diff --git a/core/modules/link/src/Plugin/migrate/process/FieldLink.php b/core/modules/link/src/Plugin/migrate/process/FieldLink.php
index 143b7ea09be8ff0761bb4110746cf48fa0a956e0..9a053f75e26064056b6ac58d6eacdb39587d32ac 100644
--- a/core/modules/link/src/Plugin/migrate/process/FieldLink.php
+++ b/core/modules/link/src/Plugin/migrate/process/FieldLink.php
@@ -74,6 +74,7 @@ protected function canonicalizeUri($uri) {
       // and &#x00FF; (except × &#x00D7; and ÷ &#x00F7;) with the addition of
       // &#x0152;, &#x0153; and &#x0178;.
       // @see https://git.drupalcode.org/project/link/blob/7.x-1.5-beta2/link.module#L1382
+      // cSpell:disable-next-line
       $link_ichars = '¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿŒœŸ';
 
       // Pattern specific to internal links.
diff --git a/core/modules/link/tests/src/Unit/Plugin/Validation/Constraint/LinkExternalProtocolsConstraintValidatorTest.php b/core/modules/link/tests/src/Unit/Plugin/Validation/Constraint/LinkExternalProtocolsConstraintValidatorTest.php
index 805690b8b8d13ad2720ebe2f9e4a1b056fa4b5bb..4db771cc517d8f57a9e51988011c04327c469312 100644
--- a/core/modules/link/tests/src/Unit/Plugin/Validation/Constraint/LinkExternalProtocolsConstraintValidatorTest.php
+++ b/core/modules/link/tests/src/Unit/Plugin/Validation/Constraint/LinkExternalProtocolsConstraintValidatorTest.php
@@ -50,6 +50,7 @@ public function providerValidate() {
     // Test allowed protocols.
     $data[] = ['http://www.drupal.org', TRUE];
     $data[] = ['https://www.drupal.org', TRUE];
+    // cSpell:disable-next-line
     $data[] = ['magnet:?xt=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C', TRUE];
 
     // Invalid protocols.
diff --git a/core/modules/locale/tests/src/Functional/LocaleConfigTranslationImportTest.php b/core/modules/locale/tests/src/Functional/LocaleConfigTranslationImportTest.php
index 3197ff9ad65ae8c388c67437070dcaaeac1add28..3162f7db1c88876c46feb037704d7871ae36238b 100644
--- a/core/modules/locale/tests/src/Functional/LocaleConfigTranslationImportTest.php
+++ b/core/modules/locale/tests/src/Functional/LocaleConfigTranslationImportTest.php
@@ -74,6 +74,7 @@ public function testConfigTranslationImport() {
 
     // Check if configuration translations have been imported.
     $override = \Drupal::languageManager()->getLanguageConfigOverride('af', 'system.maintenance');
+    // cSpell:disable-next-line
     $this->assertEqual($override->get('message'), 'Ons is tans besig met onderhoud op @site. Wees asseblief geduldig, ons sal binnekort weer terug wees.');
   }
 
diff --git a/core/modules/locale/tests/src/Functional/LocaleImportFunctionalTest.php b/core/modules/locale/tests/src/Functional/LocaleImportFunctionalTest.php
index 5ed2632e3e3f8c3d269ad287dc44faaec55d6fda..28ef8bc5bf19c9b1be61573744efd325907faa77 100644
--- a/core/modules/locale/tests/src/Functional/LocaleImportFunctionalTest.php
+++ b/core/modules/locale/tests/src/Functional/LocaleImportFunctionalTest.php
@@ -291,11 +291,13 @@ public function testConfigPoFile() {
     $config_strings = [
       'system.maintenance' => [
         '@site is currently under maintenance. We should be back shortly. Thank you for your patience.',
+        // cSpell:disable-next-line
         '@site karbantartás alatt áll. Rövidesen visszatérünk. Köszönjük a türelmet.',
         'message',
       ],
       'user.role.anonymous' => [
         'Anonymous user',
+        // cSpell:disable-next-line
         'Névtelen felhasználó',
         'label',
       ],
diff --git a/core/modules/locale/tests/src/Functional/LocaleNonInteractiveInstallTest.php b/core/modules/locale/tests/src/Functional/LocaleNonInteractiveInstallTest.php
index ea3c1b5aba1f0263079de7db1287a5b824995bfb..bb9512874ada85a7a65b818120ebd3241e8491d3 100644
--- a/core/modules/locale/tests/src/Functional/LocaleNonInteractiveInstallTest.php
+++ b/core/modules/locale/tests/src/Functional/LocaleNonInteractiveInstallTest.php
@@ -56,6 +56,7 @@ protected function installParameters() {
    */
   public function testInstallerTranslations() {
     $this->drupalGet('user/login');
+    // cSpell:disable-next-line
     $this->assertSession()->responseContains('Geben sie das Passwort für ihren Benutzernamen ein.');
   }
 
diff --git a/core/modules/locale/tests/src/Functional/LocaleUpdateTest.php b/core/modules/locale/tests/src/Functional/LocaleUpdateTest.php
index 7c470056a5d089fcc93d47ba5f2b4193b88f3568..3ca3c164beae79f64725b9128c7cf416202d7f60 100644
--- a/core/modules/locale/tests/src/Functional/LocaleUpdateTest.php
+++ b/core/modules/locale/tests/src/Functional/LocaleUpdateTest.php
@@ -150,6 +150,7 @@ public function testUpdateImportSourceRemote() {
     $this->assertEqual($history['contrib_module_three']['de']->last_checked, $this->timestampMedium, 'Translation of contrib_module_three is not updated');
 
     // Check whether existing translations have (not) been overwritten.
+    // cSpell:disable
     $this->assertEqual(t('January', [], ['langcode' => 'de']), 'Januar_1', 'Translation of January');
     $this->assertEqual(t('February', [], ['langcode' => 'de']), 'Februar_2', 'Translation of February');
     $this->assertEqual(t('March', [], ['langcode' => 'de']), 'Marz_2', 'Translation of March');
@@ -157,6 +158,7 @@ public function testUpdateImportSourceRemote() {
     $this->assertEqual(t('May', [], ['langcode' => 'de']), 'Mai_customized', 'Translation of May');
     $this->assertEqual(t('June', [], ['langcode' => 'de']), 'Juni', 'Translation of June');
     $this->assertEqual(t('Monday', [], ['langcode' => 'de']), 'Montag', 'Translation of Monday');
+    // cSpell:enable
   }
 
   /**
@@ -204,6 +206,7 @@ public function testUpdateImportSourceLocal() {
     $this->assertEqual($history['contrib_module_three']['de']->last_checked, $this->timestampMedium, 'Translation of contrib_module_three is not updated');
 
     // Check whether existing translations have (not) been overwritten.
+    // cSpell:disable
     $this->assertEqual(t('January', [], ['langcode' => 'de']), 'Januar_customized', 'Translation of January');
     $this->assertEqual(t('February', [], ['langcode' => 'de']), 'Februar_2', 'Translation of February');
     $this->assertEqual(t('March', [], ['langcode' => 'de']), 'Marz_2', 'Translation of March');
@@ -211,6 +214,7 @@ public function testUpdateImportSourceLocal() {
     $this->assertEqual(t('May', [], ['langcode' => 'de']), 'Mai_customized', 'Translation of May');
     $this->assertEqual(t('June', [], ['langcode' => 'de']), 'Juni', 'Translation of June');
     $this->assertEqual(t('Monday', [], ['langcode' => 'de']), 'Montag', 'Translation of Monday');
+    // cSpell:enable
   }
 
   /**
@@ -240,6 +244,7 @@ public function testUpdateImportModeNonCustomized() {
     $this->drupalPostForm('admin/reports/translations', [], t('Update translations'));
 
     // Check whether existing translations have (not) been overwritten.
+    // cSpell:disable
     $this->assertEqual(t('January', [], ['langcode' => 'de']), 'Januar_customized', 'Translation of January');
     $this->assertEqual(t('February', [], ['langcode' => 'de']), 'Februar_customized', 'Translation of February');
     $this->assertEqual(t('March', [], ['langcode' => 'de']), 'Marz_2', 'Translation of March');
@@ -247,6 +252,7 @@ public function testUpdateImportModeNonCustomized() {
     $this->assertEqual(t('May', [], ['langcode' => 'de']), 'Mai_customized', 'Translation of May');
     $this->assertEqual(t('June', [], ['langcode' => 'de']), 'Juni', 'Translation of June');
     $this->assertEqual(t('Monday', [], ['langcode' => 'de']), 'Montag', 'Translation of Monday');
+    // cSpell:enable
   }
 
   /**
@@ -276,6 +282,7 @@ public function testUpdateImportModeNone() {
     $this->drupalPostForm('admin/reports/translations', [], t('Update translations'));
 
     // Check whether existing translations have (not) been overwritten.
+    // cSpell:disable
     $this->assertTranslation('January', 'Januar_customized', 'de');
     $this->assertTranslation('February', 'Februar_customized', 'de');
     $this->assertTranslation('March', 'Marz', 'de');
@@ -283,6 +290,7 @@ public function testUpdateImportModeNone() {
     $this->assertTranslation('May', 'Mai_customized', 'de');
     $this->assertTranslation('June', 'Juni', 'de');
     $this->assertTranslation('Monday', 'Montag', 'de');
+    // cSpell:enable
   }
 
   /**
@@ -304,6 +312,7 @@ public function testEnableUninstallModule() {
     // Check if translations have been imported.
     $this->assertRaw(t('One translation file imported. %number translations were added, %update translations were updated and %delete translations were removed.',
       ['%number' => 7, '%update' => 0, '%delete' => 0]), 'One translation file imported.');
+    // cSpell:disable-next-line
     $this->assertTranslation('Tuesday', 'Dienstag', 'de');
 
     $edit = [
@@ -338,6 +347,7 @@ public function testEnableLanguage() {
 
     // Check if there is no Dutch translation yet.
     $this->assertTranslation('Extraday', '', 'nl');
+    // cSpell:disable-next-line
     $this->assertTranslation('Tuesday', 'Dienstag', 'de');
 
     // Add a language.
@@ -349,6 +359,7 @@ public function testEnableLanguage() {
     // Check if the right number of translations are added.
     $this->assertRaw(t('One translation file imported. %number translations were added, %update translations were updated and %delete translations were removed.',
       ['%number' => 8, '%update' => 0, '%delete' => 0]), 'One language added.');
+    // cSpell:disable-next-line
     $this->assertTranslation('Extraday', 'extra dag', 'nl');
 
     // Check if the language data is added to the database.
@@ -365,6 +376,7 @@ public function testEnableLanguage() {
 
     // Check that the Dutch translation is gone.
     $this->assertTranslation('Extraday', '', 'nl');
+    // cSpell:disable-next-line
     $this->assertTranslation('Tuesday', 'Dienstag', 'de');
   }
 
diff --git a/core/modules/locale/tests/src/Unit/LocaleLookupTest.php b/core/modules/locale/tests/src/Unit/LocaleLookupTest.php
index be265812d97fa02c75f985644e798eb69e7692a4..c515f802f1093cf01630a2f6d2282d0af6b66e4b 100644
--- a/core/modules/locale/tests/src/Unit/LocaleLookupTest.php
+++ b/core/modules/locale/tests/src/Unit/LocaleLookupTest.php
@@ -134,6 +134,7 @@ public function testResolveCacheMissWithoutFallback() {
    */
   public function testResolveCacheMissWithFallback($langcode, $string, $context, $expected) {
     // These are fake words!
+    // cSpell:disable
     $translations = [
       'en' => [
         'test' => 'test',
@@ -153,6 +154,7 @@ public function testResolveCacheMissWithFallback($langcode, $string, $context, $
         'missing pl' => 'chybějící pl',
       ],
     ];
+    // cSpell:enable
     $this->storage->expects($this->any())
       ->method('findTranslation')
       ->will($this->returnCallback(function ($argument) use ($translations) {
@@ -189,6 +191,7 @@ public function testResolveCacheMissWithFallback($langcode, $string, $context, $
    * Provides test data for testResolveCacheMissWithFallback().
    */
   public function resolveCacheMissWithFallbackProvider() {
+    // cSpell:disable
     return [
       ['cs', 'test', 'irrelevant', 'test v české'],
       ['cs', 'fake', 'irrelevant', 'falešný'],
@@ -203,6 +206,7 @@ public function resolveCacheMissWithFallbackProvider() {
       ['pl', 'missing cs', 'irrelevant', 'zaginiony czech'],
       ['pl', 'missing both', 'irrelevant', 'missing both'],
     ];
+    // cSpell:enable
   }
 
   /**
diff --git a/core/modules/media/tests/src/FunctionalJavascript/CKEditorIntegrationTest.php b/core/modules/media/tests/src/FunctionalJavascript/CKEditorIntegrationTest.php
index 8e5fb850171d4032bb629af8e80926a0c5ce59e9..48c5aabef47acc62b2135faa7fa0ab90b08a1fbb 100644
--- a/core/modules/media/tests/src/FunctionalJavascript/CKEditorIntegrationTest.php
+++ b/core/modules/media/tests/src/FunctionalJavascript/CKEditorIntegrationTest.php
@@ -667,6 +667,7 @@ public function testAlt() {
     $assert_session->elementAttributeContains('named', ['field', 'attributes[alt]'], 'placeholder', 'default alt');
 
     // Fill in the alt field, submit and return to CKEditor.
+    // cSpell:disable-next-line
     $who_is_zartan = 'Zartan is the leader of the Dreadnoks.';
     $page->fillField('attributes[alt]', $who_is_zartan);
     $this->submitDialog();
@@ -793,6 +794,7 @@ public function testTranslationAlt() {
     $host->save();
 
     $translation = $host->addTranslation('fr');
+    // cSpell:disable-next-line
     $translation->title = 'Animaux avec des noms étranges';
     $translation->body->value = $host->body->value;
     $translation->body->format = $host->body->format;
@@ -810,16 +812,20 @@ public function testTranslationAlt() {
     $this->getSession()->switchToIFrame('ckeditor');
 
     // Test that the default alt attribute displays without an override.
+    // cSpell:disable-next-line
     $this->assertNotEmpty($assert_session->waitForElementVisible('xpath', '//img[contains(@alt, "texte alternatif par défaut")]'));
     // Test `aria-label` attribute appears on the widget wrapper.
+    // cSpell:disable-next-line
     $assert_session->elementExists('css', '.cke_widget_drupalmedia[aria-label="Tatou poilu hurlant"]');
     $page->pressButton('Edit media');
     $this->waitForMetadataDialog();
     // Assert that the placeholder is set to the value of the media field's
     // alt text.
+    // cSpell:disable-next-line
     $assert_session->elementAttributeContains('named', ['field', 'attributes[alt]'], 'placeholder', 'texte alternatif par défaut');
 
     // Fill in the alt field in the dialog.
+    // cSpell:disable-next-line
     $qui_est_zartan = 'Zartan est le chef des Dreadnoks.';
     $page->fillField('attributes[alt]', $qui_est_zartan);
     $this->submitDialog();
diff --git a/core/modules/media_library/tests/src/FunctionalJavascript/TranslationsTest.php b/core/modules/media_library/tests/src/FunctionalJavascript/TranslationsTest.php
index d5ba97828c0a54a418980dfbef14377a8ee5d33b..0aa581b42feb60e6807f8250221c79b31883b848 100644
--- a/core/modules/media_library/tests/src/FunctionalJavascript/TranslationsTest.php
+++ b/core/modules/media_library/tests/src/FunctionalJavascript/TranslationsTest.php
@@ -81,12 +81,14 @@ protected function setUp(): void {
     $image->save();
 
     // Create a translated and untranslated media item in each language.
+    // cSpell:disable
     $media_items = [
       ['nl' => 'Eekhoorn', 'es' => 'Ardilla'],
       ['es' => 'Zorro', 'nl' => 'Vos'],
       ['nl' => 'Hert'],
       ['es' => 'Tejón'],
     ];
+    // cSpell:enable
     foreach ($media_items as $translations) {
       $default_langcode = key($translations);
       $default_name = array_shift($translations);
@@ -131,6 +133,7 @@ public function testMediaLibraryTranslations() {
       $media_names[] = $media_item->getText();
     }
     sort($media_names);
+    // cSpell:disable-next-line
     $this->assertSame(['Ardilla', 'Eekhoorn', 'Hert', 'Tejón', 'Vos', 'Zorro'], $media_names);
 
     $this->drupalGet('es/admin/content/media-grid');
@@ -141,6 +144,7 @@ public function testMediaLibraryTranslations() {
       $media_names[] = $media_item->getText();
     }
     sort($media_names);
+    // cSpell:disable-next-line
     $this->assertSame(['Ardilla', 'Eekhoorn', 'Hert', 'Tejón', 'Vos', 'Zorro'], $media_names);
 
     // All media should only be shown once, and should be shown in the interface
@@ -155,6 +159,7 @@ public function testMediaLibraryTranslations() {
       $media_names[] = $media_item->getText();
     }
     sort($media_names);
+    // cSpell:disable-next-line
     $this->assertSame(['Eekhoorn', 'Hert', 'Tejón', 'Vos'], $media_names);
 
     $this->drupalGet('es/node/add/article');
@@ -167,6 +172,7 @@ public function testMediaLibraryTranslations() {
       $media_names[] = $media_item->getText();
     }
     sort($media_names);
+    // cSpell:disable-next-line
     $this->assertSame(['Ardilla', 'Hert', 'Tejón', 'Zorro'], $media_names);
   }
 
diff --git a/core/modules/node/tests/src/Kernel/SummaryLengthTest.php b/core/modules/node/tests/src/Kernel/SummaryLengthTest.php
index 97830c656b0fa69fc1c314e5cecd6a9a90a40fc1..3c9c9b9551478dcadab7a621b138995f784a5c95 100644
--- a/core/modules/node/tests/src/Kernel/SummaryLengthTest.php
+++ b/core/modules/node/tests/src/Kernel/SummaryLengthTest.php
@@ -82,6 +82,7 @@ public function testSummaryLength() {
 
     // Create a node to view.
     $settings = [
+      // cSpell:disable-next-line
       'body' => [['value' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam vitae arcu at leo cursus laoreet. Curabitur dui tortor, adipiscing malesuada tempor in, bibendum ac diam. Cras non tellus a libero pellentesque condimentum. What is a Drupalism? Suspendisse ac lacus libero. Ut non est vel nisl faucibus interdum nec sed leo. Pellentesque sem risus, vulputate eu semper eget, auctor in libero. Ut fermentum est vitae metus convallis scelerisque. Phasellus pellentesque rhoncus tellus, eu dignissim purus posuere id. Quisque eu fringilla ligula. Morbi ullamcorper, lorem et mattis egestas, tortor neque pretium velit, eget eleifend odio turpis eu purus. Donec vitae metus quis leo pretium tincidunt a pulvinar sem. Morbi adipiscing laoreet mauris vel placerat. Nullam elementum, nisl sit amet scelerisque malesuada, dolor nunc hendrerit quam, eu ultrices erat est in orci. Curabitur feugiat egestas nisl sed accumsan.']],
       'promote' => 1,
     ];
diff --git a/core/modules/path/tests/src/Functional/PathAliasTest.php b/core/modules/path/tests/src/Functional/PathAliasTest.php
index 99eaa4fee0bd61b0aa95cee5b94158436c020bea..455f4e198eb60ae099363220705ae59a56e92ee7 100644
--- a/core/modules/path/tests/src/Functional/PathAliasTest.php
+++ b/core/modules/path/tests/src/Functional/PathAliasTest.php
@@ -111,6 +111,7 @@ public function testAdminAlias() {
       // currently unable to find the upper-case versions of non-ASCII
       // characters.
       // @todo fix this in https://www.drupal.org/node/2607432
+      // cSpell:disable-next-line
       $edit['alias[0][value]'] .= "ïвβéø";
     }
     $this->drupalPostForm('admin/config/search/path/edit/' . $pid, $edit, t('Save'));
@@ -266,6 +267,7 @@ public function testNodeAlias() {
       // currently unable to find the upper-case versions of non-ASCII
       // characters.
       // @todo fix this in https://www.drupal.org/node/2607432
+      // cSpell:disable-next-line
       $edit['path[0][alias]'] .= "ïвβéø";
     }
     $this->drupalPostForm('node/' . $node1->id() . '/edit', $edit, t('Save'));
diff --git a/core/modules/rest/tests/src/Unit/EventSubscriber/ResourceResponseSubscriberTest.php b/core/modules/rest/tests/src/Unit/EventSubscriber/ResourceResponseSubscriberTest.php
index 305ed3e1382d2521e6cc63f0d0c2cdb95566b81a..8ff2eae36ef7b7bcae9f75df2f81b7bdbf1120ce 100644
--- a/core/modules/rest/tests/src/Unit/EventSubscriber/ResourceResponseSubscriberTest.php
+++ b/core/modules/rest/tests/src/Unit/EventSubscriber/ResourceResponseSubscriberTest.php
@@ -57,6 +57,7 @@ public function providerTestSerialization() {
       'default' => [NULL, ''],
       'empty string' => [''],
       'simple string' => ['string'],
+      // cSpell:disable-next-line
       'complex string' => ['Complex \ string $%^&@ with unicode ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΣὨ'],
       'empty array' => [[]],
       'numeric array' => [['test']],
diff --git a/core/modules/search/tests/src/Functional/SearchNodeDiacriticsTest.php b/core/modules/search/tests/src/Functional/SearchNodeDiacriticsTest.php
index dffb3061c03d64d33329443218f74e86efe2a77f..04338ed44395793d446a0a5be2284f254aa05322 100644
--- a/core/modules/search/tests/src/Functional/SearchNodeDiacriticsTest.php
+++ b/core/modules/search/tests/src/Functional/SearchNodeDiacriticsTest.php
@@ -44,6 +44,7 @@ protected function setUp(): void {
    * Tests that search returns results with diacritics in the search phrase.
    */
   public function testPhraseSearchPunctuation() {
+    // cSpell:disable
     $body_text = 'The Enricþment Center is cómmīŦŧęđ to the well BɆĬŇĜ of æll påŔťıçȉpǎǹţș. ';
     $body_text .= 'Also meklēt (see #731298)';
     $this->drupalCreateNode(['body' => [['value' => $body_text]]]);
@@ -89,6 +90,7 @@ public function testPhraseSearchPunctuation() {
     $edit = ['keys' => 'all'];
     $this->drupalPostForm('search/node', $edit, t('Search'));
     $this->assertNoRaw('<strong>æll</strong>');
+    // cSpell:enable
   }
 
 }
diff --git a/core/modules/search/tests/src/Functional/SearchNodePunctuationTest.php b/core/modules/search/tests/src/Functional/SearchNodePunctuationTest.php
index bfe47f12435755a062dc57f58b1656d9a6368ebd..c946f9891bdf12395f51cf23c0eae137bc716f1a 100644
--- a/core/modules/search/tests/src/Functional/SearchNodePunctuationTest.php
+++ b/core/modules/search/tests/src/Functional/SearchNodePunctuationTest.php
@@ -44,6 +44,7 @@ protected function setUp(): void {
    */
   public function testPhraseSearchPunctuation() {
     $node = $this->drupalCreateNode(['body' => [['value' => "The bunny's ears were fluffy."]]]);
+    // cSpell:disable-next-line
     $node2 = $this->drupalCreateNode(['body' => [['value' => 'Dignissim Aliquam &amp; Quieligo meus natu quae quia te. Damnum&copy; erat&mdash; neo pneum. Facilisi feugiat ibidem ratis.']]]);
 
     // Update the search index.
diff --git a/core/modules/search/tests/src/Kernel/SearchExcerptTest.php b/core/modules/search/tests/src/Kernel/SearchExcerptTest.php
index 3bec241d6a159d7308663d496cf4f93e90f49722..45abf5438e8e5e7180633add433bf0b23f4df160 100644
--- a/core/modules/search/tests/src/Kernel/SearchExcerptTest.php
+++ b/core/modules/search/tests/src/Kernel/SearchExcerptTest.php
@@ -77,8 +77,10 @@ public function testSearchExcerpt() {
   public function testSearchExcerptSimplified() {
     $start_time = microtime(TRUE);
 
+    // cSpell:disable
     $lorem1 = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam vitae arcu at leo cursus laoreet. Curabitur dui tortor, adipiscing malesuada tempor in, bibendum ac diam. Cras non tellus a libero pellentesque condimentum. What is a Drupalism? Suspendisse ac lacus libero. Ut non est vel nisl faucibus interdum nec sed leo. Pellentesque sem risus, vulputate eu semper eget, auctor in libero.';
     $lorem2 = 'Ut fermentum est vitae metus convallis scelerisque. Phasellus pellentesque rhoncus tellus, eu dignissim purus posuere id. Quisque eu fringilla ligula. Morbi ullamcorper, lorem et mattis egestas, tortor neque pretium velit, eget eleifend odio turpis eu purus. Donec vitae metus quis leo pretium tincidunt a pulvinar sem. Morbi adipiscing laoreet mauris vel placerat. Nullam elementum, nisl sit amet scelerisque malesuada, dolor nunc hendrerit quam, eu ultrices erat est in orci.';
+    // cSpell:enable
 
     // Make some text with some keywords that will get simplified.
     $text = $lorem1 . ' Number: 123456.7890 Hyphenated: one-two abc,def ' . $lorem2;
diff --git a/core/modules/system/tests/modules/menu_test/menu_test.links.menu.yml b/core/modules/system/tests/modules/menu_test/menu_test.links.menu.yml
index eecd42c9a1da56bcff7ef124ec310a1d40ecc08c..2bdb59865a3f677a41a0512822b0ea1485242b64 100644
--- a/core/modules/system/tests/modules/menu_test/menu_test.links.menu.yml
+++ b/core/modules/system/tests/modules/menu_test/menu_test.links.menu.yml
@@ -36,6 +36,7 @@ menu_test.exotic_path:
   route_name: menu_test.exotic_path
   # "Special" ASCII characters. Characters that look like a percent-escaped
   # string. Characters from various non-ASCII alphabets.
+  # cSpell:disable-next-line
   route_parameters: { exotic: ' -._~!$''"()*@[]?&+%#,;=:%23%25%26%2B%2F%3Féøïвβ中國書۞' }
 # Hidden tests; base parents.
 # Same structure as in Menu and Block modules. Since those structures can
diff --git a/core/modules/system/tests/modules/menu_test/menu_test.routing.yml b/core/modules/system/tests/modules/menu_test/menu_test.routing.yml
index 38de862eee7d400d386662f48d941aae6584ec6c..59086d156cbdc4f0dbfd002e619ca04bb1792532 100644
--- a/core/modules/system/tests/modules/menu_test/menu_test.routing.yml
+++ b/core/modules/system/tests/modules/menu_test/menu_test.routing.yml
@@ -381,6 +381,7 @@ menu_test.exotic_path:
   # "Special" ASCII characters, characters that look like a percent-escaped
   # string, and characters from various non-ASCII alphabets.
   # @todo Find a way to use the correct path.
+  # cSpell:disable-next-line
   #path: "/menu-test/ -._~!$'\"()*@[]?&+%#,;=:%23%25%26%2B%2F%3Féøïвβ中國書۞"
   path: '/menu-test/{exotic}'
   defaults:
diff --git a/core/modules/system/tests/src/Functional/Menu/MenuRouterTest.php b/core/modules/system/tests/src/Functional/Menu/MenuRouterTest.php
index 810320836c75ad2bfd93ada171c29abceb2f4716..923c5fadf9eed8be6096a5a86b3a6ec1ae7a4b8c 100644
--- a/core/modules/system/tests/src/Functional/Menu/MenuRouterTest.php
+++ b/core/modules/system/tests/src/Functional/Menu/MenuRouterTest.php
@@ -198,6 +198,7 @@ protected function doTestExoticPath() {
       // Characters that look like a percent-escaped string.
       "%23%25%26%2B%2F%3F" .
       // Characters from various non-ASCII alphabets.
+      // cSpell:disable-next-line
       "éøïвβ中國書۞";
     $this->drupalGet($path);
     $this->assertRaw('This is the menuTestCallback content.');
diff --git a/core/modules/system/tests/src/Functional/System/RetrieveFileTest.php b/core/modules/system/tests/src/Functional/System/RetrieveFileTest.php
index bda8c2571dca550de32e6ad421aa8010b33be436..3bcb295efbb9371f66c1c0b654d3067a2f39f96e 100644
--- a/core/modules/system/tests/src/Functional/System/RetrieveFileTest.php
+++ b/core/modules/system/tests/src/Functional/System/RetrieveFileTest.php
@@ -24,6 +24,7 @@ public function testFileRetrieving() {
     /** @var \Drupal\Core\File\FileSystemInterface $file_system */
     $file_system = \Drupal::service('file_system');
     $file_system->mkdir($sourcedir = 'public://' . $this->randomMachineName());
+    // cSpell:disable-next-line
     $filename = 'Файл для тестирования ' . $this->randomMachineName();
     $url = file_create_url($sourcedir . '/' . $filename);
     $retrieved_file = system_retrieve_file($url);
diff --git a/core/modules/system/tests/src/Functional/UpdateSystem/UpdatePathTestBaseFilledTest.php b/core/modules/system/tests/src/Functional/UpdateSystem/UpdatePathTestBaseFilledTest.php
index 0b0b4475b64061b73252a1db66cdca69f9f40729..218c83545c3b97a9a88f1cd54b4662f84b251d72 100644
--- a/core/modules/system/tests/src/Functional/UpdateSystem/UpdatePathTestBaseFilledTest.php
+++ b/core/modules/system/tests/src/Functional/UpdateSystem/UpdatePathTestBaseFilledTest.php
@@ -301,8 +301,10 @@ public function testUpdatedSite() {
 
     // Make sure strings are still translated.
     $this->drupalGet('admin/structure/views/view/content/translate/es/edit');
+    // cSpell:disable-next-line
     $this->assertText('Contenido');
     $this->drupalPostForm('admin/config/regional/translate', ['string' => 'Full comment'], 'Filter');
+    // cSpell:disable-next-line
     $this->assertText('Comentario completo');
 
     // Make sure our custom action is still there.
diff --git a/core/modules/text/tests/src/Kernel/TextSummaryTest.php b/core/modules/text/tests/src/Kernel/TextSummaryTest.php
index b95ae19ab771f81939b1de5a79a1808abc853429..b7f975fda842e623b78e18adb0d2611b44fa0173 100644
--- a/core/modules/text/tests/src/Kernel/TextSummaryTest.php
+++ b/core/modules/text/tests/src/Kernel/TextSummaryTest.php
@@ -51,6 +51,7 @@ public function testFirstSentenceQuestion() {
    */
   public function testLongSentence() {
     // 125.
+    // cSpell:disable
     $text =
       'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ' .
       // 108.
@@ -62,6 +63,7 @@ public function testLongSentence() {
     $expected = 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. ' .
                 'Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ' .
                 'Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.';
+    // cSpell:enable
     // First three sentences add up to: 336, so add one for space and then 3 to get half-way into next word.
     $this->assertTextSummary($text, $expected, NULL, 340);
   }
diff --git a/core/modules/user/tests/src/Kernel/Migrate/d6/MigrateUserProfileValuesTest.php b/core/modules/user/tests/src/Kernel/Migrate/d6/MigrateUserProfileValuesTest.php
index 02a1f46c1839d7468aa0253aa1e41eab75362797..d06c504957429157d57b26574a60962a53875004 100644
--- a/core/modules/user/tests/src/Kernel/Migrate/d6/MigrateUserProfileValuesTest.php
+++ b/core/modules/user/tests/src/Kernel/Migrate/d6/MigrateUserProfileValuesTest.php
@@ -41,9 +41,11 @@ public function testUserProfileValues() {
     $user = User::load(2);
     $this->assertNotNull($user);
     $this->assertIdentical('red', $user->profile_color->value);
+    // cSpell:disable
     $expected = <<<EOT
 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam nulla sapien, congue nec risus ut, adipiscing aliquet felis. Maecenas quis justo vel nulla varius euismod. Quisque metus metus, cursus sit amet sem non, bibendum vehicula elit. Cras dui nisl, eleifend at iaculis vitae, lacinia ut felis. Nullam aliquam ligula volutpat nulla consectetur accumsan. Maecenas tincidunt molestie diam, a accumsan enim fringilla sit amet. Morbi a tincidunt tellus. Donec imperdiet scelerisque porta. Sed quis sem bibendum eros congue sodales. Vivamus vel fermentum est, at rutrum orci. Nunc consectetur purus ut dolor pulvinar, ut volutpat felis congue. Cras tincidunt odio sed neque sollicitudin, vehicula tempor metus scelerisque.
 EOT;
+    // cSpell:enable
     $this->assertIdentical($expected, $user->profile_biography->value);
     $this->assertIdentical('1', $user->profile_sell_address->value);
     $this->assertIdentical('Back\slash', $user->profile_sold_to->value);
diff --git a/core/modules/user/tests/src/Kernel/UserValidationTest.php b/core/modules/user/tests/src/Kernel/UserValidationTest.php
index 3884cc592551d5aaecd51d739b18db756dac35a8..11c5c6f64a930dd5489eb06d0396b25c75907347 100644
--- a/core/modules/user/tests/src/Kernel/UserValidationTest.php
+++ b/core/modules/user/tests/src/Kernel/UserValidationTest.php
@@ -41,6 +41,7 @@ protected function setUp(): void {
    * Tests user name validation.
    */
   public function testUsernames() {
+    // cSpell:disable
     $test_cases = [
       // '<username>' => ['<description>', 'assert<testName>'].
       'foo'                    => ['Valid username', 'assertNull'],
@@ -66,6 +67,7 @@ public function testUsernames() {
       'foo' . chr(13) . 'bar'  => ['Invalid username containing chr(13)', 'assertNotNull'],
       str_repeat('x', UserInterface::USERNAME_MAX_LENGTH + 1) => ['Invalid excessively long username', 'assertNotNull'],
     ];
+    // cSpell:enable
     foreach ($test_cases as $name => $test_case) {
       list($description, $test) = $test_case;
       $result = user_validate_name($name);
diff --git a/core/modules/views/tests/src/Kernel/Handler/FieldKernelTest.php b/core/modules/views/tests/src/Kernel/Handler/FieldKernelTest.php
index 63c44e72f48e447eb280a1abd20e0250d77ebb95..702dcf83b3584332d6cd1b1535da4a2797222222 100644
--- a/core/modules/views/tests/src/Kernel/Handler/FieldKernelTest.php
+++ b/core/modules/views/tests/src/Kernel/Handler/FieldKernelTest.php
@@ -802,6 +802,7 @@ public function testClickSortable() {
    */
   public function testTrimText() {
     // Test unicode. See https://www.drupal.org/node/513396#comment-2839416.
+    // cSpell:disable
     $text = [
       'Tuy nhiên, những hi vọng',
       'Giả sử chúng tôi có 3 Apple',
@@ -849,6 +850,7 @@ public function testTrimText() {
       $result_text = FieldPluginBase::trimText($alter, $line);
       $this->assertEqual($result_text, $expect[$key]);
     }
+    // cSpell:enable
   }
 
 }
diff --git a/core/package.json b/core/package.json
index b40c8aaf85933a6f11ad94d56fe657ec8d692958..9fc2325b352bd93e8253dddd5bfe5d79e6506eea 100644
--- a/core/package.json
+++ b/core/package.json
@@ -23,7 +23,10 @@
     "lint:css": "stylelint \"**/*.css\"",
     "lint:css-checkstyle": "stylelint \"**/*.css\" --custom-formatter ./node_modules/stylelint-checkstyle-formatter/index.js",
     "test:nightwatch": "cross-env BABEL_ENV=development node -r dotenv-safe/config -r @babel/register ./node_modules/.bin/nightwatch --config ./tests/Drupal/Nightwatch/nightwatch.conf.js",
-    "prettier": "prettier --write \"./**/*.es6.js\" \"./tests/Drupal/Nightwatch/**/*.js\""
+    "prettier": "prettier --write \"./**/*.es6.js\" \"./tests/Drupal/Nightwatch/**/*.js\"",
+    "spellcheck": "cspell",
+    "spellcheck:make-drupal-dict": "rm -f misc/cspell/dictionary.txt && yarn -s spellcheck:core --unique --wordsOnly | tr '[:upper:]' '[:lower:]' | tr -d \\\\\\\\ | LC_ALL=C sort -u -o misc/cspell/dictionary.txt",
+    "spellcheck:core": "cspell \"**/*\" \"../composer/**/*\""
   },
   "devDependencies": {
     "@babel/core": "^7.0.0",
@@ -35,6 +38,7 @@
     "chokidar": "^3.3.1",
     "chromedriver": "^79.0.0",
     "cross-env": "^6.0.3",
+    "cspell": "^4.0.63",
     "dotenv-safe": "^8.2.0",
     "eslint": "^6.7.2",
     "eslint-config-airbnb": "^18.0.1",
diff --git a/core/profiles/demo_umami/tests/src/Functional/UmamiMultilingualInstallTest.php b/core/profiles/demo_umami/tests/src/Functional/UmamiMultilingualInstallTest.php
index 4736be9f36502860c813cc8e3996ee8f380a0749..e6b92e1f853cff7ea92882da442b680eef4c6b8e 100644
--- a/core/profiles/demo_umami/tests/src/Functional/UmamiMultilingualInstallTest.php
+++ b/core/profiles/demo_umami/tests/src/Functional/UmamiMultilingualInstallTest.php
@@ -26,6 +26,7 @@ class UmamiMultilingualInstallTest extends InstallerTestBase {
    */
   public function testUmami() {
     $this->drupalGet('');
+    // cSpell:disable-next-line
     $this->assertSession()->pageTextContains('Quiche mediterráneo profundo');
   }
 
diff --git a/core/tests/Drupal/FunctionalTests/Installer/InstallerTranslationTest.php b/core/tests/Drupal/FunctionalTests/Installer/InstallerTranslationTest.php
index fb69ea772d66bf1e7e2fff86e9914b0794c71e61..5d86fc54fdb368556e39a41e78d8752261e073c0 100644
--- a/core/tests/Drupal/FunctionalTests/Installer/InstallerTranslationTest.php
+++ b/core/tests/Drupal/FunctionalTests/Installer/InstallerTranslationTest.php
@@ -57,8 +57,10 @@ protected function setUpSettings() {
     parent::setUpSettings();
 
     // Ensure that the error message translation is working.
+    // cSpell:disable
     $this->assertRaw('Beheben Sie alle Probleme unten, um die Installation fortzusetzen. Informationen zur Konfiguration der Datenbankserver finden Sie in der <a href="https://www.drupal.org/docs/8/install">Installationshandbuch</a>, oder kontaktieren Sie Ihren Hosting-Anbieter.');
     $this->assertRaw('<strong>CREATE</strong> ein Test-Tabelle auf Ihrem Datenbankserver mit dem Befehl <em class="placeholder">CREATE TABLE {drupal_install_test} (id int NOT NULL PRIMARY KEY)</em> fehlgeschlagen.');
+    // cSpell:enable
 
     // Now do it successfully.
     Database::getConnection('default')->query('DROP TABLE {drupal_install_test}');
diff --git a/core/tests/Drupal/KernelTests/Core/Cache/CacheCollectorTest.php b/core/tests/Drupal/KernelTests/Core/Cache/CacheCollectorTest.php
index df3a6e25dea140d56b3b11f407fe3ea57eb52099..3c40385f945649ce5b4e27eea1c46003fc46aa22 100644
--- a/core/tests/Drupal/KernelTests/Core/Cache/CacheCollectorTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Cache/CacheCollectorTest.php
@@ -54,6 +54,7 @@ public function providerTestInvalidCharacters() {
       // Nothing special.
       ['foo', 'bar', 'baz'],
       // Invalid characters in CID.
+      // cSpell:disable-next-line
       ['éøïвβ中國書۞', 'foo', 'bar'],
       // Really long CID.
       [$this->randomString(1024), 'foo', 'bar'],
diff --git a/core/tests/Drupal/KernelTests/Core/Command/DbDumpTest.php b/core/tests/Drupal/KernelTests/Core/Command/DbDumpTest.php
index 33dbc77812ec5d59f21969979c5fdff62531014a..99fa58b88d0c28da1412ec9f77f6830ac626874e 100644
--- a/core/tests/Drupal/KernelTests/Core/Command/DbDumpTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Command/DbDumpTest.php
@@ -118,6 +118,7 @@ protected function setUp(): void {
     $storage->write('test_config', $this->data);
 
     // Create user account with some potential syntax issues.
+    // cspell:disable-next-line
     $account = User::create(['mail' => 'q\'uote$dollar@example.com', 'name' => '$dollar']);
     $account->save();
 
@@ -184,6 +185,7 @@ public function testDbDumpCommand() {
     $this->assertRegExp('/' . $pattern . '/', $command_tester->getDisplay(), 'Generated data is found in the exported script.');
 
     // Check that the user account name and email address was properly escaped.
+    // cspell:disable-next-line
     $pattern = preg_quote('"q\'uote\$dollar@example.com"');
     $this->assertRegExp('/' . $pattern . '/', $command_tester->getDisplay(), 'The user account email address was properly escaped in the exported script.');
     $pattern = preg_quote('\'$dollar\'');
diff --git a/core/tests/Drupal/KernelTests/Core/Config/ConfigFileContentTest.php b/core/tests/Drupal/KernelTests/Core/Config/ConfigFileContentTest.php
index 515d60ac04273554f42d36baa1d00be83b3b85f5..fe1ab39c2fd5cb2461de184c901b80edd07f24df 100644
--- a/core/tests/Drupal/KernelTests/Core/Config/ConfigFileContentTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Config/ConfigFileContentTest.php
@@ -200,6 +200,7 @@ public function testSerialization() {
         // UTF-8 in values.
         'UTF-8' => 'FrançAIS is ÜBER-åwesome',
         // Unicode in keys and values.
+        // cSpell:disable-next-line
         'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΣὨ' => 'αβγδεζηθικλμνξοσὠ',
       ],
       'invalid xml' => '</title><script type="text/javascript">alert("Title XSS!");</script> & < > " \' ',
@@ -222,6 +223,7 @@ public function testSerialization() {
     $key = 'UTF-8';
     $this->assertSame($config_data['nested keys'][$key], $config_parsed['nested keys'][$key]);
 
+    // cSpell:disable-next-line
     $key = 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΣὨ';
     $this->assertSame($config_data['nested keys'][$key], $config_parsed['nested keys'][$key]);
 
diff --git a/core/tests/Drupal/KernelTests/Core/File/FileTestBase.php b/core/tests/Drupal/KernelTests/Core/File/FileTestBase.php
index 9069e554dc5f95989b367da1ed7509b4687d9569..c47cf9b8b4b5d9a434632751b84cd076daef33ac 100644
--- a/core/tests/Drupal/KernelTests/Core/File/FileTestBase.php
+++ b/core/tests/Drupal/KernelTests/Core/File/FileTestBase.php
@@ -187,6 +187,7 @@ public function createUri($filepath = NULL, $contents = NULL, $scheme = NULL) {
     if (!isset($filepath)) {
       // Prefix with non-latin characters to ensure that all file-related
       // tests work with international filenames.
+      // cSpell:disable-next-line
       $filepath = 'Файл для тестирования ' . $this->randomMachineName();
     }
     if (!isset($scheme)) {
diff --git a/core/tests/Drupal/KernelTests/Core/Routing/RouteProviderTest.php b/core/tests/Drupal/KernelTests/Core/Routing/RouteProviderTest.php
index 0d4252944df98fe3f270d814218ce2846ab539f6..e21a0ce9c018856ade819af306d77cc598f445d4 100644
--- a/core/tests/Drupal/KernelTests/Core/Routing/RouteProviderTest.php
+++ b/core/tests/Drupal/KernelTests/Core/Routing/RouteProviderTest.php
@@ -207,6 +207,7 @@ public function testOutlinePathMatch() {
    * Data provider for testMixedCasePaths()
    */
   public function providerMixedCaseRoutePaths() {
+    // cSpell:disable
     return [
       ['/path/one', 'route_a'],
       ['/path/two', NULL],
@@ -221,6 +222,7 @@ public function providerMixedCaseRoutePaths() {
       ['/place/meΦω', 'route_e', 'HEAD'],
       ['/place/meφΩ', 'route_e', 'HEAD'],
     ];
+    // cSpell:enable
   }
 
   /**
diff --git a/core/tests/Drupal/Tests/Component/Gettext/PoStreamWriterTest.php b/core/tests/Drupal/Tests/Component/Gettext/PoStreamWriterTest.php
index 75f50d5b0c97339b1f7a2e10e83df4a27b534024..39cf95d18aa24ab44a79d37c3d58f4265b643e08 100644
--- a/core/tests/Drupal/Tests/Component/Gettext/PoStreamWriterTest.php
+++ b/core/tests/Drupal/Tests/Component/Gettext/PoStreamWriterTest.php
@@ -80,6 +80,7 @@ public function testWriteItem($poContent, $expected, $long) {
    *   - Content longer than 10 bytes.
    */
   public function providerWriteData() {
+    // cSpell:disable
     return [
       ['', '', FALSE],
       ["\r\n", "\r\n", FALSE],
@@ -89,6 +90,7 @@ public function providerWriteData() {
       ['中文 890', '中文 890', FALSE],
       ['中文 89012', '中文 890', TRUE],
     ];
+    // cSpell:enable
   }
 
   /**
diff --git a/core/tests/Drupal/Tests/Component/Serialization/YamlPeclTest.php b/core/tests/Drupal/Tests/Component/Serialization/YamlPeclTest.php
index 5512a1c62c1cc52ffe6688bb412fdd376af0096b..f002567268da44be942f8ed04d64d1b6e06c0385 100644
--- a/core/tests/Drupal/Tests/Component/Serialization/YamlPeclTest.php
+++ b/core/tests/Drupal/Tests/Component/Serialization/YamlPeclTest.php
@@ -52,11 +52,13 @@ public function testDecode($string, $data) {
    * @covers ::encode
    */
   public function testEncode() {
+    // cSpell:disable
     $this->assertEquals('---
 foo:
   bar: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sapien ex, venenatis vitae nisi eu, posuere luctus dolor. Nullam convallis
 ...
 ', YamlPecl::encode(['foo' => ['bar' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sapien ex, venenatis vitae nisi eu, posuere luctus dolor. Nullam convallis']]));
+    // cSpell:enable
   }
 
   /**
diff --git a/core/tests/Drupal/Tests/Component/Serialization/YamlSymfonyTest.php b/core/tests/Drupal/Tests/Component/Serialization/YamlSymfonyTest.php
index cbf7afbf46af854c839c9751897e0e648a49704c..6e88c1571feb7ee27edcbe92110c726183d9bc79 100644
--- a/core/tests/Drupal/Tests/Component/Serialization/YamlSymfonyTest.php
+++ b/core/tests/Drupal/Tests/Component/Serialization/YamlSymfonyTest.php
@@ -41,9 +41,11 @@ public function testDecode($string, $data) {
    * @covers ::encode
    */
   public function testEncode() {
+    // cSpell:disable
     $this->assertEquals('foo:
   bar: \'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sapien ex, venenatis vitae nisi eu, posuere luctus dolor. Nullam convallis\'
 ', YamlSymfony::encode(['foo' => ['bar' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus sapien ex, venenatis vitae nisi eu, posuere luctus dolor. Nullam convallis']]));
+    // cSpell:enable
   }
 
   /**
diff --git a/core/tests/Drupal/Tests/Component/Transliteration/PhpTransliterationTest.php b/core/tests/Drupal/Tests/Component/Transliteration/PhpTransliterationTest.php
index 82c5ed0cec0429895367ff149dbeeca086d5b49d..3c9594c2d3f4435b1be6aba1ed5339f96ff6730d 100644
--- a/core/tests/Drupal/Tests/Component/Transliteration/PhpTransliterationTest.php
+++ b/core/tests/Drupal/Tests/Component/Transliteration/PhpTransliterationTest.php
@@ -40,6 +40,7 @@ public function testRemoveDiacritics($original, $expected) {
    *   self::testRemoveDiacritics().
    */
   public function providerTestPhpTransliterationRemoveDiacritics() {
+    // cSpell:disable
     return [
       // Test all characters in the Unicode range 0x00bf to 0x017f.
       ['ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏ', 'AAAAAAÆCEEEEIIII'],
@@ -66,6 +67,7 @@ public function providerTestPhpTransliterationRemoveDiacritics() {
       ['ȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿ', 'OoYylntjȸȹACcLTs'],
       ['ɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɏ', 'zɁɂBUɅEeJjQqRrYy'],
     ];
+    // cSpell:enable
   }
 
   /**
@@ -105,6 +107,7 @@ public function providerTestPhpTransliteration() {
     $random = $random_generator->string(10);
     // Make some strings with two, three, and four-byte characters for testing.
     // Note that the 3-byte character is overridden by the 'kg' language.
+    // cSpell:disable-next-line
     $two_byte = 'Ä Ö Ü Å Ø äöüåøhello';
     // This is a Cyrillic character that looks something like a "u". See
     // http://www.unicode.org/charts/PDF/U0400.pdf
@@ -117,6 +120,7 @@ public function providerTestPhpTransliteration() {
     // They are not in our tables, but should at least give us '?' (unknown).
     $five_byte = html_entity_decode('&#x10330;&#x10338;', ENT_NOQUOTES, 'UTF-8');
 
+    // cSpell:disable
     return [
       // Each test case is language code, input, output, unknown character, max
       // length.
@@ -171,6 +175,7 @@ public function providerTestPhpTransliteration() {
       // Keep many spaces between words.
       ['en', 'Too    many    spaces between words !', 'Too    many    spaces between words !'],
     ];
+    // cSpell:enable
   }
 
   /**
diff --git a/core/tests/Drupal/Tests/Component/Utility/HtmlTest.php b/core/tests/Drupal/Tests/Component/Utility/HtmlTest.php
index 3a3c5f22ee44267872708907b1bb75a2e2c48cf0..3f2ab9de2ff5bf9efb40893056ea4984c55715a4 100644
--- a/core/tests/Drupal/Tests/Component/Utility/HtmlTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/HtmlTest.php
@@ -127,6 +127,7 @@ public function testHtmlGetUniqueId($expected, $source, $reset = FALSE) {
    *   Test data.
    */
   public function providerTestHtmlGetUniqueId() {
+    // cSpell:disable
     $id = 'abcdefghijklmnopqrstuvwxyz-0123456789';
     return [
       // Verify that letters, digits, and hyphens are not stripped from the ID.
@@ -140,6 +141,7 @@ public function providerTestHtmlGetUniqueId() {
       ['test-unique-id--2', 'test-unique-id'],
       ['test-unique-id--3', 'test-unique-id'],
     ];
+    // cSpell:enable
   }
 
   /**
@@ -210,6 +212,7 @@ public function testHtmlGetId($expected, $source) {
    *   Test data.
    */
   public function providerTestHtmlGetId() {
+    // cSpell:disable
     $id = 'abcdefghijklmnopqrstuvwxyz-0123456789';
     return [
       // Verify that letters, digits, and hyphens are not stripped from the ID.
@@ -222,6 +225,7 @@ public function providerTestHtmlGetId() {
       ['test-unique-id', 'test-unique-id'],
       ['test-unique-id', 'test-unique-id'],
     ];
+    // cSpell:enable
   }
 
   /**
diff --git a/core/tests/Drupal/Tests/Component/Utility/UnicodeTest.php b/core/tests/Drupal/Tests/Component/Utility/UnicodeTest.php
index 8951ebf56f67f1fe8cde94a5a1afb75aa74f7ca4..19b73f3c2b2abaabfe9a6d868e8e914b29e100c0 100644
--- a/core/tests/Drupal/Tests/Component/Utility/UnicodeTest.php
+++ b/core/tests/Drupal/Tests/Component/Utility/UnicodeTest.php
@@ -61,6 +61,7 @@ public function testUcfirst($text, $expected) {
    *   An array containing a string and its uppercase first version.
    */
   public function providerUcfirst() {
+    // cSpell:disable
     return [
       ['tHe QUIcK bRoWn', 'THe QUIcK bRoWn'],
       ['françAIS', 'FrançAIS'],
@@ -69,6 +70,7 @@ public function providerUcfirst() {
       // A multibyte string.
       ['σion', 'Σion'],
     ];
+    // cSpell:enable
   }
 
   /**
@@ -90,6 +92,7 @@ public function testLcfirst($text, $expected) {
    *   An array containing a string and its lowercase version.
    */
   public function providerLcfirst() {
+    // cSpell:disable
     return [
       ['tHe QUIcK bRoWn', 'tHe QUIcK bRoWn'],
       ['FrançAIS is ÜBER-åwesome', 'françAIS is ÜBER-åwesome'],
@@ -98,6 +101,7 @@ public function providerLcfirst() {
       // Add a multibyte string.
       ['ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΣὨ', 'αΒΓΔΕΖΗΘΙΚΛΜΝΞΟΣὨ'],
     ];
+    // cSpell:enable
   }
 
   /**
@@ -119,6 +123,7 @@ public function testUcwords($text, $expected) {
    *   An array containing a string and its capitalized version.
    */
   public function providerUcwords() {
+    // cSpell:disable
     return [
       ['tHe QUIcK bRoWn', 'THe QUIcK BRoWn'],
       ['françAIS', 'FrançAIS'],
@@ -129,6 +134,7 @@ public function providerUcwords() {
       // Add a multibyte string.
       ['σion', 'Σion'],
     ];
+    // cSpell:enable
   }
 
   /**
@@ -155,6 +161,7 @@ public function testTruncate($text, $max_length, $expected, $wordsafe = FALSE, $
    *     - (optional) Boolean for the $add_ellipsis flag. Defaults to FALSE.
    */
   public function providerTruncate() {
+    // cSpell:disable
     $tests = [
       ['frànçAIS is über-åwesome', 24, 'frànçAIS is über-åwesome'],
       ['frànçAIS is über-åwesome', 23, 'frànçAIS is über-åwesom'],
@@ -201,6 +208,7 @@ public function providerTruncate() {
       ['Help! Help! Help!', 3, 'He…', TRUE, TRUE],
       ['Help! Help! Help!', 2, 'H…', TRUE, TRUE],
     ];
+    // cSpell:enable
 
     // Test truncate on text with multiple lines.
     $multi_line = <<<EOF
diff --git a/core/tests/Drupal/Tests/Core/EventSubscriber/ActiveLinkResponseFilterTest.php b/core/tests/Drupal/Tests/Core/EventSubscriber/ActiveLinkResponseFilterTest.php
index 49ab57a7f850ebc35ce1fcbaa531e306a59fcdd0..19f9fd8ef475e8b4d36d50f9ab4fe93f72652441 100644
--- a/core/tests/Drupal/Tests/Core/EventSubscriber/ActiveLinkResponseFilterTest.php
+++ b/core/tests/Drupal/Tests/Core/EventSubscriber/ActiveLinkResponseFilterTest.php
@@ -48,6 +48,7 @@ public function providerTestSetLinkActiveClass() {
       // https://www.drupal.org/comment/7938201#comment-7938201.
       1 => ['prefix' => '<div><p>', 'suffix' => '</p>' . $edge_case_html5 . '</div>'],
       // Multi-byte content *before* the HTML that needs the "is-active" class.
+      // cSpell:disable-next-line
       2 => ['prefix' => '<div><p>αβγδεζηθικλμνξοσὠ</p><p>', 'suffix' => '</p></div>'],
     ];
     $tags = [
@@ -64,6 +65,7 @@ public function providerTestSetLinkActiveClass() {
       // Mix of UTF-8 and HTML entities, both must be retained.
       '☆ 3 × 4 = €12 and 4 &times; 3 = &euro;12 &#9734',
       // Multi-byte content.
+      // cSpell:disable-next-line
       'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΣὨ',
       // Text that closely approximates an important attribute, but should be
       // ignored.
diff --git a/core/tests/Drupal/Tests/Core/Form/SubformStateTest.php b/core/tests/Drupal/Tests/Core/Form/SubformStateTest.php
index f78ec5bc9a15228a4541cde818a1676b035b17e3..7bb7d86d808d574a7fff04ba0df3876703ce2162 100644
--- a/core/tests/Drupal/Tests/Core/Form/SubformStateTest.php
+++ b/core/tests/Drupal/Tests/Core/Form/SubformStateTest.php
@@ -296,6 +296,7 @@ public function testGetLimitValidationErrors() {
   public function testSetErrorByName() {
     $parent_form_error_name = 'dog][name';
     $subform_error_name = 'name';
+    // cSpell:disable-next-line
     $message = 'De kat krabt de krullen van de trap.';
 
     $parent_form_state = $this->prophesize(FormStateInterface::class);
diff --git a/core/tests/Drupal/Tests/Core/Routing/RoutingFixtures.php b/core/tests/Drupal/Tests/Core/Routing/RoutingFixtures.php
index 5ff38fa46b6ba897da8b4f3251cea04e912c8149..f6fa1ebc40f2f956debf081f592707194287f613 100644
--- a/core/tests/Drupal/Tests/Core/Routing/RoutingFixtures.php
+++ b/core/tests/Drupal/Tests/Core/Routing/RoutingFixtures.php
@@ -156,6 +156,7 @@ public function mixedCaseRouteCollection() {
     $collection->add('route_b', $route);
 
     // Uses Hebrew letter QOF (U+05E7)
+    // cSpell:disable-next-line
     $route = new Route('/somewhere/{item}/over/the/קainbow');
     $route->setMethods(['GET']);
     $collection->add('route_c', $route);
@@ -164,6 +165,7 @@ public function mixedCaseRouteCollection() {
     $collection->add('route_d', $route);
 
     // Greek letters lower case phi (U+03C6) and lower case omega (U+03C9)
+    // cSpell:disable-next-line
     $route = new Route('/place/meφω');
     $route->setMethods(['GET', 'HEAD']);
     $collection->add('route_e', $route);
@@ -197,10 +199,12 @@ public function duplicatePathsRouteCollection() {
     $collection->add('route_d', $route);
 
     // Greek letters lower case phi (U+03C6) and lower case omega (U+03C9)
+    // cSpell:disable-next-line
     $route = new Route('/place/meφω');
     $route->setMethods(['GET', 'HEAD']);
     $collection->add('route_f', $route);
 
+    // cSpell:disable-next-line
     $route = new Route('/PLACE/meφω');
     $collection->add('route_e', $route);
 
diff --git a/core/tests/Drupal/Tests/Core/Template/AttributeTest.php b/core/tests/Drupal/Tests/Core/Template/AttributeTest.php
index ef3ad8b8b5dc0b437dc694ff4f02f544de64a8af..81a1312198c0792bcd642f9d2db4b90963eb6c5c 100644
--- a/core/tests/Drupal/Tests/Core/Template/AttributeTest.php
+++ b/core/tests/Drupal/Tests/Core/Template/AttributeTest.php
@@ -280,6 +280,7 @@ public function testTwigAddRemoveClasses($template, $expected, $seed_attributes
    *   a resulting string of classes and an optional array of attributes.
    */
   public function providerTestAttributeClassHelpers() {
+    // cSpell:disable
     return [
       ["{{ attributes.class }}", ''],
       ["{{ attributes.addClass('everest').class }}", 'everest'],
@@ -313,6 +314,7 @@ public function providerTestAttributeClassHelpers() {
       // Test for the removal of an empty class name.
       ["{{ attributes.addClass('rakaposhi', '').class }}", 'rakaposhi'],
     ];
+    // cSpell:enable
   }
 
   /**
diff --git a/core/tests/Drupal/Tests/Core/Transliteration/PhpTransliterationTest.php b/core/tests/Drupal/Tests/Core/Transliteration/PhpTransliterationTest.php
index 29d266c356c178ff3ce6127efb25c7bd44f039fb..58182f9352f81678a558248a284aa20b4fcbbc4f 100644
--- a/core/tests/Drupal/Tests/Core/Transliteration/PhpTransliterationTest.php
+++ b/core/tests/Drupal/Tests/Core/Transliteration/PhpTransliterationTest.php
@@ -66,6 +66,7 @@ public function providerTestPhpTransliterationWithAlter() {
     $random = $random_generator->string(10);
     // Make some strings with two, three, and four-byte characters for testing.
     // Note that the 3-byte character is overridden by the 'kg' language.
+    // cSpell:disable-next-line
     $two_byte = 'Ä Ö Ü Å Ø äöüåøhello';
     // These are two Gothic alphabet letters. See
     // http://wikipedia.org/wiki/Gothic_alphabet
@@ -77,6 +78,7 @@ public function providerTestPhpTransliterationWithAlter() {
     $cases = [
       // Test the language override hook in the test module, which changes
       // the transliteration of Ä to Z and provides for the 5-byte characters.
+      // cSpell:disable-next-line
       ['zz', $two_byte, 'Z O U A O aouaohello'],
       ['zz', $random, $random],
       ['zz', $five_byte, 'ATh', $five_byte_printable],
diff --git a/core/yarn.lock b/core/yarn.lock
index 4a0e945129e6b06dd41f18ecea2edbb9154e57ce..5c3ac1f1c50fb472f1ccad518b0a36eda4fa92e1 100644
--- a/core/yarn.lock
+++ b/core/yarn.lock
@@ -1152,6 +1152,11 @@ asynckit@^0.4.0:
   resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
   integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
 
+at-least-node@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
+  integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+
 atob@^2.1.2:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
@@ -1609,11 +1614,21 @@ combined-stream@^1.0.6, combined-stream@~1.0.6:
   dependencies:
     delayed-stream "~1.0.0"
 
-commander@^2.11.0, commander@^2.20.0:
+commander@^2.11.0, commander@^2.20.0, commander@^2.20.3:
   version "2.20.3"
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
   integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
 
+comment-json@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/comment-json/-/comment-json-3.0.2.tgz#a5652a491910e338080bcbf98fc9a37cbd7f3733"
+  integrity sha512-ysJasbJ671+8mPEmwLOfLFqxoGtSmjyoep+lKRVH4J1/hsGu79fwetMDQWk8de8mVgqDZ43D7JuJAlACqjI1pg==
+  dependencies:
+    core-util-is "^1.0.2"
+    esprima "^4.0.1"
+    has-own-prop "^2.0.0"
+    repeat-string "^1.6.1"
+
 commondir@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -1639,6 +1654,18 @@ concat-stream@^1.6.2:
     readable-stream "^2.2.2"
     typedarray "^0.0.6"
 
+configstore@^5.0.0, configstore@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96"
+  integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==
+  dependencies:
+    dot-prop "^5.2.0"
+    graceful-fs "^4.1.2"
+    make-dir "^3.0.0"
+    unique-string "^2.0.0"
+    write-file-atomic "^3.0.0"
+    xdg-basedir "^4.0.0"
+
 confusing-browser-globals@^1.0.9:
   version "1.0.9"
   resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd"
@@ -1674,7 +1701,7 @@ core-js-pure@^3.0.0:
   resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813"
   integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==
 
-core-util-is@1.0.2, core-util-is@~1.0.0:
+core-util-is@1.0.2, core-util-is@^1.0.2, core-util-is@~1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
   integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
@@ -1727,6 +1754,285 @@ cross-spawn@^7.0.0:
     shebang-command "^2.0.0"
     which "^2.0.1"
 
+crypto-random-string@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
+  integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
+
+cspell-dict-aws@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/cspell-dict-aws/-/cspell-dict-aws-1.0.5.tgz#538af5c2e3d3be9cae6f5ea73aa141a1f2d2aa34"
+  integrity sha512-yhOi7YiPuMS+2YPZgZmmwU4U3YPUxF+2TypYXF7eoIjzpNdKrag7r6B2i9lgSttCj6I1oWdjIEmNsAap4Affkw==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-bash@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/cspell-dict-bash/-/cspell-dict-bash-1.0.3.tgz#e3cf0e2dbe56f18c68a16c3eb8037d418e88c3cd"
+  integrity sha512-pEGuoZXhgqhpmmvdEoNY/XYDrypI37y0Z09VgKTHEblzTHo++vLyd4Z8r1SY3kJ2eQejduz4IL7ZGXqgtEp2vw==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-companies@^1.0.22:
+  version "1.0.22"
+  resolved "https://registry.yarnpkg.com/cspell-dict-companies/-/cspell-dict-companies-1.0.22.tgz#a30983605888ce530e5c7c2ad1b2b9e33c20fcae"
+  integrity sha512-P7ziSCteONYjlPHFFqZTnisSEJr9h9FXTJh0t9QQIoKcaNR4wij5GiZDv4p4YubCf0z3GeJ7Uao+99RGeHakRQ==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-cpp@^1.1.26:
+  version "1.1.26"
+  resolved "https://registry.yarnpkg.com/cspell-dict-cpp/-/cspell-dict-cpp-1.1.26.tgz#67e3f8d26ec2c49d305b086013935f0b0fade2e0"
+  integrity sha512-ywY7X6UzC5BC7fQhyRAwZHurl52GjwnY6D2wG57JJ/bcT5IsJOWpLAjHORtUH2AcCp6BSAKR6wxl6/bqSuKHJw==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-cryptocurrencies@^1.0.2:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/cspell-dict-cryptocurrencies/-/cspell-dict-cryptocurrencies-1.0.2.tgz#301773a9b555d4c3173f442b0770483874ec36dd"
+  integrity sha512-suLIsOGmeHt+lqRBbbOJM9aVeBNcXq+3kKINOyuFiAJFpRhDMQrnATzGmW0hhi8XaJHFBcSeQY7iQYe3u1WbnA==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-django@^1.0.15:
+  version "1.0.15"
+  resolved "https://registry.yarnpkg.com/cspell-dict-django/-/cspell-dict-django-1.0.15.tgz#a0faec617cab280bd9ef942d1b2a6a5634e5c143"
+  integrity sha512-heppo6ZEGgv+cVPDLr24miG8xIn3E5SEGFBGHyNLyGqt8sHzeG3eNKhjKOJCC0hG/fq0ZECbE5q4691LvH24/Q==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-dotnet@^1.0.14:
+  version "1.0.14"
+  resolved "https://registry.yarnpkg.com/cspell-dict-dotnet/-/cspell-dict-dotnet-1.0.14.tgz#780c3143d340e3211be27df7cfd2d9d1f82b24c5"
+  integrity sha512-gTuh94tNAVMS4XmVCK2AsFgKp2mXBk2b8+f2GLCw2K8HY6QUHlvOJg051JJrZABRW/lAoquKZuqssSo9B1mgng==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-elixir@^1.0.13:
+  version "1.0.13"
+  resolved "https://registry.yarnpkg.com/cspell-dict-elixir/-/cspell-dict-elixir-1.0.13.tgz#f3d08b27d2ee2a25fcae5050820d5680028e95d5"
+  integrity sha512-KWDO4NeV3QuMlZxSWpN0sPiFN4GE5AzlDi75eSKRvq/f1+pxgxgXQ5zLNPnDbr2EOSJBV34paZwI+7PvCiTTgA==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-en-gb@^1.1.16:
+  version "1.1.16"
+  resolved "https://registry.yarnpkg.com/cspell-dict-en-gb/-/cspell-dict-en-gb-1.1.16.tgz#75155e43c21e972ac2f60117b69fd53b5701335f"
+  integrity sha512-PBzHF40fVj+6Adm3dV3/uhkE2Ptu8W+WJ28socBDDpEfedFMwnC0rpxvAgmKJlLc0OYsn07/yzRnt9srisNrLg==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-en_us@^1.2.26:
+  version "1.2.26"
+  resolved "https://registry.yarnpkg.com/cspell-dict-en_us/-/cspell-dict-en_us-1.2.26.tgz#7e9b9bcbc1b9d3cd7d0442d6264cefdc3cbf8fe1"
+  integrity sha512-v/9yHpi4J8KAThUa1mtGfhUsv8GXB5lZnKae7ZDN4pzjx5O+KgzZ6GGEUvRlMVzBOl0vEmNInTSIKTG1Y3h4lg==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-fonts@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/cspell-dict-fonts/-/cspell-dict-fonts-1.0.5.tgz#df96979e07d68cd186fe20eae0113e939d880c4f"
+  integrity sha512-R9A/MVDzqEQbwXaZhmNJ7bSzzkH5YSJ5UDr3wDRk7FXzNNcuJ4J9WRbkDjCDnoVfg0kCx0FeEp0fme+PbLTeng==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-fullstack@^1.0.23:
+  version "1.0.23"
+  resolved "https://registry.yarnpkg.com/cspell-dict-fullstack/-/cspell-dict-fullstack-1.0.23.tgz#c933e3987edf6e81e85bf58ca31e574ff79f9d0c"
+  integrity sha512-vc/aihpKVD/ML+SLVry6kDWFswW/sQfP9QHrr2ZhQLUwhj9pVMnZvx+u1cV8bhMYltWQZxrDhdAe4jrlBrxLHA==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-golang@^1.1.14:
+  version "1.1.14"
+  resolved "https://registry.yarnpkg.com/cspell-dict-golang/-/cspell-dict-golang-1.1.14.tgz#5567d823a3e58b8f4c783bea185e95580008d47e"
+  integrity sha512-V9TQQjoTgdLTpLNczEjoF+BO+CkdmuZlD6J71SCT8sczSP0FLz4QkL1MpqiL0lhdnbtASsjs+oCF53Y+dWdh9g==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-haskell@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/cspell-dict-haskell/-/cspell-dict-haskell-1.0.4.tgz#98a3a00fb72d39f3b94aa019fac7ed86ab73dbd8"
+  integrity sha512-Wy5EE446icPbsi8bLqSCOtxS5Z6QDLGNBvz6Nh+yvuLf7Nb8mU6NQmfSYH/yMfJoVGa5bpcmv8pQtJV4I2E5Tg==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-html-symbol-entities@^1.0.13:
+  version "1.0.13"
+  resolved "https://registry.yarnpkg.com/cspell-dict-html-symbol-entities/-/cspell-dict-html-symbol-entities-1.0.13.tgz#41b770fa08f82b20f9e3c7f234a320bbb1dee851"
+  integrity sha512-u8BARt4r5rdUee7Yw6ejsD69WLib9l+pyBr4UUIZovhCUccddm2LkS9GDJUqWtCf/frZpoTnmpuW/NPWVVG6pQ==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-java@^1.0.12:
+  version "1.0.12"
+  resolved "https://registry.yarnpkg.com/cspell-dict-java/-/cspell-dict-java-1.0.12.tgz#d0220153984a0ccf6bbd69617f324ab11ce4a3fe"
+  integrity sha512-9pg5IrCEZGlWLgv8qGjxzzca19egfBYrbnuiWhJNLbBGBOTWrwYjFqbLQtMJReXUtWikWLY0KCzRZlCGusr7bw==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-latex@^1.0.13:
+  version "1.0.13"
+  resolved "https://registry.yarnpkg.com/cspell-dict-latex/-/cspell-dict-latex-1.0.13.tgz#cdbbc2ebda7b82d44a3574d53b6f5b9a6d0644bb"
+  integrity sha512-UZqGJQ82mkzseqdF7kWXIrA07VD91W7rWx16DCThDBMohOsFdvCymUUgr0pM90FuqmldSiD+Gi1FayDSyPdNtQ==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-lorem-ipsum@^1.0.10:
+  version "1.0.10"
+  resolved "https://registry.yarnpkg.com/cspell-dict-lorem-ipsum/-/cspell-dict-lorem-ipsum-1.0.10.tgz#3828f43b4df35b258d5d31e4e539c2f6d3f3ce14"
+  integrity sha512-UlboQ3xH+D3l+hemLO4J5yz8EM60SH91f1dJIy2s94AeePZXtwYh1hTFM5dEsXI2CAQkfTu3ZdPWflLsInPfrA==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-lua@^1.0.8:
+  version "1.0.8"
+  resolved "https://registry.yarnpkg.com/cspell-dict-lua/-/cspell-dict-lua-1.0.8.tgz#733c3f908a818d08aadb360ace20ff2f8d9a0585"
+  integrity sha512-zPQoZxcKRbtO7dpWh02zO5kCElzJIqkgjAV209q03k7NoS1n0kAcV48W0agY6T1OR0ZjDWMkUheaLFDbaMJq3g==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-php@^1.0.13:
+  version "1.0.13"
+  resolved "https://registry.yarnpkg.com/cspell-dict-php/-/cspell-dict-php-1.0.13.tgz#83cdab21e52d036303b321bf9bca27a9820661a6"
+  integrity sha512-RP5XST+hWEqWxlLISS3sXxsQa2YXOWx8X5LcxQHvEGdb1hMNypXxw9V53th7S+hfUTPKJrbUIzckYZp4j8TS4A==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-powershell@^1.0.6:
+  version "1.0.6"
+  resolved "https://registry.yarnpkg.com/cspell-dict-powershell/-/cspell-dict-powershell-1.0.6.tgz#2cd32028fb2c7894f4eb7ff202eeec02a8138825"
+  integrity sha512-rwxt/fG3Nr7tQaV7e38ilz8qWfXrf5Ie+MQC6Mw/ddjT4wLOkGvruUqtJA/USoDE9PFG12KoarFsWlVXv/nwPA==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-python@^1.0.20:
+  version "1.0.20"
+  resolved "https://registry.yarnpkg.com/cspell-dict-python/-/cspell-dict-python-1.0.20.tgz#39509b4cbaf5cbe9b5ceab9440eeeb42c04f6323"
+  integrity sha512-BiV8LnH9YNxvkUbVwTyDpZhOuRjPr8cE+nxpuPDbCHmVJmlLsDlg8MXTcJH8I+OFjoz6YdBX6yqK1bi55Aioow==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-ruby@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/cspell-dict-ruby/-/cspell-dict-ruby-1.0.3.tgz#bbda30306af9c9274b8848005d9f73f1d3513651"
+  integrity sha512-uFxUyGj9SRASfnd75lcpkoNvMYHNWmqkFmS9ZruL61M1RmFx9eekuEY74nK11qsb/E4o6yPtGAQH4SrotF9SwQ==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-rust@^1.0.12:
+  version "1.0.12"
+  resolved "https://registry.yarnpkg.com/cspell-dict-rust/-/cspell-dict-rust-1.0.12.tgz#323eedd0137d8019df08f02d9c1956d9778d0baa"
+  integrity sha512-bMt70/aQL2OcadZRtWfPIF/mHWX9JNOGq92UUU2ka+9C3OPBP/TuyYiHhUWt67y/CoIyEQ7/5uAtjX8paLf14w==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-scala@^1.0.11:
+  version "1.0.11"
+  resolved "https://registry.yarnpkg.com/cspell-dict-scala/-/cspell-dict-scala-1.0.11.tgz#42533b2c850fe6eb64946708fd19e66824b842a7"
+  integrity sha512-bmAQjapvcceJaiwGTkBd9n2L9GaqpmFDKe5S19WQDsWqjFiDwQ+r47td3TU7yWjOLPqp72h9X/XGzDJFvQEPcg==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-software-terms@^1.0.10:
+  version "1.0.10"
+  resolved "https://registry.yarnpkg.com/cspell-dict-software-terms/-/cspell-dict-software-terms-1.0.10.tgz#8aa6fe2c6979810675e1dadee035404f71538a1e"
+  integrity sha512-buww9OWunaLwRBiJ+gHW7DLoqMtSbHR6sP3DkvjSZBeke3KxAyS2HmsXPTPVrHFrbqm6qCDmGBs442HZcUz3Iw==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-dict-typescript@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/cspell-dict-typescript/-/cspell-dict-typescript-1.0.5.tgz#7e375a6f694b9a925647e5a5696cc992e5411339"
+  integrity sha512-bp4rf3/N02Q6JJhJyDcmCtzn9L00nRBQaar3uxRR7lHz3JfIPujUpTXpJN+iuhhcBv8jL1bKTd5wCpfRyHSi1g==
+  dependencies:
+    configstore "^5.0.0"
+
+cspell-glob@^0.1.19:
+  version "0.1.19"
+  resolved "https://registry.yarnpkg.com/cspell-glob/-/cspell-glob-0.1.19.tgz#e6076918a4e17a26f9be19d81198437bbc74126e"
+  integrity sha512-mWWXtKZIsbbUcFKscHEHc2o3fG7VWLqx46ooqbNVnItSZ/jJgPSuguvKh3L6avPY3KKmef2Loae7bjchDwZ+Mw==
+  dependencies:
+    micromatch "^4.0.2"
+
+cspell-io@^4.0.22:
+  version "4.0.22"
+  resolved "https://registry.yarnpkg.com/cspell-io/-/cspell-io-4.0.22.tgz#fec7000e34394cd9a4795f606ddddcb7b0838145"
+  integrity sha512-cjkCHgLZftGPmGe6eSh+FQpQPCxou7t/MjwuCTY8ZeqI55veCF9uCWk8BI4lKbvDjkp6HxgU1T4mighvKY3/wA==
+  dependencies:
+    iconv-lite "^0.4.24"
+    iterable-to-stream "^1.0.1"
+
+cspell-lib@^4.1.29:
+  version "4.1.29"
+  resolved "https://registry.yarnpkg.com/cspell-lib/-/cspell-lib-4.1.29.tgz#40a028a7b2675d7f6ecd45f1eab8d9310f5456ea"
+  integrity sha512-NQTxLhPPObvPg2MJmu1pVJG5fEaytHhhHjHhbdfh6gFTUKdBwQTwxprL+9ySRBPpxm9x7BgqGchJpDa7UbENyQ==
+  dependencies:
+    comment-json "^3.0.2"
+    configstore "^5.0.1"
+    cspell-dict-aws "^1.0.5"
+    cspell-dict-bash "^1.0.3"
+    cspell-dict-companies "^1.0.22"
+    cspell-dict-cpp "^1.1.26"
+    cspell-dict-cryptocurrencies "^1.0.2"
+    cspell-dict-django "^1.0.15"
+    cspell-dict-dotnet "^1.0.14"
+    cspell-dict-elixir "^1.0.13"
+    cspell-dict-en-gb "^1.1.16"
+    cspell-dict-en_us "^1.2.26"
+    cspell-dict-fonts "^1.0.5"
+    cspell-dict-fullstack "^1.0.23"
+    cspell-dict-golang "^1.1.14"
+    cspell-dict-haskell "^1.0.4"
+    cspell-dict-html-symbol-entities "^1.0.13"
+    cspell-dict-java "^1.0.12"
+    cspell-dict-latex "^1.0.13"
+    cspell-dict-lorem-ipsum "^1.0.10"
+    cspell-dict-lua "^1.0.8"
+    cspell-dict-php "^1.0.13"
+    cspell-dict-powershell "^1.0.6"
+    cspell-dict-python "^1.0.20"
+    cspell-dict-ruby "^1.0.3"
+    cspell-dict-rust "^1.0.12"
+    cspell-dict-scala "^1.0.11"
+    cspell-dict-software-terms "^1.0.10"
+    cspell-dict-typescript "^1.0.5"
+    cspell-io "^4.0.22"
+    cspell-trie-lib "^4.1.10"
+    cspell-util-bundle "^4.0.12"
+    fs-extra "^9.0.0"
+    gensequence "^3.1.1"
+    minimatch "^3.0.4"
+    vscode-uri "^2.1.1"
+
+cspell-trie-lib@^4.1.10:
+  version "4.1.10"
+  resolved "https://registry.yarnpkg.com/cspell-trie-lib/-/cspell-trie-lib-4.1.10.tgz#a55b5ac525d948a6004bed08bf475ab7aa3719ec"
+  integrity sha512-KRcHfdzWQz5W4M4WstzjFDGS8EM7nxGOVXTOq1mNXsT2DkoOemVPI0gIUWLGHcuZuXAj90dkqzEWNk6wZ9v9+w==
+  dependencies:
+    gensequence "^3.1.1"
+
+cspell-util-bundle@^4.0.12:
+  version "4.0.12"
+  resolved "https://registry.yarnpkg.com/cspell-util-bundle/-/cspell-util-bundle-4.0.12.tgz#ac0389535998dba4363126218e3cbbade85bbe2d"
+  integrity sha512-qrqbgSF4Uci/E5q7q95Wd00RrVj6NTABbJGE8qNTMcLfBLezVy0zj+eHdLe7dTkx4oHob2N3WrMBBE3xBhzg/g==
+
+cspell@^4.0.63:
+  version "4.0.63"
+  resolved "https://registry.yarnpkg.com/cspell/-/cspell-4.0.63.tgz#af42bed1a149c5fed9beb69b7b57e25c5a0ec38d"
+  integrity sha512-dF0oq69CrTFArISxKhih5p8Mcb1RihzQcQ5LnQnuY66Df/qtyScCMvPgg+G/gUtLPa2RYb3WSy8surZNVS2c0Q==
+  dependencies:
+    chalk "^2.4.2"
+    commander "^2.20.3"
+    comment-json "^3.0.2"
+    cspell-glob "^0.1.19"
+    cspell-lib "^4.1.29"
+    fs-extra "^9.0.0"
+    gensequence "^3.1.1"
+    get-stdin "^7.0.0"
+    glob "^7.1.6"
+    minimatch "^3.0.4"
+
 cssesc@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
@@ -2580,6 +2886,16 @@ fragment-cache@^0.2.1:
   dependencies:
     map-cache "^0.2.2"
 
+fs-extra@^9.0.0:
+  version "9.0.0"
+  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.0.tgz#b6afc31036e247b2466dc99c29ae797d5d4580a3"
+  integrity sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==
+  dependencies:
+    at-least-node "^1.0.0"
+    graceful-fs "^4.2.0"
+    jsonfile "^6.0.1"
+    universalify "^1.0.0"
+
 fs.realpath@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
@@ -2613,6 +2929,11 @@ gather-stream@^1.0.0:
   resolved "https://registry.yarnpkg.com/gather-stream/-/gather-stream-1.0.0.tgz#b33994af457a8115700d410f317733cbe7a0904b"
   integrity sha1-szmUr0V6gRVwDUEPMXczy+egkEs=
 
+gensequence@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/gensequence/-/gensequence-3.1.1.tgz#95c1afc7c0680f92942c17f2d6f83f3d26ea97af"
+  integrity sha512-ys3h0hiteRwmY6BsvSttPmkhC0vEQHPJduANBRtH/dlDPZ0UBIb/dXy80IcckXyuQ6LKg+PloRqvGER9IS7F7g==
+
 gensync@^1.0.0-beta.1:
   version "1.0.0-beta.1"
   resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269"
@@ -2628,6 +2949,11 @@ get-stdin@^6.0.0:
   resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz#9e09bf712b360ab9225e812048f71fde9c89657b"
   integrity sha512-jp4tHawyV7+fkkSKyvjuLZswblUtz+SQKzSWnBbii16BuZksJlU1wuBYXY75r+duh/llF1ur6oNwi+2ZzjKZ7g==
 
+get-stdin@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6"
+  integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ==
+
 get-stdin@^8.0.0:
   version "8.0.0"
   resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53"
@@ -2689,7 +3015,7 @@ glob@7.1.3:
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
-glob@^7.0.3, glob@^7.1.2, glob@^7.1.3:
+glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.6:
   version "7.1.6"
   resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6"
   integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
@@ -2778,7 +3104,7 @@ gonzales-pe@^4.2.3, gonzales-pe@^4.3.0:
   dependencies:
     minimist "^1.2.5"
 
-graceful-fs@^4.1.2:
+graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
   version "4.2.4"
   resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb"
   integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==
@@ -2828,6 +3154,11 @@ has-flag@^4.0.0:
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
   integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
 
+has-own-prop@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/has-own-prop/-/has-own-prop-2.0.0.tgz#f0f95d58f65804f5d218db32563bb85b8e0417af"
+  integrity sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==
+
 has-symbols@^1.0.0, has-symbols@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
@@ -3392,6 +3723,11 @@ isstream@~0.1.2:
   resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
   integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
 
+iterable-to-stream@^1.0.1:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/iterable-to-stream/-/iterable-to-stream-1.0.1.tgz#37e86baacf6b1a0e9233dad4eb526d0423d08bf3"
+  integrity sha512-O62gD5ADMUGtJoOoM9U6LQ7i4byPXUNoHJ6mqsmkQJcom331ZJGDApWgDESWyBMEHEJRjtHozgIiTzYo9RU4UA==
+
 js-base64@^2.1.9:
   version "2.5.2"
   resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.2.tgz#313b6274dda718f714d00b3330bbae6e38e90209"
@@ -3465,6 +3801,15 @@ json5@^2.1.2:
   dependencies:
     minimist "^1.2.5"
 
+jsonfile@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179"
+  integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==
+  dependencies:
+    universalify "^1.0.0"
+  optionalDependencies:
+    graceful-fs "^4.1.6"
+
 jsprim@^1.2.2:
   version "1.4.1"
   resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
@@ -3751,6 +4096,13 @@ make-dir@^2.0.0, make-dir@^2.1.0:
     pify "^4.0.1"
     semver "^5.6.0"
 
+make-dir@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+  integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+  dependencies:
+    semver "^6.0.0"
+
 map-cache@^0.2.2:
   version "0.2.2"
   resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
@@ -5297,7 +5649,7 @@ semver@7.0.0:
   resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
   integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
 
-semver@^6.1.2, semver@^6.3.0:
+semver@^6.0.0, semver@^6.1.2, semver@^6.3.0:
   version "6.3.0"
   resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
   integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
@@ -6190,6 +6542,13 @@ uniq@^1.0.1:
   resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
   integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
 
+unique-string@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
+  integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==
+  dependencies:
+    crypto-random-string "^2.0.0"
+
 unist-util-find-all-after@^1.0.2:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/unist-util-find-all-after/-/unist-util-find-all-after-1.0.5.tgz#5751a8608834f41d117ad9c577770c5f2f1b2899"
@@ -6271,6 +6630,11 @@ unist-util-visit@^2.0.0:
     unist-util-is "^4.0.0"
     unist-util-visit-parents "^3.0.0"
 
+universalify@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d"
+  integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==
+
 unpipe@1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
@@ -6387,6 +6751,11 @@ vfile@^4.0.0:
     unist-util-stringify-position "^2.0.0"
     vfile-message "^2.0.0"
 
+vscode-uri@^2.1.1:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-2.1.2.tgz#c8d40de93eb57af31f3c715dd650e2ca2c096f1c"
+  integrity sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==
+
 wcwidth@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8"
@@ -6439,7 +6808,7 @@ wrappy@1:
   resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
   integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
 
-write-file-atomic@^3.0.3:
+write-file-atomic@^3.0.0, write-file-atomic@^3.0.3:
   version "3.0.3"
   resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8"
   integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==
@@ -6466,6 +6835,11 @@ x-is-string@^0.1.0:
   resolved "https://registry.yarnpkg.com/x-is-string/-/x-is-string-0.1.0.tgz#474b50865af3a49a9c4657f05acd145458f77d82"
   integrity sha1-R0tQhlrzpJqcRlfwWs0UVFj3fYI=
 
+xdg-basedir@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13"
+  integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==
+
 xregexp@2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-2.0.0.tgz#52a63e56ca0b84a7f3a5f3d61872f126ad7a5943"