Skip to content

UI: give every count its own plural forms - #32

Merged
abalakh merged 1 commit into
spruceUI:masterfrom
abalakh:ui_count_plurals
Nov 1, 2026
Merged

abalakh merged 1 commit into
spruceUI:masterfrom
abalakh:ui_count_plurals

Conversation

@abalakh

@abalakh abalakh commented Nov 1, 2026

Copy link
Copy Markdown
Collaborator

A line holding several counts was one template, so it couldn't agree with each number: Ukrainian needs "1 хардкорне" but "7 хардкорних", and English showed "1 games cached" and "1 RetroPoints". #31 worked around it in Ukrainian with labels ("Хардкор: 7 · Казуал: 24"). Each count is now its own Plural, and the line only places them, so a translation can reorder them too:

  • PROFILE_POINTS: HARDCORE_POINTS, CASUAL_POINTS, RETRO_POINTS
  • GAMES_SUMMARY: GAME_COUNT, FINISHED_COUNT
  • STAT_UNLOCKS_VALUE: STAT_UNLOCKS_HARDCORE, STAT_UNLOCKS_CASUAL
  • STAT_BEATEN_VALUE: STAT_BEATEN_RETAIL ({count} became {beaten})
  • PROXY_STATUS: PROXY_WAITING, PROXY_CACHED
  • DETAIL_META: RETRO_POINTS English reads as before, except where a count is 1 ("1 RetroPoint", "1 game cached"). Ukrainian uses the new forms on Home ("4 210 хардкорних · 385 казуальних"), in the RAOfflineProxy row ("2 гри в кеші") and for retail games ("1 офіційна"). The profile's unlocks cell keeps bare numbers: its title names the modes, and adjectives don't fit in half the screen.
    CONTRIBUTING.md drops the label workaround, .agents/code.md asks for one Plural per count, and .agents/product.md says why.

A line holding several counts was one template, so it couldn't agree
with each number: Ukrainian needs "1 хардкорне" but "7 хардкорних",
and English showed "1 games cached" and "1 RetroPoints". #31 worked
around it in Ukrainian with labels ("Хардкор: 7 · Казуал: 24").
Each count is now its own Plural, and the line only places them, so a
translation can reorder them too:
- PROFILE_POINTS: HARDCORE_POINTS, CASUAL_POINTS, RETRO_POINTS
- GAMES_SUMMARY: GAME_COUNT, FINISHED_COUNT
- STAT_UNLOCKS_VALUE: STAT_UNLOCKS_HARDCORE, STAT_UNLOCKS_CASUAL
- STAT_BEATEN_VALUE: STAT_BEATEN_RETAIL ({count} became {beaten})
- PROXY_STATUS: PROXY_WAITING, PROXY_CACHED
- DETAIL_META: RETRO_POINTS
English reads as before, except where a count is 1 ("1 RetroPoint",
"1 game cached"). Ukrainian uses the new forms on Home ("4 210
хардкорних · 385 казуальних"), in the RAOfflineProxy row ("2 гри в
кеші") and for retail games ("1 офіційна"). The profile's unlocks
cell keeps bare numbers: its title names the modes, and adjectives
don't fit in half the screen.
CONTRIBUTING.md drops the label workaround, .agents/code.md asks for
one Plural per count, and .agents/product.md says why.
@abalakh
abalakh merged commit a09cc31 into spruceUI:master Nov 1, 2026
4 checks passed
@abalakh
abalakh deleted the ui_count_plurals branch November 1, 2026 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant