Automatisk korrekturlesing
Innleiing
Me har eit system for automatisk/maskinell korrekturlesing av omsetjingane våre, basert på Pology-rammeverket. Det kan blant anna brukast for å sjekka at omsetjingane følgjer dei språklege retningslinjene våre.
Systemet finn mange av dei vanlegaste feila, både når det gjeld ordval, bøying og teiknsetjing – og til og med litt grammatikk. Her er eit eksempel på korleis det fungerer:

Installering og bruk
For å ta systemet i bruk må me først lasta ned Pology (korrekturlesingsfilene våre følgjer med). Når du står i mappa du vil leggja programmet i (for eksempel /home/brukarnamn/utvikling/), skriv:
git clone https://invent.kde.org/sdk/pology.gitDu treng ikkje installera programmet, men det greitt å kunna køyra det uansett kva mappe du står i. Legg derfor undermappa pology/bin i PATH-variabelen. Brukar du Bash, ordnar du det ved å leggja dette i fila ~/.bashrc:
export PATH=$PATH:/home/brukarnamn/utvikling/pology/binNår du har starta terminalen på nytt, kan du no korrekturlesa ei omsetjingsfil eller ei heil mappe med omsetjingsfiler med kommandoar som
posieve check-rules omsetjing.po
posieve check-rules mappeFor at dette skal verka, må omsetjingsfilene ha innebygd informasjon om kva som er omsetjingsspråket (slik at programmet veit kva språkreglar det skal bruka). Har dei ikkje det, kan du oppgje det manuelt med -slang:-argumentet, slik for nynorsk:
posieve check-rules -slang:nn omsetjing.poBruk språkkoden nb for bokmål.
Integrering med Lokalize
Det finst to måtar å bruka korrekturlesinga på i Lokalize. Den enklaste er å leggja til argumentet -slokalize når du køyrer kommandoen. Så lenge Lokalize er ope, vert alle filene som korrekturlesinga meiner har feil, automatisk opna i programmet. Lista over omsetjingar vert òg filtrert til berre å visa dei som har feil.

Den andre måten er å slå på automatisk sjekk under «Innstillingar → Set opp Lokalize → Pology»:

Med denne varianten må du venta litt ved kvar oppføring for at resultatet av testen vert tilgjengeleg. Personleg føretrekkjer eg derfor den første løysinga.
Ekstra argument og eit nyttig alias
Det finst fleire andre argument ein kan bruka. Blant anna kan ein inkludera og ekskludera utvalde reglar. Skriv
posieve check-rules -H
# og
posieve --helpfor ei oversikt over alle argumenta. Eitt argument ein godt kan ha med som standard, er --skip-obsolete, som gjer at kontrollen hoppar over utdaterte (utkommenterte) oppføringar.
For å spara ein del tastetrykk er det greitt å laga eit alias som køyrer programmet med dei argumenta ein vanlegvis brukar. Viss du for eksempel alltid korrekturleser nynorskfiler, kan du leggja dette i ~/.bashrc (tilpass viss du brukar eit anna skal enn Bash):
alias sjekk="posieve --skip-obsolete check-rules -slang:nn -slokalize"No held det å skriva
sjekk mappefor å korrekturlesa alle filene i mappa mappe og opna feila som vart funne, direkte i Lokalize for retting.
Falske positiv
Korrekturlesingsreglane er skrivne for å avdekkja moglege feil. Dei er ikkje perfekte, og av og til får me falske positive. Då kan me markera at regelen ikkje skal gjelda for den aktuelle omsetjinga.
Me såg tidlegare at programmet reagerte på ordet «søketilleg», som skulle vera «søkjetillegg»:

