Repo Spotlight:
Addlocale und GetOpenOffice
von pinoc
Einer der neueren Anwendungen in PCLinuxOS ist ein Skript namens addlocale (AL). Mit diesem benutzerfreundlichen Programm kann man eine von 72 nicht-Englischen Sprachen in PCLinuxOS hinzufügen, und es hilft so internationalen Benutzern PCLinuxOS schnell in ihre Muttersprache zu überführen. Die Arbeit an AL führte auch zu einem weiteren Skript namens GetOpenOffice (GOO), welches auf schnelle und einfache Weise entweder eine bestehende OpenOffice Installation updatet oder die neueste Version von OpenOffice in PCLinuxOS installiert. Nun da wir die Grundfunktionen von AL und GOO kennen, möchte ich Ihnen deren Entstehungsgeschichte erzählen.
Addlocale, eine lange Geschichte…
KDE ist die mit Abstand beste Desktopumgebung, keine Frage. Wie bitte? Und was hat das mit AL zu tun? Nun, sehr viel. Als langjähriger Linuxpriester und -überzeugter KDE-Fan fand ich schließlich die bei weitem beste KDE-Implementierung in PCLinuxOS. Das war vor ungefähr 2 Jahren, aber ist heute immer noch zutreffend.
Ich förderte PCLinuxOS wo ich kann, bei meinen Eltern in Deutschland und Freunden und Kollegen hier in Italien. Sie liebten das Aussehen, das Layout, die Auswahl der voreingestellten Programme, die Benutzerfreundlichkeit von PCLinuxOS, aber schließlich verwendeten sie es nicht, weil es nicht in ihrer Muttersprache war. PCLinuxOS war nur Englisch und andere Distros waren mehrsprachig.
Dieses war ein offensichtliches Problem für die Förderung von PCLinuxOS in der nicht-Englisch sprechende Welt. Die einzige Weise, meinen Freunden zu helfen die beste Linux Distro zu verwenden war herauszufinden, wie man PCLinuxOS auf italienisch umstellt. Also wurde das PCLinuxOS und andere Foren und alle möglichen KDE Bestandteile und Dokumente durchsucht, Lernen durch Rumprobieren, und schließlich funktionierte es!
Außer dem Hinzufügen der neuen Spracheinstellungen im System, mussten man nur die vorhandene Anwendungen noch mal reinstallieren, um sie in der neuen Sprache erscheinen zu lassen. Die notwendigen Schritte wurden in der Juli 2008 Ausgabe dieser Zeitschrift zusammengefasst und können als AL-Version 0, die „Vorschlaghammerlösung“ angesehen werden, weil das gesamte System reinstalliert wird, später REINSTALL-Modus genannt.
In den folgenden Monaten wandelte ich einige englische Installationen mit dieser Methode in italienische um. Dann dachte ich, diese langwierigen Schritte zu automatisieren und in ein benutzerfreundliches Skript zusammenzufassen. Dieses würde jedem erlauben, diese Schritte leicht anzuwenden ohne die notwendigen Details unter der Haube kennen zu müssen. Da der bereits vorhandenen englischen Lokalisierung nur eine neue Lokalisierung hinzugefügt wird, nannte ich das Skript addlocale.
Nach viel Lesen und Erlernen der internen Einstellungen und Funktionsweisen meiner geliebten Desktopumgebung, funktionierte AL schließlich für italienisch. Der offensichtliche folgende aber schwierige Schritt war, dieses Skript für andere Sprachen zu generalisieren, zuerst 6, dann waren 20 und schließlich alle 73 KDE3-i18n Sprachen enthalten. Die anfängliche Idee war, AL für die Anwendungen der PCLinuxOS 2009.1 CD auszurichten.
Um bei der zeitraubenden Reinstallation des Systems trotzdem noch eine annehmbares Ergebnis zu haben, konzentrierte ich mich nur auf die „wesentliche Anwendungen“. Das waren die meisten KDE Anwendungen der CD, aber ich vergaß dabei viele GTK Anwendungen. Die Zahl der gefundenen übersetzbaren Anwendungen erhöhte sich ständig und nun betrachtete ich auch Anwendungen, die nicht auf der 2009.1 CD waren. E gelang mir jedoch nie eine komplette Liste der übersetzbaren Anwendungen für einen gegebenen Sprache aufzustellen. Dies war der Stand der Dinge bis zur Version 1.6.
Dann verstand ich schließlich, dass die Übersetzung-relevanten Informationen in so genannten mo-Dateien enthalten sind, die dem System für die neue ausgesuchte Sprache während der Reinstallation einer gegebenen Anwendung hinzugefügt werden. Ich schrieb einen separates Skript, welches die RPMs des gesamten PCLinuxOS Repo (14GB) auf mo-Dateien einer jeweiligen Sprache durchsucht, und dann für jede Sprache eine vollständige aller übersetzbaren Anwendungen ausgibt. Diese Listen wurden in Version 1.7 integriert, dann mit den RPMS des System verglichen, und nur jene Anwendungen, die im System vorhanden waren und für die es eine mo-Datei gab, wurden reinstalliert.
AL 1.7 wurde vollständig umgeschrieben und erhielt eine neue modulare Struktur: Teil 1 ist generisch und fügt dem System sprachspezifische Extrapakete wie Fonts hinzu. Teil 2 beschäftigt sich mit den mo-Dateien, die während der Reinstallation der sprach-relevanten RPMS extrahiert werden. Diese neue modulare Struktur in AL 1.7 hatte den zusätzlichen Vorteil, das die spezifischen Einstellungen der Fenster-Verwaltungsprogramme in einem separaten Abschnitt zusammengefasst wurden und infolgedessen konnte AL nun auch auf nicht-KDE Fenster-Verwaltungsprogramme wie Gnome, LXDE, etc. ausgedehnt werden .
FAST-Modus und fremde Übersetzungen…
Die nächste große Veränderung kam mit AL 2.0. Erst jetzt wurde mir klar, dass die zeitraubende und langwierige RPM-Reinstallation in Teil 2 einfach durch das Extrahieren eines sprach-spezifischen mo-Dateienarchivs in den jeweiligen Sprachordner ersetzt werden konnte. Also änderte ich mein separates Skript dahingehend zuerst eine neue Datenbank der extrahierten sprach-spezifischen mo-Dateien unter Verwendung der gesamten Repoinformation zu erstellen, und anschließend diese mo-Dateien in sprach-spezifische Archive zu verpacken. AL 2.0 lud dann einfach ein solches mo-Dateiarchiv herunter und extrahiert es in das System.
Dieses neue Konzept, genannt FAST-Modus, ersetzt den zeitraubenden Download und die Reinstallation von typischerweise 500 MB RPMs durch einen nur ~ 10 MB kleinen Download und verkürzt den Reinstallationsprozess in Teil 2 von ungefähr 20 Minuten auf 2 Sekunden, ganz zu schweigen vom Zeitgewinn bei der Downloadzeit.
Ein anderer großer Vorteil der vorprozessierten mo-Datenbank war die Möglichkeit, Übersetzungen anderer Linuxverteilungen zu verwenden. Zum Beispiel: das PCLinuxOS RPM für die Anwendung Synaptic hat keine schwedische mo-Datei, also kann die Reinstallation von Synaptic in einer schwedischen Installation keine schwedische Übersetzung für Synaptic zur Verfügung stellen; stattdessen bleibt Synaptic in Englisch. In einer schwedischen Ubuntu Installation ist Synaptic jedoch in Schwedisch.
Beim Nachforschen im Ubuntu DEB-Paket für Synaptic fand ich die schwedische mo-Datei, kopierte diese von einem schwedischen Ubuntu zu meiner schwedischen PCLinuxOS Testmaschine in den Sprachordner /usr/share/locale/sv/LC_MESSAGES/, startete Synaptic neu, und, freudige Überraschung, Synaptic war Schwedisch!
Der logische nächste Schritt war mein separates Skript nochmals so abzuändern, alle Ubuntu DEB-Pakete auf mo-Dateien zu scannen, die in PCLinuxOS nicht vorhanden sind. Diese fremden mo-Dateien, oder alle mögliche anderen mo-Dateien, die von unseren Nutzern in einer anderen Linuxdistribution gefunden werden, werden dann zur PCLinuxOS mo-Datenbank hinzugefügt. Der Trick der Nutzung fremden mo-Dateien ist nur für Anwendungen nützlich, für die PCLinuxOS keine vorhandene Übersetzung hat.
PCLinuxOS mo-Dateien haben die höchste Priorität, und jede fremde mo-Datei wird nicht mehr benutzt, sobald eine PCLinuxOS mo-Datei vorhanden sein wird. Nach dem Motto „wir müssen nicht das übersetzen, was andere bereits getan haben,“ wird die PCLinuxOS mo-Datenbank mit den Ubuntu mo-Dateien angereichert und monatlich aktualisiert. Die sprach-spezifischen mo-Dateienarchive werden gepackt und auf einem Webserver hochgeladen, von dem sie über AL für unsere Nutzer zur Verfügung stehen. Auf diese Weise kann ich neue, regelmäßig aktualisierte Übersetzungsinformationen von meinem separaten Skript zur Verfügung stellen, ohne irgendetwas in AL selbst ändern zu müssen.
Der neue FAST-Modus funktionierte sehr gut und ersetzte den vorhergehenden REINSTALL-Modus in der folgenden AL-Version, die außerdem die neue aufregende Eigenschaft hatte, auch auf einer LiveCD anwendbar zu sein. Auf diese Weise, kann der Nutzer die LiveCD in Englisch starten, fügt dann während der Live-Session die neue Sprache hinzu und installiert dann das bereits lokalisierte System auf die Festplatte. Die folgende AL-Version 2.2 brachte die Möglichkeit zur Installation oder zum Upgrade auf die neueste OpenOffice Version 3.1.
GetOpenOffice
An diesem Punkt hörte ich über das vierteljährliche Updateprojekt und trat mit Neal Brooks in Verbindung. Diese Idee des Projekts gefiel mir sehr, und ich bin Neal für das Testen von AL sehr dankbar.
Aus Platzmangel musste OpenOffice von der 2009.2 CD entfernt werden. AL hatte jedoch jetzt die Option zur Installation einer lokalisierten Version von OpenOffice. Auf Neal’s Vorschlag, verwendete ich einige Abschnitte von AL für ein neues Programm, namens GetOpenOffice (GOO). Die erste Version GOO 0.3 installierte oder updatete auf einfache Weise die neueste, der vorgefundenen Systemlokalisierung entsprechenden, OpenOffice Version. GOO adressiert alle möglichen OpenOffice Update Probleme und befreit den PCLinuxOS Nutzer von der Repositorien-Konfiguration der speziellen PCLinuxOS OpenOffice Sektion.
Beginnend mit einer zufälligen Beobachtung von Neal („das ist seltsam…"), fanden wir heraus, dass die für Änderungen vorhandene Speicherkapazität während einer Live-Session 49% des vorhandenen RAM-Speichers entspricht. Mit diesem neuen Wissen bewaffnet, schrieb ich AL und GOO so um, vor der gewünschten Installation das System auf genügende Speicherkapazität zu überprüfen, was insbesondere in einer Live-Session von Interesse ist.
Die folgende GOO-Version hatte die Option zur Auswahl einer der 104 OpenOffice Sprachen, unabhängig von der gegenwärtigen Systemlokalisation. Zusätzlich gab es weitere Information über die Verfügbarkeit und Installation von lokalisierten OpenOffice Wörterbüchern und ein Tests zur optionalen Java-Unterstützung in OpenOffice wurde hinzugefügt. Schließlich führten die nächsten Versionen von AL und GOO einen rigorosen Test der Repositorienkonfiguration in Synaptic durch, denn eine fehlerhafte Konfiguration war die Hauptursache von im Forum erklärten Problemen mit AL und GOO. Ein zusätzlicher Test auf, und optionale Installation von, typischen Fonts wurde zur verbesserten Cross-Plattform Kompatibilität der OpenOffice Dokumente hinzugefügt. OpenOffice verwendet nun auch die eigenen Dialogefenster beim Öffnen und Speichern der Dokumente. Diese Einstellung macht OpenOffice robuster bei der Verwendung auf verschiedenen Window-Managern und war für die KDE4-Kompatibilität zwingend notwendig. GOO 0.7 unterstützt jetzt jegliche OpenOffice bezogene Aufgabe von der Installation, Reinstallation, Hinzufügen von weiteren OpenOffice Lokalisationen, bis hin zur vollständig Deinstallation von OpenOffice.
Sind das nun die finalen Versionen? Das glaubte ich oft, aber dann gab es immer wieder etwas Neues. Und außerdem steht die neue Hauptversion der besten Desktopumgebung vor der Tür. Gott sei Dank ist Tex ein KDE Fan.
Hoffentlich ist AL und GOO nützlich für:
- die Würdigung der großartigen Arbeit aller Übersetzer und zur Stimulation der Mitarbeit an weiteren Übersetzungen, da diese nun leicht angewendet werden können.
- zur weltweiten Verbreitung von PCLinuxOS und damit viel mehr Leute dieses fantastischen Betriebssystem in ihrer Muttersprache nutzen können.
- das viele neue nicht-Englisch sprechenden Nutzer den PCLinuxOS Foren beitreten damit wir von ihren neuen Ideen profitieren können, und mit diesen PCLinuxOS noch weiter verbessern.
- nur ein kleines Skript einer LiveCD hinzufügen, um immer aktuellen Zugriff zu Gigabytes von Sprachdaten zu bieten ohne die Notwendigkeit, diese auf eine CD/DVD brennen zu müssen, wo sie schon nach einiger Zeit veraltet sein könnten.
- leicht und schnell lokalisierte PCLinuxOS Remaster zu erzeugen.
- leicht und einfach OpenOffice zu konfigurieren.
Schlussbetrachtung:
Die Lokalisation wendet nur bereits vorhandene Sprachinformationen an und AL ist lediglich eine benutzerfreundliche Schnittstelle für die erforderlichen Schritte, das ist alles. Wenn man bedenkt, dass Lokalisation und Unterstützung für Internationalisierung in PCLinuxOS vorher praktisch nicht existierte (außer ein paar speziellen Gemeinschaftsremaster), ist es ziemlich erstaunlich, zu sehen, wie viel erzielt werden kann, indem man einfach die bereits vorhandene Informationen anwendet.
Ich bin sehr dankbar für das positive Feedback in den Foren, die halfen, AL und GOO den Bedürfnissen der PCLinuxOS Nutzer besser anzupassen. Zu hören, dass AL gut funktioniert und dass es hilft, PCLinuxOS in der nicht-Englisch sprechenden Gemeinschaft zu fördern, ist das größte Danke Schön, dass ich mir wünschen könnte!
Abschließend möchte ich Neal und Tex einen speziellen Dank aussprechen, ihre Geduld, Testbereitschaft und Unterstützung waren eine wesentliche Hilfe, um den PCLinuxOS Nutzern AL und GOO in seiner aktuellen Form zur Verfügung zu stellen: radikal einfache Anwendungen.
Viel Spaß!