De/Übersetzung

From GnuCash
(Redirected from Übersetzung)
Jump to: navigation, search

Programm

Zu übersetzen sind die Zeichenketten (Wörter und Sätze) der grafischen Benutzeroberfläche.

Außerdem ist die Online-Hilfe zu übersetzen. Diese bildet jedoch zusammen mit dem Tutorial ("Kurs und Konzepte") ein eigenes (Dokumentations-)Repository.

Voraussetzung

Weblate

Einige Komponenten können inzwischen auf weblate bearbeitet werden – ohne Git …

Das Glossar
287x66-grey.png
Das Programm
287x66-grey.png
Die Website
287x66-grey.png
Idee zum Programm testen
Auf weblate eine aktuelle mo-Datei erzeugen und in ein aktuelles Nightly kopieren.

Wer an der Übersetzung mitwirken möchte, sollte das öffentliche Git-Repository von GnuCash sowohl in ein eigenes Repository auf GitHub, als auch in ein Arbeitsverzeichnis auf dem eigenen Rechner "klonen". Hierfür ist Git auf dem eigenen Rechner zu installieren. Ebenso sollte man aus dem Quelltext einen eigenen Build erstellen können. Dadurch wird gewährleistet, dass immer die aktuelle Vorlage für die Übersetzung vorliegt und benutzt wird.

Git-Repository

Nachdem man bei GitHub einen Account angelegt und sich eingeloggt hat, geht man auf die oben verlinkte Seite und klickt auf "Fork". Dann wird das Git-Repository von GnuCash in den eigenen Bereich auf GitHub kopiert ("geklont"). Dies wird benötigt, um direkt von Github aus einen Pullrequest zu erstellen.

Man kann aber auch Patches über den Bugtracker einsenden.

Um das Git-Repository von GnuCash in das Arbeitsverzeichnis auf dem eigenen Rechner kopieren, führt man in dem Verzeichnis auf dem eigenen Rechner, in das das spätere Arbeitsverzeichnis platziert werden soll, folgenden Befehl aus:

git clone https://github.com/Gnucash/gnucash.git

Es entsteht dann das Arbeitsverzeichnis, in das man nun wechseln kann.

Für Git gibt es zahlreiche Anleitungen - auch Online. Sie sind über Suchmaschinen unschwer zu finden. Wer an der Übersetzung mitwirken möchte, sollte in einem gewissen Maße im Umgang mit diesem Versionskontrollsystem vertraut sein-

Build-Umgebung

Compiler (gcc), Linker (libtools), autotools, intltools, git, ...

Gnucash verwendet die folgenden Bibliotheken. Daher müssen ihre dev[el]-Pakete beim Bauen installiert sein.

Unter Debian 9 (Stretch/Testing) werden folgende Pakete benötigt:

libglib2.0-dev (>= 2.28.0)
libgtk2.0-dev (>= 2.24.0)
guile-2.0-dev (>= 2.0.0)
libart-2.0-dev
libgnomecanvas-2-dev (>= 2.0)
libgoffice-0.8-dev (>= 0.7.0)
libxml2-dev (>= 2.5.10)
libxslt1-dev
swig (>=b2.0.10) Wird nur benötigt, wenn aus Git oder SVN heraus gebaut wird.
libwebkitgtk-dev (>= 1.0)
libboost-dev (>=1.53.0)

Optional, aber sinnvoll sind noch folgende Pakete:

libaqbanking (>= 4.0.0) für Onlinebanking und Importe; benötigt auch 
   libgwenhywfar60-dev und ibktoblzcheck1-dev (Beide Pakete werden nachisntalliert.)
libdbi-dev (>=0.8.3) für die SQL Backends,
           Vergessen Sie nicht, Ihren bevorzugten Datenbanktreiber zu installieren.
           In Debian heißen die Treiber: libdbd-mysql, libdbd-postgresql und libdbd-sqlite.
libofx-dev (>= 0.9.0)
python-dev (>= 2.7.0) python bindings; Es werden die Headers, nicht die Binaries benötigt.


Quelle: Libraries/Deps

Eigenes Build erstellen

Praktischerweise erstellt man mit Git einen eigenen Branch für die Überarbeitung der Übersetzung. Dieser muss auf dem Branch stable basieren.

Danach führt man im Arbeitsverzeichnis

./autogen.sh
./configure --enable-debug --enable-aqbanking --prefix=/opt/gnucash-git
make
sudo make install

aus.

Wenn das erfolgreich durchgelaufen ist, hat man eine selbstgebaute Version nach /opt installiert.

Mit

make pot

werden alle übersetzbaren Zeichenketten in die Datei gnucash.pot eingesammelt.

Zu jedem Release gibt es eine eigene gnucash.pot Datei. Für die Version 2.6.14 ist es gnucash-2.6.14.pot. Für weitere Versionen muss die Versionsnummer im Link angepasst werden.


Mit

./configure --help 

kann man sich alle Parameter anzeigen lassen.

Aktualisieren der *.po Datei

Hierfür benötigt man unter Debian das Paket gettext, welches die GNU-Internationalisierungsprogramme enthält.

Es ist im Verzeichnis po folgender Befehl ausführen:

msgmerge -o de.new.po de.po gnucash.pot
mv de.new.po de.po

Auf diese Art und Weise werden alle neuen Zeichenketten in die bereits bestehende de.po eingepflegt.

Mit

msgfmt -c --statistics de.po

können Sie die Syntax checken und eine Statistik auflisten.

Testen

Nach der Aktualisierung der Datei de.po wird diese im aktuellen Build getestet.

Dazu ruft man im Arbeitsverzeichnis nochmal

make 
sudo make install

auf.

Mit make wird u.a. auch msgfmt aufgerufen, um aus der Datei de.po die Datei gnucash.mo zu erstellen.

Wer zunächst in der eigenen Installation testen möchte, kann unter (GNU/Linux) auch einfach nur die *.mo Datei wie folgt aktualisieren:

sudo  msgfmt <Pfad zur *.po Datei>/de.po -o /usr/share/locale/de/LC_MESSAGES/gnucash.mo

Bei anderen Betriebssystemen muss der Pfad zur *.mo Datei angepasst werden.

Dokumentation

Zur Dokumentation von GnuCash gehören die Online-Hilfe und das Tutorial "Kurs und Konzepte".

Hierfür gibt es ein eigenes Repository auf GitHub.

Hinsichtlich der eigenen Repositories auf GitHub und auf dem eigenen Rechner gilt das oben Ausgeführte entsprechend.

Übersetzen

Die Übersetzungen erfolgen in den xml-Dateien im guide/de- bzw. help/de-Unterverzeichnis.

Dokumentation erstellen

Im Arbeitsverzeichnis wird danach der Befehl

./autogen.sh

ausgeführt.

Es folgt der Befehl:

./configure --with-mobi

Schließlich im Verzeichnis, das die jeweiligen Sprachdateien enthält (also im guide/de- oder help/de-Unterverzeichnis):

make pdf mobi

Wird dieser Befehl im Arbeitsverzeichnis ausgeführt, werden alle Sprachen (und jeweils beide Dokumentationsobjekte) "gebaut". Dies nimmt nicht nur viel Zeit in Anspruch, sondern ist meist auch überflüssig.

Validierung

Zur Validierung kann der Befehl

xmllint --valid --noout gnucash-guide.xml

(im Verzeichnis guide/de) ausgeführt werden.

xmllint ist ein Programm zum Validieren und Umformatieren von XML-Dokumenten. Dieses Programm ist bei Debian im Paket für XML-Hilfsprogramme libxml2-utils enthalten.