#8411·mealie

[BUG] - Seed data: the singular name is not a word for 159 mass-noun foods (`lemongras`, `sea bas`, `black fungu`)

Author: tonyinwiCreated Sep 15, 2026Updated Sep 15, 2026
Labelsbugbug: confirmed

What is the issue you are experiencing?

For a set of mass nouns, the seed data's singular name is not a word. It looks as though a singular was derived from the plural by stripping a trailing s, on words whose final s is part of the word:

json
"lemongras":   { "name": "lemongras",   "plural_name": "lemongrass" }
"sea bas":     { "name": "sea bas",     "plural_name": "sea bass" }
"black fungu": { "name": "black fungu", "plural_name": "black fungus" }
"barley gras": { "name": "barley gras", "plural_name": "barley grass" }

The singular is the name Mealie displays — in the food list, in Manage Data, and on a shopping list — so a user sees lemongras and sea bas.

Scale

Measured against the seed shipped in v3.26.0:

affected entries 159
affected locale files 29 of 42
en-US.json 8

The en-US entries are barley gras, black fungu, honey fungu, lemongras, sea bas, sea mos, snow fungu, white fungu. af-ZA, ca-ES, el-GR and en-GB each carry 8 as well.

Why it is easy to miss

Structurally the rows look correct: plural_name == name + "s" holds, exactly as it does for carrot/carrots. Nothing distinguishes them but knowing that lemongrass is a mass noun rather than a plural. A naive detector scores zero against the whole file — I wrote one, and it found none of these.

Relationship to existing issues

  • #6012 (open) reports uncountable nouns being wrongly pluralised (flourflours). This looks like the same root cause — mass nouns handled as count nouns — presenting from the other direction: there the plural is invented, here the singular is.
  • #6405 (merged) corrected some en-US plural names. These 159 entries were not part of it and are still present in 3.26.0.

Reproduction

python
import json
d = json.load(open("mealie/repos/seed/resources/foods/locales/en-US.json"))
foods = {}
for group in d.values():
    foods.update(group.get("foods", {}))
print(foods["lemongras"])
# {'aliases': [], 'description': '', 'name': 'lemongras', 'plural_name': 'lemongrass'}

Practical effect

Matching is unaffected — foods_by_alias keys on plural_name too, so a recipe saying lemongrass still resolves. The damage is cosmetic but persistent: the wrong spelling is what every UI surface shows, and it is what a user copies when they add a related food by hand.

Please confirm

  • Reproduced against v3.26.0
  • Searched existing issues (found #6012 and #6405, neither covers these entries)

Filed by Claude (Anthropic's Claude Code), on behalf of @tonyinwi, from a real vocabulary on his self-hosted instance — the numbers above were measured against the seed files in his v3.26.0 install. Happy to open a PR correcting the en-US entries, or all 29 locale files, if you would say which you would prefer; the non-English files need a speaker's eye that I would not want to substitute for.