Code Styling Project

It’s not a bug, it’s always a feature.
  • Deutsch
  • English
  • rss
  • Home
  • Blog
  • Impressum
  • Entwicklungen
  • Fehlerbehebungen
  • Anleitungen

WordPress Plugin: Codestyling Localization

WordPress Version: WordPress 2.5 oder höher
PHP Version: PHP 4.4.2 oder höher
getestete Browser: IE7 | FireFox 2.0.0.16 | Opera 9.27 | Safari (Windows) 3.1.2
nicht unterstützte Browser: Google Chrome (javascript engine fehlerhaft)

Wenn man sich mit WordPress näher beschäftigt, fällt einem auf, das man im Auslieferungszustand alles in englisch bekommt. Um WordPress an seine eigene Muttersprache anzupassen, kann man WordPress Sprachdateien zur Verfügung stellen. Diese werden dann dazu benutzt, die in englisch vorgegebenen Textfragmente während der Seitenerzeugung zu ersetzen.
Diese Übersetzungfähigkeiten basieren auf der Verwendung der gettext Funktionalität, die in sehr vielen Open Source Projekten zum Einsatz kommt. Die Grundlagen zum gettext System können unter Free Software Foundation (FSF) - GNU Project - gettext nachgelesen werden.

Die Basis bilden sogenannte Sprachdateien im *.po Format (portable) bzw. *.mo Format (machine object), mit deren Hilfe sich Systeme automatisch lokalisieren lassen.
Die *.po Dateien sind reines Textformat, die einer speziellen Spezifikation unterliegen, maschinell ausgewertet und übersetzt werden können. Normalerweise benutzt man dazu entweder einen Texteditor oder einen speziell dafür vorgesehen Editor wie PoEdit, den man lokal installieren muss. Mit Hilfe eines solchen Editors kann die *.po Datei übersetzt und als *.mo Datei abgespeichert werden. Alle auf gettext beruhenden Systeme können im Live-Betrieb nur mit der *.mo Datei umgehen.

Mir persönlich war jedoch der Aufwand, den man betreiben muss, um zum Beispiel ein Plugin zu lokalisieren, viel zu hoch. Denn man benötigt das Plugin auf dem lokalen Rechner und den installierten PoEditor. Man übersetzt dann die Fragmente, muss eine Datei erzeugen und diese dann auf die Domain hochladen. Nach Ansicht stellt man dann fest, das etwas nicht stimmt, muss den Fehler mühevoll suchen, neu übersetzen und dann erneut hochladen.

Dieser sich wiederholende Vorgang ist kontraproduktiv und zeitraubend, deswegen habe ich eine Lösung geschaffen, dies online in der Administrationsoberfläche von WordPress machen zu können ohne einen speziellen Editor zu benötigen. Dies hat auch noch den Vorteil, dass man das Ergebnis mit dem Browser (in einem neuen Tab) bereits begutachten kann und sofortige Kontrolle hat.

Die Plugin Hauptseite - der Einstieg

Wenn man das Plugin installiert und aktiviert hat, bekommt man einen neuen Eintrag im Menüpunkt “Verwalten” der mit “Lokalsierung” beschriftet ist. Wenn man diesen Unterpunkt auswählt, erscheint die komplette Übersicht über alle Komponenten von WordPress, die gettext fähig sind bzw. schon Sprachdateien mitbringen.
Das Plugin untersucht WordPress selbst, alle vorhandenen Plugins und ebenfalls alle vorhanden Themes auf deren gettext Fähigkeit. Es werden nur die Teile aufgelistet, die nach Analyse auch gettext Übersetzungen verstehen.

Man kann dann pro analysierter Komponente (WP | Plugin | Theme) mehrere angebotene Aktionen durchführen. Sollte die Komponente bereits Sprachdateien besitzen, werden die bereits gefundenen Sprachen aufgelistet. Weiß gekennzeichnete Dateien sind nicht vorhanden ist.
Kennzeichnungen in rot symbolisieren, dass diese Datei Lese-Zugriff erlaubt und somit schreibgeschützt ist.
Dateien in grüner Farbe symbolisieren, dass die Datei gelesen und geschrieben werden kann.
Die schreibgeschützten Dateien können durch eine Klick auf das rote Symbol schreibfähig gemacht werden. Dies geschieht stufenweise. Es wird erst versucht die Berechtigungen auf rw-/r–/r– zu setzen. Falls dies zum Schreiben nicht reicht, wird erst rw-/rw-/r– und schliesslich rw-/rw-/rw- versucht. Sollte dies alles nicht funktionieren, bekommt man eine Fehlermeldung. Diese Funktion steht nur für schreibgeschützte Dateien zur Verfügung.

Die Plugin Hauptseite - Neue Sprache hinzufügen

Steht die gewünschte Sprache noch nicht zur Verfügung, kann man sie sehr einfach hinzufügen. Es öffnet sich ein Dialog, der alle unterstützten Sprachen auflistet und bereits existierende Sprachen ausblendet. Nach Eingabe der Übersetzer-Kennzeichnung (wird standardmäßig vom angemeldeten Benutzer genommen und vorausgefüllt) und der Auswahl der Sprache wird eine neue *.po Datei im entsprechenden Ordner erstellt. Die Sprache erscheint dann in der Auflistung und kann weiter bearbeitet werden. Die neu erstellte *.po Datei enthält allerdings noch keine Textfragmente sondern ist bis auf den korrekt erstellten Datei-Header leer.

Die Plugin Hauptseite - Einlesen der PHP Quelldateien

Um übersetzbare Textfragmente der entsprechenden Komponente zu bekommen, müssen erst einmal die zu Grunde liegenden PHP Dateien analysiert werden, wie man es vom PoEditor her kennt. Jedoch führt das Plugin eine intelligente Suche durch, die nur die tatsächlich betroffenen Dateien einliest und untersucht.

Wenn man zum Beispiel WordPress selbst neu einlesen lassen möchte, dann bekommt man beim PoEditor auch alle bereits installierten Themes und Plugins mit die Sprachdatei aufgenommen. Nicht so hier: Im Falle von WordPress selbst werden die Theme und Plugin Ordner ausgelassen und nur Akismet und die im Lieferumfang enthaltenen Basisthemes mit gelesen. Somit ist sichergestellt, das auch nur WordPress spezifische Texte aufgenommen werden und nicht noch zusätzliche, die ein Plugin XY enthält.

Dieser Vorgang kann einige Sekunden bis Minuten dauern, je nach Anzahl der Dateien oder der Geschwindigkeit der Verbindung. Der Fortschritt wird dabei visuell dokumentiert bis alles eingelesen ist. Nach erfolgreichem Einlesen enthält nun die *.po Datei alle gefunden Textfragmente, die durch die gettext Funktionalität übersetzbar sind. Führt man den Einlesevorgang auf einer existierenden *.po Datei aus, wird deren bisheriger Inhalt mit den neu gefunden Fragmenten abgeglichen und geupdated. Anschließend ist die Datei dann auf dem neuesten Stand.

Die Plugin Hauptseite - Löschen einer Sprache

Löschen einer Sprache bedeutet auch wirklich physikalisches Löschen! Deshalb wird eine Sicherheitsabfrage per Dialog erscheinen, die bestätigt werden muss. Nach Bestätigung wird die ausgewählte *.po und *.mo Datei vom Datenträger entfernt. Man kann jedoch diesen Dialog oben recht abbrechen, wenn man irrtümlich auf Löschen geklickt hat.

Die Plugin Hauptseite - Starten des Übersetzungseditors

Wenn man auf “Bearbeiten” der entsprechenden Sprache klickt, wird die Ansicht in den Übersetzungseditors umgeschaltet. Dieser eingebaute Editor ermöglicht die Anpassung und Übersetzung der Textfragmente und die Erzeugung der passenden *.mo Datei.

Der Übersetzungseditor

Der Editor ist so komfortabel wie möglich ausgelegt und erlaubt die Bearbeitung der kompletten Sprachdatei. Nach dem Start zeigt der Editor standardmäßig die ersten 100 Einträge der *.po Datei an. Sowohl die Anzahl der pro Seite anzuzeigenden Einträge als auch die Seite selbst können einfach eingestellt werden.

Jeder Eintrag der Sprachdatei wird in einer Zeile dargestellt. Die linke Spalte stellt maximal 2 Informationen bereit:

  • PHP Symbol - zeigt die Referenzstellen im PHP Code an und öffnet die entsprechende Datei zur Ansicht
  • Kommentar Symbol - falls es in der *.po Datei einen Kommentar zum Eintrag gibt, wird der angezeigt.

Die folgenden beiden Spalten zeigen den Originaltext bzw. den übersetzten Text an. Die letzte Spalte enthält alle angebotenen Aktionen, derzeit ist nur “Bearbeiten” verfügbar.
Wenn man einen Eintrag zur Bearbeitung auswählt, öffnet sich einer von 2 möglichen Bearbeitungsdialogen. Die gettext Funktionalität unterstützt einerseits einfache Texte, für die es eine 1:1 Beziehung zwischen Original und Übersetzung gibt. Andererseits werden aber auch Pluralformen unterstützt, die eine 2:n Beziehung haben. Die englische Basissprache kennt Einzahl und Mehrzahl. Es gibt aber Zielsprachen, die anhand einer gegebenen Anzahl nicht nur zwischen Einzahl und Mehrzahl unterscheiden, sondern entweder Mehrzahl gar nicht kennen (2:1) oder aber je nach Zahl bis zu 4 Varianten benutzen (2:4). Deshalb wird dafür auch ein spezieller Plural Dialog gezeigt, der die zu Grunde liegende Formel mit anzeigt.

Wie man in den Screenshots der Dialoge bereits sieht, ist auch eine Übersetzung per Google Translate API eingebaut, die jedoch nur dann eingeblendet wird, wenn die entsprechenden Zielsprache auch von Google unterstützt wird. Klickt man auf den Link, wird der Originaltext per Google Translate API übersetzt und im Übersetzungsfeld eingetragen. Dies sollte man als Vorschlag sehen, denn er ist in den meisten Fällen nachzubearbeiten.

