Zurück   WordPress Deutschland Forum > WordPress Deutschland > Sprachdatei

Antwort
 
Themen-Optionen Ansicht
Alt 10.07.2009, 06:57   #1 (permalink)
PostRank: 3
 
Benutzerbild von zonebattler
 
Registriert seit: 23.02.2008
Ort: Fürth i. Bay.
Beiträge: 145
Fehlerhafte deutsche Sprachdatei

Guten Morgen allerseits!

Die aktuelle deutsche Sprachdatei ("Du"-Version) scheint mir einen Hau zu haben: Beim Laden in Poedit werden oben sieben nicht übersetzte Strings angezeigt und -schlimmer noch- das Abspeichern wird verweigert mit der Fehlermeldung:

“msgfmt: found 2 fatal errors”

Details:

…\wp-content\languages\de_DE.po:16148: duplicate message definition…
…\wp-content\languages\de_DE.po:1684: …this is the location of the first definition
…\wp-content\languages\de_DE.po:16152: duplicate message definition…
…\wp-content\languages\de_DE.po:10189: …this is the location of the first definition


Das sollte man fixen, denke ich…

Danke im Voraus!
zonebattler ist offline   Mit Zitat antworten
Alt 10.07.2009, 10:57   #2 (permalink)
WPD-Team
 
Benutzerbild von jottlieb
 
Registriert seit: 20.08.2005
Beiträge: 17.383
Wir überprüfen das. Scheint mit Strings zu tun zu haben die in WP für die Übersetzung vorbereitet wurden.
__________________
"Eine gut gestellte Frage ist schon halb beantwortet."
jottlieb ist offline   Mit Zitat antworten
Alt 13.07.2009, 11:54   #3 (permalink)
WPD-Team
 
Benutzerbild von codestyling
 
Registriert seit: 30.03.2008
Ort: Leipzig
Beiträge: 1.770
Zitat:
Zitat von zonebattler Beitrag anzeigen

“msgfmt: found 2 fatal errors”

Details:

…\wp-content\languages\de_DE.po:16148: duplicate message definition…
…\wp-content\languages\de_DE.po:1684: …this is the location of the first definition
…\wp-content\languages\de_DE.po:16152: duplicate message definition…
…\wp-content\languages\de_DE.po:10189: …this is the location of the first definition

Ich würde sagen, das es ein Bug in PoEdit ist, denn dieser bekommt es nicht auf die Reihe, das ein Text mit gleicher Message ID einmal mit und einmal ohne Pluralisierung vorkommt.
Das ist aber von der Behandlung in der Sprachdatei selbst (*.mo) essentiell!

Hier als Beispiel einer der betreffenden Stellen:
Code:
#: wp-admin/includes/dashboard.php:240
msgid "Comment"
msgid_plural "Comments"
msgstr[0] "Kommentar"
msgstr[1] "Kommentare"
und dann die aus dem Standard Theme:
Code:
#: wp-content/themes/default/comments-popup.php:49
msgid "Comment"
msgstr ""
Wie man sehen kann, ist der eine Eintrag eine Pluralisierung und der andere nicht. Dies sollte PoEdit eigentlich erkennen können, denn der Schlüssel (Key) für die obere ID ist:
"Comment\0Comments"
während der Schlüssel (Key) für die untere ID folgender ist:
"Comment"
Somit sind das in der *.mo Datei 2 differente Schlüssel, weswegen sie auch korrekt getrennt benutzt und gelistet werden.
Das PoEdit das nicht versteht, ist ein Problem von PoEdit und nicht der deutschen Sprachdatei!

