Refactor gender localization with support for customizable pronouns
required for https://github.com/space-wizards/space-station-14/pull/40104
Adds a new optional Pronoun field to GrammarComponent which can contain user-defined strings for existing pronoun conjugations, essentially making custom pronouns possible.
Existing function calls in LocalizationManager.Functions will attempt to return the relevant pronoun if it exists, and will otherwise fallback to using the pronouns associated with GrammarComponent.Gender.
those test fails are really scary. i'm not sure how to address them.
TestAllServerPrototypesAreSerializable and TestAllClientPrototypesAreSerializable seems to be consistently failing due to xenoborg actions on all robust PRs, so ignoring those all tests pass.
5,000 LoC and substantial complexity across 3 PRs for custom pronouns? Come on.
We're talking about more code than entire systems here. The disguise bug already shows this is touching stuff in weird ways we didn't expect. What else is going to break? And the localization stuff... Russian needs like 15 different forms? That's insane to maintain.
Every time someone touches chat, examine, identity, or basically any UI, they now have to think about custom pronouns. That's a lot of cognitive overhead for something most servers probably won't even enable.
Here's what we should actually do: just let servers add their own pronouns through config files. Want xe/xir? Add it to your YAML. Want neopronouns in Russian? Go for it, it's your config. This is literally how every moddable game handles stuff like this - you don't shove everything into core, you give people hooks to add what they need.
The PR author put in a ton of work and I respect that, but this is the wrong approach. We could spend a fraction of this effort making pronoun sets configurable and everyone wins: servers get whatever pronouns they want, core stays maintainable, and we don't have to deal with database migrations from hell.
Seriously, 5,000 lines? For something that could be a config file?
I think many others are likely remaining silent due to the sensitivity of the topic, but I think this is an extremely important decision to consider. This seems hard to justify.
@VoidMeticulous You have been permanently banned from GitHub.
- Stop being a knee-jerk bigot
- Don't go to an unrelated PR just to bitch when the other two PRs were clearly locked for good reason. In fact the very thing you are suggesting instead is not possible without this PR you are complaining on.
- Don't harass contributors
- If there are issues with the code complexity, this is something maintainers should decide
@VoidMeticulous You have been permanently banned from GitHub.
- Stop being a knee-jerk bigot
- Don't go to an unrelated PR just to bitch when the other two PRs were clearly locked for good reason. In fact the very thing you are suggesting instead is not possible without this PR you are complaining on.
- Don't harass contributors
- If there are issues with the code complexity, this is something maintainers should decide
imagine banning someone for suggesting that you shouldn't add more bloat to the game than there already is were they being a "bigot" or did they hurt your very fragile ego, mister princess? do better
still need to test things on the content / db side, but optimistic given that migrations built ok. opening this up to review again in the meantime just to make sure i havent royally fucked it
edit: nvm i freeking hate unit test. not sure how to fix that one.