Scroll to navigation

EM_INSTALLTDEB(1) User Contributed Perl Documentation EM_INSTALLTDEB(1)

NAME

Em_installtdeb - Emdebian-TDeb-Uebersetzungspakete und Quellen generieren

UeBERSICHT

em_installtdeb
em_installtdeb [SPRACHCODE]
em_installtdeb [--no-act]
em_installtdeb [--no-sign]

Copyright und Lizenz

 Copyright (C) 2007-2008  Neil Williams <codehelp@debian.org>
 Dieses Paket ist freie Software; Sie koennen es unter den Bedingungen der
 XGNU General Public LicenseX, wie sie von der XFree Software FoundationX
 entweder in Version 3 der Lizenz oder (optional) in einer spaeteren Version
 veroeffentlicht wurde, weiterverteilen und/oder veraendern.
 Dieses Programm wird inder Hoffnung verteilt, dass es nuetzlich sein wird,
 aber OHNE JEGLICHE GEWAeHRLEISTUNG, auch ohne die inbegriffene
 Gewaehrleistung von MARKTGAeNGIGKEIT und EIGNUNG FUeR EINEN SPEZIELLEN ZWECK.
 Lesen Sie die XGNU General Public LicenseX, um weitere Einzelheiten zu
 erhalten.
 Sie sollten mit diesem Programm eine Kopie der XGNU General Public License
 erhalten haben. Falls nicht, lesen Sie <http://www.gnu.org/licenses/>.

BESCHREIBUNG

em_installtdeb is a debhelper add-on created by Emdebian to create translation packages (tdebs). em_installtdeb is intended to separate out the individual translation files from the current Debian packages into packages without any translation files and a series of tdeb locale packages, one per translation. Generated packages use the syntax: $package-locale-$language_code_$version_all.deb
(From v3.0.0 onwards, TDebs are architecture-independent.)
Sobald ein Paket Em_installtdeb benutzt, sollten Uebersetzungsdateien aus allen Paketen in der normalen Erstellung entfernt werden. Em_installtdeb wird als ein zweiter Erstellungsprozess ausgefuehrt (sehr klein, sehr schnell) der einfach die *.po-Dateien in TDebs konvertiert und packt. Ein TDeb-Quellpaket (X.dscX, X.tar.gzX und X.changesX) wird neben den exisitierenden Erstellungsdaten erzeugt. Das Quellpaket wird von Uebersetzern benutzt, um neue oder aktualisierte TDeb-Pakete zu erstellen. TDeb-X.changesX-Dateien muessen nur zu den zweiten Locale-Depots hochgeladen werden, anstatt der Haupt-Debian-Spiegel und diese Depots koennen weit zwanglosere Richtlinien zum Hochladen haben. TDeb-Pakete haben keine Abhaengigkeiten und es koennen keine Pakete von ihnen abhaengen.
Xem_installtdebX unterstuetzt derzeit nur Gettext-Uebersetzung.
Bestimmte Sprachcodes muessen geaendert werden, um brauchbare Bestandteile eines Debian-Paketnamens zu erhalten. Unterstriche werden zu Bindestrichen, X@X zu X+X und alle Codes werden in Kleinschreibung umgewandelt. Diese Aenderungen gelten nur fuer den Paketnamen, der Installationsort bleibt unveraendert.
Das Locale-Paket muss XGETTEXT_PACKAGEX fuer den spaeteren Dateinamen der binaeren Uebersetzungsdatei benutzen X obwohl dies der gleiche sein koennte, wie $dh{MAINPACKAGE}. XGETTEXT_PACKAGEX wird durch Upstream festgelegt, nicht durch Debian. Wenn das ganze Paket erstellt wird, koennte die Uebersetzung in debian/tmp/usr/share/locale/$lang/LC_MESSAGES liegen, dieser Ort ist im Uebersetzermodus nicht verfuegbar. Fragen Sie stattdessen XGETTEXT_PACKAGEX vom POT-Dateinamen ab, dem Makefile XGETTEXT_PACKAGE-MakroX oder falls dies nicht gesetzt ist benutzen Sie den Upstream-Quellpaketmnamen. Die koennte ein Erweitern verlangen.
Die XQuelleX fuer Uebersetzer enthaelt daher:
 debian/rules  /* Platzhalterdatei */
 debian/control
 debian/changelog
 po*/$lang.po  /* falls vorhanden */
 po*/$GETTEXT_PACKAGE.pot /* koennten mehrere sein */
