From 291f27ac21f962d44a545fd75a0b173b78b26f62 Mon Sep 17 00:00:00 2001
From: Ruth Cheesley <ruth.cheesley@mautic.org>
Date: Fri, 8 Sep 2023 15:03:10 +0100
Subject: [PATCH 01/11] Implement Vale linter with Alex

---
 .github/styles/Vocab/Decidim/accept.txt       |    1 +
 .github/styles/Vocab/Decidim/reject.txt       |    0
 .github/styles/alex/Ablist.yml                |  248 ++++
 .github/styles/alex/Condescending.yml         |   16 +
 .github/styles/alex/Gendered.yml              |  108 ++
 .github/styles/alex/LGBTQ.yml                 |   55 +
 .github/styles/alex/Press.yml                 |   11 +
 .github/styles/alex/ProfanityLikely.yml       | 1289 +++++++++++++++++
 .github/styles/alex/ProfanityMaybe.yml        |  282 ++++
 .github/styles/alex/ProfanityUnlikely.yml     |  251 ++++
 .github/styles/alex/README.md                 |   27 +
 .github/styles/alex/Race.yml                  |   87 ++
 .github/styles/alex/meta.json                 |    4 +
 .github/workflows/linting.yml                 |   20 +
 .../admin/pages/components/budgets.adoc       |    4 +-
 vale.ini                                      |    6 +
 16 files changed, 2407 insertions(+), 2 deletions(-)
 create mode 100644 .github/styles/Vocab/Decidim/accept.txt
 create mode 100644 .github/styles/Vocab/Decidim/reject.txt
 create mode 100644 .github/styles/alex/Ablist.yml
 create mode 100644 .github/styles/alex/Condescending.yml
 create mode 100644 .github/styles/alex/Gendered.yml
 create mode 100644 .github/styles/alex/LGBTQ.yml
 create mode 100644 .github/styles/alex/Press.yml
 create mode 100644 .github/styles/alex/ProfanityLikely.yml
 create mode 100644 .github/styles/alex/ProfanityMaybe.yml
 create mode 100644 .github/styles/alex/ProfanityUnlikely.yml
 create mode 100644 .github/styles/alex/README.md
 create mode 100644 .github/styles/alex/Race.yml
 create mode 100644 .github/styles/alex/meta.json
 create mode 100644 .github/workflows/linting.yml
 create mode 100644 vale.ini

