Available in

(7) (7)/de (7)/fr (7)/pt (7)/ru (7)/vi

Contents

NAME

po−debconf − Einführung

BESCHREIBUNG

The goal of »debconf« was to make package configuration user-friendly. In order to achieve this, it is important to ensure that users will get the question in their own language. Translators need a framework to easily work on translations without having to track package development; »po−debconf« was designed to be able to work with standard »gettext« tools when translating debconf templates files.

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.

− Prepend an underscore before translatable fields in each template

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

In order to help translators, PO files in your package should always be up-to-date, otherwise they may waste their time translating unused strings. For that, simply call the following command without arguments:

  $ 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.

The debconf-updatepo program is idempotent, it modifies PO files only if their content has been updated. Thus the best way to provide up-to-date PO files in your source package is to call this command from the »clean« target of the debian/rules file.

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
Since »po−debconf« 0.6.0, localized fields may contain two leading underscores. In this case, the field value is supposed to be a comma separated list of values, which are put in separate msgids. Thus if the previous example did contain

  __Choices: Dialog, Readline, Gnome, Editor, Noninteractive

gäbe es fünf verschiedene msgids. Beachten Sie, dass Leerzeichen nach Kommata nicht signifikant sind.

When a choices list never changes, »_Choices« may be considered fine. However, splitting such lists may help avoiding frequent mistakes in translations such as omitting a choice or using non-standard commas. For such reasons, the use of »__Choices« will ease translator’s life and is strongly recommended.

Unfortunately if you decide to switch from »_Choices« to »__Choices«, all translations become fuzzy. Here is an explanation to make this change without translation loss (it requires »po−debconf« >= 1.0). Suppose that we want to switch the previous example to »__Choices«. You copy the templates file into a temporary file.

  $ 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.

PUTTING IN COMMENTS FOR TRANSLATORS
»Dpkg«
maintainers decided that by convention lines beginning with a number sign (»#«) are comments in debian/control files, and »po−debconf« follows this rule. Since »po−debconf« 0.8.0, such comments are written into PO files, and can then contain valuable information for translators. Incidentally all previous »po−debconf« versions ignore lines which do not contain a colon, thus if your comments does not contain any colons, there is no need to add a versioned build dependency against »po−debconf«. Here is an example:

  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.

ÜBERSETZER VOR DEM UPLOAD INFORMIEREN
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!

DEBUGGING

You will find that debconf-loadtemplate will not accept a templates file with i18n markups. However, it will accept a merged file, so if you have been debugging your debconf setup like this

  rm /tmp/{config,templates}.dat{,−old}
  debconf−loadtemplate debian/templates
  DEBIAN_PRIORITY=low debconf −freadline debian/config configure 28.0

you will now need something like this instead:

  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 NameSprache.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.

A given English string may be given only one unique translation in a given language. It is impossible to give two different translations, depending on the context. To solve this issue, you have to add special markups to the different occurrences of a given string to make them different. (These markers will only be visible to translators, and they will be removed from the string before being displayed to user)

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/>; (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 [AT] linuxfr.org>

ÜBERSETZUNG

Die deutsche Übersetzung wurde von Helge Kreutzmann <debian [AT] 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 .

COMMENTS

blog comments powered by Disqus