Skip to content

singularize() returns "psychoanalyasis" for "psychoanalyses" #4187

Closed

Description

@bpamiri

singularize() returns a misspelled word for a word that ends in "analyses" without starting with it:

singularize("psychoanalyses")  // "psychoanalyasis", expected "psychoanalysis"

This happens on every engine. singularize("analyses") is correct, because an earlier rule, (^analy)ses$, catches it first.

Cause. The singularize rule ((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$ → \1\2sis in vendor/wheels/global/strings.cfm adds group 2, the leading a of the analy alternative, a second time. For the other alternatives group 2 is empty, so bases, theses and the rest are unaffected.

Fix. Use (analy|ba|diagno|parenthe|progno|synop|the)ses$ → \1sis. Output changes only for words like psychoanalyses.

Activity

  1. added this to the v4.3.0 milestone on Oct 3, 2026
  2. modified the milestones: v4.3.0, v4.2.0 on Oct 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions