Ruby: Datei verarbeiten auf UTF-8

Hallo,

ich habe hier ein Ruby-Programm, welches mir aus einer XML-Datei Texte extrahiert und sie mir in einer Excel-Datei sowie in Po/MO-Datei ablegt.

Folgendermaßen geschieht das:

  • Einlesen einer XML-Datei
  • Herauslesen bestimmter Attribute
  • Füllen einer Excel-Datei mit den Attributen (Win32OLE-Interface)
  • Füllen einer PO-Datei mit den Attributen (Dabei wird eine Übersetzung durch Hinzufüghen von Buchstaben wie z.B. landestypische Sonderzeichen „simuliert“)
  • Generieren der MO-Datei durch Aufrufen von POedit

(Testen des „Wörterbuchs“ in der Software und der Software mit dem Wörterbuch, bzw. Weitergabe des Excels an das „echte Übersetzungs-Büro“)

Nun habe ich ein Problem mit der Codierung der Umlaute und Sonderzeichen:
Die Quell-Excel-Datei ist meistens ISO-8859-1 (und nur im Ausnahmefall UTF-8)
Ist die Quell-Datei UTF-8-codiert, hat Excel ein Problem mit der Darstellung (oder wie kann ich da UTF8 einstellen?)
Die Software erwartet eine MO-Datei, welche UTF-8-codiert ist.
Dafür muss auch die Po-Datei UTF-8_codiert sein.

Hat jemand nen einfachen Tip?

Danke vielmals
Winni

Hallo winni,

ich habe hier ein Ruby-Programm, welches mir aus einer
XML-Datei Texte extrahiert und sie mir in einer Excel-Datei
sowie in Po/MO-Datei ablegt.

Vor lauter Konvertieren schwirrt mir der Kopf :wink:
Ehrlich, ich weiss nicht genau, wo das UTF-8-Problem liegt. laut Überschrift bei Ruby, weiter unten aber auch/oder bei Excel, der „Software“(?).
Der Ablauf, soweit ich ihn verstanden habe, ist so:

(1) XML-Datei
 |
(2) Ruby ------+
 | | 
(3) Excel | 
(4) | Po-Datei
 | |
(5) | PoEdit
 | |
(6) | Mo-Datei
 | |
(7) | Software(?)
(8) Übersetzungsbüro

Habe ich den Ablauf richtig verstanden?
An welcher Stelle liegt nun das Problem?

Nun habe ich ein Problem mit der Codierung der Umlaute und
Sonderzeichen:

Mein Verständnis-Problem liegt darin:

Die Quell-Excel-Datei ist meistens ISO-8859-1 (und nur im
Ausnahmefall UTF-8)

Ich denke, die Excel-Datei wird mit Ruby erzeugt, liegt also in deiner Hand. Warum sollte sie dann wechselnde Codierungen haben?

Ist die Quell-Datei UTF-8-codiert,

mit Quell-Datei meinst Du jetzt die XML-Datei?

hat Excel ein Problem mit
der Darstellung (oder wie kann ich da UTF8 einstellen?)

zu Excel kann ich nichts sagen.

Die Software erwartet eine MO-Datei, welche UTF-8-codiert ist.
Dafür muss auch die Po-Datei UTF-8_codiert sein.

Wenn es irgendwie an Ruby liegt, welche Version benutzt Du denn? Ruby 1.8.x kann eigentlich mit UTF-8 nicht umgehen, da hilft als eine mögliche Lösung

$KCODE='u'
require 'jcode'

im Kopf des Programmes.
Ruby 1.9.x soll inzwischen UTF-8 beherrschen, da ich aber nur 1.8 benutze, kann ich dazu nichts sagen.
Beste Anlaufstelle für solche Fragen ist das Ruby-Forum, kompetentente und sehr nette Leute:
http://forum.ruby-portal.de/
Aber vielleicht kann dir auch hier geholfen werden, wenn sich der Nebel über dem Problem mit deiner Hilfe etwas gelüftet hat :wink:
Wahrscheinlich bin aber ich auch bloß so begriffsstutzig und blicke im Moment nicht so ganz durch. Was mich außerdem noch etwas verwirrt, ist das Einschieben von PoEdit. Lassen sich mit Ruby nicht gleich diese mo- und po-Dateien mit Hilfe von libgettext-ruby erzeugen?
http://packages.debian.org/lenny/libgettext-ruby1.9
Oder handelt es sich hier um eine zufällige Namensgleichheit und das ganze hat nichts mit Internationalisierung zu tun?
http://st-on-it.blogspot.com/2008/07/rails-gettext-c…

Viele Grüße
Marvin

Hallo Winni,

ich habe hier ein Ruby-Programm, welches mir aus einer
XML-Datei Texte extrahiert und sie mir in einer Excel-Datei
sowie in Po/MO-Datei ablegt.

Excel-Datei kenne ich, XML-Datei schon seltener, der Rest ist mir unbekannt.

Also werde ich dir da äußerst wenig bis gar nix helfen können :frowning:

Aber vielleicht hilft dir dieser Link weiter, ich habe ihn kurz überflogen, könnte gut sein daß er in Excel-VBa funktioniert:

http://www.activevb.de/rubriken/faq/faq0155.html

Gruß
Reinhard