Instruktioner til oversætter

Fra GLFPD Wiki, den frie encyklopædi

(Forskelle mellem versioner)
Versionen fra 2. jan 2009 kl. 13:51
KennethNielsen (Diskussion | bidrag)

� Gå til forrige forskel
Versionen fra 2. jan 2009 kl. 17:49
KennethNielsen (Diskussion | bidrag)

Gå til næste forskel →
Linje 1: Linje 1:
-Denne guide er beregnet til nye oversættere og forklarer skridt for skridt hvordan man laver en opdaterings af en eksisterende oversættelse eller starter en ny. Oversættelser opbevares og vedligeholdes i po-filer, så guiden vil starte med en forklaring af formatet af po-filer.+Denne guide er beregnet til nye oversættere og forklarer, skridt for skridt, hvordan man laver en opdaterings af en eksisterende oversættelse eller starter en ny. Oversættelser opbevares og vedligeholdes i po-filer, så guiden vil starte med en forklaring af formatet af po-filer.
= po-filer (Gettext) = = po-filer (Gettext) =
Linje 5: Linje 5:
Internationalisering og lokalisering håndteres indenfor fri software hovedsageligt ved hjælp af et program som hedder Gettext. Måden det fungerer på er, at alle de tekststrenge som skal bruges i et program skrives på en bestemt måde, som gør det muligt at samle dem alle sammen i en po-fil. Denne fil kan så oversættes og oversættelserne kan begefter hives tilbage og bruges i programmet. Det betyder derfor, at alle de tekststrenge, som skal oversættes, er samlet i en enkelt fil (en po-fil) og for en oversætter er det derfor kun nødvendigt at lære hvordan denne fil ser ud, og ikke (sådan som nogle frygter) at skulle lære det programmeringssprog programmet er skrevet i. Internationalisering og lokalisering håndteres indenfor fri software hovedsageligt ved hjælp af et program som hedder Gettext. Måden det fungerer på er, at alle de tekststrenge som skal bruges i et program skrives på en bestemt måde, som gør det muligt at samle dem alle sammen i en po-fil. Denne fil kan så oversættes og oversættelserne kan begefter hives tilbage og bruges i programmet. Det betyder derfor, at alle de tekststrenge, som skal oversættes, er samlet i en enkelt fil (en po-fil) og for en oversætter er det derfor kun nødvendigt at lære hvordan denne fil ser ud, og ikke (sådan som nogle frygter) at skulle lære det programmeringssprog programmet er skrevet i.
-== En po-filssektion ==+== En po-filsektion ==
 + 
