All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.languagetool.rules.sv.grammar.xml Maven / Gradle / Ivy

The newest version!
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/print.xsl" ?>
<?xml-stylesheet type="text/css" href="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/rules.css" title="Easy editing stylesheet" ?>
<!--
Swedish Grammar and Typo Rules for LanguageTool
Copyright (C) 2007, 2008 Niklas Johansson
2023 ljo@fps_gbg

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
-->

<!DOCTYPE rules [
    <!ENTITY weekdays "måndags?|tisdags?|onsdags?|torsdags?|fredags?|lördags?|söndags?">
    <!ENTITY abbrevWeekdays "mån?|tis?|ons?|tor?|fre?|lör?|sön?">
    <!ENTITY months "januaris?|februaris?|mars'?|aprils?|majs?|junis?|julis?|augustis?|septembers?|oktobers?|novembers?|decembers?">
    <!ENTITY abbrevMonths "jan|feb|mar|apr|maj|ju[ln]|aug|sept?|okt|nov|dec">
]>
<rules lang="sv" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="../../../../../../../../../languagetool-core/src/main/resources/org/languagetool/rules/rules.xsd">
  <!-- ====================================================================== -->
  <!-- Särskrivningar -->
  <!-- ====================================================================== -->
  <category id="CAT1" name="Särskrivning rekommenderas">
    <rule id="efter-hand" name="Särskrivning 'efterhand (efter hand)'">
      <pattern>
        <token>efterhand</token>
      </pattern>
      <message>Felaktig sammanskrivning. Menade du <suggestion>efter hand</suggestion>?</message>
      <example correction="efter hand">Det visade sig <marker>efterhand</marker> att orden borde särskrivas.</example>
    </rule>
  </category>
  <category id="CAT2" name="Sammanskrivning rekommenderas">
    <rule id="ALLT_MER" name="Allt mer bör ej särskrivas">
      <pattern>
        <token>allt</token>
        <token>mer</token>
      </pattern>
      <message>Enligt tt-språket och Svenska språknämnden bör ordet <suggestion>alltmer</suggestion> ej särskrivas.</message>
      <example correction="alltmer">Det blir <marker>allt mer</marker> vanligt att folk särskriver.</example>
    </rule>
  </category>
  <!-- ====================================================================== -->
  <!-- Punkter efter förkortningar -->
  <!-- ====================================================================== -->
  <category id="CAT3" name="Punkt vid förkortning">
    <rule id="M_FL" name="Förkortningen skrivs normalt med punkter (m.fl.)">
      <pattern>
        <token>m</token>
        <token>fl</token>
      </pattern>
      <message>Denna förkortning skrivs i regel med punkter: <suggestion>m.fl.</suggestion>.</message>
      <example correction="m.fl.">Vi tar med oss Maria, Jens, Sara <marker>m fl</marker> och åker till Jönköping.</example>
    </rule>
    <rule default="off" id="T_EX"
          name="Förkortningen skrivs normalt med punkter (t.ex.)">
      <pattern>
        <token>t</token>
        <token>ex</token>
      </pattern>
      <message>Denna förkortning skrivs i regel med punkter: <suggestion>t.ex.</suggestion>.</message>
      <example>Vi tar <marker>t.ex.</marker> fem myror och fyra elefanter. </example>
      <example correction="t.ex.">Vi tar <marker>t ex</marker> fem myror och fyra elefanter.</example>
    </rule>
    <rule default="off" id="TEX"
          name="Förkortningen skrivs normalt med punkter (t.ex.)">
      <pattern>
        <token>tex</token>
      </pattern>
      <message>Denna förkortning skrivs i regel med punkter: <suggestion>t.ex.</suggestion>. </message>
      <example>Vi tar <marker>t.ex.</marker> fem myror och fyra elefanter. </example>
      <example correction="t.ex.">Vi tar <marker>tex</marker> fem myror och fyra elefanter. </example>
    </rule>
  </category>
  <!-- ====================================================================== -->
  <!-- Grammatik -->
  <!-- ====================================================================== -->
  <category id="GRAMMAR" name="Grammatik">
    <rule id="JJ.OCH_n-ord.NN" name="Rätt böjning av adjektivet">
      <pattern>
        <token>ett</token>
        <token postag="JJ:P." postag_regexp="yes">
          <exception postag="JJ:PN"/>
        </token>
        <!-- All adjectives except the ones in neuter -->
        <token postag="NN:OF:S.*" postag_regexp="yes"/>
      </pattern>
      <message>Adjektivet är böjt i positiv utrum (\2) och bör då föregås av ordet "en" istället för "ett", alternativt böjas i positiv neutrum. Menade du: <suggestion>en \2 \3</suggestion>?</message>
      <example correction="en mörk kväll">Det var <marker>ett mörk kväll</marker>. </example>
    </rule>
    <rule id="JJ.OCH_t-ord.NN" name="Rätt böjning av adjektivet">
      <pattern>
        <token>en</token>
        <token postag="JJ:P." postag_regexp="yes">
          <exception postag="JJ:PU"/>
        </token>
        <token postag="NN:OF:S.*" postag_regexp="yes"/>
      </pattern>
      <message>Adjektivet "\2" är böjt i positiv neutrum och bör då föregås av ordet "ett" istället för "en", alternativt böjas i positiv utrum. <suggestion>ett \2 \3</suggestion></message>
      <example correction="ett mörkt rum">Det var <marker>en mörkt rum</marker>. </example>
    </rule>
    <rule id="ART_VB.n-ord" name="Rätt kongruensböjning av artikel">
      <pattern>
        <token>ett</token>
        <token postag="VB:PPC:.*" postag_regexp="yes">
          <exception postag="VB:PPC:NEU"/>
        </token>
        <token postag="NN:OF:S.*:UTR" postag_regexp="yes"/>
      </pattern>
      <message>Verbet i particip är böjt i utrum (\2) och bör då föregås av ordet "en" istället för "ett", alternativt böjas i neutrum. Menade du: <suggestion>en \2 \3</suggestion>?</message>
      <example correction="en urholkad sten">Det var <marker>ett urholkad sten</marker>. </example>
    </rule>
    <rule id="ART_VB_NN.n-ord" name="Kongruensböjning">
      <pattern>
        <token>en</token>
        <token postag="VB:PPC:.*" postag_regexp="yes">
          <exception postag="VB:PPC:UTR"/>
        </token>
        <token postag="NN:OF:S.*:UTR" postag_regexp="yes"/>
      </pattern>
      <message>Verbet i particip är böjt i neutrum (\2) men ska böjas i utrum som huvudordet (och artikeln). Menade du <suggestion>en <match no="2" postag="VB:PPC:UTR" /> \3</suggestion>?</message>
      <example correction="en urholkad sten">Det var <marker>en urholkat sten</marker>. </example>
    </rule>
    <rule id="ART_VB.t-ord" name="Rätt kongruensböjning av artikel">
      <pattern>
        <token>en</token>
        <token postag="VB:PPC:.*" postag_regexp="yes">
          <exception postag="VB:PPC:UTR"/>
        </token>
        <token postag="NN:OF:S.*:NEU" postag_regexp="yes"/>
      </pattern>
      <message>Verbet "\2" i particip är böjt i neutrum och bör då föregås av ordet "ett" istället för "en", alternativt böjas i utrum. Menade du <suggestion>ett \2 \3</suggestion>?</message>
      <example correction="ett förvånat uppvaknande">Det var <marker>en förvånat uppvaknande</marker>. </example>
    </rule>
    <rule id="ART_VB_NN.t-ord" name="Kongruensböjning">
      <pattern>
        <token>ett</token>
        <token postag="VB:PPC:.*" postag_regexp="yes">
          <exception postag="VB:PPC:NEU"/>
        </token>
        <token postag="NN:OF:S.*:NEU" postag_regexp="yes"/>
      </pattern>
      <message>Verbet i particip är böjt i utrum (\2) men ska böjas i neutrum som huvudordet (och artikeln). Menade du <suggestion>ett <match no="2" postag="VB:PPC:NEU" /> \3</suggestion>?</message>
      <example correction="ett urladdat batteri">Det var <marker>ett urladdad batteri</marker>. </example>
    </rule>
    <rulegroup id="FORRE_FORE_TITEL" name="Förre före titel">
      <rule>
        <pattern case_sensitive="no">
          <token>förra</token>
          <token regexp="yes">chefen|ordförande</token>
          <token regexp="yes">på|för</token>
        </pattern>
        <message>Före titlar bör det stå <suggestion>förre \2 \3</suggestion> och inte förra \2 \3. Detta oavsett om det är en kvinna eller man som innehaft posten.</message>
        <example correction="Förre chefen på"><marker>Förra chefen på</marker> Arla var en trevlig prick.</example>
      </rule>
    </rulegroup>
    <rule id="EJ_FORE_ATT"
          name="Ord som ej bör stå före infinitivmärket &quot;att&quot;">
      <pattern case_sensitive="no">
        <token regexp="yes">kunde|brukade</token>
        <token>att</token>
      </pattern>
      <message>Infinitivmärket "att" bör inte förekomma efter <suggestion>\1</suggestion>.</message>
      <example correction="brukade">Han <marker>brukade att</marker> komma sent.</example>
    </rule>   
    <!-- Ett försök att fånga upp anföringsverb som ska föregås av ett kommatecken -->
    <rule id="KommaFoereAnfoeringsverb" name="Kommatecken före anföringsverb" default="off">
      <pattern>
        <token><exception regexp="yes">,|vad|visst</exception></token>
        <marker>
          <token regexp="yes">sade|sa|menade|viskade|skrek</token>
          <token postag="PM:.*" postag_regexp="yes"/>
        </marker>
      </pattern>
      <message>Kommatecken ska sättas ut före anföringsverb, dvs. <suggestion>, \2 \3</suggestion></message>
      <example>Det var finfint<marker>, sade Johan</marker>.</example>
      <example correction=", sade Johan">Det var finfint<marker> sade Johan</marker>.</example>
    </rule>
    <rule id="EnKlubbaTill" name="Klumpiga ordföljder 1">
      <pattern>
        <token regexp="yes">en|ett</token>
        <token>till</token>
        <token postag="NN.*" postag_regexp="yes"/>
      </pattern>
      <message>Denna ordföljd är ofta otydlig, försök med att flytta "till" efter substantivet eller byt ut det mot ytterligare. Dvs. prova att skriva <suggestion>\1 \3 \2</suggestion>.</message>
      <example correction="en klubba till">Det är nog bäst att du får <marker>en till klubba</marker>.</example>
    </rule>
  </category>
  <!-- ====================================================================== -->
  <!-- Felaktiga sammansättningar som Hunspell godkänner... -->
  <!-- ====================================================================== -->
  <category id="COMPOUNDING" name="Compound_problems">
    <rule id="OVERRENS" name="Över_rens">
      <pattern>
        <token>överrens</token>
      </pattern>
      <message>Du menar antagligen <suggestion>överens</suggestion>.</message>
      <example correction="överens">Flickorna kom <marker>överrens</marker>. </example>
    </rule>
    <rule id="MASERA" name="mas_era">
      <pattern>
        <token>masera</token>
      </pattern>
      <message>Du menar antagligen <suggestion>massera</suggestion> om du inte skriver om masarnas era förstås.</message>
      <example correction="massera">Kan du <marker>masera</marker> mig?</example>
    </rule>
  </category>
  
  <category id="CAT4" name="Ord som ofta förväxlas">
    <rule id="mottoVSmatto" name="Motto vs. måtto">
      <pattern>
        <token>i</token>
        <token regexp="yes">möjligaste|så</token>
        <token>motto</token>
      </pattern>
      <message>I dessa uttryck används ordet måtto (från måtta) och inte motto (som betyder ung. valspråk)</message>
      <example>Alla hinder bör <marker>i möjligaste måtto</marker> undanröjas.</example>
      <example correction="">Alla hinder bör <marker>i möjligaste motto</marker> undanröjas.</example>
    </rule>
  </category>
  <!-- ====================================================================== -->
  <!-- Ord som hör ihop -->
  <!-- ====================================================================== -->
  <category id="CAT5" name="Ord som hör ihop">
    <rule id="AD" name="ad ...">
      <pattern>
        <token>ad</token>
        <token>
          <exception regexp="yes">hoc|notam|acta</exception>
        </token>
      </pattern>
      <message>Detta ord brukar sällan stå ensamt på svenska. Menade du <suggestion>ad hoc</suggestion>, <suggestion>ad acta</suggestion> eller <suggestion>ad notam</suggestion>?</message>
      <example correction="ad hoc|ad acta|ad notam">
        <marker>ad foobar</marker>
      </example>
      <example>ad acta</example>
    </rule>
    <rule id="LOS" name="los ...">
      <pattern>
        <marker>
          <token>los</token>
        </marker>
        <token>
          <exception regexp="yes">angeles|lobos</exception>
        </token>
      </pattern>
      <message>Menade du <suggestion>loss</suggestion> som i "släppa taget om", eller är det en del av ett namn?</message>
      <example>Los Angeles</example>
      <example correction="Loss"><marker>Los</marker> Foobar</example>
    </rule>
  </category>
  <!-- ====================================================================== -->
  <!-- Syntax -->
  <!-- ====================================================================== -->
  <category id="CAT6" name="Syntax">
    <rule id="Forkortning" name="Böjning av förkortningar\...">
      <pattern>
        <token regexp="yes">^(\p{Lu}{2}+[i]*\p{Lu}+[\p{L}&amp;&amp;[^\p{Lu}]]{1,4}+)</token>
      </pattern>
      <message>Förkortningar som böjs binds ihop med ett kolon: <suggestion><match
            no="1"
            regexp_match="^(\p{Lu}{2}+[i]*\p{Lu}+)([\p{L}&amp;&amp;[^\p{Lu}]]{1,4}+)"
            regexp_replace="$1:$2"></match></suggestion> </message>
      <example>Med det nya API:s fördelar, kan du hitta nya lösningar.</example>
      <example correction="API:s">Med det nya <marker>APIs</marker> fördelar, kan du hitta nya lösningar.</example>
    </rule>
    <rule id="ORDNINGSTAL" name="Ordningstal">
      <pattern>
        <token regexp="yes">^(1a|2a|[\d]*[1-2]e)</token>
      </pattern>
      <message>Siffror med ändelser binds ihop med ett kolon: <suggestion><match
            no="1" regexp_match="^(1|2|[\d]*[12])(a|e)" regexp_replace="$1:$2"></match></suggestion></message>
      <example>Hon kom på 2:a plats</example>
      <example correction="2:a">Hon kom på <marker>2a</marker> plats</example>
    </rule>
    <rule id="ORDNINGSTAL2" name="Ordningstal2">
      <pattern>
        <token regexp="yes">^([3-90][ae]|[\d]*[3-90][e]|[^1]*[012][ae])</token>
      </pattern>
      <message>Siffror med ändelser binds ihop med ett kolon: <suggestion><match
            no="1" regexp_match="^([3-90]|[\d]*[3-90])([ae])"
            regexp_replace="$1:$2"></match></suggestion></message>
      <example>Han kom på 5:e plats</example>
      <example correction="5:e">Han kom på <marker>5e</marker> plats</example>
    </rule>
  </category>