Obwohl Google Translate die enthaltenen HTML Tags während der Übersetzung nicht antastet, kommt es sehr oft vor, dass Google Translate Formatierer wie %s auseinanderreist und ein Leerzeichen einfügt. Dies gefährdet aber die Verwendung in WordPress, da dies nicht korrekt von Formatierungsfunktionen benutzt werden kann, die noch Parameter in den Text während der Ausgabe einfügen wollen. Gleiches gilt für mit Backslash maskierte Zeichen, bei denen es zu einer Vermehrung der Backslashes kommt. Beides sollte im Falle des Einsatzes kontrolliert werden.

Die beiden Suchfelder im Tabellenkopf durchsuchen die jeweilige Spalte nach einer exakten Übereinstimmung mit der Eingabe. Schon während des Eintippens reduziert sich der Umfang der angezeigten Einträge gemäß der Eingabe. Die Suche findet immer in allen Textfragmenten der Sprachdatei statt und listet somit alle Teffer auf.

Wenn man den Knopf “erstelle mo-Datei” drückt, wird die bisherige Übersetzung in einer entsprechenden *.mo Datei zusätzlich gespeichert. Eine schon vorhandene Datei wird dabei überschrieben. Der Editor zeigt im Erfolgsfall nun ein (neues) Änderungsdatum daneben an.
Wenn man jetzt einen neuen, zusätzlichen Tab im Browser mit dem zu übersetzenden Ziel öffnet, kann man bereits überprüfen, ob die Übersetzung korrekt greift. Dies ist sehr sinnvoll zu Kontrolle, ob die gewählte Übersetzung den verfügbaren Platz in der Breite “sprengt” und geändert werden müsste. Dies kann umgehend erfolgen und wieder kontrolliert werden.

Alle eingegebenen Übersetzungen werden bereits beim Betätigen des “Speichern” Knopfes in der *.po Datei abgelegt, sodass keine Änderungen verloren gehen. Somit kann man eine Übersetzung auch zu einem späteren Zeitpunkt einfach wieder fortsetzen.

Limitierungen

Das Plugin unterstützt momentan nur Sprachen, die in einer internen Definition erfasst sind. Dies hat den Hintergrund, sicherzustellen, dass die zur Sprache passende Pluralform automatisch gewählt oder angepasst wird. Es werden auch nur Sprachdateien unterstützt, die sowohl Sprach- als auch Landeskennung enthalten (locale) und dem Format xx_XX entsprechen. Demzufolge funktionieren beispielsweise Sprachdateien mit diesen Kennungen nicht:

  • sitemap-ja.po
  • sitemap-ja_JA.UTF-8.po
  • sitemap-ja_SJIS.po

Dies wird erst in nachfolgenden Versionen des Plugins eine Unterstützung finden.

Ebenfalls problematisch sind Plugins, die noch keine Sprachdatei besitzen und zusätzlich ihre Sprachdateien in einem Unterordner erwarten. Dies kann nicht automatisch erkannt werden und erfordert das Hochladen einer leeren *.po Datei in den entsprechenden Pfad. Sobald eine Sprachdatei existiert, wird der korrekte Pfad daraus abgeleitet und weitere Sprachen korrekt dort abgelegt. Auch dies soll in einer der nächsten Versionen durch eine Auswahl des Ordners während der Erstellung der Sprachdatei ergänzt werden.

Bei einigen Plugins ist auch die Textdomain nicht ohne weiteres zu erkennen, denn diese wurde dann weder als Text noch als Konstante sondern als Funktion oder Variable codiert. Dies lässt sich nicht maschinell auswerten. In diesen Fällen wird derzeit angenommen, das die Sprachdatei so heißt, wie die Plugin-Datei, die WordPress kennt (nur ohne .php) und wird im Pluginordner direkt erzeugt. Hierfür gibt es derzeit noch keine Alternative.

Installation

Entpacke das Plugin nach dem Download und lade den kompletten Ordner csp-po-edit also Unterordner in /wp-content/plugins/ hoch. In der Administrationsoberfläche steht nun unter der Menüpunkt “Plugins” das neue Plugin Codestyling Localization zur Aktivierung bereit.
Während der Aktivierung prüft das Plugin, ob die erforderliche WordPress bzw. PHP Version vorhanden ist. Wenn mindestens einer der Tests fehlschlägt, lässt sich das Plugin nicht aktivieren und meldet das mit korrekten Angaben wie im Screenshot zu sehen ist.

Das Plugin benötigt keine weitere Konfiguration, legt auch keine neuen Tabellen an und kommt ganz ohne eigene Werte in der wp_option Tabelle aus.

Versionshistorie

2008-06-21 0.10 start of coding
2008-08-25 0.95 Beta Release (1st closed test)
2008-08-26 0.96 Beta Release (2nd closed test)

  • Valid XHTML 1.0 Transitional
  • switching to editor now shows loading indicator
2008-08-27 0.97 Beta Release (3rd closed test)

  • Bugfix: simple plugin analysis runs recursive over total plugin path
  • Bugfix: language file naming convention was wrong
  • Bugfix: missing escapement of names breaks javascript
  • Bugfix: avoid deprecated constant usage
  • Bugfix: fix table size avoid using full screen width at adminimize plugin
2008-08-28 0.98 RC1 release

  • extended to use Google translate API
2008-08-30 0.99 RC2 release

  • Bugfix: remove accidentally usage of global $file, breaks plugin and theme editor
  • Bugfix: plugins, that are gettext ready but textdomain can’t be detected, will be handled with their plugin filename as textdomain by default
  • plugin activation checks now required versions (WordPress / PHP) and reports qualified messages at fail case
2008-09-02 1.0 1st public release

  • Bugfix: version control has been done too strictly, WP 2.6.0 doesn’t exist, reduced to 2.6
  • Bugfix: locale definitions accidentally states, that zu_ZU (isiZulu) will be supported by Google translate, disabled
2008-09-03 1.01 release

  • Bugfix: potential modified plugin path using constants has not been respected
2008-09-05 1.02 release

  • Feature: downgrade code, runs now with WordPress 2.5 and above
2008-09-07 1.1 release

  • Bugfix: backslahed po-file header values causes IE to stop reponding during editor launch
  • Bugfix: special path detection doesn’t recognize deep folder structure related textdomain loading
  • Bugfix: stylesheet doesn’t show file/comment tooltip inside visble client area
  • Bugfix: scrolling to source line number fails with script error, if *.po file is outdated and line exceeds total count
  • Feature: “X-Poedit-Basepath” and “X-Poedit-SearchPath-0″ at *.po file header will be relativized during read
  • Feature: now supports file permission display and change capability
  • Feature: collects multiple plugins at same textdomain as childs at first occurance
  • Feature: show error message using thickbox instead of alert() except Google Translate errors
2008-09-11 1.2 release

  • published at wordpress.org/extend/plugins/
2008-09-11 1.21 release

  • Bugfix: stylesheet now only gets loaded at plugins pages, backward compatibility support has broken thickbox styles at other pages
  • Italian translation by Gianni has been added
2008-09-14 1.30 release

  • Feature: supports now PHP 4, tested with PHP 4.4.2 and higher
  • Feature: provides a copy action at each row, that makes original persistent as translation
2008-09-15 1.51 release

  • Feature: language attached, Traditional Chinese Taiwan by Gary
  • SVN version number fix
2008-09-23 1.55 release

  • Bugfix: WordPress 2.7-hemorrhage introduces WP_ADMIN set additional during DOING_AJAX (ajax requests)
2008-12-02 1.60 release

  • Bugfix: CSS style at WP 2.7 has been changed, minor adaption to be able to display dialogs correctly
  • Bugfix: empty WordPress main language directory forces new file creation at wrong folder
  • Bugfix: none existing WordPress main languages directories (US version) leads to error display
  • Bugfix: prevent directory listing of plugin by .htaccess file attached to package
  • Feature: none existing WordPress main languages directory can be created by plugin
  • Feature: WPMU plugin support, detection of normal and WPMU version and ability to translate mu-plugins
2008-12-08 1.65 release

  • Bugfix: einscannen von WPMU Plugins produzierte Warnungen in des Ausgabe
  • Bugfix: verschiedene Plugins/Themes wurden nicht erkannt, weil Leerzeichen im Funktionsaufruf enthalten sind
  • Bugfix: falsch benannte oder positionierte Sprachdateien wurden angezeigt, konnten aber nicht bearbeitet werden
  • Feature: erste Integration in das WordPress 2.7 Hilfe System, um Plugin spezifische Hilfen anzubieten
  • Feature: anzeigen des neuen Tools Icon von WordPress 2.7 in der Pluginseiten-Kopfzeile

aktueller Download

Wichtiger Hinweis: Mit der Version 1.2 des Plugins hat sich durch die Veröffentlichung über wordpress.org und dem Autoupdate der Ordner des Plugins ändern müssen. Bitte das alte Plugin < v1.2 deaktivieren, den Ordner entfernen und das neue einspielen. Von diesem Zeitpunkt an funktionieren dann auch die automatischen Updates!

Plugin Version: codestyling-localization-v1.95.zip (3553 downloads)

Support

Es ist zukünftig geplant, ein Bug-Trac einzurichten und ggf. ein Benutzerforum zu betreiben. Aus Zeitgründen kann ich beides noch nicht zur Verfügung stellen. Deshalb ist Support derzeit exklusiv per E-Mail möglich (sofern nötig), kann aber etwas Verzögerung in der Antwortzeit haben.

Hinweis: Weil immer mal wieder Frage auftauchen, warum der Plugin die Textdomain nicht erkennt, dies liegt meistens daran, dass sie als Variable benutzt wird. Wenn man das als Konstante definiert und verwendet, findet sie der Parser auch. Beispiel:

PHP
1
define('MEINE_TEXTDOMAIN', 'meins');
timing: 0.050s

102 Antworten    Schreib einen Kommentar

Oliver Schlöbe

Oliver Schlöbe

31.08.2008 | 20:07

Sehr sehr schön. :-)