En po-fil består af mange små sektioner af tekst (adskilt af en blank linje). Hver bid svarer til en tekststreng fra programmet. En sådan sektion har den følgende struktur: En po-fil består af mange små sektioner af tekst (adskilt af en blank linje). Hver bid svarer til en tekststreng fra programmet. En sådan sektion har den følgende struktur:
Linje 19: Linje 20:
Linjen som begynder med <code>msgid</code> er den uoversatte streng, altså den Linjen som begynder med <code>msgid</code> er den uoversatte streng, altså den
streng i programmet som programmøren har markeret til streng i programmet som programmøren har markeret til
-oversættelse. Linjen som begynder med <code>msgstr</code> er den dertilhørenden+oversættelse. Linjen som begynder med <code>msgstr</code> er den dertil hørenden
oversættelse og altså den linje som man som oversætter skal oversættelse og altså den linje som man som oversætter skal
udfylde. Alle linjerne som starter med <code>#</code> er udfylde. Alle linjerne som starter med <code>#</code> er
Linje 77: Linje 78:
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
-I kommentaren til denne specialstreng findes først noget+I kommentaren til denne specielstreng findes først noget
ophavsretsinformation, her skal man som oversætter huske at opdatere ophavsretsinformation, her skal man som oversætter huske at opdatere
årstallet således at det stadig inkluderer man er i. Derefter følger årstallet således at det stadig inkluderer man er i. Derefter følger
Linje 88: Linje 89:
oversættere har lavet for denne oversættelse, husk at bruge og oversættere har lavet for denne oversættelse, husk at bruge og
opdatere denne. Efter kommentaren komme selve strengen som indeholder opdatere denne. Efter kommentaren komme selve strengen som indeholder
-forskellige former for specialinformation. Der er kun 3 af linjerne+forskellige former for specielinformation. Der er kun 3 af linjerne
som man behøver at bekymre sig om som oversætter. Man skal opdatere som man behøver at bekymre sig om som oversætter. Man skal opdatere
linjen <code>Last-Translator</code> med sit eget navn og e-mail, samt linjen <code>Last-Translator</code> med sit eget navn og e-mail, samt
Linje 94: Linje 95:
informationen <code>Danish <dansk@dansk-gruppen.dk></code>, hvis den informationen <code>Danish <dansk@dansk-gruppen.dk></code>, hvis den
ikke gøre det i forvejen. Derudover er der linjen ikke gøre det i forvejen. Derudover er der linjen
-<code>Plural-Forms</code> som beksriver hvilke man flertalsformer man+<code>Plural-Forms</code> som beskriver hvilke man flertalsformer man
har på det på sprog som filen oversættes til, mere om det senere. har på det på sprog som filen oversættes til, mere om det senere.
 +== Flertalsformer ==
 +
 +NÃ¥r man skriver tekststrenge i et program, har man muligheden for at
 +skrive en variabel ind i strengen, som vil blive erstattet af noget
 +andet, f.eks. et tal eller noget andet tekst. Hvis det der bliver sat
 +ind er et tal vil det være nødvendigt for at strengen at ændre sig alt
 +efter hvad dette tal er. Det forklares mÃ¥ske nemmest med at eksempel,
 +igen fra edit
 +
 + #: ../gedit/gedit-commands-file.c:266
 + #, c-format
 + msgid "Loading %d file..."
 + msgid_plural "Loading %d files..."
 + msgstr[0] "Indlæser %d fil..."
 + msgstr[1] "Indlæser %d filer..."
 +
 +I denne type af strenge er der nu 2 <code>msgid</code>'er, en for hver
 +af de forskellige former der er pÃ¥ engelsk. Herefter skal der sÃ¥ være
 +en <code>msgstr</code> for hver af de forskellige flertalsformer der
 +findes pÃ¥ dansk. Efter <code>msgstr[0]</code> skal stÃ¥ den danske
 +streng, som svarer til at der er nøjagtig 1 og
 +efter <code>msgstr[1]</code> skal stÃ¥ den streng som svarer til at der
 +er 0 eller mere end 1. Grunden til at man har lavet det pÃ¥ denne mÃ¥de,
 +i stedet for bare at lave det som 2 streng, er at andre sprog har
 +væsentligt mere indviklede regler for flertalsformer og i flere end 2
 +former.
 +
 +''VIGTIGT:'' Eftersom det kan variere fra sprog til sprog hvordan man
 +laver flertalsformer er man nødt til at definere dette i filen hvis
 +der findes sÃ¥dan nogle <code>plural</code>-streng som denne her. Dette
 +gøres med den linke i filhovedet som starter
 +med <code>Plural-Forms:</code> og den skal for danske oversættelser
 +have værdien <code>nplurals=2; plural=(n != 1);</code>. Hvis man
 +støder pÃ¥ en uoversat flertalsstreng, skal man derfor sikre sig at
 +denne linje er i filhovedet, eller fÃ¥r man en fejl senere nÃ¥r man
 +kontrollerer filen for fejl.
 +
 +== Specielle entiteter i strenge ==
 +
 +De fleste strenge indeholder blot almindelig tekst, men der er ogsÃ¥
 +indtil flere specielle ting som man kan støde pÃ¥ og som det som ny
 +oversætter kan være svært at vide hvad man skal gøre ved. Disse er
 +beskrevet i de følgende undersektioner.
 +
 +=== Variable ===
 +
 +Som tidligere nævnt kan man bruge variable i programstrenge og bruge
 +disse til at fÃ¥ sat et eller andet ind i strengen. Det kan være alt
 +lige fra tal, fil-navne eller -stier eller blot noget andet tekst. Der
 +vil sÃ¥ stÃ¥ en variabel, det sted i strengen hvor dette skal sættes
 +ind. Hvordan disse variable ser ud, vil afhænge af hvilket
 +programmeringssprog programmet er skrevet pÃ¥. Det kan f.eks. være
 +sÃ¥dan nogle som <code>%s</code>, <code>%d</code>
 +og <code>%i</code>. Der er for mange muligheder inden for de
 +forskellige sprog til at skrive dem alle sammen her, sÃ¥ hvis man som
 +oversætter er i tvivl om noget er en variabel mÃ¥ man endelig
 +spørge. Det vigtig ved disse strenge er ''at man bevarer dem''. NÃ¥r
 +man er færdig med strengen, skal der altid stÃ¥ de samme variable som
 +der gør i originalstrengen. Nogle gange vil det være nødvendigt at
 +bytte rundt pÃ¥ rækkefølgen af disse variable og her skal man være
 +forsigtig. MÃ¥den at gøre dette pÃ¥ vil varierer fra sprog til sprog og
 +hvis man støder pÃ¥ problemet, er det derfor nemmere at spørge og sÃ¥
 +finder vi en løsning.
 +
 +=== Genvejstegn ===
 +
 +Strenge som skal have et bogstav associeret med sig, sÃ¥ledes at disse
 +bogstaver kan komme til at fungere som genvejstegn (kendetegnet i
 +programmer ved at der er en streg under bogstavet), hÃ¥ndteres i
 +oversættelser ved at sætte et tegn foran det bogstav som skal være
 +genvejstegn. Hvilket tegn der bliver brugt til at markere dette kan
 +variere fra projekt til projekt, men i næsten alle GNOME-relaterede
 +projekter bruger bundstregen "_". Et eksempel pÃ¥ sÃ¥dan en streng kunne
 +være "Save" i filmenuen, vist hernedenunder
 +
 + msgid "_Save"
 + msgstr "_Gem"
 +
 +PÃ¥ engelsk er der valgt "s" som genvejstegn og i den danske version
 +har man valgt "g". Det er vigtigt at sørge for, at man fÃ¥r defineret
 +sÃ¥dan et genvejstegn, nÃ¥r der er et i originalstrengen. Det er ogsÃ¥
 +vigtigt at man tænker lidt over hvilke tegn man bruger, sÃ¥dan at
 +genvejtegnene bliver sÃ¥ konsistente som muligt pÃ¥ tværs af
 +programmerne og at man ikke bruger det samme tegn til flere strenge
 +i f.eks. den samme menu.
 +
 +=== Opmærkning ===
 +
 +I visse sammenhænge bliver de tekststrenge som skal oversættes
 +formatteret ved hjælp af opmærkning i stil med mÃ¥den man skriver
 +hjemmesider pÃ¥. SÃ¥ hvis man f.eks. vil have noget tekste med '''fed'''
 +skrifttype sÃ¥ skriver man <code><bold>'''fed
 +tekst'''</bold></code>. Det sidste, som har en skrÃ¥streg i sig, er det
 +afsluttende eller lukkende mærke. Man kan indlejre sÃ¥danne mærker,
 +sÃ¥ledes at hvis man i en streng som er fed vil have noget til bÃ¥de at
 +være med fed og pÃ¥ skrÃ¥ kan man skrive <code><bold>'''bÃ¥de fed
 +'''<italic>''''og pÃ¥ skrÃ¥''''</italic></bold></code>. Det er vigtigt
 +at lukke indlejrede mærker pÃ¥ samme mÃ¥de som i originalen.
 +
 +=== Lodret stregtegn "|" (en. pipecharacter) ===
 +
 +Hvis den samme tekstreng optræder mere end en gang i et program, vil
 +Gettext samle det til en sektion i po-filen, som vil have flere
 +kildekodereferencer. Selv om dette er rigtigt smart og hjælper
 +ufatteligt meget i langt størstedelen af tilfældende er der visse
 +tilfælde hvor det ikke duer. Det kan være hvis det samme ord kan
 +betyder mere end en ting og bruges forskellig flere steder i
 +programmet. Det kunne (som et tænkt eksempel) være et program hvor man
 +mÃ¥ler ydelse af et eller andet og samtidig kan gemme og indlæse
 +profiler for hvordan det bliver vist. I sÃ¥dan et program kunne man
 +forestille sig at strengen "Load" bliver brugt, bÃ¥de i betydningen
 +"Belastning" og i betydningen "Indlæs". Hvis strengene bliver samlet
 +til en er det selvfølgelig ikke muligt at oversætte det til to
 +forskellige ting. I et lang stykke tid er det blevet ordnet ved at man
 +har hæftet et stykke kontekst pÃ¥ før strengen adskilt fra selv
 +strengen med en "|" og man har sÃ¥ i en kommentar bedt oversætterne om
 +kun at oversætte det efter "|". Dette ville sÃ¥ betyde at der nu i
 +stedet vil være to strengen f.eks. "Noun|Load" og "Verb|Load" som skal
 +oversættes forskelligt. Det er meget vigtigt at være opmærksom pÃ¥ at
 +gøre dette rigtigt og kun oversætte det efter "|". Denne metode er
 +umidlertid meget sÃ¥rbar for fejl og man er lige nu (December 2008) i gang med at
 +implementere en erstatning for dette system. '''Løst forklaret vil
 +dette nye system betyde, at der vil komme et ekstra felt ligesom
 +<code>msgstr</code> og <code>msgid</code> som hedder
 +<code>msgctxt</code> hvor strengens kontekst vil komme til at stÃ¥, i stedet
 +for i selve strengen. Dette vil blive forklaret nærmere nÃ¥r
 +implementeringen er nÃ¥et længere.'''
 +
 +=== "translator-credits"-strengen ===
 +
 +I nogle programmer findes en speciel streng med <code>msgid</code>
 +"translator-credits". Denne bruges sÃ¥dan, at det den bliver oversat
 +til, indsættes i en boks med folk som har bidraget til
 +oversættelse. Det betyder at i stedet for at oversætte den ordret skal
 +man i stedet for indsætte en liste over folk som har bidraget til
 +oversættelsen, samt hold- og kontakt-information. Indenfor
 +GNOME-oversættelser bruges altid an standard mÃ¥de at udforme denne pÃ¥
 +som ser ud som nedenfor:
 +
 + #: ../gedit/gedit-commands-help.c:106
 + msgid "translator-credits"
 + msgstr ""
 + "Birger Langkjer\n"
 + "Keld Simonsen\n"
 + "Kenneth Christiansen\n"
 + "Marie Lund\n"
 + "Martin Willemoes Hansen\n"
 + "Ole Laursen\n"
 + "Kenneth Nielsen\n"
 + "M.P. Rommedahl\n"
 + "\n"
 + "Dansk-gruppen <dansk@dansk-gruppen.dk>\n"
 + "Mere info: http://www.dansk-gruppen.dk"