Det er basert på ein regel som ser etter teksten «søke» inni eit ord. Men viss me har teksten «søket» (bunden form eintal av substantivet «søk») og regelen reagerte, har me ein falsk positiv. Då ser me om det står ein ID for regelen. Det gjer det, id=verb-søke. Me kan då leggja til ein omsetjingsmerknad (lenkja «Legg til merknad» i Lokalize) og skriva inn ID-en med skip-rule: framfor seg:
skip-rule: verb-søkeNeste gong ein køyrer korrekturlesinga, vil ho ikkje bruka regelen på denne teksten.
(Regelen verb-søke er faktisk litt smartare, så ein slik skip-rule er ikkje nødvendig. Regelen har alt eit unntak for «søke» etterfølgt av bokstaven «t» etterfølgt av ordslutt. Han vil altså ikkje reagera på «søket», men vil reagera på for eksempel «søketreet».)
Ekstrareglar ikkje brukte som standard
Sjølv om regelsettet er skrive berre for å avdekkja moglege feil, kan det vera reglar som gjev så pass mange falske positive, at dei ikkje bør brukast som standard.
Førebels har me berre éin slik regel, som testar om omsetjinga inneheld eit ord som står i bokmålsordboka, men ikkje i nynorskordboka. Tanken er god, men dessverre er ordtilfanget i ordbøkene såpass ulik at regelen ikkje kan brukast som standard. (Revisjonsprosjektet arbeider med å harmonisera ordtilfanget i dei to ordbøkene, så i framtida kan det kanskje verta aktuelt å slå på regelen som standard.)
Men det kan vera greitt å køyra regelen manuelt (spesielt når ein har retta alt dei andre reglane reagerer på). Det kan me gjera ved å køyra reglane som ligg i «omgjevnaden» mformsjekk (målformsjekk). Slik gjer me det for å køyra (berre) denne regelen:
posieve check-rules -senv:mformsjekk -srule:bokmålsordReglar for nynorsk og bokmål
For nynorsk har me svært mange reglar, utvikla over fleire år. Men for bokmål finst det nesten ingen. Så førebels er korrekturlesinga mindre nyttig for bokmål.
Bokmålsomsetjarane har altså her ein jobb å gjera! Ein grei start kan vera å ta dei nynorske reglane og prøva å tilpassa dei til bokmål (der det høver). Ta kontakt på e-postlista vår l10n-no for teknisk assistanse.
Korleis fungerer dette teknisk sett?
Dei fleste reglane er enkle søk etter tekstbitar. Her er eit eksempel:
[gjennomsynleg]i
hint="gjennomsynleg → gjennomsiktig"Denne regelen seier at dersom ein finn teksten «gjennomsynleg» (i-en tyder at ein ikkje skal skilja mellom store og små bokstavar), slår regelen til, og ein får vist feilmeldinga «gjennomsynleg → gjennomsiktig».
Men søkjeteksten er litt meir avansert enn berre ord. Han er det me kallar eit regulært uttrykk. Det gjer at me kan laga meir fleksible søk. Følgjande vil for eksempel reagera på blant anna både «trådd i kraft» og «trø i kraft»:
[(trå|trår|trått|trådd|trådde|trø|trør|trødde|trødd) i kraft]i
hint="trå/trø i kraft → tre i kraft"Og denne vil finna alle setningar som startar med ordet «Viss» eller «Dersom», men som ikkje har komma ein eller annan plass:
[\b(Viss|Dersom) [^,]+$]
id="komma-leddsetning-viss"
hint="Skal alltid vera komma etter leddsetning som står først i heilsetning"Me kan òg leggja til unntak. Denne regelen vil reagera på «forlaup» og «livslaup» (som bør vera «forløp» og «livsløp»), men ikkje på «bryllaup»:
[laup]i
hint="laup → løp"
valid after="[Bb]ryl"Me kan òg bruka den engelske originalteksten. Her finn me tekstar der originalen brukar ordet «please» og der me har for eksempel «vennleg(st)», «ver snill» eller «ver så snill» i omsetjinga:
{\bplease\b}i
hint="Ikkje bruk venlegst / ver så snill e.l. på norsk [avsnittet «Høflegheit» i retningslinjene]"
valid !msgstr="[Vv]enn?leg"
valid !msgstr="[Vv]er (så )?snill"Reglane kan òg bruka ordlister. På nynorsk har me for eksempel ein regel som sjekkar at me har brukt rett kjønn på orda. Denne er basert på ei liste over nynorske substantiv og vil reagera på tekst som for eksempel «eit parameter» (parameter er hankjønn) og «ein attributt» (attributt er inkjekjønn).
Til slutt er det mogleg å programmera reglar via programmeringsspråket Python. Då kan me laga svært sofistikerte reglar, men det vert òg mykje arbeid. Heldigvis kjem me langt med enkle reglar.