Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -1999,49 +1999,10 @@ TEST: année {{2O11}} ->> 2011 TEST: {{3O}} (chiffre avec un O). ->> 30 -# Nombres ordinaux -__[s]/typo(typo_ordinaux_premier)__ - 1 ?(?:ier|i?ère)s? - <<- ->> =\0.replace(" ", "").replace("è", "").replace("i", "").replace("e", "ᵉ").replace("r", "ʳ").replace("s", "ˢ") - # Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 -__[s]/typo(typo_ordinaux_deuxième)__ - 2 ?nde?s? - <<- ->> =\0.replace(" ", "").replace("n", "").replace("d", "ᵈ").replace("e", "ᵉ").replace("s", "ˢ") - # Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 -__[s]/typo(typo_ordinaux_nième)__ - ([0-9]+) ?(?:è|i?[èe]me)s? @@0 - <<- \0.endswith("s") ->> \1ᵉˢ # Nombre ordinal pluriel. Exemples : 2ᵉˢ, 3ᵉˢ, 4ᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 - <<- __else__ ->> \1ᵉ # Nombre ordinal singulier. Exemples : 2ᵉ, 3ᵉ, 4ᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 -__[s]/typo(typo_ordinaux_romain_premier)__ - I ?(?:ier|i?ère)s? - <<- ->> =\0.replace(" ", "").replace("è", "").replace("i", "").replace("e", "ᵉ").replace("r", "ʳ").replace("s", "ˢ") - # Nombre ordinal romain. Premier : 1ᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 -__[s]/typo(typo_ordinaux_romain_deuxième)__ - II ?nde?s? - <<- ->> =\0.replace(" ", "").replace("n", "").replace("d", "ᵈ").replace("e", "ᵉ").replace("s", "ˢ") - # Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 -__[s]/typo(typo_ordinaux_romains_nième)__ - ([IVXLCM]{1,3}) ?(?:è|i?[èe]me)s? @@0 - <<- not morph(\0, ":G", False) >>> - <<- \0.endswith("s") ->> \1ᵉˢ # Nombre ordinal romain singulier. Exemples : IIᵉ, IIIᵉ, IVᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 - <<- __else__ ->> \1ᵉ # Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 - -TEST: la {{1ière}} fois, c’est la plus dure ->> 1ʳᵉ -TEST: le {{1ier}} de chaque semaine ->> 1ᵉʳ -TEST: le {{2nd}} du mois ->> 2ᵈ -TEST: les {{3ièmes}} années ->> 3ᵉˢ -TEST: C’est la {{3ème}} fois… ->> 3ᵉ -TEST: Non, la {{2è}} fois. ->> 2ᵉ -TEST: François {{Iier}} ->> Iᵉʳ -TEST: le {{IInd}} siècle ->> IIᵈ -TEST: le {{VIième}} siècle ->> VIᵉ -TEST: Le {{XXIème}} siècle. ->> XXIᵉ -TEST: le {{XXè}} siècle. ->> XXᵉ - !!!! Écritures épicènes invariables !! __[i](d_typo_écriture_épicène_pluriel)__ @@ -2179,10 +2140,135 @@ @@@@ @@@@ @@@@ @@@@ + +!!!! Nombres ordinaux !! + +__typo_ordinaux_chiffres__ + 1 ier + 1ier + <<- /typo/ ->> 1ᵉʳ # Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + 1 iers + 1iers + <<- /typo/ ->> 1ᵉʳˢ # Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + 1 ière + 1ière + <<- /typo/ ->> 1ʳᵉ # Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + 1 ières + 1ières + <<- /typo/ ->> 1ʳᵉˢ # Nombre ordinal. Premier : 1ᵉʳ. Première : 1ʳᵉ. Premiers : 1ᵉʳˢ. Premières : 1ʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + 2 nd + 2nd + <<- /typo/ ->> 2ᵈ # Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + 2 nds + 2nds + <<- /typo/ ->> 2ᵈˢ # Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + 2 nde + 2nde + <<- /typo/ ->> 2ᵈᵉ # Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + 2 ndes + 2ndes + <<- /typo/ ->> 2ᵈᵉˢ # Nombre ordinal. Second : 2ᵈ. Seconde : 2ᵈᵉ. Seconds : 2ᵈˢ. Secondes : 2ᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + ~^\d+$ è + ~^\d+$ ième + ~^\d+$ ieme + ~^\d+$ ème + ~^\d+$ eme + <<- /typo/ ->> \1ᵉ # Nombre ordinal singulier. Exemples : 2ᵉ, 3ᵉ, 4ᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + ~^\d+$ ès + ~^\d+$ ièmes + ~^\d+$ iemes + ~^\d+$ èmes + ~^\d+$ emes + <<- /typo/ ->> \1ᵉˢ # Nombre ordinal pluriel. Exemples : 2ᵉˢ, 3ᵉˢ, 4ᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + ~^\d+(?:è|i?[èe]me)s?$ + <<- /typo/ \0.endswith("s") + ->> =\1.replace("mes", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉˢ" # Nombre ordinal pluriel. Exemples : 2ᵉˢ, 3ᵉˢ, 4ᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + <<- /typo/ __else__ + ->> =\1.replace("me", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉ" # Nombre ordinal singulier. Exemples : 2ᵉ, 3ᵉ, 4ᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + +TEST: la {{1ière}} fois, c’est la plus dure ->> 1ʳᵉ +TEST: le {{1ier}} de chaque semaine ->> 1ᵉʳ +TEST: le {{2nd}} du mois ->> 2ᵈ +TEST: les {{3ièmes}} années ->> 3ᵉˢ +TEST: C’est la {{3ème}} fois… ->> 3ᵉ +TEST: Non, la {{2è}} fois. ->> 2ᵉ + + +__typo_ordinaux_chiffres_romains__ + I ier + Iier + <<- /typo/ ->> Iᵉʳ # Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + I iers + Iiers + <<- /typo/ ->> Iᵉʳˢ # Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + I ière + Iière + <<- /typo/ ->> Iʳᵉ # Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + I ières + Iières + <<- /typo/ ->> Iʳᵉˢ # Nombre ordinal romain. Premier : Iᵉʳ. Première : Iʳᵉ. Premiers : Iᵉʳˢ. Premières : Iʳᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + II nd + IInd + <<- /typo/ ->> IIᵈ # Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + II nds + IInds + <<- /typo/ ->> IIᵈˢ # Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + II nde + IInde + <<- /typo/ ->> IIᵈᵉ # Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + II ndes + IIndes + <<- /typo/ ->> IIᵈᵉˢ # Nombre ordinal romain. Second : IIᵈ. Seconde : IIᵈᵉ. Seconds : IIᵈˢ. Secondes : IIᵈᵉˢ.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + ~^[IVXLCM]{1,10}$ è + ~^[IVXLCM]{1,10}$ ième + ~^[IVXLCM]{1,10}$ ieme + ~^[IVXLCM]{1,10}$ ème + ~^[IVXLCM]{1,10}$ eme + <<- /typo/ ->> \1ᵉ # Nombre ordinal romain singulier. Exemples : 2ᵉ, 3ᵉ, 4ᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + ~^[IVXLCM]{1,10}$ ès + ~^[IVXLCM]{1,10}$ ièmes + ~^[IVXLCM]{1,10}$ iemes + ~^[IVXLCM]{1,10}$ èmes + ~^[IVXLCM]{1,10}$ emes + <<- /typo/ ->> \1ᵉˢ # Nombre ordinal romain pluriel. Exemples : 2ᵉˢ, 3ᵉˢ, 4ᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + + ~^[IVXLCM]{1,10}(?:è|i?[èe]me)s?$ + <<- /typo/ not morph(\1, ":G") >>> + <<- \0.endswith("s") + ->> =\1.replace("mes", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉˢ" # Nombre ordinal romain pluriel. Exemples : IIᵉˢ, IIIᵉˢ, IVᵉˢ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + <<- __else__ + ->> =\1.replace("me", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉ" # Nombre ordinal romain singulier. Exemples : IIᵉ, IIIᵉ, IVᵉ…|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4271 + +TEST: François {{Iier}} ->> Iᵉʳ +TEST: le {{IInd}} siècle ->> IIᵈ +TEST: le {{VIième}} siècle ->> VIᵉ +TEST: Le {{XXIème}} siècle. ->> XXIᵉ +TEST: le {{XXè}} siècle. ->> XXᵉ + + !!!! Dates !! __date_jour_mois_année__ 31 [avril|juin|septembre|novembre] @@ -2189,22 +2275,22 @@ <<- /date/ space_after(\1, 1, 1) ->> 30 \2 # Cette date est invalide. Il n’y a que 30 jours en \2. [30|31] février <<- /date/ space_after(\1, 1, 1) ->> 28 février|29 février # Cette date est invalide. Il n’y a que 28 ou 29 jours en février. - ~^\d\d? [janvier|février|mars|avril|mai|juin|juillet|aout|août|septembre|octobre|novembre|décembre] ~\d{2,5}$ + ~^\d\d?$ [janvier|février|mars|avril|mai|juin|juillet|aout|août|septembre|octobre|novembre|décembre] ~\d{2,5}$ <<- /date/ not checkDateWithString(\1, \2, \3) ->> _ # Cette date est invalide. TEST: le {{31 avril}} TEST: le {{30 février}} TEST: {{29 février 2011}} __date_journée_jour_mois_année__ - ([lundi|mardi|mercredi|jeudi|vendredi|samedi|dimanche]) ?,¿ ?le¿ (~^\d\d?-\d\d?-\d{2,5}$) - <<- /date/ not after(r"^ +av(?:ant|) +J(?:C|ésus-Christ)") and not checkDay(\1, \2) - -1>> =getDay(\2) # Le jour de la date suivante est incorrect. + ([lundi|mardi|mercredi|jeudi|vendredi|samedi|dimanche]) ?,¿ ?le¿ (~^\d\d?$) - (~^\d\d?$) - (~^\d{2,5}$) + <<- /date/ not after(r"^ +av(?:ant|) +J(?:C|ésus-Christ)") and not checkDay(\1, \2, \3, \4) + -1>> =getDay(\2, \3, \4) # Le jour de la date suivante est incorrect. ([lundi|mardi|mercredi|jeudi|vendredi|samedi|dimanche]) ?,¿ ?le¿ (~^\d\d?$) ([janvier|février|mars|avril|mai|juin|juillet|aout|août|septembre|octobre|novembre|décembre]) (~\d{2,5}$) <<- /date/ not after(r"^ +av(?:ant|) +J(?:C|ésus-Christ)") and not checkDayWithString(\1, \2, \3, \4) -1>> =getDayWithString(\2, \3, \4) # Le jour de la date suivante est incorrect.