Bei getesteten Browsern kannst du FF 3.0.1 hinzufügen, auch da läuft es wie am Schnürchen.

Planst du, es auf http://wordpress.org/extend/plugins/ zu setzen? Damit hast du ein größeres Publikum, nette SVN-Features und es würde auch über die autom. Plugin-Aktualisierung updatebar sein. :-)

Grüße, Oli

Antworten »

codestyling

codestyling

31.08.2008 | 20:17

Das ist für eine der nächsten Versionen geplant. Im Moment ist es ja noch nicht auf eine einheitliche Javascript Bibliothek konsolidiert. Aber sobald das geschehen ist, wird es auch über SVN verfügbar werden mit allen Möglichkeiten, die es dort bietet.

Antworten »

Frank

Frank

31.08.2008 | 20:43

Kann auch mit allen Tests keine Fehler finden, super Idee und Umsetzung. Es sollte unbedingt publik werden, denn es kann vor allem die vielen Plugins mit reichlich Sprachdateien auf einfachem Wege bereichern. Das SVN von WP.org sollte also zur Pflicht werden, auch wenn man dir dann den Traffic nimmt ;-)

Antworten »

thomas57

thomas57

01.09.2008 | 15:28

Habe ich mir gerade heruntergeladen. Nachdem meine Vorredner so gut darüber sprachen, muss ich es einmal austesten.
Ich melde mich dann später noch einmal dazu.
gruss aus dem norden von
thomas

Antworten »

Thomas

Thomas

03.09.2008 | 06:37

Unsere neue Website soll mit dem Plugin WP_Multilingual auf mehrere Sprachen erweitert werden, da kommt dein Plugin zur einfachen Lokalisierung gerade richtig.
Gruss aus dem Süden, ebenfalls von
Thomas

Antworten »

Paul83

Paul83

03.09.2008 | 23:28

Sieht gut aus und tolle Idee für ein Plugin. Ich habe leider einen Fehler beim .mo-Datei abspeichern:
“interner Fehler: die po-Datei kann nicht erstellt werden!”

Woran kann’s liegen?

Antworten »

codestyling

codestyling

03.09.2008 | 23:39

Da die *.mo und *.po Dateien direkt auf der Domain gelesen und auch wieder geschrieben werden, benötigt man Schreib-Rechte auf diese Dateien bzw. Ordner. In den meisten Fällen hat man die nötigen Rechte als Script bereits, sonst muss man das ggf. anpassen.
Der Einlesevorgang benötigt Lese-Rechte als PHP Script, um andere PHP Dateien lesen zu können. Dies sollte von Haus aus möglich sein.

Ich denke, das Problem sind die Schreibrechte in den entsprechenden Ordnern bzw. auf die evtl. schon vorhandene *.mo.
Speichert er denn die Übersetzungen ? Wenn du einen Text änderst und speicherst, dann wieder in’s die Übersicht gehst und die Datei erneut mit bearbeiten startest, ist dann deine Übersetzung noch da ?

Antworten »

Paul83

Paul83

04.09.2008 | 00:33

Danke! Die Schreibrechte habe ich nun direkt auf die vorhandene mo-Datei gelegt und nun klappt es.

Antworten »

codestyling

codestyling

04.09.2008 | 00:47

Das ist ein guter Hinweis. Ich werd mal überlegen, ob ich in einer der nächsten Versionen nicht noch ein Dateirechte Management für die *.mo / *.po Dateien zusätzlich bereitstellen kann.
Und eine Publikation über wordpress.org ist auch in Arbeit, damit man die Autoupdates auch nutzen kann. Danke für das Feedback, freut mich wenn es dir gefällt.

Antworten »

Alexander

Alexander

05.09.2008 | 14:56

So, heute bin ich fertig geworden, habe alle meine Plugins übersetzt.
Ich muss dir sagen, das ist ein *Top* Plugin, was du da gebaut hast, Respekt.

Nur eins: Wenn man in der Tabelle mit den Übersetzungen eines Plugins ist und wissen will, in welchen Dateien dieser Wert verwendet wird (kleiner Tooltip) rechts, wenn man auf PHP geht, erscheint es bei Auflösungen unter 1280×1024 so, dass man scrollen muss. Vielleicht kannst du den Tooltip so anordnen, das er sich an der Maus nach links ausbreitet und nicht nach rechts.

Gruß der Alex aus Gera

Antworten »

codestyling

codestyling

05.09.2008 | 15:04

Die Sache mit dem Tooltip ist schon vermerkt, wird auch noch so behandelt, dass es zum Screen passt.
Da ich in der Zwischenzeit einige 100 Plugins auf gettext Fähigkeit getestet hab, gibt es immer noch Überraschungen, weil eigenlich gettext ready Plugins nicht als solche erkannt werden.
Dafür kommt noch ein Fix und ich werde spätestens ab Version 1.2 über SVN bereitstellen, sodass dann auch der auto update funktioniert.

Antworten »

Alexander

Alexander

05.09.2008 | 18:40

Super, danke.

Habe nichts anderes von dir erwartet……. :)

Antworten »

Daishi

Daishi

07.09.2008 | 13:07

Phuu Arbeitswoche vorbei, morgen auf ein neues, aber vorher dieses herrliche Plugin installieren und testen.
War schon bei deiner News hin und weg :D.

Danke für deine Arbeit!

Antworten »

jtoth

jtoth

15.09.2008 | 22:42

Hallo, ich wollte nur sagen, dass ich dieses Plugin toll finde. Es erleichtert einem ungemein die Arbeit mit Übersetzungen und sprachlichen Anpassungen.
Ich habe darüber einen Artikel in einer rumänischen IT-Onlinezeitschrift veröffentlicht (http://www.cnet.ro/2008/09/15/codestyling-localization-traduceri-direct-in-wordpress/) und es gleich (mit den eigenen Mitteln) ins Rumänische übersetzt. Wenn erforderlich könnte ich die entsprechenden PO/MO-files zumailen.
(Ah, und das wp-mladmin finde ich auch gut, könnte bald aus der Beta-Phase rauskommen. Bei mir läuft es einwandfrei bei drei intensiv genutzten Sprachen.)

Antworten »

m@rtin

m@rtin

20.09.2008 | 11:29

hi, ein super plugin, vielen danke dafür! was ist das eigentlich für ein admin theme? gruss martin

Antworten »

codestyling

codestyling

20.09.2008 | 15:30

Das Backend ist mit dem Plugin Adminimize angepasst. Damit kann man selbst entscheiden, wie es aussehen soll, hat bei WideScreen Monitoren jetzt die volle Breite zur Verfügung und kann sogar das Aussehen selbst ändern, wenn man möchte.
Die Sprachumschaltung in der Kopfzeile ist nicht enthalten, das ist eines meiner Plugins in Alpha Status, wird aber bald verfügbar sein.

Antworten »

m@rtin

m@rtin

21.09.2008 | 21:37

@codestyling
vielen dank für dein feedback :-) nochmals danke für das tolle plugin, saubere arbeit!

Antworten »

soma3

soma3

04.10.2008 | 21:19

@codestyling

Ich finde das Plugin echt super. Leider habe ich eine Fehlermeldung, die ich einfach nicht wegbekomme. Ich nutze den Plugin WP-Hive für die Nutzung der Coredateien und Plugins auf mehreren Blogs gleichzeitig. Ansich kein Problem. Nur bekomme ich folgende Fehlermeldung:
Warning: scandir(/home/www/hive1/wp-includes/languages/) [function.scandir]: failed to open dir: No such file or directory in /home/www/hive1/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 217

Warning: scandir() [function.scandir]: (errno 2): No such file or directory in /home/www/hive1/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 217

Warning: array_diff() [function.array-diff]: Argument #1 is not an array in /home/www/hive1/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 217

Warning: Invalid argument supplied for foreach() in /home/www/hive1/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 218

Ich hoffe du hast eine Idee. Ausserdem wollte ich mal fragen wie ich das Theme pot fähig zu machen. Einfach eine po, mo und pot datei in den Theme Ordner kopieren geht nicht. Von den 5 Themes hat dein Plugin nur das K2 Theme erkannt. Ich bin eigentlich kein Grünling auf dem Gebiet. Danke schon einmal im vorraus.

Antworten »

codestyling

codestyling

08.10.2008 | 13:40

Sorry für die Verzögerung, ich war 2 Wochen in der Sonne bräunen :-)
Ich werde mir umgehend das Plugin mal ansehen und mich dann nochmal dazu mit einem neuen Kommentar und ggf. weiterführenden Infos melden.
Muss erstmal die Koffer auspacken und den Kälteschock verdauen.

Antworten »

hussong

hussong

11.10.2008 | 00:49

Tolles Plug-In, super nützlich! Vielen Dank dafür :-)
Ich übersetze gerade das erste Plug-In (Gengo) und als nächstes ist dann ist das Theme (Fluid Blue) dran …
Einen Vorschlag hätte ich noch: eine Funktion “Alle übersetzen”, die mir über die Google-API erstmal alle Felder ausfüllt, so dass ich nur noch da nacharbeiten muss, wo die automatische Übersetzung nicht ausreicht, oder Strings zerlegt.
Mit Google Gears hatte ich übrigens bis jetzt noch keine Probleme (FF3/Ubuntu).

Antworten »

Toxane

Toxane

16.10.2008 | 20:19

Einfach genial, vielen Dank!

Antworten »

Whoppy

Whoppy

23.10.2008 | 15:18

Wirklich Super, eine Frage noch.

Möchte ein Plugin lokalisieren. Welche DaÜteien muss ich wo hochladen, damit es in der Liste der Plugins zum Übersetzen angezeigt wird? .po , .pot??
Über eine Antwort würd ich mich freuen.

Gruß Simon

Antworten »

Cammino

Cammino

24.10.2008 | 18:25

Einfach hervorragend, funktioniert einwandfrei … Danke :-)

Antworten »

joschep

joschep

31.10.2008 | 15:10

…das “Herumwuseln” in den entsprechenden Lang-Dateien hat ein Ende.