Thema unübersetzte Strings, hier wieder ein Beispiel:
Code:
#. Not gettexted string WP_I18N_DB_CONN_ERROR
#: wp-includes/wp-db.php:343
msgid ""
"\n"
"<h1>Error establishing a database connection</h1>\n"
"<p>This either means that the username and password information in your <code>wp-config.php</code> file is incorrect or we can't contact the database server at <code>%s</code>. This could mean your host's database server is down.</p>\n"
"<ul>\n"
"\t<li>Are you sure you have the correct username and password?</li>\n"
"\t<li>Are you sure that you have typed the correct hostname?</li>\n"
"\t<li>Are you sure that the database server is running?</li>\n"
"</ul>\n"
"<p>If you're unsure what these terms mean you should probably contact your host. If you still need help you can always visit the <a href='http://wordpress.org/support/'>WordPress Support Forums</a>.</p>\n"
msgstr ""
Alles, was in der Sprachdatei enthalten ist und als Kommentar "Not gettexted string WP_I18N_ ...." enthält, sind Texte, die man nur im Quellcode ändern kann, denn zu diesem Zeitpunkt der Ausführung des Scripts ist es nicht möglich, eine Sprachdatei zu benutzen. Davon gibt es mindestens 7 Stellen im WP Core, die offizielle wordpress.pot Datei enthält diese ebenfalls. Somit ist auch dies kein Versäumnis sondern Absicht.
__________________
It's not a bug, it's always a feature. | Code Styling | Plugins | Plugins & Themes übersetzen

Geändert von codestyling (13.07.2009 um 12:03 Uhr). Grund: typo.
codestyling ist offline   Mit Zitat antworten
Alt 13.07.2009, 13:09   #4 (permalink)
PostRank: 3
 
Benutzerbild von zonebattler
 
Registriert seit: 23.02.2008
Ort: Fürth i. Bay.
Beiträge: 145
Zitat:
Zitat von codestyling Beitrag anzeigen
ISomit sind das in der *.mo Datei 2 differente Schlüssel, weswegen sie auch korrekt getrennt benutzt und gelistet werden.
Das PoEdit das nicht versteht, ist ein Problem von PoEdit und nicht der deutschen Sprachdatei!
Gut. Das heißt für mich, daß ich b.a.w. die "alte" Sprachdatei von WP 2.8 weiterbenutzen muß, weil ich in dieser diverse Änderungen und Anpassungen geschmackshalber durchgeführt habe. Diese (penibel dokumentierten) Modifikationen wollte ich in der aktuellen Version erneut vornehmen, scheitere aber daran, daß Poedit sich mit den eingangs gelisteten "Fehlermeldungen" beschwert und das Abspeichern allfälliger Änderungen nicht zuläßt.

Frage also: gibt es einen alternativen Editor oder hat jemand einen "direkten Draht" zu den Poedit-Entwicklern? Es wäre schade, wenn man diesen beliebten Editor weiterhin zwar für alle möglichen Plugin-Lokalisierungsdateien, aber nicht mehr für WordPress selbst verwenden könnte...

Dank & Gruß,
Ralph
zonebattler ist offline   Mit Zitat antworten
Alt 13.07.2009, 13:16   #5 (permalink)
WPD-Team
 
Benutzerbild von ratterobert
 
Registriert seit: 01.01.2005
Ort: Erfurt
Beiträge: 1.237
Hallo Ralph,

ja, es gibt eine ziemlich gute Alternative: http://www.code-styling.de/deutsch/e...g-localization

Grüße,
Robert
ratterobert ist offline   Mit Zitat antworten
Alt 13.07.2009, 17:05   #6 (permalink)
PostRank: 3
 
Benutzerbild von zonebattler
 
Registriert seit: 23.02.2008
Ort: Fürth i. Bay.
Beiträge: 145
Zitat:
Zitat von ratterobert Beitrag anzeigen
Hallo Ralph,

ja, es gibt eine ziemlich gute Alternative: http://www.code-styling.de/deutsch/e...g-localization

Grüße,
Robert
Hallo Robert,

danke für den Tipp: Dieses Editor-Plugin sieht ja auf den ersten Blick wirklich gut aus, und ich kann auch ordnungsgemäß die Sprachdateien sämtlicher lokalisierten Plugins einlesen und bearbeiten. Nur die Bearbeitung der großen Sprachdatei von WordPress selbst will mir nicht gelingen: Nach dem Anklicken von "Einlesen" und dann "Analysieren" passiert nix mehr, der Screen zum "Einlesen der PHP Quelldateien" bleibt mit der Nachricht "Bitte warten, Dateien werden durchsucht..." stehen. Gut, bei 273 betroffenen Dateien kann sowas ja ein paar Minuten dauern, aber doch nicht bis zum Sankt-Nimmerleinstag...

