Avanceret oversættelse

Nu har du en idé om hvordan man oversætter en PO-fil. I dette afsnit vil vil følge standard-måden at oversætte en ny PO-fil, vedbrug af KBabel's avancerede egenskaber. Vi antager du allerede har åbnet en skabelon POT-fil og gemt den som PO-fil.

Navigation i PO-fil

KBabel lader dig navigere nemt gennem filen følgende tilstanden af de forskellige oversættelser. Den uoversatte/fuzzy-status blev allerede introduceret. En besked kan være markeret som forkert som et resultat af efterprøvningstjek eller efterprøvning gjort af msgfmt. Og KBabel understøtter naturligvis historikken af besøgte beskeder med Fremad/ Tilbage ligesom Konqueror.

Alle kommandoer til navigation er i Kør-menuen.

Page Up

Gå til tidligere besked

Page Down

Gå til næste besked

Ctrl+Page Up

Gå til forrige fuzzy besked.

Ctrl+Page Down

Gå til næste fuzzy besked

Alt+Page Up

Gå til forrige uoversatte besked.

Alt+Page Down

Gå til næste uoversatte besked.

Shift+Page Up

Gå til forrige besked med fejl

Shift+Page Down

Gå til næste besked med fejl

Ctrl+Shift+Page Up

Gå til forrige fuzzy eller ikke oversatte besked

Ctrl+Shift+Page Down

Gå til næste fuzzy eller ikke oversatte besked

Smart redigering

Smart redigering betyder at editoren vil hjælpe dig med nemt at rediger oversættelsen, mens den tager hensyn til det specielle ved PO-formatet. Den vil “escape” rigtigt når det er nødvendigt.

Den understøtter også mere end en tilstand for indsætning af linjeslut. Dette er meget nyttigt på grund af den måde gettext håndterer linjeslut. Den ignorerer dem simpelthen. (Du kan tænke på det som om al teksten i msgstr er en enkelt linje.) Hvis du ønsker at indsætte en “rigtig” linjeslut, skal du indsætte \n. Men de fleste iversættere er ikke klar over, at en nu linje i msgstr ikke tilføjer et mellemrum mellem linjerne. Dette kan nemt løses ved at tilføje et mellemrum ved slutningen af hver linje. Men det er også nemt at glemme, så smart redigering gør dette automatisk for dig.

Tabellen nedenfor opsummerer egenskaberne for smart redigering.

Tab

Indsæt \t

"

Indsæt \"

Enter

Hvis det sidste tegn før markøren ikke er et mellemrum, indsættes et mellemrum. Derpå startes en ny linje.

Ctrl+Enter

Start en ny linje uden yderligere overvejelser

Shift+Enter

Indsæt \n og start en ny linje

Bemærk

Hvis du ønsker at se hvor der er mellemrum, kan du slå Fremhæv baggrund til og/eller Markér hvidt med punkter i indstillingsdialogen under fanebladet Redigér Udseende.

Automatisk oversættelse

Som et første trin i at starte en ny oversættelse, tilbyder KBabel en funktion for automatisk at udfylde beskeder med oversættelser af ældre oversættelser. Vælg Værktøjer->Grov oversættelse og så vil KBabel præsentere følgende dialog:



I dialogen, skal du angive hvad der skal oversættes og vælge kilderne for de gamle oversættelser.

Foroven i Hvad der skal oversættes-rammen er tre afkrydsningsfelter (Ikke oversatte indgange, Fuzzy indgange , Oversatte indgange) til at angive hvilken slags beskeder du ønsker at oversætte. Ikke oversatte og fuzzy indgange er naturlige valg for automatisk oversættelse, men du kan også ændre allerede oversatte beskeder.

Den nøjagtige matchning for msgid'er vil altid blive brugt til grov oversættelse. Du kan imidlertid tilføje flere strategier, dvs. Tillad fuzzy oversættelse (langsomt) og Tillad enkeltords-oversættelse. Begge disse yderligere strategier skal være understøttet af de kilder der bruges (se nedenfor). Der er ingen specifikation af hvad “fuzzy oversættelse” betyder, men formålet er ret klart. “Enkelt-ords-oversættelse” er kun passende for nogle sprog. KBabel vil forsøge at oversætte hvert ord i msgid separat og så putte de oversatte ord (eller udtryk) i samme rækkefølge i msgstr .