diff --git a/.github/styles/Vocab/Decidim/accept.txt b/.github/styles/Vocab/Decidim/accept.txt
new file mode 100644
index 0000000000..ea4403751b
--- /dev/null
+++ b/.github/styles/Vocab/Decidim/accept.txt
@@ -0,0 +1 @@
+Decidim 
\ No newline at end of file
diff --git a/.github/styles/Vocab/Decidim/reject.txt b/.github/styles/Vocab/Decidim/reject.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/.github/styles/alex/Ablist.yml b/.github/styles/alex/Ablist.yml
new file mode 100644
index 0000000000..cd6ddb5bd3
--- /dev/null
+++ b/.github/styles/alex/Ablist.yml
@@ -0,0 +1,248 @@
+---
+extends: substitution
+message: When referring to a person, consider using '%s' instead of '%s'.
+ignorecase: true
+level: warning
+action:
+  name: replace
+swap:
+  ablebodied: non-disabled
+  addict: person with a drug addiction|person recovering from a drug addiction
+  addicts: people with a drug addiction|people recovering from a drug addiction
+  adhd: disorganized|distracted|energetic|hyperactive|impetuous|impulsive|inattentive|restless|unfocused
+  afflicted with MD: person who has muscular dystrophy
+  afflicted with a disability: has a disability|person with a disability|people with
+    disabilities
+  afflicted with a intellectual disability: person with an intellectual disability
+  afflicted with a polio: polio|person who had polio
+  afflicted with aids: person with AIDS
+  afflicted with an injury: sustain an injury|receive an injury
+  afflicted with disabilities: has a disability|person with a disability|people with
+    disabilities
+  afflicted with injuries: sustain injuries|receive injuries
+  afflicted with intellectual disabilities: person with an intellectual disability
+  afflicted with multiple sclerosis: person who has multiple sclerosis
+  afflicted with muscular dystrophy: person who has muscular dystrophy
+  afflicted with polio: polio|person who had polio
+  afflicted with psychosis: person with a psychotic condition|person with psychosis
+  afflicted with schizophrenia: person with schizophrenia
+  aids victim: person with AIDS
+  alcohol abuser: someone with an alcohol problem
+  alcoholic: someone with an alcohol problem
+  amputee: person with an amputation
+  anorexic: thin|slim
+  asylum: psychiatric hospital|mental health hospital
+  barren: empty|sterile|infertile
+  batshit: rude|malicious|mean|disgusting|incredible|vile|person with symptoms of
+    mental illness|person with mental illness|person with symptoms of a mental disorder|person
+    with a mental disorder
+  bedlam: chaos|hectic|pandemonium
+  binge: enthusiastic|spree
+  bipolar: fluctuating|person with bipolar disorder
+  birth defect: has a disability|person with a disability|people with disabilities
+  blind eye to: careless|heartless|indifferent|insensitive
+  blind to: careless|heartless|indifferent|insensitive
+  blinded by: careless|heartless|indifferent|insensitive
+  bony: thin|slim
+  bound to a wheelchair: uses a wheelchair
+  buckteeth: person with prominent teeth|prominent teeth
+  bucktoothed: person with prominent teeth|prominent teeth
+  challenged: has a disability|person with a disability|people with disabilities
+  cleftlipped: person with a cleft-lip and palate
+  confined to a wheelchair: uses a wheelchair
+  contard: disagreeable|uneducated|ignorant|naive|inconsiderate
+  crazy: rude|malicious|mean|disgusting|incredible|vile|person with symptoms of mental
+    illness|person with mental illness|person with symptoms of a mental disorder|person
+    with a mental disorder
+  cretin: creep|fool
+  cripple: person with a limp
+  crippled: person with a limp
+  daft: absurd|foolish
+  deaf and dumb: deaf
+  deaf ear to: careless|heartless|indifferent|insensitive
+  deaf to: careless|heartless|indifferent|insensitive
+  deafened by: careless|heartless|indifferent|insensitive
+  deafmute: deaf
+  delirious: rude|malicious|mean|disgusting|incredible|vile|person with symptoms of
+    mental illness|person with mental illness|person with symptoms of a mental disorder|person
+    with a mental disorder
+  demented: person with dementia
+  depressed: sad|blue|bummed out|person with seasonal affective disorder|person with
+    psychotic depression|person with postpartum depression
+  detox: treatment
+  detox center: treatment center
+  diffability: has a disability|person with a disability|people with disabilities
+  differently abled: has a disability|person with a disability|people with disabilities
+  disabled: turned off|has a disability|person with a disability|people with disabilities
+  downs syndrome: Down Syndrome
+  dumb: foolish|ludicrous|speechless|silent
+  dummy: test double|placeholder|fake|stub
+  dummyobject: test double|placeholder|fake|stub
+  dummyvalue: test double|placeholder|fake|stub
+  dummyvariable: test double|placeholder|fake|stub
+  dwarf: person with dwarfism|little person|little people|LP|person of short stature
+  dyslexic: person with dyslexia
+  epileptic: person with epilepsy
+  family burden: with family support needs
+  feeble minded: foolish|ludicrous|silly
+  feebleminded: foolish|ludicrous|silly
+  fucktard: disagreeable|uneducated|ignorant|naive|inconsiderate
+  gimp: person with a limp
+  handicapable: has a disability|person with a disability|people with disabilities
+  handicapped: person with a handicap|accessible
+  handicapped parking: accessible parking
+  hare lip: cleft-lip and palate
+  harelip: cleft-lip and palate
+  harelipped: person with a cleft-lip and palate
+  has intellectual issues: person with an intellectual disability
+  hearing impaired: hard of hearing|partially deaf|partial hearing loss|deaf
+  hearing impairment: hard of hearing|partially deaf|partial hearing loss|deaf
+  idiot: foolish|ludicrous|silly
+  imbecile: foolish|ludicrous|silly
+  infantile paralysis: polio|person who had polio
+  insane: rude|malicious|mean|disgusting|incredible|vile|person with symptoms of mental
+    illness|person with mental illness|person with symptoms of a mental disorder|person
+    with a mental disorder
+  insanely: incredibly
+  insanity: rude|malicious|mean|disgusting|incredible|vile|person with symptoms of
+    mental illness|person with mental illness|person with symptoms of a mental disorder|person
+    with a mental disorder
+  insomnia: restlessness|sleeplessness
+  insomniac: person who has insomnia
+  insomniacs: people who have insomnia
+  intellectually disabled: person with an intellectual disability
+  intellectually disabled people: people with intellectual disabilities
+  invalid: turned off|has a disability|person with a disability|people with disabilities
+  junkie: person with a drug addiction|person recovering from a drug addiction
+  junkies: people with a drug addiction|people recovering from a drug addiction
+  lame: boring|dull
+  learning disabled: person with learning disabilities
+  libtard: disagreeable|uneducated|ignorant|naive|inconsiderate
+  loony: rude|malicious|mean|disgusting|incredible|vile|person with symptoms of mental
+    illness|person with mental illness|person with symptoms of a mental disorder|person
+    with a mental disorder
+  loony bin: chaos|hectic|pandemonium
+  low iq: foolish|ludicrous|unintelligent
+  lunacy: rude|malicious|mean|disgusting|incredible|vile|person with symptoms of mental
+    illness|person with mental illness|person with symptoms of a mental disorder|person
+    with a mental disorder
+  lunatic: rude|malicious|mean|disgusting|incredible|vile|person with symptoms of
+    mental illness|person with mental illness|person with symptoms of a mental disorder|person
+    with a mental disorder
+  madhouse: chaos|hectic|pandemonium
+  maniac: fanatic|zealot|enthusiast
+  manic: person with schizophrenia
+  mental: rude|malicious|mean|disgusting|incredible|vile|person with symptoms of mental
+    illness|person with mental illness|person with symptoms of a mental disorder|person
+    with a mental disorder
+  mental case: rude|malicious|mean|disgusting|incredible|vile|person with symptoms
+    of mental illness|person with mental illness|person with symptoms of a mental
+    disorder|person with a mental disorder
+  mental defective: rude|malicious|mean|disgusting|incredible|vile|person with symptoms
+    of mental illness|person with mental illness|person with symptoms of a mental
+    disorder|person with a mental disorder
+  mentally ill: rude|malicious|mean|disgusting|incredible|vile|person with symptoms
+    of mental illness|person with mental illness|person with symptoms of a mental
+    disorder|person with a mental disorder
+  midget: person with dwarfism|little person|little people|LP|person of short stature
+  mongoloid: person with Down Syndrome
+  moron: rude|malicious|mean|disgusting|incredible|vile|person with symptoms of mental
+    illness|person with mental illness|person with symptoms of a mental disorder|person
+    with a mental disorder
+  moronic: rude|malicious|mean|disgusting|incredible|vile|person with symptoms of
+    mental illness|person with mental illness|person with symptoms of a mental disorder|person
+    with a mental disorder
+  multiple sclerosis victim: person who has multiple sclerosis
+  neurotic: has an anxiety disorder|obsessive|pedantic|niggly|picky
+  nuts: rude|malicious|mean|disgusting|incredible|vile|person with symptoms of mental
+    illness|person with mental illness|person with symptoms of a mental disorder|person
+    with a mental disorder
+  o.c.d: has an anxiety disorder|obsessive|pedantic|niggly|picky
+  o.c.d.: has an anxiety disorder|obsessive|pedantic|niggly|picky
+  ocd: has an anxiety disorder|obsessive|pedantic|niggly|picky
+  panic attack: fit of terror|scare
+  paraplegic: person with paraplegia
+  psycho: rude|malicious|mean|disgusting|incredible|vile|person with symptoms of mental
+    illness|person with mental illness|person with symptoms of a mental disorder|person
+    with a mental disorder
+  psychopathology: rude|malicious|mean|disgusting|incredible|vile|person with symptoms
+    of mental illness|person with mental illness|person with symptoms of a mental
+    disorder|person with a mental disorder
+  psychotic: person with a psychotic condition|person with psychosis
+  quadriplegic: person with quadriplegia
+  rehab: treatment
+  rehab center: treatment center
+  restricted to a wheelchair: uses a wheelchair
+  retard: silly|dullard|person with Down Syndrome|person with developmental disabilities|delay|hold
+    back
+  retarded: silly|dullard|person with Down Syndrome|person with developmental disabilities|delay|hold
+    back
+  retards: "sillies|dullards|people with developmental disabilities|people with Down\u2019\
+    s Syndrome|delays|holds back"
+  sane: correct|adequate|sufficient|consistent|valid|coherent|sensible|reasonable
+  sanity check: check|assertion|validation|smoke test
+  schizo: person with schizophrenia
+  schizophrenic: person with schizophrenia
+  senile: person with dementia
+  short bus: silly|dullard|person with Down Syndrome|person with developmental disabilities|delay|hold
+    back
+  simpleton: foolish|ludicrous|unintelligent
+  small person: person with dwarfism|little person|little people|LP|person of short
+    stature
+  sociopath: person with a personality disorder|person with psychopathic personality
+  sociopaths: people with psychopathic personalities|people with a personality disorder
+  spastic: person with cerebral palsy|twitch|flinch
+  spaz: person with cerebral palsy|twitch|flinch|hectic
+  special: has a disability|person with a disability|people with disabilities
+  special needs: has a disability|person with a disability|people with disabilities
+  special olympians: athletes|Special Olympics athletes
+  special olympic athletes: athletes|Special Olympics athletes
+  specially abled: has a disability|person with a disability|people with disabilities
+  stammering: stuttering|disfluency of speech
+  stroke victim: individual who has had a stroke
+  stupid: foolish|ludicrous|unintelligent
+  stutterer: person who stutters
+  suffer from aids: person with AIDS
+  suffer from an injury: sustain an injury|receive an injury
+  suffer from injuries: sustain injuries|receive injuries
+  suffering from a disability: has a disability|person with a disability|people with
+    disabilities
+  suffering from a polio: polio|person who had polio
+  suffering from a stroke: individual who has had a stroke
+  suffering from aids: person with AIDS
+  suffering from an injury: sustain an injury|receive an injury
+  suffering from an intellectual disability: person with an intellectual disability
+  suffering from disabilities: has a disability|person with a disability|people with
+    disabilities
+  suffering from injuries: sustain injuries|receive injuries
+  suffering from intellectual disabilities: person with an intellectual disability
+  suffering from multiple sclerosis: person who has multiple sclerosis
+  suffering from polio: polio|person who had polio
+  suffering from psychosis: person with a psychotic condition|person with psychosis
+  suffering from schizophrenia: person with schizophrenia
+  suffers from MD: person who has muscular dystrophy
+  suffers from aids: person with AIDS
+  suffers from an injury: sustain an injury|receive an injury
+  suffers from disabilities: has a disability|person with a disability|people with
+    disabilities
+  suffers from injuries: sustain injuries|receive injuries
+  suffers from intellectual disabilities: person with an intellectual disability
+  suffers from multiple sclerosis: person who has multiple sclerosis
+  suffers from muscular dystrophy: person who has muscular dystrophy
+  suffers from polio: polio|person who had polio
+  suffers from psychosis: person with a psychotic condition|person with psychosis
+  suffers from schizophrenia: person with schizophrenia
+  tourettes disorder: Tourette syndrome
+  tourettes syndrome: Tourette syndrome
+  vertically challenged: person with dwarfism|little person|little people|LP|person
+    of short stature
+  victim of a stroke: individual who has had a stroke
+  victim of aids: person with AIDS
+  victim of an injury: sustain an injury|receive an injury
+  victim of injuries: sustain injuries|receive injuries
+  victim of multiple sclerosis: person who has multiple sclerosis
+  victim of polio: polio|person who had polio
+  victim of psychosis: person with a psychotic condition|person with psychosis
+  wacko: foolish|ludicrous|unintelligent
+  whacko: foolish|ludicrous|unintelligent
+  wheelchair bound: uses a wheelchair
diff --git a/.github/styles/alex/Condescending.yml b/.github/styles/alex/Condescending.yml
new file mode 100644
index 0000000000..4283a33671
--- /dev/null
+++ b/.github/styles/alex/Condescending.yml
@@ -0,0 +1,16 @@
+---
+extends: existence
+message: Using '%s' may come across as condescending.
+link: https://css-tricks.com/words-avoid-educational-writing/
+level: error
+ignorecase: true
+tokens:
+  - obvious
+  - obviously
+  - simple
+  - simply
+  - easy
+  - easily
+  - of course
+  - clearly
+  - everyone knows
diff --git a/.github/styles/alex/Gendered.yml b/.github/styles/alex/Gendered.yml
new file mode 100644
index 0000000000..c7b1f06b4f
--- /dev/null
+++ b/.github/styles/alex/Gendered.yml
@@ -0,0 +1,108 @@
+---
+extends: substitution
+message: "Consider using '%s' instead of '%s'."
+ignorecase: true
+level: warning
+action:
+  name: replace
+swap:
+  ancient man: ancient civilization|ancient people
+  authoress: author|writer
+  average housewife: average consumer|average household|average homemaker
+  average man: average person
+  average working man: average wage earner|average taxpayer
+  aviatrix: aviator
+  bitch: whine|complain|cry
+  bitching: whining|complaining|crying
+  brotherhood of man: the human family
+  calendar girl: model
+  call girl: escort|prostitute|sex worker
+  churchman: cleric|practicing Christian|pillar of the Church
+  english master: english coordinator|senior teacher of english
+  englishmen: the english
+  executrix: executor
+  father of *: founder of
+  fellowship: camaraderie|community|organization
+  founding father: the founders|founding leaders|forebears
+  frenchmen: french|the french
+  freshman: first-year student|fresher
+  freshwoman: first-year student|fresher
+  housemaid: house worker|domestic help
+  housewife: homemaker|homeworker
+  housewives: homemakers|homeworkers
+  industrial man: industrial civilization|industrial people
+  lady doctor: doctor
+  ladylike: courteous|cultured
+  leading lady: lead
+  like a man: resolutely|bravely
+  mad man: fanatic|zealot|enthusiast
+  mad men: fanatics|zealots|enthusiasts
+  madman: fanatic|zealot|enthusiast
+  madmen: fanatics|zealots|enthusiasts
+  maiden: virgin
+  maiden flight: first flight
+  maiden name: birth name
+  maiden race: first race
+  maiden speech: first speech
+  maiden voyage: first voyage
+  man a desk: staff a desk
+  man enough: strong enough
+  man hour: staff hour|hour of work
+  man hours: staff hours|hours of work|hours of labor|hours
+  man in the street: ordinary citizen|typical person|average person
+  man of action: dynamo
+  man of letters: scholar|writer|literary figure
+  man of the land: farmer|rural worker|grazier|landowner|rural community|country people|country
+    folk
+  man of the world: sophisticate
+  man sized task: a demanding task|a big job
+  man the booth: staff the booth
+  man the phones: answer the phones
+  manhour: staff hour|hour of work
+  manhours: staff hours|hours of work|hours of labor|hours
+  mankind: humankind
+  manmade: manufactured|artificial|synthetic|machine-made|constructed
+  manned: staffed|crewed|piloted
+  manpower: human resources|workforce|personnel|staff|labor|personnel|labor force|staffing|combat
+    personnel
+  mans best friend: a faithful dog
+  mansized task: a demanding task|a big job
+  master copy: pass key|original
+  master key: pass key|original
+  master of ceremonies: emcee|moderator|convenor
+  master plan: grand scheme|guiding principles
+  master the art: become skilled
+  masterful: skilled|authoritative|commanding
+  mastermind: genius|creator|instigator|oversee|launch|originate
+  masterpiece: "work of genius|chef d\u2019oeuvre"
+  masterplan: vision|comprehensive plan
+  masterstroke: trump card|stroke of genius
+  men of science: scientists
+  midwife: birthing nurse
+  miss\.: ms.
+  moan: whine|complain|cry
+  moaning: whining|complaining|crying
+  modern man: modern civilization|modern people
+  motherly: loving|warm|nurturing
+  mrs\.: ms.
+  no mans land: unoccupied territory|wasteland|deathtrap
+  office girls: administrative staff
+  oneupmanship: upstaging|competitiveness
+  poetess: poet
+  railwayman: railway worker
+  sportsmanlike: fair|sporting
+  sportsmanship: fairness|good humor|sense of fair play
+  statesman like: diplomatic
+  statesmanlike: diplomatic
+  stockman: cattle worker|farmhand|drover
+  tax man: tax commissioner|tax office|tax collector
+  tradesmans entrance: service entrance
+  unmanned: robotic|automated
+  usherette: usher
+  wife beater: tank top|sleeveless undershirt
+  wifebeater: tank top|sleeveless undershirt
+  woman lawyer: lawyer
+  woman painter: painter
+  working mother: wage or salary earning woman|two-income family
+  working wife: wage or salary earning woman|two-income family
+  workmanship: quality construction|expertise
diff --git a/.github/styles/alex/LGBTQ.yml b/.github/styles/alex/LGBTQ.yml
new file mode 100644
index 0000000000..842a9c6f1d
--- /dev/null
+++ b/.github/styles/alex/LGBTQ.yml
@@ -0,0 +1,55 @@
+---
+extends: substitution
+message: Consider using '%s' instead of '%s'.
+ignorecase: true
+level: warning
+action:
+  name: replace
+swap:
+  bathroom bill: non-discrimination law|non-discrimination ordinance
+  bi: bisexual
+  biologically female: assigned female at birth|designated female at birth
+  biologically male: assigned male at birth|designated male at birth
+  born a man: assigned male at birth|designated male at birth
+  born a woman: assigned female at birth|designated female at birth
+  dyke: gay
+  fag: gay
+  faggot: gay
+  gay agenda: gay issues
+  gay lifestyle: gay lives|gay/lesbian lives
+  gay rights: equal rights|civil rights for gay people
+  gender pronoun: pronoun|pronouns
+  gender pronouns: pronoun|pronouns
+  genetically female: assigned female at birth|designated female at birth
+  genetically male: assigned male at birth|designated male at birth
+  hermaphrodite: person who is intersex|person|intersex person
+  hermaphroditic: intersex
+  heshe: transgender person|person
+  homo: gay
+  homosexual: gay|gay man|lesbian|gay person/people
+  homosexual agenda: gay issues
+  homosexual couple: couple
+  homosexual lifestyle: gay lives|gay/lesbian lives
+  homosexual marriage: gay marriage|same-sex marriage
+  homosexual relations: relationship
+  homosexual relationship: relationship
+  preferred pronoun: pronoun|pronouns
+  preferred pronouns: pronoun|pronouns
+  pseudo hermaphrodite: person who is intersex|person|intersex person
+  pseudo hermaphroditic: intersex
+  pseudohermaphrodite: person who is intersex|person|intersex person
+  pseudohermaphroditic: intersex
+  sex change: transition|gender confirmation surgery
+  sex change operation: sex reassignment surgery|gender confirmation surgery
+  sexchange: transition|gender confirmation surgery
+  sexual preference: sexual orientation|orientation
+  she male: transgender person|person
+  shehe: transgender person|person
+  shemale: transgender person|person
+  sodomite: gay
+  special rights: equal rights|civil rights for gay people
+  tranny: transgender
+  transgendered: transgender
+  transgenderism: being transgender|the movement for transgender equality
+  transgenders: transgender people
+  transvestite: cross-dresser
diff --git a/.github/styles/alex/Press.yml b/.github/styles/alex/Press.yml
new file mode 100644
index 0000000000..06991dbf18
--- /dev/null
+++ b/.github/styles/alex/Press.yml
@@ -0,0 +1,11 @@
+---
+extends: substitution
+message: Consider using '%s' instead of '%s'.
+ignorecase: true
+level: warning
+action:
+  name: replace
+swap:
+  islamist: muslim|person of Islamic faith|fanatic|zealot|follower of islam|follower
+    of the islamic faith
+  islamists: muslims|people of Islamic faith|fanatics|zealots
diff --git a/.github/styles/alex/ProfanityLikely.yml b/.github/styles/alex/ProfanityLikely.yml
new file mode 100644
index 0000000000..1c03e19897
--- /dev/null
+++ b/.github/styles/alex/ProfanityLikely.yml
@@ -0,0 +1,1289 @@
+extends: existence
+message: Don't use '%s', it’s profane.
+level: warning
+ignorecase: true
+tokens:
+    - abeed
+    - africoon
+    - alligator bait
+    - alligatorbait
+    - analannie
+    - arabush
+    - arabushs
+    - argie
+    - armo
+    - armos
+    - arse
+    - arsehole
+    - ass
+    - assbagger
+    - assblaster
+    - assclown
+    - asscowboy
+    - asses
+    - assfuck
+    - assfucker
+    - asshat
+    - asshole
+    - assholes
+    - asshore
+    - assjockey
+    - asskiss
+    - asskisser
+    - assklown
+    - asslick
+    - asslicker
+    - asslover
+    - assman
+    - assmonkey
+    - assmunch
+    - assmuncher
+    - asspacker
+    - asspirate
+    - asspuppies
+    - assranger
+    - asswhore
+    - asswipe
+    - backdoorman
+    - badfuck
+    - balllicker
+    - barelylegal
+    - barf
+    - barface
+    - barfface
+    - bazongas
+    - bazooms
+    - beanbag
+    - beanbags
+    - beaner
+    - beaners
+    - beaney
+    - beaneys
+    - beatoff
+    - beatyourmeat
+    - biatch
+    - bigass
+    - bigbastard
+    - bigbutt
+    - bitcher
+    - bitches
+    - bitchez
+    - bitchin
+    - bitching
+    - bitchslap
+    - bitchy
+    - biteme
+    - blowjob
+    - bluegum
+    - bluegums
+    - boang
+    - boche
+    - boches
+    - bogan
+    - bohunk
+    - bollick
+    - bollock
+    - bollocks
+    - bong
+    - boob
+    - boobies
+    - boobs
+    - booby
+    - boody
+    - boong
+    - boonga
+    - boongas
+    - boongs
+    - boonie
+    - boonies
+    - bootlip
+    - bootlips
+    - booty
+    - bootycall
+    - bosch
+    - bosche
+    - bosches
+    - boschs
+    - brea5t
+    - breastjob
+    - breastlover
+    - breastman
+    - buddhahead
+    - buddhaheads
+    - buffies
+    - bugger
+    - buggered
+    - buggery
+    - bule
+    - bules
+    - bullcrap
+    - bulldike
+    - bulldyke
+    - bullshit
+    - bumblefuck
+    - bumfuck
+    - bung
+    - bunga
+    - bungas
+    - bunghole
+    - "burr head"
+    - "burr heads"
+    - burrhead
+    - burrheads
+    - butchbabes
+    - butchdike
+    - butchdyke
+    - buttbang
+    - buttface
+    - buttfuck
+    - buttfucker
+    - buttfuckers
+    - butthead
+    - buttman
+    - buttmunch
+    - buttmuncher
+    - buttpirate
+    - buttplug
+    - buttstain
+    - byatch
+    - cacker
+    - "camel jockey"
+    - "camel jockeys"
+    - cameljockey
+    - cameltoe
+    - carpetmuncher
+    - carruth
+    - chav
+    - "cheese eating surrender monkey"
+    - "cheese eating surrender monkies"
+    - "cheeseeating surrender monkey"
+    - "cheeseeating surrender monkies"
+    - cheesehead
+    - cheeseheads
+    - cherrypopper
+    - chickslick
+    - "china swede"
+    - "china swedes"
+    - chinaman
+    - chinamen
+    - chinaswede
+    - chinaswedes
+    - "ching chong"
+    - "ching chongs"
+    - chingchong
+    - chingchongs
+    - chink
+    - chinks
+    - chinky
+    - choad
+    - chode
+    - chonkies
+    - chonky
+    - chonkys
+    - "christ killer"
+    - "christ killers"
+    - chug
+    - chugs
+    - chunger
+    - chungers
+    - chunkies
+    - chunky
+    - chunkys
+    - clamdigger
+    - clamdiver
+    - clansman
+    - clansmen
+    - clanswoman
+    - clanswomen
+    - clit
+    - clitoris
+    - clogwog
+    - cockblock
+    - cockblocker
+    - cockcowboy
+    - cockfight
+    - cockhead
+    - cockknob
+    - cocklicker
+    - cocklover
+    - cocknob
+    - cockqueen
+    - cockrider
+    - cocksman
+    - cocksmith
+    - cocksmoker
+    - cocksucer
+    - cocksuck
+    - cocksucked
+    - cocksucker
+    - cocksucking
+    - cocktease
+    - cocky
+    - cohee
+    - commie
+    - coolie
+    - coolies
+    - cooly
+    - coon
+    - "coon ass"
+    - "coon asses"
+    - coonass
+    - coonasses
+    - coondog
+    - coons
+    - cornhole
+    - cracka
+    - crackwhore
+    - crap
+    - crapola
+    - crapper
+    - crappy
+    - crotchjockey
+    - crotchmonkey
+    - crotchrot
+    - cum
+    - cumbubble
+    - cumfest
+    - cumjockey
+    - cumm
+    - cummer
+    - cumming
+    - cummings
+    - cumquat
+    - cumqueen
+    - cumshot
+    - cunn
+    - cunntt
+    - cunt
+    - cunteyed
+    - cuntfuck
+    - cuntfucker
+    - cuntlick
+    - cuntlicker
+    - cuntlicking
+    - cuntsucker
+    - "curry muncher"
+    - "curry munchers"
+    - currymuncher
+    - currymunchers
+    - cushi
+    - cushis
+    - cyberslimer
+    - dago
+    - dagos
+    - dahmer
+    - dammit
+    - damnit
+    - darkey
+    - darkeys
+    - darkie
+    - darkies
+    - darky
+    - datnigga
+    - deapthroat
+    - deepthroat
+    - dego
+    - degos
+    - "diaper head"
+    - "diaper heads"
+    - diaperhead
+    - diaperheads
+    - dickbrain
+    - dickforbrains
+    - dickhead
+    - dickless
+    - dicklick
+    - dicklicker
+    - dickman
+    - dickwad
+    - dickweed
+    - diddle
+    - dingleberry
+    - dink
+    - dinks
+    - dipshit
+    - dipstick
+    - dix
+    - dixiedike
+    - dixiedyke
+    - doggiestyle
+    - doggystyle
+    - dong
+    - doodoo
+    - dope
+    - "dot head"
+    - "dot heads"
+    - dothead
+    - dotheads
+    - dragqueen
+    - dragqween
+    - dripdick
+    - dumb
+    - dumbass
+    - dumbbitch
+    - dumbfuck
+    - "dune coon"
+    - "dune coons"
+    - dyefly
+    - easyslut
+    - eatballs
+    - eatme
+    - eatpussy
+    - "eight ball"
+    - "eight balls"
+    - ero
+    - esqua
+    - evl
+    - exkwew
+    - facefucker
+    - faeces
+    - fagging
+    - faggot
+    - fagot
+    - fannyfucker
+    - farty
+    - fastfuck
+    - fatah
+    - fatass
+    - fatfuck
+    - fatfucker
+    - fatso
+    - fckcum
+    - felch
+    - felcher
+    - felching
+    - fellatio
+    - feltch
+    - feltcher
+    - feltching
+    - fingerfuck
+    - fingerfucked
+    - fingerfucker
+    - fingerfuckers
+    - fingerfucking
+    - fister
+    - fistfuck
+    - fistfucked
+    - fistfucker
+    - fistfucking
+    - fisting
+    - flange
+    - floo
+    - flydie
+    - flydye
+    - fok
+    - footfuck
+    - footfucker
+    - footlicker
+    - footstar
+    - forni
+    - fornicate
+    - foursome
+    - fourtwenty
+    - fraud
+    - freakfuck
+    - freakyfucker
+    - freefuck
+    - fu
+    - fubar
+    - fuc
+    - fucck
+    - fuck
+    - fucka
+    - fuckable
+    - fuckbag
+    - fuckbook
+    - fuckbuddy
+    - fucked
+    - fuckedup
+    - fucker
+    - fuckers
+    - fuckface
+    - fuckfest
+    - fuckfreak
+    - fuckfriend
+    - fuckhead
+    - fuckher
+    - fuckin
+    - fuckina
+    - fucking
+    - fuckingbitch
+    - fuckinnuts
+    - fuckinright
+    - fuckit
+    - fuckknob
+    - fuckme
+    - fuckmehard
+    - fuckmonkey
+    - fuckoff
+    - fuckpig
+    - fucks
+    - fucktard
+    - fuckwhore
+    - fuckyou
+    - fudgepacker
+    - fugly
+    - fuk
+    - fuks
+    - funeral
+    - funfuck
+    - fungus
+    - fuuck
+    - gables
+    - gangbang
+    - gangbanged
+    - gangbanger
+    - gangsta
+    - "gator bait"
+    - gatorbait
+    - gaymuthafuckinwhore
+    - gaysex
+    - geez
+    - geezer
+    - geni
+    - getiton
+    - ginzo
+    - ginzos
+    - gipp
+    - gippo
+    - gippos
+    - gipps
+    - givehead
+    - glazeddonut
+    - godammit
+    - goddamit
+    - goddammit
+    - goddamn
+    - goddamned
+    - goddamnes
+    - goddamnit
+    - goddamnmuthafucker
+    - goldenshower
+    - golliwog
+    - golliwogs
+    - gonorrehea
+    - gonzagas
+    - gook
+    - "gook eye"
+    - "gook eyes"
+    - gookeye
+    - gookeyes
+    - gookies
+    - gooks
+    - gooky
+    - gora
+    - goras
+    - gotohell
+    - greaseball
+    - greaseballs
+    - greaser
+    - greasers
+    - gringo
+    - gringos
+    - groe
+    - groid
+    - groids
+    - gubba
+    - gubbas
+    - gubs
+    - gummer
+    - gwailo
+    - gwailos
+    - gweilo
+    - gweilos
+    - gyopo
+    - gyopos
+    - gyp
+    - gyped
+    - gypo
+    - gypos
+    - gypp
+    - gypped
+    - gyppie
+    - gyppies
+    - gyppo
+    - gyppos
+    - gyppy
+    - gyppys
+    - gypsies
+    - gypsy
+    - gypsys
+    - hadji
+    - hadjis
+    - hairyback
+    - hairybacks
+    - haji
+    - hajis
+    - hajji
+    - hajjis
+    - "half breed"
+    - "half caste"
+    - halfbreed
+    - halfcaste
+    - hamas
+    - handjob
+    - haole
+    - haoles
+    - hapa
+    - hardon
+    - headfuck
+    - headlights
+    - hebe
+    - hebephila
+    - hebephile
+    - hebephiles
+    - hebephilia
+    - hebephilic
+    - hebes
+    - heeb
+    - heebs
+    - hillbillies
+    - hillbilly
+    - hindoo
+    - hiscock
+    - hitler
+    - hitlerism
+    - hitlerist
+    - ho
+    - hobo
+    - hodgie
+    - hoes
+    - holestuffer
+    - homo
+    - homobangers
+    - honger
+    - honk
+    - honkers
+    - honkey
+    - honkeys
+    - honkie
+    - honkies
+    - honky
+    - hooker
+    - hookers
+    - hooters
+    - hore
+    - hori
+    - horis
+    - hork
+    - horney
+    - horniest
+    - horseshit
+    - hosejob
+    - hoser
+    - hotdamn
+    - hotpussy
+    - hottotrot
+    - hussy
+    - hymie
+    - hymies
+    - iblowu
+    - idiot
+    - ikeymo
+    - ikeymos
+    - ikwe
+    - indons
+    - injun
+    - injuns
+    - insest
+    - intheass
+    - inthebuff
+    - jackass
+    - jackoff
+    - jackshit
+    - jacktheripper
+    - jap
+    - japcrap
+    - japie
+    - japies
+    - japs
+    - jebus
+    - jeez
+    - jerkoff
+    - jewboy
+    - jewed
+    - jewess
+    - jig
+    - jiga
+    - jigaboo
+    - jigaboos
+    - jigarooni
+    - jigaroonis
+    - jigg
+    - jigga
+    - jiggabo
+    - jiggabos
+    - jiggas
+    - jigger
+    - jiggers
+    - jiggs
+    - jiggy
+    - jigs
+    - jijjiboo
+    - jijjiboos
+    - jimfish
+    - jism
+    - jiz
+    - jizim
+    - jizjuice
+    - jizm
+    - jizz
+    - jizzim
+    - jizzum
+    - juggalo
+    - "jungle bunnies"
+    - "jungle bunny"
+    - junglebunny
+    - kacap
+    - kacapas
+    - kacaps
+    - kaffer
+    - kaffir
+    - kaffre
+    - kafir
+    - kanake
+    - katsap
+    - katsaps
+    - khokhol
+    - khokhols
+    - kigger
+    - kike
+    - kikes
+    - kimchis
+    - kissass
+    - kkk
+    - klansman
+    - klansmen
+    - klanswoman
+    - klanswomen
+    - kondum
+    - koon
+    - krap
+    - krappy
+    - krauts
+    - kuffar
+    - kum
+    - kumbubble
+    - kumbullbe
+    - kummer
+    - kumming
+    - kumquat
+    - kums
+    - kunilingus
+    - kunnilingus
+    - kunt
+    - kushi
+    - kushis
+    - kwa
+    - "kwai lo"
+    - "kwai los"
+    - ky
+    - kyke
+    - kykes
+    - kyopo
+    - kyopos
+    - lebo
+    - lebos
+    - lesbain
+    - lesbayn
+    - lesbian
+    - lesbin
+    - lesbo
+    - lez
+    - lezbe
+    - lezbefriends
+    - lezbo
+    - lezz
+    - lezzo
+    - lickme
+    - limey
+    - limpdick
+    - limy
+    - livesex
+    - loadedgun
+    - looser
+    - loser
+    - lovebone
+    - lovegoo
+    - lovegun
+    - lovejuice
+    - lovemuscle
+    - lovepistol
+    - loverocket
+    - lowlife
+    - lsd
+    - lubejob
+    - lubra
+    - luckycammeltoe
+    - lugan
+    - lugans
+    - mabuno
+    - mabunos
+    - macaca
+    - macacas
+    - magicwand
+    - mahbuno
+    - mahbunos
+    - mams
+    - manhater
+    - manpaste
+    - mastabate
+    - mastabater
+    - masterbate
+    - masterblaster
+    - mastrabator
+    - masturbate
+    - masturbating
+    - mattressprincess
+    - "mau mau"
+    - "mau maus"
+    - maumau
+    - maumaus
+    - meatbeatter
+    - meatrack
+    - mgger
+    - mggor
+    - mickeyfinn
+    - milf
+    - mockey
+    - mockie
+    - mocky
+    - mofo
+    - moky
+    - moneyshot
+    - "moon cricket"
+    - "moon crickets"
+    - mooncricket
+    - mooncrickets
+    - moron
+    - moskal
+    - moskals
+    - moslem
+    - mosshead
+    - mothafuck
+    - mothafucka
+    - mothafuckaz
+    - mothafucked
+    - mothafucker
+    - mothafuckin
+    - mothafucking
+    - mothafuckings
+    - motherfuck
+    - motherfucked
+    - motherfucker
+    - motherfuckin
+    - motherfucking
+    - motherfuckings
+    - motherlovebone
+    - muff
+    - muffdive
+    - muffdiver
+    - muffindiver
+    - mufflikcer
+    - mulatto
+    - muncher
+    - munt
+    - mzungu
+    - mzungus
+    - nastybitch
+    - nastyho
+    - nastyslut
+    - nastywhore
+    - negres
+    - negress
+    - negro
+    - negroes
+    - negroid
+    - negros
+    - nig
+    - nigar
+    - nigars
+    - niger
+    - nigerian
+    - nigerians
+    - nigers
+    - nigette
+    - nigettes
+    - nigg
+    - nigga
+    - niggah
+    - niggahs
+    - niggar
+    - niggaracci
+    - niggard
+    - niggarded
+    - niggarding
+    - niggardliness
+    - niggardlinesss
+    - niggardly
+    - niggards
+    - niggars
+    - niggas
+    - niggaz
+    - nigger
+    - niggerhead
+    - niggerhole
+    - niggers
+    - niggle
+    - niggled
+    - niggles
+    - niggling
+    - nigglings
+    - niggor
+    - niggress
+    - niggresses
+    - nigguh
+    - nigguhs
+    - niggur
+    - niggurs
+    - niglet
+    - nignog
+    - nigor
+    - nigors
+    - nigr
+    - nigra
+    - nigras
+    - nigre
+    - nigres
+    - nigress
+    - nigs
+    - nip
+    - nittit
+    - nlgger
+    - nlggor
+    - nofuckingway
+    - nookey
+    - nookie
+    - noonan
+    - nudger
+    - nutfucker
+    - ontherag
+    - orga
+    - orgasim
+    - paki
+    - pakis
+    - palesimian
+    - "pancake face"
+    - "pancake faces"
+    - pansies
+    - pansy
+    - panti
+    - payo
+    - peckerwood
+    - pedo
+    - peehole
+    - peepshpw
+    - peni5
+    - perv
+    - phuk
+    - phuked
+    - phuking
+    - phukked
+    - phukking
+    - phungky
+    - phuq
+    - pi55
+    - picaninny
+    - piccaninny
+    - pickaninnies
+    - pickaninny
+    - piefke
+    - piefkes
+    - piker
+    - pikey
+    - piky
+    - pimp
+    - pimped
+    - pimper
+    - pimpjuic
+    - pimpjuice
+    - pimpsimp
+    - pindick
+    - piss
+    - pissed
+    - pisser
+    - pisses
+    - pisshead
+    - pissin
+    - pissing
+    - pissoff
+    - pocha
+    - pochas
+    - pocho
+    - pochos
+    - pocketpool
+    - pohm
+    - pohms
+    - polack
+    - polacks
+    - pollock
+    - pollocks
+    - pom
+    - pommie
+    - "pommie grant"
+    - "pommie grants"
+    - pommies
+    - pommy
+    - poms
+    - poo
+    - poon
+    - poontang
+    - poop
+    - pooper
+    - pooperscooper
+    - pooping
+    - poorwhitetrash
+    - popimp
+    - "porch monkey"
+    - "porch monkies"
+    - porchmonkey
+    - pornking
+    - porno
+    - pornography
+    - pornprincess
+    - "prairie nigger"
+    - "prairie niggers"
+    - premature
+    - pric
+    - prick
+    - prickhead
+    - pu55i
+    - pu55y
+    - pubiclice
+    - pud
+    - pudboy
+    - pudd
+    - puddboy
+    - puke
+    - puntang
+    - purinapricness
+    - puss
+    - pussie
+    - pussies
+    - pussyeater
+    - pussyfucker
+    - pussylicker
+    - pussylips
+    - pussylover
+    - pussypounder
+    - pusy
+    - quashie
+    - queef
+    - quickie
+    - quim
+    - ra8s
+    - raghead
+    - ragheads
+    - raper
+    - rearend
+    - rearentry
+    - redleg
+    - redlegs
+    - redneck
+    - rednecks
+    - redskin
+    - redskins
+    - reefer
+    - reestie
+    - rere
+    - retard
+    - retarded
+    - ribbed
+    - rigger
+    - rimjob
+    - rimming
+    - "round eyes"
+    - roundeye
+    - russki
+    - russkie
+    - sadis
+    - sadom
+    - sambo
+    - sambos
+    - samckdaddy
+    - "sand nigger"
+    - "sand niggers"
+    - sandm
+    - sandnigger
+    - satan
+    - scag
+    - scallywag
+    - schlong
+    - schvartse
+    - schvartsen
+    - schwartze
+    - schwartzen
+    - screwyou
+    - seppo
+    - seppos
+    - sexed
+    - sexfarm
+    - sexhound
+    - sexhouse
+    - sexing
+    - sexkitten
+    - sexpot
+    - sexslave
+    - sextogo
+    - sexwhore
+    - sexymoma
+    - sexyslim
+    - shaggin
+    - shagging
+    - shat
+    - shav
+    - shawtypimp
+    - sheeney
+    - shhit
+    - shiksa
+    - shinola
+    - shit
+    - shitcan
+    - shitdick
+    - shite
+    - shiteater
+    - shited
+    - shitface
+    - shitfaced
+    - shitfit
+    - shitforbrains
+    - shitfuck
+    - shitfucker
+    - shitfull
+    - shithapens
+    - shithappens
+    - shithead
+    - shithouse
+    - shiting
+    - shitlist
+    - shitola
+    - shitoutofluck
+    - shits
+    - shitstain
+    - shitted
+    - shitter
+    - shitting
+    - shitty
+    - shortfuck
+    - shylock
+    - shylocks
+    - sissy
+    - sixsixsix
+    - sixtynine
+    - sixtyniner
+    - skank
+    - skankbitch
+    - skankfuck
+    - skankwhore
+    - skanky
+    - skankybitch
+    - skankywhore
+    - skinflute
+    - skum
+    - skumbag
+    - skwa
+    - skwe
+    - slant
+    - slanteye
+    - slanty
+    - slapper
+    - slave
+    - slavedriver
+    - sleezebag
+    - sleezeball
+    - slideitin
+    - slimeball
+    - slimebucket
+    - slopehead
+    - slopeheads
+    - sloper
+    - slopers
+    - slopes
+    - slopey
+    - slopeys
+    - slopies
+    - slopy
+    - slut
+    - sluts
+    - slutt
+    - slutting
+    - slutty
+    - slutwear
+    - slutwhore
+    - smackthemonkey
+    - smut
+    - snatchpatch
+    - snowback
+    - snownigger
+    - sodomise
+    - sodomize
+    - sodomy
+    - sonofabitch
+    - sonofbitch
+    - sooties
+    - sooty
+    - spaghettibender
+    - spaghettinigger
+    - spankthemonkey
+    - spearchucker
+    - spearchuckers
+    - spermacide
+    - spermbag
+    - spermhearder
+    - spermherder
+    - spic
+    - spick
+    - spicks
+    - spics
+    - spig
+    - spigotty
+    - spik
+    - spit
+    - spitter
+    - splittail
+    - spooge
+    - spreadeagle
+    - spunk
+    - spunky
+    - sqeh
+    - squa
+    - squarehead
+    - squareheads
+    - squaw
+    - squinty
+    - stringer
+    - stripclub
+    - stuinties
+    - stupid
+    - stupidfuck
+    - stupidfucker
+    - suckdick
+    - sucker
+    - suckme
+    - suckmyass
+    - suckmydick
+    - suckmytit
+    - suckoff
+    - swallower
+    - swalow
+    - "swamp guinea"
+    - "swamp guineas"
+    - tacohead
+    - tacoheads
+    - taff
+    - tang
+    - "tar babies"
+    - "tar baby"
+    - tarbaby
+    - tard
+    - teste
+    - thicklip
+    - thicklips
+    - thirdeye
+    - thirdleg
+    - threeway
+    - "timber nigger"
+    - "timber niggers"
+    - timbernigger
+    - tinker
+    - tinkers
+    - titbitnipply
+    - titfuck
+    - titfucker
+    - titfuckin
+    - titjob
+    - titlicker
+    - titlover
+    - tits
+    - tittie
+    - titties
+    - titty
+    - tongethruster
+    - tongue
+    - tonguethrust
+    - tonguetramp
+    - tortur
+    - tosser
+    - "towel head"
+    - "towel heads"
+    - towelhead
+    - trailertrash
+    - trannie
+    - tranny
+    - transvestite
+    - triplex
+    - tuckahoe
+    - tunneloflove
+    - turd
+    - turnon
+    - twat
+    - twink
+    - twinkie
+    - twobitwhore
+    - uck
+    - ukrop
+    - "uncle tom"
+    - unfuckable
+    - upskirt
+    - uptheass
+    - upthebutt
+    - usama
+    - vibr
+    - vibrater
+    - vomit
+    - wab
+    - wank
+    - wanker
+    - wanking
+    - waysted
+    - weenie
+    - weewee
+    - welcher
+    - welfare
+    - wetb
+    - wetback
+    - wetbacks
+    - wetspot
+    - whacker
+    - whash
+    - whigger
+    - whiggers
+    - whiskeydick
+    - whiskydick
+    - "white trash"
+    - whitenigger
+    - whitetrash
+    - whitey
+    - whiteys
+    - whities
+    - whiz
+    - whop
+    - whore
+    - whorefucker
+    - whorehouse
+    - wigga
+    - wiggas
+    - wigger
+    - wiggers
+    - willie
+    - williewanker
+    - wn
+    - wog
+    - wogs
+    - womens
+    - wop
+    - wtf
+    - wuss
+    - wuzzie
+    - xkwe
+    - yank
+    - yanks
+    - yarpie
+    - yarpies
+    - yellowman
+    - yid
+    - yids
+    - zigabo
+    - zigabos
+    - zipperhead
+    - zipperheads
diff --git a/.github/styles/alex/ProfanityMaybe.yml b/.github/styles/alex/ProfanityMaybe.yml
new file mode 100644
index 0000000000..e889b3a3b1
--- /dev/null
+++ b/.github/styles/alex/ProfanityMaybe.yml
@@ -0,0 +1,282 @@
+extends: existence
+message: Reconsider using '%s', it may be profane.
+level: warning
+ignorecase: true
+tokens:
+  - abbo
+  - abid
+  - abo
+  - abortion
+  - abuse
+  - addict
+  - addicts
+  - alla
+  - anal
+  - analsex
+  - anus
+  - areola
+  - athletesfoot
+  - attack
+  - australian
+  - babe
+  - banging
+  - bastard
+  - beastality
+  - beastial
+  - beastiality
+  - bicurious
+  - bitch
+  - bitches
+  - blackman
+  - blacks
+  - bondage
+  - boob
+  - boobs
+  - "bounty bar"
+  - "bounty bars"
+  - bountybar
+  - brothel
+  - buttplug
+  - clit
+  - clitoris
+  - cocaine
+  - cock
+  - coitus
+  - condom
+  - copulate
+  - cra5h
+  - crack
+  - cracker
+  - crackpipe
+  - crotch
+  - cunilingus
+  - cunillingus
+  - cybersex
+  - damn
+  - damnation
+  - defecate
+  - demon
+  - devil
+  - devilworshipper
+  - dick
+  - dike
+  - dildo
+  - drug
+  - drunk
+  - drunken
+  - dyke
+  - ejaculate
+  - ejaculated
+  - ejaculating
+  - ejaculation
+  - enema
+  - erection
+  - excrement
+  - fag
+  - fart
+  - farted
+  - farting
+  - feces
+  - felatio
+  - fetish
+  - fingerfood
+  - flasher
+  - flatulence
+  - fondle
+  - footaction
+  - foreskin
+  - foursome
+  - fourtwenty
+  - fruitcake
+  - gable
+  - genital
+  - gob
+  - god
+  - gonzagas
+  - goy
+  - goyim
+  - groe
+  - gross
+  - grostulation
+  - gub
+  - guinea
+  - guineas
+  - guizi
+  - hamas
+  - hebephila
+  - hebephile
+  - hebephiles
+  - hebephilia
+  - hebephilic
+  - heroin
+  - herpes
+  - hiv
+  - homicide
+  - horney
+  - ike
+  - ikes
+  - ikey
+  - illegals
+  - incest
+  - intercourse
+  - interracial
+  - italiano
+  - jerries
+  - jerry
+  - jesus
+  - jesuschrist
+  - jihad
+  - kink
+  - kinky
+  - knockers
+  - kock
+  - kotex
+  - kraut
+  - ky
+  - lactate
+  - lapdance
+  - libido
+  - licker
+  - liquor
+  - lolita
+  - lsd
+  - lynch
+  - mafia
+  - marijuana
+  - meth
+  - mick
+  - molest
+  - molestation
+  - molester
+  - molestor
+  - murder
+  - narcotic
+  - nazi
+  - necro
+  - nigerian
+  - nigerians
+  - nipple
+  - nipplering
+  - nook
+  - nooner
+  - nude
+  - nuke
+  - nymph
+  - oral
+  - orgasm
+  - orgies
+  - orgy
+  - paddy
+  - paederastic
+  - paederasts
+  - paederasty
+  - pearlnecklace
+  - peck
+  - pecker
+  - pederastic
+  - pederasts
+  - pederasty
+  - pedophile
+  - pedophiles
+  - pedophilia
+  - pedophilic
+  - pee
+  - peepshow
+  - pendy
+  - penetration
+  - penile
+  - penis
+  - penises
+  - penthouse
+  - phonesex
+  - pistol
+  - pixie
+  - pixy
+  - playboy
+  - playgirl
+  - porn
+  - pornflick
+  - porno
+  - pornography
+  - prostitute
+  - protestant
+  - pube
+  - pubic
+  - pussy
+  - pussycat
+  - queer
+  - racist
+  - radical
+  - radicals
+  - randy
+  - rape
+  - raped
+  - raper
+  - rapist
+  - rectum
+  - ribbed
+  - satan
+  - scag
+  - scat
+  - screw
+  - scrotum
+  - scum
+  - semen
+  - septic
+  - septics
+  - sex
+  - sexhouse
+  - sextoy
+  - sextoys
+  - sexual
+  - sexually
+  - sexy
+  - shag
+  - shinola
+  - shit
+  - slaughter
+  - smack
+  - snatch
+  - sniggers
+  - sodom
+  - sodomite
+  - spade
+  - spank
+  - sperm
+  - stagg
+  - stiffy
+  - strapon
+  - stroking
+  - suck
+  - suicide
+  - swallow
+  - swastika
+  - syphilis
+  - tantra
+  - teat
+  - terrorist
+  - testicle
+  - testicles
+  - threesome
+  - tinkle
+  - tit
+  - tits
+  - tnt
+  - torture
+  - tramp
+  - trap
+  - trisexual
+  - trots
+  - turd
+  - uterus
+  - vagina
+  - vaginal
+  - vibrator
+  - vulva
+  - whit
+  - whites
+  - willy
+  - xtc
+  - xxx
+  - yankee
+  - yankees
\ No newline at end of file
diff --git a/.github/styles/alex/ProfanityUnlikely.yml b/.github/styles/alex/ProfanityUnlikely.yml
new file mode 100644
index 0000000000..8e13052d38
--- /dev/null
+++ b/.github/styles/alex/ProfanityUnlikely.yml
@@ -0,0 +1,251 @@
+extends: existence
+message: Be careful with '%s', it’s profane in some cases.
+level: warning
+ignorecase: true
+tokens:
+  - adult
+  - africa
+  - african
+  - allah
+  - amateur
+  - american
+  - angie
+  - angry
+  - arab
+  - arabs
+  - aroused
+  - asian
+  - assassin
+  - assassinate
+  - assassination
+  - assault
+  - attack
+  - australian
+  - babies
+  - backdoor
+  - backseat
+  - banana
+  - bananas
+  - baptist
+  - bast
+  - beast
+  - beaver
+  - bi
+  - bigger
+  - bisexual
+  - blackout
+  - blind
+  - blow
+  - bomb
+  - bombers
+  - bombing
+  - bombs
+  - bomd
+  - boom
+  - bosch
+  - bra
+  - breast
+  - brownie
+  - brownies
+  - buffy
+  - burn
+  - butt
+  - canadian
+  - cancer
+  - catholic
+  - catholics
+  - cemetery
+  - childrens
+  - chin
+  - chinese
+  - christ
+  - christian
+  - church
+  - cigarette
+  - cigs
+  - cocktail
+  - coconut
+  - coconuts
+  - color
+  - colored
+  - coloured
+  - communist
+  - conservative
+  - conspiracy
+  - corruption
+  - crabs
+  - crash
+  - creamy
+  - criminal
+  - criminals
+  - dead
+  - death
+  - deposit
+  - desire
+  - destroy
+  - deth
+  - die
+  - died
+  - dies
+  - dirty
+  - disease
+  - diseases
+  - disturbed
+  - dive
+  - doom
+  - ecstacy
+  - enemy
+  - erect
+  - escort
+  - ethiopian
+  - ethnic
+  - european
+  - execute
+  - executed
+  - execution
+  - executioner
+  - explosion
+  - failed
+  - failure
+  - fairies
+  - fairy
+  - faith
+  - fat
+  - fear
+  - fight
+  - filipina
+  - filipino
+  - fire
+  - firing
+  - fore
+  - fraud
+  - funeral
+  - fungus
+  - gay
+  - german
+  - gin
+  - girls
+  - gun
+  - harder
+  - harem
+  - headlights
+  - hell
+  - henhouse
+  - heterosexual
+  - hijack
+  - hijacker
+  - hijacking
+  - hole
+  - honk
+  - hook
+  - horn
+  - hostage
+  - hummer
+  - hun
+  - huns
+  - husky
+  - hustler
+  - illegal
+  - israel
+  - israeli
+  - israels
+  - itch
+  - jade
+  - japanese
+  - jerry
+  - jew
+  - jewish
+  - joint
+  - jugs
+  - kid
+  - kill
+  - killed
+  - killer
+  - killing
+  - kills
+  - kimchi
+  - knife
+  - laid
+  - latin
+  - lesbian
+  - liberal
+  - lies
+  - lingerie
+  - lotion
+  - lucifer
+  - mad
+  - mexican
+  - mideast
+  - minority
+  - moles
+  - mormon
+  - muslim
+  - naked
+  - nasty
+  - niger
+  - niggardly
+  - oreo
+  - oreos
+  - osama
+  - palestinian
+  - panties
+  - penthouse
+  - period
+  - pot
+  - poverty
+  - premature
+  - primetime
+  - propaganda
+  - pros
+  - que
+  - rabbi
+  - racial
+  - redlight
+  - refugee
+  - reject
+  - remains
+  - republican
+  - roach
+  - robber
+  - rump
+  - servant
+  - shoot
+  - shooting
+  - showtime
+  - sick
+  - slant
+  - slav
+  - slime
+  - slope
+  - slopes
+  - snigger
+  - sniggered
+  - sniggering
+  - sniggers
+  - sniper
+  - snot
+  - sob
+  - sos
+  - soviet
+  - spa
+  - stroke
+  - sweetness
+  - taboo
+  - tampon
+  - terror
+  - toilet
+  - tongue
+  - transexual
+  - transsexual
+  - trojan
+  - uk
+  - urinary
+  - urinate
+  - urine
+  - vatican
+  - vietcong
+  - violence
+  - virgin
+  - weapon
+  - whiskey
+  - womens
\ No newline at end of file
diff --git a/.github/styles/alex/README.md b/.github/styles/alex/README.md
new file mode 100644
index 0000000000..0185d0e35e
--- /dev/null
+++ b/.github/styles/alex/README.md
@@ -0,0 +1,27 @@
+Based on [alex](https://github.com/get-alex/alex).
+
+> Catch insensitive, inconsiderate writing
+
+```
+(The MIT License)
+
+Copyright (c) 2015 Titus Wormer <tituswormer@gmail.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+```
diff --git a/.github/styles/alex/Race.yml b/.github/styles/alex/Race.yml
new file mode 100644
index 0000000000..9979c0b205
--- /dev/null
+++ b/.github/styles/alex/Race.yml
@@ -0,0 +1,87 @@
+---
+extends: substitution
+message: Consider using '%s' instead of '%s'.
+ignorecase: true
+level: warning
+action:
+  name: replace
+swap:
+  Gipsy: Nomad|Traveler|Roma|Romani
+  Indian country: enemy territory
+  animal spirit: favorite|inspiration|personal interest|personality type
+  black list: blocklist|wronglist|banlist|deny list
+  blacklist: blocklist|wronglist|banlist|deny list
+  blacklisted: blocklisted|wronglisted|banlisted|deny-listed
+  blacklisting: blocklisting|wronglisting|banlisting|deny-listing
+  bugreport: bug report|snapshot
+  circle the wagons: defend
+  dream catcher: favorite|inspiration|personal interest|personality type
+  eskimo: Inuit
+  eskimos: Inuits
+  ghetto: projects|urban
+  goy: a person who is not Jewish|not Jewish
+  goyim: a person who is not Jewish|not Jewish
+  goyum: a person who is not Jewish|not Jewish
+  grandfather clause: legacy policy|legacy clause|deprecation policy
+  grandfather policy: legacy policy|legacy clause|deprecation policy
+  grandfathered: deprecated
+  grandfathering: deprecate
+  gyp: Nomad|Traveler|Roma|Romani
+  gyppo: Nomad|Traveler|Roma|Romani
+  gypsy: Nomad|Traveler|Roma|Romani
+  hymie: Jewish person
+  indian give: "go back on one\u2019s offer"
+  indian giver: "go back on one\u2019s offer"
+  japs: Japanese person|Japanese people
+  jump the reservation: disobey|endure|object to|oppose|resist
+  latina: Latinx
+  latino: Latinx
+  long time no hear: "I haven\u2019t seen you in a long time|it\u2019s been a long\
+    \ time"
+  long time no see: "I haven\u2019t seen you in a long time|it\u2019s been a long\
+    \ time"
+  master: primary|hub|reference
+  masters: primaries|hubs|references
+  mexican: Latinx
+  natives are becoming restless: dissatisfied|frustrated
+  natives are getting restless: dissatisfied|frustrated
+  natives are growing restless: dissatisfied|frustrated
+  natives are restless: dissatisfied|frustrated
+  non white: person of color|people of color
+  nonwhite: person of color|people of color
+  off reserve: disobey|endure|object to|oppose|resist
+  off the reservation: disobey|endure|object to|oppose|resist
+  on the warpath: defend
+  oriental: Asian person
+  orientals: Asian people
+  pinays: Filipinos|Filipino people
+  pinoys: Filipinos|Filipino people
+  pocahontas: Native American
+  pow wow: conference|gathering|meeting
+  powwow: conference|gathering|meeting
+  primitive: simple|indigenous|hunter-gatherer
+  red indian: Native American
+  red indians: Native American People
+  redskin: Native American
+  redskins: Native American People
+  sand niggers: Arabs|Middle Eastern People
+  savage: simple|indigenous|hunter-gatherer
+  shlomo: Jewish person
+  shyster: Jewish person
+  sophisticated culture: complex culture
+  sophisticated technology: complex technology
+  spade: a Black person
+  spirit animal: favorite|inspiration|personal interest|personality type
+  stone age: simple|indigenous|hunter-gatherer
+  too many chiefs: too many chefs in the kitchen|too many cooks spoil the broth
+  totem: favorite|inspiration|personal interest|personality type
+  towel heads: Arabs|Middle Eastern People
+  tribe: society|community
+  white list: passlist|alrightlist|safelist|allow list
+  white space: space|blank
+  white spaces: space|blank
+  whitelist: passlist|alrightlist|safelist|allow list
+  whitelisted: passlisted|alrightlisted|safelisted|allow-listed
+  whitelisting: passlisting|alrightlisting|safelisting|allow-listing
+  whitespace: space|blank
+  whitespaces: space|blank
diff --git a/.github/styles/alex/meta.json b/.github/styles/alex/meta.json
new file mode 100644
index 0000000000..3db4c282ed
--- /dev/null
+++ b/.github/styles/alex/meta.json
@@ -0,0 +1,4 @@
+{
+  "feed": "https://github.com/errata-ai/alex/releases.atom",
+  "vale_version": ">=1.0.0"
+}
\ No newline at end of file
diff --git a/.github/workflows/linting.yml b/.github/workflows/linting.yml
new file mode 100644
index 0000000000..f404d8cfda
--- /dev/null
+++ b/.github/workflows/linting.yml
@@ -0,0 +1,20 @@
+name: Linting
+on:
+  pull_request:
+
+jobs:
+  prose:
+    runs-on: ubuntu-latest
+    steps:
+    - name: Checkout
+      uses: actions/checkout@v2
+      with:
+        fetch-depth: 0
+
+    - name: Vale
+      uses: errata-ai/vale-action@reviewdog
+      with:
+        version: 2.20.2
+        files: docs
+      env:
+        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
diff --git a/docs/en/modules/admin/pages/components/budgets.adoc b/docs/en/modules/admin/pages/components/budgets.adoc
index 69452393eb..96fc53e89b 100644
--- a/docs/en/modules/admin/pages/components/budgets.adoc
+++ b/docs/en/modules/admin/pages/components/budgets.adoc
@@ -16,7 +16,7 @@ Some examples of where this component was used:
 
 * https://www.decidim.barcelona/processes/PressupostosParticipatius[2020/2021 Participatory Budgeting Process in Decidim Barcelona].
 The  city of Barcelona (Spain) has allocated a budget of 30.000.000 EUR so people can present, define, prioritize, vote
-and choose which investment projects the city goverment should execute.
+and choose which investment projects the city government should implement.
 * https://ecrivons.angers.fr/processes/BP2021[2021 Participatory Budgeting Process in Angers]. The city of Angers (France) has allocated
 a budget of 1.000.000 EUR so people from 11 years can propose maximum of 3 ideas and then vote for their 5 favorite projects.
 * https://omastadi.hel.fi/[2021 Participatory Budgeting Process in Helsinki]. Helsinki has allocated 8.8 million euros to realising
@@ -344,7 +344,7 @@ After the voting step has finished, then an administrator need to:
 
 . Change the Voting configuration for the Budget component to "Voting finished"
 . Go to the Budgets and view the results
-. On the projects that according to the normative have been selected, she'll need to go to each project, edit it and
+. On the projects that according to the normative have been selected, they'll need to go to each project, edit it and
 then check the "Selected for implementation".
 
 image:components/budgets/results_unselected.png[Unselected projects after voting]
diff --git a/vale.ini b/vale.ini
new file mode 100644
index 0000000000..c7b63d54d8
--- /dev/null
+++ b/vale.ini
@@ -0,0 +1,6 @@
+StylesPath = .github/styles
+Vocab = Decidim
+MinAlertLevel = suggestion
+Packages = alex
+[*.{adoc}]
+BasedOnStyles = Vale, alex

From 076a5a7752358f6a203e4e4ef6c271472c811bf6 Mon Sep 17 00:00:00 2001
From: Ruth Cheesley <ruth.cheesley@mautic.org>
Date: Fri, 8 Sep 2023 15:03:28 +0100
Subject: [PATCH 02/11] Missed a file from Alex's styles

---
 .github/styles/alex/Suicide.yml | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)
 create mode 100644 .github/styles/alex/Suicide.yml