Hast Du noch eine Idee? Mir schiene das wirklich ein schöner (und zudem von überall her aufrufbarer) Ersatz für Poedit zu sein.

Jetzt bin ich noch einen weiteren Schritt von meinem ursprünglichen Problem entfernt: Ich will ja nur ein paar Strings in der deutschen Sprachdatei von WP 2.81 meinen eigenen Vorstellungen anpassen... :-(

Lieben Gruß,
Ralph

Geändert von zonebattler (13.07.2009 um 17:19 Uhr).
zonebattler ist offline   Mit Zitat antworten
Alt 13.07.2009, 21:14   #7 (permalink)
WPD-Team
 
Benutzerbild von codestyling
 
Registriert seit: 30.03.2008
Ort: Leipzig
Beiträge: 1.770
Hatte ich in meinem Blog schon beantwortet:
Zitat:
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 <em>Scriptlaufzeit</em> 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.
Es läuft laut letzter bekannter Rückmeldung von zonebattler auf das Script-Laufzeit-Limit zurück, das bei ihm scheinbar voll ausgereizt wird, weil der Server nicht der Schnellste ist.
__________________
It's not a bug, it's always a feature. | Code Styling | Plugins | Plugins & Themes übersetzen
codestyling ist offline   Mit Zitat antworten
Alt 14.07.2009, 06:28   #8 (permalink)
PostRank: 3
 
Benutzerbild von zonebattler
 
Registriert seit: 23.02.2008
Ort: Fürth i. Bay.
Beiträge: 145
Zitat:
Zitat von codestyling Beitrag anzeigen
Hatte ich in meinem Blog schon beantwortet:
Es läuft laut letzter bekannter Rückmeldung von zonebattler auf das Script-Laufzeit-Limit zurück, das bei ihm scheinbar voll ausgereizt wird, weil der Server nicht der Schnellste ist.
Pardon, das hätte ich natürlich selbst hier nachtragen können und sollen: Dem schönen Plugin ist es natürlich nicht anzulasten, wenn (nur) bei mir das Einlesen der WP-Sprachdatei scheitert...

Das Laufzeit-Limit von Skripten scheint mir ein genereller Fallstrick zu sein. Famos daher der Trick, mit dem sich z.B. der http://www.mysqldumper.de/ immer wieder durch Selbstaufruf neue 30 Sekunden verschafft, bis er mit dem Sichern der Datenbank fertig ist. Mit einem derartigen Mechanismus versehen, würde sich das Editor-PLugin "codestyling-localization" vermutlich auch von mir nutzen lassen. Wobei ich vollstes Verständnis dafür habe, daß man derlei Features nur dann implementiert, wenn mehr als nur eine Handvoll User davon profitieren würde.

Dank & Gruß,
Ralph

Geändert von zonebattler (14.07.2009 um 08:51 Uhr).
zonebattler ist offline   Mit Zitat antworten
Alt 14.07.2009, 11:44   #9 (permalink)
PostRank: 3
 
Benutzerbild von zonebattler
 
Registriert seit: 23.02.2008
Ort: Fürth i. Bay.
Beiträge: 145
Zitat:
Zitat von codestyling Beitrag anzeigen
Ich würde sagen, das es ein Bug in PoEdit ist, denn dieser bekommt es nicht auf die Reihe, das ein Text mit gleicher Message ID einmal mit und einmal ohne Pluralisierung vorkommt.
Das ist aber von der Behandlung in der Sprachdatei selbst (*.mo) essentiell!
So, jetzt beißt sich die Katze leider in den Schwanz: Der von mir in dieser Sache heute angeschriebene Autor von Poedit (Vaclav Slavik, vslavik@fastmail.fm) argumentiert umgekehrt und weist auf die nötige Eindeutigkeit der String-Zuordnungen in der Katalog-Datei hin:

"... But the very first message in that forum shows an error in the catalog, *not* a Poedit problem. It shows a msgfmt error message (msgfmt is not part of Poedit, it is a GNU Gettext
utility) that says the catalog is ill-formed and contains the same string twice. This is invalid .PO file and is clearly the fault of the PO file's creator, i.e. Wordpress I assume.

