Smartare stavekontroll

Forfattar

Karl Ove Hufthammer

Innleiing

Tradisjonell stavekontroll fører lett til mange falske positive, då det manglar ein del ord i ordlistene som stavekontrollen brukar. Dette gjeld spesielt samansette ord («fargeinnstillingar») og tekniske ord («autentisering»). Me har derfor eit skript for å køyra ein litt smartare stavekontroll av omsetjingane våre.

Dette skriptet tek omsyn til kva ord som er brukte i omsetjingane frå før. Viss for eksempel eit ord er ukjent for stavekontrollen, men brukt 15 gongar i omsetjingane, er det truleg likevel rettstava.

Slik ser det ut i praksis:

$ stav omsetjing.po
administera
biletsensorane
chmod
detajar
innheld
ressuren
[…]
alarmkalendermal 1
betautgjeving 1
biletetype 1
dekompromering 1
[…]
adressen 2
alarmtidspunkt 2
angrelogg 2
buffring 2
[…]
absoluttadresse 3
alarmutsetjing 3
brukarstadfesting 3
[…]
autentisering 9

Dei første orda, utan tal, er dei som er brukte i fila omsetjing.po, men ikkje i nokon tidlegare omsetjingar. Her ser me fleire stavefeil – «administera», «detajar», «innheld» og «ressuren», som nok skulle vera «administrera», «detaljar», anten «innhald» eller «inneheld» og «ressursen». Orda «biletsensorane» og «chmod» er derimot stava rett.

Så kjem orda med talet 1 etter seg. Desse er brukte éin gong (anten i denne fila1 eller i éi anna fil). Her er det òg eit par stavefeil – «dekompromering» og «biletetype».

Meir om tala

Generelt viser tala kor ofte orda er brukte i tidlegare omsetjingar. Jo lenger ned på tal-lista me kjem, jo mindre truleg er det reelle stavefeil.

Det kan likevel førekomma feilstavingar ved høgare tal, for eksempel viss ein omsetjar trur ordet skal stavast på ein annan måte enn det skal. Her ser me for eksempel stavefeila «adressen» (skal vera «adressa» på nynorsk) og «buffring» (skal vera «bufring»).

Forskjellen på manglande tal og talet 1 er litt subtil. Ord utan tal finst i omsetjingsfila, men ikkje i frekvens­ordlista. Det vil typisk vera fordi dei vart skrivne inn i omsetjingfila etter siste gong frekvens­ordlista vart oppdatert2. Viss me oppdaterer frekvens­ordlista før me køyrer stavekontrollen, skal altså alle orda ha talet 1 eller høgare. Så i praksis bør me vanlegvis sjekka ord utan tal og ord med talet 1 like nøye.

Installering

Skripta lastar me ned med denne kommandoen:

git clone https://gitlab.com/l10n-no/l10n-filtrert-stavekontroll.git

For å bruka stavekontrollen må me først laga ei frekvensordliste. Sjå dei første installasjonsstega i rettleiinga om skripta for frekvensstatistikk for oppskrift på dette.

Me treng òg verktøyet Pology installert. Sjå rettleiinga om automatisk korrekturlesing for oppskrift på nedlasting og installering av dette.

Og så må me sjølvsagt ha stavekontroll for språket vårt (nynorsk eller bokmål) installert. Det er det vanlegvis frå før av, men viss ikkje, bruk pakke­handsamaren til å installera det. Alle stavekontroll­filer støtta av pyenchant kan brukast.

Bruk

Grunnleggjande bruk

For å sjekka filene fil1.po, fil2.po og alle filene i mappa mappe1 (med undermapper), køyrer me denne kommandoen:

./stavekontroll.sh /adresse/til/frekvens-nn.po fil1.po fil2.po mappe1

Her er /adresse/til/frekvens-nn.po adressa til frekvensordlista for det aktuelle språket (her nynorsk), som me laga tidlegare.

Kortkommando for enklare bruk

Kommandoen ovanfor er litt lang og tung, og til dagleg bruk er det greiare med ein kortversjon der me slepp å stå i skriptmappa og å skriva inn adressa til frekvensordlista. Legg følgjande inn i fila ~/.bashrc (eller tilsvarande):

function stav {
    /adresse-til-stavekontrollen/stavekontroll.sh /adresse/til/frekvens-nn.po "$@"
}
export -f stav

(Tilpass mappeadressene etter kor du har lagt ting.)

No kan me bruka kommandoen stav slik (uansett kva mappe me står i):

stav fil1.po fil2.po mappe1

Fotnotar

  1. Det er viss frekvensordlista stavekontrollen brukar, var laga etter at ordet kom inn i fila.↩︎

  2. Men det kan sjølvsagt òg vera fila ikkje vart brukt i det heile teke til å laga frekvensordlista.↩︎