diff --git a/.github/styles/alex/Suicide.yml b/.github/styles/alex/Suicide.yml
new file mode 100644
index 0000000000..3dfd3e33d2
--- /dev/null
+++ b/.github/styles/alex/Suicide.yml
@@ -0,0 +1,24 @@
+---
+extends: substitution
+message: When referring to a person, consider using '%s' instead of '%s'.
+ignorecase: true
+level: warning
+action:
+  name: replace
+swap:
+  commit suicide: die by suicide
+  committed suicide: died by suicide
+  complete suicide: die by suicide
+  completed suicide: died by suicide
+  epidemic of suicides: rise in suicides
+  failed attempt: suicide attempt|attempted suicide
+  failed suicide: suicide attempt|attempted suicide
+  hang: the app froze|the app stopped responding|the app stopped responding to events|the
+    app became unresponsive
+  hanged: the app froze|the app stopped responding|the app stopped responding to events|the
+    app became unresponsive
+  successful suicide: die by suicide
+  suicide epidemic: rise in suicides
+  suicide failure: suicide attempt|attempted suicide
+  suicide note: a note from the deceased
+  suicide pact: rise in suicides

From cf901c24c10c28bd88de6ec16014ed1fec19f47c Mon Sep 17 00:00:00 2001
From: Ruth Cheesley <ruth.cheesley@mautic.org>
Date: Fri, 8 Sep 2023 15:16:09 +0100
Subject: [PATCH 03/11] Add Google style guide