Som kilde for grov oversættelse, kan en vilkårlig ordbogsmodul der er tilstede bruges. Der er en liste af Brug ikke-moduler og Brug-moduler. Modulerne bruges i den rækkefølge de er i Brug-listen. Første modul bliver spurgt om en oversættelse. Hvis den ikke findes, spørges næste modul i listen og så videre. Du kan bruge knapperne med pile til at flytte moduler mellem listerne. Glem ikke at ændre rækkefølgen til at passe til dine behov ved Flyt op og Flyt ned-knapperne.

Normalt vil KBabel markere hver groft oversat besked som fuzzy, fordi den antager at enhver automatisk oversættelse skal gennemses af en oversætter. Hvis du er 100% sikker på at den automatiske oversættelse vil være korrekt, eller du alligevel vil gennemse oversættelsen, tilladerMarkér ændrede indgange som dig at slå denne automatiske fuzzy-markering fra, men du vil skulle bekræfte dette.

Når du har sat alle valgmuligheder til at passe dine behov, trykker du på Start for automatisk at oversætte beskeder. Du kan følge fremskridtslinjen, og hvis det skal være, kan du bruge Stop-knappen.

Efterprøv din oversættelse

Alle laver fejl en gang imellem. Så KBabel understøtter et antal tjek for typiske problemer i oversættelser. Disse tjek (ikke syntaks-tjek) kan basalt set udføres på to måder.

Tjek kan udføres ved hver ændring af den oversatte tekst. Disse kaldes automatiske tjek og de kan slås til i KBabel's indstillingsdialog. Automatisk tjekning af syntaks er mulig hver gang filen gemmes.

De automatiske tjek kan gøre KBabel langsom. Hvis du har en langsommere computer, kan du slå de automatiske tjek far og kun bruge den anden mulighed. Du kan starte alle slags tjek fra Værktøjer-> Validering. Så udføres tjek på alle beskeder i filen og de forkerte markeres som fejl.

Tjek syntaks

Dette kalder på msgfmt for at tjekke gyldigheden af PO-filen som set af GNU's gettext-pakken. Den vil vise resultatet af kommandoen og markere forkerte msgstr'er.

Tjek argumenter

Ukorrekte oversættelser kan få programmer til at bryde sammen. De farligste dele af oversættelserne er argumenterne, f.eks. til printf-lignende funktioner. Dette tjek sammenligner antal og typer af argumenterne i msgid og msgstr. De skal matche.

Tjek genvejstaster

GUI-tekst indeholder almindeligvis acceleratorer, dvs. bogstaver der kan bruges til hurtig adgang til GUI-elementer fra tastaturet. Disse angives ved specielle tegn, f.eks. & i KDE. Typiske krav til oversættelsen er at oversat tekst også skal indeholde acceleratorer. Dette tjek vil bemærke dette problem for dig. Accelerator-tegnet kan angives i IndstillingerDiverse-fanebladet.

Kig efter oversæt sammenhængsinfo

Du vil formodentlig kun behøve dette for KDE-oversættelse. Noget af teksten er for almindelig og skal oversættes forskelligt i forskellige sammenhænge. I KDE er sammenhæng beskrevet i begyndelsen af msgid efter den specielle sekvens :_. Men hvis en oversætter ikke er klar over denne konvention og forsøger også at oversætte sammenhængsinformationen, så vil dette tjek prøve at finde disse. Hvis det finder oversat sammenhængsinformation, bør du fjerne den.

Tjek flertalsformer

Hvis msgid er angivet som en “flertalsform”, skal oversættelsen indeholde det rigtige antal oversættelser adskilt af \n. Det rigtige antal afhænger af sproget der oversættes til og er angivet under Identitet-fanebladet i Indstillinger-dialogen. Dette er kun implementeret for KDE for øjeblikket.

Tjek ligninger

