[Gelöst] PO-Dateien bearbeiten und Übersetzungen (CCK und Views)
am 18.05.2008 - 17:34 Uhr in
Ich habe nun alle Strings meiner eigenen Inhaltstypen in's Englische übersetzt. Da ich mir die "Zeichenketten verwalten - Klickerei" nicht antun will, habe ich mir die de.po zum Bearbeiten exportiert.
Zuerst habe ich sie in einem normalen Texteditor bearbeitet. Was hat es eigentlich auf sich, daß bei längeren Texten das erste Paar Anführer leer ist und der Text dann auch noch zeilenweise getrennt ist. Muß ich das bei der Übersetzung auch beachten oder genauso übernehmen?
#: /de/user/10/messagelist/view?q=de/node/add/video
msgid ""
"Enter the name of your video file here. The file has to be saved in "
"<strong>My account / Personal files</strong>."
msgstr "Geben Sie hier den Namen der Videodatei an. Diese Datei muß sich in Ihrem persönlichen Ordner unter <strong>Mein Konto / Meine Dateien</strong> befinden."Wenn ich diese Datei mit den übersetzten Texten dann wieder importieren möchte, kriege ich eine Fehlermeldung mit Bezug auf eine Zeile, die nicht bearbeitet wurde.
* Die Übersetzungsdatei de.po ist fehlerhaft: "msgstr" in Zeile 430 erwartet, aber nicht gefunden.
* Der Import der Übersetzung de.po schlug fehl.Der betreffende Abschnitt in der de.po schaut so aus:
Z 427 #: modules/comment/comment.module:304;436 modules/node/node.module:68
Z 428 msgid "1 comment"
Z 429 msgid_plural "@count comments"
Z 430
Z 431 #: modules/comment/comment.info:0
Z 432 msgid "Allows users to comment on and discuss published content."
Z 433 msgstr "Ermöglicht Besuchern das Kommentieren von Inhalten."Ich dachte zuerst, daß es eventuell nicht empfehlenswert ist, eine Sprachdatei mit einem Texteditor zu bearbeiten. Wahrscheinlich gibt es ja Regeln zur Bearbeitung und man verwendet besser ein Übersetzungsprogramm. Durch diesen fehlenden msgstr kann ich die Datei aber auch in keinem PO-Editor öffnen. Poedit z. B. meldet:
Beschädigte Katalogdatei: Verwendung von msgstr in Singularform mit msgid_plural
.../de.po konnte nicht geladen werden. Datei ist vermutlich beschädigt.Die Datei kann auch im Originalzustand, also ohne daß sie bearbeitet wurde, nicht mehr importiert werden, es kommt derselbe Fehler. (Warum befindet sich dieser Code in der Datei, wenn nicht einmal Drupal selbst was damit anfangen kann?)
Was kann ich jetzt noch machen? Alle nicht mehr benötigten oder schon übersetzten Strings aus der po.de löschen und eine ergänzende Datei nur mit den relevanten Übersetzungen erstellen und importieren. In der würde sich auch dieser Code nicht mehr befinden. Tolle Aussicht bei über 32.000 Zeilen!
Belehrt mich eines besseren, aber für mich ist der Übersetzungs-Aufbau von Drupal eine Katastrophe. Von den normalen Inhalten abgesehen, das funktioniert einwandfrei. Aber sehr viele verwenden Drupal wahrscheinlich, weil Sie komplexe Projekte aufbauen möchten und bei anderen CMS/Portalen das nicht umsetzen konnten. Und dann wird eben viel mit eigenen Inhaltstypen und verschiedenen Ansichten gearbeitet.
Dietmar
- Anmelden oder Registrieren um Kommentare zu schreiben

