Refactor gender localization with support for customizable pronouns#6182
Refactor gender localization with support for customizable pronouns#6182mqole wants to merge 20 commits intospace-wizards:masterfrom
Conversation
|
those test fails are really scary. i'm not sure how to address them. |
|
|
This comment was marked as abuse.
This comment was marked as abuse.
|
@VoidMeticulous You have been permanently banned from GitHub.
|
This comment was marked as abuse.
This comment was marked as abuse.
|
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. |
… into robust-pronouns-2
…robust-pronouns-2
|
I'm going to be a real stickler for terminology here, please forgive me. This is in the interest of keeping the code comprehensible and correct, so that it communicates the correct intention :)
Examples:
The change in verb form here is called personal conjugation. The FTL function
The choice of her/them involves finding the right case. For English, it's the oblique case. In German, it might be accusative or dative, depending on how one phrases "inject into X".
This is a change in tense. :) I think it would be more appropriate to call it |
|
@arimah no need for forgiveness, i appreciate the nitpicks immensely!! i'm definitely not a grammar freak so i do sincerely thank you for the clarification. i'll give all the comments and documentation a tidying with your feedback in mind. |
… into robust-pronouns-2
required for space-wizards/space-station-14#40104
Adds a new prototype,
PronounTensePrototype, which is used to dynamically generate FTL functions. Moved all existing pronoun tenses to this format. This means that grammar is no longer hardcoded, and users seeking to localize in languages with more grammatical tenses than RT defines can add their own grammatical tenses in yml and ftl.FTL functions are regenerated when prototypes are refreshed. They must be generated AFTER prototypes are initialized so they cannot be in the locManager init.
GrammarComponentnow contains a dictionary which can store non-standard pronouns for an entity for each grammatical tense. If a tense is called in FTL which a pronoun exists for, that pronoun will be used. Otherwise it will default to the enum gender of the entity.