Mittwoch, 22. Juni 2011Kontexte in gettextIch bin ja ein bekennender gettext-Fan - intern arbeiten wir nur noch damit und schreiben neben dem Source-Code auch alle Programmtexte auf Englisch und übersetzen sie im Anschluss mittels gettext. Auch für WordPress schrieb ich ja einst einen Patch um von der dort verwendeten PoMo-Implementation wegzukommen. Da wir gerade für einen Kunden ein Wordpress installieren, mussten mir heute morgen zwei "TODO"-Einträge in meinem Code auffallen. Die hatte ich total vergessen. Beide behandelten das Arbeiten mit sog. Kontexten (msgctxt). Mit Kontexten kann man noch einmal zwischen den Übersetzungen differenzieren - je nach Zusammenhang halt. gettext definiert hierfür u.a. die Funktion pgettext() und die ganzen Abarten wie z.B. dpgettext(). Nun besteht allerdings das Problem, dass z.B. die gettext-Bibliothek von PHP diese Funktionen (bzw. Makros) nicht bereitstellt und dementsprechend keine Kontexte zur Verfügung stehen - daher auch die "TODO"s in meinem Code. Ich habe mir daher die Mühe gemacht einmal ein wenig im gettext-Source-Code zu stöbern und zu schauen, ob man das nicht irgendwie nachbauen kann. Man kann! Im übersetzten Dictionary besteht der Lookup-Key aus dem Namen des Kontextes, dem ASCII-Zeichen 0x04 und dem eigentlich gesuchten Text. Diesen Key wirft man dann einfach gegen die gettext()-Funktion. Wichtig hierbei ist nur noch zu schauen, ob der Rückgabewert dem Eingabewert entspricht, denn dann sollte man nur den gesuchten Text zurück geben. In PHP sieht das in etwa so aus:
Einen Tick komplizierter wird es beim Arbeiten mit der Plural-Version:
Man merke: Der Lookup-Key ist der Kontext und die Singular-Version des Textes, schlägt die Übersetzung "fehl" sollte - zumindest laut Source-Code von gettext - die Anzahl noch einmal in Betracht gezogen werden und der Rückgabewert dementsprechend gestaltet werden. Soviel zur Dokumentation. Der Wordpress-Patch wurde in den Versionen für 3.1.2 und 3.1.3 bereits angepasst. Dienstag, 21. Juni 2011Kanonischen Namen bei Webservern abschaltenGestern fragte ein Kunde bei Jabber/XMPP an, warum http://files.domain-a.de/album immer auf http://files.domain-b.de/album/ umleitet Die Antwort ist recht einfach: Bei uns ist UseCanonicalName per Default auf On. Ich weiß gar nicht mehr, warum das so ist, weiß aber dass es vor Jahren mal einen bestimmten und guten Grund dafür gab. <Plakativ> Da die Kundenzufriedenheit aber eines unserer zentralen Interessensgebiete ist </plakativ> haben wir hier gleich heute Abhilfe geschafft und diese Option für jeden Webserver individuell im Kundeninterface klickbar gemacht. Leider ist der betroffene Kunde gerade nicht online, ich würde gerne wissen, wie er reagiert Dienstag, 7. Juni 2011Beta-Tester gesuchtIrgendwie lässt mir das Thema "Sicherheit im Webhosting" gerade keine Ruhe, das Mailing von gestern Abend drehte sich auch nur herum... Wir haben eine Software entwickelt und in unser System integriert, die anhand einer CVE-Datenbank Verzeichnisse auf unseren Webserver scannen und erkennen kann, ob sich dort Software befindet, die mit bekannten Sicherheitslücken behaftet ist. In Zukunft sollen Kunden bequem auswählen können, ob die Software regelmäßig bestimmte Domains prüfen und Warnungen verschicken soll, wenn sie etwas findet. Bis dahin brauchen wir noch ein paar Testfälle! Darum möchte ich mit diesem Posting Kunden suchen, die Webhosting bei uns haben und gerne mal Ihren Webspace durchgescanned hätten. Vorher aufräumen ist ungern gesehen, nachher (bei Bedarf) umso lieber Nachtrag (19:29): 5 Kunden getestet, 16 potentielle Sicherheitslücken auf 14 Domains gefunden - der Dienst ist mehr als nur notwendig. Mittwoch, 1. Juni 2011Skype-Chat via XMPPSofern es meine Freizeit es in den vergangenen Wochen zuließ - und das war echt selten - habe ich mich daran gemacht einen abstrakten Gateway zu basteln, d.h. ich habe ein Stück Software geschrieben, das eine einheitliche API bereitstellt um einen IM-Gateway für XMPP zu bauen. Ich habe sowas ja schon mal für ICQ gebaut, das war mir aber zu sehr spezifisch bzw. zu wenig für andere Zwecke anpassbar. Einen ersten Testfall habe ich gestern Abend bei einem schönen Glas Wein gleich mal ausprobiert: Bevor jetzt aber jeder schreit "Wir haben einen Skype-Transport!" - ein paar Nachteile hat die Sache dann doch: Ich kann mich nur mit "Skype for Business"-Accounts verbinden, "Skypen" bzw. Telefonieren geht natürlich nicht, es kostet Lizenzgebühren, die Zukunft von Skype ist ungewiss - besonders was das Linux-Umfeld angeht - und irgendwie fühle ich mich auch nicht sonderlich danach es Open Source zu machen. Es wird wohl mehr eine private Spielerei bleiben. Aber trotzdem erwähnenswert :) Jabber/XMPP Präsenz via APIVor zwei Jahren hatte ich es schon einmal hier im Blog: Und es hat doch tatsächlich so lange gedauert bis ich mich dazu hab überreden lassen, es für alle Jabber/XMPP-Nutzer bei uns zugänglich zu machen. Auslöser war wie so häufig das einfache Nachfragen eines Kunden, ob es sowas bei uns gibt und dann das herausfordernde "Geb mir kurz mal 10 Minuten" - und es hat tatsächlich nur 10 Minuten gedauert. Wesentlich anstrengender war es dann das ganze noch ins Wiki zu schreiben.
(Seite 1 von 1, insgesamt 5 Einträge)
|
SucheRead this blog!KategorienBlog abonnierenNotice this! |
Kommentare