We're updating the issue view to help you get more done. 

Improved spellout rules for ordinals in French

Description

Deleted Component: other

The rules (in rbnf/{fr,fr_CH,fr_BE}.xml):

<ruleset type="spellout-ordinal-masculine">
<rbnfrule value="-x">moins →→;</rbnfrule>
<rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
<rbnfrule value="0">zéroième;</rbnfrule>
<rbnfrule value="1">premier;</rbnfrule>
<rbnfrule value="2">=%spellout-cardinal-masculine=ième;</rbnfrule>
</ruleset>
<ruleset type="spellout-ordinal-feminine">
<rbnfrule value="-x">moins →→;</rbnfrule>
<rbnfrule value="x.x">=#,##0.#=;</rbnfrule>
<rbnfrule value="0">zéroième;</rbnfrule>
<rbnfrule value="1">première;</rbnfrule>
<rbnfrule value="2">=%spellout-cardinal-masculine=ième;</rbnfrule>
</ruleset>

are not sufficient for accurate spellout of ordinal numbers in French. The following rules (in ICU format) give proper spellout of ordinal numbers in French (note the variations, given in comments to be expanded for the two sublocales fr_CH and fr_BE):

"%%et-unième:"
"1: et-unième;"
"2: =%spellout-ordinal=;"
"11: et-onzième;"
"12: =%spellout-ordinal=;"

"%%cents-o:"
"0: ième;"
"1: -=%%spellout-ordinal=;"
"%%mille-o:"
"0: ième;"
"1: e-=%%spellout-ordinal=;"

"%%spellout-ordinal:"
"1: unième;"
"2: deuxième;"
"3: troisième;"
"4: quatrième;" // lost e
"5: cinquième;" // added u
"6: sixième;"
"7: septième;"
"8: huitième;"
"9: neuvième;" // f->v
"10: dixième;"
"11: onzième;" // lost e
"12: douzième;" // lost e
"13: treizième;" // lost e
"14: quatorzième;" // lost e
"15: quinzième;" // lost e
"16: seizième;" // lost e
"17: dix->>;"
"20: vingt->%%et-unième>;"
"30: trentième;"
"31: trente->%%et-unième>;"
"40: quarantième;"
"41: quarante->%%et-unième>;"
"50: cinquantième;"
"51: cinquante->%%et-unième>;"
"60: soixantième;"
"61/20: soixante->%%et-unième>;"
//"70: septantième;" // for fr_BE and fr_CH, not for fr
//"71: septante->%%et-unième>;" // for fr_BE and fr_CH, not for fr
"80/20: quatre-vingt>%%cents-o>;" // for fr and fr_BE, not for fr_CH
//"80: huitantième;" // for fr_CH, not for fr nor fr_BE
//"81: huitante->%%et-unième>;" // for fr_CH, not for fr nor fr_BE
//"90: nonantième;" // for fr_BE and fr_CH, not for fr
//"91: nonante->%%et-unième>;" // for fr_BE and fr_CH, not for fr
"100: cent>%%cents-o>;" // quinze-vingts
"200: <%spellout-cardinal-masculine<-cent>%%cents-o>;"
"1000: mill->%%mille-o>;"
"2000: <%spellout-cardinal-masculine<mill>%%mille-o>;"
"1,000,000 <%spellout-cardinal-masculine<million>%%cents-o>;"
"1,000,000,000: <%spellout-cardinal-masculine<milliard>%%cents-o>;"
"1,000,000,000,000: <%spellout-cardinal-masculine<billion>%%cents-o>;"
"1,000,000,000,000,000: <%spellout-cardinal-masculine<billiard>%%cents-o>;"
"1,000,000,000,000,000,000: =#,##0=;"

"%spellout-ordinal-masculine:"
"-x: moins >>;"
"x.x: =#,##0.#=;"
"0: zéroième;"
"1: premier;"
//"2: second;"
//"3: tiers;"
"2: =%%spellout-ordinal;"

"%spellout-ordinal-feminine:"
"-x: moins >>;"
"x.x: =#,##0.#=;"
"0: zéroième;"
"1: première;"
//"2: seconde;"
//"3: tiers;"
"2: =%%spellout-ordinal;"

Environment

xpath

None

locale

None

Status

Assignee

John Emmons

Reporter

TracBot

tracReporter

Kent Karlsson <kent.karlsson14@7b2d8bdbb3ec2063

tracOwner

emmons

tracResolution

fixed

tracStatus

closed

Reviewer

TracBot

tracCreated

Aug 11, 2010, 5:20 PM

Fix versions

Priority

minor