---
 .github/styles/Google/AMPM.yml               |   9 +
 .github/styles/Google/Acronyms.yml           |  64 +++++++
 .github/styles/Google/Colons.yml             |   8 +
 .github/styles/Google/Contractions.yml       |  30 +++
 .github/styles/Google/DateFormat.yml         |   9 +
 .github/styles/Google/Ellipses.yml           |   9 +
 .github/styles/Google/EmDash.yml             |  12 ++
 .github/styles/Google/EnDash.yml             |  13 ++
 .github/styles/Google/Exclamation.yml        |   9 +
 .github/styles/Google/FirstPerson.yml        |  13 ++
 .github/styles/Google/Gender.yml             |   9 +
 .github/styles/Google/GenderBias.yml         |  47 +++++
 .github/styles/Google/HeadingPunctuation.yml |  13 ++
 .github/styles/Google/Headings.yml           |  29 +++
 .github/styles/Google/Latin.yml              |  11 ++
 .github/styles/Google/LyHyphens.yml          |  14 ++
 .github/styles/Google/OptionalPlurals.yml    |  12 ++
 .github/styles/Google/Ordinal.yml            |   7 +
 .github/styles/Google/OxfordComma.yml        |   7 +
 .github/styles/Google/Parens.yml             |   7 +
 .github/styles/Google/Passive.yml            | 184 +++++++++++++++++++
 .github/styles/Google/Periods.yml            |   7 +
 .github/styles/Google/Quotes.yml             |   7 +
 .github/styles/Google/Ranges.yml             |   7 +
 .github/styles/Google/Semicolons.yml         |   8 +
 .github/styles/Google/Slang.yml              |  11 ++
 .github/styles/Google/Spacing.yml            |  10 +
 .github/styles/Google/Spelling.yml           |  10 +
 .github/styles/Google/Units.yml              |   8 +
 .github/styles/Google/We.yml                 |  11 ++
 .github/styles/Google/Will.yml               |   7 +
 .github/styles/Google/WordList.yml           |  81 ++++++++
 .github/styles/Google/meta.json              |   4 +
 .github/styles/Google/vocab.txt              |   0
 vale.ini                                     |   4 +-
 35 files changed, 689 insertions(+), 2 deletions(-)
 create mode 100644 .github/styles/Google/AMPM.yml
 create mode 100644 .github/styles/Google/Acronyms.yml
 create mode 100644 .github/styles/Google/Colons.yml
 create mode 100644 .github/styles/Google/Contractions.yml
 create mode 100644 .github/styles/Google/DateFormat.yml
 create mode 100644 .github/styles/Google/Ellipses.yml
 create mode 100644 .github/styles/Google/EmDash.yml
 create mode 100644 .github/styles/Google/EnDash.yml
 create mode 100644 .github/styles/Google/Exclamation.yml
 create mode 100644 .github/styles/Google/FirstPerson.yml
 create mode 100644 .github/styles/Google/Gender.yml
 create mode 100644 .github/styles/Google/GenderBias.yml
 create mode 100644 .github/styles/Google/HeadingPunctuation.yml
 create mode 100644 .github/styles/Google/Headings.yml
 create mode 100644 .github/styles/Google/Latin.yml
 create mode 100644 .github/styles/Google/LyHyphens.yml
 create mode 100644 .github/styles/Google/OptionalPlurals.yml
 create mode 100644 .github/styles/Google/Ordinal.yml
 create mode 100644 .github/styles/Google/OxfordComma.yml
 create mode 100644 .github/styles/Google/Parens.yml
 create mode 100644 .github/styles/Google/Passive.yml
 create mode 100644 .github/styles/Google/Periods.yml
 create mode 100644 .github/styles/Google/Quotes.yml
 create mode 100644 .github/styles/Google/Ranges.yml
 create mode 100644 .github/styles/Google/Semicolons.yml
 create mode 100644 .github/styles/Google/Slang.yml
 create mode 100644 .github/styles/Google/Spacing.yml
 create mode 100644 .github/styles/Google/Spelling.yml
 create mode 100644 .github/styles/Google/Units.yml
 create mode 100644 .github/styles/Google/We.yml
 create mode 100644 .github/styles/Google/Will.yml
 create mode 100644 .github/styles/Google/WordList.yml
 create mode 100644 .github/styles/Google/meta.json
 create mode 100644 .github/styles/Google/vocab.txt