-<!--+Som det kan ses, er det altså først en liste af navne på
-1) Lav et sæt af dansk skærmbilleder som har det samme indhold, (størrelse)[1] og filnavn som de engelske.+bidragsyderne, herefter en blank linje og til sidst to linjer med navn
-2) Du kan finde de engelske via svn i mappen rhythmbox/trunk/help/C/figures+og kontaktinformation for holdet.
-3) Ændr i de strenge i po-filen som hører til de enkelte skærmbilleder, således at de, når der er et skærmbillede til, bliver en kopi af den engelske streng, og hvis der ikke er et skærmbillede skal der bare stå "Intet skærmbillede+
-4) Send skærmbilleder og po-fil til listen til integrering+
-5) Herefter ligger jeg skærmbillederne op i rhythmbox/trunk/help/da/figures og så vil de automatisk blive brugt+
--->+

Versionen fra 2. jan 2009 kl. 17:49

Denne guide er beregnet til nye oversættere og forklarer, skridt for skridt, hvordan man laver en opdaterings af en eksisterende oversættelse eller starter en ny. Oversættelser opbevares og vedligeholdes i po-filer, så guiden vil starte med en forklaring af formatet af po-filer.

Indholdsfortegnelse

po-filer (Gettext)

Internationalisering og lokalisering håndteres indenfor fri software hovedsageligt ved hjælp af et program som hedder Gettext. Måden det fungerer på er, at alle de tekststrenge som skal bruges i et program skrives på en bestemt måde, som gør det muligt at samle dem alle sammen i en po-fil. Denne fil kan så oversættes og oversættelserne kan begefter hives tilbage og bruges i programmet. Det betyder derfor, at alle de tekststrenge, som skal oversættes, er samlet i en enkelt fil (en po-fil) og for en oversætter er det derfor kun nødvendigt at lære hvordan denne fil ser ud, og ikke (sådan som nogle frygter) at skulle lære det programmeringssprog programmet er skrevet i.