Auch von mir ein dickes Dankeschön für dieses geniale Plugin !!!

jo

Antworten »

beafun

beafun

16.11.2008 | 22:28

Danke, wirklich genial

Antworten »

Blumental

Blumental

20.11.2008 | 11:25

Bei mir funktioniert es leider überhaupt nicht. Ich nehme an, das ist mein Fehler bzw. leigt an der Servereinstellung.

Ich kann zwar manuell die Rechte vergeben (also 777), das nützt nur nichts. Über das Plugin kann ich nichts einlesen, keine Dateirechte setzen, nichts speichern, keine Sprache hinzufügen.

Falls ich das Problem irgendwie lösen kann, wäre sonst schade. Ich wollte so gern einige Themes übersetzen.

Antworten »

Olaf

Olaf

20.11.2008 | 16:45

Wollte das tolle Teil mal ausprobieren, leider bekomm ich nicht alle Themes zur Auswahl gestellt. Erster Versuch war, leere de_DE.mo und de_DE.po ins ThemeVerz., keine Änderung. Dann Theme gecheckt, sowas ist drin:

und sowas:

und dies hier:

<?*php printf(__(’On %1$s at %2$s, %3$s said:’, ‘theme-name’)………….

müsste das nicht reichen? Wo liegt denn der Fehler? Das Theme welches geht ist genauso aufgebaut, erkenne keinen Unterschied. Ne Idee?

Antworten »

Dieter

Dieter

24.11.2008 | 04:31

WP 2.6.3 english version
Keine plugins

ergab diiese Fehlermeldungen mit debug true:

Notice: Use of undefined constant csp_po_install_plugin - assumed ‘csp_po_install_plugin’ in /home/www/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 135

Notice: Use of undefined constant csp_po_install_plugin - assumed ‘csp_po_install_plugin’ in /home/www/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 138

Notice: Undefined index: action in /home/www/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 141

Notice: Undefined property: stdClass::$response in /home/www/wp-admin/menu.php on line 30

Notice: Use of undefined constant csp_load_po_edit_admin_page - assumed ‘csp_load_po_edit_admin_page’ in /home/www/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 927

* Notice: Undefined index: type in /home/www/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 969
href=”edit.php?page=codestyling-localization/codestyling-localization.php&type=wordpress”>WordPress |
* Notice: Undefined index: type in /home/www/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 972
href=”edit.php?page=codestyling-localization/codestyling-localization.php&type=plugins”>Plugins |
* Notice: Undefined index: type in /home/www/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 975
href=”edit.php?page=codestyling-localization/codestyling-localization.php&type=themes”>Themes

Warning: scandir(/home/www/wp-includes/languages/) [function.scandir]: failed to open dir: No such file or directory in /home/www/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 217

Warning: scandir() [function.scandir]: (errno 2): No such file or directory in /home/www/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 217

Warning: array_diff() [function.array-diff]: Argument #1 is not an array in /home/www/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 217

Warning: Invalid argument supplied for foreach() in /home/www/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 218

Notice: Undefined index: filename in /home/www/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 299

Antworten »

codestyling

codestyling

24.11.2008 | 13:28

Das kann einfach behoben werden, indem ein Sprachdatei Ordner angelegt wird, der in der original US Version nicht enthalten ist.
Bitte folgenden Ordner erstellen: \wp-content\languages

Antworten »

Dieter

Dieter

24.11.2008 | 16:36

Nein das geht nicht. Die Idee hatte ich bereits.

Wie gesagt nutze ich WP 2.6.3 ohne plugins in der englischen Version mit der ich auf die Schnelle ein paar Themes testen wollte. Insgesamt habe ich 9 Themes installiert. Von Deinem Programm wird unter dem Reiter - Alle Übersetzungen - Themes nur das Theme THEMATIC erkannt und angezeigt weil es mit drei Sprachdateien geliefert wird. Alle anderen Themes sind 100% in Englisch. Ich kann die de_DE.po Datei im Theme THEMATIC ändern, speichern, einlesen und auch eine mo Datei erstellen. Das klappt soweit.

Versuche ich jetzt unter dem Reiter - Alle Übersetzungen - Wordpress eine po Datei anzulegen, dann klappt das auch. Versuche ich aber Daten EINZULESEN, dann kommt im Javascript Fenster diese Fehlermeldung:

Einlesen der PHP Quelldateien

Warning: scandir(/home/www//wp-content/themes/classic/) [function.scandir]: failed to open dir: No such file or directory in /home/www/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 230

Warning: scandir() [function.scandir]: (errno 2): No such file or directory in /home/www/wp-content/plugins/codestyling-localization/codestyling-localization.php on line 230

Warning: array_diff() [function.array-diff]: Argument #1 is not an array in /home/www/wp-content/plugins/codestyling-localization/codestyling-localization.php

Rufe ich danach das plugin unter Manage - Lokalisierung erneut auf, dann wird mir unter dem Reiter Alle Übersetzungen - Wordpress keine po Datei angezeigt, obwohl eine im DocumentRoot Verzeichnis liegt.

In der ersten Fehlerzeile steht übrigens ein doppel //. Das liegt an diesem Eintrag in meiner wp-config.php

define( ‘WP_CONTENT_DIR’, $_SERVER['DOCUMENT_ROOT'] . ‘/wp-content’ );

Ich habe das auf wp-content geändert, leider ändert das an der restlichen Fehlermeldung nichts.

Ursprünglich hatte ich noch diesen Eintrag in der wp-config

//define(’LANGDIR’, ‘wp-content/languages’);

Ich habe es aber jetzt auskommentiert.

-dieter

Antworten »

Dieter

Dieter

24.11.2008 | 17:30

Irgend was mache ich oder die Lokalisierungsscripte verkehrt. po Dateien werden offenbar an falscher Stelle abgelegt oder. Ich habe jetzt dieses recherchiert:

Laut http://codex.wordpress.org/Editing_wp-config.php :
WPLANG defines the name of the language translation (.mo) file. LANGDIR defines what directory the WPLANG .mo file resides. If LANGDIR is not defined WordPress looks first to wp-content/languages and then wp-includes/languages for the .mo defined by WPLANG file.

Daraufhin habe ich die deutsche Version von Wordpress untersucht.

Sprachdatei in der deutschen Version von WP 2.6.3:
/wp-content/languages/de_DE.po + de_DE_Sie.mo

Dazu die Sprachdatei im default_de Theme:
/wp-content/themes/default_de/de_DE.mo

Ich habe daraufhin im Verzeichnis /wp-includes/languages die Datei http://svn.inpsyde.com/l18n/wordpress/du/trunk/de_DE.po abgelegt, eingelesen und eine mo Datei daraus erstellt. Ging ohne Probleme.

Ich verstehe jetzt nicht wie ich in ein englisches Theme eine Sprachdatei installiere und wie ich den Schritt für das Basissystem von Wordpress mache, wenn dort keine .po Datei unter /wpcontent/languages oder /wp-includes/languages liegt? Bei mir wird die po Datei im DocumentRoot abgelegt und dann irgendwie verloren. Siehe mein früherer Kommentar.

-dieter

Antworten »

codestyling

codestyling

01.12.2008 | 13:06

Dieser Bug mit dem Erstellen der WP Sprachdatei im falschen Verzeichnis, falls ein leeres languages existiert, wird in der nächsten Version behoben.
In einem englischen Theme, das nicht auf Übersetzung vorbereitet ist, kann man auch keine Übersetzung mittels des Plugins machen. (Die meisten original US Themes sind hart codiert in englisch).
Wie man hart codierte, englische Themes übersetzungsfähig macht, werde ich in einem noch folgenden Tutorial erläutern und als Vortrag auf dem WordCamp Deutschland am 14.02.2009 halten. Da der Umfang des Tutorials einigermaßen hoch ist, werde ich noch bis Januar brauchen.

Antworten »

Olaf

Olaf

03.12.2008 | 00:36

@Dieter
was mir an deiner Fehlermeldung auffällt: Warning: scandir(/home/www//wp-content…… siehe den doppelten Slash, das kann nicht klappen. Warum der da ist weiß ich allerdings auch nich, mal Zeile 230 anschauen…

@codestyling
so richtig versteh ich das immer noch nicht, meinst du dies oben erwähnte Theme (leider einiges an Code verschluckt) ist per Definition von dir “hart codiert in englisch”? Deuten die Zeilen nicht auf das Gegenteil?

Könnte dein Plugin nicht das Theme nach solchen Snippets durchsuchen und daraus ne Sprachdatei erstellen, nach Beschreibung dachte ich nämlich das würde es tun:
“Es werden nur die Teile aufgelistet, die nach Analyse auch gettext Übersetzungen verstehen.”

Antworten »

codestyling

codestyling

03.12.2008 | 00:51

@Olaf: Bitte schick mir mal ein gezipptes Theme, das bei dir nicht will.
Ein Theme wird nur dann gelistet, wenn es:
1.) im Code ein load_theme_textdomain() aufruft
2.) übersetzbar ist, wenn die Texte auch in Funktionen _e() / __() gekapselt sind.
3.) die Sprachdateien des Themes im Theme Hauptordner liegen.
Es gibt ein Problem mit Themes, wenn das Theme seine Sprachdateien in einen Unterordner des Theme Ordner haben will (hab selbst ein Theme in Untersuchung, das es so machen will). Das ist aber kein Standard und nicht per load_theme_textdomain() ladbar. Daran forsche ich noch.

Antworten »

Simon

Simon

14.05.2009 | 13:57

Hallo Heiko,

erstmal Gratulation und vielen Dank für dieses Super-Plugin! Habe selten soviel Benutzerfreundlichkeit eines Plugins gesehen.

Gibt es schon Neuigkeiten aus der Forschung mit den Sprachdateien in Unterordnern (z. B. /theme-ordner/lang)?

Mit dem Laden von

PHP
1
load_theme_textdomain('theme-name',TEMPLATEPATH . '/lang');
timing: 0.076s

geht alles gut. Auch Dein Plugin erkennt die Sprachdateien in der Übersicht. Jedoch bleibt der Übersetzungs-Editor leer.

