Grammalecte  Check-in [52b3cb8f1b]

Overview
Comment:[fr] màj: séparateurs des grands nombres
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk | fr
Files: files | file ages | folders
SHA3-256: 52b3cb8f1b3ae03679773b0db0569e0a01932e5c96d59673da449ad8b6dfb597
User & Date: olr on 2017-06-21 08:45:26
Other Links: manifest | tags
Context
2017-06-21
12:46
[fr][js] nnbsp au lieu de nbsp dans formatNumber() check-in: d7037dff19 user: olr tags: fr, major_change, trunk
08:45
[fr] màj: séparateurs des grands nombres check-in: 52b3cb8f1b user: olr tags: fr, trunk
2017-06-20
19:07
[fr] phonet_simil: beignet/baigner check-in: 7e24ad3d1d user: olr tags: fr, trunk
Changes

Modified gc_lang/fr/modules-js/gce_suggestions.js from [66a9ce5ee4] to [c06d21d1f4].

   517    517           return "les|la";
   518    518       }
   519    519       return "la";
   520    520   }
   521    521   
   522    522   function formatNumber (s) {
   523    523       let nLen = s.length;
   524         -    if (nLen <= 4 ) {
          524  +    if (nLen < 4 ) {
   525    525           return s;
   526    526       }
   527    527       let sRes = "";
   528    528       // nombre ordinaire
   529    529       let nEnd = nLen;
   530    530       while (nEnd > 0) {
   531    531           let nStart = Math.max(nEnd-3, 0);

Modified gc_lang/fr/modules/gce_suggestions.py from [69bb078e98] to [ab62364774].

   401    401       return "la"
   402    402   
   403    403   
   404    404   _zBinary = re.compile("^[01]+$")
   405    405   
   406    406   def formatNumber (s):
   407    407       nLen = len(s)
   408         -    if nLen <= 4:
          408  +    if nLen < 4:
   409    409           return s
   410    410       sRes = ""
   411    411       # nombre ordinaire
   412    412       nEnd = nLen
   413    413       while nEnd > 0:
   414    414           nStart = max(nEnd-3, 0)
   415    415           sRes = s[nStart:nEnd] + " " + sRes  if sRes  else s[nStart:nEnd]

Modified gc_lang/fr/rules.grx from [556b777cc3] to [e48fb425de].

   716    716   TEST: Mouais{{, ;}}
   717    717   TEST: Vraiment, bof {{;;}} on ne sait guère qu’en penser.
   718    718   TEST: Raisons {{:.}} trop, c’est trop.
   719    719   
   720    720   
   721    721   #__<s]/typo__  °C <<- ->> ℃                                                      # Typographie. Utilisez le signe des degrés approprié.
   722    722   
   723         -# Espaces insécables avant unités de mesure
   724         -__[s]/unit(unit_nbsp_avant_unités1)__
   725         -    ((\d+(?:,\d+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹]|)) ?)(?:[kcmµn]?(?:[slgJKΩ]|m[²³]?|Wh?|Hz|dB)|[%‰€$£¥Åℓhj]|min|°C|℃)(?![’'])  @@0,0
   726         -    <<- -1>> "\2 "
   727         -    # Avec une unité de mesure, mettez un espace insécable.
   728         -__[s]/unit(unit_nbsp_avant_unités2)__
   729         -    ((\d+(?:,\d+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹])) ?)([a-zA-Zµ][a-zA-Z0-9Ωℓ⁰¹²³⁴⁵⁶⁷⁸⁹/·]*)  @@0,0,$
   730         -    <<- morphex(\3, ";S", ":[VCR]") or mbUnit(\3) or not spell(\3)
   731         -    -1>> "\2 "
   732         -    # Si “\3” est une unité de mesure, il manque un espace insécable. Si le nombre se rapporte au mot suivant, c’est aussi valable.
   733         -__[s]/unit(unit_nbsp_avant_unités3)__
   734         -    ((\d+) )([a-zA-Zµ][a-zA-Z0-9Ωℓ⁰¹²³⁴⁵⁶⁷⁸⁹/·]*)(?![’'])  @@0,0,$
   735         -    <<- (not re.search("^[0-9][0-9]{1,3}$", \2) and not spell(\3)) or morphex(\3, ";S", ":[VCR]") or mbUnit(\3)
   736         -    -1>> "\2 "
   737         -    # Si “\3” est une unité de mesure, il manque un espace insécable. Si le nombre se rapporte au mot suivant, c’est aussi valable.
   738         -
   739         -TEST: Ça a duré {{3}}µs
   740         -TEST: Ça a duré {{3,5 }}µs
   741         -TEST: il y en a {{3 }}m²
   742         -TEST: il a fait {{10}}%
   743         -TEST: Ça coûte {{13,4}}¥.
   744         -TEST: il mesure {{30,3 }}cm
   745         -TEST: il est monté à {{18 }}%
   746         -TEST: une température de {{22,4 }}°C
   747         -TEST: il en veut {{18}}kg
   748         -TEST: il me le propose pour {{243 }}gCO2/kWh
   749         -TEST: il me le propose pour {{243,4 }}gCO2/kWh
   750         -TEST: en l’an 2000 Urgondorletroll eut une idée
   751         -TEST: 1998 s’annonce grandiose.
   752         -TEST: il y en a 3,43 milliards.
   753         -TEST: je veux 200 euros.
   754         -
   755    723   
   756    724   # Espaces insécables
   757    725   __<s>/nbsp(nbsp_ajout_avant_double_ponctuation)__   \b[?!;]  <<- sCountry != "CA" ->> =" "+\0               # Il manque un espace insécable.
   758    726   __<s>/nbsp(nbsp_avant_double_ponctuation)__         " ([?!;])"  @@1 <<- ->> " \1"                           # Il manque un espace insécable.
   759    727   __<s>/nbsp(nbsp_avant_deux_points)__                (?: |\b):(?= |$)  <<- ->> " :"                          # Il manque un espace insécable.
   760    728   __<s>/nbsp(nbsp_après_chevrons_ouvrants)__          «(?: |\b)  <<- ->> "« "                                 # Il manque un espace insécable.
   761    729   __<s>/nbsp(nbsp_après_chevrons_fermants)__      ^»(?: |\b)  <<- ->> "» |« "     # Il manque un espace insécable. Le sens de ce guillemet n’est justifié que si ce paragraphe continue le discours du paragraphe précédent.
................................................................................
   917    885   ## Chimie
   918    886   __[s]/chim(chim_molécules)__
   919    887       (?:Ca(?:CO3|SO4)|CO2|(?:H2|Na2)(?:CO3|O|SO4)|[HNO]2|HNO3|Fe2O3|KMnO4|NO2|SiO2|SO[23])
   920    888       <<- ->> =\0.replace("2", "₂").replace("3", "₃").replace("4", "₄")                               # Typographie des composés chimiques. [!]
   921    889   
   922    890   TEST: __chim__ les molécules {{CaCO3}} et {{H2O}}…
   923    891   
          892  +
          893  +!!!! Espaces insécables avant unités de mesure                                                      
          894  +
          895  +__[s]/unit(unit_nbsp_avant_unités1)__
          896  +    ((\d+(?:,\d+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹]|)) ?)(?:[kcmµn]?(?:[slgJKΩ]|m[²³]?|Wh?|Hz|dB)|[%‰€$£¥Åℓhj]|min|°C|℃)(?![’'])  @@0,0
          897  +    <<- -1>> "\2 "
          898  +    # Avec une unité de mesure, mettez un espace insécable.
          899  +__[s]/unit(unit_nbsp_avant_unités2)__
          900  +    ((\d+(?:,\d+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹])) ?)([a-zA-Zµ][a-zA-Z0-9Ωℓ⁰¹²³⁴⁵⁶⁷⁸⁹/·]*)  @@0,0,$
          901  +    <<- morphex(\3, ";S", ":[VCR]") or mbUnit(\3) or not spell(\3)
          902  +    -1>> "\2 "
          903  +    # Si “\3” est une unité de mesure, il manque un espace insécable. Si le nombre se rapporte au mot suivant, c’est aussi valable.
          904  +__[s]/unit(unit_nbsp_avant_unités3)__
          905  +    ((\d+) )([a-zA-Zµ][a-zA-Z0-9Ωℓ⁰¹²³⁴⁵⁶⁷⁸⁹/·]*)(?![’'])  @@0,0,$
          906  +    <<- (\2.__len__() > 4 and not spell(\3)) or morphex(\3, ";S", ":[VCR]") or mbUnit(\3)
          907  +    -1>> "\2 "
          908  +    # Si “\3” est une unité de mesure, il manque un espace insécable. Si le nombre se rapporte au mot suivant, c’est aussi valable.
          909  +
          910  +TEST: Ça a duré {{3}}µs
          911  +TEST: Ça a duré {{3,5 }}µs
          912  +TEST: il y en a {{3 }}m²
          913  +TEST: il a fait {{10}}%
          914  +TEST: Ça coûte {{13,4}}¥.
          915  +TEST: il mesure {{30,3 }}cm
          916  +TEST: il est monté à {{18 }}%
          917  +TEST: une température de {{22,4 }}°C
          918  +TEST: il en veut {{18}}kg
          919  +TEST: il me le propose pour {{243 }}gCO2/kWh
          920  +TEST: il me le propose pour {{243,4 }}gCO2/kWh
          921  +TEST: en l’an 2000 Urgondorletroll eut une idée
          922  +TEST: 1998 s’annonce grandiose.
          923  +TEST: il y en a 3,43 milliards.
          924  +TEST: je veux 200 euros.
          925  +
   924    926   
   925    927   !!!! Grands nombres                                                                                 
   926    928   
   927    929   __[s]/num(num_grand_nombre_soudé)__
   928         -    \d\d\d\d\d+
   929         -    <<- not before("NF[  -]?(C|E|P|Q|X|Z|EN(?:[  -]ISO|)) *") ->> =formatNumber(\0)                 # Formatage des grands nombres.
          930  +    \d\d\d\d+
          931  +    <<- not before("NF[  -]?(C|E|P|Q|X|Z|EN(?:[  -]ISO|)) *$") >>>
          932  +    <<- \0.__len__() > 4 ->> =formatNumber(\0)                                                      # Formatage des grands nombres.
          933  +    <<- __else__
          934  +        and after("^(?:,\d+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹])")
          935  +        or after(r"^[   ]*(?:[kcmµn]?(?:[slgJKΩ]|m[²³]?|Wh?|Hz|dB)|[%‰€$£¥Åℓhj]|min|°C|℃)(?![\w’'])")
          936  +    ->> =formatNumber(\0)                                                                           # Formatage des grands nombres.
          937  +
          938  +__[s]/num(num_nombre_quatre_chiffres)__
          939  +    (?<!,)(\d\d\d\d)[  ]([a-zA-Zµ][a-zA-Z0-9Ωℓ⁰¹²³⁴⁵⁶⁷⁸⁹/·]*) @@0,$
          940  +    <<- morphex(\2, ";S", ":[VCR]") or mbUnit(\2) -1>> =formatNumber(\1)                            # Formatage des grands nombres
   930    941   
   931    942   TEST: {{12345}}                               ->> 12 345
   932    943   TEST: {{123456}}                              ->> 123 456
   933    944   TEST: {{1234567}}                             ->> 1 234 567
   934    945   TEST: {{12345678}}                            ->> 12 345 678
   935    946   TEST: {{023456789}}                           ->> 023 456 789|023 45 67 89|02 345 67 89
   936    947   TEST: {{0234567890}}                          ->> 0 234 567 890|02 34 56 78 90|023 456 78 90|0234 567-890
   937    948   TEST: {{12345678901}}                         ->> 12 345 678 901
   938    949   TEST: {{112798931830912839}}                  ->> 112 798 931 830 912 839
   939    950   TEST: {{2308393909}}                          ->> 2 308 393 909|2308 393-909
          951  +TEST: {{2024}},9                                ->> 2 024
          952  +TEST: {{4000}} Å                                ->> 4 000
          953  +TEST: {{3240}} µA                               ->> 3 240
   940    954   
   941    955   
   942    956   __[s>(num_grand_nombre_avec_points)__
   943    957       \d\d?\d?(?:[.]\d\d\d)+(?![0-9])
   944    958       <<- option("num") ->> =\0.replace(".", " ")                                                     # Grands nombres : utilisez des espaces insécables plutôt que des points.
   945         -    <<- ~>> =\0.replace(".", "")
          959  +    <<- ~>> =\0.replace(".", "_")
   946    960   
   947    961   TEST: il cumule {{200.000.000}} de pertes sèches
   948    962   
   949    963   
   950    964   __[s](num_grand_nombre_avec_espaces)__
   951    965       \d\d?\d?(?: \d\d\d)+
   952    966       <<- option("num") ->> =\0.replace(" ", " ")                                                     # Grands nombres : utilisez des espaces insécables.
   953         -    <<- ~>> =\0.replace(" ", "")
          967  +    <<- ~>> =\0.replace(" ", "_")
   954    968   
   955    969   TEST: Il a perdu {{20 000}} euros à la Bourse en un seul mois.
   956    970   
   957    971   
   958    972   
   959    973   !!!! Dates                                                                                          
   960    974