En po-filsektion

En po-fil består af mange små sektioner af tekst (adskilt af en blank linje). Hver bid svarer til en tekststreng fra programmet. En sådan sektion har den følgende struktur:

blank linje
#  oversætterkommentarer
#. kommentarer trukket ud af kildekoden
#: reference...
#, mærker...
#| msgid "tidligere uoversatte streng"
msgid "uoversatte streng"
msgstr "oversatte streng"

Linjen som begynder med msgid er den uoversatte streng, altså den streng i programmet som programmøren har markeret til oversættelse. Linjen som begynder med msgstr er den dertil hørenden oversættelse og altså den linje som man som oversætter skal udfylde. Alle linjerne som starter med # er kommentarer. Der er forskellige typer af kommentarer, som tjener forskellige formål. De kan kendes fra hinanden alt efter hvilket tegn som følger umiddelbart efter #.

  • # er en oversætterkommentar. Her kan oversætterne lave kommentarer om deres oversættelse, enten til sig selv eller til den næste oversætter af projektet. Disse er virkelig praktiske, hvis man har været nødt til at lave research til oversættelsen af en bestemt streng, for at sikre at den viden og det arbejde ikke gÃ¥r tabt.
  • #. er en programmørkommentar til oversætterne. Enhver kommentar som programmøren skriver umiddelbart før en streng som er markeret til oversættelse, vil blive trukket ud og tilføjet po-filen sÃ¥dan sÃ¥ programmørerne har muligheden for at forklare meningen med en bestemt streng.
  • #: er kildekodereferencer. Her vil stÃ¥ filnavne og linjenumre pÃ¥ de steder i kildekoden hvor den pÃ¥gældende streng stÃ¥r.
  • #, er mærker som er tildelt den pÃ¥gældende streng. Disse er som regel mærker, der beskriver hvilket programmeringssprog strengene kommer fra. Derudover kan strengene ogsÃ¥ tildeles mærket fuzzy. Dette mærke bruges enten, hvis der i forvejen var en oversættelse, men originalstrengen eller positionen af denne ændrer sig i kildekoden, i det tilfælde vil mærket være sat automatisk af programmet som trækker oversættelser ud af kildekoden. Men mærket kan ogsÃ¥ bruges af oversætterne selv til at indikerer at arbejdet med denne streng ikke er færdigt. Streng med mærker fuzzy vil ikke blive brugt.
  • #| er en ny form for kommentar som bruges til at vise den gamle originalstreng hvis den er ændret i kildekoden. Dette er ment