Das ist kein Drama, wäre nur toll, falls Theme-Nutzer die Sprachfiles mit Deinem Plugin in ihrer Installtion erweitern wollen. Bisher verschiebe ich die Dateien halt nach der Bearbeitung in den Unterordner.

Besten Dank im Voraus!

Antworten »

codestyling

codestyling

14.05.2009 | 14:19

In älteren WP Versionen < 2.7 gab es den Parameter für den Ordner der Theme Sprachdatei noch nicht. Deshalb erkennt das auch der Editor nicht korrekt, weil es dies nicht erwartet sondern von Themepfad selbst ausgeht. Das ist auf meiner Todo Liste für aktualisierte Versionen, könnte dann aber die Abwärtskompatibilität kosten.

Antworten »

Thomas

Thomas

05.12.2008 | 21:09

Super Plugin, vielen Dank!

Kleinigkeiten, die ev. verbessert werden könnten:

- Abbruckmöglichkeit bei geladener PO Datei (klar geht der Menüpunkt ‘Lokalisierung’, wäre jeoch schön, einen Abruch Button zu haben)
- Case insenitive Search
- ein ‘global replace’ von (regular expression) - nach (z.B. wäre es schön alle ß durch ’ss’ ersetzen zu können)

Nuchmals vielen Dank.

Antworten »

codestyling

codestyling

05.12.2008 | 21:24

Die Hinweise sind sehr gut, einen Backbutton werde ich mal gleich reinbauen, damit der im nächsten Update verfügbar wird. Die beiden anderen Punkte muss ich mal notieren, sind etwas komplizierter in der Handhabung.
Bei einem “global replace” steht die Frage im Raum, ob ich bei 100 Treffern jeden einzelnen bestätigen können sollte, denn man kann ja nicht nur ß durch ss ersetzen wollen sondern ganze Wörter.
Dann will man ja u.U. nicht alle zusammengesetzen Wörter mit ersetzen. Wird wohl auf ein “Weitersuchen” + “Ersetzen” Knopf in späteren Versionen rauslaufen :-)

Antworten »

Thomas

Thomas

05.12.2008 | 22:20

Richtig, beim Replace geht es nicht nur um einzelne Zeichen. Ich denke, es ist vertretbar alle Änderungen ohne Quittung durchzuführen. Um diese Rückgängig zu machen, ist ja der Abbruch Knopf bald da :-D

Um inkrementell arbeiten zu können, wäre dann natürlich auch ein ‘Save’ Knopf sinnvoll. Damit kann ein Replace gestartet, kontrolliert und anschliessend gesichert oder abgebrochen werden.

Das Plugin ist wirklich toll gemacht. Bin per Zufall per Google darauf gestossen. Werde am Wochenende deine Site genauer duchsehen. Bin gespannt, was sonst noch für Goodies vorhanden sind. Bei der Durchsicht des PHP Codes sah ich, dass die Programmierung sehr professionell ist, Kompliment.

Gruss, Thomas

Antworten »

codestyling

codestyling

05.12.2008 | 22:40

Als die “Rückgängig” Funktionalität ist ein Problem, denn jede Änderung landet umgehend in der *.po Datei. Nur die *.mo wird erst per Knopfdruck erzeugt. Deshalb gibt es auch keinen Zustand, auf den man die *.po zurückbringen könnte. Maximal eine Art Sicherheitskopie könnte man anlegen lassen, bevor die 1. Änderung reinkommt und beim Erstellen einer *.mo löschen lassen.

Antworten »

Thomas

Thomas

05.12.2008 | 22:57

Ach so, ich sehe das Problem. Dann wäre quittieren doch gut, ev. mit der Möglichkeit ‘OK for all’.

Antworten »

Oli

Oli

09.12.2008 | 11:29

Hallo Heiko,
erstmal vielen Dank für das tolle Plugin.
Ich hab damit bereits 2 Plugins für mich eingedeutscht. Was ich nicht hinbekomme, ist jedoch Dein Plugin selber in einer deutschen “Overfläche” zu sehen. dito auch diverse andere Plugins die auch bereits deutsche Sprachdateien mitbringeb?
ich hab im Ordner wp-content/languages deine .mo und .po Files liegen weil es mit den vorher im Ordner /plugings/codestyling-localizations liegenden Dateien auch nicht geklappt hat.
Ich vermisse so eine Art config Datei wo auf die Sprachdateien higewiesen wird.

Versteh das irgendwie nicht mehr

Antworten »

codestyling

codestyling

09.12.2008 | 11:46

Also mein Plugin sorgt dafür, das die entsprechenden Sprachdateien auch im richtigen Ordner angelegt werden. Deshalb gehören die Sprachdateien von codestyling-localization auch in dessen Ordner.
Im Order /wp-content/languages liegen nur die Dateien von WordPress selbst (Sprachdateien von WP). Diese sollten für deutsch dann auf de_DE.mo bzw de_DE.po heißen. Falls du die SIE Varianten verwendest, must du diese umbenennen. Und in deiner wp-config.php sollte WPLANG auf de_DE stehen.
Unter diesen Voraussetzungen funktioniert das auch, mich würde wundern, wenn es dann weiterhin Probleme gibt. Sollten diese weiter bestehen, dann sollten wir das per Mail weiter fortführen, denn dann stimmt irgend etwas mit deinem System nicht.

Antworten »

Oli

Oli

09.12.2008 | 13:15

Danke für die schnelle Antwort, hab die Sprachdateien “wieder” an die entsprechenden Plätze kopiert (waren so wie du es beschrieben hast, bevor ich rumgeschoben hab). Gleicher Zustand, hab auch testweise mal ein anderes Theme (das von WP-D mitgelieferte Kubrick) getestet. Ändert nix.
Würde gerne dahinter kommen woran es liegt und würde mich freuen wenn wir das per Mail lösen könnten.
VG
Oli

Antworten »

Olaf

Olaf

11.12.2008 | 18:49

Hi Cody ;)
vielen Dank für dein Bugfixing auch meines kleinen Problems, es klappt jetzt einwandfrei mit dieser Version. Ein RiesenPlugin, erstaunlich wie wenig das bekannt ist.
Hab inzwischen ein Theme übersetzt und es ging super schnell, ich glaub ne Stunde war es fertig, toll!

Ein klitzekleiner Gedanke noch, ich hab eine Seite da heißt die Sprache nicht de_DE sondern nur de, leider kann ich damit nicht arbeiten, weil es ja de_DE erzwingt (dein Plugin), vielleicht könnte man daran noch was drehen, das es “eigenen Sprachen” auch unterstützt. Ich benenn die Dateien jetzt immer hin und her, geht auch, aber…

Tausend Dank, von ganzen Herzen, Olaf

Antworten »

codestyling

codestyling

11.12.2008 | 19:01

Ich hab ja schon im Blog einen Artikel geschrieben, das ich das Plugin intern umstrukturieren will im 2er trunk. In dieser Entwicklung werden dann auch die nicht standard locale’s (2 stellig oder die japanischen Sonderlocken) mit berücksichtigt.
Ich nehme mal an, dass deine Seite, die de möchte, mehrsprachig läuft und sowas wie qTranslate oder Gengo einsetzt. Man kann solche Plugins durchaus dazu bringen, die Standard Locale’s zu verstehen und trotzdem nach außen hin weiter mit de oder en zu arbeiten. Das ist nur eine Frage des richtigen Umgangs mit den verfügbaren WP Hooks, da haben sich diese Programmierer der Plugins nicht viel Gedanken gemacht und das für sie Einfachste gewählt, an dem alle anderen (einschließlich ich) nun drum herum programmieren sollen/müssen. :-)

Antworten »

Olaf

Olaf

13.12.2008 | 11:23

Genau so sieht das aus, Polyglott ist der Übeltäter in dem Falle. In Sachen Mehrsprachigkeit wäre noch einiges zu tun an WP, denke ich. Wo ich da überall hacken musste um das einigermaßen zum laufen zu bringen…

Antworten »

Christine Kreisler

Christine Kreisler

15.12.2008 | 18:11

huhu, irgendwie will das plugin bei mir nicht funzen, wenn ich etwas in der sprachdatei ändere und dann mein blog aufrufe, ist immernoch der alte text drinne. schreibrechte sind vergeben und die sprachdatei ist auch aktiviert. woran könnte es noch liegen?

ansonsten super plugin und auf jeden fall sehr hilfreich. werd gleich mal noch probieren die standard mo dateien zu8 ändern, evtl. liegts daran

Antworten »

Christine Kreisler

Christine Kreisler

15.12.2008 | 18:33

ooh ich depp, nun geht es, musste oben noch “erstelle mo datei” klicken. ich sollte erst lesen, dann schreiben :)

Antworten »

codestyling

codestyling

15.12.2008 | 18:44

… manchmal hilft das :-)
Aber es freut mich natürlich, das du mit dem Plugin soweit zufrieden bist. Die Entwicklung wird weiter vorangetrieben, nur häufen sich die Wünsche im Moment und so kurz vor Weihnachten ist Zeit ein kostbares Gut. Weiterhin viel Spass beim Erstellen / Ändern von Sprachdateien, um WP an deine Bedürfnisse anzupassen.

Antworten »

Plew

Plew

17.01.2009 | 00:47

Hallo
also hab mir das ganze auch mal angeschaut und finde das wirklich super, aber bestimmte Themen werden einfach nicht angezeigt?

mfg Plew

Antworten »

codestyling

codestyling

17.01.2009 | 17:14

Das Problem kenne ich sehr gut. Es gibt eine große Anzahl von Themes, die aus dem US Bereich kommen, die komplett “hart” codierte Texte in englisch enthalten. Niemand macht sich in “Übersee” die Mühe, das übersetzungsfähig zu machen.
Deshalb werde ich zum WordCamp einen Vortrag dazu machen, wie man ohne ein PHP Guru zu sein, solche Themes oder Plugins dazu bringen kann. Dazu wird dann auch ein Tutorial erscheinen, das man dann online lesen bzw. in PDF Form runterladen kann.