Ganz wichtig das
am 18.05.2008 - 17:58 Uhr
Ganz wichtig das
"Plural-Forms: nplurals=2; plural=(n!=1);\n"muss im Deutschem drin sein.
und diese leeren "" bekommst wech, wennde mit ein Po Editor die Sprache auf Deutsch änderst bzw das
"X-Poedit-Language: German\n"mit hinzu fügst. dann werden alle länderen sätzen auch in einer Reihe sein und keine Zeilenumbrüche.
Für den Fall der Fälle hier noch der kompletter Header einer de.po, aber ob das manuelle nachtragen was bringt weiß ich nicht.
# German translation of fckeditor (6.x-1.2-1)
# Copyright (c) 2008 by the German translation team
# Generated from files:
# fckeditor.module,v 1.20.2.22 2008/04/04 07:17:45 wwalc
# fckeditor.utils.js,v 1.2.2.5 2008/03/18 16:16:57 wwalc
# fckeditor.info,v 1.2.2.2 2008/03/18 13:50:45 wwalc
# fckeditor.install,v 1.2.2.9 2008/04/04 07:17:19 wwalc
#
msgid ""
msgstr ""
"Project-Id-Version: fckeditor (6.x-1.2-1)\n"
"POT-Creation-Date: 2008-05-12 19:09+0200\n"
"PO-Revision-Date: 2008-05-12 19:13+0100\n"
"Language-Team: German\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n!=1);\n"
"Last-Translator: Tobias Bähr <admin@tobiasbaehr.de>\n"
"X-Poedit-Language: German\n"
#: fckeditor.module:1675
msgid "Advanced options"
msgstr "Erweiterte Einstellungen"
......
----------------------------------------
Alle Angaben ohne Gewähr!!:D
http://www.tobiasbaehr.de/
hier ist auch noch ein
am 18.05.2008 - 21:33 Uhr
hier ist auch noch ein kleines tutorial: http://www.rapsli.ch/drupal/blog/27.02.2008-kleine-einfuehrung-ins-ueber...
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************
Danke euch beiden für die
am 18.05.2008 - 21:59 Uhr
Danke euch beiden für die Unterstützung, aber irgendwie komme trotzdem ich nicht weiter bzw. ist es sehr mühsam.
Grundsätzliche Fragen: Kann ich irgendwo festlegen, ob ein Inhaltstyp mehrsprachig sein soll? gefunden habe ich nichts. Für eine Ansicht in einer anderen Sprache muß eine neue Ansicht erstellt werden. Korrekt? Die sprachzugehörigkeit einer Ansicht wird dann wahrscheinlich im Filter festgelegt.
Dietmar
Der Reihe nach!Ich fragte,
am 19.05.2008 - 20:29 Uhr
Der Reihe nach!
Ich fragte, wie ein View übersetzt wird und mutmaßte, das man dazu einen neuen View anlegen muß. Bei den in Drupal inkludierten Views ist das aber nicht so. Also sollte es doch bei eigenen Views genauso funktionieren. Einen Test ist es wert.
Die englischen Texte meines eigenen View waren in meiner de.po nicht vorhanden und wurden auch bei der Suche nach Zeichenketten nicht gefunden (Sie sind nur in der Datenbanktabelle "view_view" vorhanden).
Also habe ich die Datei einfach um die notwendigen Strings samt deutscher Übersetzung ergänzt und wieder importiert.
Die Strings samt Übersetzungen werden nun mit der Zeichenkette-Suche gefunden, der View bleibt aber nach wie vor nur Englisch.
Zitat: Die englischen Texte
am 19.05.2008 - 22:46 Uhr
Die englischen Texte meines eigenen View waren in meiner de.po nicht vorhanden und wurden auch bei der Suche nach Zeichenketten nicht gefunden (Sie sind nur in der Datenbanktabelle "view_view" vorhanden).
In einer .po Datei koennen eigentlich nur Strings landen die in einer
t() Funktion
stecken. Und das ist wie Du bereits festgestellt hast nicht der Fall bei den englischen Texten eines View.
-------------
quiptime
Nur tote Fische schwimmen mit dem Strom.
Darum habe ich sie manuell
am 20.05.2008 - 20:13 Uhr
Darum habe ich sie manuell in der de.po ergänzt. Ich denke, ich habe das auch richtig gemacht, zuerst einen fortlaufend nummerierten String als Platzhalter für msgid eingegeben. Dann im PO-Editor die englischen Texte als msgstr für die Platzhalter ergänzt. Manuell die englischen Texte nach msgid kopiert und wieder im PO-Editor die deutschen Texte eingefügt. Alle diese manuell ergänzten Übersetzungen sind nun auch in drupal.pot, in locales_source sowie in locales_target vorhanden. Das sollte also passen. Aber der View wird nur in Englisch angezeigt, auch nach dem Löschen des Cache.
Ich will mir nicht nachsagen lassen, ich hätte mich selbst zuwenig bemüht!
Also habe ich auf meinem lokalen Test-System mal für jede Sprache einen eigenen View erstellt. Sie unterscheiden sich im Namen (Klaro) und in der URL und werden nun beide in der richtigen Sprache als Link im Menü dargestellt, wie gewünscht. Es wird auch in beiden die tabellarische Ansicht der Testbeiträge angezeigt. (Ergänzend sollte ich erwähnen, daß es sich um User-spezifische Views handelt, die unter "Mein Konto" erscheinen. Als URL habe ich "user/$arg/..." angegeben und alles andere macht Drupal automatisch so.)
Und es gibt ja den i18n-Filter für Views. Ich wähle also "Internationalization: Language - Ist eines von" und markiere die jeweilige Sprache für den View. Aber das bewirkt nichts, außer das die aufgelisteten Beiträge verschwinden. Durch die Ergänzung mit dem Filter "Internationalization: Selection - Is - ..." ändert sich nichts zum besseren.
So komme ich wahrscheinlich nicht weiter. Da muß ich einen ganz anderen Weg einschlagen. Bis ich das durchgespielt habe, beende ich diesen Thread.
Dietmar
Es gibt auch in Drupal
am 25.05.2008 - 19:06 Uhr
Es gibt auch in Drupal Grenzen.
CCK:
Werte für "Check boxes/radio buttons" können nicht übersetzt werden. Wenn man Optionswerte mehrsprachig braucht, muß man für jede Sprache ein eigenes Feld anlegen. Ich fand keinen Weg, in einem eigenen Inhaltstyp mit vielen CCK-Feldern, ein einziges CCK-Feld (mit Optionswerten) sprachabhängig zu wechseln. Also habe ich meinen Inhaltstyp gleich mehrsprachig erstellt.
Views:
Auch bei Views gibt es einige Texte, die nicht übersetzbar sind. Auch hier gilt: Für jede Sprache einen eigenen View!
That's it
Dietmar
kann sein. Ist aber glaube
am 26.05.2008 - 07:57 Uhr
kann sein. Ist aber glaube ich in D6 massiv verbessert worden.
______________________________
Yet Another Drupal Site (YADS)
http://www.rapsli.ch
******************************