diff --git a/.github/styles/Google/AMPM.yml b/.github/styles/Google/AMPM.yml
new file mode 100644
index 0000000000..fbdc6e4f84
--- /dev/null
+++ b/.github/styles/Google/AMPM.yml
@@ -0,0 +1,9 @@
+extends: existence
+message: "Use 'AM' or 'PM' (preceded by a space)."
+link: 'https://developers.google.com/style/word-list'
+level: error
+nonword: true
+tokens:
+  - '\d{1,2}[AP]M'
+  - '\d{1,2} ?[ap]m'
+  - '\d{1,2} ?[aApP]\.[mM]\.'
diff --git a/.github/styles/Google/Acronyms.yml b/.github/styles/Google/Acronyms.yml
new file mode 100644
index 0000000000..f41af0189b
--- /dev/null
+++ b/.github/styles/Google/Acronyms.yml
@@ -0,0 +1,64 @@
+extends: conditional
+message: "Spell out '%s', if it's unfamiliar to the audience."
+link: 'https://developers.google.com/style/abbreviations'
+level: suggestion
+ignorecase: false
+# Ensures that the existence of 'first' implies the existence of 'second'.
+first: '\b([A-Z]{3,5})\b'
+second: '(?:\b[A-Z][a-z]+ )+\(([A-Z]{3,5})\)'
+# ... with the exception of these:
+exceptions:
+  - API
+  - ASP
+  - CLI
+  - CPU
+  - CSS
+  - CSV
+  - DEBUG
+  - DOM
+  - DPI
+  - FAQ
+  - GCC
+  - GDB
+  - GET
+  - GPU
+  - GTK
+  - GUI
+  - HTML
+  - HTTP
+  - HTTPS
+  - IDE
+  - JAR
+  - JSON
+  - JSX
+  - LESS
+  - LLDB
+  - NET
+  - NOTE
+  - NVDA
+  - OSS
+  - PATH
+  - PDF
+  - PHP
+  - POST
+  - RAM
+  - REPL
+  - RSA
+  - SCM
+  - SCSS
+  - SDK
+  - SQL
+  - SSH
+  - SSL
+  - SVG
+  - TBD
+  - TCP
+  - TODO
+  - URI
+  - URL
+  - USB
+  - UTF
+  - XML
+  - XSS
+  - YAML
+  - ZIP
diff --git a/.github/styles/Google/Colons.yml b/.github/styles/Google/Colons.yml
new file mode 100644
index 0000000000..99363fbd46
--- /dev/null
+++ b/.github/styles/Google/Colons.yml
@@ -0,0 +1,8 @@
+extends: existence
+message: "'%s' should be in lowercase."
+link: 'https://developers.google.com/style/colons'
+nonword: true
+level: warning
+scope: sentence
+tokens:
+  - ':\s[A-Z]'
diff --git a/.github/styles/Google/Contractions.yml b/.github/styles/Google/Contractions.yml
new file mode 100644
index 0000000000..4f6fd5d489
--- /dev/null
+++ b/.github/styles/Google/Contractions.yml
@@ -0,0 +1,30 @@
+extends: substitution
+message: "Use '%s' instead of '%s'."
+link: 'https://developers.google.com/style/contractions'
+level: suggestion
+ignorecase: true
+action:
+  name: replace
+swap:
+  are not: aren't
+  cannot: can't
+  could not: couldn't
+  did not: didn't
+  do not: don't
+  does not: doesn't
+  has not: hasn't
+  have not: haven't
+  how is: how's
+  is not: isn't
+  it is: it's
+  should not: shouldn't
+  that is: that's
+  they are: they're
+  was not: wasn't
+  we are: we're
+  we have: we've
+  were not: weren't
+  what is: what's
+  when is: when's
+  where is: where's
+  will not: won't
diff --git a/.github/styles/Google/DateFormat.yml b/.github/styles/Google/DateFormat.yml
new file mode 100644
index 0000000000..e9d227fa13
--- /dev/null
+++ b/.github/styles/Google/DateFormat.yml
@@ -0,0 +1,9 @@
+extends: existence
+message: "Use 'July 31, 2016' format, not '%s'."
+link: 'https://developers.google.com/style/dates-times'
+ignorecase: true
+level: error
+nonword: true
+tokens:
+  - '\d{1,2}(?:\.|/)\d{1,2}(?:\.|/)\d{4}'
+  - '\d{1,2} (?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)|May|Jun(?:e)|Jul(?:y)|Aug(?:ust)|Sep(?:tember)?|Oct(?:ober)|Nov(?:ember)?|Dec(?:ember)?) \d{4}'
diff --git a/.github/styles/Google/Ellipses.yml b/.github/styles/Google/Ellipses.yml
new file mode 100644
index 0000000000..1e070517bf
--- /dev/null
+++ b/.github/styles/Google/Ellipses.yml
@@ -0,0 +1,9 @@
+extends: existence
+message: "In general, don't use an ellipsis."
+link: 'https://developers.google.com/style/ellipses'
+nonword: true
+level: warning
+action:
+  name: remove
+tokens:
+  - '\.\.\.'
diff --git a/.github/styles/Google/EmDash.yml b/.github/styles/Google/EmDash.yml
new file mode 100644
index 0000000000..1befe72aa8
--- /dev/null
+++ b/.github/styles/Google/EmDash.yml
@@ -0,0 +1,12 @@
+extends: existence
+message: "Don't put a space before or after a dash."
+link: 'https://developers.google.com/style/dashes'
+nonword: true
+level: error
+action:
+  name: edit
+  params:
+    - remove
+    - ' '
+tokens:
+  - '\s[—–]\s'
diff --git a/.github/styles/Google/EnDash.yml b/.github/styles/Google/EnDash.yml
new file mode 100644
index 0000000000..b314dc4e98
--- /dev/null
+++ b/.github/styles/Google/EnDash.yml
@@ -0,0 +1,13 @@
+extends: existence
+message: "Use an em dash ('—') instead of '–'."
+link: 'https://developers.google.com/style/dashes'
+nonword: true
+level: error
+action:
+  name: edit
+  params:
+    - replace
+    - '-'
+    - '—'
+tokens:
+  - '–'
diff --git a/.github/styles/Google/Exclamation.yml b/.github/styles/Google/Exclamation.yml
new file mode 100644
index 0000000000..eea5fd24bd
--- /dev/null
+++ b/.github/styles/Google/Exclamation.yml
@@ -0,0 +1,9 @@
+extends: existence
+message: "Don't use exclamation points in text."
+link: 'https://developers.google.com/style/exclamation-points'
+nonword: true
+level: error
+action:
+  name: remove
+tokens:
+  - '\w+!(?:\s|$)'
diff --git a/.github/styles/Google/FirstPerson.yml b/.github/styles/Google/FirstPerson.yml
new file mode 100644
index 0000000000..0b7b8828ca
--- /dev/null
+++ b/.github/styles/Google/FirstPerson.yml
@@ -0,0 +1,13 @@
+extends: existence
+message: "Avoid first-person pronouns such as '%s'."
+link: 'https://developers.google.com/style/pronouns#personal-pronouns'
+ignorecase: true
+level: warning
+nonword: true
+tokens:
+  - (?:^|\s)I\s
+  - (?:^|\s)I,\s
+  - \bI'm\b
+  - \bme\b
+  - \bmy\b
+  - \bmine\b
diff --git a/.github/styles/Google/Gender.yml b/.github/styles/Google/Gender.yml
new file mode 100644
index 0000000000..c8486181d6
--- /dev/null
+++ b/.github/styles/Google/Gender.yml
@@ -0,0 +1,9 @@
+extends: existence
+message: "Don't use '%s' as a gender-neutral pronoun."
+link: 'https://developers.google.com/style/pronouns#gender-neutral-pronouns'
+level: error
+ignorecase: true
+tokens:
+  - he/she
+  - s/he
+  - \(s\)he
diff --git a/.github/styles/Google/GenderBias.yml b/.github/styles/Google/GenderBias.yml
new file mode 100644
index 0000000000..9e70190863
--- /dev/null
+++ b/.github/styles/Google/GenderBias.yml
@@ -0,0 +1,47 @@
+extends: substitution
+message: "Consider using '%s' instead of '%s'."
+link: 'https://developers.google.com/style/inclusive-documentation'
+ignorecase: true
+level: error
+action:
+  name: replace
+swap:
+  (?:alumna|alumnus):          graduate
+  (?:alumnae|alumni):          graduates
+  air(?:m[ae]n|wom[ae]n):      pilot(s)
+  anchor(?:m[ae]n|wom[ae]n):   anchor(s)
+  authoress:                   author
+  camera(?:m[ae]n|wom[ae]n):   camera operator(s)
+  chair(?:m[ae]n|wom[ae]n):    chair(s)
+  congress(?:m[ae]n|wom[ae]n): member(s) of congress
+  door(?:m[ae]|wom[ae]n):      concierge(s)
+  draft(?:m[ae]n|wom[ae]n):    drafter(s)
+  fire(?:m[ae]n|wom[ae]n):     firefighter(s)
+  fisher(?:m[ae]n|wom[ae]n):   fisher(s)
+  fresh(?:m[ae]n|wom[ae]n):    first-year student(s)
+  garbage(?:m[ae]n|wom[ae]n):  waste collector(s)
+  lady lawyer:                 lawyer
+  ladylike:                    courteous
+  landlord:                    building manager
+  mail(?:m[ae]n|wom[ae]n):     mail carriers
+  man and wife:                husband and wife
+  man enough:                  strong enough
+  mankind:                     human kind
+  manmade:                     manufactured
+  manpower:                    personnel
+  men and girls:               men and women
+  middle(?:m[ae]n|wom[ae]n):   intermediary
+  news(?:m[ae]n|wom[ae]n):     journalist(s)
+  ombuds(?:man|woman):         ombuds
+  oneupmanship:                upstaging
+  poetess:                     poet
+  police(?:m[ae]n|wom[ae]n):   police officer(s)
+  repair(?:m[ae]n|wom[ae]n):   technician(s)
+  sales(?:m[ae]n|wom[ae]n):    salesperson or sales people
+  service(?:m[ae]n|wom[ae]n):  soldier(s)
+  steward(?:ess)?:             flight attendant
+  tribes(?:m[ae]n|wom[ae]n):   tribe member(s)
+  waitress:                    waiter
+  woman doctor:                doctor
+  woman scientist[s]?:         scientist(s)
+  work(?:m[ae]n|wom[ae]n):     worker(s)
diff --git a/.github/styles/Google/HeadingPunctuation.yml b/.github/styles/Google/HeadingPunctuation.yml
new file mode 100644
index 0000000000..b538be5b42
--- /dev/null
+++ b/.github/styles/Google/HeadingPunctuation.yml
@@ -0,0 +1,13 @@
+extends: existence
+message: "Don't put a period at the end of a heading."
+link: 'https://developers.google.com/style/capitalization#capitalization-in-titles-and-headings'
+nonword: true
+level: warning
+scope: heading
+action:
+  name: edit
+  params:
+    - remove
+    - '.'
+tokens:
+  - '[a-z0-9][.]\s*$'
diff --git a/.github/styles/Google/Headings.yml b/.github/styles/Google/Headings.yml
new file mode 100644
index 0000000000..a53301338a
--- /dev/null
+++ b/.github/styles/Google/Headings.yml
@@ -0,0 +1,29 @@
+extends: capitalization
+message: "'%s' should use sentence-style capitalization."
+link: 'https://developers.google.com/style/capitalization#capitalization-in-titles-and-headings'
+level: warning
+scope: heading
+match: $sentence
+indicators:
+  - ':'
+exceptions:
+  - Azure
+  - CLI
+  - Code
+  - Cosmos
+  - Docker
+  - Emmet
+  - gRPC
+  - I
+  - Kubernetes
+  - Linux
+  - macOS
+  - Marketplace
+  - MongoDB
+  - REPL
+  - Studio
+  - TypeScript
+  - URLs
+  - Visual
+  - VS
+  - Windows
diff --git a/.github/styles/Google/Latin.yml b/.github/styles/Google/Latin.yml
new file mode 100644
index 0000000000..ca03b9154b
--- /dev/null
+++ b/.github/styles/Google/Latin.yml
@@ -0,0 +1,11 @@
+extends: substitution
+message: "Use '%s' instead of '%s'."
+link: 'https://developers.google.com/style/abbreviations'
+ignorecase: true
+level: error
+nonword: true
+action:
+  name: replace
+swap:
+  '\b(?:eg|e\.g\.)(?=[\s,;])': for example
+  '\b(?:ie|i\.e\.)(?=[\s,;])': that is
diff --git a/.github/styles/Google/LyHyphens.yml b/.github/styles/Google/LyHyphens.yml
new file mode 100644
index 0000000000..ac8f557a4a
--- /dev/null
+++ b/.github/styles/Google/LyHyphens.yml
@@ -0,0 +1,14 @@
+extends: existence
+message: "'%s' doesn't need a hyphen."
+link: 'https://developers.google.com/style/hyphens'
+level: error
+ignorecase: false
+nonword: true
+action:
+  name: edit
+  params:
+    - replace
+    - '-'
+    - ' '
+tokens:
+  - '\s[^\s-]+ly-'
diff --git a/.github/styles/Google/OptionalPlurals.yml b/.github/styles/Google/OptionalPlurals.yml
new file mode 100644
index 0000000000..f858ea6fee
--- /dev/null
+++ b/.github/styles/Google/OptionalPlurals.yml
@@ -0,0 +1,12 @@
+extends: existence
+message: "Don't use plurals in parentheses such as in '%s'."
+link: 'https://developers.google.com/style/plurals-parentheses'
+level: error
+nonword: true
+action:
+  name: edit
+  params:
+    - remove
+    - '(s)'
+tokens:
+  - '\b\w+\(s\)'
diff --git a/.github/styles/Google/Ordinal.yml b/.github/styles/Google/Ordinal.yml
new file mode 100644
index 0000000000..d1ac7d27e8
--- /dev/null
+++ b/.github/styles/Google/Ordinal.yml
@@ -0,0 +1,7 @@
+extends: existence
+message: "Spell out all ordinal numbers ('%s') in text."
+link: 'https://developers.google.com/style/numbers'
+level: error
+nonword: true
+tokens:
+  - \d+(?:st|nd|rd|th)
diff --git a/.github/styles/Google/OxfordComma.yml b/.github/styles/Google/OxfordComma.yml
new file mode 100644
index 0000000000..b9ba21ebb2
--- /dev/null
+++ b/.github/styles/Google/OxfordComma.yml
@@ -0,0 +1,7 @@
+extends: existence
+message: "Use the Oxford comma in '%s'."
+link: 'https://developers.google.com/style/commas'
+scope: sentence
+level: warning
+tokens:
+  - '(?:[^,]+,){1,}\s\w+\s(?:and|or)'
diff --git a/.github/styles/Google/Parens.yml b/.github/styles/Google/Parens.yml
new file mode 100644
index 0000000000..3b8711d0c8
--- /dev/null
+++ b/.github/styles/Google/Parens.yml
@@ -0,0 +1,7 @@
+extends: existence
+message: "Use parentheses judiciously."
+link: 'https://developers.google.com/style/parentheses'
+nonword: true
+level: suggestion
+tokens:
+  - '\(.+\)'
diff --git a/.github/styles/Google/Passive.yml b/.github/styles/Google/Passive.yml
new file mode 100644
index 0000000000..3265890e52
--- /dev/null
+++ b/.github/styles/Google/Passive.yml
@@ -0,0 +1,184 @@
+extends: existence
+link: 'https://developers.google.com/style/voice'
+message: "In general, use active voice instead of passive voice ('%s')."
+ignorecase: true
+level: suggestion
+raw:
+  - \b(am|are|were|being|is|been|was|be)\b\s*
+tokens:
+  - '[\w]+ed'
+  - awoken
+  - beat
+  - become
+  - been
+  - begun
+  - bent
+  - beset
+  - bet
+  - bid
+  - bidden
+  - bitten
+  - bled
+  - blown
+  - born
+  - bought
+  - bound
+  - bred
+  - broadcast
+  - broken
+  - brought
+  - built
+  - burnt
+  - burst
+  - cast
+  - caught
+  - chosen
+  - clung
+  - come
+  - cost
+  - crept
+  - cut
+  - dealt
+  - dived
+  - done
+  - drawn
+  - dreamt
+  - driven
+  - drunk
+  - dug
+  - eaten
+  - fallen
+  - fed
+  - felt
+  - fit
+  - fled
+  - flown
+  - flung
+  - forbidden
+  - foregone
+  - forgiven
+  - forgotten
+  - forsaken
+  - fought
+  - found
+  - frozen
+  - given
+  - gone
+  - gotten
+  - ground
+  - grown
+  - heard
+  - held
+  - hidden
+  - hit
+  - hung
+  - hurt
+  - kept
+  - knelt
+  - knit
+  - known
+  - laid
+  - lain
+  - leapt
+  - learnt
+  - led
+  - left
+  - lent
+  - let
+  - lighted
+  - lost
+  - made
+  - meant
+  - met
+  - misspelt
+  - mistaken
+  - mown
+  - overcome
+  - overdone
+  - overtaken
+  - overthrown
+  - paid
+  - pled
+  - proven
+  - put
+  - quit
+  - read
+  - rid
+  - ridden
+  - risen
+  - run
+  - rung
+  - said
+  - sat
+  - sawn
+  - seen
+  - sent
+  - set
+  - sewn
+  - shaken
+  - shaven
+  - shed
+  - shod
+  - shone
+  - shorn
+  - shot
+  - shown
+  - shrunk
+  - shut
+  - slain
+  - slept
+  - slid
+  - slit
+  - slung
+  - smitten
+  - sold
+  - sought
+  - sown
+  - sped
+  - spent
+  - spilt
+  - spit
+  - split
+  - spoken
+  - spread
+  - sprung
+  - spun
+  - stolen
+  - stood
+  - stridden
+  - striven
+  - struck
+  - strung
+  - stuck
+  - stung
+  - stunk
+  - sung
+  - sunk
+  - swept
+  - swollen
+  - sworn
+  - swum
+  - swung
+  - taken
+  - taught
+  - thought
+  - thrived
+  - thrown
+  - thrust
+  - told
+  - torn
+  - trodden
+  - understood
+  - upheld
+  - upset
+  - wed
+  - wept
+  - withheld
+  - withstood
+  - woken
+  - won
+  - worn
+  - wound
+  - woven
+  - written
+  - wrung
diff --git a/.github/styles/Google/Periods.yml b/.github/styles/Google/Periods.yml
new file mode 100644
index 0000000000..d24a6a6c03
--- /dev/null
+++ b/.github/styles/Google/Periods.yml
@@ -0,0 +1,7 @@
+extends: existence
+message: "Don't use periods with acronyms or initialisms such as '%s'."
+link: 'https://developers.google.com/style/abbreviations'
+level: error
+nonword: true
+tokens:
+  - '\b(?:[A-Z]\.){3,}'
diff --git a/.github/styles/Google/Quotes.yml b/.github/styles/Google/Quotes.yml
new file mode 100644
index 0000000000..3cb6f1abd1
--- /dev/null
+++ b/.github/styles/Google/Quotes.yml
@@ -0,0 +1,7 @@
+extends: existence
+message: "Commas and periods go inside quotation marks."
+link: 'https://developers.google.com/style/quotation-marks'
+level: error
+nonword: true
+tokens:
+  - '"[^"]+"[.,?]'
diff --git a/.github/styles/Google/Ranges.yml b/.github/styles/Google/Ranges.yml
new file mode 100644
index 0000000000..3ec045e777
--- /dev/null
+++ b/.github/styles/Google/Ranges.yml
@@ -0,0 +1,7 @@
+extends: existence
+message: "Don't add words such as 'from' or 'between' to describe a range of numbers."
+link: 'https://developers.google.com/style/hyphens'
+nonword: true
+level: warning
+tokens:
+  - '(?:from|between)\s\d+\s?-\s?\d+'
diff --git a/.github/styles/Google/Semicolons.yml b/.github/styles/Google/Semicolons.yml
new file mode 100644
index 0000000000..bb8b85b420
--- /dev/null
+++ b/.github/styles/Google/Semicolons.yml
@@ -0,0 +1,8 @@
+extends: existence
+message: "Use semicolons judiciously."
+link: 'https://developers.google.com/style/semicolons'
+nonword: true
+scope: sentence
+level: suggestion
+tokens:
+  - ';'
diff --git a/.github/styles/Google/Slang.yml b/.github/styles/Google/Slang.yml
new file mode 100644
index 0000000000..63f4c248a8
--- /dev/null
+++ b/.github/styles/Google/Slang.yml
@@ -0,0 +1,11 @@
+extends: existence
+message: "Don't use internet slang abbreviations such as '%s'."
+link: 'https://developers.google.com/style/abbreviations'
+ignorecase: true
+level: error
+tokens:
+  - 'tl;dr'
+  - ymmv
+  - rtfm
+  - imo
+  - fwiw
diff --git a/.github/styles/Google/Spacing.yml b/.github/styles/Google/Spacing.yml
new file mode 100644
index 0000000000..66e45a6b72
--- /dev/null
+++ b/.github/styles/Google/Spacing.yml
@@ -0,0 +1,10 @@
+extends: existence
+message: "'%s' should have one space."
+link: 'https://developers.google.com/style/sentence-spacing'
+level: error
+nonword: true
+action:
+  name: remove
+tokens:
+  - '[a-z][.?!] {2,}[A-Z]'
+  - '[a-z][.?!][A-Z]'
diff --git a/.github/styles/Google/Spelling.yml b/.github/styles/Google/Spelling.yml
new file mode 100644
index 0000000000..527ac07d31
--- /dev/null
+++ b/.github/styles/Google/Spelling.yml
@@ -0,0 +1,10 @@
+extends: existence
+message: "In general, use American spelling instead of '%s'."
+link: 'https://developers.google.com/style/spelling'
+ignorecase: true
+level: warning
+tokens:
+  - '(?:\w+)nised?'
+  - 'colour'
+  - 'labour'
+  - 'centre'
diff --git a/.github/styles/Google/Units.yml b/.github/styles/Google/Units.yml
new file mode 100644
index 0000000000..53522ab2de
--- /dev/null
+++ b/.github/styles/Google/Units.yml
@@ -0,0 +1,8 @@
+extends: existence
+message: "Put a nonbreaking space between the number and the unit in '%s'."
+link: "https://developers.google.com/style/units-of-measure"
+nonword: true
+level: error
+tokens:
+  - \b\d+(?:B|kB|MB|GB|TB)
+  - \b\d+(?:ns|ms|s|min|h|d)
diff --git a/.github/styles/Google/We.yml b/.github/styles/Google/We.yml
new file mode 100644
index 0000000000..c7ac7d3622
--- /dev/null
+++ b/.github/styles/Google/We.yml
@@ -0,0 +1,11 @@
+extends: existence
+message: "Try to avoid using first-person plural like '%s'."
+link: 'https://developers.google.com/style/pronouns#personal-pronouns'
+level: warning
+ignorecase: true
+tokens:
+  - we
+  - we'(?:ve|re)
+  - ours?
+  - us
+  - let's
diff --git a/.github/styles/Google/Will.yml b/.github/styles/Google/Will.yml
new file mode 100644
index 0000000000..128a918362
--- /dev/null
+++ b/.github/styles/Google/Will.yml
@@ -0,0 +1,7 @@
+extends: existence
+message: "Avoid using '%s'."
+link: 'https://developers.google.com/style/tense'
+ignorecase: true
+level: warning
+tokens:
+  - will
diff --git a/.github/styles/Google/WordList.yml b/.github/styles/Google/WordList.yml
new file mode 100644
index 0000000000..0d675f2372
--- /dev/null
+++ b/.github/styles/Google/WordList.yml
@@ -0,0 +1,81 @@
+extends: substitution
+message: "Use '%s' instead of '%s'."
+link: "https://developers.google.com/style/word-list"
+level: warning
+ignorecase: false
+action:
+  name: replace
+swap:
+  "(?:API Console|dev|developer) key": API key
+  "(?:cell ?phone|smart ?phone)": phone|mobile phone
+  "(?:dev|developer|APIs) console": API console
+  "(?:e-mail|Email|E-mail)": email
+  "(?:file ?path|path ?name)": path
+  "(?:kill|terminate|abort)": stop|exit|cancel|end
+  "(?:OAuth ?2|Oauth)": OAuth 2.0
+  "(?:ok|Okay)": OK|okay
+  "(?:WiFi|wifi)": Wi-Fi
+  '[\.]+apk': APK
+  '3\-D': 3D
+  'Google (?:I\-O|IO)': Google I/O
+  "tap (?:&|and) hold": touch & hold
+  "un(?:check|select)": clear
+  above: preceding
+  account name: username
+  action bar: app bar
+  admin: administrator
+  Ajax: AJAX
+  a\.k\.a|aka: or|also known as
+  Android device: Android-powered device
+  android: Android
+  API explorer: APIs Explorer
+  application: app
+  approx\.: approximately
+  authN: authentication
+  authZ: authorization
+  autoupdate: automatically update
+  cellular data: mobile data
+  cellular network: mobile network
+  chapter: documents|pages|sections
+  check box: checkbox
+  check: select
+  CLI: command-line tool
+  click on: click|click in
+  Cloud: Google Cloud Platform|GCP
+  Container Engine: Kubernetes Engine
+  content type: media type
+  curated roles: predefined roles
+  data are: data is
+  Developers Console: Google API Console|API Console
+  disabled?: turn off|off
+  ephemeral IP address: ephemeral external IP address
+  fewer data: less data
+  file name: filename
+  firewalls: firewall rules
+  functionality: capability|feature
+  Google account: Google Account
+  Google accounts: Google Accounts
+  Googling: search with Google
+  grayed-out: unavailable
+  HTTPs: HTTPS
+  in order to: to
+  ingest: import|load
+  k8s: Kubernetes
+  long press: touch & hold
+  network IP address: internal IP address
+  omnibox: address bar
+  open-source: open source
+  overview screen: recents screen
+  regex: regular expression
+  SHA1: SHA-1|HAS-SHA1
+  sign into: sign in to
+  sign-?on: single sign-on
+  static IP address: static external IP address
+  stylesheet: style sheet
+  synch: sync
+  tablename: table name
+  tablet: device
+  touch: tap
+  url: URL
+  vs\.: versus
+  World Wide Web: web
diff --git a/.github/styles/Google/meta.json b/.github/styles/Google/meta.json
new file mode 100644
index 0000000000..a5da2a8480
--- /dev/null
+++ b/.github/styles/Google/meta.json
@@ -0,0 +1,4 @@
+{
+  "feed": "https://github.com/errata-ai/Google/releases.atom",
+  "vale_version": ">=1.0.0"
+}
diff --git a/.github/styles/Google/vocab.txt b/.github/styles/Google/vocab.txt
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/vale.ini b/vale.ini
index c7b63d54d8..11aaa103b8 100644
--- a/vale.ini
+++ b/vale.ini
@@ -1,6 +1,6 @@
 StylesPath = .github/styles
 Vocab = Decidim
 MinAlertLevel = suggestion
-Packages = alex
+Packages = alex, Google
 [*.{adoc}]
-BasedOnStyles = Vale, alex
+BasedOnStyles = Vale, alex, Google

From 8cdac511c1eb734dff71f6f4bfc5b0b6d3dfe437 Mon Sep 17 00:00:00 2001
From: Ruth Cheesley <ruth.cheesley@mautic.org>
Date: Fri, 8 Sep 2023 15:16:53 +0100
Subject: [PATCH 04/11] undo changes to doc

---
 docs/en/modules/admin/pages/components/budgets.adoc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/docs/en/modules/admin/pages/components/budgets.adoc b/docs/en/modules/admin/pages/components/budgets.adoc
index 96fc53e89b..69452393eb 100644
--- a/docs/en/modules/admin/pages/components/budgets.adoc
+++ b/docs/en/modules/admin/pages/components/budgets.adoc
@@ -16,7 +16,7 @@ Some examples of where this component was used:
 
 * https://www.decidim.barcelona/processes/PressupostosParticipatius[2020/2021 Participatory Budgeting Process in Decidim Barcelona].
 The  city of Barcelona (Spain) has allocated a budget of 30.000.000 EUR so people can present, define, prioritize, vote
-and choose which investment projects the city government should implement.
+and choose which investment projects the city goverment should execute.
 * https://ecrivons.angers.fr/processes/BP2021[2021 Participatory Budgeting Process in Angers]. The city of Angers (France) has allocated
 a budget of 1.000.000 EUR so people from 11 years can propose maximum of 3 ideas and then vote for their 5 favorite projects.
 * https://omastadi.hel.fi/[2021 Participatory Budgeting Process in Helsinki]. Helsinki has allocated 8.8 million euros to realising
@@ -344,7 +344,7 @@ After the voting step has finished, then an administrator need to:
 
 . Change the Voting configuration for the Budget component to "Voting finished"
 . Go to the Budgets and view the results
-. On the projects that according to the normative have been selected, they'll need to go to each project, edit it and
+. On the projects that according to the normative have been selected, she'll need to go to each project, edit it and
 then check the "Selected for implementation".
 
 image:components/budgets/results_unselected.png[Unselected projects after voting]

From 1fde44bd35ad0f1d87e1530fee19862443927eca Mon Sep 17 00:00:00 2001
From: Ruth Cheesley <ruth.cheesley@mautic.org>
Date: Fri, 8 Sep 2023 15:21:42 +0100
Subject: [PATCH 05/11] Add a file to demonstrate Reviewdog

---
 docs/en/modules/admin/pages/components/budgets.adoc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/en/modules/admin/pages/components/budgets.adoc b/docs/en/modules/admin/pages/components/budgets.adoc