som en service overfor oversætteren, således at når man komme til en fuzzy streng, så behøver man ikke at gætte på hvordan den har ændret sig, men kan med det samme se det, og derved lettere finde ud af hvordan man skal ændre sin oversættelse.

po-filhovedet

Den første streng i en po-fil, som har en msgid som er tom(""), er speciel. Dennne bliver brugt som en filhoved og bruges til at indeholde forskellig information. Et filhoved bør se ud som dette her fra gedit:

# Danish translations of gedit.
# Copyright (C) 1999-2007 Free Software Foundation, Inc.
# This file is distributed under the same license as the gedit
package.
#
# Birger Langkjer <birger.langkjer@image.dk>, 1999.
# Kenneth Christiansen <kenneth@gnome.org>, 1999, 2000.
# Keld Simonsen <keld@dkuug.dk>, 2000, 01.
# Ole Laursen <olau@hardworking.dk>, 2002, 03, 04, 05, 06.
# Marie Lund <marielund@post.cybercity.dk>, 2004.
# Martin Willemoes Hansen <mwh@sysrq.dk>, 2004.
# Kenneth Nielsen <k.nielsen81@gmail.com>, 2006, 2007.
# Ask Hjorth Larsen <asklarsen@gmail.com>, 2007.
# M.P. Rommedahl <lhademmor@gmail.com>, 2008
#
# Husk at tilføje dig i credit-listen (besked id "translator_credits")
#
# Konventioner:
#
#   plugin -> udvidelsesmodul
#   snippet -> tekststump
#
msgid ""
msgstr ""
"Project-Id-Version: gedit.gnome-2-16\n"
"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?"
"product=gedit&component=general\n"
"POT-Creation-Date: 2009-01-01 19:23+0000\n"
"PO-Revision-Date: 2008-10-04 11:20+0200\n"
"Last-Translator: Kenneth Nielsen <k.nielsen81@gmail.com>\n"
"Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