Einige Pakete benutzten mehrere PO-Verzeichnisse und Em_installtdeb ueberprueft alle benutzbaren PO-Verzeichnisse auf eine PO-Datei und fuegt sie in die TDeb-Quelle ein, zusammen mit allen PO-Dateien, z.B:
 po/fr.po
 po-lib/fr.po
 po/application.pot
 po-lib/library.pot
Wenn es verpackt waere, wuerde das aus dieser Quelle erstellte TDeb folgendes enthalten:
 ./usr/share/locale/fr/LC_MESSAGES/application.mo
 ./usr/share/locale/fr/LC_MESSAGES/library.mo
Ein gleichwertiges TDeb fuer das XDEX-Locale wuerde folgendes enthalten:
 ./usr/share/locale/de/LC_MESSAGES/application.mo
 ./usr/share/locale/de/LC_MESSAGES/library.mo
Dies ist vergleichbar mit dem Debian-XSpeicher-ist-billigX-Modell des Trennens der Dateien Xapplication.moX und Xlibrary.moX und Kombinierens aller Uebersetzungen in einem Paket, so dass das gleichwertige Debian-Paket folgendes enthalten wuerde:
 ./usr/share/locale/cs/LC_MESSAGES/application.mo
 ./usr/share/locale/de/LC_MESSAGES/application.mo
 ./usr/share/locale/fr/LC_MESSAGES/application.mo
...
 ./usr/share/locale/sv/LC_MESSAGES/application.mo
 ./usr/share/locale/ro/LC_MESSAGES/application.mo
 ./usr/share/locale/vi/LC_MESSAGES/application.mo
(Fuer das andere Pakete erneut wiederholt.)
Viele Pakete enthalten Dutzende Uebersetzungen X einige enthalten ueber 70 .mo-Dateien und .mo-Dateien koennen jeweils zwischen 2 und 30 Kb gross sein. Ohne TDebs erhalten alle Benutzer alle 70 Uebersetzungen, auch wenn nur eine oder zwei benutzt werden. Mit TDebs erhalten alle Benutzer sowohl die Bibliotheks- als auch Anwendungsuebersetzungen, aber nur fuer die eine oder zwei Locales, die von dieser Installation unterstuetzt werden. Die durch das Unterteilen von Anwendung.mo und Bibliothek.mo in getrennte Pakete fuer das gleiche Locale erreichte zusaetzliche Detailgenauigkeit wird wahrscheinlich wertvoll fuer die Auslastung sein. (Tatsaechlich heisst das, dass Pakete mit mehreren Uebersetzungen derzeit nicht unterstuetzt werden X zumindest nicht auf die herkoemmliche Weise.) Es ist moeglich, dass Entwicklungen wie Dpkg-Filterung diese letzte Stufe der Aufteilung implementieren koennen, falls noetig.
Em_installtdeb wird versuchen, die noetige(n) POT-Datei(en) zu generieren und dann ein $package_$version_tdeb.tar.gz zu erstellen, das die Quelldateien enthaelt.
Jedes Paket kann ein Quell-TDeb haben, solange die POT-Datei entweder verpackt ist oder erstellt werden kann. Das Paket muss nicht bereits uebersetzt worden sein.
Um weitere Details ueber TDebs zu erhalten lesen Sie: <http://www.emdebian.org/emdebian/langupdate.html> <http://wiki.debian.org/i18n/TranslationDebs>
Beachten Sie, dass die Emdebian-Implementierung der TDebs sich von den geplanten TDebs fuer Debian unterscheidet, weil Emdebian sich im Allgemeinen nicht um Handbuchseiten kuemmert, geschweige denn um uebersetzte Handbuchseiten. Sobald die DEB_BUILD_OPTION XnodocsX in Debhelper unterstuetzt wird, wird dies kein Problem sein, da die TDebs ohne irgendwelche Handbuchseiten erstellt werden koennen. Andere uebersetzte Dokumentationen wuerden unter XnodocsX ebenfalls entfallen. Es gibt relativ wenige Bilder, die uebersetzten Text enthalten.
Um die Erhoehung der Paketnummern zu verwalten (durchschnittlich zehnfach), organisiert das zweite Locale-Depot die TDeb-Pakete durch die Locale-Wurzel z.B. liegt Xen_GBX unterhalb XenX und Xsr@LatnX unterhalb XsrX. Jede Locale-Wurzel bekommt eine einzelne Apt-Quelle im Locale-Verzeichnis, um den Rueckfall von einer speziellen Locale auf eine allgemeinere Locale-Wurzel zu unterstuetzen. Auf diese Weise muss jedes Geraet nur mit Zwischenspeicherdaten fuer einen Bruchteil der gesamten TDeb-Pakete zurechtkommen (ungefaehr ein Dreissigstel).
Eine neue C-/C++-Anwendung handhabt dann die Installation und Aktualisierung von TDeb-Paketen unter Beachtung der Liste unterstuetzter Locales und der Liste installierter Pakete. Daten, die von langupdate zwischengespeichert wurden, sind temporaer und nicht dazu gedacht, zwischen den Ausfuehrungen von langupdate zwischengespeichert zu werden.