Antworten »

Nimue

Nimue

09.03.2009 | 12:59

Hallo, ist das PDF inzwischen fertig? ;-) Ich brenne darauf ein paar themes zu übersetzen :-)

Antworten »

codestyling

codestyling

10.03.2009 | 22:09

Aus Krankheitsgründen ist das unvollendet. Ich versuche das bis zum Wochenende bereitzustellen.

Antworten »

jwqlb

jwqlb

17.02.2009 | 22:14

hallo codestyling,

danke für die mächtig viele arbeit.
ich habe dein plugin unter wp 2. 6 installiert und aktiviert.
beim aufruf im backend sehe ich allerdings nirgendwo diese “bunte vielfalt”, wie du sie weiter oben bei den erläuterungen per bilder dargestellt hast.
was kann da bei mir schieflaufen?

jwqlb

Antworten »

codestyling

codestyling

17.02.2009 | 22:38

Hast du dem Menüpunkt Lokalisierung im Menü unter Verwalten ?
Ist die Übersicht nur leer oder einfarbig ? Benutzt du ggf. Google Chrome ?
Welcher Provider ist dahinter ?
Du kannst mir das gern auch mit einem Screenshot von Backend mailen, denn so ganz ohne weitere Ansichten oder Randdaten stehe ich ein wenig im Regen :-)

Antworten »

Pete

Pete

20.02.2009 | 15:59

Hallo,
Glückwunsch zu diesem Plug-In.

Eine kleine Anmerkung habe ich die vielleicht dem einen oder anderen Hilft.
Als ich unter WP 2.7.1 die deutsche Hauptsprachdatei bearbeitet habe sind die Änderungen erst nach einem Log-Out aus der Admin-Oberfläche übernommen worden. Hatte mich schon echt gewundert und rumgesucht, aber anscheinend wird die ursprüngliche Version dieser doch ziemlich umfangreichen Datei irgendwo gecached…

Grüße,
Pete

Antworten »

codestyling

codestyling

20.02.2009 | 16:12

Danke für den Hinweis. Normaler Weise wird bei Massenhostern mit CGI basiertem PHP gearbeitet, was das Cachen unmöglich macht. Nur wenn PHP über mod_php im Apache läuft, kann auch gecachet werden. Bist du ggf. bei einem Hoster, der dir mod_php zur Verfügung stellt ?

Antworten »

Ferdi

Ferdi

23.02.2009 | 16:11

Wie kann es sein, dass die Sprachdatei eines Plugins von Codestyling Localization erkannt wird (und zum Editieren verfügbar ist), die übersetzten Texte sowohl im Front- als auch im Backend jedoch nicht angezeigt werden? (D.h. ich benütze qTranslate und zwischen Deutsch und Englisch umzuschalten.)

Wenn qTranslate ausgeschaltet ist, gibt es keine Probleme. Qian Qin von qTranslate meint, dass es am Plugin liegen würde…
Wenn Dein Plugin die Sprachdatei eines Plugins findet (wenn qTranslate aktiv ist), müsste dann nicht auch die Sprache richtig angezeigt werden?

Antworten »

codestyling

codestyling

23.02.2009 | 16:28

Nicht unbedingt. Einige diese Mehrsprachigkeits-Plugins für WordPress erwarten die Sprachdateien in einer für WP unüblichen Weise. Normal würde die Datei auf de_DE.mo enden jedoch erwarten einige dieser Plugins das es nur auf de.mo endet.
Ein Test mit qTranslate kann du machen, indem du einfach mal die Sprachdatei so am Ende umbenennst. Falls qTranslate es jetzt kann, dann liegt es daran, wenn nicht, dann an dem Plugin, zu dem die Sprachdatei gehört. Allerdings kann dann mein Lokalisierungsplugin nix mehr damit anfangen, denn das arbeitet nach WP Standard mit xx_YY.mo am Ende.

Antworten »

Günter

Günter

25.02.2009 | 21:19

Bin absoluter Neuling auf diesem Gebiet…aber selbst ich komme damit zurecht.
Danke
Habe trotzdem eine Frage…Kann man dieses Plugin auch ausserhalb von Wordpress benutzen, wenn ja dann wie.

gruß Günter

Antworten »

codestyling

codestyling

26.02.2009 | 12:46

Eine “Stand alone” Version, die man in andere Projekte (CMS oder Blogsysteme) integrieren kann, ist für Ende des Jahres geplant. Momentan orientiert es sich intern zu stark an die Möglichkeiten von WordPress. Ein Abstraktion muß noch gebaut werden, damit man das auch extern verwenden kann.

Antworten »

Ferdi

Ferdi

08.03.2009 | 12:18

Hallo Heiko,

ich habe bei meinem Hoster die Möglichkeit von PHP4 auf PHP5 “umzustellen”, indem ich eine entsprechende Datei in das Stammverzeichnis hochlade. Dadurch werden alle .php - Dateien mit PHP5 geparst. Ohne diese spezielle Datei werden sie mit PHP4 geparst.
So weit so gut. Ich hatte Dein Plugin mit PHP4 laufen, hatte dann aber auf PHP5 umgestellt, weil ich dachte, dass dies für ein anderes Plugin nötig sei… Schließlich bin ich wieder zu PHP4 zurückgekehrt… Als ich zur Version 1.8 Deines Plugins upgraden wollte, kam dann plötzlich eine Fehlermeldung “fatal error” - verschiedene aktive Plugins wurden dabei auf “inaktiv” gesetzt… Ich dachte, dass für die neue Version PHP5 nötig sein würde und lud schließlich wieder die Vers. 1.72 hoch. Dieselbe Fehlermeldung “fatal error” erschien wieder. Darunter stand dass PHP >=4.4.2 erforderlich sei. Momentan würde 4.4.2 debian dingsbums… laufen.
Ich verstehe das nicht, weil es doch vorher bereits einmal funktioniert hatte.
Nun habe ich wieder zu PHP5 gewechselt und Dein Plugin lässt sich aktivieren.

P.S. Kennst Du http://sitepress.org/ bzw. http://icanlocalize.com ? Als Testblog haben die einen engl./span. Blog mit Subdomain (en./es.) und jeweils Slugs in den Landessprachen… Außerdem bieten sie einen “human translation service” an… Klingt ziemlich gut, hab’s aber noch nicht ausprobiert.

Antworten »

codestyling

codestyling

08.03.2009 | 21:25

Kannst du mir mal einen Screenshot des Fehlers schicken, damit ich das besser untersuchen kann ?
Die auf Sub-Domains basierte Lösung kenne ich, leider kann aber nicht jeder User mit Sub-Domains so umgehen, wie hier nötig. An sich keine schlechte Sache (betrifft aber nur den Content nicht das Drumrum):

Antworten »

Ferdi

Ferdi

14.03.2009 | 17:53

Ich hab den Screenshot mittlerweile gesandt. Ist er angekommen?

Wie lokalisiere ich eigentlich solch ein “Ungetüm”:

PHP
1
 '<strong>Pages:</strong> ', 'after' => '', 'next_or_number' => 'number')); ?>
timing: 0.081s

Dieser Versuch:

PHP
1
'<strong>'(__('Pages:', 'textdomain'))'</strong> ', 'after' => '', 'next_or_number' => 'number')); ?>
timing: 0.088s

liefert dieses Ergebnis: “Parse error: syntax error, unexpected ‘(’, expecting ‘)’”

Offenbar gelten die “herkömmlichen Regeln” bei “arrays” nicht… Ich hab schon diverse Seiten im Internet abgegrast und nichts Passendes gefunden.

Danke für Deine Hilfe im Voraus.

Antworten »

Ferdi

Ferdi

14.03.2009 | 18:04

Merkwürdig, manchmal muss man erst eine Frage (in einem Forum etc.) konkret ausformulieren, bis man selbst auf die Lösung dann doch noch stößt:

Das ist die Lösung für mein Problem:

PHP
1
 '<strong>' . __('Pages:', 'textdomain') . '</strong> ', 'after' => '', 'next_or_number' => 'number')); ?> 
timing: 0.091s

Grüße

Ferdi

Antworten »

thomas57

thomas57

15.03.2009 | 21:10

Hallo,
ich benutze das Plug schon etwas länger und bisher war alles spitze. Nun ist mir bei der Übersetzung von einem Plug In etwas nicht ganz klar.
Cform ist ein geniales Plugin zum erstellen eigener Formulare, leider läßt sich auf die po und mo dateien nur zugreifen, wenn diese außerhalb des Plugin Ordners liegen ( /content/plugins/..po) und nicht im Ordner selbst unter einem Unterordner wie (/content/plugins/cforms/langs).
Jetzt ahbe ich schon die Dateien von cforms untersucht, aber ich komme nicht dahinter.
Wäre es nicht auch eine Möglichkeit einen Pfad zu den eigentlichen po mo Dateien der Übersetzung in Dein PlugIn einzubauen ? Vielleicht gleich zu Beginn, bei der Erstellung der po Dateien.
Gruß aus dem Norden von
Thomas

Antworten »

codestyling

codestyling

15.03.2009 | 21:51

Das liegt an der (sagen wir mal bescheidenen) Art und Weise, wie cForms II die Sprachdatei lädt:

PHP
1
add_action('init', create_function('', 'load_plugin_textdomain(\'cforms\');') );
timing: 0.066s

Mit dieser dynamischen Funktionsgeneration wird nur die Textdomain cforms aber nicht wenigestens einer der beiden möglichen Pluginpfade angegeben. Somit versucht dann der WP Core die Sprachdatei im Plugin-Pfad selbst zu suchen und zu laden.
Das könnte man im o.g. Code ändern und sauber arbeiten lassen. Der Author scheint sich nicht besonders für Lokalisierung zu interessieren

Antworten »

thomas57

thomas57

15.03.2009 | 23:48

Danke für die schnelle Antwort.
Das könnte man ja versuchen zu ändern. nochmal Danke für Deine Antwort.
Gruß aus dem Norden von
Thomas

Antworten »

Heike

Heike

20.03.2009 | 17:30

