Overview
Comment: | [fr] ajustements |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | fr |
Files: | files | file ages | folders |
SHA3-256: |
c8d5d254587ea7078484a37e20acdd0a |
User & Date: | olr on 2020-05-01 21:49:46 |
Other Links: | manifest | tags |
Context
2020-05-01
| ||
21:50 | [fr] màj: notes sur le français check-in: 4e9296499d user: olr tags: trunk, fr | |
21:49 | [fr] ajustements check-in: c8d5d25458 user: olr tags: trunk, fr | |
07:57 | [fr] ajustements, version 1.9.1 check-in: aa26883b27 user: olr tags: trunk, fr, v1.9.1 | |
Changes
Modified gc_lang/fr/rules.grx from [cbddb618fa] to [b7f755dbc5].
︙ | ︙ | |||
507 508 509 510 511 512 513 | \w[\w.-]*@\w[\w.-]*\w[.]\w\w+ <<- ~>> __MAIL__ # URL __<i>(p_URL)__ (?:ht|f)tps?://[\w./?&!%=+*"'@$#-]+ <<- ~>> __URL__ __<i](p_URL2)__ ((?:{w_1}[.])*)({w_2})([.](?:com|net|org|info|fr|ca|be|ch|i[ot]|co[.]uk|tk|jp|zh|ru|us|nl|xyz)) @@0,**,$ | | | | | 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 | \w[\w.-]*@\w[\w.-]*\w[.]\w\w+ <<- ~>> __MAIL__ # URL __<i>(p_URL)__ (?:ht|f)tps?://[\w./?&!%=+*"'@$#-]+ <<- ~>> __URL__ __<i](p_URL2)__ ((?:{w_1}[.])*)({w_2})([.](?:com|net|org|info|fr|ca|be|ch|i[ot]|co[.]uk|tk|jp|zh|ru|us|nl|xyz)) @@0,**,$ <<- ~1>> * <<- ~2>> =\2.capitalize() <<- ~3>> * # Numéro de chapitre __<i>(p_chapitre)__ ^\d+[.][\d.-]* <<- ~>> * # Numéro suivi de plusieurs espaces, considéré comme une numérotation de chapitre __<i>(p_num_chapitre)__ |
︙ | ︙ | |||
542 543 544 545 546 547 548 | (?:versions?|mises? [àa] jour) ([0-9]+(?:[.][0-9]+[a-z]?)*) @@$ <<- ~1>> * # sigles __<s>(p_sigle1)__ ([A-Z][.][A-Z][.](?:[A-Z][.])*) +[A-ZÉÀÂÊÎÈÔ] @@0 <<- ~1>> =\1.replace(".", "")+"." __[s>(p_sigle2)__ [a-zA-Z][.][a-zA-Z][.](?:[a-zA-Z][.])* | | | | | | | 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 | (?:versions?|mises? [àa] jour) ([0-9]+(?:[.][0-9]+[a-z]?)*) @@$ <<- ~1>> * # sigles __<s>(p_sigle1)__ ([A-Z][.][A-Z][.](?:[A-Z][.])*) +[A-ZÉÀÂÊÎÈÔ] @@0 <<- ~1>> =\1.replace(".", "")+"." __[s>(p_sigle2)__ [a-zA-Z][.][a-zA-Z][.](?:[a-zA-Z][.])* <<- not re.search("(?i)^(?:i\\.e\\.|s\\.[tv]\\.p\\.|e\\.g\\.|a\\.k\\.a\\.|c\\.q\\.f\\.d\\.|b\\.a\\.|n\\.b\\.)$", \0) >>> <<- \0.__len__() == 4 ->> =\0.replace(".", "").upper() + "|" + \0[0:2] + " " + \0[2:4] && Sigle. Il est recommandé d’ôter les points pour les sigles. (S’il s’agit d’un prénom et d’un nom, mettez un espace.)|https://fr.wikipedia.org/wiki/Sigle#Typographie <<- __else__ ->> =\0.replace(".", "").upper() && Sigle. Il est recommandé d’ôter les points pour les sigles.|https://fr.wikipedia.org/wiki/Sigle#Typographie <<- \0 != "b.a." ~>> =\0.replace(".", "_") __[s>(p_sigle3)__ J[.]-[A-Z][.] <<- ~>> =\0.replace(".", "").replace("-","") # Mr et MM __[s>(p_M_point)__ (M[.]) (?:[A-ZÉÈÎ]\w*|l[e'’]) @@0 <<- ~1>> Mr __[s>(p_MM_point)__ |
︙ | ︙ | |||
590 591 592 593 594 595 596 | "\d+ (m) " @@w <<- ~1>> _ # crochets __[s](p_points_suspension_entre_crochets)__ \[…\] <<- ~>> * __[s](p_mot_entre_crochets)__ \[({w_1})\] @@1 | | | | | | | 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 | "\d+ (m) " @@w <<- ~1>> _ # crochets __[s](p_points_suspension_entre_crochets)__ \[…\] <<- ~>> * __[s](p_mot_entre_crochets)__ \[({w_1})\] @@1 <<- \1.isdigit() ~>> * <<- __else__ and morph(\1, ":G") ~>> =" " + \1 + " " <<- __else__ and \1.isalpha() ~>> " _" # parenthèses __[s](points_suspension_entre_parenthèses)__ \(…\) <<- ->> […] && Pour indiquer une troncature de texte, on utilise usuellement des crochets. <<- ~>> * __<i>(p_préfixes_entre_parenthèses)__ " (\(r[eé]\))\w+" @@1 <<- ~1>> * TEST: par {{O.R.}} ->> OR|O. R. TEST: l’{{A.N.P.E.}} n’existe plus TEST: ce chien […] ne {{semblez}} pas en forme. |
︙ | ︙ | |||
632 633 634 635 636 637 638 639 640 641 642 643 644 645 | TEST: C’est dans le dossier D:\Data TEST: Dossier C:\Program Files (x86)\LibreOffice TEST: [1] Dossier à revoir. TEST: jusqu’à 12h47 TEST: Allons (re)voir ce film TEST: La figure 110 représente… !!! !!! !!! Processeur: balises HTML, LaTeX, Markdown !! !!! !!! | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 | TEST: C’est dans le dossier D:\Data TEST: Dossier C:\Program Files (x86)\LibreOffice TEST: [1] Dossier à revoir. TEST: jusqu’à 12h47 TEST: Allons (re)voir ce film TEST: La figure 110 représente… !! !! !!!! Apostrophes !! !! !! ## Apostrophe typographique __[i>/apos(apostrophe_typographique)!8__ ([ldsncjmç]|jusqu|lorsqu|aujourd|presqu|quelqu|puisqu|qu|prud|entr)['´‘′`ʼ](?=[\w"«<]) @@0 <<- ->> \1’ && Apostrophe typographique. __[i>/apos(apostrophe_typographique_après_t)!8__ t['´‘′`ʼ](?!ils?|elles?|on)(?=[\w"«<]) <<- ->> t’ && Apostrophe typographique. TEST: {{C'}}est l’apostrophe typographique qui manque. ->> C’ TEST: C’est {{l'}}apostrophe typographique qui manque. ->> l’ TEST: {{Aujourd'}}hui, je suis fatigué TEST: Je pense {{qu`}}elle se trompe TEST: Que {{t'}}arrive-t-il ? __[i>/typo(typo_apostrophe_incorrecte)!8__ (([ldsncjmtç]|lorsqu|puisqu|presqu|quoiqu|quelqu|jusqu|qu|aujourd|entr)(?:[’'´‘′`ʼ][’'´‘′`ʼ ]|”|“|"| [’'´‘′`ʼ] ?))[aeéiouhœæyàîèêôû<] @@0,0 <<- not (\2.__len__() == 1 and \1.endswith("′ ")) -1>> \2’ && Apostrophe incorrecte. TEST: {{C’ }}est rageant. ->> C’ TEST: {{Lorsqu’ }}il vient, on s’ennuie. TEST: {{l’'}}électricien est parti TEST: Je pense {{qu ` }}elle ne viendra pas. ## Apostrophes manquantes __[i>/typo(typo_apostrophe_manquante)!8__ "((lorsqu|puisqu|presqu|quoiqu|jusqu|qu|aujourd|entr) )[aeéiouhyàîèêôû<]" @@0,0 <<- -1>> \2’ && Il manque vraisemblablement une apostrophe. <<- ~1>> \2’ # Solution prudente : __[i>/typo(typo_apostrophe_manquante_prudence1)!8__ ne ([mtsl] )[aeéiouhyàîèêôû<] @@3 <<- -1>> =\1[:-1]+"’" && Il manque une apostrophe. __[i>/typo(typo_apostrophe_manquante_prudence2)!8__ (?:je|tu|ie?ls?|nous|vous|on|ça|elles?) ([nmtsl] )([aeéiouhyàîèêôû][\w-]*|<) @@*,$ <<- not option("mapos") and (\2 == "<" or morph(\2, ":V")) -1>> =\1[:-1]+"’" && Il manque probablement une apostrophe. # Solution audacieuse : __[s>/typo(typo_apostrophe_manquante_audace1)!8__ ([ldsncjmtç] )[aeéiouhAEÉIOUHyîèêôûYÎÈÊÔÛ<] @@0 <<- option("mapos") and not before("(?i)(?:lettre|caractère|glyphe|dimension|variable|fonction|point) *$") -1>> =\1[:-1]+"’" && Il manque peut-être une apostrophe. # Note : pour les majuscules, la règle se situe lors de la passe suivante. TEST: __mapos__ {{n }}arrive pas à sa cheville TEST: le coup {{qu }}avait donné ->> qu’ TEST: pendant {{qu }}il avançait d’un pas indolent ->> qu’ TEST: {{jusqu }}à plus soif ->> jusqu’ TEST: il ne {{m }}avait jamais fait défaut ->> m’ TEST: Il {{s }}était dit qu’il ne le ferait pas. ->> s’ TEST: Je {{m }}étais imaginé que je pourrais pas retrouver cet objet. ->> m’ TEST: Je {{n }}ai pas retrouvé l’ambiance de mes années de lycée. ->> n’ TEST: ne fais rien {{jusqu'}}<b>à demain</b> ->> jusqu’ TEST: cette fois, {{c'}}<i>est</i> mort ->> c’ !! !! !!!! Guillemets typographiques !! !! !! __<s>/typo(typo_guillemets_typographiques_doubles_ouvrants)__ "(?=\w) <<- not before("[a-zA-Zéïîùàâäôö]$") ->> « |“ && Guillemets typographiques ouvrants. __<s>/typo(typo_guillemets_typographiques_doubles_fermants)__ [\w.?!…,](")(?!\w) @@* <<- -1>> " »|”" && Guillemets typographiques fermants. TEST: {{"}}Le grand homme.” ->> « |“ TEST: “Le grand homme.{{"}} ->> " »|”" __<s>/typo(typo_guillemets_typographiques_simples_doubles_ouvrants)__ (?:^|[ –—-])('')(?=\w) @@* <<- -1>> « |“ && Guillemets typographiques ouvrants. __<s>/typo(typo_guillemets_typographiques_simples_doubles_fermants)__ [\w.?!…,]('')(?![\w'’]) @@* <<- -1>> " »|”" && Guillemets typographiques fermants. TEST: {{''}}Ça{{”}} recommence. ->> « |“||| TEST: Le {{''}}grand{{”}} homme. ->> « |“||| TEST: Le {{“}}grand{{''}} homme. ->> " »|”|||" __<s>/typo(typo_guillemets_typographiques_simples_ouvrants)__ (?:^|[ –—-])(['’])(?=\w) @@* <<- -1>> “|‘|‹ && Guillemets typographiques ouvrants. __<s>/typo(typo_guillemets_typographiques_simples_fermants)__ [\w.?!](')(?:[ ]|$) @@* <<- -1>> ”|’|› && Guillemets typographiques fermants. TEST: {{'}}Ça’ recommence. ->> “|‘|‹ TEST: Le {{'}}grand’ homme. ->> “|‘|‹ TEST: Le ‘grand{{'}} homme. ->> ”|’|› TEST: Le grand ‘homme{{'}} ->> ”|’|› TEST: dans les {{’}}beaux quartiers{{’}} TEST: J’en ai '''marre''' (syntaxe wiki). !!! !!! !!! Processeur: balises HTML, LaTeX, Markdown !! !!! !!! |
︙ | ︙ | |||
660 661 662 663 664 665 666 | __<s>/latex(p_latex3)__ \{(?:abstract|align|cases|center|description|enumerate|equation|figure|flush(?:left|right)|gather|minipage|multline|quot(?:ation|e)|SaveVerbatim|table|tabular|thebibliography|[vV]erbatim|verse|wrapfigure)\} <<- ~>> * # Markdown __<s>/md(p_md_span_ouvrant)__ " ([*_]+)\w" @@1 <<- ~1>> * __<i>/md(p_md_span_fermant)__ "[a-z0-9àéîïôûüù]([*_]+)[,.;:!?) ]" @@1 <<- ~1>> * __<s>/md(p_md_titre_début)__ "^#+" <<- ~>> * __<s>/md(p_md_titre_fin)__ "#+ *$" <<- ~>> * | | | | | | | | | | | | | | | | | | | | | | | 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 | __<s>/latex(p_latex3)__ \{(?:abstract|align|cases|center|description|enumerate|equation|figure|flush(?:left|right)|gather|minipage|multline|quot(?:ation|e)|SaveVerbatim|table|tabular|thebibliography|[vV]erbatim|verse|wrapfigure)\} <<- ~>> * # Markdown __<s>/md(p_md_span_ouvrant)__ " ([*_]+)\w" @@1 <<- ~1>> * __<i>/md(p_md_span_fermant)__ "[a-z0-9àéîïôûüù]([*_]+)[,.;:!?) ]" @@1 <<- ~1>> * __<s>/md(p_md_titre_début)__ "^#+" <<- ~>> * __<s>/md(p_md_titre_fin)__ "#+ *$" <<- ~>> * __<s>/md(p_md_liste)__ "^ *[*+] " <<- ~>> * __<s>/md(p_md_citation)__ "^>[ >]+ " <<- ~>> * TEST: __html__ des <b>{{homme}}</b> TEST: __html__ des [b]{{femme}}[/b] TEST: __html__ il est venu : c’était bien… TEST: __md__ ces **{{femme}}** !! !! !!!! Écritures épicènes dystypographiques !! !! !! # (attention aux modifs: brainfuck d’intensité non négligeable) # La désambiguïsation est faite lors de la deuxième passe __[i](eepi_écriture_épicène_tous_toutes)__ tous?[.(/·•⋅–—-]te[.)/·•⋅–—-]?s <<- option("eepi") ->> tous et toutes|toutes et tous && Écriture épicène dystypographique et imprononçable. <<- ~>> =normalizeInclusiveWriting(\0) TEST: {{tou.tes}} sont là. ->> tous et toutes|toutes et tous __[i](eepi_écriture_épicène_ceux_celles)__ c[./·•⋅–—-]?eux?[./·•⋅–—-]elles <<- option("eepi") ->> ceux et celles|celles et ceux && Écriture épicène dystypographique et imprononçable. <<- ~>> =normalizeInclusiveWriting(\0) TEST: avec {{ceux.elles}} qui viendront ->> ceux et celles|celles et ceux __[u](eepi_écriture_épicène_pluriel_eur_divers)__ ({w_2})eurs?[.(/·•⋅–—-][tdp]?(rice|euse|se|[oe]resse)[.)/·•⋅–—-]?s @@0,** <<- option("eepi") and \2 != "se" ->> \1eurs et \1\2s|\1\2s et \1eurs && Écriture épicène dystypographique et imprononçable. <<- option("eepi") and \2 == "se" ->> \1eurs et \1euses|\1euses et \1eurs && Écriture épicène dystypographique et imprononçable. <<- ~>> =normalizeInclusiveWriting(\0) TEST: travaillons avec les {{instituteur.trice.s}} ->> instituteurs et institutrices|institutrices et instituteurs TEST: La communauté des {{développeur·se·s}} open source ->> développeurs et développeuses|développeuses et développeurs __[u](eepi_écriture_épicène_pluriel_eux_euses)__ ({w_2})eux[.(/·•⋅–—-](?:[tdsi]?euse|se)[.)/·•⋅–—-]?s @@0 <<- option("eepi") ->> \1eux et \1euses|\1euses et \1eux && Écriture épicène dystypographique et imprononçable. <<- ~>> =normalizeInclusiveWriting(\0) TEST: {{nombreux·ses}} sont les profs qui s’indignent de cette situation. ->> nombreux et nombreuses|nombreuses et nombreux __[u](eepi_écriture_épicène_pluriel_aux_ales)__ ({w_2})aux[.(/·•⋅–—-][tnmcpbd]?a?le[.)/·•⋅–—-]?s @@0 <<- option("eepi") ->> \1aux et \1ales|\1ales et \1aux|\1al·e·s && Écriture épicène dystypographique et imprononçable. Pour ce cas, il peut être intéressant de faire comme si le pluriel masculin était régulier, ce qui rend l’ensemble prononçable… <<- ~>> =normalizeInclusiveWriting(\0) TEST: {{locaux·ales}} ->> locaux et locales|locales et locaux|local·e·s TEST: LOCAL·E·S TEST: amical·e·s __[u](eepi_écriture_épicène_pluriel_er_ère)__ ({w_2})[eè]rs?[.(/·•⋅–—-]i?è?re[.)/·•⋅–—-]?s @@0 <<- option("eepi") ->> \1ers et \1ères|\1ères et \1ers && Écriture épicène dystypographique et imprononçable. <<- ~>> =normalizeInclusiveWriting(\0) TEST: les {{conseiller.ière.s}} ->> conseillers et conseillères|conseillères et conseillers #TEST: les {{artificièr.e.s}} ->> artificiers et artificières|artificières et artificiers __[u](eepi_écriture_épicène_pluriel_if_ive)__ ({w_2})ifs?[.(/·•⋅–—-][std]?i?ve[.)/·•⋅–—-]?s @@0 <<- option("eepi") ->> \1ifs et \1ives|\1ives et \1ifs && Écriture épicène dystypographique et imprononçable. <<- ~>> =normalizeInclusiveWriting(\0) TEST: {{inclusif.ive.s}} ->> inclusifs et inclusives|inclusives et inclusifs TEST: {{offensif.ve.s}} ->> offensifs et offensives|offensives et offensifs __[u](eepi_écriture_épicène_pluriel_e)__ ({w_1}[éuitsrnldf])[-·–—.•⋅(/]([ntlf]?e)[-·–—.•⋅)/]?s @@0,** <<- not (\0.endswith(".Les") or \0.endswith(".Tes")) >>> <<- ~>> =normalizeInclusiveWriting(\0) <<- option("eepi") and not \0.endswith("les") and not \0.endswith("LES") and not re.search("(?i)·[ntlf]?e·s$", \0) >>> <<- \1.endswith("s") or \1.endswith("S") ->> \1 et \1\2s|\1\2s et \1|\1·\2·s && Écriture épicène dystypographique. Préférez écrire lisiblement. Sinon, utilisez les points médians. <<- __else__ ->> \1s et \1\2s|\1\2s et \1s|\1·\2·s && Écriture épicène dystypographique. Préférez écrire lisiblement. Sinon, utilisez les points médians. TEST: nous sommes {{déconsidéré-e-s}}. TEST: serons-nous toujours {{perdu.e.s}}. TEST: les illustres {{inconnu(e)s}}. TEST: la situation des {{salarié/e/s}}. TEST: des {{Iranien-ne-s}} sont venues ->> Iraniens et Iraniennes|Iraniennes et Iraniens|Iranien·ne·s TEST: rendez-vous avec des {{écrivain(e)s}} ->> écrivains et écrivaines|écrivaines et écrivains|écrivain·e·s |
︙ | ︙ | |||
769 770 771 772 773 774 775 | TEST: IMMORTEL·LE·S TEST: Berlinois·e·s TEST: Iranien·ne·s __[i](eepi_écriture_épicène_singulier)__ ({w_1}[éuitsrnldf])([-·–—.•⋅/][ntl]?e|[(][ntl]?e[)]) @@0,$ | | | | | | | | | | | | | | | | | | | 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 | TEST: IMMORTEL·LE·S TEST: Berlinois·e·s TEST: Iranien·ne·s __[i](eepi_écriture_épicène_singulier)__ ({w_1}[éuitsrnldf])([-·–—.•⋅/][ntl]?e|[(][ntl]?e[)]) @@0,$ <<- not (\0.endswith(".Le") or \0.endswith(".Ne") or \0.endswith(".De")) and not ((\0.endswith("-le") or \0.endswith("-Le") or \0.endswith("-LE")) and not (\1.endswith("l") or \1.endswith("L"))) >>> <<- ~>> =normalizeInclusiveWriting(\0) <<- option("eepi") and (\1 == "un" or \1 == "Un" or \1 == "UN") ->> un ou une|une ou un && Écriture épicène imprononçable. Préférez écrire lisiblement. <<- __else__ and option("eepi") and not re.search("(?i)·[ntl]?e$", \2) ->> =\1+"·"+\2[1:].rstrip(")") && Écriture épicène. Utilisez un point médian. TEST: je suis {{déconsidéré.e}} par ma hiérarchie. ->> déconsidéré·e TEST: il faut en parler à l’{{auteur(e)}} et à son agent. ->> auteur·e TEST: le ou la {{patron/ne}} ->> patron·ne TEST: Totalement {{con(ne)}} ->> con·ne TEST: un ou une {{intellectuel.le}} ->> intellectuel·le TEST: INTELLECTUEL·LE TEST: électricien·ne TEST: Épuisé·e __[i](typo_écriture_invariable)__ ({w_3})([-·–—.•⋅/]s|[(]s[)]) @@0,$ <<- ~>> =normalizeInclusiveWriting(\0) <<- option("typo") and option("eepi") and not \0.endswith("·s") and not (\0.endswith("/s") and morph(\1, ";S")) ->> \1·s && Écriture invariable. Utilisez un point médian. TEST: la ou les {{fille(s)}} ->> fille·s TEST: le ou les patron·s TEST: combien de rad/s !! !! !!!! Majuscules manquantes !! !! !! # Majuscules après un point __[s]/maj(majuscule_après_point)__ ({w_2})[.] ([a-zàâéèêîôç]\w*) @@0,$ <<- not re.search("(?i)^(?:etc|[A-Z]|chap|cf|fig|hab|litt|circ|coll|r[eé]f|étym|suppl|bibl|bibliogr|cit|op|vol|déc|nov|oct|janv|juil|avr|sept)$", \1) and morph(\1, ":") and morph(\2, ":") -2>> =\2.capitalize() && Après un point, une majuscule est généralement requise. TEST: Je suis là. {{viens}}. ->> Viens TEST: Ils sont devenus idiots. {{c}}’est peine perdue. __<s>/maj(majuscule_début_paragraphe)__ ^ *([a-zàâéèêîôç](?:[\w-]+[’'`‘]?|[’'`‘])) @@$ <<- after("\\w\\w[.] +\\w+") -1>> =\1.capitalize() && Majuscule en début de phrase, sauf éventuellement lors d’une énumération. # autre possibilité: avec or (sContext != "Writer" and after("[.] *$")) TEST: {{je}} suis disponible quand tu veux. Mais pas aujourd’hui. TEST: {{j’}}arrive. Prépare-toi. TEST: {{qu’}}il est grand, ce batiment. Faut voir si on pourra la détruire avec si peu de charges. !! !! !!!! Ponctuation de fin de paragraphe !! !! !! __[i>/poncfin(poncfin_règle1)__ ({w_1}) *$ @@0 <<- before("\\w+(?:\\.|[ ][!?]) +(?:[A-ZÉÈÎ]\\w+|[ÀÔ])") -1>> \1.|\1 !|\1 ? && Il semble manquer une ponctuation finale (s’il s’agit d’un titre, le point final n’est pas requis). TEST: __poncfin__ Vraiment. Quel {{ennui}} TEST: Internet : le nouvel eldorado TEST: OMC-FMI : Les nouveaux maîtres du monde !! !! !!!! Virgules !! !! !! # virgules manquantes __[i>/virg(virgule_manquante_avant_etc)__ {w_1}( etc[.]) @@$ <<- -1>> , etc. && Avant « etc. », il faut mettre une virgule. __[i>/virg(virgule_manquante_avant_car)__ ({w_1})( car)(?= (?:j[e’]|tu|ie?ls?|nous|vous|elles?|on|les?|l[a’]|ces?|des?|cette|[mts](?:on|a|es))\b) @@0,$ <<- not morph(\1, ":[DR]") -2>> , car && Si « car » est la conjonction de coordination, une virgule est peut-être souhaitable.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3447 __[i>/virg(virgule_manquante_avant_mais)__ ({w_1})( mais)(?= (?:j[e’]|tu|ie?ls?|nous|vous|elles?|on)\b) @@0,$ <<- not morph(\1, ">(?:[mtscl]es|[nv]os|quels)/") -2>> , mais && Si « mais » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3445 __[i>/virg(virgule_manquante_avant_donc)__ ({w_1})( donc)(?= (?:j[e’]|tu|ie?ls?|elles?|on)\b) @@0,$ <<- not morph(\1, ":[VG]") -2>> , donc && Si « donc » est la conjonction de coordination, une virgule est souhaitable si elle introduit une nouvelle proposition.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=3448 TEST: Un chien, un chat{{ etc.}} ->> , etc. TEST: Je suis fatigué{{ car}} ils ont joué toute la nuit. ->> , car TEST: Je suis fatigué{{ mais}} il a joué toute la nuit. ->> , mais TEST: il l’a vu de ses propres yeux{{ donc}} il faut y croire. ->> , donc TEST: il s’est donc tu TEST: Chacun peut l’entendre d’une manière différente et donc on se demande bien ce qui est mesuré dans les réponses. |
︙ | ︙ | |||
884 885 886 887 888 889 890 | __<s>/virg(virg_virgule_avant_points_suspension)__ , *… <<- ->> … && Typographie : pas de virgule avant les points de suspension. __<s>/virg(virg_virgule_après_point)__ ({w1})([.],) @@0,$ | | | | 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 | __<s>/virg(virg_virgule_avant_points_suspension)__ , *… <<- ->> … && Typographie : pas de virgule avant les points de suspension. __<s>/virg(virg_virgule_après_point)__ ({w1})([.],) @@0,$ <<- not re.search("^(?:etc|[A-Z]|fig|hab|litt|circ|coll|ref|étym|suppl|bibl|bibliogr|cit|vol|déc|nov|oct|janv|juil|avr|sept|pp?)$", \1) -2>> ,|. && Pas de virgule après un point (sauf éventuellement après une abréviation). TEST: ceci, cela{{, …}} ->> … TEST: Les chiens, les chats{{.,}} les poules. ->> ,|. # Fin de paragraphe #__<i>/typo__ ({w_2}) *$ @@0 |
︙ | ︙ | |||
909 910 911 912 913 914 915 | __<s>/typo(typo_espace_manquant_après1)__ ({w1})[,:]({w_1}) @@0,$ <<- not \1.isdigit() -2>> " \2" && Il manque un espace. __<s>/typo(typo_espace_manquant_après2)__ [?!;%‰‱˚»}]({w_1}|[({[]) @@$ <<- -1>> " \1" && Il manque un espace. __[s>/typo(typo_espace_manquant_après3)__ {w_1}[.]({w_1}|[({[]) @@$ | | | | | 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 | __<s>/typo(typo_espace_manquant_après1)__ ({w1})[,:]({w_1}) @@0,$ <<- not \1.isdigit() -2>> " \2" && Il manque un espace. __<s>/typo(typo_espace_manquant_après2)__ [?!;%‰‱˚»}]({w_1}|[({[]) @@$ <<- -1>> " \1" && Il manque un espace. __[s>/typo(typo_espace_manquant_après3)__ {w_1}[.]({w_1}|[({[]) @@$ <<- (\1.__len__() > 1 and not \1[0:1].isdigit() and spell(\1)) or after("^’") -1>> " \1" && Il manque un espace. __[s>/typo(typo_espace_manquant_après4)__ {w_2}[…]({w_1}|[({[]) @@$ <<- \1[0:1].isupper() or \1.__len__() > 5 or not \1.isalpha() or (\1.__len__() > 1 and spell(\1)) -1>> " \1" && Il manque un espace. TEST: J’en ai marre,{{ça}} suffit. ->> " ça" TEST: elle est délirante.{{Devine}} ce qu’elle a dit. ->> " Devine" TEST: Voilà,{{il}} manque un espace. ->> " il" TEST: Dernier essai.{{Voilà}}, c’est ça. ->> " Voilà" TEST: muni de lunettes protectrices et.{{d}}’un casque. ->> " d" TEST: espace:{{manquant}} ->> " manquant" |
︙ | ︙ | |||
1014 1015 1016 1017 1018 1019 1020 | !!!! Ponctuations redondantes !! !! !! # virgules et points __<s>/typo(typo_virgules_points)__ ,[.,]{2,} | | | 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 | !!!! Ponctuations redondantes !! !! !! # virgules et points __<s>/typo(typo_virgules_points)__ ,[.,]{2,} <<- ->> =\0.replace(",", ".").replace("...", "…") && Erreur de numérisation ? Virgules au lieu de points ? TEST: Ah !{{,.,}} et en quoi consistait le festin ? __<s>/typo(typo_ponctuation_superflue1)__ , ?([.,;:!?]) @@$ <<- ->> =",|" + \1 && Une de ces ponctuations est superflue. __<s>/typo(typo_ponctuation_superflue2)__ ; ?([.,;:…!?]) @@$ <<- ->> =";|" + \1 && Une de ces ponctuations est superflue. __<s>/typo(typo_ponctuation_superflue3)__ :[.,;:…!?] <<- ->> =":|" + \0[1] && Une de ces ponctuations est superflue. |
︙ | ︙ | |||
1097 1098 1099 1100 1101 1102 1103 | # ligatures typographiques : fi, fl, ff, ffi, ffl, ft, st __<s>/liga(ligatures_typographiques)__ [fiflffffifflſtst] <<- ->> =undoLigature(\0) && Suppression de la ligature typographique. TEST: __liga__ un {{fl}}ottement ->> fl TEST: __liga__ une belle {{fi}}gure ->> fi | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | | | | | | | | | | | | | | | | | | | | | | | 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 | # ligatures typographiques : fi, fl, ff, ffi, ffl, ft, st __<s>/liga(ligatures_typographiques)__ [fiflffffifflſtst] <<- ->> =undoLigature(\0) && Suppression de la ligature typographique. TEST: __liga__ un {{fl}}ottement ->> fl TEST: __liga__ une belle {{fi}}gure ->> fi !! !! !!!! Divers !! !! !! ## NF (memo: don’t use flag i) __[s]/nf(nf_norme_française)__ [nN][fF][ -]?(?:c|C|e|E|p|P|q|Q|s|S|x|X|z|Z|[eE][nN](?:[ -][iI][sS][oO]|))[ -]?[0-9]+(?:[/ ‑-][0-9]+|) <<- not re.search("^NF (?:C|E|P|Q|S|X|Z|EN(?: ISO|)) [0-9]+(?:‑[0-9]+|)", \0) ->> =formatNF(\0) && Norme française. Utilisez les espaces et tirets insécables.|http://fr.wikipedia.org/wiki/Liste_de_normes_NF TEST: __nf__ Norme française : {{Nf-EN ISO 3892-23}} !! !! !!!! Cohérence des guillemets !! !! !! __<s>/typo(typo_cohérence_guillemets_chevrons_ouvrants)__ («)[^»“]+?(”) @@0,$ <<- not before("\\w$") -1>> “ && Guillemet ouvrant différent du guillemet fermant (”). <<- not after("^\\w") -2>> " »" && Guillemet fermant différent du guillemet ouvrant («). __<s>/typo(typo_cohérence_guillemets_chevrons_fermants)__ (“)[^”«]+?(») @@0,$ <<- not before("\\w$") -1>> "« " && Guillemet ouvrant différent du guillemet fermant (»). <<- not after("^\\w") -2>> ” && Guillemet fermant différent du guillemet ouvrant (“). TEST: C’est {{«}}stupide{{”}}. TEST: Quel {{“}}emmerdeur{{»}}, ce gars-là. __<s>/typo(typo_cohérence_guillemets_doubles_ouvrants)__ (“)[^”’“«]+?(’)(?!\w) @@0,$ <<- not before("\\w$") -1>> "‘" && Guillemet ouvrant différent du guillemet fermant (’). <<- -2>> ” && Guillemet fermant différent du guillemet ouvrant (“). __<s>/typo(typo_cohérence_guillemets_doubles_fermants)__ (‘)[^’“«]+?(”) @@0,$ <<- not before("\\w$") -1>> "“" && Guillemet ouvrant différent du guillemet fermant (”). <<- not after("^\\w") -2>> ’ && Guillemet fermant différent du guillemet ouvrant (‘). TEST: Tu sais, {{‘}}ton ami{{”}} est venu. TEST: Oui, je vois, mais c’est quand même un {{“}}salopard{{’}}. __[i]/typo(typo_guillemets_doubles_ouvrants_non_fermés)__ (“)\w[^”"»]+$ @@0 <<- -1>> _ && Guillemets fermants introuvables dans la suite du paragraphe. __[i]/typo(typo_guillemets_doubles_fermants_non_ouverts)__ ^[^“„«"]+\w(”) @@$ <<- -1>> _ && Guillemets ouvrants introuvables dans ce paragraphe. TEST: C’était mon affaire{{”}}. TEST: C’est {{“}}compliqué. __[i]/typo(typo_guillemet_simple_ouvrant_non_fermé)__ (‘)\w\w[^’']+$ @@0 <<- before(" $") or isStart() -1>> _ && Guillemet fermant introuvable dans la suite du paragraphe. __[i]/typo(typo_guillemet_simple_fermant_non_ouvert)__ ^[^‘']+\w\w(’) @@$ <<- after("^ ") or isEnd() -1>> _ && Guillemet ouvrant introuvable dans ce paragraphe. TEST: ce {{‘}}test ne finira jamais. TEST: ces actions ne représentent rien{{’}} pour moi. TEST: « Je suis là. TEST: — Oui, nous t’avons vu arriver. » TEST: « J’en suis “malade”. » !! !! !!!! Espaces insécables avant unités de mesure !! !! !! __[s]/unit(unit_nbsp_avant_unités1)__ ((\d+(?:,\d+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹]|)) ?)([kcmµn]?(?:[slgJKΩ]|m[²³]?|Wh?|Hz|dB)|[%‰€$£¥Åℓhj]|min|px|MHz|°C|℃)(?![’']) @@0,0,$ <<- option("num") ->> =formatNumber(\2) + " " + \3 && Avec une unité de mesure, mettez un espace insécable. <<- __else__ ->> "\2 \3" && Avec une unité de mesure, mettez un espace insécable. __[s]/unit(unit_nbsp_avant_unités2)__ ((\d+(?:,\d+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹])) ?)([a-zA-Zµ][a-zA-Z0-9Ωℓ⁰¹²³⁴⁵⁶⁷⁸⁹/·]*) @@0,0,$ <<- morph(\3, ";S", ":[VCR]") or mbUnit(\3) or not spell(\3) >>> <<- option("num") ->> =formatNumber(\2) + " " + \3 && 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. <<- __else__ ->> "\2 \3" && 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. __[s]/unit(unit_nbsp_avant_unités3)__ ((\d+) )([a-zA-Zµ][a-zA-Z0-9Ωℓ⁰¹²³⁴⁵⁶⁷⁸⁹/·]*)(?![’']) @@0,0,$ <<- (\2.__len__() > 4 and not spell(\3)) or morph(\3, ";S", ":[VCR]") or mbUnit(\3) >>> <<- option("num") ->> =formatNumber(\2) + " " + \3 && 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. <<- __else__ ->> "\2 \3" && 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. TEST: Ça a duré {{3µs}} ->> 3 µs TEST: Ça a duré {{3,5 µs}} ->> 3,5 µs TEST: il y en a {{3 m²}} ->> 3 m² TEST: il a fait {{10%}} ->> 10 % TEST: Ça coûte {{13,4¥}}. ->> 13,4 ¥ TEST: il mesure {{30,3 cm}} ->> 30,3 cm |
︙ | ︙ | |||
1318 1319 1320 1321 1322 1323 1324 | !! !!!! Grands nombres !! !! !! __[s]/num(num_grand_nombre_soudé)__ \d\d\d\d+ | | | | | | | | | | | | | 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 | !! !!!! Grands nombres !! !! !! __[s]/num(num_grand_nombre_soudé)__ \d\d\d\d+ <<- not before("NF[ -]?(C|E|P|Q|X|Z|EN(?:[ -]ISO|)) *$") >>> <<- \0.__len__() > 4 ->> =formatNumber(\0) && Formatage des grands nombres. <<- __else__ and ((after("^(?:,[0-9]+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹])") and not (re.search("^[01]+$", \0) and after("^,[01]+\\b"))) or after("^[ ]*(?:[kcmµn]?(?:[slgJKΩ]|m[²³]?|Wh?|Hz|dB)|[%‰€$£¥Åℓhj]|min|°C|℃)(?![\\w’'])")) ->> =formatNumber(\0) && Formatage des grands nombres. __[s]/num(num_nombre_quatre_chiffres)__ (?<!,)(\d\d\d\d)[ ]([a-zA-Zµ][a-zA-Z0-9Ωℓ⁰¹²³⁴⁵⁶⁷⁸⁹/·]*) @@0,$ <<- morph(\2, ";S", ":[VCR]") or mbUnit(\2) -1>> =formatNumber(\1) && Formatage des grands nombres. TEST: {{12345}} ->> 12 345 TEST: {{123456}} ->> 123 456 TEST: {{1234567}} ->> 1 234 567 TEST: {{12345678}} ->> 12 345 678 TEST: {{023456789}} ->> 023 456 789|023 45 67 89|02 345 67 89 TEST: {{0234567890}} ->> 0 234 567 890|02 34 56 78 90|023 456 78 90|0234 567-890 TEST: {{12345678901}} ->> 12 345 678 901 TEST: {{112798931830912839}} ->> 112 798 931 830 912 839 TEST: {{2308393909}} ->> 2 308 393 909|2308 393-909 TEST: {{2024}},9 ->> 2 024 TEST: {{4000}} Å ->> 4 000 TEST: {{3240}} µA ->> 3 240 TEST: 1111 0011,01 (binaire) __[s>(num_grand_nombre_avec_points)__ \d\d?\d?(?:[.]\d\d\d)+(?![0-9]) <<- option("num") ->> =\0.replace(".", " ") && Grands nombres : utilisez des espaces insécables plutôt que des points. <<- ~>> =\0.replace(".", "_") TEST: il cumule {{200.000.000}} de pertes sèches __[s](num_grand_nombre_avec_espaces)__ \d\d?\d?(?: \d\d\d)+ <<- option("num") ->> =\0.replace(" ", " ") && Grands nombres : utilisez des espaces insécables. <<- ~>> =\0.replace(" ", "_") TEST: Il a perdu {{20 000}} euros à la Bourse en un seul mois. !! !! !!!! Dates !! |
︙ | ︙ | |||
1386 1387 1388 1389 1390 1391 1392 | !! !! !!!! Redondances !! !! !! __[i]/redon1(redondances_paragraphe)__ ({w_4})[ ,.;!?:].*[ ](\1) @@0,$ | | | | | | | | 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 | !! !! !!!! Redondances !! !! !! __[i]/redon1(redondances_paragraphe)__ ({w_4})[ ,.;!?:].*[ ](\1) @@0,$ <<- not morph(\1, ":(?:G|V0)|>(?:t(?:antôt|emps|rès)|loin|souvent|parfois|quelquefois|côte|petit|même)/") and not \1[0].isupper() -2>> _ && Dans ce paragraphe, répétition de « \1 » (à gauche). <<- __also__ -1>> _ && Dans ce paragraphe, répétition de « \1 » (à droite). TEST: __redon1__ Tu es son {{avenir}}. Et lui aussi est ton {{avenir}}. TEST: __redon1__ Car parfois il y en a. Mais parfois il n’y en a pas. !! !! !!!! OCR !! !! !! # ? __<s]/ocr(ocr_point_interrogation)__ [ ]7 <<- after0("^(?: +[A-ZÉÈÂ(]|…|[.][.]+| *$)") ->> " ?" && Erreur de numérisation ? TEST: __ocr__ des chiffrements{{ 7}} Paul n’en sait rien. TEST: __ocr__ veux-tu en parler{{ 7}} # ! __<s]/ocr(ocr_exclamation1)__ [ ]I(?![ ’'][aâeéèêëiîïoôuy]) <<- ->> " !" && Erreur de numérisation ? __<s]/ocr(ocr_exclamation2)__ [ ]1(?= [A-ZÉÈÂÎ]) <<- not morph(word(1), ";S") and not morph(word(-1), ":R") ->> " !" && Erreur de numérisation ? TEST: __ocr__ Oh{{ I}} c’est pas formidable ? TEST: __ocr__ Vraiment{{ 1}} Paul n’en savait rien. TEST: __ocr__ Ça prendra 1 h. TEST: __ocr__ Valeur : 1 KHz. |
︙ | ︙ | |||
6469 6470 6471 6472 6473 6474 6475 6476 6477 6478 | elle ?aussi¿ ~é(?:es|s)$ <<- /ppas/ morph(\-1, ":Q") and not morph(<1, ":(?:V0a|R)") --1>> =suggVerbPpas(\-1, ":f:s")+"|"+suggVerbTense(\-1, ":Iq", ":3s") && Incohérence probable. Après “elle”, il faut un participe passé féminin singulier ou une forme verbale conjuguée (3ᵉ personne du singulier). TEST: elle {{mangé}}. TEST: elle aussi {{mangées}}. __conf_presque_vconj__ presque @:[123][sp]¬:[GNAQWM] | > > > > > > > > > | | 6475 6476 6477 6478 6479 6480 6481 6482 6483 6484 6485 6486 6487 6488 6489 6490 6491 6492 6493 6494 6495 6496 6497 6498 6499 6500 6501 | elle ?aussi¿ ~é(?:es|s)$ <<- /ppas/ morph(\-1, ":Q") and not morph(<1, ":(?:V0a|R)") --1>> =suggVerbPpas(\-1, ":f:s")+"|"+suggVerbTense(\-1, ":Iq", ":3s") && Incohérence probable. Après “elle”, il faut un participe passé féminin singulier ou une forme verbale conjuguée (3ᵉ personne du singulier). TEST: elle {{mangé}}. TEST: elle aussi {{mangées}}. __conf_en_tant_que_subst__ en tant [que|qu’] @:V¬:[NAG] <<- /conf/ --1>> =suggSimil(\-1, ":[NA]") && Confusion probable. Après « en tant que », il faut un substantif, pas un verbe. Exemples : en tant que femme, en tant que patron, en tant que trentenaire… TEST: en tant qu’{{abaisse}} TEST: en tant que tel __conf_presque_vconj__ presque @:[123][sp]¬:[GNAQWM] <<- /conf/ not tag_before(\1, "_ceque_") and not value(<1, "|ou|") -2>> _ && Incohérence probable avec “presque” : « \2 » n’est ni un adjectif, ni un participe passé, ni un adverbe. TEST: presque {{délaissait}} par tout le monde. TEST: Tout le monde ou presque déteste ces gens-là. __conf_sur_vconj__ sur @:(?:[123][sp]|P)¬:[GNAQM] |
︙ | ︙ | |||
15668 15669 15670 15671 15672 15673 15674 15675 15676 15677 15678 15679 | en [certaines|quelques|plusieurs] occasions [<end>|,|)] <<- ~1:3>> * en de multiples occasions @¬:A.*:[fe]:[pi] en de multiples occasions [<end>|,|)] <<- ~1:4>> * en un sens @¬:A.*:[me]:[si] en un sens [<end>|,|)] <<- ~1:3>> * en sus | > > > > > > | | 15683 15684 15685 15686 15687 15688 15689 15690 15691 15692 15693 15694 15695 15696 15697 15698 15699 15700 15701 15702 15703 15704 15705 15706 15707 15708 | en [certaines|quelques|plusieurs] occasions [<end>|,|)] <<- ~1:3>> * en de multiples occasions @¬:A.*:[fe]:[pi] en de multiples occasions [<end>|,|)] <<- ~1:4>> * <start> en fait <<- ~2:3>> * en fait <<- not value(<1, "|je|tu|n’|il|on|elle|iel|") ~>> ␣ en un sens @¬:A.*:[me]:[si] en un sens [<end>|,|)] <<- ~1:3>> * en sus <<- not value(<1, "|j’|tu|il|elle|on|n’|") ~>> * entre autres choses @¬:A.*:[fe]:[pi] entre autres choses [<end>|,|)] <<- ~1:3>> * [quelques|plusieurs] [secondes|minutes|heures|journées|semaines|années|décennies] @¬:A.*:[fe]:[pi] [quelques|plusieurs] [secondes|minutes|heures|journées|semaines|années|décennies] [<end>|,|)] |
︙ | ︙ | |||
15729 15730 15731 15732 15733 15734 15735 15736 15737 15738 15739 15740 15741 15742 | pour partie @:¬:A.*:f:s pour partie [<end>|,|)] <<- ~1:2>> * pour un temps @:¬:[NA].*:[me]:[si] pour un temps [<end>|,|)] <<- ~1:3>> * semblait-il semble-t-il <<- not value(<1, "|ça|cela|ceci|me|m’|te|t’|lui|nous|vous|leur|ne|n’|") ~>> * tête la première <<- not morph(<1, ":D") and not morph(>1, ":[NA].*:[fe]:[si]") ~>> * | > > > > | 15750 15751 15752 15753 15754 15755 15756 15757 15758 15759 15760 15761 15762 15763 15764 15765 15766 15767 | pour partie @:¬:A.*:f:s pour partie [<end>|,|)] <<- ~1:2>> * pour un temps @:¬:[NA].*:[me]:[si] pour un temps [<end>|,|)] <<- ~1:3>> * sans surprise @:¬:[NA].*:[fe]:[si] sans surprise [<end>|,|)] <<- ~1:2>> * semblait-il semble-t-il <<- not value(<1, "|ça|cela|ceci|me|m’|te|t’|lui|nous|vous|leur|ne|n’|") ~>> * tête la première <<- not morph(<1, ":D") and not morph(>1, ":[NA].*:[fe]:[si]") ~>> * |
︙ | ︙ | |||
16246 16247 16248 16249 16250 16251 16252 16253 16254 16255 16256 16257 16258 16259 16260 16261 16262 16263 16264 16265 16266 16267 16268 16269 16270 16271 | >arriver a point nommé >arriver a bon port >battre a plate couture [>brûler|>bruler] a vif >charger a blanc >chauffer a blanc >chuter a terre >fermer a [>clé|>clef] [>gonfler|>regonfler] a bloc >jeter a terre [>mettre|>remettre] a [bas|>flot|>jour|>niveau|>nu|>plat|>profit|>table|>terre] [>mettre|>remettre] a l’ [écart|épreuve] >naviguer a [vu+ses] >parer a toute éventualité >passer a tabac >percer a jour >prendre a la légère >prêter a >confusion >réduire a néant >saigner a blanc >sentir a l’ aise >tenir a [carreau|cœur|distance] >tirer a blanc >tomber a [pic|point|terre] >tirer a blanc >tourner a l’ aigre | > > | 16271 16272 16273 16274 16275 16276 16277 16278 16279 16280 16281 16282 16283 16284 16285 16286 16287 16288 16289 16290 16291 16292 16293 16294 16295 16296 16297 16298 | >arriver a point nommé >arriver a bon port >battre a plate couture [>brûler|>bruler] a vif >charger a blanc >chauffer a blanc >chuter a terre >être a bloc >fermer a [>clé|>clef] [>gonfler|>regonfler] a bloc >jeter a terre [>mettre|>remettre] a [bas|>flot|>jour|>niveau|>nu|>plat|>profit|>table|>terre] [>mettre|>remettre] a l’ [écart|épreuve] >naviguer a [vu+ses] >parer a toute éventualité >passer a tabac >percer a jour >prendre a la légère >prêter a >confusion >réduire a néant >rester a >flot >saigner a blanc >sentir a l’ aise >tenir a [carreau|cœur|distance] >tirer a blanc >tomber a [pic|point|terre] >tirer a blanc >tourner a l’ aigre |
︙ | ︙ | |||
19732 19733 19734 19735 19736 19737 19738 | TEST: celles {{perdue}} aura une pénalité TEST: celles venues chanter doivent se rendre là-bas. ## Nombres __gn_nombre_lettres_1m__ $:B:e:p *WORD | | | | > > | | | 19759 19760 19761 19762 19763 19764 19765 19766 19767 19768 19769 19770 19771 19772 19773 19774 19775 19776 19777 19778 19779 19780 19781 19782 19783 19784 19785 19786 19787 19788 19789 19790 19791 19792 19793 19794 19795 19796 19797 19798 19799 19800 19801 19802 19803 19804 19805 19806 19807 19808 19809 19810 19811 19812 19813 19814 | TEST: celles {{perdue}} aura une pénalité TEST: celles venues chanter doivent se rendre là-bas. ## Nombres __gn_nombre_lettres_1m__ $:B:e:p *WORD <<- /gn/ not value(\1, "|neuf|mille|") and ( (morph(\2, ":[NA].*:s", "*") and not value(\2, "|maximum|minimum|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|") ) or \2 in aREGULARPLURAL) and not re.search("^[IVXLDM]+$", \1) -2>> =suggPlur(\2) && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel. neuf *WORD <<- /gn/ ( morph(\2, ":[NA].*:s", "*") and not morph(<1, ":N.*:m:[is]") and not value(\2, "|maximum|minimum|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|") ) or \2 in aREGULARPLURAL -2>> =suggPlur(\2) && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel. mille *WORD <<- /gn/ not value(\2, "|maximum|minimum|multiplié|divisé|") and (morph(\2, ":[NA].*:s", "*") or \1 in aREGULARPLURAL) and not value(<1, "|le|un|ce|du|") -2>> =suggPlur(\2) && Accord de nombre erroné avec « \1 » : « \2 » devrait être au pluriel. TEST: ce sont trois {{idiot}} pas foutus de trouver leur chemin avec un GPS. ->> idiots TEST: Il a abandonné neuf {{enfant}}. ->> enfants TEST: On peut trouver mille {{travailleur}} d’un claquement de doigts. ->> travailleurs TEST: Il y a quatre cents {{mot}} dans la phrase. ->> mots TEST: cent {{mot}} ->> mots TEST: cinquante {{mot}} ->> mots TEST: mille cinquante {{mot}} ->> mots TEST: deux {{tête}} ->> têtes TEST: un logement neuf bâti par des professionnels. TEST: un mille marin. TEST: L’article VII mentionné dans la revue TEST: Le produit de cinq multiplié par trois. TEST: deux divisé par douze TEST: il en faut trois minimum, cinq maximum __gn_nombre_chiffres_1m__ [0|1|01] @:[NAQ].*:p¬* <<- /gn/ space_after(\1, 1, 1) and not value(\2, "|Rois|Corinthiens|Thessaloniciens|") -2>> =suggSing(\2) && Accord de nombre erroné : « \1 » devrait être au singulier. *NUM *WORD <<- /gn/ space_after(\1, 1, 1) and not value(<1, "|/|") and not re.search("^0*[01](?:,[0-9]+|)$", \1) and not morph(<1, ":N") and ( (morph(\2, ":[NA].*:s", "*") and not value(\2, "|maximum|minimum|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|")) or \1 in aREGULARPLURAL ) -2>> =suggPlur(\2) && Accord de nombre erroné : « \2 » devrait être au pluriel. *NUM *WORD *WORD <<- /gn/ not value(\2, "|maximum|minimum|fois|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|") and not re.search("^0*[01](?:,[0-9]+|)$", \1) and not value(<1, "|et|ou|de|d’|") and not morph(\3, ">(?:seule|maximum|minimum)/") >>> <<- /gn/ ((morph(\2, ":[NA].*:m", ":(?:B|e|G|V0|f)") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":(?:B|e|G|V0|m)") and morph(\3, ":[NA].*:m", "*"))) and not apposition(\2, \3) -3>> =switchGender(\3, True) && Accord de genre erroné entre « \2 » et « \3 ». <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2, True) && Accord de genre erroné avec « \3 ». <<- /gn/ morph(\2, ":[NA].*:[pi]", "*") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A")) -3>> =suggPlur(\3) && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel. |
︙ | ︙ | |||
19797 19798 19799 19800 19801 19802 19803 19804 19805 19806 19807 19808 19809 19810 | TEST: elle fut le 13 janvier décapitée TEST: elles furent le 18 janvier décorées TEST: en quantité 2 fois moindre TEST: 1 La Mort TEST: L’année 2019 a commencé à le montrer TEST: La « première génération » d’ordinateurs des années 1950 a déjà largement cédé la place à une deuxième (transistorisée) TEST: Au sein du club des pays les plus prospères, la richesse par habitant est néanmoins 52 fois supérieure à celle des pays à faibles revenus, d’après la Banque mondiale. ## trouver ça/ceci/cela + adj __gn_trouver_ça_adj__ >trouver [ça|cela|ceci] @:A.*:(?:f|m:p)¬:(?:G|3[sp]|M) <<- /gn/ -3>> =suggMasSing(\3) && Trouver \2 + [adjectif] : l’adjectif s’accorde avec “\2” (au masculin singulier). | > | 19826 19827 19828 19829 19830 19831 19832 19833 19834 19835 19836 19837 19838 19839 19840 | TEST: elle fut le 13 janvier décapitée TEST: elles furent le 18 janvier décorées TEST: en quantité 2 fois moindre TEST: 1 La Mort TEST: L’année 2019 a commencé à le montrer TEST: La « première génération » d’ordinateurs des années 1950 a déjà largement cédé la place à une deuxième (transistorisée) TEST: Au sein du club des pays les plus prospères, la richesse par habitant est néanmoins 52 fois supérieure à celle des pays à faibles revenus, d’après la Banque mondiale. TEST: 1 à 2 comprimés par jour voire 2 à 3 maximum ## trouver ça/ceci/cela + adj __gn_trouver_ça_adj__ >trouver [ça|cela|ceci] @:A.*:(?:f|m:p)¬:(?:G|3[sp]|M) <<- /gn/ -3>> =suggMasSing(\3) && Trouver \2 + [adjectif] : l’adjectif s’accorde avec “\2” (au masculin singulier). |
︙ | ︙ | |||
20784 20785 20786 20787 20788 20789 20790 | TEST: Ils y voient {{clairs}}. TEST: Il vit Claire au théâtre. TEST: J’y vois clair, mec. # vu / vue | | > > > > | 20814 20815 20816 20817 20818 20819 20820 20821 20822 20823 20824 20825 20826 20827 20828 20829 20830 20831 20832 20833 20834 20835 20836 20837 20838 | TEST: Ils y voient {{clairs}}. TEST: Il vit Claire au théâtre. TEST: J’y vois clair, mec. # vu / vue __sgpl_vue_vu__ >point de [vu|vus|vues] <<- /sgpl/ -3>> vue && Dans un “point de vue”, “vue” est toujours au féminin singulier. >perdre de [vu|vus|vues] <<- /sgpl/ -3>> vue && Dans un “perdre de vue”, “vue” est toujours au féminin singulier. TEST: c’est son point de {{vu}} qui prime. TEST: Son point de {{vus}} prévaudra toujours, faites-vous à cette idée ou dégagez. TEST: de mon point de {{vues}} TEST: elle a perdu de {{vu}} ses anciens amis __sgpl_verbe__ >faire rires <<- /sgpl/ -2>> rire && Faire rire. Rire est un verbe, il ne prend pas la marque du pluriel. [>pouvoir|>vouloir|>falloir] [rires|mangers|êtres|avoirs] |
︙ | ︙ | |||
21503 21504 21505 21506 21507 21508 21509 21510 21511 21512 21513 21514 21515 21516 | TEST: faut-il {{pensé}} à ces choses-là encore et encore ? TEST: il faut n’{{estimait}} que la valeur de nos actes TEST: il fallait bien cela pour nous épargner TEST: une faille s’est ouverte sous nos pieds TEST: il faut en moyenne 1000 litres d’eau pour produire un kilo de céréales TEST: Xi Jinping a réaffirmé en janvier dernier qu’il utiliserait s’il le faut la force militaire TEST: Comme il a fallu la mort d’un homme __infi_faire__ >faire ~(?:ée?s?|ez)$ <<- /infi/ not morph(<1, ">(?:en|de|être)/") and morph(\2, ":V", ":[MG]") and not (morph(\1, ":N") and morph(\2, ":Q.*:m:[sp]")) -2>> =suggVerbInfi(\2) && Après le verbe “faire”, ce verbe devrait être à l’infinitif. | > | 21537 21538 21539 21540 21541 21542 21543 21544 21545 21546 21547 21548 21549 21550 21551 | TEST: faut-il {{pensé}} à ces choses-là encore et encore ? TEST: il faut n’{{estimait}} que la valeur de nos actes TEST: il fallait bien cela pour nous épargner TEST: une faille s’est ouverte sous nos pieds TEST: il faut en moyenne 1000 litres d’eau pour produire un kilo de céréales TEST: Xi Jinping a réaffirmé en janvier dernier qu’il utiliserait s’il le faut la force militaire TEST: Comme il a fallu la mort d’un homme TEST: Et il faut en fait, pour les expliquer, tenir compte de trois éléments complémentaires. __infi_faire__ >faire ~(?:ée?s?|ez)$ <<- /infi/ not morph(<1, ">(?:en|de|être)/") and morph(\2, ":V", ":[MG]") and not (morph(\1, ":N") and morph(\2, ":Q.*:m:[sp]")) -2>> =suggVerbInfi(\2) && Après le verbe “faire”, ce verbe devrait être à l’infinitif. |
︙ | ︙ | |||
26631 26632 26633 26634 26635 26636 26637 | TEST: celles-là {{on}} {{vraiment}} un problème avec la religion. TEST: j’ai, tu as, ils ont, elles {{on}} TEST: ces gens-là ils {{on}} {{raison}} plus souvent que la plupart des gens. TEST: Ils soutiennent ceux qui {{on}} {{tant}} de raison d’être en colère. TEST: Or parmi celles-ci on trouve typiquement d’un côté les structures | < > | > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 26666 26667 26668 26669 26670 26671 26672 26673 26674 26675 26676 26677 26678 26679 26680 26681 26682 26683 26684 26685 26686 26687 26688 26689 26690 26691 26692 26693 26694 26695 26696 26697 26698 26699 26700 26701 26702 26703 26704 26705 26706 26707 26708 26709 26710 26711 26712 26713 26714 26715 26716 26717 26718 26719 26720 26721 26722 26723 26724 26725 26726 26727 26728 26729 26730 26731 26732 26733 26734 26735 26736 26737 26738 26739 26740 26741 26742 26743 | TEST: celles-là {{on}} {{vraiment}} un problème avec la religion. TEST: j’ai, tu as, ils ont, elles {{on}} TEST: ces gens-là ils {{on}} {{raison}} plus souvent que la plupart des gens. TEST: Ils soutiennent ceux qui {{on}} {{tant}} de raison d’être en colère. TEST: Or parmi celles-ci on trouve typiquement d’un côté les structures !! !! !!!! Inversion verbe sujet !! !! !! __conj_que_où_comment_verbe_sujet_sing__ [que|qu’|où|comment|combien|dont|quand|pourquoi|puisque|puisqu’|lorsque|lorqu’|auquel|auxquels|auxquelles] || @:[123][sp]¬:(?:3s|G|W|3p!) [un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre] *WORD <<- /conj/ not value(\4, "|plupart|majorité|groupe|") and not tag(\4, "_enum_") and not (value(>1, "|et|ou|") and morph(>2, ":D")) and not (value(>2, "|et|ou|") and morph(>3, ":D")) -2>> =suggVerb(\2, ":3s") && Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du singulier. [que|qu’|où|comment|combien|dont|quand|pourquoi|puisque|puisqu’|lorsque|lorqu’|auquel|auxquels|auxquelles] || @:[123][sp]¬:(?:3s|G|W|3p!) [le|la|l’|leur] *WORD <<- /conj/ not value(\4, "|plupart|majorité|groupe|") and not tag(\4, "_enum_") and not (value(>1, "|et|ou|") and morph(>2, ":D")) and not (value(>2, "|et|ou|") and morph(>3, ":D")) and not (morph(\4, ":Y") and morph(\2, ">(?:pouvoir|vouloir|devoir)")) -2>> =suggVerb(\2, ":3s") && Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du singulier. duquel || @:[123][sp]¬:(?:3s|G|W|3p!) [un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre] *WORD <<- /conj/ not value(\4, "|plupart|majorité|groupe|") and not tag(\4, "_enum_") and not (value(>1, "|et|ou|") and morph(>2, ":D")) and not (value(>2, "|et|ou|") and morph(>3, ":D")) and not morph(<1, ":[NA]") -2>> =suggVerb(\2, ":3s") && Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du singulier. duquel || @:[123][sp]¬:(?:3s|G|W|3p!) [le|la|l’|leur] *WORD <<- /conj/ not value(\4, "|plupart|majorité|groupe|") and not tag(\4, "_enum_") and not (value(>1, "|et|ou|") and morph(>2, ":D")) and not (value(>2, "|et|ou|") and morph(>3, ":D")) and not (morph(\4, ":Y") and morph(\2, ">(?:pouvoir|vouloir|devoir)")) and not morph(<1, ":[NA]") -2>> =suggVerb(\2, ":3s") && Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du singulier. desquels || @:[123][sp]¬:(?:3s|G|W|3p!) [un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre] *WORD <<- /conj/ not value(\4, "|plupart|majorité|groupe|") and not tag(\4, "_enum_") and not (value(>1, "|et|ou|") and morph(>2, ":D")) and not (value(>2, "|et|ou|") and morph(>3, ":D")) and not morph(<1, ":[NA]") -2>> =suggVerb(\2, ":3s") && Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du singulier. desquels || @:[123][sp]¬:(?:3s|G|W|3p!) [le|la|l’|leur] *WORD <<- /conj/ not value(\4, "|plupart|majorité|groupe|") and not tag(\4, "_enum_") and not (value(>1, "|et|ou|") and morph(>2, ":D")) and not (value(>2, "|et|ou|") and morph(>3, ":D")) and not (morph(\4, ":Y") and morph(\2, ">(?:pouvoir|vouloir|devoir)")) and not morph(<1, ":[NA]") -2>> =suggVerb(\2, ":3s") && Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du singulier. desquelles || @:[123][sp]¬:(?:3s|G|W|3p!) [un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre] *WORD <<- /conj/ not value(\4, "|plupart|majorité|groupe|") and not tag(\4, "_enum_") and not (value(>1, "|et|ou|") and morph(>2, ":D")) and not (value(>2, "|et|ou|") and morph(>3, ":D")) and not morph(<1, ":[NA]") -2>> =suggVerb(\2, ":3s") && Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du singulier. desquelles || @:[123][sp]¬:(?:3s|G|W|3p!) [le|la|l’|leur] *WORD <<- /conj/ not value(\4, "|plupart|majorité|groupe|") and not tag(\4, "_enum_") and not (value(>1, "|et|ou|") and morph(>2, ":D")) and not (value(>2, "|et|ou|") and morph(>3, ":D")) and not (morph(\4, ":Y") and morph(\2, ">(?:pouvoir|vouloir|devoir)")) and not morph(<1, ":[NA]") -2>> =suggVerb(\2, ":3s") && Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du singulier. TEST: les possibilités qu’{{offrent}} le chien TEST: les possibilités que {{donnent}} le chien. TEST: Où {{vas}} l’homme ? TEST: l’histoire dont {{bénéficient}} notre langue. TEST: le feu, duquel {{proviennent}} la vie TEST: le feu, duquel {{proviennent}} notre existence TEST: les hommes, desquels {{arrivent}} la mort TEST: les hommes, desquels {{arrivent}} votre dstruction TEST: les lois, desquelles {{proviennent}} notre soumission TEST: les lois, desquelles {{proviennent}} leur cohésion TEST: de la même façon que survivent le swing ou le latin. TEST: en proportion des efforts que requièrent son entretien et son exploitation TEST: une crainte aussi que renforcent son éloignement et le protocole compliqué TEST: à l’époque de Mansur que grandissent la place et le rôle de… TEST: où vivent la majorité des immigrés et des enfants d’immigrés TEST: Que deviennent la vitesse, le courant, ainsi que le rendement ? TEST: Le complexe argilo-humique est mieux hydraté que ne pourraient l’être les micelles d’argile ou humiques |
︙ | ︙ | |||
26674 26675 26676 26677 26678 26679 26680 | <<- /conj/ morph(<1, ":R") and not value(\4, "|plupart|majorité|groupe|") and not (value(>1, "|et|ou|") and morph(>2, ":D")) -2>> =suggVerb(\2, ":3s") && Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du singulier. TEST: une muraille contre laquelle {{venaient}} la masse armée et vociférante. __conj_que_où_comment_verbe_sujet_pluriel__ | > | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 26752 26753 26754 26755 26756 26757 26758 26759 26760 26761 26762 26763 26764 26765 26766 26767 26768 26769 26770 26771 26772 26773 26774 26775 26776 26777 26778 26779 26780 26781 26782 26783 26784 26785 26786 26787 26788 26789 26790 26791 26792 26793 26794 26795 26796 26797 26798 26799 26800 26801 26802 26803 26804 26805 26806 26807 26808 26809 26810 26811 26812 26813 26814 26815 26816 26817 26818 26819 26820 26821 26822 26823 26824 26825 | <<- /conj/ morph(<1, ":R") and not value(\4, "|plupart|majorité|groupe|") and not (value(>1, "|et|ou|") and morph(>2, ":D")) -2>> =suggVerb(\2, ":3s") && Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du singulier. TEST: une muraille contre laquelle {{venaient}} la masse armée et vociférante. __conj_que_où_comment_verbe_sujet_pluriel__ [que|qu’|où|comment|combien|dont|quand|pourquoi|puisque|puisqu’|lorsque|lorqu’|auquel|auxquels|auxquelles] || @:[123][sp]¬:(?:3p|G|W) [les|des|ces|mes|tes|ses|nos|vos|leurs|quelques|certains|certaines|plusieurs|maints|maintes] *WORD <<- /conj/ -2>> =suggVerb(\2, ":3p") && Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du pluriel. duquel || @:[123][sp]¬:(?:3p|G|W) [les|des|ces|mes|tes|ses|nos|vos|leurs|quelques|certains|certaines|plusieurs|maints|maintes] *WORD <<- /conj/ not morph(<1, ":[NA]") -2>> =suggVerb(\2, ":3p") && Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du pluriel. desquels || @:[123][sp]¬:(?:3p|G|W) [les|des|ces|mes|tes|ses|nos|vos|leurs|quelques|certains|certaines|plusieurs|maints|maintes] *WORD <<- /conj/ not morph(<1, ":[NA]") -2>> =suggVerb(\2, ":3p") && Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du pluriel. desquelles || @:[123][sp]¬:(?:3p|G|W) [les|des|ces|mes|tes|ses|nos|vos|leurs|quelques|certains|certaines|plusieurs|maints|maintes] *WORD <<- /conj/ not morph(<1, ":[NA]") -2>> =suggVerb(\2, ":3p") && Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: D’où {{vienne}} les hommes ? TEST: Comment {{danse}} les femmes ? TEST: les idioties qu’{{aime}} les hommes, j’en ai marre. TEST: l’amour dont {{parle}} les femmes TEST: duquel {{arrive}} les ennuis TEST: les hommes, desquels {{arrive}} nos problèmes TEST: les femmes, desquelles {{provient}} ces outils __conj_lxquel_verbe_sujet_pluriel__ [lequel|laquelle|lesquels|lesquelles] @:[123][sp]¬:(?:3p|G|W) [les|des|ces|mes|tes|ses|nos|vos|leurs|quelques|certains|certaines|plusieurs|maints|maintes] *WORD <<- /conj/ morph(<1, ":R") -2>> =suggVerb(\2, ":3p") && Conjugaison erronée. Accord avec “\3 \4…”. Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: les amusements pour lesquels {{vienne}} les invités. TEST: financé par le Qatar, lequel dépense des millions de dollars pour soutenir le mouvement __conj_puisse__ [<start>|,|(] puisse @:D.*:p <<- /conj/ -2>> puissent && Conjugaison erronée. Ce verbe devrait s’accorder au substantif qui le suit. TEST: {{puisse}} les hommes enfin comprendre leurs erreurs. ->> puissent TEST: {{puisses}} notre ennemi trembler de peur devant notre courage. ->> puisse !! !! !!!! Verbes sans sujets !! !! !! __conj_que_où_comment_verbe_sans_sujet!3__ [que|qu’|où|comment|combien|dont|quand|pourquoi|puisque|puisqu’|lorsque|lorqu’|auquel|auxquels|auxquelles|duquel|desquels|desquelles|lequel|laquelle|lesquels|lesquelles|si] @:[12][sp]¬:(?:G|W|3[sp]|Y|P|Q|N|A|M|VC) <<- /conj/ morph(\2, ":[12]s") and not value(>1, "|je|tu|") -2>> =suggVerb(\2, ":3s") && Conjugaison erronée. Ce verbe devrait être à la 3ᵉ personne. <<- /conj/ __else__ and morph(\2, ":[12]p") and not value(>1, "|nous|vous|") -2>> =suggVerb(\2, ":3p") && Conjugaison erronée. Ce verbe devrait être à la 3ᵉ personne. TEST: Qu’est-ce que tu crois que {{deviens}} réellement, immanquablement et subitement cet homme après une telle dérouillée ? TEST: peu importe ce que tu crois du lieu où l’{{abandonnerais}} ce salopard… TEST: nous savons comment {{arriverons}} ces problèmes… TEST: combien {{paraissez}} folles ces augmentations TEST: ces sciences, ces religions, ces philosophies ne sont que contes destinés à nous donner l’illusion de la connaissance. TEST: Le ministre de l’Intérieur a estimé que Calais avait vécu “un degré de violence jamais connu”. TEST: à des règles aussi absurdes que précises !! !! !!!! Quel(le) que soit / quel(le)s que soient !! !! !! |
︙ | ︙ | |||
26735 26736 26737 26738 26739 26740 26741 | <<- /conj/ -1>> \1s && Accord avec “\4 \5”. Utilisez le pluriel. TEST: Quels que {{soit}} les salopards qui ont fait ça. TEST: Quelles que {{sois}} les chaussures que je mets, elles me font mal aux pieds. TEST: {{Quel}} que soient les avantages reçus, ce n’est pas assez. TEST: {{Quelle}} que soient nos problèmes, on en parle toujours trop. | < < < < < < < < < < < < < < < < < < < < < | 26850 26851 26852 26853 26854 26855 26856 26857 26858 26859 26860 26861 26862 26863 | <<- /conj/ -1>> \1s && Accord avec “\4 \5”. Utilisez le pluriel. TEST: Quels que {{soit}} les salopards qui ont fait ça. TEST: Quelles que {{sois}} les chaussures que je mets, elles me font mal aux pieds. TEST: {{Quel}} que soient les avantages reçus, ce n’est pas assez. TEST: {{Quelle}} que soient nos problèmes, on en parle toujours trop. !! !! !!!! Verbe auxiliaire !! !! !! |
︙ | ︙ |