I kommentaren til denne specielstreng findes først noget ophavsretsinformation, her skal man som oversætter huske at opdatere årstallet således at det stadig inkluderer man er i. Derefter følger en liste af navne og e-mail-adresser for alle de oversættere som har arbejdet på filen, her skal man selvfølgelig også skrive sig selv på. Dette er også et godt sted at kigge hvis man af forskellige årsager vil kontakte sidste oversætter. Her er så også en kommentar om at man skal huske at skrive sig selv på "credit"-listen, mere om det senere. Derefter følger en liste af konventioner som de forskellig oversættere har lavet for denne oversættelse, husk at bruge og opdatere denne. Efter kommentaren komme selve strengen som indeholder forskellige former for specielinformation. Der er kun 3 af linjerne som man behøver at bekymre sig om som oversætter. Man skal opdatere linjen Last-Translator med sit eget navn og e-mail, samt sikre sig at linjen Language-Team indeholder informationen Danish <dansk@dansk-gruppen.dk>, hvis den ikke gøre det i forvejen. Derudover er der linjen Plural-Forms som beskriver hvilke man flertalsformer man har på det på sprog som filen oversættes til, mere om det senere.

Flertalsformer

Når man skriver tekststrenge i et program, har man muligheden for at skrive en variabel ind i strengen, som vil blive erstattet af noget andet, f.eks. et tal eller noget andet tekst. Hvis det der bliver sat ind er et tal vil det være nødvendigt for at strengen at ændre sig alt efter hvad dette tal er. Det forklares måske nemmest med at eksempel, igen fra edit

#: ../gedit/gedit-commands-file.c:266
#, c-format
msgid "Loading %d file..."
msgid_plural "Loading %d files..."
msgstr[0] "Indlæser %d fil..."
msgstr[1] "Indlæser %d filer..."

I denne type af strenge er der nu 2 msgid'er, en for hver af de forskellige former der er på engelsk. Herefter skal der så være en msgstr for hver af de forskellige flertalsformer der findes på dansk. Efter msgstr[0] skal stå den danske streng, som svarer til at der er nøjagtig 1 og efter msgstr[1] skal stå den streng som svarer til at der er 0 eller mere end 1. Grunden til at man har lavet det på denne måde, i stedet for bare at lave det som 2 streng, er at andre sprog har væsentligt mere indviklede regler for flertalsformer og i flere end 2 former.

VIGTIGT: Eftersom det kan variere fra sprog til sprog hvordan man laver flertalsformer er man nødt til at definere dette i filen hvis der findes sÃ¥dan nogle plural-streng som denne her. Dette gøres med den linke i filhovedet som starter med Plural-Forms: og den skal for danske oversættelser have værdien nplurals=2; plural=(n != 1);. Hvis man støder pÃ¥ en uoversat flertalsstreng, skal man derfor sikre sig at denne linje er i filhovedet, eller fÃ¥r man en fejl senere nÃ¥r man kontrollerer filen for fejl.

Specielle entiteter i strenge

De fleste strenge indeholder blot almindelig tekst, men der er også indtil flere specielle ting som man kan støde på og som det som ny oversætter kan være svært at vide hvad man skal gøre ved. Disse er beskrevet i de følgende undersektioner.

Variable

Som tidligere nævnt kan man bruge variable i programstrenge og bruge disse til at få sat et eller andet ind i strengen. Det kan være alt lige fra tal, fil-navne eller -stier eller blot noget andet tekst. Der vil så stå en variabel, det sted i strengen hvor dette skal sættes ind. Hvordan disse variable ser ud, vil afhænge af hvilket programmeringssprog programmet er skrevet på. Det kan f.eks. være sådan nogle som %s, %d og %i. Der er for mange muligheder inden for de forskellige sprog til at skrive dem alle sammen her, så hvis man som oversætter er i tvivl om noget er en variabel må man endelig spørge. Det vigtig ved disse strenge er at man bevarer dem. Når man er færdig med strengen, skal der altid stå de samme variable som der gør i originalstrengen. Nogle gange vil det være nødvendigt at bytte rundt på rækkefølgen af disse variable og her skal man være forsigtig. Måden at gøre dette på vil varierer fra sprog til sprog og hvis man støder på problemet, er det derfor nemmere at spørge og så finder vi en løsning.

Genvejstegn