Ligninger er et specielt format i msgid typisk brugt i .desktop-filer. Og fordi dine oversættelser vil blive flettet tilbage til disse filer, skal msgstr også bruge dette specielle format. Det betyder at oversættelsen skal starte (indtil den første forekomst af = med en samme tekst som den oprindelige besked, f.eks. Name=.

Stavekontrol af oversættelsen

Som altid er det meget vigtigt at stavekontrol af oversættelsen udføres inden resultatet bruges. På den måde kan man finde stavefejl og andre problemer med oversættelsen. KBabel bruger KDE's standardbibliotek for stavekontrol, og standardindstillingen findes i indstillingsdialogen for projektet. Stavekontrollen selv findes i undermenuen Værktøjer->Stavning. Du kan bruge et antal forskellige varianter af stavekontrol:

Stavekontrol...

Dette er et generisk kald af en dialog, hvor du kan vælge stavekontrollens tilstand og sætte en standardtilstand. Dette startes med Ctrl+I.

Tjek alt...

Stavekontrol af alle beskeder i filen.

Tjek fra markørens position...

Start stavekontrol ved positionen i den aktuelle besked og gå fremad mod enden af filen.

Tjek denne...

Stavekontrol kun af denne besked.

Tjek markeret tekst...

Hvis der er en markeret tekst i msgstr-editoren, er denne valgmulighed tilstede og den vil kun udføre stavekontrol på denne tekst.

Oversættelse af XML, HTML, ...

Opmarkeringssprog bruges stadig mere i GUI. KDE-projektet bruger også PO-filer til at oversætte DocBook dokumentationsfiler (som også er et opmarkeringssprog). KBabel indeholder en hel del funktionalitet til at understøtte denne tendens.

Bemærk

Her vil vi kun beskrive funktioner relateret til mærker brugt til selve opmarkeringen. Det andet problem introduceret bed brugen af opmarkeringssprog er oversættelse af længere tekster. Dette problem behandles ved diff-egenskaben beskrevet i det følgende afsnit.

Den aktuelle udgave af KBabel er i stand til at finde ud af hvilke mærker der bruges i msgid og give nem adgang til dem ved brug af følgende handlinger fra Redigér:

Indsæt næste mærke

Dette indsættet næste mærke fundet i msgid i oversættelsen. KBabel finder mærket der skal indsættes ved at tælle antallet af mærker fra begyndelsen af oversættelsen.

Redigér->Indsæt mærke

Denne undermenu indeholder alle de forskellige opmarkeringsmærker fundet i den originale engelske streng. Ved at vælge en af dem kan du indsætte den ved den aktuelle position i den oversatte tekst.

Vis forskellen

Som vi allerede har sagt indeholder nye programmer, i forsøget på at være brugervenlige, en masse længere beskrivende tekster, inkluderende opmarkeringer. Hvis en udvikler ændrer en del af tekst, vil GNU gettext-system i de bedste tilfælde, beholde den gamle oversættelse og markere den som fuzzy. (I de værste tilfælde vil du miste oversættelsen fuldstændigt, afhængig af hvor meget tekst der er ændret). Dette virker o.k., hvis en msgid er kort, fordi du så hurtigt kan finde ændringerne. Men hvis teksten er lang nok, vil du skulle kæmpe for at finde ud af hvad der er blevet ændret (For eksempel, kan det være en meget lille ændring lavet af korrekturlæserne.)

For at hjælpe, kan KBabel blive bedt om at slå op i den oprindelige msgid og vise forskellen. Ændringerne vises grafisk i vinduet for den Originale streng. Den nøjagtige metode kan sættes i KBabel's indstillingsdialog. Værktøjer->Diff->Vis Diff vil vise de forskelle der er fundet. For at se den aktuelle tekst uden at være blandet med den tidligere bruges Værktøjer->Diff->Vis original tekst.

Du kan slå automatisk opslag af forskelle til og fra ved at vælge Værktøjer->Diff->Diff-tilstand. Når diff-tilstanden er til, starter forskelssøgningen når du går til en ny besked.

Som altid kan du bruge forskellige kilder til at finde den gamle version af teksten, der alle sættes i KBabel's indstillingsdialog:

Oversættelsesdatabase

Du kan bruge oversættelsesdatabasen til opslag af forskelle. Vi anbefaler stærkt at automatisk gemning af nyligt oversatte beskeder i oversættelsesdatabasen er slået til i Oversættelsesdatabasens indstillingsdialog. Denne tilstand kan slås til ved Brug beskeder fra oversættelsesdatabase.

Træ af de gamle filer

Dette vil kun blive brugt hvis søgning i oversættelsesdatabasen er slået fra. Ved at sætte Basismappe for diff-filer kan du navigere KBabel til den fil der skal bruges til forskellen. Den tager den relative sti af den åbnede fil og bruger denne relative sti i mappen der er angivet her. Hvis der er en tilsvarende fil, vil den blive brugt. For at bruge denne metode, må du lave en kopi af gamle filer før hver opdatering.

Manuelt valgt fil

Hvis foregående mulighed ikke virker rigtigt, kan du altid sæt forskelsfilen manuelt ved at vælge Værktøjer->Diff->Åbn fil for Diff.

Bemærk

Forskelsopslag er ikke altid akkurate, fordi PO-filen ikke indeholder nogen reference til den originale besked.