In English, the pronoun ‘it’ is gender neutral. In French this is not the case, so I need to know the gender of the target object in order to assign the pronouns correctly.
I’ve added a CS_FEMALE
constant and done the necessary transformations which seems to work. However, I don’t know what to do with the _CSMatchNameList()
function, which contains a CS_THEM
, and whether it needs to be adapted.
Extracts of code to display changes made:
Constant CS_IT = 504;
Constant CS_THEM = 505;
Constant CS_FEMALE = 506;
[ _CSFindID
if(_val == CS_THEM or CS_FEMALE)
_i++;
if(_val == CS_THEM or CS_FEMALE)
_val = _arr-->++_i;
[ _ParseCheapScenery
if(_sw1 == CS_THEM or CS_FEMALE) {
CSDATA-->CSDATA_PRONOUN_TEMP = CS_THEM;
if (_sw1 == CS_FEMALE)
CSDATA-->CSDATA_PRONOUN_TEMP = CS_FEMALE;
_i++;
_sw1 = _arr-->_i;
}
Object CheapScenery "objet"
with
article ARTICLE_UN,
parse_name [ _ret;
cs_match_id = 0;
CSData-->CSDATA_MATCH_LENGTH = 0;
_ret = _ParseCheapScenery(location, cheap_scenery, wn);
if(CSDATA-->CSDATA_PRONOUN == CS_THEM) {
give self pluralname;
if(le_obj == self) { l_obj = 0; le_obj = 0; }
else if(la_obj == self) { l_obj = 0; la_obj = 0; }
} else {
if(CSDATA-->CSDATA_PRONOUN == CS_FEMALE) {
give self female;
la_obj = self;
if (le_obj == self) le_obj = 0;
}
else {
give self ~female;
if (la_obj == self) la_obj = 0;
}
give self ~pluralname;
#ifdef PUNYINFORM_MAJOR_VERSION;
if(les_obj == self) les_obj = 0;
#Endif;
}
return _ret;
],
react_after [;
Go:
if(l_obj == self) l_obj = 0;
#ifdef PUNYINFORM_MAJOR_VERSION;
if(les_obj == self) les_obj = 0;
#Endif;
],
Is there anything to change here?
[_CSMatchNameList p_arr p_count _w _matched _base;
if((_w-> #dict_par1) & 4) CSDATA-->CSDATA_PRONOUN_TEMP = CS_THEM;
_w = NextWord();