OPTIONEN

Die Standardaktion ist es, alle verfuegbaren PO-Dateien zu verarbeiten.
Dieser Modus wird von Paketbetreuern benutzt, um am Ende des Debian-Erstellungsprozesses TDeb-Quellen und Binaerpakete zu generieren (ohne Uebersetzungsdateien). Beachten Sie, dass dies ein zweites X.dscX, ein zweites X.changesX, ein zweites (wesentlich kleineres) X.tar.gzX unter Benutzung der Endung Xtdeb.tar.gzX und einem separaten Hochladen zu den zweiten Locale-Depots bedeutet. Emdebian-tools werden Behandlungsroutinen fuer diese Operationen enthalten und Debian kann aehnliche Adapter, wie die benoetigten, erstellen.
Dieser einsprachige Aktualisierungsmodus von Em_installtdeb wird wahrscheinlich nicht beibehalten sobald Dpkg-gentdeb verfuegbar ist, weil Uebersetzungen wahrscheinlicher in Debian als in Emdebian aktualisiert werden.
LANG_CODE
XLANG_CODEX kann entweder der Name der Locale sein, wie er in der PO-Datei angegeben wurde (XfrX, Xen_GBX, Xsr@LtnX etc.) oder der Name der Locale, wie er im eventuellen Paketnamen angegeben wurde (XfrX, Xen-gbX, Xsr+ltnX etc.).
 
Falls eine PO-Datei bereits fuer diese Locale exisitiert, verarbeitet Em_installtdeb nur diese eine Uebersetzung und erstellt eine einzelnes TDeb-Paket.
 
Falls die PO-Datei nicht exisitiert, endet Em_installtdeb mit einem Fehler. (Kopieren Sie die POT-Datei von der Originalquelle, um eine neue PO-Datei zu erstellen und bearbeiten Sie sie, um die neue Uebersetzung einzufuegen, fuehren Sie dann erneut Em_installtdeb aus.)
 
XLANG_CODEX ist als ein XUebersetzermodusX gedacht, in dem individuelle TDeb-Pakete vom Uebersetzer erstellt und in ein geeignetes Depot hochgeladen werden koennen. Em_installtdeb erstellt den TDeb-Quell-Tarball, eine brauchbare X.dscX-Datei zur Beschreibung der TDeb-Quelle und eine TDeb-X.changesX-Datei.
no-act
Em_installtdeb wird nur die Steuerungsdaten ausdrucken, die fuer das TDeb benutzt wuerden, falls die Debhelper-Option --no-act benutzt wird.
no-sign
Em_installtdeb ruft normalerweise XdebsignX auf, wenn X.changesX gespeichert wird. Diese Option unterdrueckt dieses Verhalten.

Benutzung in Debian

Beachten Sie, dass die Benutzung von Xdebian/xcontrolX im aktuellen Skript bedeutet, dass XS-TDeb-Build-Directory und XS-TDeb-POT-Names in Xdebian/controlX unterstuetzt werden muessen, bevor es durch Debian eingefuehrt wird. Zur gleichen Zeit muss auch XXC-Package-Type: tdebX unterstuetzt werden.
XrepreproX benoetigt einen Patch, um X.tdebX zu akzeptieren und in den Depot-Dateien zu erlauben:
$ reprepro --ignore=extension -b /path/ includedeb \
unstable ../qof-locale-sv_0.7.5-1em1_arm.tdeb
$ ls /opt/reprepro/locale/pool/main/q/qof/
qof-locale-sv_0.7.5-1em1_arm.deb
 Filename: pool/main/q/qof/qof-locale-sv_0.7.5-1em1_all.deb
 Description: sv translation for qof (tdeb)