index 69452393eb..9121bbf68f 100644
--- a/docs/en/modules/admin/pages/components/budgets.adoc
+++ b/docs/en/modules/admin/pages/components/budgets.adoc
@@ -16,7 +16,7 @@ Some examples of where this component was used:
 
 * https://www.decidim.barcelona/processes/PressupostosParticipatius[2020/2021 Participatory Budgeting Process in Decidim Barcelona].
 The  city of Barcelona (Spain) has allocated a budget of 30.000.000 EUR so people can present, define, prioritize, vote
-and choose which investment projects the city goverment should execute.
+and choose which investment projects the city government should execute.
 * https://ecrivons.angers.fr/processes/BP2021[2021 Participatory Budgeting Process in Angers]. The city of Angers (France) has allocated
 a budget of 1.000.000 EUR so people from 11 years can propose maximum of 3 ideas and then vote for their 5 favorite projects.
 * https://omastadi.hel.fi/[2021 Participatory Budgeting Process in Helsinki]. Helsinki has allocated 8.8 million euros to realising

From 6306c3188f1f16e31257eca54ddea91a948090b4 Mon Sep 17 00:00:00 2001
From: Ruth Cheesley <ruth.cheesley@mautic.org>
Date: Fri, 8 Sep 2023 15:51:53 +0100
Subject: [PATCH 06/11] Better name for GH action

---
 .github/workflows/{linting.yml => vale_linting.yml} | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename .github/workflows/{linting.yml => vale_linting.yml} (100%)

diff --git a/.github/workflows/linting.yml b/.github/workflows/vale_linting.yml
similarity index 100%
rename from .github/workflows/linting.yml
rename to .github/workflows/vale_linting.yml

From 3440dda37d6f8be9b168ac179ba3ac5d7d3a25b1 Mon Sep 17 00:00:00 2001
From: Ruth Cheesley <ruth.cheesley@mautic.org>
Date: Fri, 8 Sep 2023 15:53:40 +0100
Subject: [PATCH 07/11] Rename the GH action

---
 .github/workflows/vale_linting.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/vale_linting.yml b/.github/workflows/vale_linting.yml
index f404d8cfda..e05e67e9b1 100644
--- a/.github/workflows/vale_linting.yml
+++ b/.github/workflows/vale_linting.yml
@@ -1,4 +1,4 @@
-name: Linting
+name: Vale linting
 on:
   pull_request:
 

From 5fd15ee5a95d98534663321e154e700051e84828 Mon Sep 17 00:00:00 2001
From: Ruth Cheesley <ruth.cheesley@acquia.com>
Date: Sun, 17 Sep 2023 21:08:01 +0100
Subject: [PATCH 08/11] Only consider base language
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Co-authored-by: Andrés Pereira de Lucena <andreslucena@users.noreply.github.com>
---
 .github/workflows/vale_linting.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.github/workflows/vale_linting.yml b/.github/workflows/vale_linting.yml
index e05e67e9b1..38d94be2b4 100644
--- a/.github/workflows/vale_linting.yml
+++ b/.github/workflows/vale_linting.yml
@@ -15,6 +15,6 @@ jobs:
       uses: errata-ai/vale-action@reviewdog
       with:
         version: 2.20.2
-        files: docs
+        files: docs/en
       env:
         GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

From 516884c6da024456bbfa56c0d60014f1dca0117d Mon Sep 17 00:00:00 2001
From: Ruth Cheesley <ruth@ruthcheesley.co.uk>
Date: Sun, 24 Dec 2023 11:03:43 +0000
Subject: [PATCH 09/11] Reverse rules on contractions

---
 .github/styles/Google/Contractions.yml | 45 +++++++++++++-------------
 1 file changed, 23 insertions(+), 22 deletions(-)

diff --git a/.github/styles/Google/Contractions.yml b/.github/styles/Google/Contractions.yml
index 4f6fd5d489..6c363129e5 100644
--- a/.github/styles/Google/Contractions.yml
+++ b/.github/styles/Google/Contractions.yml
@@ -6,25 +6,26 @@ ignorecase: true
 action:
   name: replace
 swap:
-  are not: aren't
-  cannot: can't
-  could not: couldn't
-  did not: didn't
-  do not: don't
-  does not: doesn't
-  has not: hasn't
-  have not: haven't
-  how is: how's
-  is not: isn't
-  it is: it's
-  should not: shouldn't
-  that is: that's
-  they are: they're
-  was not: wasn't
-  we are: we're
-  we have: we've
-  were not: weren't
-  what is: what's
-  when is: when's
-  where is: where's
-  will not: won't
+# Decidim reverses this rule, and do not use contractions, so this is tweaked accordingly.
+  aren't: are not
+  can't: cannot
+  couldn't: could not
+  didn't: did not
+  don't: do not
+  doesn't: does not
+  hasn't: has not
+  haven't: have not
+  how's: how is
+  isn't: is not
+  it's: it is
+  shouldn't: should not
+  that's: that is
+  they're: they are
+  wasn't: was not
+  we're: we are
+  we've: we have
+  weren't: were not
+  what's: what is
+  when's: when is
+  where's: where is
+  won't: will not

From fde657960477ccb037ed409eb7e36d6f689b374b Mon Sep 17 00:00:00 2001
From: Ruth Cheesley <ruth@ruthcheesley.co.uk>
Date: Sun, 24 Dec 2023 11:57:11 +0000
Subject: [PATCH 10/11] Fix references to she

---
 .../modules/admin/pages/components/budgets.adoc  |  2 +-
 .../modules/admin/pages/components/meetings.adoc |  4 ++--
 .../pages/components/meetings/registrations.adoc |  4 ++--
 .../admin/pages/components/proposals.adoc        |  4 ++--
 .../proposals/collaborative_drafts.adoc          |  8 ++++----
 docs/en/modules/admin/pages/features/badges.adoc | 14 +++++++-------
 .../admin/pages/features/endorsements.adoc       |  2 +-
 .../modules/admin/pages/features/my_account.adoc |  4 ++--
 .../admin/pages/features/my_account/account.adoc |  2 +-
 .../features/my_account/delete_my_account.adoc   |  2 +-
 .../modules/admin/pages/global_moderations.adoc  |  4 ++--
 docs/en/modules/admin/pages/help_sections.adoc   |  2 +-
 docs/en/modules/admin/pages/newsletters.adoc     |  2 +-
 docs/en/modules/admin/pages/pages.adoc           |  2 +-
 .../modules/admin/pages/participants/admins.adoc |  2 +-
 .../admin/pages/participants/authorizations.adoc |  2 +-
 .../participants/authorizations/census.adoc      |  4 ++--
 .../authorizations/code_postal_letter.adoc       | 16 ++++++++--------
 .../authorizations/identity_documents.adoc       | 12 ++++++------
 .../modules/admin/pages/participants/groups.adoc |  4 ++--
 .../admin/pages/participants/participants.adoc   |  6 +++---
 .../admin/pages/participants/reported_users.adoc |  6 +++---
 .../participants/verifications_conflicts.adoc    |  6 +++---
 docs/en/modules/admin/pages/scopes.adoc          |  2 +-
 .../admin/pages/spaces/assemblies/members.adoc   |  2 +-
 .../conferences/registrations/invites.adoc       |  2 +-
 .../spaces/conferences/registrations/types.adoc  |  2 +-
 .../spaces/conferences/registrations/users.adoc  |  6 +++---
 .../admin/pages/spaces/conferences/speakers.adoc |  2 +-
 .../modules/admin/pages/spaces/initiatives.adoc  |  8 ++++----
 docs/en/modules/admin/partials/page_admins.adoc  |  4 ++--
 .../partials/page_private_participants.adoc      |  6 +++---
 .../features/pages/general-description.adoc      |  2 +-
 33 files changed, 75 insertions(+), 75 deletions(-)

diff --git a/docs/en/modules/admin/pages/components/budgets.adoc b/docs/en/modules/admin/pages/components/budgets.adoc
index 9121bbf68f..906b1d89db 100644
--- a/docs/en/modules/admin/pages/components/budgets.adoc
+++ b/docs/en/modules/admin/pages/components/budgets.adoc
@@ -344,7 +344,7 @@ After the voting step has finished, then an administrator need to:
 
 . Change the Voting configuration for the Budget component to "Voting finished"
 . Go to the Budgets and view the results
-. On the projects that according to the normative have been selected, she'll need to go to each project, edit it and
+. On the projects that according to the normative have been selected, they will need to go to each project, edit it and
 then check the "Selected for implementation".
 
 image:components/budgets/results_unselected.png[Unselected projects after voting]
diff --git a/docs/en/modules/admin/pages/components/meetings.adoc b/docs/en/modules/admin/pages/components/meetings.adoc
index 478753092b..68b7ec471f 100644
--- a/docs/en/modules/admin/pages/components/meetings.adoc
+++ b/docs/en/modules/admin/pages/components/meetings.adoc
@@ -130,7 +130,7 @@ if you have two components, "Proposals" with weight "10" and "Meetiings" with we
 
 Meetings can be created by participants if the setting is "Participants can create meetings" is checked.
 
-If a participant belongs to a xref:admin:participants/groups.adoc[user group], then she'll be able to create meetings as that group also.
+If a participant belongs to a xref:admin:participants/groups.adoc[user group], then they will be able to create meetings as that group also.
 
 image:components/meetings/new_meeting_form_frontend01.png[Create a new meeting form (frontend)]
 image:components/meetings/new_meeting_form_frontend02.png[Create a new meeting form (frontend)]