This is something I, or Poedit, have no control over. The PO format description says that msgid is unique. This catalog clearly violates this requirement, by having two identical msgid lines. Notice that Poedit itself gracefully handles this malformed file, it's the GNU gettext msgfmt compiler that (rightfully) complains about it."


Ich selbst bin nun zwar der englischen Sprache mächtig, aber letztlich nur ein WordPress-Endnutzer mit geringen Kenntnissen der hier interagierenden Mechanismen. Daher schlage ich vor, daß sich die zuständigen Moderatoren / Fachleute von WordPress Deutschland direkt mit Vaclav ins Benehmen setzen, um das Problem zielführend anzugehen. Zweifellos ist es vielen WordPress-Nutzern -keineswegs nur mir- ein Bedürfnis, eigene Modifikationen an der deutschen Sprachdatei vorzunehmen. Und eben dies funktionierte bislang (=bis WP 2.7) mit Poedit bestens! Leider besteht auch nicht für alle die Option, auf das empfohlene Plugin auszuweichen und die Katalog-Datien damit online zu editieren.

Abschließend möchte ich anfügen, daß ich hier niemanden gegen jemand anderen ausspielen oder gar Zwist sähen möchte: Ich bin nur Leidtragender eines aufgetretenen Problems in meinem bislang tadellos funktionierenden Workflow geworden und habe daher an der Wiederherstellung desselben Interesse. Weder ziehe ich die Fähigkeiten noch das Fachwissen aller Beteiligten in Zweifel, daher versuche ich zu vermitteln und diejenigen zum Dialog anzuregen, die tatsächlich was zur Lösung beitragen können...

Geändert von zonebattler (14.07.2009 um 11:59 Uhr).
zonebattler ist offline   Mit Zitat antworten
Alt 14.07.2009, 11:58   #10 (permalink)
WPD-Team
 
Benutzerbild von codestyling
 
Registriert seit: 30.03.2008
Ort: Leipzig
Beiträge: 1.770
Ich werde das Thema aufgreifen und in der Polyglot Liste sowie im Trac von WP einwerfen. Das Problem ist nicht so einfach, denn es bedarf einer Codeänderung in WP, um das sauber zu bekommen.
Diese verwendete Pluralform
Code:
#: wp-admin/includes/dashboard.php:240
msgid "Comment"
msgid_plural "Comments"
msgstr[0] "Kommentar"
msgstr[1] "Kommentare"
ist nun mal was anderes als die hier verwendete Sigular Form:
Code:
#: wp-content/themes/default/comments-popup.php:49
msgid "Comment"
msgstr ""
Es gibt 2 Möglichkeiten, das im Code kenntlich zu machen:
1. mit implizitem Kontext:
Code:
#: wp-content/themes/default/comments-popup.php:49
msgid "Comment|inside popups"
msgstr ""

....

_c('Comment|inside popups');
2. mit explizitem Kontext:
Code:
 #: wp-content/themes/default/comments-popup.php:49
msgctx "inside popups"
msgid "Comment"
msgstr ""

....

_x('Comment', 'inside popups');
Damit würde man dem Problem auf Codeebene aus dem Weg gehen.
Allein eine Änderung in der *.po Datei ist nicht Zielführend, denn der Code muß dazu passen.
Soetwas kann man nur mit dem Entwicklern klären lassen, werde sehen, was ich tun kann.
__________________
It's not a bug, it's always a feature. | Code Styling | Plugins | Plugins & Themes übersetzen

Geändert von codestyling (14.07.2009 um 12:00 Uhr).
codestyling ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
sprachdatei

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:43 Uhr.


Powered by vBulletin® Version 3.8.7 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.6.0 | Impressum | Ein Inpsyde.com Projekt