Strenge som skal have et bogstav associeret med sig, således at disse bogstaver kan komme til at fungere som genvejstegn (kendetegnet i programmer ved at der er en streg under bogstavet), håndteres i oversættelser ved at sætte et tegn foran det bogstav som skal være genvejstegn. Hvilket tegn der bliver brugt til at markere dette kan variere fra projekt til projekt, men i næsten alle GNOME-relaterede projekter bruger bundstregen "_". Et eksempel på sådan en streng kunne være "Save" i filmenuen, vist hernedenunder

msgid "_Save"
msgstr "_Gem"

På engelsk er der valgt "s" som genvejstegn og i den danske version har man valgt "g". Det er vigtigt at sørge for, at man får defineret sådan et genvejstegn, når der er et i originalstrengen. Det er også vigtigt at man tænker lidt over hvilke tegn man bruger, sådan at genvejtegnene bliver så konsistente som muligt på tværs af programmerne og at man ikke bruger det samme tegn til flere strenge i f.eks. den samme menu.

Opmærkning

I visse sammenhænge bliver de tekststrenge som skal oversættes formatteret ved hjælp af opmærkning i stil med måden man skriver hjemmesider på. Så hvis man f.eks. vil have noget tekste med fed skrifttype så skriver man <bold>fed tekst</bold>. Det sidste, som har en skråstreg i sig, er det afsluttende eller lukkende mærke. Man kan indlejre sådanne mærker, således at hvis man i en streng som er fed vil have noget til både at være med fed og på skrå kan man skrive <bold>både fed <italic>'og på skrå'</italic></bold>. Det er vigtigt at lukke indlejrede mærker på samme måde som i originalen.

Lodret stregtegn "|" (en. pipecharacter)

Hvis den samme tekstreng optræder mere end en gang i et program, vil Gettext samle det til en sektion i po-filen, som vil have flere kildekodereferencer. Selv om dette er rigtigt smart og hjælper ufatteligt meget i langt størstedelen af tilfældende er der visse tilfælde hvor det ikke duer. Det kan være hvis det samme ord kan betyder mere end en ting og bruges forskellig flere steder i programmet. Det kunne (som et tænkt eksempel) være et program hvor man måler ydelse af et eller andet og samtidig kan gemme og indlæse profiler for hvordan det bliver vist. I sådan et program kunne man forestille sig at strengen "Load" bliver brugt, både i betydningen "Belastning" og i betydningen "Indlæs". Hvis strengene bliver samlet til en er det selvfølgelig ikke muligt at oversætte det til to forskellige ting. I et lang stykke tid er det blevet ordnet ved at man har hæftet et stykke kontekst på før strengen adskilt fra selv strengen med en "|" og man har så i en kommentar bedt oversætterne om kun at oversætte det efter "|". Dette ville så betyde at der nu i stedet vil være to strengen f.eks. "Noun|Load" og "Verb|Load" som skal oversættes forskelligt. Det er meget vigtigt at være opmærksom på at gøre dette rigtigt og kun oversætte det efter "|". Denne metode er umidlertid meget sårbar for fejl og man er lige nu (December 2008) i gang med at implementere en erstatning for dette system. Løst forklaret vil dette nye system betyde, at der vil komme et ekstra felt ligesom msgstr og msgid som hedder msgctxt hvor strengens kontekst vil komme til at stå, i stedet for i selve strengen. Dette vil blive forklaret nærmere når implementeringen er nået længere.

"translator-credits"-strengen

I nogle programmer findes en speciel streng med msgid "translator-credits". Denne bruges sådan, at det den bliver oversat til, indsættes i en boks med folk som har bidraget til oversættelse. Det betyder at i stedet for at oversætte den ordret skal man i stedet for indsætte en liste over folk som har bidraget til oversættelsen, samt hold- og kontakt-information. Indenfor GNOME-oversættelser bruges altid an standard måde at udforme denne på som ser ud som nedenfor:

#: ../gedit/gedit-commands-help.c:106
msgid "translator-credits"
msgstr ""
"Birger Langkjer\n"
"Keld Simonsen\n"
"Kenneth Christiansen\n"
"Marie Lund\n"
"Martin Willemoes Hansen\n"
"Ole Laursen\n"
"Kenneth Nielsen\n"
"M.P. Rommedahl\n"
"\n"
"Dansk-gruppen <dansk@dansk-gruppen.dk>\n"
"Mere info: http://www.dansk-gruppen.dk"

Som det kan ses, er det altså først en liste af navne på bidragsyderne, herefter en blank linje og til sidst to linjer med navn og kontaktinformation for holdet.

Personlige værktøjer