Hey, I found this resource and I like it, so I downloaded it, and I have a few suggestions:
1. I noticed that it didn't have an ending type, just a "is/are" boolean. My game is going to be translated into Spanish, and while the is/are boolean will work for verb endings (iirc the commonly used nonbinary pronoun is le, so "él habla/habló, la habla/habló, le hablan/hablaron), but adjectives (and occasionally nouns) end in a different thing for male and female, so I decided to add one. Just something to consider if you like this resource but are making a game in Spanish, or another language that changes the ending of words. Here's what I did:
- In the module Tech_Pronouns, add
attr_accessor :conjugation
and @conjugation = ""
to the list.
- In pronounsHim, add the line
$Trainer.conjugation = "o"
.
- In pronounsHer, add the line
$Trainer.conjugation = "a"
.
- In pronounsThey, add the line
$Trainer.conjugation = "o"
.
- In pbMessageDisplay, below the line
args[1].gsub!(/\\uslf/i,$Trainer.themself.capitalize)
, add args[1].gsub!(/\\oa/o,$Trainer.conjugation.downcase)
.
- Use \oa for applicable endings in the Spanish translation. (Again, as English does not have gender agreement, only number agreement, you don't need it for the English language messages, but you still want to use \oa.)
- In pronounsCustom, add the following, preferably between the lines
$Trainer.themself = pronoun
and command = 0
:
$Trainer.conjugation = "o"
#===============================##
# Spanish translation needs proper adjective (and occasionally noun) endings too
#===============================##
if $PokemonSystem.language == 1 # Spanish
pronoun = pbMessageFreeText(_INTL("¿Qué usa para terminar adjetivos, como el \"o\" en \"alto"?"),
"",false,2)
$Trainer.conjugation = pronoun
end
#===============================##
...replacing the 1 in the if statement with the index number of Spanish in your Languages array. (Since English does not conjugate adjectives, it doesn't make sense to ask the question if the language is English. If the player changes languages, they'll just have to deal with the "o" until and unless they redo the PC.
2. Now, this one's applicable regardless of language, so if you consider updating this plugin (or giving me permission to post an updated version, since I've already made the changes on my end, and I could even add Mr./Ms./Mx. support too, although since my player character doesn't have a defined last name I never refer to them by that), I recommend doing this. Let's say you need to use an entirely different word depending on pronouns, for example "That man over there..." becoming "That woman over there..." Without the plugin, you could just tie this to $Trainer.gender, and you still CAN, but then you'd need to have a nonbinary gender defined, which I technically recommend anyways to all users of this plugin, but might still not apply. With this plugin, this could be done in a similar vein as the adjective steps above, except skip the editing of pbMessageDisplay replace "conjugation" with "pronounID", use the same IDs as the genders they are typically associated with (2 for they) in pronounsHim, pronounsHer, and pronounsThey. Instead of the block of code in pronounsCustom, since this applies regardless of language, I'd recommend just adding
$Trainer.pronounID = 2
, as technically the "they" version (e.g. "person" instead of "man" or "woman") is always correct anyways. Consider 2 to just be the default for a generic (gendered word), rather than specifically being tied to agender people. You'll see why I recommend doing this below. I know you could just use the they word regardless, like what Pokémon Uranium does (and they DO have a nonbinary player character), but this works better. Additionally, you do not need to edit pbMessageDisplay for this addition, because this would be used in a conditional branch, similarly to the "is" check.
Now, while it sounds annoying to have to do so many conditional branches with an is check and a pronounID check if a verb needs to agree with the player's pronouns AND a gendered word like "man" is used, if you simply use $Trainer.pronounID = 2 for pronounsCustom, you only will ever need to perform both an is check and a pronounID check if pronounID is 2, as both he/him and she/her (0 and 1) use "is". Plus, for both $Trainer.is and $Trainer.pronounID (both 2 and 0/1), you only need to perform one check and can use an "else" if you structure it right, cutting the number of individual branches to just 3. You can see an example of the nesting in this screenshot:
While technically you could also do something like this for the adjective endings above, then you'd need to do this sort of thing for EVERY SINGLE SENTENCE. Using the \oa method above makes it actually practical to localize lmao.