Maybe using 'plural gender' is wrong logically, but imo it's good way from technical point of view. As far as i understand, plural is used only when game tells us some parameter, gender - when we supply that parameter in string where gendered string should be inserted.
And it's much more convenient since we (=ru) have only one form of plural adjective for all genders (plural male = plural female = plural neutral), so "m f n p" scheme is convenient. And i don't think that "m f n mp fp np" scheme is worse than offered by you, it's still very convenient to use. The only drawback - in future it may cause some problems in very complex strings, which includes both plural supplied by game and gender supplied by translator:
"1 heavy passenger" "3 heavy passengers" "1 heavy crate of goods" "3 heavy crates of goods"
"1 тяжел(ый) пассажир()" "3 тяжел(ых) пассажир(а)" "1 тяжел(ая) короб(ка) товаров" "3 тяжел(ых) короб(ки) товаров"
1st is always adjective, 2nd - noun. While noun only depends upon plural (since namely it dictates gender), adjective have to listen both plural and gender parameters...
Code: Select all
##plural 6 <s p1 p2 p3>
##gender m f n
str_foo: тяжел{G {P ый ых ых ых} {P ая ых ых ых} {P ое ых ых ых}}
<str_foo: root{G {P ms mp1 mp2 mp3} {P fs fp1 fp2 fp3} {P ns np1 np2 np3}}>
Also, maybe it would be logical to supply different plural pragma for this case. In russian, for example, nouns use plural 6, while adjectives - plural 0 (like english). "Plural 6" is more general case, so it may be used for more specific case "plural 0". But i'm not sure about other languages, maybe they have 'incompatible' versions of plural for different parts of speech and can't find 'the most general' plural to use with all of them. If it's okay with it, i don't mind
Code: Select all
##plural2 0 <s p>
##gender m f n
str_foo: тяжел{G {P ый ых} {P ая ых} {P ое ых}}
<str_foo: root{G {P ms mp} {P fs fp} {P ns np}}>
Since in russian it may be simplified further (plural male = plural female = plural neutral)...
Code: Select all
##plural2 0 <s p>
##gender m f n
str_foo: тяжел{P {G ый ая ое} ых}}
<str_foo: root{P {G m f n} p}}>
str_foo2: {COMMA} {G=m}{str_foo} пассажир{P "" а а ов}
or w/o adjective-specific plural
Code: Select all
##plural 6 <s p1 p2 p3>
##gender m f n
str_foo: тяжел{P {G ый ая ое} ых ых ых}}
<str_foo: root{P {G m f n} p1 p2 p3}}>
str_foo2: {COMMA} {G=m}{str_foo} пассажир{P "" а а ов}
If one of the last 2 variants would be implemented (when G is wrapped in P) - perfect

more perfect if we'll have possibility to wrap P in G too though