@@ -201,7 +201,7 @@ image:components/meetings/new_meeting_form_frontend02.png[Create a new meeting f
 
 |Create meeting as
 |Required if the participant belongs to a group
-|With which identity she wants to create this meeting: as her user or as a group that she's reprensenting?
+|With which identity they want to create this meeting: as their user or as a group that they are reprensenting?
 
 |===
 
diff --git a/docs/en/modules/admin/pages/components/meetings/registrations.adoc b/docs/en/modules/admin/pages/components/meetings/registrations.adoc
index 98068256cf..8c09e527ea 100644
--- a/docs/en/modules/admin/pages/components/meetings/registrations.adoc
+++ b/docs/en/modules/admin/pages/components/meetings/registrations.adoc
@@ -81,7 +81,7 @@ The exported data will have these fields:
 * code: the xref:_registration_code[registration code] (if this feature is enabled)
 * user/name: the name of the user
 * user/email: the email of the user
-* user/user_group: the group of the user if she has selected that's representing a group when registering
+* user/user_group: the group of the user if they have selected that's representing a group when registering
 
 == Invitations
 
@@ -92,7 +92,7 @@ image:components/meetings/registrations/invite_attendee.png[Invite attendee for
 
 == Registration code
 
-This feature allows you to check if the attendee is registered in the meeting. She needs to provide her code, that gets
+This feature allows you to check if the attendee is registered in the meeting. They need to provide their code, that gets
 entered in this form and it's checked against the database.
 
 image:components/meetings/registrations/backend_w_registration_code.png[Registration code form in a meeting]
diff --git a/docs/en/modules/admin/pages/components/proposals.adoc b/docs/en/modules/admin/pages/components/proposals.adoc
index bc42a9ebf9..88d437da02 100644
--- a/docs/en/modules/admin/pages/components/proposals.adoc
+++ b/docs/en/modules/admin/pages/components/proposals.adoc
@@ -67,7 +67,7 @@ For instance, if you have two components, "Proposals" with weight "10" and "Meet
 
 |Minimum supports per user
 |Optional
-|Must be a number. How many supports does a participant needs to give to proposals so their supports are counted. If she doesn't
+|Must be a number. How many supports does a participant needs to give to proposals so their supports are counted. If they don't
 reach this number, her supports will not be taken in account.
 
 |Proposal limit per participant
@@ -321,7 +321,7 @@ image:components/proposals/new_proposal_frontend.png[New proposal form]
 
 Proposals can be created by participants if the setting is "Proposal creation enabled" is checked for the active phase.
 
-If a participant belongs to a xref:admin:participants/groups.adoc[user group], then she'll be able to create proposals as that group also.
+If a participant belongs to a xref:admin:participants/groups.adoc[user group], then they will be able to create proposals as that group also.
 
 This form depends a lot in which settings you've enabled in this component. It can be really short (with only a Title and
 Body by default) or very long (Title, Body, Hashtags, Address, Scope, Category, Image and Attachment).
diff --git a/docs/en/modules/admin/pages/components/proposals/collaborative_drafts.adoc b/docs/en/modules/admin/pages/components/proposals/collaborative_drafts.adoc
index 3a752fbd75..9026a00138 100644
--- a/docs/en/modules/admin/pages/components/proposals/collaborative_drafts.adoc
+++ b/docs/en/modules/admin/pages/components/proposals/collaborative_drafts.adoc
@@ -6,7 +6,7 @@ It's useful to propose improvements or corrections.
 
 It has similarities with xref:components/proposals/amendments.adoc[Amendments] but the main difference is that with collaborative
 drafts there is a need to trust other authors, as they can make any change to the original proposal without approval by the
-original author, although the original author can decide if she promotes the collaborative draft as a proposal.
+original author, although the original author can decide if they promote the collaborative draft as a proposal.
 
 image:components/proposals/collaborative_drafts/collaborative_draft_request_access.png[Collaborative draft with request access button]
 
@@ -24,7 +24,7 @@ For instance, it could be "Processes", "Assemblies", or "Conferences"
 
 == How it works
 
-. A participant (Alice) wants to create a collaborative draft. For that, she goes to the proposals list page.
+. A participant (Alice) wants to create a collaborative draft. For that, they go to the proposals list page.
 . Alice clicks in the "Access collaborative drafts" button
 image:components/proposals/collaborative_drafts/proposals_list01.png[]
 . Alice clicks in "New collaborative draft" button
@@ -40,7 +40,7 @@ image:components/proposals/collaborative_drafts/collaborative_draft_request_acce
 image:components/proposals/collaborative_drafts/access_requested.png[]
 . Alice receives the notification
 image:components/proposals/collaborative_drafts/notification.png[]
-. Alice goes to the collaborative draft. There she can accept or reject the collaboration request
+. Alice goes to the collaborative draft. There they can accept or reject the collaboration request
 image:components/proposals/collaborative_drafts/author_sidebar.png[]
 . Alice approves the collaboration request. Once a request is approved it can't be rejected
 . Now the collaborative draft has multiple authors
@@ -53,7 +53,7 @@ image:components/proposals/collaborative_drafts/collaborative_draft_edited.png[]
 image:components/proposals/collaborative_drafts/collaborative_draft_edited_versions.png[]
 image:components/proposals/collaborative_drafts/collaborative_draft_edited_versions_show_v2_01.png[]
 image:components/proposals/collaborative_drafts/collaborative_draft_edited_versions_show_v2_02.png[]
-. Once Alice is satisfied with the collaborative draft, she can publish it by click in the "Publish" button
+. Once Alice is satisfied with the collaborative draft, they can publish it by click in the "Publish" button
 image:components/proposals/collaborative_drafts/publish_modal.png[]
 . When it's published it becomes a proposal
 image:components/proposals/collaborative_drafts/proposal.png[]
diff --git a/docs/en/modules/admin/pages/features/badges.adoc b/docs/en/modules/admin/pages/features/badges.adoc
index 9d4b6ac620..d19a9936f6 100644
--- a/docs/en/modules/admin/pages/features/badges.adoc
+++ b/docs/en/modules/admin/pages/features/badges.adoc
@@ -9,12 +9,12 @@ The badges a participant has are visible in her account. There's also a general
 
 image:features/badges/example01.png[Example of badges in profile]
 
-When a participant earns a badge she receives a notification.
+When a participant earns a badge they receive a notification.
 
 image:features/badges/notification.png[Example of badges notification]
 
-Badges have multiple levels, depending in the number of times she has made the action. For instance, for Proposals badge
-she'll receive the first level badge when arriving at 1 follower, the second level at 15 followers, the third level at 30 followers,
+Badges have multiple levels, depending in the number of times they have made the action. For instance, for Proposals badge
+they will receive the first level badge when arriving at 1 follower, the second level at 15 followers, the third level at 30 followers,
 the fourth level at 60 and the fifth level at 100.
 
 .Badges
@@ -31,7 +31,7 @@ make proposals that can be carried out. This way they are more likely to be acce
 |image:features/badges/attended_meetings_badge.png[Attended meetings badge]
 |Attended meetings
 |Granted when participants attend several face-to-face meetings.
-|The participant needs to register for the meetings she want to attend
+|The participant needs to register for the meetings they want to attend
 |1, 3, 5, 10, 30
 
 |image:features/badges/debates_badge.png[Debates badge]
@@ -56,15 +56,15 @@ participants ned to weave their web to communicate with other people in the plat
 |image:features/badges/invitations_badge.png[invitations badge]
 |Invitations
 |Granted when participants invite some people and they have become participants.
-|The participant needs to use the “invite friends” link on her user page to invite her friends. She can customize the
-message she's sending. She’ll level up by sending invitations and getting them registered. Note that this feature is disabled
+|The participant needs to use the “invite friends” link on her user page to invite her friends. They can customize the
+message they are sending. They will level up by sending invitations and getting them registered. Note that this feature is disabled
 and this badge is not available, so it'll be removed in the future.
 |1, 5, 10, 30, 50
 
 |image:features/badges/proposal_supports_badge.png[Proposal supports badge]
 |Proposal supports
 |Granted when participants support other people's proposals.
-|The participant needs to browse and spend some time reading other people's proposals and give support to the proposals she like or find interesting.
+|The participant needs to browse and spend some time reading other people's proposals and give support to the proposals they like or find interesting.
 |5, 15, 50, 100, 500
 
 |image:features/badges/proposals_badge.png[Proposals badge]
diff --git a/docs/en/modules/admin/pages/features/endorsements.adoc b/docs/en/modules/admin/pages/features/endorsements.adoc
index 4522cd073d..e6abad9003 100644
--- a/docs/en/modules/admin/pages/features/endorsements.adoc
+++ b/docs/en/modules/admin/pages/features/endorsements.adoc
@@ -8,7 +8,7 @@ This is done through the button in the sidebar. Administrators can enable or dis
 
 image:features/endorsements/sidebar.png[Endorsement button in sidebar]
 
-When a participant belongs to a verified group she can also endorse like that group by selecting the identity.
+When a participant belongs to a verified group they can also endorse like that group by selecting the identity.
 
 image:features/endorsements/modal.png[Select identity modal]
 
diff --git a/docs/en/modules/admin/pages/features/my_account.adoc b/docs/en/modules/admin/pages/features/my_account.adoc
index 0d30d38de3..2213d10053 100644
--- a/docs/en/modules/admin/pages/features/my_account.adoc
+++ b/docs/en/modules/admin/pages/features/my_account.adoc
@@ -1,6 +1,6 @@
 = My account
 
-My account is all the pages where a participant can change her personal data that is displayed in her xref:admin:features/my_public_profile.adoc[My public profile] page, change her notifications settings, see which groups she belongs, etc.
+My account is all the pages where a participant can change her personal data that is displayed in her xref:admin:features/my_public_profile.adoc[My public profile] page, change her notifications settings, see which groups they belong to, etc.
 
 To go to this section:
 
@@ -8,7 +8,7 @@ To go to this section:
 . Click in the name of the participant in the header
 . Click in "My account"
 
-The actions that she can do are:
+The actions that they can do are:
 
 * xref:admin:features/my_account/account.adoc[Account]
 * xref:admin:features/my_account/notifications_settings.adoc[Notifications settings]
diff --git a/docs/en/modules/admin/pages/features/my_account/account.adoc b/docs/en/modules/admin/pages/features/my_account/account.adoc
index 095e4e3c4a..18b23060ce 100644
--- a/docs/en/modules/admin/pages/features/my_account/account.adoc
+++ b/docs/en/modules/admin/pages/features/my_account/account.adoc
@@ -27,7 +27,7 @@ The service crops the image. Maximum file size: 5MB
 
 |Your email
 |Required
-|The email of the participant, where she'll receive notifications, password recovery, etc. If it's changed it needs to be
+|The email of the participant, where they will receive notifications, password recovery, etc. If it's changed it needs to be
 confirmed.
 
 |Personal URL
diff --git a/docs/en/modules/admin/pages/features/my_account/delete_my_account.adoc b/docs/en/modules/admin/pages/features/my_account/delete_my_account.adoc
index fe2a6c0d94..3fc0c019fc 100644
--- a/docs/en/modules/admin/pages/features/my_account/delete_my_account.adoc
+++ b/docs/en/modules/admin/pages/features/my_account/delete_my_account.adoc
@@ -10,7 +10,7 @@ To delete the account:
 . Click in the name of the participant in the header
 . Click in "My account"
 . Click in "Delete my account" in the sidebar
-. Optionally, she can provide a reason for the deletion
+. Optionally, they can provide a reason for the deletion
 . Click in "Delete my account"
 . Click in "Yes, I want to delete my account"
 
diff --git a/docs/en/modules/admin/pages/global_moderations.adoc b/docs/en/modules/admin/pages/global_moderations.adoc
index 86b776bca2..7abe85cf51 100644
--- a/docs/en/modules/admin/pages/global_moderations.adoc
+++ b/docs/en/modules/admin/pages/global_moderations.adoc
@@ -36,8 +36,8 @@ process and the framework for discussion, and
 > * to create multiple users by pretending to be different people (astroturfing).
 
 Anyone can propose a moderation in Decidim, through the "Flag" icon in the participant
-profile. After a participant has clicked in this action then she needs to provide a
-reason why she's making this report:
+profile. After a participant has clicked in this action then they need to provide a
+reason why they are making this report:
 
 * Contains clickbait, advertising, scams or script bots.
 * Contains racism, sexism, slurs, personal attacks, death threats, suicide requests or any form of hate speech.
diff --git a/docs/en/modules/admin/pages/help_sections.adoc b/docs/en/modules/admin/pages/help_sections.adoc
index 7e942f55d7..9be6d5e3d7 100644
--- a/docs/en/modules/admin/pages/help_sections.adoc
+++ b/docs/en/modules/admin/pages/help_sections.adoc
@@ -1,6 +1,6 @@
 = Help sections
 
-The first time a visitor goes to any Space page she'll see an information box about what's this Space about.
+The first time a visitor goes to any Space page they will see an information box about what's this Space about.
 
 This is how the information box is shown to participants and visitors:
 
diff --git a/docs/en/modules/admin/pages/newsletters.adoc b/docs/en/modules/admin/pages/newsletters.adoc
index f7e8c66b33..43c1cc2fd0 100644
--- a/docs/en/modules/admin/pages/newsletters.adoc
+++ b/docs/en/modules/admin/pages/newsletters.adoc
@@ -141,7 +141,7 @@ the selected participatory spaces in the list
 their "My interests" settings in their account.
 
 It's important to note that even if a participant has confirmed its account and
-is following the space, the system will not send her a newsletter email if she
+is following the space, the system will not send her a newsletter email if they
 haven't activated the "I want to receive newsletters".
 
 image::newsletter_select_recipients.png[Newsletter select recipients]
diff --git a/docs/en/modules/admin/pages/pages.adoc b/docs/en/modules/admin/pages/pages.adoc
index 859defee13..ac015f2966 100644
--- a/docs/en/modules/admin/pages/pages.adoc
+++ b/docs/en/modules/admin/pages/pages.adoc
@@ -100,7 +100,7 @@ image::pages_backend_tos_change.png[Backend: ToS change]
 
 image::pages_frontend_tos_change.png[Frontend: ToS change]
 
-If a participant rejects to accept the terms, then she has three options:
+If a participant rejects to accept the terms, then they have three options:
 
 . To review this again later. It signs her out automatically.
 . To download their personal data
diff --git a/docs/en/modules/admin/pages/participants/admins.adoc b/docs/en/modules/admin/pages/participants/admins.adoc
index f88bcff92b..0746ef9183 100644
--- a/docs/en/modules/admin/pages/participants/admins.adoc
+++ b/docs/en/modules/admin/pages/participants/admins.adoc
@@ -11,7 +11,7 @@ Here you can:
 * see when was the last time an administrator logged in
 
 For inviting a new administrator, you need to go to the button "New user" and fill
-the form with the admin username, email and which role will she have:
+the form with the admin username, email and which role will they have:
 
 * Admin: to give full access to the platform
 * Participant manager: to give permission to only do xref:admin:participants/impersonations.adoc[Impersonations]
diff --git a/docs/en/modules/admin/pages/participants/authorizations.adoc b/docs/en/modules/admin/pages/participants/authorizations.adoc
index 3f4cfd63ab..e8dc6e2b1c 100644
--- a/docs/en/modules/admin/pages/participants/authorizations.adoc
+++ b/docs/en/modules/admin/pages/participants/authorizations.adoc
@@ -8,7 +8,7 @@ With authorizations an administrator can define different permissions so partici
 For instance you can configure that only participants who have verified herselves by their identity documents can vote on
 proposals in a participatory process.
 
-A participant can see which authorizations does she have available in her account settings.
+A participant can see which authorizations do they have available in her account settings.
 
 image:authorizations_account.png[Authorizations in participants account]
 
diff --git a/docs/en/modules/admin/pages/participants/authorizations/census.adoc b/docs/en/modules/admin/pages/participants/authorizations/census.adoc
index b7e2cfbb9d..7c14726237 100644
--- a/docs/en/modules/admin/pages/participants/authorizations/census.adoc
+++ b/docs/en/modules/admin/pages/participants/authorizations/census.adoc
@@ -15,7 +15,7 @@ In the admin panel, the administrator can review the request by going to the "Or
 
 image:authorizations_organization_census.png[Organization's census in admin panel]
 
-After the CSV is imported then the administrator can see how many participants where imported. She can also delete this
+After the CSV is imported then the administrator can see how many participants where imported. They can also delete this
 imported census.
 
 image:authorizations_organization_census_imported.png[Imported CSV]
@@ -29,6 +29,6 @@ image:authorizations_organization_census_account.png[Organization's census in pa
 
 == 3. The participant is verified (or not)
 
-After is verified, as with other verifications, she can see it in her account settings.
+After is verified, as with other verifications, they can see it in her account settings.
 
 image:authorizations_organization_census_verified.png[Verified by organization's census]
\ No newline at end of file
diff --git a/docs/en/modules/admin/pages/participants/authorizations/code_postal_letter.adoc b/docs/en/modules/admin/pages/participants/authorizations/code_postal_letter.adoc
index 20ff86d715..9693a677c8 100644
--- a/docs/en/modules/admin/pages/participants/authorizations/code_postal_letter.adoc
+++ b/docs/en/modules/admin/pages/participants/authorizations/code_postal_letter.adoc
@@ -1,7 +1,7 @@
 = Code by postal letter authorization
 
-This authorization allows a participant to request for a verification code to be sent to its address, to confirm that she
-lives or works in this place. She'll need to then fill the code in the platform.
+This authorization allows a participant to request for a verification code to be sent to its address, to confirm that they
+live or work in this place. They will need to then fill the code in the platform.
 
 The process is:
 
@@ -9,7 +9,7 @@ The process is:
 . An administrator sends the letter to their address with the verification code.
 . An administrator marks the letter as sent.
 . Once you mark the letter as sent, the participant will be able to introduce the code.
-. If this code matchs, then she gets verified.
+. If this code matchs, then they get verified.
 
 == 1. A participant request the verification code
 
@@ -18,7 +18,7 @@ a participant can see the form for filling in her full address to request the ve
 
 image:authorizations_code_postal_letter_request.png[Code by postal letter request by participant]
 
-If she tries to edit it, she'll see this message:
+If they try to edit it, they will see this message:
 
 image:authorizations_code_postal_letter_edit.png[Edit the postal letter request]
 
@@ -31,17 +31,17 @@ In the admin panel, the administrator can review the request by going to the "Co
 
 image:authorizations_code_postal_letter_ongoing.png[Code by postal letter ongoing panel in admin]
 
-Here she can see the verification code and can send it to the participant by mail. After the code is sent she can mark it
+Here they can see the verification code and can send it to the participant by mail. After the code is sent they can mark it
 as sent with the icon image:action_mark_as_sent.png[Mark as sent]. It'll also show when the letter was sent.
 
 == 3. A participant fills in the verification code
 
-After the participant has received the code, she can go to it's account settings and click in the "Code by postal letter"
+After the participant has received the code, they can go to their account settings and click in the "Code by postal letter"
 verfication method.
 
 image:authorizations_code_postal_letter_verify.png[Code by postal letter ongoing in the participant account]
 
-Then she'll see the form for confirming the code.
+Then they will see the form for confirming the code.
 
 image:authorizations_code_postal_letter_confirm.png[Code by postal letter confirmation form]
 
@@ -52,6 +52,6 @@ If the verification code matches, then the participant will see the message "Con
 On the other hand, if the verification code doesn't match, then the participant will see the message "Your verification
 code doesn't match ours. Please double-check the letter we sent to you."
 
-After is verified, as with other verifications, she can see it in her account settings.
+After is verified, as with other verifications, they can see it in their account settings.
 
 image:authorizations_code_postal_letter_verified.png[Verified by code by postal letter]
diff --git a/docs/en/modules/admin/pages/participants/authorizations/identity_documents.adoc b/docs/en/modules/admin/pages/participants/authorizations/identity_documents.adoc
index 34b1e2585c..2300a3b8ba 100644
--- a/docs/en/modules/admin/pages/participants/authorizations/identity_documents.adoc
+++ b/docs/en/modules/admin/pages/participants/authorizations/identity_documents.adoc
@@ -6,7 +6,7 @@ they could be a driver's license, a passport, a national identity card, a club m
 These documents will be reviewed by an administrator to accept or reject them. It's possible to do this process in two ways: Online or Offline.
 
 * Online: the participant will be asked to upload the documents, and the administrator will review these documents.
-* Offline: the participant will be asked to fill in some data, and then she'll need to go to a presential place to show her documents face to face.
+* Offline: the participant will be asked to fill in some data, and then they will need to go to a presential place to show her documents face to face.
 
 == Configuration
 
@@ -42,13 +42,13 @@ The process is:
 . Participants fill in their document type and number and upload a copy of their document.
 . An administrator fills in the information present in the uploaded image.
 . The information should match whatever the user filled in.
-. If the administrator can't clearly see the information or she can't get it verified, she can reject the request and
+. If the administrator can't clearly see the information or they can't get it verified, they can reject the request and
 the user will be able to fix it.
 
 === 1. A participant fill in the document information and upload a copy of her document
 
 By going to the authorization section in its profile, or by clicking on the action button if this permission is requested,
-a participant can see the form for uploading a copy of her document. She also needs to fill in her document type and number.
+a participant can see the form for uploading a copy of her document. They also need to fill in their document type and number.
 
 image:authorizations_id_document_online.png[ID document authorization online form]
 
@@ -84,7 +84,7 @@ The process is:
 specific time to show their documents.
 . An administrator go to the "Offline verification" panel and fills in the information present in the physical documents.
 . The information should match whatever the user filled in.
-. If the administrator can't clearly see the information or she can't get it verified, she can reject the request and
+. If the administrator can't clearly see the information or they can't get it verified, they can reject the request and
 the user will be able to fix it.
 
 For this authorization to work, an administrator need to first configure it in the admin panel with the instructions explaining
@@ -105,7 +105,7 @@ In the admin panel, the administrator can review the request by clicking in the
 
 image:authorizations_id_document_offline_button.png[ID document authorization offline button in admin]
 
-Then she'll need to fill some data provided by the participant and by reviewing the document physically provided by her.
+Then they will need to fill some data provided by the participant and by reviewing the document physically provided by them.
 
 image:authorizations_id_document_offline_confirm.png[ID document authorization offline confirmation form in admin]
 
@@ -136,6 +136,6 @@ user account.
 == Both
 
 It's also possible to enable both of these verifications methods. In this case, the participant will be asked to choose
-which kind of verification she wants to do.
+which kind of verification they want to do.
 
 image:authorizations_id_document_account_choose.png[Choose ID document verification kind]
diff --git a/docs/en/modules/admin/pages/participants/groups.adoc b/docs/en/modules/admin/pages/participants/groups.adoc
index 2330cf8b74..e0f57dcb75 100644
--- a/docs/en/modules/admin/pages/participants/groups.adoc
+++ b/docs/en/modules/admin/pages/participants/groups.adoc
@@ -4,7 +4,7 @@ An user group is a group of participants. Depending in the installation and the
 
 == Creation
 
-This action is done by **a participant**. She needs to go to their profile and in the sidebar there's a button that says "Create group":
+This action is done by **a participant**. They need to go to their profile and in the sidebar there's a button that says "Create group":
 
 image:user_sidebar.png[User sidebar]
 
@@ -49,7 +49,7 @@ image:user_group_new_form.png[New user group form]
 
 == Membership
 
-After a group has been created, it's possible to invite participants to become members of the group. After a participant has accepted to be part of this group then she can become an admin.
+After a group has been created, it's possible to invite participants to become members of the group. After a participant has accepted to be part of this group then they can become an admin.
 
 The actions that can be done by a participant in the user group are:
 
diff --git a/docs/en/modules/admin/pages/participants/participants.adoc b/docs/en/modules/admin/pages/participants/participants.adoc
index e3649ae16c..8b82a34d4b 100644
--- a/docs/en/modules/admin/pages/participants/participants.adoc
+++ b/docs/en/modules/admin/pages/participants/participants.adoc
@@ -2,7 +2,7 @@
 
 In this page an administrator can:
 
-* Block a participant, for instance because she's spamming or acting against the Terms of Service
+* Block a participant, for instance because they are spamming or acting against the Terms of Service
 * Contact a participant with Decidim private messages (Conversations)
 * Officialize a participant
 * See its email
@@ -48,7 +48,7 @@ blocking this participant:
 
 image:participants_block_user_justification.png[Justificate the blocked user action]
 
-Once a blocked participant tries to log-in she'll see an error message:
+Once a blocked participant tries to log-in they will see an error message:
 
 image:participants_block_user_alert.png[Message shown to blocked user]
 
@@ -58,7 +58,7 @@ See more at xref:admin:participants/reported_users.adoc[Reported users]
 
 === Show email address
 
-After clicking this option, the admin will see a modal. She'll have to click in
+After clicking this option, the admin will see a modal. They will have to click in
 button "Show email address".
 
 image:participants_show_email.png[Modal in show email]
diff --git a/docs/en/modules/admin/pages/participants/reported_users.adoc b/docs/en/modules/admin/pages/participants/reported_users.adoc
index cfd34bf176..947ae12825 100644
--- a/docs/en/modules/admin/pages/participants/reported_users.adoc
+++ b/docs/en/modules/admin/pages/participants/reported_users.adoc
@@ -8,8 +8,8 @@ A participant can be blocked from the xref:participants/participants.adoc[partic
 section in the admin panel] or through this "Reported users" section.
 
 Anyone can propose a moderation in Decidim, through the "Flag" icon in the participant
-profile. After a participant has clicked in this action she needs to provide a
-reason why she's making this report:
+profile. After a participant has clicked in this action they need to provide a
+reason why they are making this report:
 
 * Contains clickbait, advertising, scams or script bots.
 * Contains racism, sexism, slurs, personal attacks, death threats, suicide requests
@@ -26,7 +26,7 @@ blocking this participant:
 
 image:participants_block_user_justification.png[Justificate the blocked user action]
 
-Once a blocked participant tries to log-in she'll see an error message:
+Once a blocked participant tries to log-in they will see an error message:
 
 image:participants_block_user_alert.png[Message shown to blocked user]
 
diff --git a/docs/en/modules/admin/pages/participants/verifications_conflicts.adoc b/docs/en/modules/admin/pages/participants/verifications_conflicts.adoc
index bdf1b9bf7f..972d70114a 100644
--- a/docs/en/modules/admin/pages/participants/verifications_conflicts.adoc
+++ b/docs/en/modules/admin/pages/participants/verifications_conflicts.adoc
@@ -4,8 +4,8 @@ There are cases depending on which kind of verifications you've enabled that the
 
 For instance:
 
-. A participant get xref:admin:participants/impersonations.adoc[impersonated], and she doesn't provide an email
-. Then she creates an account and tries to verify herself with the Census verification
+. A participant get xref:admin:participants/impersonations.adoc[impersonated], and they don't provide an email
+. Then they create an account and try to verify themselves with the Census verification
 
 For security, we try to be extra cautious in these cases, and we want that an administrator reviews these verifications.
 As you can see, this depends a lot on which kind of verifications you've enabled in your organization, so it's easy to say
@@ -17,7 +17,7 @@ image:verifications_conflicts.png[Verification's conflicts panel]
 
 An administrator can review these conflicts by clicking in the Transfer user image:action_transfer_user.png[Transfer user] icon.
 
-Then she'll see the Transfer user form, where she can provide a reason for the transfer.
+Then they will see the Transfer user form, where they can provide a reason for the transfer.
 
 image:verifications_conflicts_transfer_user.png[]
 
diff --git a/docs/en/modules/admin/pages/scopes.adoc b/docs/en/modules/admin/pages/scopes.adoc
index 39cc48aa55..8657bdbba0 100644
--- a/docs/en/modules/admin/pages/scopes.adoc
+++ b/docs/en/modules/admin/pages/scopes.adoc
@@ -96,7 +96,7 @@ On a participatory space which concerns only one of the cities, you will be able
 
 === User interests and Newsletters
 
-A Participant can choose which Scopes she wants to follow in its account.
+A Participant can choose which Scopes they want to follow in its account.
 
 image:account_my_interests.png[Account: my interests]
 
diff --git a/docs/en/modules/admin/pages/spaces/assemblies/members.adoc b/docs/en/modules/admin/pages/spaces/assemblies/members.adoc
index 2649609a99..b64508b465 100644
--- a/docs/en/modules/admin/pages/spaces/assemblies/members.adoc
+++ b/docs/en/modules/admin/pages/spaces/assemblies/members.adoc
@@ -27,7 +27,7 @@ image:assembly_members_new_form.png[Assembly members new form]
 
 |Participant type
 |Required
-|Wheter this assembly member is non-participant or existing participant. Does she already have an account created on the platform?
+|Wheter this assembly member is non-participant or existing participant. Do they already have an account created on the platform?
 
 |Full name
 |Required if it's non-participant.
diff --git a/docs/en/modules/admin/pages/spaces/conferences/registrations/invites.adoc b/docs/en/modules/admin/pages/spaces/conferences/registrations/invites.adoc
index 18de0c306e..d95b4056e3 100644
--- a/docs/en/modules/admin/pages/spaces/conferences/registrations/invites.adoc
+++ b/docs/en/modules/admin/pages/spaces/conferences/registrations/invites.adoc
@@ -17,7 +17,7 @@ image:spaces/conferences/invite_participant_form.png[Invite a participant form]
 
 |Attendee type
 |Required
-|Wheter this invited person is a non-existing or existing participant. Does she already have an account created on the platform?
+|Wheter this invited person is a non-existing or existing participant. Do they already have an account created on the platform?
 
 |Name
 |Required if it's a non-existing participant.
diff --git a/docs/en/modules/admin/pages/spaces/conferences/registrations/types.adoc b/docs/en/modules/admin/pages/spaces/conferences/registrations/types.adoc
index 1b0a31b831..c343880b08 100644
--- a/docs/en/modules/admin/pages/spaces/conferences/registrations/types.adoc
+++ b/docs/en/modules/admin/pages/spaces/conferences/registrations/types.adoc
@@ -54,6 +54,6 @@ image:spaces/conferences/registration_types_backend.png[Manage registration type
 
 |===
 
-If the participant is already logged in then she'll see her username and email in the registration page.
+If the participant is already logged in then they will see their username and email in the registration page.
 
 image:spaces/conferences/registration_types_frontend_w_user.png[Select registration type with user account]
diff --git a/docs/en/modules/admin/pages/spaces/conferences/registrations/users.adoc b/docs/en/modules/admin/pages/spaces/conferences/registrations/users.adoc
index dfc1e486bc..fde51db0ec 100644
--- a/docs/en/modules/admin/pages/spaces/conferences/registrations/users.adoc
+++ b/docs/en/modules/admin/pages/spaces/conferences/registrations/users.adoc
@@ -16,12 +16,12 @@ It's possible to export the registrations in multiple formats: CSV, JSON, and XL
 ## Flow
 
 . A participant registers to the conference
-. She receives a pending registration notification
+. They receive a pending registration notification
 image:spaces/conferences/user_registration_pending_notification.png[Notification for pending user registration]
-. She receives a pending registration email
+. They receive a pending registration email
 image:spaces/conferences/user_registration_pending_email.png[Email for pending user registration]
 . An administrator reviews and confirms the registration with the image:action_check.png[Confirm] button
 . The participant receives a confirmed registration notification
 image:spaces/conferences/user_registration_confirmed_notification.png[Notification for confirmed user registration]
-. She receives a confirmed registration email with an calendar file (.ICS).
+. They receive a confirmed registration email with an calendar file (.ICS).
 image:spaces/conferences/user_registration_confirmed_email.png[Email for confirmed user registration]
diff --git a/docs/en/modules/admin/pages/spaces/conferences/speakers.adoc b/docs/en/modules/admin/pages/spaces/conferences/speakers.adoc
index 0a4adf6483..524f2ec414 100644
--- a/docs/en/modules/admin/pages/spaces/conferences/speakers.adoc
+++ b/docs/en/modules/admin/pages/spaces/conferences/speakers.adoc
@@ -25,7 +25,7 @@ image:spaces/conferences/new_speaker.png[Conferences speakers]
 
 |Participant type
 |Required
-|Wheter this speaker is a non-participant or existing participant. Does she already have an account created on the platform?
+|Wheter this speaker is a non-participant or existing participant. Do they already have an account created on the platform?
 
 |Full name
 |Required if it's non-participant.
diff --git a/docs/en/modules/admin/pages/spaces/initiatives.adoc b/docs/en/modules/admin/pages/spaces/initiatives.adoc
index 0c9b7eb3c7..e6df8dcdfb 100644
--- a/docs/en/modules/admin/pages/spaces/initiatives.adoc
+++ b/docs/en/modules/admin/pages/spaces/initiatives.adoc
@@ -89,7 +89,7 @@ image:admin_initiative_type.png[New initiative type form]
 
 |Collect participant personal data on signature
 |Optional
-|Adds a step to the signature process. When a participant clicks on the signature button, she'll be redirected to a form asking for some personal data. This will be used with the PDF export action after the recollection period has ended.
+|Adds a step to the signature process. When a participant clicks on the signature button, they will be redirected to a form asking for some personal data. This will be used with the PDF export action after the recollection period has ended.
 
 |Legal information about the collection of personal data
 |Depends on whether the option "Collect participant personal data on the signature" is checked
@@ -103,7 +103,7 @@ image:admin_initiative_type.png[New initiative type form]
 
 |Authorization to verify document number on signatures
 |Optional
-|When a participant is making the signature process, will she be asked for an authorization?
+|When a participant is making the signature process, will they be asked for an authorization?
 
 |Add SMS code validation step to the signature process
 |
@@ -137,7 +137,7 @@ This action is done by **the author**. The author is a participant that creates
 
 image:initiative_list.png[Initiatives list]
 
-For creating an initiative, a participant must click in the "New initiative" button. Then she'll have a wizard with multiple steps:
+For creating an initiative, a participant must click in the "New initiative" button. Then they will have a wizard with multiple steps:
 
 
 === 1.1 Choose the initiative type
@@ -182,7 +182,7 @@ image:initiative_print.png[Print an initiative]
 
 ==== Technical validation
 
-After the author has reviewed how the initiative will look, she can send it to technical validation.
+After the author has reviewed how the initiative will look, they can send it to technical validation.
 
 image:initiative_send_to_technical_validation.png[Send initiative to technical validation]
 
diff --git a/docs/en/modules/admin/partials/page_admins.adoc b/docs/en/modules/admin/partials/page_admins.adoc
index ff19a4d5b4..04153a3a73 100644
--- a/docs/en/modules/admin/partials/page_admins.adoc
+++ b/docs/en/modules/admin/partials/page_admins.adoc
@@ -27,7 +27,7 @@ image:spaces/admins_form.png[New space admin form]
 
 |Email
 |Required
-|What is the email of the new admin, so she can receive the invitation.
+|What is the email of the new admin, so they can receive the invitation.
 
 |Role
 |Required
@@ -58,7 +58,7 @@ image:spaces/admins_role_moderator.png[Process moderators view]
 
 === Process valuators
 
-A space valuator can review the proposals of the space. She can:
+A space valuator can review the proposals of the space. They can:
 
 * change the status of the proposals, by accepting or rejecting them
 * add a monetary value to the proposals, so they can be voted with the budget component.
diff --git a/docs/en/modules/admin/partials/page_private_participants.adoc b/docs/en/modules/admin/partials/page_private_participants.adoc
index 265233da9c..4ef1a62ff7 100644
--- a/docs/en/modules/admin/partials/page_private_participants.adoc
+++ b/docs/en/modules/admin/partials/page_private_participants.adoc
@@ -66,11 +66,11 @@ image:spaces/private_participants_actions.png[Private participants actions]
 
 == Invitation
 
-When a participant was invited she'll get an email with a link for accepting the invitation:
+When a participant was invited they will get an email with a link for accepting the invitation:
 
 image:spaces/private_participants_email_invite.png[Email invitation of a private participant]
 
-After clicking in this email, she'll have to fill a form for setting her password, accepting the Terms of Service and giving
-her consent if she wants to receive newsletters.
+After clicking in this email, they will have to fill a form for setting her password, accepting the Terms of Service and giving
+her consent if they wants to receive newsletters.
 
 image:spaces/private_participants_user_registration_form.png[User registration form of a private participant]
diff --git a/docs/en/modules/features/pages/general-description.adoc b/docs/en/modules/features/pages/general-description.adoc
index 2e865ae0db..1659edd73a 100644
--- a/docs/en/modules/features/pages/general-description.adoc
+++ b/docs/en/modules/features/pages/general-description.adoc
@@ -50,7 +50,7 @@ Administrators can *manage permissions* for registered or verified users selecti
 
 There are different types of administrators: *administrators* of the whole platform or of specific spaces and components, they can also be *moderators* (with the exclusive power of moderating proposals, comments or debates) or *collaborators* that can read unpublished content, create notes and responses to proposals.
 
-Participants can register as an *individual* or as a *collective* (associations, working groups, etc. within the main organization). User *groups* might also be created so that individuals can be associated to a *group*. Decidim allows participants belonging to such a group to express or act individually or embodying the group identity: when an action is carried the platform prompts the participant to choose wether she wants to act as herself or as the group she belong to.
+Participants can register as an *individual* or as a *collective* (associations, working groups, etc. within the main organization). User *groups* might also be created so that individuals can be associated to a *group*. Decidim allows participants belonging to such a group to express or act individually or embodying the group identity: when an action is carried the platform prompts the participant to choose wether they want to act as themselves or as the group they belong to.
 
 Participants can not only navigate the content of Decidim through the top menu and move down the architectural hierarchy, from a space to its different components; they can also get information through the *search engine*, or via *notifications*. Participants can also talk to each other by internal messaging or *chat*.
 

From 6f7caede3197e00819b89f5f44f9896e2d5b7f7d Mon Sep 17 00:00:00 2001
From: Ruth Cheesley <ruth@ruthcheesley.co.uk>
Date: Sun, 24 Dec 2023 12:04:44 +0000
Subject: [PATCH 11/11] References to her

---
 .../en/modules/admin/pages/components/proposals.adoc |  2 +-
 .../admin/pages/components/proposals/amendments.adoc |  2 +-
 docs/en/modules/admin/pages/features/badges.adoc     | 10 +++++-----
 docs/en/modules/admin/pages/features/my_account.adoc |  2 +-
 docs/en/modules/admin/pages/newsletters.adoc         |  4 ++--
 docs/en/modules/admin/pages/pages.adoc               |  4 ++--
 .../admin/pages/participants/authorizations.adoc     |  2 +-
 .../pages/participants/authorizations/census.adoc    |  2 +-
 .../authorizations/code_postal_letter.adoc           |  2 +-
 .../authorizations/identity_documents.adoc           | 12 ++++++------
 .../admin/pages/participants/impersonations.adoc     |  2 +-
 .../admin/partials/page_private_participants.adoc    |  4 ++--
 12 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/docs/en/modules/admin/pages/components/proposals.adoc b/docs/en/modules/admin/pages/components/proposals.adoc
index 88d437da02..3000b0ba8a 100644
--- a/docs/en/modules/admin/pages/components/proposals.adoc
+++ b/docs/en/modules/admin/pages/components/proposals.adoc
@@ -68,7 +68,7 @@ For instance, if you have two components, "Proposals" with weight "10" and "Meet
 |Minimum supports per user
 |Optional
 |Must be a number. How many supports does a participant needs to give to proposals so their supports are counted. If they don't
-reach this number, her supports will not be taken in account.
+reach this number, their supports will not be taken in account.
 
 |Proposal limit per participant
 |Optional
diff --git a/docs/en/modules/admin/pages/components/proposals/amendments.adoc b/docs/en/modules/admin/pages/components/proposals/amendments.adoc
index ca215d0a98..27904d8f20 100644
--- a/docs/en/modules/admin/pages/components/proposals/amendments.adoc
+++ b/docs/en/modules/admin/pages/components/proposals/amendments.adoc
@@ -42,7 +42,7 @@ image:components/proposals/amendments/amendment_list.png[]
 image:components/proposals/amendments/amendment_view_side_by_side.png[]
 . It's also possible to filter the amended proposals
 image:components/proposals/amendments/amendment_list_filter.png[]
-. Alice receives a notification that Bob has proposed an amendment to her original proposal
+. Alice receives a notification that Bob has proposed an amendment to their original proposal
 image:components/proposals/amendments/proposal_amendmed_notification.png[]
 . Alice can see the amendment proposal
 image:components/proposals/amendments/proposal_amendmed_to_review.png[]
diff --git a/docs/en/modules/admin/pages/features/badges.adoc b/docs/en/modules/admin/pages/features/badges.adoc
index d19a9936f6..453776727f 100644
--- a/docs/en/modules/admin/pages/features/badges.adoc
+++ b/docs/en/modules/admin/pages/features/badges.adoc
@@ -5,7 +5,7 @@ and interacting in the platform, they will earn different badges. Here is the li
 
 It's a https://en.wikipedia.org/wiki/Gamification[gamification] mechanism to improve the engagement of the participants in a ludic way.
 
-The badges a participant has are visible in her account. There's also a general explanation page with a short description of every badge.
+The badges a participant has are visible in their account. There's also a general explanation page with a short description of every badge.
 
 image:features/badges/example01.png[Example of badges in profile]
 
@@ -24,7 +24,7 @@ the fourth level at 60 and the fifth level at 100.
 |image:features/badges/accepted_proposals_badge.png[Accepted proposals badge]
 |Accepted proposals
 |Granted when particiapnts actively participate with new proposals and these are accepted.
-|The participant needs to choose the participation space of her interest with submission for proposals enabled and try to
+|The participant needs to choose the participation space of their interest with submission for proposals enabled and try to
 make proposals that can be carried out. This way they are more likely to be accepted.
 |1, 5, 15, 30, 50
 
@@ -44,7 +44,7 @@ make proposals that can be carried out. This way they are more likely to be acce
 |Followers
 |Granted when participant reach a certain number of followers. The platform is a social and political network, so
 participants ned to weave their web to communicate with other people in the platform.
-|The participant needs to be be active and follow other people. That will surely make other people follow her.
+|The participant needs to be be active and follow other people. That will surely make other people follow them.
 |1, 15, 30, 60, 100
 
 |image:features/badges/published_initiatives_badge.png[Published initiatives badge]
@@ -56,7 +56,7 @@ participants ned to weave their web to communicate with other people in the plat
 |image:features/badges/invitations_badge.png[invitations badge]
 |Invitations
 |Granted when participants invite some people and they have become participants.
-|The participant needs to use the “invite friends” link on her user page to invite her friends. They can customize the
+|The participant needs to use the “invite friends” link on their user page to invite their friends. They can customize the
 message they are sending. They will level up by sending invitations and getting them registered. Note that this feature is disabled
 and this badge is not available, so it'll be removed in the future.
 |1, 5, 10, 30, 50
@@ -70,7 +70,7 @@ and this badge is not available, so it'll be removed in the future.
 |image:features/badges/proposals_badge.png[Proposals badge]
 |Proposals
 |Granted when participants actively participate with new proposals.
-|The participant needs to choose the participation space of her interest with submission for proposals enabled and create a new proposal.
+|The participant needs to choose the participation space of their interest with submission for proposals enabled and create a new proposal.
 |1, 5, 10, 30, 60
 
 |===
diff --git a/docs/en/modules/admin/pages/features/my_account.adoc b/docs/en/modules/admin/pages/features/my_account.adoc
index 2213d10053..15a381fbef 100644
--- a/docs/en/modules/admin/pages/features/my_account.adoc
+++ b/docs/en/modules/admin/pages/features/my_account.adoc
@@ -1,6 +1,6 @@
 = My account
 
-My account is all the pages where a participant can change her personal data that is displayed in her xref:admin:features/my_public_profile.adoc[My public profile] page, change her notifications settings, see which groups they belong to, etc.
+My account is all the pages where a participant can change their personal data that is displayed in their xref:admin:features/my_public_profile.adoc[My public profile] page, change their notifications settings, see which groups they belong to, etc.
 
 To go to this section:
 
diff --git a/docs/en/modules/admin/pages/newsletters.adoc b/docs/en/modules/admin/pages/newsletters.adoc
index 43c1cc2fd0..46fb7fec80 100644
--- a/docs/en/modules/admin/pages/newsletters.adoc
+++ b/docs/en/modules/admin/pages/newsletters.adoc
@@ -140,8 +140,8 @@ the selected participatory spaces in the list
 * Sending the newsletter to all the participants that have selected an scope in
 their "My interests" settings in their account.
 
-It's important to note that even if a participant has confirmed its account and
-is following the space, the system will not send her a newsletter email if they
+It's important to note that even if a participant has confirmed their account and
+is following the space, the system will not send them a newsletter email if they
 haven't activated the "I want to receive newsletters".
 
 image::newsletter_select_recipients.png[Newsletter select recipients]
diff --git a/docs/en/modules/admin/pages/pages.adoc b/docs/en/modules/admin/pages/pages.adoc
index ac015f2966..67047552ab 100644
--- a/docs/en/modules/admin/pages/pages.adoc
+++ b/docs/en/modules/admin/pages/pages.adoc
@@ -102,9 +102,9 @@ image::pages_frontend_tos_change.png[Frontend: ToS change]
 
 If a participant rejects to accept the terms, then they have three options:
 
-. To review this again later. It signs her out automatically.
+. To review this again later. It signs them out automatically.
 . To download their personal data
-. To delete her account
+. To delete their account
 
 image::pages_frontend_tos_reject.png[Frontend: ToS reject]
 
diff --git a/docs/en/modules/admin/pages/participants/authorizations.adoc b/docs/en/modules/admin/pages/participants/authorizations.adoc
index e8dc6e2b1c..8c460ed37e 100644
--- a/docs/en/modules/admin/pages/participants/authorizations.adoc
+++ b/docs/en/modules/admin/pages/participants/authorizations.adoc
@@ -8,7 +8,7 @@ With authorizations an administrator can define different permissions so partici
 For instance you can configure that only participants who have verified herselves by their identity documents can vote on
 proposals in a participatory process.
 
-A participant can see which authorizations do they have available in her account settings.
+A participant can see which authorizations do they have available in their account settings.
 
 image:authorizations_account.png[Authorizations in participants account]
 
diff --git a/docs/en/modules/admin/pages/participants/authorizations/census.adoc b/docs/en/modules/admin/pages/participants/authorizations/census.adoc
index 7c14726237..bc81ab9578 100644
--- a/docs/en/modules/admin/pages/participants/authorizations/census.adoc
+++ b/docs/en/modules/admin/pages/participants/authorizations/census.adoc
@@ -29,6 +29,6 @@ image:authorizations_organization_census_account.png[Organization's census in pa
 
 == 3. The participant is verified (or not)
 
-After is verified, as with other verifications, they can see it in her account settings.
+After is verified, as with other verifications, they can see it in their account settings.
 
 image:authorizations_organization_census_verified.png[Verified by organization's census]
\ No newline at end of file
diff --git a/docs/en/modules/admin/pages/participants/authorizations/code_postal_letter.adoc b/docs/en/modules/admin/pages/participants/authorizations/code_postal_letter.adoc
index 9693a677c8..9abae9a45d 100644
--- a/docs/en/modules/admin/pages/participants/authorizations/code_postal_letter.adoc
+++ b/docs/en/modules/admin/pages/participants/authorizations/code_postal_letter.adoc
@@ -14,7 +14,7 @@ The process is:
 == 1. A participant request the verification code
 
 By going to the authorization section in its profile, or by clicking on the action button if this permission is requested,
-a participant can see the form for filling in her full address to request the verification code.
+a participant can see the form for filling in their full address to request the verification code.
 
 image:authorizations_code_postal_letter_request.png[Code by postal letter request by participant]
 
diff --git a/docs/en/modules/admin/pages/participants/authorizations/identity_documents.adoc b/docs/en/modules/admin/pages/participants/authorizations/identity_documents.adoc
index 2300a3b8ba..bd959dd2c6 100644
--- a/docs/en/modules/admin/pages/participants/authorizations/identity_documents.adoc
+++ b/docs/en/modules/admin/pages/participants/authorizations/identity_documents.adoc
@@ -6,7 +6,7 @@ they could be a driver's license, a passport, a national identity card, a club m
 These documents will be reviewed by an administrator to accept or reject them. It's possible to do this process in two ways: Online or Offline.
 
 * Online: the participant will be asked to upload the documents, and the administrator will review these documents.
-* Offline: the participant will be asked to fill in some data, and then they will need to go to a presential place to show her documents face to face.
+* Offline: the participant will be asked to fill in some data, and then they will need to go to a presential place to show their documents face to face.
 
 == Configuration
 
@@ -45,10 +45,10 @@ The process is:
 . If the administrator can't clearly see the information or they can't get it verified, they can reject the request and
 the user will be able to fix it.
 
-=== 1. A participant fill in the document information and upload a copy of her document
+=== 1. A participant fill in the document information and uploads a copy of their document
 
 By going to the authorization section in its profile, or by clicking on the action button if this permission is requested,
-a participant can see the form for uploading a copy of her document. They also need to fill in their document type and number.
+a participant can see the form for uploading a copy of their document. They also need to fill in their document type and number.
 
 image:authorizations_id_document_online.png[ID document authorization online form]
 
@@ -69,7 +69,7 @@ image:authorizations_id_document_online_confirm.png[ID document authorization on
 There are two actions an admin can do:
 
 * Accept: the participant will be fully authorized.
-* Reject: the participant will be prompted to amend her documents
+* Reject: the participant will be prompted to amend their documents
 
 If the request is rejected then the participant can provide other pictures or document.
 
@@ -95,7 +95,7 @@ image:authorizations_id_document_configuration_offline.png[ID document authoriza
 === 1. A participant fill in the document information and follow the instructions
 
 By going to the authorization section in its profile, or by clicking on the action button if this permission is requested,
-a participant can see the form for filling in her document type and number.
+a participant can see the form for filling in their document type and number.
 
 image:authorizations_id_document_offline_request.png[ID document authorization offline form]
 
@@ -130,7 +130,7 @@ image:authorizations_id_document_offline_confirm.png[ID document authorization o
 === 3. The request is accepted or rejected
 
 In the cases where the verifications don't match (meaning that the email or the document number provided by the
-participant and the ones filled by the administrators aren't the same), then the participant need to ammend it with her
+participant and the ones filled by the administrators aren't the same), then the participant needs to amend it with their
 user account.
 
 == Both
diff --git a/docs/en/modules/admin/pages/participants/impersonations.adoc b/docs/en/modules/admin/pages/participants/impersonations.adoc
index 24fc6e580b..90912de6f8 100644
--- a/docs/en/modules/admin/pages/participants/impersonations.adoc
+++ b/docs/en/modules/admin/pages/participants/impersonations.adoc
@@ -36,7 +36,7 @@ After this data is confirmed then there'll be a session for the participant for
 image::participants_impersonations_user.png[Impersonated user session]
 
 Finally, it's also possible to Promote a participant, meaning that after a
-participant has been managed, an administrator can add the email and send her
+participant has been managed, an administrator can add the email and send them
 an Invitation:
 
 image::participants_impersonations_promotion.png[Admin's promotion Impersonations]
diff --git a/docs/en/modules/admin/partials/page_private_participants.adoc b/docs/en/modules/admin/partials/page_private_participants.adoc
index 4ef1a62ff7..2f438591e3 100644
--- a/docs/en/modules/admin/partials/page_private_participants.adoc
+++ b/docs/en/modules/admin/partials/page_private_participants.adoc
@@ -70,7 +70,7 @@ When a participant was invited they will get an email with a link for accepting
 
 image:spaces/private_participants_email_invite.png[Email invitation of a private participant]
 
-After clicking in this email, they will have to fill a form for setting her password, accepting the Terms of Service and giving
-her consent if they wants to receive newsletters.
+After clicking in this email, they will have to fill a form for setting their password, accepting the Terms of Service and giving
+their consent if they want to receive newsletters.
 
 image:spaces/private_participants_user_registration_form.png[User registration form of a private participant]