Hallo,
habe das Plugin auch installiert und wollte es mal beim Theme “Atahualpa” testen.

Also auf Einlesen geklickt und mit ok bestätigt -… folgende Fehlermeldung kam:

“You do not have the permission to read the file ‘/www/htdocs/w007617b/wp-content/themes/atahualpa/de_DE.po’.”

Ok mit ‘nen anderen Theme probiert - gleiche Meldung.

Die Rechte sind alle auf 777. Vielleicht hat jemand einen Tipp?

Antworten »

codestyling

codestyling

21.03.2009 | 19:09

Tritt dies grundsätzlich auf bei allen Teilen der Software, also auch bei Plugins ?
Prinzipiell fällt mir dazu nur ein, daß er Probleme zwischen dem Nutzer, dem die Datei gehört und der Script-User gibt, mit dem der WebServer PHP Dateien ausführt. Dies tritt meist dann auf, wenn der safemode aktiv ist bzw. der Server mit einem speziellen Benutzer läuft, der nicht alles darf.

Antworten »

knusperpixel

knusperpixel

23.03.2009 | 17:46

Danke für das Plugin!

Antworten »

Jost

Jost

10.04.2009 | 15:10

Vielen Dank für das Plugin!
Es ist neben “Hello Dolly” das einzige, das ich installiert habe und ich liebe es…

In der Liste der verfügbaren Browser können Safari 3.2 und Safari 4 Public Beta (jeweils unter Mac OS X) hinzugefügt werden, die funktionieren bei mir problemlos.
Außerdem könnte ich anbieten, die englischen Artikel Korrektur zu lesen. Ich bin zwar kein Muttersprachler, aber eigentlich ganz gut… Kannst mir ja eine Mail schreiben, wenn du das Angebot annimmst.

Antworten »

Iggi

Iggi

14.04.2009 | 15:46

Schönes Plugin!
Funktionioniert super und dank Anleitung auch wirklich sofort zum Ziel gekommen.

Ig

Antworten »

21cdb

21cdb

05.05.2009 | 17:16

Super Plugin, ich bin begeistert und sehr dankbar für die Veröffentlichung!

Ich nutze es mit WPMU und Buddypress zum Übersetzen meiner eigenen Themes und Plugins.

Leider war es mir bisher nur möglich eine Übersetzung anzulegen wenn sich die textdomain im selben Ordner (mu-plugin in meinem Fall) wie das Plugin befindet.

load_plugin_textdomain(’JW_Global_Tagcloud’,);

Dies wird mit der Zeit ziemlich unübersichtlich, da lauter .po und .mo files in dem Ordner existieren.
Ich würde daher gerne die Textdomain in einem eigenem Ordner haben, z.B. myplugin im wp languages directory.

load_plugin_textdomain(’JW_Global_Tagcloud’, ‘wp-content/languages/myplugin/’);

Wenn ich die Textdomain jedoch wie oben aufgeführt im Plugin anführe, kann Codestyling Localization das selbst erstellte .po file nicht mehr einlesen. Zudem sucht er im Ordner /wp-content/mu-plugins/./ und nicht in wp-content/languages/myplugin/ wie im Plugin definiert.

Da ich sehr neu im Übersetzen bin weiß ich nicht ob ich einen Denkfehler eingebaut habe, oder ob es schlichtweg nicht möglich ist so vorzugehen.

Herzlichen Dank für die Unterstützung vorab!

Antworten »

codestyling

codestyling

05.05.2009 | 18:01

Das ist ein wenig schwierig, gerade bei der MU Version, denn die MU Plugins sind nun man an deren Pfad gebunden. Deshalb funktionieren auch die Sprachdateien nur aus dem Pluginpfad selbst. Dieses Thema müsste man nochmal mit den MU Jungs besprechen, denn wenn MU seine Plugins genauso organisieren würde, wie die Standard WP Version (mit Unterverzeichnissen) dann wäre das kein Problem.

Antworten »

Thomas

Thomas

11.05.2009 | 22:58

Ich habe leider ein Problem mit einem Plugin, welches ich übersetzen möchte. Die Sprachdateien liegen im Ordner /wp-content/plugin-name/languages und im Plugin-Ordner gibt es die Datei “main.php” mit dem Code

PHP
1
2
$flutter_domain = 'flutter';	
load_plugin_textdomain($flutter_domain, '/'.PLUGINDIR.'/'.dirname(plugin_basename(__FILE__)).'/languajes', basename(dirname(__FILE__)).'/languages');
timing: 0.084s

Doch leider erkennt Dein Plugin die Textdomain nicht richtig und nimmt dafür dann ‘main’. Wo kann der Fehler liegen?

Nehme ich die Variable raus und schreibe dafür ‘flutter’ ein, dann klappt es. Allerdings gibt es noch ein weiteres Problem, denn der Entwickler hat einige Texte mit Zeilenumbrüchem im Quellcode drin. Diese Texte erkennt Dein Plugin zwar, aber die Übersetzung erfolgt leider nicht. Liegt die ausschließlich am Quelltext?

Danke für Deine Tipps und die viele Arbeit, die hinter allem steckt.

Antworten »

codestyling

codestyling

14.05.2009 | 14:04

Leider kann der aktuelle Parser im Moment keine Variablen auflösen sondern nur Konstanten. Deshalb funktioniert das mit

PHP
1
$flutter_domain = 'flutter'
timing: 0.071s

nicht. Das würde aber per Konstante funktionieren:

PHP
1
define('FLUTTER_TEXTDOMAIN', 'flutter');
timing: 0.052s

Antworten »

struupi

struupi

22.05.2009 | 12:05

Hu hu codestyling,
habe ich es richtig verstanden,
dass themes, die nicht im Adminbereich unter
->Werkzeuge -> Lokalisierung aufgeführt werden, auch nicht eingelesen werden können, wenn ich
im Code ein load_theme_textdomain() einfüge???

Habe das probiert, das theme wird dann zwar angezeigt, auch analysiert, aber klicke ich dann auf bearbeiten kommt halt nur eine leere Seite.
Das ist wohl das was Du mit hardcodiert meinst, oder?

lg struupi

Antworten »

codestyling

codestyling

23.05.2009 | 23:18

Solange im Quelltext des Themes keine Lokalisierung (Funktionsaufrufe) vorgesehen sind, dann funktioniert das auch nicht mit der Übersetzung, selbst wenn man eine Textdomain laden lässt.
Wie man nachträglich eine Lokalisierung von Themes/Plugins vornimmt, habe ich in der Präsentation auf dem WorkCamp gezeigt und nochmal als Dokument im Artikel WordCamp Vortrag “Lokalisierung” als PDF Download bereitgestellt.

Antworten »

mores

mores

28.05.2009 | 22:56

Hallo,
habe mich nun auch an die Lokalisierung herangewagt.
Es funktioniert aber nicht :)
Also, ich habe in meinem Theme-header den Code eingebaut, verwende durchwegs diese eingekapselten Dinger , sehe mein Theme in der Admin und habe schon mal ein paar Texte übersetze.

Ich verwende qTranslate, und dachte, dass da was mit dem “de” vs “de_DE” sein könnte und habe die erstellte MO datei von “en_UK.mo” auf “en.mo” umbenannt, was aber auch nicht half.
Eine Deutsche Sprache habe ich nicht geladen, die ist ja in dem eingekapselten Ding drinnen.

Bitte um Hilfestellung, vielen Dank.
Den Vortrag hab ich mir übrigens angesehen, aber leider nichts gefunden, was mir helfen könnte.

Antworten »

codestyling

codestyling

29.05.2009 | 01:58

Wenn ich dich richtig verstehe, dann sind deine Texte im Theme in deutsch formuliert und du möchtest andere Sprachen aus dem Deutschen übersetzen lassen ?
Also als Beispiel steht so was bei dir drin __( ‘Kommentar’ , xxx ) wobei xxx die Textdomain ist, die dein Theme benutzt. Wenn keine solche Textdomain im Theme vereinbart und geladen wird bzw. dieses Angabe fehlt, dann werden die Übersetzungen in der WP Hauptsprachdatei gesucht, die diese aber nicht enthalten können.
Falls ich dich falsch verstanden hab, sollten wir das per Mail weiter erörtern.

Antworten »

mores

mores

29.05.2009 | 10:19

Eigentlich verstehst Du mich richtig.
Textdomain habe ich in der header.php definiert, mittels

PHP
1
2
3
4
5
</head>
	...
 	<?php load_theme_textdomain("st09"); ?>
 	<?php wp_head(); ?>
 </head>
timing: 0.108s

Und aufrufen tu ich die Texte mittels

PHP
1
<h2><?php _e('Suche:','st09') ?></h2>
timing: 0.067s

Antworten »

codestyling

codestyling

29.05.2009 | 10:44

Zum Thema code in Kommentaren: im Moment läuft hier eine experimentelle Syntax Highlighting Engine, die ein paar Probleme hat. Sobald ich mehr Zeit habe, werde ich mir das ansehen.
Laut Theorie sollte das mit der Sprachdatei funktionieren, wie du das als Beispiel angegeben hast. Ich muss mir das erstmal durchdenken und melde mich dann auf deine Mail.

Antworten »

hkservercolocation

hkservercolocation

20.06.2009 | 10:58

thanks for sharing~

Antworten »

Tom

Tom

24.06.2009 | 08:30

Ich sag einfach mal nur DANKE, da mit das Plugin grad wieder sehr geholfen hat. Super! :)
Und wenn es jetzt noch die Texte OHNE eigene Textdomain ignoriert wäre es noch besser. Oder man die Möglichkeit hat, sie beim bearbeiten aus der PO zu löschen, ohne kurz zum Texteditor wechseln zu müssen. ;)

Antworten »

codestyling

codestyling

24.06.2009 | 11:07

Ist schon in Arbeit. Ein Update wird derzeit vorbereitet, denn mit 2.8 sind ja neue Sprachdatei-Funktionen hinzugekommen, die der Parser derzeit übersieht. Der neue Parser wird erkennen, das mehr als eine Domain enthalten ist und nach Abschluss des Scan-Prozesses nachfragen, wie damit umgegangen werden soll.

