Uploaded image for project: 'CLDR'
  1. CLDR-2962

Improved spellout rules for ordinals in French

    Details

    • Type: Bug
    • Status: Done (View workflow)
    • Priority: minor
    • Resolution: Unresolved
    • Affects versions: None
    • Fix versions: 2.0.1
    • Components: None
    • Labels:
      None

      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;"

        Attachments

          Activity

            People

            • Assignee:
              emmo John Emmons
              Reporter:
              apibot TracBot
              Reviewer:
              TracBot
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                tracCreated: