Hvad er en .po-fil?

Vedrørende oversættelse og lokalisering af Ubuntu til dansk
Lhademmor
Indlæg: 53
Tilmeldt: 2. dec 2007, 23:53
IRC nickname: ligemeget
Geografisk sted: /home/sent faxes/porn

Hvad er en .po-fil?

Indlæg af Lhademmor »

Hej. Her er en lille introduktion til brugen af .po-filer.

Hvis du vil vide mere om hvordan den danske lokalisering af Ubuntu organiseres skal du kigge i denne tråd.

Hvad er en .po-fil?
Når vi oversætter fri software gør vi det via filer med endelsen .po (står for Portable Object). Disse filer indeholder alle tekststrenge fra det valgte program, samt deres oversættelse til det valgte sprog.
En .po-fil indeholder kun tekst, og kan som sådan åbnes af et hvilken-som-helst tekstredigeringsprogram (f.eks. gedit i Ubuntu eller Kate i Kubuntu).

En .po-fil består oftest af tre dele:
1. Evt. kommentarer til denne specifikke oversættelse står øverst i filen, med havelåger. Disse kan f.eks. være informationer om hvilket program det er en oversættelse af, ophavsret og hvem der har oversat det. Disse kommentarer bruges overhovedet ikke i den endelige oversættelse, de er der kun for at hjælpe mennesker der beskæftiger sig med .po-filen.
2. Et hoved (eller 'header'). Dette kommer lige under kommentarerne. Det genereres automatisk af diverse programmer - jeg er ikke engang rigtig sikker på hvad det gør, men det er i hvert fald ikke noget man bør pille ved manuelt.
3. Tekststrengene.

Et eksempel, oversættelsen af Ubuntu-hjælpefilen om tilpasning af dit skrivebord til dansk, starter f.eks. således:

Kode: Vælg alt

# Danish translation for ubuntu-docs
# Copyright (c) (c) 2006 Canonical Ltd, and Rosetta Contributors 2006-2008
# This file is distributed under the same license as the ubuntu-docs package.
# M.P. Rommedahl <Lhademmor@gmail.com>, 2008.
#
msgid ""
msgstr ""
"Project-Id-Version: ubuntu-docs\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2008-03-28 08:20+0000\n"
"PO-Revision-Date: 2008-05-08 15:33+0100\n"
"Last-Translator: M.P. Rommedahl <Lhademmor@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"
"X-Launchpad-Export-Date: 2008-05-08 07:08+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
"X-Poedit-Language: Danish\n"

#: config-desktop/C/config-desktop-C.omf:6(creator)
#: config-desktop/C/config-desktop-C.omf:7(maintainer)
msgid "ubuntu-doc@lists.ubuntu.com (Ubuntu Documentation Project)"
msgstr "ubuntu-doc@lists.ubuntu.com (Ubuntu-dokumentationsprojektet)"

#: config-desktop/C/config-desktop-C.omf:8(title)
msgid "Customising Your Desktop"
msgstr "Tilpas dit skrivebord"

Ovenfor kan ses kommentarerne, hovedet samt to oversatte tekststrenge. Disse er altid bygget op således at tekststrengen, der skal oversættes, står i msgid "" (f.eks. ovenfor msgid "Customising Your Desktop"), mens den oversatte tekststreng står i msgstr "" (f.eks. msgstr "Tilpas dit skrivebord").
Hvis en tekststreng endnu ikke er oversat vil msgstr blot være "", og du kan dermed manuelt skrive en passende oversættelse ind mellem anførselstegnene (eller du kan gøre det via et oversætterprogram).
Tip: I kommentarerne kan du for det meste se hvem den seneste oversætter af programmet var. Hvis du ønsker at begynde at oversætte programmet er det go' stil lige at spørge den seneste oversætter først.

Fuzzy
Bare fordi et program er blevet oversat engang, betyder det jo ikke at den oversættelse stadig fungerer den dag i dag. I takt med at programmet bliver videreudviklet med nye funktioner, gamle fjernes og elementer omstruktureres, bliver den gamle oversættelse mere og mere værdiløs. For at undgå at havne i en situation hvor de gamle oversættelser bruges i ny kontekst - hvor de overhovedet ikke hører til, har man de såkaldte "fuzzy" oversættelser.
Når en tekststreng i et program ændres, bliver alle oversættelser af tekststrengen fuzzy (altså både dansk, spansk, norsk, zulu, klingon, indisk og alle andre oversættelser).
Fuzzy oversættelser bruges ikke i det endelige program - hvis den danske oversættelse af en tekststreng altså er markeret som fuzzy, så vil tekststrengen være på engelsk indtil oversættelsen bliver opdateret.
Tip: I sjældne tilfælde kan en udvikler bare have været inde i koden og rette en kommafejl eller lignende, hvilket gør oversættelserne fuzzy - hvis der ikke umiddelbart er noget at opdatere ved oversættelsen, kan man bare fjerne fuzzy-markeringen.

Hvor finder jeg så <program>'s .po-fil henne?
Alle programmer har forskellige måder at opbevare deres .po-filer på. For Ubuntu's vedkommende går de gennem Launchpad. Dette er en lidt mere kringlet proces end normalt, så jeg vil lige uddybe den lidt:

For at få fat i en .po-fil til en bestemt del af Ubuntu skal du først og fremmest være logget ind i Launchpad. Det kan du gøre her. Har du ikke nogen Launchpad-bruger, skal du først registrere dig - det gør du samme sted.

Når så du er logget ind, skal du beslutte dig for hvilken del af Ubuntu du vil oversætte - den samlede liste over danske oversættelser er her. Vælg et modul, i dette tilfælde valgte jeg hjælpefilen om tilpasning af dit skrivebord (til Ubuntu)
På denne side er .po-filen opstillet sådan så du kan komme med forslag til oversættelser af diverse tekststrenge (du kan ikke oversætte dem direkte medmindre du er medlem af det officielle danske oversætterhold).
For at få fat på selve .po-filen i 'rå' udgave vælger du 'Download' ude i venstre side.
På den fremkomne side vælger du 'PO format' - det er jo sådan en vi vil ha' fat i, ik'? Og 'Confirm download'

Herefter vil Launchpad forberede filen. Når den er klar (afhængig af serverbelastningen kan der jo alt fra 2 minutter til 2 uger) vil der blive sendt en email til din mailadresse (fra 'rosetta') med et link i. Følg det link for at hente .po-filen.