XrepreproX benoetigt ausserdem eine Moeglichkeit eine .tdeb-.changes-Datei zu handhaben.
reprepro -b /opt/reprepro/locale/ include unstable ../qof_0.7.5-1em1_arm.changes
Xqof-locale-id_0.7.5-1em1_arm.tdebX ist nicht X.debX oder X.udebX!
Es sind Fehler aufgetreten!
Damit die Datei Xdebian/rulesX im generierten Quellpaket nuetzlich ist, muss Em_installtdeb unterteilt werden, so dass Xdpkg-buildpackageX die richtigen Daten erhaelt, um eine brauchbare X.changesX-Datei zu erstellen, da Em_installtdeb sich dafuer zu schade ist, selbst aufzuraeumen.

endianness

Until version 3.0.0, Emdebian packages used architecture-dependent TDebs but this proved to be unnecessary, TDebs are now architecture-independent, using the internal gettext wrapper.

Andere Uebersetzungen

Pakete koennten ausserdem uebersetzte Handbuchseiten und Uebersetzungen fuer Debconf-Schablonen enthalten. Diese Uebersetzungen werden nicht verpackt oder von Em_installtdeb gehandhabt, da Emdebian solche Dateien nicht handhaben muss und weil jede Variante eine angepasste Handhabung benoetigt (der groesste Teil der Debconf-Unterstuetzung ist bereits verfuegbar). Falls TDebs von Debian unterstuetzt werden, muessen diese Fragen geklaert werden, so dass Emdebian fortfahren kann, nur die Gettext-Programmuebersetzungen zu verpacken, ueberstuetze Handbuchseiten auszulassen und Debconf-Uebersetzungsunterstuetzungen existierenden Werkzeugen zu ueberlassen.

Benutzung von Xdebhelper::init

Das Problem mit Init besteht darin, dass $dh{DOPACKAGES} in Xdebian/controlX arbeitet und die Locale-Pakete nicht in Xdebian/controlX liegen. Deshalb erhaelt Em_installtdeb den XSource: X-Paketnamen, um ihn als Praefix fuer die Locale-Paketnamen zu benutzen.

Uebersetzermodus

Dies ist ein besonderer Modus, weil Debhelper so etwas ueblicherweise nicht tun wuerde. Im Uebersetzermodus wird debian/rules nicht benutzt. Em_installtdeb tut alles noetige, um das angeforderte TDeb zu konfigurieren, erstellen, installieren und verpacken und das dazugehoerige TDeb-Quellpaket benutzt ein temporaeres Verzeichnis, um sicherzustellen, dass die korrekten Steuerungs- und Aenderungsprotokolldaten verfuegbar sind.
Es gibt ein paar Probleme mit dieser Methode X die Erstellung benoetigt ein Xdebian/changelogX aber ausserdem wird eine Uebersetzung als natives Paket benoetigt (um zu verhindern, dass ein leeres .diff.gz gebraucht wird), sogar wenn das Upstream-Paket nicht nativ ist. Die derzeitige Loesung besteht darin, eine neue Version zu erstellen (in angehaengtem TDeb), um einen sauberen Eintrag in XchangelogX zu erhalten, der nicht versucht Fehler des Original-Uploads erneut zu schliessen und dann Dpkg-Source zu zwingen das TDeb als natives Paket zu betrachten. Dies koennte sich in Zukunft aendern, aber solche Aenderungen benoetigen wahrscheinlich Unterstuetzung in Dpkg. Diese Methode funktioniert mit der existierenden Unterstuetzung, obwohl sie nicht ideal ist. Eine veraenderte Version zu benutzen stellt ausserdem sicher, dass die generierten Dateien nicht andere Erstellungen am gleichen Ort beeintraechtigen. Obwohl sie nicht benutzt wird, wird eine debian/rules-Basisdatei hinzugefuegt.
Falls DEBSIGN_KEYID definiert ist, versucht Em_installtdeb Debsign zu benutzen, um die X.tdeb.changesX- und X.dscX-Dateien zu signieren. Dies koennte wahlweise gemacht werden, falls spaeter entschieden wird, dass das Hochladen von Uebersetzungen vollstaendige Aenderungsprotokolleintraege haben muss, um Fehler im Debian-BTS zu schliessen. Ein Teil des Anreizes von TDebs besteht darin, dass Xi18nX-Fehler normalerweise nicht beim BTS eingereicht werden muessen.
2011-06-19 perl v5.12.3