Wieder mal ein kleines Problem für das ich heute eine Lösung gefunden habe: Deutsche Sprache in Keepnote unter Archlinux.
Normalerweise ist das kein Problem in Keepnote die Sprache auszuwählen und das klappt dann auch, nur unter Archlinux will das partout seit x Versionen nicht funktionieren. Einen Bugreport habe ich schon ewig ausgefüllt, aber da hat nie jemand darauf reagiert (vermutlich ein Archlinuxproblem? Unter Ubuntu geht es problemlos.). Also bleibt es mal wieder an mir, dieses Problem zu lösen oder vielmehr irgendwie zu umschiffen.
Eigentlich wäre die englische Sprache ja okay -juckt ja niemand-, aber das blöde ist, dass auch alle geöffneten Dateien aus Keepnote heraus dann in englischen Programmen geöffnet werden, was manchmal Probleme macht.
Mein erster Ansatz war ja Python 3, da Keepnote Python 2.x nutzt und Arch standardmäßig Python 3 nutzt und es da vllt. irgendwelche Probleme gibt, dass in Python 2.7 Language Files fehlen oder sowas – aber hier war alles korrekt. Dann habe ich mich vom Quelltext von /usr/bin/keepnote aus mal durchgehangelt nach /usr/lib/python2.7/site-packages/keepnote/. Schließlich wurde ich in /usr/lib/python2.7/site-packages/keepnote/trans.py fündig: Die Zeile
langfile = gettext.find(GETTEXT_DOMAIN, localedir, languages)
verursacht die Probleme, sie findet einfach keine Sprachdateien. Ich hab so ziemlich alles überprüft was daran nun fehlerhaft sein könnte, aber laut dem Python Docs müsste das alles stimmen, da sowohl GETTEXT_DOMAIN, als auch localedir und languages die richtigen Werte enthalten. Wenn man folgende Zeile einfügt:
print(localedir+"/"+languages[0]+"/LC_MESSAGES/"+GETTEXT_DOMAIN+".mo")
dann wird auch der korrekte Pfad zur deutschen Sprachdatei ausgegeben.
(/usr/lib/python2.7/site-packages/keepnote/rc/locale/de_DE.UTF8/LC_MESSAGES/keepnote.mo)
Meine zweite Vermutung war ein Rechteproblem des Ordners oder der Dateien – da stimmte aber auch alles.
Also der “dirty” Workaround: Eine Zeile darunter einfach den Pfad zur Sprachdatei von Hand setzen und (optional) die andere Zeile auskommentieren, dann sieht das so aus:
#langfile = gettext.find(GETTEXT_DOMAIN, localedir, languages) langfile="/usr/lib/python2.7/site-packages/keepnote/rc/locale/de_DE.UTF8/LC_MESSAGES/keepnote.mo"
Zusätzlich würde ich noch “usr/lib/python2.7/site-packages/keepnote/trans.py” (man beachte den fehlenden / am Anfang) bei NoUpgrade in /etc/pacman.conf eintragen, damit es bei einem Update nicht überschrieben wird.
Dann sollte man aber immer nach jedem keepnote update nach der trans.py.pacnew im selben Ordner ausschau halten, sonst benutzt man womöglich eine veraltete (inkompatible) Version von trans.py. (wäre auch zu empfehlen, da der Bug vermutlich nie gefixt wird, wenn man sich die bisherigen Reaktionen so ansieht..)
Nach über einem halben Jahr geht nun Keepnote endlich wieder auf Deutsch … juhu!
Hier gehts zur Keepnote Homepage, hier zum AUR Paket.
Keepnote ist ein sehr gutes Notizbuchprogramm, danke an Matt Rasmussen für seine Arbeit, auch wenn es mit dem Bugfixing etwas hapert.







