NAME¶
po-debconf - Einführung
BESCHREIBUNG¶
Das Ziel von »Debconf« bestand darin, die Paketkonfiguration
benutzerfreundlich zu gestalten. Um dies zu erreichen, ist es wichtig
sicherzustellen, dass die Benutzer die Fragen in ihrer eigenen Sprache
präsentiert bekommen. Übersetzer benötigen ein Rahmenwerk, um
leicht an Übersetzungen arbeiten zu können, ohne die
Paketentwicklung nachzuverfolgen. »po-debconf« wurde entwickelt, um
beim Übersetzen der Debconf-Vorlagendateien mit den
Standard-»Gettext«-Werkzeugen zu arbeiten.
I18N-UNTERSTÜTZUNG ZU DEBCONF-VORLAGENDATEIEN
HINZUFÜGEN¶
Falls Sie Debconf-Unterstützung für Ihr Paket hinzufügen, haben
Sie eine Vorlagendatei mit englischem Text erstellt. Um korrekte
i18n-Unterstützung zu Ihrem Paket hinzuzufügen, müssen Sie das
folgende erledigen:
- - Erstellen Sie debian/po/POTFILES.in
- Diese Datei enthält die Liste der Master-Vorlagen.
Typischerweise enthält sie eine einzelne Zeile:
[type: gettext/rfc822deb] templates
Pfade sind relativ zum Elternverzeichnis.
- - Stellen Sie übersetzbaren Feldern in jeder Vorlage
einen Unterstrich voran
- Normalerweise können die Felder
»Description«, »Choices« und manchmal
»Default« übersetzt werden.
- - Führen Sie debconf-updatepo aus
- Dies erstellt die Datei debian/po/templates.pot, die
dann die Übersetzer in ihre eigene Sprache übersetzen
werden.
- - Fügen Sie eine Bau-Abhängigkeit auf
"po-debconf" in debian/control hinzu.
VORLAGEN AKTUALISIEREN¶
Um Übersetzern zu helfen, sollten PO-Dateien in Ihren Paketen immer aktuell
sein, andernfalls könnten diese ihre Zeit mit unbenutzten Zeichenketten
verschwenden. Um dies zu erreichen, rufen Sie einfach den folgenden Befehl
ohne Argumente auf:
$ debconf-updatepo
Sie sollten diesen Befehl jedes Mal ausführen, wenn Sie Ihre englischen
Vorlagen ändern, aber auch, wenn Sie neue oder aktualisierte
Übersetzungen erhalten, da Übersetzer an einer veralteten PO-Datei
gearbeitet haben könnten.
Falls Sie einige Vorlagen-Dateien umbenennen, hinzufügen oder entfernen,
denken Sie daran, auch
debian/po/POTFILES.in entsprechend zu
bearbeiten, da andernfalls englische Zeichenketten aus den PO-Dateien fehlen
und Benutzern angezeigt werden, selbst wenn die PO-Dateien vollständig
übersetzt sind.
Das Programm
debconf-updatepo is idempotent, es verändert PO-Dateien
nur, wenn sich ihr Inhalt geändert hat. Daher ist die beste Art, um
aktuelle PO-Dateien in Ihren Quellpaketen bereitzustellen, ein Aufruf dieses
Befehls im »clean«-Ziel in der Datei
debian/rules.
Bitte beachten Sie, dass Sie
debconf-updatepo selbst dann ausführen
müssen, falls Sie
dh_installdebconf verwenden. Letzeres ruft
po2debconf auf, das früher
debconf-updatepo ausführte,
falls veraltete Dateien entdeckt wurden. Dies passiert nicht mehr, da dies aus
mindestens zwei Gründen keine gute Idee war:
- 1.
- po2debconf verließ sich auf Zeitstempel, um
veraltete Dateien zu erkennen. Es kann missbraucht werden, wenn
»pbuilder« verwendet wird oder falls eine veraltete
Übersetzung lange nach der Änderung der Vorlagen auf der Platte
gespeichert wird.
- 2.
- dh_installdebconf wird lange nach der Erstellung der
Datei ».diff.gz« ausgeführt.
ÜBERSETZUNGEN UND ORIGINAL ZUSAMMENFÜHREN¶
Sie müssen sicherstellen, dass beim Paketbau die Übersetzungen in das
gebaute Paket gelangen. Sie können dies manuell durchführen, oder
mit dem Skript
dh_installdebconf automatisch (achten Sie darauf, dass
die Bau-Abhängigkeit versioniert ist: »debhelper (>=
4.1.16)«).
Um dies manuell zu erreichen, müssen Sie die Vorlagen und die
Übersetzungen beim Bauen manuell zusammenführen (und Sie müssen
eine Bau-Abhängigkeit auf »po-debconf« haben). Dies geschieht
wie folgt:
$ po2debconf debian/templates > debian/tmp/DEBIAN/templates
SEIEN SIE VORSICHTIG: die zwei Dateien mit dem Namen
templates
sind überhaupt nicht identisch. Die erste enthält nur englischen
Text, und enthält Markierungen, um einige Felder als übersetzbar zu
kennzeichnen, während die zweite alle Sprachen enthält. Anders
ausgedrückt, Sie KÖNNEN NICHT nur die zusammengeführten
Vorlagen behalten, oder Sie werden nicht in der Lage sein, mit
Übersetzungen umzugehen, wenn diese bei Ihnen eingereicht werden.
NEUE MASTER-VORLAGEN¶
Das neue Quellformat der Vorlagendateien ist nahezu identisch zu einer der
verteilten Vorlagendateien, aber übersetzbaren Felder wird ein
Unterstrich vorangestellt. Beispiel:
Template: debconf/frontend
Type: select
_Choices: Dialog, Readline, Gnome, Editor, Noninteractive
Default: Dialog
_Description: Interface to use for configuring packages:
Packages that use debconf for configuration share a common look and
feel. You can select the type of user interface they use.
.
The dialog frontend is a full-screen, character based interface,
while the readline frontend uses a more traditional plain text
interface, and the gnome frontend is a modern X interface. The
editor frontend lets you configure things using your favorite text
editor. The noninteractive frontend never asks you any questions.
CHOICES-LISTEN AUFTEILEN¶
Seit »po-debconf« 0.6.0 dürfen übersetzte Felder zwei
führende Unterstriche haben. In diesem Fall sollte der Feld-Wert eine
Komma-separierte Liste von Werten sein, die in separate msgids gesteckt
werden. Falls daher das vorherige Beispiel folgendes enthielt
__Choices: Dialog, Readline, Gnome, Editor, Noninteractive
gäbe es fünf verschiedene msgids. Beachten Sie, dass Leerzeichen nach
Kommata nicht signifikant sind.
Wenn sich eine Auswahlliste nie ändert, kann »_Choices« geeignet
sein. Das Auftrennen einer solchen Liste kann aber bei der Vermeidung
häufiger Fehler in Übersetzungen, wie beispielsweise dem Vergessen
einer Auswahl oder der Verwendung nicht passender Kommata, helfen. Aus diesen
Gründen erleichtert die Wahl von »__Choices« das Leben der
Übersetzer und wird nachdrücklich empfohlen.
Unglücklicherweise werden alle Übersetzungen unscharf
(»fuzzy«), wenn Sie sich entscheiden, von »_Choices« auf
»__Choices« umzusteigen. Es folgt eine Erläuterung, wie Sie
diese Änderung ohne Verlust an Übersetzungen realisieren können
(hierfür wird »po-debconf« >= 1.0 benötigt). Nehmen Sie
an, dass wir das bisherige Beispiel auf »__Choices« umstellen
wollen. Sie kopieren die Datei
templates in eine temporäre Datei.
$ cp debian/templates debian/foo
Bearbeiten Sie
debian/foo und behalten Sie nur die Felder
»Template«, »Type« und »_Choices«. In diesem
Beispiel sind dies:
Template: debconf/frontend
Type: select
_Choices: Dialog, Readline, Gnome, Kde, Editor, Noninteractive
Führen Sie
debconf-gettextize mit den Schaltern »--merge«
und »--choices« aus, um PO-Dateien so zu schreiben, als ob
»__Choices« geschrieben wäre und führen Sie diese
PO-Dateien mit den existierenden zusammen:
$ debconf-gettextize --merge --choices debian/foo
Schließlich müssen Sie
foo entfernen und
debian/templates manuell bearbeiten, um »_Choices« durch
»__Choices« zu ersetzen, bevor
debconf-updatepo
ausgeführt wird.
KOMMENTARE FÜR ÜBERSETZER EINFÜGEN¶
Die Betreuer von »Dpkg« haben entschieden, dass per Konvention Zeilen
in
debian/control, die mit einem Nummern-Zeichen (»#«)
beginnen, Kommentare sind, und »po-debconf« folgt dieser Regel. Seit
»po-debconf« 0.8.0 werden solche Kommentare in PO-Dateien
geschrieben und können wertvolle Informationen für Übersetzer
enthalten. Zufälligerweise ignorierten ältere Versionen von
»po-debconf« Zeilen, die keinen Doppelpunkt enthielten, falls daher
Ihre Kommentare keinen Doppelpunkt enthalten, brauchen Sie keine versionierte
Abhängigkeit auf »po-debconf« zu verwenden. Hier ist ein
Beispiel:
Template: debconf/button-yes
Type: text
# Translators, this text will appear on a button, so KEEP IT SHORT
_Description: Yes
In »po-debconf« 1.0 wurden spezielle Kommentare eingefügt, um mit
Zeichenketten umzugehen, die aus mehreren Einträgen (wie bei
Choices-Feldern) oder Absätzen (wie bei
Description)
bestehen. Mit diesen Direktiven haben Entwickler eine bessere Kontrolle
darüber, was für Übersetzer sichtbar ist. Sie haben die Form
»#flag:
Direktive«; die Direktiven werden im Detail weiter
unten beschrieben.
- translate:Spezifikation,
translate!:Spezifikation
- Markiere nur einige Einträge als übersetzbar;
Spezifikation ist eine durch Kommata getrennte Liste von Zahlen,
die angibt, welche Zeichenketten in PO-Dateien abgedruckt werden. Bereiche
können über ein Minuszeichen angegeben werden (zum Beispiel
»2-6«) und ein Stern (»*«) bedeutet alle
Zeichenketten. Zum Beispiel wird mit
Template: partman-basicfilesystems/fat_mountpoint
Type: select
#flag:translate:3,4
__Choices: /dos, /windows, Enter manually, Do not mount it
_Description: Mount point for this partition:
»Enter manually« und »Do not mount it« in PO-Dateien
auftauchen, aber nicht »/dos« und »/windows«. Wenn das
Schlüsselwort translate von einem Ausrufezeichen gefolgt wird,
gibt Spezifikation an, welche Zeichenketten für die PO-Datei
verworfen werden, alle anderen Zeichenketten werden abgedruckt. Das
vorhergehende Beispiel ist ähnlich zu
Template: partman-basicfilesystems/fat_mountpoint
Type: select
#flag:translate!:1,2
__Choices: /dos, /windows, Enter manually, Do not mount it
_Description: Mount point for this partition:
Das gleiche Schlüsselwort kann auch für das Feld
Description verwendet werden, um sicherzustellen, dass einige
Zeichenketten nicht übersetzt werden.
Template: partman-crypto/options_missing
Type: error
#flag:translate!:3
_Description: Required encryption options missing
The encryption options for ${DEVICE} are incomplete. Please
return to the partition menu and select all required options.
.
${ITEMS}
Dies ist allerdings gefährlich, da aus den PO-Dateien Kontext entfernt
werden könnte, fügen Sie daher in diesem Fall Kommentare hinzu,
so dass Übersetzer nicht durcheinander gebracht werden.
- comment:Spezifikation,
comment!:Spezifikation
- Der Kommentar direkt unterhalb dieser Direktive betrifft
die Zeichenketten, die durch Spezifikation (siehe oben) angegeben
werden. Standardmäßig wird ein Kommentar, der vor einem
übersetzbaren Feld eingefügt wurde, bei allen Zeichenketten
abgedruckt, die zu diesem Feld gehören (beachten Sie: bei
»po-debconf« < 1.0 wurde der Kommentar nur bei der ersten
Zeichenkette ausgegeben).
Template: arcboot-installer/prom-variables
Type: note
# Translators, the 4th string of this description has been dropped
# from PO files. It contains shell commands and should not be
# translated.
#flag:comment:3
# "Stop for Maintenance" should be left in English
#flag:translate!:4
_Description: Setting PROM variables for Arcboot
If this is the first Linux installation on this machine, or if the
hard drives have been repartitioned, some variables need to be set
in the PROM before the system is able to boot normally.
.
At the end of this installation stage, the system will reboot.
After this, enter the command monitor from the "Stop for
Maintenance" option, and enter the following commands:
.
setenv OSLoader arcboot
setenv OSLoadFilename Linux
.
You will only need to do this once. Afterwards, enter the "boot"
command or reboot the system to proceed to the next stage of the
installation.
Im obigen Beispiel ist ein Kommentar ohne Direktive
»#flag:comment«. Hier wird implizit »#flag:comment:*«
hinzugefügt. Dieser Kommentar erscheint bei allen Zeichenketten, aber
der Kommentar bezüglich Stop for Maintenance wird nur vor der
relevanten Zeichenkette abgedruckt.
- partial
- Dieses Schlüsselwort teilt po2debconf mit,
übersetzte Zeichenketten zu behalten, selbst wenn nicht alle
Zeichenketten übersetzt wurden. Verwenden Sie dies bitte vorsichtig,
dieses Schlüsselwort wurde für sehr spezielle Zwecke
hinzugenommen.
Normalerweise bemerken Übersetzer auf Status-Webseiten (siehe unten), dass
Übersetzungen veraltet sind und schicken Patches, die dann in
zukünftigen Uploads hinzugefügt werden. Entwickler werden aber
ermutigt, die Betreuer von veralteten Übersetzungen vor einem Upload um
Aktualisierungen zu bitten, zum Beispiel eine Woche vorher. Ein spezielle
Werkzeug -
podebconf-report-po - wurde für diesen Zweck
geschrieben. Zögern Sie nicht, es zu missbrauchen!
FEHLERSUCHE¶
Sie werden merken, dass
debconf-loadtemplate keine Vorlage mit
i18n-Markup akzeptiert. Allerdings akzeptiert es zusammengeführte
Dateien, falls Sie also in Ihrer Debconf-Installation die Fehlersuche wie
folgt durchgeführt haben
rm /tmp/{config,templates}.dat{,-old}
debconf-loadtemplate debian/templates
DEBIAN_PRIORITY=low debconf -freadline debian/config configure 28.0
dann müssen Sie etwas der folgenden Art verwenden:
po2debconf debian/templates > debian/tmp/DEBIAN/templates
rm /tmp/{config,templates}.dat{,-old}
debconf-loadtemplate debian/tmp/DEBIAN/templates
DEBIAN_PRIORITY=low debconf -freadline debian/config configure 28.0
WARNUNGEN¶
- •
- »Debconf« 1.2.0 erkennt Felder der Form
Name- Sprache.Kodierung, z.B.
»Description-de.ISO-8859-1« oder »Choices-ru.KOI8-R«.
Standardmäßig schreibt po2debconf Vorlagendateien im
neuen Format. Ältere »debconf« werden diese Felder
ignorieren und stattdessen wird englischer Text angezeigt. Lesen Sie
po2debconf(1), um zu erfahren, wie Sie die Kodierung und das
Ausgabeformat ändern können.
- •
- Eine vorgegebene englische Zeichenkette darf nur eine
eindeutige Übersetzung in einer vorgegebenen Sprache haben. Es ist
unmöglich, abhängig vom Kontext zwei verschiedene
Übersetzungen zu geben. Um dieses Problem zu beheben, müssen Sie
spezielle Markierungen bei verschiedenem Auftreten einer gegebenen
Zeichenkette hinzufügen, um diese Zeichenketten zu unterscheiden
(dieses Markierungen werden nur von den Übersetzern gesehen und
werden aus der Zeichenkette entfernt, bevor diese dem Benutzer angezeigt
wird).
Solche Markierungen müssen am Ende der zu übersetzenden
Zeichenkette hinzugefügt werden, sie müssen mit »[ «
(einer öffnenden Klammer, gefolgt von einem Leerzeichen) beginnen und
mit »]« (schließende Klammer) enden, und dürfen jedes
Zeichen außer Klammern oder Zeilenumbrüchen enthalten. Zum
Beispiel ist »[ blahblah]« eine gültige Markierung
während »[ bla[bla]bla]« nicht gültig ist. Für
Anhänger von regulären Perl-Ausdrücken: Die Markierungen
werden mittels folgender Regel erkannt (und entfernt):
$msg =~ s/\[\s[^\[\]]*\]$//s;
- •
- Leerzeichen werden in »po-debconf« und
»debconf-utils« leicht verschieden gehandhabt; bei letzterem
werden Absätze neu formatiert, wenn Übersetzungen aktualisiert
und zusammengeführt werden, daher ist »debconf-utils« sehr
klug und Leerzeichen werden nicht als Teil der Zeichenketten betrachtet,
wenn die unscharfen (»fuzzy«) Einträge bestimmt werden
(d.h. diejenigen, die der Aufmerksamkeit der Übersetzer
bedürfen, da sich das Original geändert hat).
»po-debconf« auf der anderen Seite verlässt sich auf
»Gettext«, um unscharfe Einträge zu erkennen, und behandelt
Leerzeichen nicht als besondere Zeichen. Daher müssen
überflüssige Leerzeichen am Zeilenende in Master-Vorlagendateien
entfernt werden, oder sie werden in PO- und POT-Dateien auftauchen.
Aus dem gleichen Grund, den nicht passenden Leerzeichen, kann
debconf-gettextize Text als unscharf markieren, und Übersetzer
haben solche Zeichenketten manuell zu prüfen/aktualisieren. Dies
passiert nur einmal, wenn Vorlagen in das »po-debconf«-Format
konvertiert werden, falls Sie nicht zufällige Änderungen von
Leerzeichen in den Master-Vorlagendateien vornehmen, die dann für
Übersetzer sehr unangenehm wären.
- •
- Normalerweise darf das Feld Default: nicht
übersetzt werden, wenn der Vorlagentyp Select oder
Multiselect ist. Unter seltenen Umständen (z.B. bei der
Auswahl der Standardsprache für eine Anwendung) können
angepasste Werte von Bedeutung sein.
Der angepasste Wert darf nicht übersetzt werden, sondern muss aus den
englischen Werten, die im Feld Choices aufgeführt sind,
ausgewählt werden. Der beste Weg, um dies zu erreichen, besteht
darin, ein Kommentar in Ihre Vorlagendatei einzufügen, der dann in
die PO-Dateien kopiert wird.
Template: geneweb/lang
Type: select
__Choices: Danish (da), Dutch (nl), English (en), Esperanto (eo)
# You must NOT translate this string, but you can change its value.
# The comment between brackets is used to distinguish this msgid
# from the one in the Choices list; you do not have to worry about
# them, and have to simply choose a msgstr among the English values
# listed in the Choices field above, e.g. msgstr "Dutch (nl)"
_Default: English (en)[ default language]
_Description: Geneweb default language
Der Standardwert erscheint dann auch in dem Feld Choices, und beide
haben verschiedene Übersetzungen: der erstere ist ein
unübersetzter Wert, der aus den Choices-Werten ausgewählt
wird, während der letztere eine normale Übersetzung ist. Da
»Gettext« nicht zwei verschiedene Übersetzungen für
die gleiche msgid haben kann, müssen sich beide msgids
unterscheiden, in dem Kommentare in eckigen Klammern verwendet werden, wie
dies im vorherigen Abschnitt beschrieben wurde.
Vor »po-debconf« 0.8.0 waren solche Kommentare nicht
verfügbar und die Betreuer mussten das Feld _Default: durch
_DefaultChoice: ersetzen, um solche Felder in PO-Dateien
hervorzuheben:
#. DefaultChoice
msgid ""
"English[ default: do not translate bracketed material, put your "
"own language here but UNTRANSLATED. If it is not in the list, "
"put English (without bracketed material)]"
msgstr ""
"Swedish"
Einfache Kommentare in Vorlagendateien sind weniger fehlerträchtig und
sollten verwendet werden.
STATUS-WEBSEITEN¶
Statistiken für »po-debconf«-Übersetzungen sind unter
http://www.debian.org/intl/l10n/po-debconf/
<
http://www.debian.org/intl/l10n/po-debconf/> (oder von Spiegeln)
erhältlich; sie werden automatisch nach dem Hochladen von Paketen
aktualisiert. Nur Pakete, die die Dateien
debian/po/templates.pot und
debian/po/POTFILES.in enthalten, werden betrachtet. Stellen Sie daher
sicher, dass Ihr Quellpaket diese bereitstellt.
Übersetzer können sich von dort die PO- und POT-Dateien holen, sie
müssen aber immer mit dem vorherigen Übersetzer Kontakt aufnehmen
(deren E-Mail-Adresse in der PO-Datei gefunden werden kann) und/oder mit ihren
Mitübersetzern auf debian-l10n-
<Sprache>@lists.debian.org
(falls eine solche Liste existiert), um sicherzustellen, dass keiner derzeit
an der gleichen Übersetzung arbeitet, und aktuelle Fehlerberichte
für das Paket lesen, das sie übersetzen wollen, um zu schauen, ob
eine Übersetzung bereits eingereicht wurde.
Nachdem sie diese Dateien übersetzt haben, sollten sie ihre Arbeit an den
Betreuer mittels eines Fehlerberichts der Schwere
wishlist mit der
Markierung
patch einreichen.
SIEHE AUCH¶
debconf-gettextize(1),
debconf-updatepo(1),
dh_installdebconf(1),
podebconf-report-po(1),
po2debconf(1),
debconf-devel(7).
AUTOREN¶
Martin Quinson <Martin.Quinson@ens-lyon.fr>
Denis Barbier <barbier@linuxfr.org>
ÜBERSETZUNG¶
Die deutsche Übersetzung wurde von Helge Kreutzmann
<debian@helgefjell.de> angefertigt. Diese Übersetzung ist Freie
Dokumentation; lesen Sie die GNU General Public License Version 2 oder neuer
für die Kopierbedingungen. Es gibt KEINE HAFTUNG.