Comment: | merge trunk |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | gcerw |
Files: | files | file ages | folders |
SHA3-256: |
2f2ddcbb2081e244fe2fc25e83e0101b |
User & Date: | olr on 2020-04-09 20:27:44 |
Other Links: | branch diff | manifest | tags |
2020-04-17
| ||
17:40 | merge trunk (from previous checkin: mise à jour du dictionnaire) check-in: 193d73c90f user: olr tags: gcerw | |
2020-04-09
| ||
20:27 | merge trunk check-in: 2f2ddcbb20 user: olr tags: gcerw | |
20:22 | [graphspell] suggestions: chai -> j’sais check-in: 84fc065208 user: olr tags: trunk, graphspell | |
2020-04-08
| ||
18:29 | [core][graphspell] move lexicographer to graphspell check-in: 66fb137996 user: olr tags: core, graphspell, gcerw | |
Modified gc_lang/fr/rules.grx from [6a36715a8b] to [d3143fc704].
︙ | ︙ | |||
1465 1466 1467 1468 1469 1470 1471 | TEST: __ocr__ À ce compte-{{Ci}}, on n’en viendra jamais à bout. TEST: __ocr__ Quelques-{{Uns}} sont incapables d’y parvenir. ## Mots inconnus du dictionnaire __[s]/ocr(mots_composés_inconnus)__ \w+-\w+ | | > | 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 | TEST: __ocr__ À ce compte-{{Ci}}, on n’en viendra jamais à bout. TEST: __ocr__ Quelques-{{Uns}} sont incapables d’y parvenir. ## Mots inconnus du dictionnaire __[s]/ocr(mots_composés_inconnus)__ \w+-\w+ <<- not spell(\0) and not re.search("(?i)-(?:je|tu|on|nous|vous|ie?ls?|elles?|ce|là|ci|les?|la|leur|une?s|moi|toi|en|y)$", \0) ->> _ # Erreur de numérisation ? Mot composé inconnu du dictionnaire. TEST: __ocr__ c’est du {{base-bal}}] TEST: __ocr__ cet homme-là est corrompu. TEST: __ocr__ cette femme-là est revenue nous dire ce qu’elle pensait de nous. TEST: __ocr__ Est-ce le bon moment pour nous ennuyer avec ça ? TEST: __ocr__ Alors, dis-moi, comment triompher de tous les empires de la Terre ? TEST: __ocr__ prenez-en. ## Trait d’union conditionnel __[i]/ocr(tu_trait_union_conditionnel)__ ({w1})‑({w1}) @@0,$ <<- ->> \1\2|\1-\2 # Trait d’union conditionnel. Erreur de numérisation ? |
︙ | ︙ | |||
1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 | <<- __else__ ->> le|la # Erreur de numérisation ? TEST: __ocr__ avec {{1e}} chien du policier TEST: __ocr__ il le jura sur {{1a}} tête de sa mère TEST: __ocr__ {{1c}} chat du voinsin est idiot TEST: __ocr__ {{[e}} chien a faim __[i]/ocr(ocr_les)__ [1[\]][ea]s <<- ->> les # Erreur de numérisation ? TEST: __ocr__ {{1es}} jours clairs TEST: __ocr__ {{[as}} amis sont présents | > > > > > > > > > > > > | 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 | <<- __else__ ->> le|la # Erreur de numérisation ? TEST: __ocr__ avec {{1e}} chien du policier TEST: __ocr__ il le jura sur {{1a}} tête de sa mère TEST: __ocr__ {{1c}} chat du voinsin est idiot TEST: __ocr__ {{[e}} chien a faim __[i]/conf(conf_1e_1a_1es)__ [1[\]][ea]s? <<- \0.endswith("e") and (morph(word(1), ":(?:N.*:[me]:[si]|V)", ":G") or morph(word(-1), ">ne/")) ->> le # Erreur de frappe ? <<- \0.endswith("a") and (morph(word(1), ":(?:N.*:[fe]:[si]|V)", ":G") or morph(word(-1), ">ne/")) ->> la # Erreur de frappe ? <<- \0.endswith("es") and (morph(word(1), ":(?:N.*:[pi]|V)", ":G") or morph(word(-1), ">ne/")) ->> les # Erreur de frappe ? TEST: {{1e}} marginal ->> le TEST: {{1a}} venue des problèmes ->> la TEST: {{1es}} enfants sont au lit ->> les TEST: Je… ne {{1e}}… crois pas… __[i]/ocr(ocr_les)__ [1[\]][ea]s <<- ->> les # Erreur de numérisation ? TEST: __ocr__ {{1es}} jours clairs TEST: __ocr__ {{[as}} amis sont présents |
︙ | ︙ | |||
13394 13395 13396 13397 13398 13399 13400 13401 13402 13403 13404 13405 13406 13407 | #<end> #@:[VR]¬[NAP] #, @¬:[NA] #[ne|n’|me|m’|te|t’|se|s’|le|la|l’|les|leur|leur|mon|ma|ta|sa|notre|votre|mes|tes|ses|ce|cet|cette|ces|je|j’|tu|il|on|nous|vous|ils|iels|ça|ceci|cela|c’|ç’|chaque] __simplication_substantifs__ abus [de|d’] pouvoir >accusé [de|d’] reception >acte [de|d’] [baptême|caution|cautionnement|cession|contrition|licitation|mariage|naissance|notoriété|propriété|quittance|reconnaissance|répudiation|vente] >acte d’ [achat|engagement] >acte [de|d’] gestion ?courante¿ >acte [de|d’] procédure ?pénale¿ >acte d’ état ?civil¿ | > | 13407 13408 13409 13410 13411 13412 13413 13414 13415 13416 13417 13418 13419 13420 13421 | #<end> #@:[VR]¬[NAP] #, @¬:[NA] #[ne|n’|me|m’|te|t’|se|s’|le|la|l’|les|leur|leur|mon|ma|ta|sa|notre|votre|mes|tes|ses|ce|cet|cette|ces|je|j’|tu|il|on|nous|vous|ils|iels|ça|ceci|cela|c’|ç’|chaque] __simplication_substantifs__ abus [de|d’] position dominante abus [de|d’] pouvoir >accusé [de|d’] reception >acte [de|d’] [baptême|caution|cautionnement|cession|contrition|licitation|mariage|naissance|notoriété|propriété|quittance|reconnaissance|répudiation|vente] >acte d’ [achat|engagement] >acte [de|d’] gestion ?courante¿ >acte [de|d’] procédure ?pénale¿ >acte d’ état ?civil¿ |
︙ | ︙ | |||
13444 13445 13446 13447 13448 13449 13450 13451 13452 13453 13454 13455 13456 13457 | [>boîte|>boite] à [gants|outils|sardines] >bombe à [eau|fission|fusion|fragmentation|hydrogène|neutrons|retardement] >bombe à rayonnement renforcé >bonnet [de|d’] nuit >bon à rien >boucle d’ >oreille bras d’ honneur >brave ?d’¿ entre les braves >brosse à [>dent|reluire] >bureau [de|d’] [tabac|vote] >cabinet [de|d’] [toilette|travail] >camp [de|d’] [concentration|internement|rééducation|vacances] >canne à [pêche|sucre] >canon à eau | > | 13458 13459 13460 13461 13462 13463 13464 13465 13466 13467 13468 13469 13470 13471 13472 | [>boîte|>boite] à [gants|outils|sardines] >bombe à [eau|fission|fusion|fragmentation|hydrogène|neutrons|retardement] >bombe à rayonnement renforcé >bonnet [de|d’] nuit >bon à rien >boucle d’ >oreille bras d’ honneur bras [de|d’] fer >brave ?d’¿ entre les braves >brosse à [>dent|reluire] >bureau [de|d’] [tabac|vote] >cabinet [de|d’] [toilette|travail] >camp [de|d’] [concentration|internement|rééducation|vacances] >canne à [pêche|sucre] >canon à eau |
︙ | ︙ | |||
13492 13493 13494 13495 13496 13497 13498 | >compagnon [de|d’] route >complémentaire santé [composante+s] alpha >compte à rebours concours [de|d’] beauté >condamné à mort >conférence [de|d’] presse | < < < < < < < | 13507 13508 13509 13510 13511 13512 13513 13514 13515 13516 13517 13518 13519 13520 13521 13522 13523 13524 13525 13526 13527 13528 13529 13530 13531 13532 13533 13534 13535 13536 13537 13538 13539 13540 13541 13542 13543 13544 13545 13546 13547 13548 13549 13550 | >compagnon [de|d’] route >complémentaire santé [composante+s] alpha >compte à rebours concours [de|d’] beauté >condamné à mort >conférence [de|d’] presse >conseiller d’ orientation [scolaire|professionnelle] >contrôle [de|d’] routine >convention [récepteur|générateur] >coque [de|d’] noix >corbeille à >pain >coup [de|d’] [avance|balai|barre|bâton|bec|bélier|bite|blues|bol|botte|boule|boutoir|cœur|chaud|coude|couteau|dé|dent|déprime|éclat|épaule|épée|estoc|État|foudre|fil|froid|genou|grâce|>griffe|grisou|gueule|hache|hanche|jarnac|jeune|jus|klaxon|main|maître|maitre|marteau|massue|nostalgie|œil|patte|pied|poignard|poing|poker|pouce|pute|queue|rabot|rein|sabre|sabot|sang|savate|semonce|sifflet|soleil|surin|tête|théâtre|tonnerre|trique|torchon|vent|vieux] >coup [de|d’] baguette ?magique¿ >coup d’ épée dans l’ eau >coup d’ un soir >coup du sort >coureur [de|d’] >jupon >courroie [de|d’] transmission >course contre la montre >crayon à [lèvres|sourcils] >cour d’ assises [>coût|>cout] [de|d’] revient >couteau à cran d’ arrêt >crise de >nerf >cuillère à [café|soupe] >cure [de|d’] [désintoxication|désintox] >déclaration sur l’ honneur >délai [de|d’] [attente|carence|connexion|prescription|préavis|rétraction|rigueur] >demande d’ asile >descente aux [enfers|flambeaux] [>dîner|>diner] aux chandelles >digne [de|d’] [confiance|foi] >digne [de|d’] ce nom >don en nature >donneur [de|d’] >leçon >dossier [de|d’] presse >eau [de|d’] [bouleau|bleuet|chaux|coco|javel|jouvence|mer|parfum|pluie|seltz|source|vie] >eau [de|d’] noix [de|d’] coco >économie [de|d’] >bout [de|d’] >chandelle >éditeur [de|d’] presse >effet [de|d’] bord >élément à charge >emploi du temps |
︙ | ︙ | |||
13593 13594 13595 13596 13597 13598 13599 | >gilet [de|d’] sauvetage >grain [de|d’] [blé|maïs|sable] >grève [de|d’] la faim >groupe [de|d’] [discussion|parole|prière|pression|travail] >guerre éclair >hall d’ entrée >harcèlement [de|d’] rue | < | 13601 13602 13603 13604 13605 13606 13607 13608 13609 13610 13611 13612 13613 13614 | >gilet [de|d’] sauvetage >grain [de|d’] [blé|maïs|sable] >grève [de|d’] la faim >groupe [de|d’] [discussion|parole|prière|pression|travail] >guerre éclair >hall d’ entrée >harcèlement [de|d’] rue >heure [sup|sup’] >histoire à dormir debout >histoire avec un [grand|petit] h >homme [de|d’] [affaires|armes|confiance|exception|État|Église|honneur|lettres|loi|main|paille] >homme d’ âge mûr >homme à poigne >homme à tout faire |
︙ | ︙ | |||
13617 13618 13619 13620 13621 13622 13623 13624 13625 13626 13627 13628 13629 13630 13631 13632 | >journal [de|d’] bord >juge d’ instruction >langue [de|d’] bois >lame [de|d’] fond >lettre [de|d’] recommandation >lampe à [huile|pétrole] >lampe [de|d’] chevet >lavage [de|d’] cerveau >liaison sans lendemain >lime à >ongle >liste d’ attente >lit à baldaquin >lit [de|d’] camp >livraison à domicile >livre [de|d’] [poche|chevet] >livret d’ épargne ?[bancaire|populaire|salariale]¿ | > > | 13624 13625 13626 13627 13628 13629 13630 13631 13632 13633 13634 13635 13636 13637 13638 13639 13640 13641 | >journal [de|d’] bord >juge d’ instruction >langue [de|d’] bois >lame [de|d’] fond >lettre [de|d’] recommandation >lampe à [huile|pétrole] >lampe [de|d’] chevet >langue [de|d’] bois >lavage [de|d’] cerveau >liaison sans lendemain >ligne [de|d’] mire >lime à >ongle >liste d’ attente >lit à baldaquin >lit [de|d’] camp >livraison à domicile >livre [de|d’] [poche|chevet] >livret d’ épargne ?[bancaire|populaire|salariale]¿ |
︙ | ︙ | |||
13664 13665 13666 13667 13668 13669 13670 | >moteur [>essence|>diésel|>diesel] >motion [de|d’] [blâme|censure|défiance] >moule à [>gaufre|>gâteau|brioche|manqué|savarin|charlotte|tarte] >moulin à [café|eau|paroles|poivre|prières|vent] noix [de|d’] [cajou|pécan|pecan|coco|lavage|muscade|veau|macadamia] >nounou à domicile >nourrice à domicile | < < < < < | | 13673 13674 13675 13676 13677 13678 13679 13680 13681 13682 13683 13684 13685 13686 13687 13688 13689 13690 13691 13692 13693 | >moteur [>essence|>diésel|>diesel] >motion [de|d’] [blâme|censure|défiance] >moule à [>gaufre|>gâteau|brioche|manqué|savarin|charlotte|tarte] >moulin à [café|eau|paroles|poivre|prières|vent] noix [de|d’] [cajou|pécan|pecan|coco|lavage|muscade|veau|macadamia] >nounou à domicile >nourrice à domicile >occasion en or ?massif¿ >oiseau [de|d’] [malheur|nuit|proie] >oiseau [de|d’] mauvais augure >onde [de|d’] choc orge [perlé|mondé|carré] >nuit [de|d’] noces >pain [de|d’] mie >panier à linge >piano à queue >papier à [>lettre|musique] >parc d’ attractions >parole en l’ air >partie [de|d’] jambes en l’ air >passage à tabac |
︙ | ︙ | |||
13715 13716 13717 13718 13719 13720 13721 | prix [de|d’] revient quelqu’un d’ autre >question [de|d’] vie ou [de|d’] mort >rapport [de|d’] force >rat [de|d’] bibliothèque >réaction en [chaîne|chaine] région Grand Est | < | < < < < < | 13719 13720 13721 13722 13723 13724 13725 13726 13727 13728 13729 13730 13731 13732 13733 13734 13735 13736 13737 13738 13739 13740 13741 13742 13743 13744 13745 13746 13747 13748 13749 13750 13751 13752 13753 13754 13755 13756 13757 13758 13759 13760 13761 13762 13763 13764 13765 13766 13767 13768 13769 13770 13771 13772 13773 13774 13775 13776 13777 13778 13779 | prix [de|d’] revient quelqu’un d’ autre >question [de|d’] vie ou [de|d’] mort >rapport [de|d’] force >rat [de|d’] bibliothèque >réaction en [chaîne|chaine] région Grand Est >règlement [de|d’] comptes >sourd comme un pot >requête en nullité >requête en non [conciliation|inscription|lieu] >requête en non révocation [de|d’] sursis >responsable qualité [>resto|>restau] u >retour à la case départ >rivière à sec >robe [de|d’] [chambre|soirée] >robe du soir >robe sans >manche >roman à l’ eau [de|d’] rose >roue [avant|arrière] >rouge à lèvres >roulement à billes [>ru|>ruisseau] à sec >sac à [bandoulière|dos|main|langer|merde|foutre] >sac [de|d’] [couchage|sport|voyage] >salle à manger >salle [de|d’] [attente|>bain|conférence|lecture|séjour|vente] >sclérose en plaques [secret+s] défense >sel [de|d’] [aluminium|ammonium|mer] >serpent à sonnette >service d’ ordre >seuil [de|d’] tolérance >seuil [de|d’] tolérance à la douleur >silo à [>grains|blé] >soldat d’ élite >sonnette d’ alarme >sortie [de|d’] secours >soue à >cochonne >système d’ exploitation >système D >tableau [de|d’] chasse >table à repasser >table [de|d’] chevet >taille *NUM tas [de|d’] ferraille ?rouillée¿ >talon >aiguille taux [de|d’] [abstention|absorption|alcool|alphabétisation|endettement|inflation|intérêt|imposition|occupation|ouverture|œstrogène|urée|usure|change|cholestérol|cholesterol|glycémie|fécondité|participation|testostérone|TVA] >témoin à charge tenants et aboutissants >ténor du barreau >tête à claques >tête [de|d’] [linotte|déterré|déterrée|déterrés|déterrées|mule] >terrain à découvert >tigre à dents [de|d’] sabre >tigre [de|d’] papier ?mâché¿ >tir [de|d’] barrage >tiret d’ incise >tireur d’ élite >titre [de|d’] [noblesse|propriété|séjour] |
︙ | ︙ | |||
13811 13812 13813 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 13826 13827 13828 | >volée [de|d’] bois vert >voiture [de|d’] location >zone [de|d’] confort >zone [de|d’] transit ?principal¿ <<- ~2:0>> * <<- =>> =select(\1, ":N") >court sur pattes [daté+ses] du [1er|1ᵉʳ|1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10|11|12|13|14|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31] {mois} ?[prochain|passé|dernier|~^[0-9]{2,5}$]¿ >fou de rage ?[contenue|retenue]¿ >mort de trouille <<- ~2:0>> * [>homme|>femme|>cinéaste|>politicien|>acteur|>auteur|>sculpteur|>compositeur|>musicien|>groupe|>romancier|>peintre|>photographe|>sportif|>philosophe|>intellectuel|>polémiste] à succès [>homme|>femme] d’ >affaire à succès <<- ~-2:0>> * [>bébé|fils|>fille|>enfant|>neveu|>nièce|>frère|>sœur] [de|d’] $:B [mois|ans] | > > > > > > > > > > > > > > > > > > > > | 13809 13810 13811 13812 13813 13814 13815 13816 13817 13818 13819 13820 13821 13822 13823 13824 13825 13826 13827 13828 13829 13830 13831 13832 13833 13834 13835 13836 13837 13838 13839 13840 13841 13842 13843 13844 13845 13846 | >volée [de|d’] bois vert >voiture [de|d’] location >zone [de|d’] confort >zone [de|d’] transit ?principal¿ <<- ~2:0>> * <<- =>> =select(\1, ":N") >brut [de|d’] décoffrage >con comme la lune >con comme un balai >con comme une valise sans >poignée >corvéable à merci >court sur pattes [cousu+ses] [main] [cousu+ses] [de|d’] fil blanc [daté+ses] du [1er|1ᵉʳ|1|01|2|02|3|03|4|04|5|05|6|06|7|07|8|08|9|09|10|11|12|13|14|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31] {mois} ?[prochain|passé|dernier|~^[0-9]{2,5}$]¿ >droit comme un i >fou de rage ?[contenue|retenue]¿ >haut comme [trois|3] pommes >mort de trouille >nu comme un ver >nu comme des vers >nul et non >avenu >noir comme la nuit >noir comme une nuit sans lune [réglé+ses] comme du papier à musique [remis+es] à plat >sain [de|d’] [corps|esprit] >sain [de|d’] [corps|esprit] et [de|d’] [corps|esprit] >têtu comme une [bourrique|mule] >têtu comme un [âne|bourriquot|mulet] <<- ~2:0>> * [>homme|>femme|>cinéaste|>politicien|>acteur|>auteur|>sculpteur|>compositeur|>musicien|>groupe|>romancier|>peintre|>photographe|>sportif|>philosophe|>intellectuel|>polémiste] à succès [>homme|>femme] d’ >affaire à succès <<- ~-2:0>> * [>bébé|fils|>fille|>enfant|>neveu|>nièce|>frère|>sœur] [de|d’] $:B [mois|ans] |
︙ | ︙ | |||
19704 19705 19706 19707 19708 19709 19710 19711 19712 19713 19714 19715 19716 19717 | sous peine [de|d’] ?[le|l’|la|leur|les|nous|vous|lui]¿ ~..ée?s?$ <<- /infi/ analyse(\-1, ":Q", ":M") --1>> =suggVerbInfi(\-1) # Après “sous peine de”, le verbe devrait être à l’infinitif. TEST: afin de leur {{percée}} une ouverture TEST: en train de {{percées}} TEST: elle tricha à seule fin d’{{allée}} à l’université TEST: ils sont à même de {{trouvé}} la bonne réponse TEST: Nous étions en train de {{trouvé}} une solution à ces soucis récurrents. TEST: il a l’air de {{pensée}} qu’on est des crétins TEST: tu avais raison de {{pensée}} ça TEST: nous eûmes la chance de la {{trouvée}} facilement TEST: avoir raison de la {{considérée}} ainsi TEST: vous avez le droit de lui {{craché}} à la gueule TEST: ils ont vite fait de nous {{poussée}} à bout | > | 19722 19723 19724 19725 19726 19727 19728 19729 19730 19731 19732 19733 19734 19735 19736 | sous peine [de|d’] ?[le|l’|la|leur|les|nous|vous|lui]¿ ~..ée?s?$ <<- /infi/ analyse(\-1, ":Q", ":M") --1>> =suggVerbInfi(\-1) # Après “sous peine de”, le verbe devrait être à l’infinitif. TEST: afin de leur {{percée}} une ouverture TEST: en train de {{percées}} TEST: elle tricha à seule fin d’{{allée}} à l’université TEST: ils sont à même de {{trouvé}} la bonne réponse TEST: ces explications sont plus à même de les {{touchés}} TEST: Nous étions en train de {{trouvé}} une solution à ces soucis récurrents. TEST: il a l’air de {{pensée}} qu’on est des crétins TEST: tu avais raison de {{pensée}} ça TEST: nous eûmes la chance de la {{trouvée}} facilement TEST: avoir raison de la {{considérée}} ainsi TEST: vous avez le droit de lui {{craché}} à la gueule TEST: ils ont vite fait de nous {{poussée}} à bout |
︙ | ︙ | |||
23796 23797 23798 23799 23800 23801 23802 | [ne|n’] [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:(?:[123][sp]|P|Y)¬:X [ne|n’] [le|la|l’|les] [lui|leur|en|y] @:(?:[123][sp]|P|Y)¬:X [ne|n’] [lui|leur] en @:(?:[123][sp]|P|Y)¬:X <<- ~1:-2>> * __purge_proposition_subordonnée__ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 23815 23816 23817 23818 23819 23820 23821 23822 23823 23824 23825 23826 23827 23828 23829 23830 23831 23832 23833 23834 23835 23836 23837 23838 23839 23840 23841 23842 23843 23844 23845 23846 23847 23848 23849 23850 23851 23852 23853 23854 23855 23856 | [ne|n’] [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] @:(?:[123][sp]|P|Y)¬:X [ne|n’] [le|la|l’|les] [lui|leur|en|y] @:(?:[123][sp]|P|Y)¬:X [ne|n’] [lui|leur] en @:(?:[123][sp]|P|Y)¬:X <<- ~1:-2>> * __purge_proposition_subordonnée__ [que|qu’] je ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ $:1s @:[123][sp] [que|qu’] je ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] $:1s @:[123][sp] [que|qu’] je ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] $:1s @:[123][sp] [que|qu’] je ?[ne|n’]¿ [lui|leur|y] en $:1s @:[123][sp] [que|qu’] tu ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ $:2s @:[123][sp] [que|qu’] tu ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] $:2s @:[123][sp] [que|qu’] tu ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] $:2s @:[123][sp] [que|qu’] tu ?[ne|n’]¿ [lui|leur|y] en $:2s @:[123][sp] [que|qu’] [il|elle|on|iel|$:M] ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ $:3s @:[123][sp] [que|qu’] [il|elle|on|iel|$:M] ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] $:3s @:[123][sp] [que|qu’] [il|elle|on|iel|$:M] ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] $:3s @:[123][sp] [que|qu’] [il|elle|on|iel|$:M] ?[ne|n’]¿ [lui|leur|y] en $:3s @:[123][sp] [que|qu’] nous ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ $:1p @:[123][sp] [que|qu’] nous ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] $:1p @:[123][sp] [que|qu’] nous ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] $:1p @:[123][sp] [que|qu’] nous ?[ne|n’]¿ [lui|leur|y] en $:1p @:[123][sp] [que|qu’] vous ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ $:2p @:[123][sp] [que|qu’] vous ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] $:2p @:[123][sp] [que|qu’] vous ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] $:2p @:[123][sp] [que|qu’] vous ?[ne|n’]¿ [lui|leur|y] en $:2p @:[123][sp] [que|qu’] [ils|elles|iels] ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ $:3p @:[123][sp] [que|qu’] [ils|elles|iels] ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] $:3p @:[123][sp] [que|qu’] [ils|elles|iels] ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] $:3p @:[123][sp] [que|qu’] [ils|elles|iels] ?[ne|n’]¿ [lui|leur|y] en $:3p @:[123][sp] [que|qu’] $:M et $:M ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ $:3p @:[123][sp] [que|qu’] $:M et $:M ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] $:3p @:[123][sp] [que|qu’] $:M et $:M ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] $:3p @:[123][sp] [que|qu’] $:M et $:M ?[ne|n’]¿ [lui|leur|y] en $:3p @:[123][sp] <<- morph(<1, ":N", ":V") ~1:-2>> * __tag_verbe_infinitif_sujet__ [<start>|,|(] [ne|n’] ?[en|y]¿ ?presque¿ [pas|rien|guère|point|jamais|plus] [<start>|,|(] [ne|n’] $:Y [<start>|,|(] $:Y |
︙ | ︙ | |||
24896 24897 24898 24899 24900 24901 24902 24903 24904 24905 24906 24907 24908 24909 | TEST: certains hommes {{marchande}} sans cesse TEST: tu sais, certains filtres {{donnes}} de mauvais résultats TEST: certaines femmes {{danse}} beaucoup TEST: tu sais, certaines danses {{dérive}} d’autres TEST: certaines demandes qui {{donne}} le tournis. TEST: plusieurs personnes {{devienne}} des robots TEST: plusieurs pressions qui ne {{donne}} pas les résultats attendus. TEST: l’écart entre les riches et les pauvres n’était pas si grand. TEST: Les grands hommes politiques TEST: les charmantes petites mines de toutes les jeunes filles TEST: Les pauvres petites dames sont folles TEST: Sauf que l’un comme l’autre avaient dû y renoncer. TEST: L’un comme l’autre devaient y renoncer. TEST: Les écrivaines Marie Darrieussecq et Annie Ernaux | > | 24915 24916 24917 24918 24919 24920 24921 24922 24923 24924 24925 24926 24927 24928 24929 | TEST: certains hommes {{marchande}} sans cesse TEST: tu sais, certains filtres {{donnes}} de mauvais résultats TEST: certaines femmes {{danse}} beaucoup TEST: tu sais, certaines danses {{dérive}} d’autres TEST: certaines demandes qui {{donne}} le tournis. TEST: plusieurs personnes {{devienne}} des robots TEST: plusieurs pressions qui ne {{donne}} pas les résultats attendus. TEST: les invités que tu as servis {{outrepasse}} leur droit TEST: l’écart entre les riches et les pauvres n’était pas si grand. TEST: Les grands hommes politiques TEST: les charmantes petites mines de toutes les jeunes filles TEST: Les pauvres petites dames sont folles TEST: Sauf que l’un comme l’autre avaient dû y renoncer. TEST: L’un comme l’autre devaient y renoncer. TEST: Les écrivaines Marie Darrieussecq et Annie Ernaux |
︙ | ︙ |
Modified gc_lang/fr/webext/background.js from [6e8ab066e7] to [3958c7eb7d].
︙ | ︙ | |||
338 339 340 341 342 343 344 | browser.contextMenus.create({ id: "grammar_checker_page", title: "Analyser la page", contexts: ["all"] }); browser.contextMenus.create({ id: "separator_tools", type: "separator", contexts: ["all"] }); // Tools browser.contextMenus.create({ id: "conjugueur_tab", title: "Conjugueur [onglet]", contexts: ["all"] }); browser.contextMenus.create({ id: "conjugueur_window", title: "Conjugueur [fenêtre]", contexts: ["all"] }); //browser.contextMenus.create({ id: "dictionaries", title: "Dictionnaires", contexts: ["all"] }); browser.contextMenus.create({ id: "lexicon_editor", title: "Éditeur lexical", contexts: ["all"] }); | < < | 338 339 340 341 342 343 344 345 346 347 348 349 350 351 | browser.contextMenus.create({ id: "grammar_checker_page", title: "Analyser la page", contexts: ["all"] }); browser.contextMenus.create({ id: "separator_tools", type: "separator", contexts: ["all"] }); // Tools browser.contextMenus.create({ id: "conjugueur_tab", title: "Conjugueur [onglet]", contexts: ["all"] }); browser.contextMenus.create({ id: "conjugueur_window", title: "Conjugueur [fenêtre]", contexts: ["all"] }); //browser.contextMenus.create({ id: "dictionaries", title: "Dictionnaires", contexts: ["all"] }); browser.contextMenus.create({ id: "lexicon_editor", title: "Éditeur lexical", contexts: ["all"] }); browser.contextMenus.onClicked.addListener(function (xInfo, xTab) { // xInfo = https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/contextMenus/OnClickData // xTab = https://developer.mozilla.org/en-US/Add-ons/WebExtensions/API/tabs/Tab // confusing: no way to get the node where we click?! switch (xInfo.menuItemId) { |
︙ | ︙ |
Modified gc_lang/fr/webext/content_scripts/init.js from [56313a38a6] to [d79ff895de].
︙ | ︙ | |||
170 171 172 173 174 175 176 177 178 179 180 181 182 183 | } return xNode; } catch (e) { showError(e); } }, getCaretPosition: function (xElement) { // JS awfulness again. // recepie from https://stackoverflow.com/questions/4811822/get-a-ranges-start-and-end-offsets-relative-to-its-parent-container let nCaretOffsetStart = 0; let nCaretOffsetEnd = 0; let xSelection = window.getSelection(); | > > > > > > > > > > > > > | 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 | } return xNode; } catch (e) { showError(e); } }, findOriginEditableNode: function (xNode) { if (!xNode) { return null; } if (xNode.tagName == "TEXTAREA" || xNode.tagName == "INPUT" || xNode.tagName == "IFRAME") { return xNode; } const findNode = function (xNode) { return (!xNode.parentNode.isContentEditable) ? xNode : findNode(xNode.parentNode); } return findNode(xNode); }, getCaretPosition: function (xElement) { // JS awfulness again. // recepie from https://stackoverflow.com/questions/4811822/get-a-ranges-start-and-end-offsets-relative-to-its-parent-container let nCaretOffsetStart = 0; let nCaretOffsetEnd = 0; let xSelection = window.getSelection(); |
︙ | ︙ | |||
274 275 276 277 278 279 280 281 282 283 284 285 286 287 | Send messages to the background object { sCommand: the action to perform oParam: parameters necessary for the execution of the action oInfo: all kind of informations that needs to be sent back (usually to know where to use the result) } */ parseAndSpellcheck: function (sText, sDestination) { this.xConnect.postMessage({ sCommand: "parseAndSpellcheck", oParam: { sText: sText, sCountry: "FR", bDebug: false, bContext: false }, oInfo: { sDestination: sDestination } }); }, | > > > > > > > | 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 | Send messages to the background object { sCommand: the action to perform oParam: parameters necessary for the execution of the action oInfo: all kind of informations that needs to be sent back (usually to know where to use the result) } */ checkConnection: function () { if (!this.xConnect) { this.xConnect = browser.runtime.connect({name: "content-script port"}); } }, parseAndSpellcheck: function (sText, sDestination) { this.xConnect.postMessage({ sCommand: "parseAndSpellcheck", oParam: { sText: sText, sCountry: "FR", bDebug: false, bContext: false }, oInfo: { sDestination: sDestination } }); }, |
︙ | ︙ | |||
396 397 398 399 400 401 402 | /* Commands received from the context menu (Context menu are initialized in background) */ // Grammar checker commands case "grammar_checker_editable": if (oGrammalecte.xRightClickedNode !== null) { | > | | 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 | /* Commands received from the context menu (Context menu are initialized in background) */ // Grammar checker commands case "grammar_checker_editable": if (oGrammalecte.xRightClickedNode !== null) { let xNode = oGrammalecte.findOriginEditableNode(oGrammalecte.xRightClickedNode); oGrammalecte.startGCPanel(xNode); } else { oGrammalecte.showMessage("Erreur. Le node sur lequel vous avez cliqué n’a pas pu être identifié. Sélectionnez le texte à corriger et relancez le correcteur via le menu contextuel."); } break; case "grammar_checker_page": oGrammalecte.startGCPanel(oGrammalecte.getPageText()); break; |
︙ | ︙ | |||
428 429 430 431 432 433 434 | /* Other messages from background */ listen2: function () { browser.runtime.onMessage.addListener(function (oMessage) { let {sActionRequest} = oMessage; | | | 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 | /* Other messages from background */ listen2: function () { browser.runtime.onMessage.addListener(function (oMessage) { let {sActionRequest} = oMessage; let xActiveNode = oGrammalecte.findOriginEditableNode(document.activeElement); switch (sActionRequest) { /* Commands received from the keyboard (shortcuts) */ case "shortcutGrammarChecker": if (xActiveNode && (xActiveNode.tagName == "TEXTAREA" || xActiveNode.tagName == "INPUT" || xActiveNode.isContentEditable)) { oGrammalecte.startGCPanel(xActiveNode); |
︙ | ︙ |
Modified gc_lang/fr/webext/content_scripts/menu.css from [caed9e4799] to [1d3547cd1d].
1 2 3 4 5 6 7 8 9 10 | /* CSS Button for Grammalecte */ div.grammalecte_menu_main_button { all: initial; position: absolute; box-sizing: border-box; display: none; | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | /* CSS Button for Grammalecte */ div.grammalecte_menu_main_button { all: initial; position: absolute; box-sizing: border-box; display: none; margin: -10px 0 0 -18px; width: 16px; height: 16px; background-color: hsla(210, 80%, 95%, .5); border: 3px solid hsla(210, 80%, 50%, .9); border-top: 3px solid hsla(210, 80%, 90%, .9); border-left: 3px solid hsla(210, 80%, 90%, .9); border-radius: 50%; |
︙ | ︙ |
Modified gc_lang/fr/webext/content_scripts/menu.js from [1c8166f9c8] to [60324e1838].
︙ | ︙ | |||
34 35 36 37 38 39 40 | if (oOptions.hasOwnProperty("ui_options")) { this._bTextArea = oOptions.ui_options.textarea; this._bEditableNode = oOptions.ui_options.editablenode; } } examineNode (xNode) { | | > > > > | > | | | | < | < | | | | > > > > > | < | < | < | > | | | > | 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | if (oOptions.hasOwnProperty("ui_options")) { this._bTextArea = oOptions.ui_options.textarea; this._bEditableNode = oOptions.ui_options.editablenode; } } examineNode (xNode) { if (!xNode || !xNode instanceof HTMLElement) { // not a node this.reject(); return; } if (xNode === this.xTextNode) { // same node -> possibly click for resizing -> move it this.move(); return; } if ( ( (xNode.tagName == "TEXTAREA" && this._bTextArea && xNode.getAttribute("spellcheck") !== "false") || (xNode.tagName == "IFRAME" && this._bIframe) ) && !(xNode.dataset.grammalecte_button && xNode.dataset.grammalecte_button == "false") ) { // textarea or iframe this.accept(xNode) } else if (xNode.isContentEditable && this._bEditableNode) { // editable node xNode = oGrammalecte.findOriginEditableNode(xNode); if ((xNode.tagName == "P" || xNode.tagName == "DIV") && !(xNode.dataset.grammalecte_button && xNode.dataset.grammalecte_button == "false")) { this.accept(xNode); } else { this.reject(); } } else { this.reject(); } } accept (xNode=null) { if (xNode) { this.xTextNode = xNode; this.xButton.style.display = "none"; // we hide it before showing it again to relaunch the animation this.move(); this.xButton.style.display = "block"; } } reject () { this.xTextNode = null; this.xButton.style.display = "none"; } move () { if (this.xTextNode) { let oCoord = oGrammalecte.getElementCoord(this.xTextNode); this.xButton.style.top = `${oCoord.bottom}px`; |
︙ | ︙ |
Modified gc_lang/fr/webext/content_scripts/panel_gc.js from [a5deafa9f3] to [6633e04592].
︙ | ︙ | |||
1048 1049 1050 1051 1052 1053 1054 | } write () { if (this.xNode !== null) { if (this.bResultInEvent) { const xEvent = new CustomEvent("GrammalecteResult", { detail: JSON.stringify({ sType: "text", sText: this.getText() }) }); this.xNode.dispatchEvent(xEvent); | | | < < | | | 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 | } write () { if (this.xNode !== null) { if (this.bResultInEvent) { const xEvent = new CustomEvent("GrammalecteResult", { detail: JSON.stringify({ sType: "text", sText: this.getText() }) }); this.xNode.dispatchEvent(xEvent); //console.log("[Grammalecte debug] Text sent to xNode via event:", xEvent.detail); } else if (this.bTextArea) { this.xNode.value = this.getText(); //console.log("[Grammalecte debug] text written in textarea:", this.getText()); } else if (this.bIframe) { //console.log(this.getText()); } else { this.eraseNodeContent(); this.dParagraph.forEach((val, key) => { this.xNode.appendChild(document.createTextNode(val.normalize("NFC"))); this.xNode.appendChild(document.createElement("br")); }); //console.log("[Grammalecte debug] text written in editable node:", this.getText()); } } else if (this.xResultNode !== null) { const xEvent = new CustomEvent("GrammalecteResult", { detail: JSON.stringify({ sType: "text", sText: this.getText() }) }); this.xResultNode.dispatchEvent(xEvent); //console.log("[Grammalecte debug] Text sent to xResultNode via event:", xEvent.detail); } } } |
Modified graphspell-js/char_player.js from [14e0bd8318] to [de17cf162c].
︙ | ︙ | |||
64 65 66 67 68 69 70 | aConsonant: new Set("bcçdfghjklmnñpqrstvwxzBCÇDFGHJKLMNÑPQRSTVWXZ"), aDouble: new Set("bcdfjklmnprstzBCDFJKLMNPRSTZ"), // letters that may be used twice successively // Similar chars d1to1: new Map([ | | | | | | | | | | | | 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | aConsonant: new Set("bcçdfghjklmnñpqrstvwxzBCÇDFGHJKLMNÑPQRSTVWXZ"), aDouble: new Set("bcdfjklmnprstzBCDFJKLMNPRSTZ"), // letters that may be used twice successively // Similar chars d1to1: new Map([ ["1", "1₁liîLIÎ"], ["2", "2₂zZ"], ["3", "3₃eéèêEÉÈÊ"], ["4", "4₄aàâAÀÂ"], ["5", "5₅sgSG"], ["6", "6₆bdgBDG"], ["7", "7₇ltLT"], ["8", "8₈bB"], ["9", "9₉gbdGBD"], ["0", "0₀oôOÔ"], ["a", "aAàÀâÂáÁäÄāĀæÆ"], ["A", "AaÀàÂâÁáÄäĀāÆæ"], ["à", "aAàÀâÂáÁäÄāĀæÆ"], ["À", "AaÀàÂâÁáÄäĀāÆæ"], ["â", "aAàÀâÂáÁäÄāĀæÆ"], ["Â", "AaÀàÂâÁáÄäĀāÆæ"], |
︙ | ︙ |
Modified graphspell-js/lexgraph_fr.js from [24e39bc231] to [0ffbdd29e0].
︙ | ︙ | |||
13 14 15 16 17 18 19 20 21 22 23 24 25 26 | ["bcp", "beaucoup"], ["ca", "ça"], ["cad", "c’est-à-dire"], ["cb", "combien|CB"], ["cdlt", "cordialement"], ["construirent", "construire|construisirent|construisent|construiront"], ["càd", "c’est-à-dire"], ["chui", "j’suis|je suis"], ["chuis", "j’suis|je suis"], ["dc", "de|donc"], ["done", "donc|donne"], ["email", "courriel|e-mail|émail"], ["emails", "courriels|e-mails"], ["ete", "êtes|été"], | > > | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | ["bcp", "beaucoup"], ["ca", "ça"], ["cad", "c’est-à-dire"], ["cb", "combien|CB"], ["cdlt", "cordialement"], ["construirent", "construire|construisirent|construisent|construiront"], ["càd", "c’est-à-dire"], ["chai", "j’sais|je sais"], ["chais", "j’sais|je sais"], ["chui", "j’suis|je suis"], ["chuis", "j’suis|je suis"], ["dc", "de|donc"], ["done", "donc|donne"], ["email", "courriel|e-mail|émail"], ["emails", "courriels|e-mails"], ["ete", "êtes|été"], |
︙ | ︙ |
Modified graphspell/char_player.py from [56f265c6d5] to [955184ee47].
︙ | ︙ | |||
51 52 53 54 55 56 57 | aConsonant = set("bcçdfghjklmnñpqrstvwxzBCÇDFGHJKLMNÑPQRSTVWXZ") aDouble = set("bcdfjklmnprstzBCDFJKLMNPRSTZ") # letters that may be used twice successively # Similar chars d1to1 = { | | | | | | | | | | | | 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | aConsonant = set("bcçdfghjklmnñpqrstvwxzBCÇDFGHJKLMNÑPQRSTVWXZ") aDouble = set("bcdfjklmnprstzBCDFJKLMNPRSTZ") # letters that may be used twice successively # Similar chars d1to1 = { "1": "1₁liîLIÎ", "2": "2₂zZ", "3": "3₃eéèêEÉÈÊ", "4": "4₄aàâAÀÂ", "5": "5₅sgSG", "6": "6₆bdgBDG", "7": "7₇ltLT", "8": "8₈bB", "9": "9₉gbdGBD", "0": "0₀oôOÔ", "a": "aAàÀâÂáÁäÄāĀæÆ", "A": "AaÀàÂâÁáÄäĀāÆæ", "à": "aAàÀâÂáÁäÄāĀæÆ", "À": "AaÀàÂâÁáÄäĀāÆæ", "â": "aAàÀâÂáÁäÄāĀæÆ", "Â": "AaÀàÂâÁáÄäĀāÆæ", |
︙ | ︙ |
Modified graphspell/lexgraph_fr.py from [358150069c] to [6233a231f3].
︙ | ︙ | |||
20 21 22 23 24 25 26 27 28 29 30 31 32 33 | "bcp": "beaucoup", "ca": "ça", "cad": "c’est-à-dire", "cb": "combien|CB", "cdlt": "cordialement", "construirent": "construire|construisirent|construisent|construiront", "càd": "c’est-à-dire", "chui": "j’suis|je suis", "chuis": "j’suis|je suis", "done": "donc|donne", "dc": "de|donc", "email": "courriel|e-mail|émail", "emails": "courriels|e-mails", "ete": "êtes|été", | > > | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | "bcp": "beaucoup", "ca": "ça", "cad": "c’est-à-dire", "cb": "combien|CB", "cdlt": "cordialement", "construirent": "construire|construisirent|construisent|construiront", "càd": "c’est-à-dire", "chai": "j’sais|je sais", "chais": "j’sais|je sais", "chui": "j’suis|je suis", "chuis": "j’suis|je suis", "done": "donc|donne", "dc": "de|donc", "email": "courriel|e-mail|émail", "emails": "courriels|e-mails", "ete": "êtes|été", |
︙ | ︙ |