Forum: PC-Programmierung Internationalisierung - Alternative zu GNU gettext


von Andreas F. (andreasfrieser)


Lesenswert?

Hallo,

ich bin gerade dabei ein Programm zu internationalisiern. Im Umfeld von 
GNU und Linux wird hierzu meistens das Programmpaket gettext verwendet. 
Da im vorliegenden Fall dieses Programm aus verschiedenen Gründen 
ausscheidet, bin ich auf der Suche nach Alternativen.

Dabei bestehen die folgenden Anforderungen:

- Unabhängig von einem Betriebssystem: Das Programm sollte möglichst 
kein bestimmtes Betriebssystem voraussetzen. Ideal wäre es, wenn man das 
Programm als Bibliothek zu dem Programm hinzufügen könnte.

- Reines C: Für das Projekt steht bisher nur ein C-Compiler zur 
Verfügung.

Es muss sich nicht unbedingt um ein freies Projekt handeln, auch 
kommerzielle Software kommt in Frage.

Grüsse aus dem Hegau,

Andreas Frieser

von Rolf Magnus (Gast)


Lesenswert?

> Da im vorliegenden Fall dieses Programm aus verschiedenen Gründen
> ausscheidet, bin ich auf der Suche nach Alternativen.

Es wäre sicherlich gut, diese Gründe zu kennen, um eine Alternative 
vorschlagen zu können. Bisher suchst du etwas, das genau wie gettext 
ist, aber aus unbekannten Gründen nicht gettext selbst sein darf.

von Bartli (Gast)


Lesenswert?

> - Unabhängig von einem Betriebssystem: Das Programm sollte möglichst
> kein bestimmtes Betriebssystem voraussetzen. Ideal wäre es, wenn man das
> Programm als Bibliothek zu dem Programm hinzufügen könnte.

QT? Sollte gehen, auch wenn du kein GUI brauchst oder ein anderes GUI 
Framewuerg verwendest.

> - Reines C: Für das Projekt steht bisher nur ein C-Compiler zur
> Verfügung.

Dann halt doch nicht QT.

Was spricht gegen gettext? Es ist nicht soo ein grosses Problem, 
Libraries von ihren GNU abhängigkeiten zu befreien. Hab kürzlich selber 
das argp API aus der GNU Libc rausgelöst. Zugegebenermassen ist argp 
einiges simpler als gettext.

von Andreas F. (andreasfrieser)


Lesenswert?

Hallo,

warum scheidet gettext bisher aus? Die Software soll neben dem PC auch 
auf einem Embedded System (Renesas SH2/SH3) ohne jedes Betriebssystem 
laufen.

Bisher ist es mir nicht gelungen, gettext herauszulösen und gegen den 
verwendeten GCC mit newlib zu linken.

Nach einer Alternative suche ich auch, da die entstehenden Bibliotheken 
für das Zielsystem zu gross sind.

Ergänzung zum ersten Posting: Bisher verwendet das Programm eine 
Übersetzung auf Basis von direkt im Quellcode hinterlegten Arrays und 
Tabellen. Diese Lösung wird mit steigender Anzahl der unterstützten 
Sprachen immer unflexibler. Es wäre schön, die Übersetzung vom Code zu 
trennen.

Eine Möglichkeit wäre die Herauslösung des Parsers für die .mo-Dateien 
von gettext. Hat jemand mit dieser Lösung schon Erfahrungen.

Grüsse aus dem Hegau,

Andreas Freiser

von Bartli (Gast)


Lesenswert?

> Bisher ist es mir nicht gelungen, gettext herauszulösen und gegen den
> verwendeten GCC mit newlib zu linken.

Naja, da brauchts in erster Linie Hartnäckigkeit...eine um die andere 
GNU Libc oder Unixspezifische Funktion ersetzen durch ne ANSI C Funktion 
oder einen Eigenbau. Aber ist schon klar, das kann bei etwas in der 
Grösse von gettext schon hässlich sein bis es läuft.

von Bartli (Gast)


Lesenswert?

> Eine Möglichkeit wäre die Herauslösung des Parsers für die .mo-Dateien
> von gettext. Hat jemand mit dieser Lösung schon Erfahrungen.

http://www.gnu.org/software/gettext/manual/html_node/MO-Files.html

Sieht nicht so kompliziert aus, ausserdem kannst du ja auf den gettext 
Quellcode zurückgreifen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.