4 ms·
I’d say overreaction. The real world is full of tradeoffs and I’ve seen people try to get minutia like this correct in convoluted contexts which actually broke
by tyleo 11mo ago
I’d say overreaction.
The real world is full of tradeoffs and I’ve seen people try to get minutia like this correct in convoluted contexts which actually broke the core application logic.
Given the limited time we can spend on things, supporting proper plurality falls below some of my other UI priorities like proper accessibility settings.
I don’t think plurality is bad, just low in the stack rank of things that matter.
- clickety_clack 11mo agoI’d like to think I do pluralization right, but sometimes it’s just that bit too time consuming because of an awkward internationalization issue or something so I don’t. There’s only so much polishing you can (or should) do before you ship. If I found that my team suddenly had a lot of time for cleaning up this kind of thing, I’d start worrying about job security tbh.
- jon-wood 11mo agoIf pluralisation of a status message in the UI is breaking core application logic then you've got bigger problems than the pluralisation code.
- jordanb 11mo agoEvery code path is an opportunity for a bug that escapes validation. Plus this particular example doesn't work with i18n. It would be more complicated in that case.
- wavemode 11mo agoThe (s) alternative that the article is arguing against is even worse for i18n, so what's your point?
- jordanb 11mo agoYou'll have to look up the way i18n frameworks work, but no the "(s)" is not worse. It is far better because it's a simple string that the framework can substitute without embedded business logic trying to manipulate the individual characters in a way that only works in one language.
- tyleo 11mo agoYeah, I'm with you. I've worked on several i18n frameworks, including ones for AAA game titles at Microsoft. You can make pluralization work but the "(s)" is going to tend to work better. And localization isn't just an opportunity for development bugs, localizers get things wrong too. Some non-English speakers mentioned to me that some translations are so bad, it's better to use the English version anyways.
- wavemode 11mo agoHuh? "(s)", itself, only works in one language! Other languages (and even English, sometimes) don't always pluralize by appending lettters to the end of words, so the parenthesized suffix thing very regularly doesn't even work. And who exactly is talking about "embedding" business logic in the i18n framework? Every serious framework I've used has supported placeholders, so at the application level you just select between singular and plural form and then the translation framework can handle arranging the words. e.g. `items.length == 1 ? _t("%d item", items.length) : _t("%d items", items.length)` and then within your translation files you can specify translations that rearrange the phrase, like "<noun> %d" for languages where they are reversed. (though usually of course, you would use much longer phrases, so that the translation is done in-context.)
- citelao 11mo agoMany languages have very complicated pluralization rules. For example, Russian has different plural forms for numbers ending in 2. That doesn't prevent a good translation framework from working properly, but it proves why the sample code in your example & the OP would not work. https://www.unicode.org/cldr/charts/43/supplemental/language_plural_rules.html#ru https://www.unicode.org/cldr/charts/43/supplemental/language...
- ghosty141 11mo agoEspecially once you get into i18n this becomes increasingly more complex for various reasons like different formats for translation programs etc.
- skeeter2020 11mo agoI agree; there's probably higher value UI work, or something that should be more important to you above this. Examples: Have you ever run your app at 500% in high contrast with no mouse or with a screen reader? What's the happy path for most popular workflows? How many layers bury them with options and edge cases? What language support are you missing?
- deleted 11mo ago[deleted]
- BrtByte 11mo agoSure, not every edge case deserves top billing, but when the little things stack up, they subtly signal whether anyone cared. It's a vibe thing
- ivape 11mo agoDeath by a thousand paper cuts Proverbs become eerie the longer you live. Almost like, woah, that one sentence was actually universally true? Well hot damn! Keep neglecting these small things and you’ll see the level of unconstrained shit you will have unleashed onto the world. With enough of us doing so, we can take part in the great collective festival of mass garbage accumulation (aggregate all the paper cuts). The few neurotic types that lament over this are actually, believe it or not, the closest thing to a sewage system for the accumulation. As of 2025, shame as a utility, is a weak tool. The modern website needs to be in MOMA with no explanation, just a small title that reads ‘Despair’ (Perhaps even ‘Futility’, or the more modern ‘There was an attempt’).
- ctxc 11mo ago"As of 2025, shame as a utility, is a weak tool" This is going on a t-shirt
- cantor_S_drug 11mo agoI think there was an article on English stackexchange where linguists proved that the word "the" is a useless word. It's a filler word like umm, etc.
- dullcrisp 11mo agoYou mean, “I think there was article on English stackexchange where linguists proved word “the” is useless word. It’s filler word like umm, etc.”