<!--================================================
Kontamination
dvs. ihopblandning av besläktade ord. 
Exempelvis "ta självmord" vilket antingen heter:
"begå självmord" eller "ta sitt liv"
===============================================-->
  <category id="CAT7" name="Kontamination">
    <rule id="NEG_PLANER_OM" name="Planer om">
      <pattern case_sensitive="no">
        <token>planer</token>
        <token>om</token>
      </pattern>
      <message>Undvik att blanda konstruktioner. "Planer om" bör vara <suggestion>planer på</suggestion> eller <suggestion>drömmar om</suggestion>.</message>
      <example correction="planer på|drömmar om">Hon hade stora <marker>planer om</marker> det nya systemet.</example>
      <example>Hon hade stora <marker>drömmar om</marker> det nya systemet</example>
      <example>Hon hade stora <marker>planer på</marker> förändringar.</example>
    </rule>
    <rule id="MELLAN_TILL" name="Mellan klockan fem till tio">
      <pattern case_sensitive="no">
        <token>mellan</token>
        <token regexp="yes">klockan|kl|kl\.</token>
        <token/>
        <token>till</token>
        <token/>
      </pattern>
      <message>Undvik att blanda två konstruktioner. Skriv hellre <suggestion>\1 \2 \3 och \5</suggestion> än \1 \2 \3 \4 \5.</message>
      <example correction="Mellan klockan två och fyra"><marker>Mellan klockan två till fyra</marker>.</example>
    </rule>
    <rule id="NEG_TA_SJALVMORD" name="Ta självmord">
      <pattern case_sensitive="no">
        <token>ta</token>
        <token>självmord</token>
      </pattern>
      <message>Undvik att blanda konstruktioner. "Ta självmord" bör vara <suggestion>begå självmord</suggestion>, <suggestion>ta ditt liv</suggestion> eller <suggestion>ta sitt liv</suggestion>.</message>
      <example correction="begå självmord|ta ditt liv|ta sitt liv">Har du någonsin funderat på att <marker>ta självmord</marker>.</example>
      <example>Har du någonsin funderat på att <marker>begå självmord</marker>.</example>
    </rule>
    <rule id="NEG_MELLAN_SYD_TILL_NORD" name="Mellan syd till nord">
      <pattern>
        <token>mellan</token>
        <token postag="PM.*" postag_regexp="yes"></token>
        <token>till</token>
        <token postag="PM.*" postag_regexp="yes"></token>
      </pattern>
      <message>Undvik att blanda konstruktioner. Använd antingen <suggestion>mellan \2 och \4</suggestion> eller <suggestion>från \2 till \4</suggestion></message>
      <example correction="Mellan Stockholm och Skara|Från Stockholm till Skara"><marker>Mellan Stockholm till Skara</marker> finns inget intressant.</example>
      <example><marker>Mellan Stockholm och Skara</marker> finns inget intressant.</example>
    </rule>
    <rule id="I_STOR_GRAD" name="I stor grad &gt; i hög grad">
      <pattern case_sensitive="no">
        <token>i</token>
        <token>stor</token>
        <token>grad</token>
      </pattern>
      <message>Använd hellre <suggestion>i hög grad</suggestion> än "i stor grad".</message>
      <example correction="i hög grad">Affärens kunder är <marker>i stor grad</marker> nöjda med servicen.</example>
    </rule>
    <rule id="NEG_KLAGOMAL_MOT"
          name="Framföra klagomål &quot;mot&quot; någon ej &quot;över&quot;">
      <pattern case_sensitive="no">
        <token>klagomål</token>
        <token>över</token>
      </pattern>
      <message>Man framför <suggestion>klagomål mot</suggestion> någon, inte "över" någon.</message>
      <example correction="klagomål mot">Maria framförde sina <marker>klagomål över</marker> socialen.</example>
    </rule>
    <rule id="NEG_ANGRA_PA_ATT" name="Ångra på att &gt; Ångra att">
      <pattern case_sensitive="no">
        <token regexp="yes">ångra|ångrar|ångrade</token>
        <token>på</token>
        <token>att</token>
      </pattern>
      <message>Man ångrar inte "på" något utan man ångrar något. Skriv därför inte "\1 \2 \3" utan skriv <suggestion>\1 \3</suggestion>.</message>
      <example correction="ångrade att">Hon <marker>ångrade på att</marker> hon suttit ensam hemma den fredagen.</example>
    </rule>
  </category>
  <category id="SSK_8" name="Stor eller liten bokstav">
    <rule id="VECKODAGARS_NAMN" name="Veckodagars namn">
      <antipattern case_sensitive="yes">
        <token regexp="yes">&weekdays;</token>
      </antipattern>
      <antipattern>
         <token postag="SENT_START" />
         <token regexp="yes">&weekdays;</token>
      </antipattern>
      <pattern>
        <token regexp="yes">&weekdays;</token>
      </pattern>
      <message>Veckodagars namn skrivs med inledande gemen bokstav. Skriv <suggestion><match no="1" case_conversion="startlower" /></suggestion> inte "\1".</message>
      <example correction="måndag">idag är det <marker>Måndag</marker>.</example>
    </rule>	
    <rule id="MÅNADERS_NAMN" name="Månaders namn">
      <antipattern case_sensitive="yes">
        <token regexp="yes">&months;</token>
      </antipattern>
      <antipattern>
        <token postag="SENT_START" />
        <token regexp="yes">&months;</token>
      </antipattern>
      <pattern>
      	<token regexp="yes">&months;</token>
      </pattern>
      <message>Månaders namn skrivs med inledande gemen bokstav. Skriv <suggestion><match no="1" case_conversion="startlower" /></suggestion> inte "\1".</message>
      <example correction="september">Den bästa månaden är <marker>September</marker>.</example>
    </rule>
  </category>
</rules>




© 2015 - 2024 Weber Informatics LLC | Privacy Policy