{"id":506,"date":"2010-08-24T23:44:25","date_gmt":"2010-08-24T21:44:25","guid":{"rendered":"http:\/\/clonkspot.org\/blog\/?p=506"},"modified":"2025-05-15T11:40:19","modified_gmt":"2025-05-15T09:40:19","slug":"openclonk-englische-dokumentations-sources","status":"publish","type":"post","link":"https:\/\/clonkspot.org\/blog\/2010\/08\/24\/openclonk-englische-dokumentations-sources\/","title":{"rendered":"OpenClonk: Englische Dokumentations-Sources"},"content":{"rendered":"<p>Bisher waren die Sources der Entwicklermodus-Dokumentation nur auf Deutsch verf\u00fcgbar. Die Doku basierte auf der von Clonk Rage, die ebenfalls f\u00fcr einige Zeit nur in Deutsch verf\u00fcgbar war und erst sp\u00e4ter in&#8217;s Englische \u00fcbersetzt wurde. Wie auch immer, bevor etwas \u00fcbersetzt werden konnte, musste ja erst einmal eine deutsche Version verf\u00fcgbar sein (<a href=\"http:\/\/bugs.openclonk.org\/view.php?id=287\">siehe Bug #287<\/a>)\u00a0 &#8211; daher konnte bisher auch keiner der englisch-sprachigen User etwas zur Doku beitragen. \u00a0Nach einiger anf\u00e4nglicher Arbeit von <a href=\"http:\/\/forum.openclonk.org\/topic_show.pl?pid=9676#pid9676\">Maikel<\/a> setzte ich mir letztes Wochenende zum Ziel die Situation zu \u00e4ndern: Die Hauptdokumentation sollte auf Englisch vorhanden sein, welche dann m\u00f6glicherweise in Deutsch (oder andere Sprachen) \u00fcbersetzt werden kann. Dazu w\u00e4re das Tool <a href=\"http:\/\/live.gnome.org\/GnomeDocUtils\">xml2po<\/a>, das alle XML-Dateien in docs\/sdk scannt und danach daraus sogenannte po-Dateien erzeugt, die alle entsprechenden Strings zum \u00dcbersetzen enthalten, am Besten geeignet. Die po-Dateien werden dann von Menschen aus Fleisch und Blut \u00fcbersetzt.<\/p>\n<p>Die folgenden Schritte m\u00fcssen daf\u00fcr unternommen werden (Plus\/Minus etwas Detailarbeit):<\/p>\n<ol>\n<li> Die Englische \u00dcbersetzung vervollst\u00e4ndigen: Als ich anfing, waren an die 200 un\u00fcbersetzte deutsche Strings in der Doku, die ich mir vornehmen musste. <a href=\"http:\/\/projects.gnome.org\/gtranslator\/\">gtranslator<\/a> ist ein nettes Tool, das bei der \u00dcbersetzung hilft, bis auf eine Tatsache: Es zeigt nicht an, wo der String herkommt (z.B. welche Zeile aus welcher XML-Datei) &#8211; das musste ich von Hand in der po-Datei nachsehen, wenn ich das wissen musste.<\/li>\n<li>Ein Script schreiben, das die po-Datei der englischen \u00dcbersetzung liest, den deutschen Inhalt aller XML-Dateien mit ihrer englischen Version ersetzt, und eine po-Datei mit der \u00dcbersetzung von Englisch zu Deutsch anlegt. Dieses Script fing als sehr h\u00fcbsches und klares Python-Script an, aber dann musste es immer mehr Spezialf\u00e4lle behandeln. Inzwischen kann ich nicht mehr sagen, dass ich besonders stolz darauf bin&#8230; aber naja, schlussendlich erf\u00fcllte es seinen Zweck. Eine weiter Sache, die ich w\u00e4hrenddessen gelernt habe: Es ist eine gute Idee, Python-Strings und Unicode-Objekte m\u00f6glichst nicht durcheinander zu benutzen; stattdessen sollte man lieber immer entweder das eine, oder das andere benutzen &#8211; andernfalls bekommt man seltsame &#8222;UnicodeDecodeError&#8220;-Exceptions und was nicht alles \u00fcberall verstreut&#8230; ein Grund, warum ich Programmiersprachen mit starker Typisierung lieber mag.<\/li>\n<li>Duplikate in der neu erstellten <a href=\"http:\/\/hg.openclonk.org\/openclonk\/file\/665d17bd4949\/docs\/de.po\">de.po-Datei<\/a> loswerden. Es gab doch einige F\u00e4lle, wo zwei verschiedene deutsche Strings mit dem gleichen englischen String \u00fcbersetzt werden. Das sieht man besonders oft in Tabellen, die (Englische) Bezeichner auflisten &#8211; die sollten gar nicht \u00fcbersetzt werden, denn sie beziehen sich auf einen Eintrag in einer Konfigurations-Datei. Ich habe beschlossen, sie mit einem anderen XML-Tag zu markieren (&lt;literal_col&gt; statt &lt;col&gt;), sodass sie in der \u00dcbersetzung gar nicht erst auftauchen.<\/li>\n<\/ol>\n<p>Einige der Strings, die noch zu \u00fcbersetzen sind, enthalten XML-Fragmente, zum Beispiel um Platzhalter oder Text-Highlighting einzuf\u00fcgen. Nicht wenige dieser XMLs in der englischen Dokumentation sind kaputt. Ich frage mich, warum das Problem nicht gleich erkennbar war, als die Dokumentation am entstehen war.<\/p>\n<p>Nun, wenn du die Dokumentation nach Deutsch, oder eine andere Sprache \u00fcbersetzen m\u00f6chtest, brauchst du lediglich die docs\/de.po Dateien mit einem Tool deiner Wahl (zum Beispiel ein simpler Texteditor &#8211; das Format der Datei ist wunderh\u00fcbsch selbsterkl\u00e4rend) bearbeiten. Auf Linux kannst du die .po-Dateien recht leicht neu generieren (mittels Scan der XML-Dateien f\u00fcr neue Strings) und eine \u00fcbersetzte Version mittels <em>make <\/em>in docs\/(f\u00fcr Windows ist das alles etwas komplizierter, aber bei Bedarf kannst du in die Anleitung schauen: <a href=\"http:\/\/hg.openclonk.org\/openclonk\/file\/665d17bd4949\/docs\/README.cygwin.txt\">README.cygwin.txt<\/a>) erzeugen. Dabei werden ebenfalls die XML-Dateien zu HTML konvertiert &#8211; ideal um in Webbrowsern (Firefox kann zum Beispiel aus irgendeinem Grund nichts mit XMLs anfangen) angezeigt zu werden. Wenn du von Grund auf eine \u00dcbersetzung in eine neue Sprache anfangen m\u00f6chtest (oder du m\u00f6chtest sie in den <em>make<\/em> Prozess mit einbinden, wei\u00dft aber nicht wie) f\u00fchl dich frei einer der Entwickler im Forum oder Chat anzuschreiben. Ein Wort zur Warnung: Alle Docs zu \u00fcbersetzen ist eine unglaublich gro\u00dfe Arbeit, da diese mehr als 4000 Strings enthalten. Wie auch immer, es w\u00e4re schon eine feine Sache wenn alles St\u00fcck f\u00fcr St\u00fcck in kleineren Portionen \u00fcbersetzt wird. Un\u00fcbersetzte Strings bleiben vorerst auf Englisch.<\/p>\n<p>Abgesehen von dieser hier gibt es noch mehr Arbeiten, die die Dokumentation betreffen. Newton hat uns dar\u00fcber bereits einen netten \u00dcberblick<a href=\"http:\/\/forum.openclonk.org\/topic_show.pl?tid=440\"> im Forum<\/a> gegeben. So, meine englisch-sprachigen Freunde, jetzt habt ihr keine Entschuldigung mehr :D . Au\u00dferdem enth\u00e4lt der Code \u00a0noch einige Strings oder Kommentare, die auf Deutsch geschrieben sind. Sp\u00e4ter irgendwann k\u00f6nnen diese auch \u00fcbersetzt werden, aber die Kommentare sollten auch ganz gut un\u00fcbersetzt verst\u00e4ndlich sein. Wenn ihr die Dokumentation-XMLs \u00fcbersetzt, k\u00f6nnt ihr euch sogar ein direkte Vorschau eurer \u00c4nderungen im Internet Explorer (nicht im Firefox) anschauen.<\/p>\n<p><em><a href=\"http:\/\/blog.openclonk.org\/2010\/08\/english-documentation-sources\/\">Urspr\u00fcnglicher Post<\/a> von Clonk-Karl am 22. August 2010. <\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bisher waren die Sources der Entwicklermodus-Dokumentation nur auf Deutsch verf\u00fcgbar. Die Doku basierte auf der von Clonk Rage, die ebenfalls f\u00fcr einige Zeit nur in Deutsch verf\u00fcgbar war und erst sp\u00e4ter in&#8217;s Englische \u00fcbersetzt wurde. Wie auch immer, bevor etwas \u00fcbersetzt werden konnte, musste ja erst einmal eine deutsche Version verf\u00fcgbar sein (siehe Bug #287)\u00a0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[110],"class_list":["post-506","post","type-post","status-publish","format-standard","hentry","category-openclonk","tag-openclonk"],"_links":{"self":[{"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/posts\/506","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/comments?post=506"}],"version-history":[{"count":41,"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/posts\/506\/revisions"}],"predecessor-version":[{"id":3537,"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/posts\/506\/revisions\/3537"}],"wp:attachment":[{"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/media?parent=506"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/categories?post=506"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/clonkspot.org\/blog\/wp-json\/wp\/v2\/tags?post=506"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}