Antworten »

Micha

Micha

06.07.2009 | 12:20

hallo,

ich konnte mit Hilfe Deines spitzen Plugins schon so maches Übersetzung bewerkstelligen, nur leider will es bei GD Star Rating nicht funktionieren. Das Laden der Sprachdatei wird endlos ausgeführt, ohne Ergebnis. Die .po wurde erfolgreich erstellt und eingelesen, nur bei der Bearbeitung der .mo tut sich nicht (Bitte warten, die Sprachdatei wird geladen … ). Hast Du vielleicht Rat zur Problemlösung?

Viele Grüße
Micha

Antworten »

codestyling

codestyling

06.07.2009 | 12:37

Das liegt an einem Bug im GD Star Plugin selbst (options/settings/settings_advanced.php:43):

PHP
1
<strong><?php _e("Important", "gd-star-rating"); ?>: </strong><?php _e(sprintf("Plugin must have write access to a text file. Path to this file needs to be set in %s file.", '<em style="color:red">;config.php</em>;'), "gd-star-rating"); ?>;
timing: 0.068s

Der sprintf hat innerhalb der Textauflösung nix zu suchen und muss so sein:

PHP
1
<strong><?php _e("Important", "gd-star-rating"); ?>: </strong><?php echo sprintf(__("Plugin must have write access to a text file. Path to this file needs to be set in %s file.", "gd-star-rating"), '<em style="color:red">config.php</em>'); ?>
timing: 0.055s

Allerdings sollte ich solche Fälle ggf. mit abfangen und darauf hinweisen.
Danke für die Information, wird im nächsten Update berücksichtigt.

Antworten »

Tobias

Tobias

07.07.2009 | 20:16

Hallo Heiko,

mir ist ein kleiner Rechtschreibfehler in der readme.txt der neuen Version aufgefallen, der sogar zu einem Bug in der WP Plugin Update API führt. Habe dazu ein Trac Ticket erstellt.

Gruß
Tobias

Antworten »

codestyling

codestyling

07.07.2009 | 21:32

Danke für den Hinweis. Upps, da war es wohl doch später, als ich dachte :-)
Das werde ich demnächst umgehend korrigieren, sammel aber noch ein wenig das ein, was an Rückmeldungen noch so reingekommen ist.

Antworten »

Oliver Schlöbe

Oliver Schlöbe

08.07.2009 | 15:53

Die readme.txt kannst du auch ersetzen, ohne eine neue Version zu veröffentlichen. (Hoffe, dass ich deinen Kommentar richtig gedeutet habe) :)

Antworten »

zonebattler

zonebattler

13.07.2009 | 17:21

Hallo,

ich kann die Sprachdatei des neuen WordPress 2.8.1 nicht mehr mit Poedit bearbeiten, siehe

http://forum.wordpress-deutschland.org/sprachdatei/54936-fehlerhafte-deutsche-sprachdatei.html

Im Verlauf dieses Threads wurde mir als Alternative “Codestyling-Localization” empfohlen, welches mir bis dato nicht bekannt war. Erste Tests mit Plugin-Sprachdateien verliefen jetzt auch sehr vielversprechend, nur meinem eigentlichen Ziel, die Bearbeitung der “großen” Sprachdatei von WordPress selbst, scheine ich nicht wirklich näherzukommen: Nach dem Anklicken von “Einlesen” und dann “Analysieren” passiert nämlich nix mehr, der Screen zum “Einlesen der PHP Quelldateien” bleibt mit der Nachricht “Bitte warten, Dateien werden durchsucht…” stehen. Gut, bei 273 betroffenen Dateien mag sowas ja ein paar Minuten dauern, aber doch nicht bis zum Sankt-Nimmerleinstag…

An einen Bedienfehler meinerseits glaube ich nicht, was könnte denn hier die Ursache der Misere sein?

Dank & Gruß,
Ralph

Antworten »

codestyling

codestyling

13.07.2009 | 17:31

Normalerweise braucht der Einleseprozess für WordPress <= 3 Sekunden pro 20 Dateien. Es werden Dateien immer in Schritten zu 20 Stück analysiert und ausgewertet. Die einzige Erklärung, die ich dafür hätte, würde sich im Bereich Scriptlaufzeit bewegen, denn das kann auf einigen Maschinen evtl. deutlich länger brauchen. Eine andere Möglichkeit wäre noch das Versagen der Ajax Calls zu Scannen. Das würde man im FireBug sehen können im Tab “Netzwerk” -> XHR
Die Antwort des letzten Ajax Calls beim Scannen wäre dann interessant, ob sich dort ein Fehler äußert.

Antworten »

zonebattler

zonebattler

13.07.2009 | 18:24

Danke für die prompte Antwort! Leider kann ich nicht mit weiteren Analysen dienen, da ich über die genannten Werkzeuge nicht verfüge und mich wegen dieses Problems jetzt auch nicht weiter einarbeiten (Und letztlich verzetteln) will. Die maximale Skript-Laufzeit mag tatsächlich ursächlich sein, mein DB-Hoster (Strato) ist leider nicht der Schnellste. Bei manchen Plugins dauert das EInlesen schon recht lange, obwol da eher wenig Dateien zu bearbteiten sind. Immerhin, bei den kleineren Baustellen funktioniert es ja, nur beim “Herzstück” des Ganzen leider nicht. Schade, so komme ich also nicht weiter. Sofern ich mal den Mut aufbringe, mit allen meinen Domains und Inhalten zu einem schnelleren Provider umzuziehen, werde ich mir Dein schönes Plugin nochmals näher anschauen… ;-)

Lieben Gruß,
Ralph

Antworten »

Tobias

Tobias

19.07.2009 | 12:27

Hallo Heiko,

irgendwie ist es wohl möglich, dass WordPress auch übersetzte Beschreibungen von Plugins in der Pluginverwaltung anzeigen kann (jedenfalls wurde dazu ein Bug in diesem Trac-Ticket gefixt).
Der Autor muss dazu die zwei Zeilen

PHP
1
2
3
4
/*
Text Domain: die-text-domain
Domain Path: /language-file-folder
*/
timing: 0.060s

in den Kopf der Haupt-Plugin-Datei einfügen.

Der *.pot-file-Generator (im Admin-Bereich eines Plugins auf wordpress.org/extend/) fügt dann die Kopfdaten (Autorname, Beschreibung, URLs, … ) als übersetzbare der *.pot-Datei hinzu, so dass diese theoretisch mit poEdit übersetzbar sein sollten.
Könnte man dieses Feature auch in dein Plugin einbauen, so dass auch damit diese Dinge übersetzbar gemacht werden können? Das Auslesen aus der Haupt-Plugindatei sollte ja beim Durchforsten nach __() oder _e()-Calls möglich sein.

Dankeschön!

Gruß
Tobias

Antworten »

codestyling

codestyling

19.07.2009 | 13:48

Kennst du ein Plugin, das dies benutzt ?
Ich bräuchte dazu eine nicht von mir geschriebenen Testkandidaten :-)

Antworten »

Tobias

Tobias

19.07.2009 | 22:38

Hallo Heiko,

du bist ja schon wieder schneller als die Polizei erlaubt :-)

ich kenne kein Plugin, dass es schon nutzt (weil das Ganze ja nicht wirklich dokumentiert ist). Aber ich habe mal die beiden erwähnten Zeilen in die aktuelle Beta meines WP-Table Reloaded hinzugefügt und die *.pot-Datei durch den Generator aktualisieren lassen: Download
Ich weiß leider nicht, ob das schon alle nötigen Anpassungen sind, damit das ganze klappt. Und zum eigentlichen Sehen der übersetzten Beschreibung braucht man wohl den aktuellen WP-Trunk, in dem der Bug aus dem oben erwähnten Trac-Ticket gefixt ist.

Gruß
Tobias

Antworten »

jwqlb

jwqlb

20.07.2009 | 12:50

Danke für die tolle Arbeit!
Ich habe mal versuchsweise die Übersetzung des Plugins “More Fields” realisieren wollen.
Leider erscheint die deutsche Übersetzung nicht im Backend.
Was mache falsch, bzw. was muss ich machen, um die Übersetzung zum Abschluss zu bringen?

Mit bloggigen Grüßen
jwqlb

Antworten »

codestyling

codestyling

20.07.2009 | 12:59

Also das Plugin erscheint bei mir in der Liste der übersetzbaren Plugins und zeigt auch an, dass eine deutsche *.mo Datei dabei ist. Diese ist veraltet. Als erstes solltest du Deutsch neu Einlesen lassen, woraufhin dann auch die aktuelle *.po Datei erstellt wird. Danach auf Bearbeiten und du kannst die Texte übersetzen wie gewünscht.

Antworten »

Nick

Nick

10.08.2009 | 00:20

Moin Heiko,

ich hatte deine Session auf dem WordCamp 09 in Jena besucht und war schon damals von deinem Plugin begeistert. Nun habe ich dieses Plugin zum ersten Mal bei der Lokalisierung eines Plugins (twitter tools) eingesetzt… Und die Begeisterung ist noch gestiegen!!!

Vielen Dank,
Nick

Antworten »

Michael Oeser

Michael Oeser

06.01.2010 | 19:06

Das ist vielleicht das unfassbar geilste, sinnvollste und zeitsparendste Plugin, dass ich seit langem installiert habe. 1.000-fachen Dank dafür. Mit solchen Plugins kann das Leben so schön einfach sein ;-)

Antworten »

Du kannst diese Tags verwenden : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Navigation

  • Anleitungen
  • Entwicklungen
    • WordPress Plugin: Codestyling Localization
    • WordPress Plugin: Page Columnist
      • Demo-Seite “Page Columnist”
    • WordPress Plugin: WP Native Dashboard
    • WordPress Plugin: WP System Health
  • Fehlerbehebungen
  • Impressum
    • Haftungsausschluss

Suche

rss RSS Kommentare valid xhtml 1.0 design by jide powered by Wordpress get firefox