Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[String][EnglishInflector] Pluralize on words ending with -on mostly wrong #54611

Open
DesLynx opened this issue Apr 15, 2024 · 1 comment
Open

Comments

@DesLynx
Copy link

DesLynx commented Apr 15, 2024

Symfony version(s) affected

5.4 +

Description

When using the EnglishInflector of the String component to pluralize words ending with -on the results are mainly wrong because of the follwing rule in the SINGULAR_MAP:

        // bacteria (bacterium), criteria (criterion), phenomena (phenomenon)
        ['no', 2, true, true, 'a'],

This -on rule is not valid in most of the cases. The rule works for foreign (mainly greek) words. This is an irregular case not a standard.

We can already see 3 other rules for words ending in -pon, -son and -con.

How to reproduce

// First, run "composer require symfony/string"
// Then, execute this file:
<?php
require_once __DIR__.'/vendor/autoload.php';
use Symfony\Component\String\Inflector\EnglishInflector;

// returns "butta" instead of "buttons"
echo (new EnglishInflector())->pluralize('button');

Possible Solution

I'm not an english native-speaker nor an expert of english grammar but I think that it would be better to have a rule dedicated to the foreign word ending in -on, phenomenon and criterion (and maybe others) + a generic rule for words ending in -on.

Additional Context

No response

@derrabus
Copy link
Member

The inflector will never be perfect or complete. We fix such issues whenever someone comes up with a wrong pluralization. Please submit a PR that adds the words that you've found wrongly pluralized to our tests and that fixes the issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants