Topic: [Patch] Sprache Deutsch unter Ubuntu
carli Topic Opener |
Posted at: 2011-01-23, 22:53
Hi, Ein Kumpel hat nen Patch geschrieben, der die Locales unter Ubuntu fixt: Ich finde das ganze ein bisschen hacky, vielleicht sollte man lieber "locale -a" abfragen und daraus die Sprachenliste erzeugen. Was meint ihr? Er (martin) meint, es sollte auf alle Fälle noch auf anderen Linux-Systemen (gentoo) getestet werden. Edited: 2011-01-23, 22:57
Top Quote |
Nasenbaer |
Posted at: 2011-01-24, 19:07
Moin carli, Zwei Anmerkungen warum wir das so leider nicht übernehmen zu können:
Dennoch sind wir auch gerade bei dem Übersetzungsproblem über jede Hilfe dankbar :). Liebe Grüße Nasenbaer Edited: 2011-01-24, 19:07
Top Quote |
martin |
Posted at: 2011-01-24, 22:06
Hallo Nasenbaer,
zwar erwähnt - da hatte ich insgeheim die Hoffnung, man könnte das Problem über diese Doppelpunkt-Liste für mehrere Locales sehr einfach lösen.
In src/i18n.cc ist außerdem ersichtlich, dass mal jemand mit dem Doppelpunkt experimentiert haben muss. Weißt du, was dabei rausgekommen ist - bzw. ob das Problem da lag, wo ich es vermute? Denn wenn jemand wüsste, wie man LANGUAGE vom Programm aus für gettext nutzbar macht, könnte das einen neuen Ansatz zur Problemlösung bieten. Soweit meine Ideen. Bin dankbar für Rückmeldung. Viele Grüße Martin Edited: 2011-01-24, 22:10
Top Quote |
carli Topic Opener |
Posted at: 2011-01-24, 22:46
Die Lösung naht: Die auf dem System installierten Sprachen bekommt man mit $ locale -a Das ist unter allen Distributionen der Parameter, den gettext nimmt und aus dem auch die Sprach-Auswahlliste aufgebaut werden sollte. Wie das mit Windows läuft, weiß ich ehrlich gesagt nicht. Dass dann nur die auf dem System installierten Sprachen verfügbar sind und nicht alle Sprachen, die Widelands unterstützt, sollte uns jetzt mal nicht weiter stören. Ich denke mal, wenn jemand eine Sprache spielen will, hat er sie auch installiert. Top Quote |
Nasenbaer |
Posted at: 2011-01-26, 19:13
Moin nochmal :),
Das seh ich genauso, aber bisher gab es halt leider keine ausreichend zufriedenstellende Lösung - so wie es im Moment ist, läuft es immerhin mit "try system language" unter fast allen Systemen. Was das mit "unter den aktuellen Ubuntus keine andere Einstellung als "de_DE.utf8" bzw. "de_DE.utf-8" angeht: So wie ich die gettext development guides verstehe ist genau da das Problem, weil Ubuntu Gettext auf irgendeine Weise restriktiv verwendet. Ein anderer Fakt ist nämlich zum Beispiel, dass bei älteren Ubuntu Versionen die Endung utf8 minimal anders war (sei es case sensitivity oder das ein "-" drin war, ich weiß es gerade nicht mehr) - es gab schonmal ähnliche Patches, die leider die Übersetzung auf besagten älteren Ubuntu Versionen verhinderten - und jetzt reden wir nur über Ubuntu - ich benutze Mandriva, andere Arch, Gentoo, Debian, Fedora, OpenSuSE und was auch immer Die wirklich große Frage ist: auf welche Weise kann man herausbekommen, wie besagte restriktiv festgesetzte Sprach "Strings" auf dem System zur verfügung stehen, dann könnte man theoretisch durch ein std::string::find() schauen, ob z.B. "de" im String enthalten ist usw. usf.
Da kann ich leider auch nichts zu sagen - in den gettext development Dokumentationen stand einiges, aber auch da musste ich vor ein, zwei Jahren (als ich mich damit auseinander gesetzt habe) leider feststellen, dass sich gettext auf verschiedenen Linux Distributionen anders verhielt - für die damals als problematisch bekannten (Ubuntu, Debian, Gentoo) schien das aber leider eine Sackgasse zu sein - ich lasse mich aber gerne eines besseren belehren :). Wie gesagt: bitte nicht als Destruktive Kritik sehen, letztlich sehen wir alle das selbe Problem, was wir brauchen ist nun DIE Lösung ;). Liebe Grüße Nasenbaer Top Quote |
carli Topic Opener |
Posted at: 2011-01-26, 19:28
Gettext statisch einkompilieren! Top Quote |
Nasenbaer |
Posted at: 2011-01-26, 19:29
da machen uns die Packer der Distributionen einen Strich durch die Rechnung Top Quote |
martin |
Posted at: 2011-01-26, 21:13
Hmm, scheint alles nicht so einfach zu sein Aber wenn man mal typische Ausgaben zu $ locale -a für unterschiedliche Distributionen erGooglet, findet man immer eine Zeile "de_DE.utf8". Zumindest hab ich das für (open)SuSE, Debian, Ubuntu, Gentoo, RedHat, Mandriva und Fedora getan. Arch hab ich vergessen - Asche auf mein Haupt... Es scheint übrigens keinen Unterschied zu machen, ob man UTF-8 nun groß oder klein, mit oder ohne Bindestrich schreibt - aber da spreche ich jetzt wieder nur von den aktuellen Ubuntus. IMHO gibt es nur drei Möglichkeiten der Lösung: 1. Wir suchen einen hinreichend großen "gemeinsamen Nenner" aller relevanten Distributionen und nehmen den - da dachte ich ja bisher, de_DE.utf8 wäre ein solcher. Kann aber sein, dass ich mich irre. Oder 2. Wir verwenden eine andere Übersetzungs-Schnittstelle als gettext - schreiben schlimmstenfalls unsere eigene. Aber diesen Aufwand halte ich nur für gerechtfertigt, wenn man die bisher geleistete Übersetzungsarbeit sinnvoll "mitnehmen" kann. Oder 3. Uns fällt spontan noch die ultimative Lösung ein. Wer kennt sich denn am besten mit gettext aus? Gibt es vielleicht einen Aspekt, der noch nicht berücksichtigt wurde? Habt ihr z.B. das statische Einkompilieren wirklich bis zum Ende durchgedacht? Ein vierter Punkt wäre der status quo - den halte ich zwar für eine schlechte Lösung, aber immerhin diejenige mit dem geringsten Aufwand Viele Grüße Martin Top Quote |
Nasenbaer |
Posted at: 2011-01-28, 22:39
Vielleicht ist die Idee aus meinem letzten Post gar nicht mal so verkehrt: Selektiert man eine Sprache, wird geschaut, ob der Language Code in der Auflistung vorhanden ist - falls ja, wird er unverändert verwendet - ist er es nicht, wird nach Codes gesucht, die den String enthalten und dieser als Alternative verwendet. How about that? Anyone up for a patch and a test? Liebe Grüße Peter Top Quote |
carli Topic Opener |
Posted at: 2011-01-29, 12:48
Auf unserer nächsten Widelands-LAN-Party wird der bestimmt angefertigt werden Top Quote |