A no ser que

Provo de fer aquesta regla però alguna cosa se m’escapa.

  • Posició inesperada d’inici de … en la frase dexemple incorrecta ‘{0}’: l’etiqueta
    comença en el caràcter {1}, sesperava que comencés en el caràcter 12
  <rule>
                <pattern>
                    <marker>
                        <token>a</token>
                        <token>no</token>
                        <token>ser</token>
                        <token>que</token>
                    </marker>
                </pattern>
                <message>Expressió incorrecta.</message>
                <suggestion>tret</suggestion>
                <suggestion>llevat</suggestion>
                <example correction="tret"><marker>a no ser</marker> que vingui.</example>
                <example correction="llevat"><marker>a no ser</marker> que vingui.</example>
                <example>Tret que no vingui.</example>
                <example>Llevat que no vingui.</example>
 </rule>

En l’explicació més o menys queda clar què passa.

There are problems with your rule:

  • Unexpected end position of … in incorrect example sentence ‘a no ser que vingui.’:
    tag ends at character 8, expected it to end at character 12
  • Please make sure you selected the correct language for your rule - your selection was: Catalan

Les etiquetes <marker> </marker> han de coincidir amb la part que se subratlla de la frase. Hauria de ser així:

<pattern>
    <marker>
        <token>a</token>
        <token>no</token>
        <token>ser</token>
    </marker>
    <token>que</token>
</pattern>

La regla funciona i no he trobat cap frase que no s’hagi d’aplicar.

<rule>
        <rule id="A_NO_SER_QUE" name="*a no ser que">
                <pattern>
                    <marker>
                        <token>a</token>
                        <token>no</token>
                        <token>ser</token>
                    </marker>
                        <token>que</token>
                </pattern>
                <message>Expressió incorrecta.</message>
                <suggestion>tret</suggestion>
                <suggestion>llevat</suggestion>  
                <suggestion>fora</suggestion> 
                <suggestion>si no és</suggestion> 
                <suggestion>excepte</suggestion> 
                <suggestion>a menys</suggestion> 
                <example correction="tret|llevat|fora|si no és|excepte|a menys"><marker>a no ser</marker> que vingui.</example>
                <example>Tret que no vingui.</example>
                <example>Llevat que no vingui.</example> 
                <example>No es tornarà a presentar a les eleccions, a menys que tingui la seguretat de guanyar</example>
 </rule>

Si et sembla bé aquesta regla te’n puc enviar més perquè les incloguis.

Gràcies. Em sembla bé afegir aquesta regla, però li canviaré el missatge per una cosa de l’estil: “Val més usar una altra expressió”. És una expressió que molts llibres d’estil desaconsellen, però no es pot dir que sigui incorrecta. Josep Ruaix la justifica, i la gramàtica de l’IEC accepta que hi ha expressions condicionals introduïdes per “a”, encara que només en locucions fixades (a jutjar per). Per això no l’havia afegida fins ara.

Al final ha quedat així: [ca] new rule A_NO_SER_QUE (Pep Bofarull) · languagetool-org/languagetool@8e0b506 · GitHub