Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Lokalisierung

1 view
Skip to first unread message

Thomas...@cologne.de

unread,
Jun 20, 2001, 2:53:47 AM6/20/01
to
Sebastian Stein <s5...@informatik.htw-dresden.de> wrote:

>In welche NG passt das besser...?

de.comp.os.unix.programming (wegen der Antwort, nicht wegen der Frage :-)
F'up.

>Wenn ich ein Programm in mehrere Sprachen uebersetzen will, dann wäre es ja
>Wahnsinn, wenn ich jedesmal den Quellcode ändern würde. Wie macht man sowas
>allgemein und speziell in C? Lagert man alle Strings in eine extra Datei
>aus und bindet bei der Kompilierung nur die benötigten mit ein und gibt
>diese über eine spezielle Funktion aus?

Eine derartige Funktionalität gibt es in ISO-C nicht. In POSIX ist
so etwas spezifiziert worden, und GNU hat das als gettext - Paket
implementiert.

Gunnar Ritter

unread,
Jun 20, 2001, 1:32:24 PM6/20/01
to
Thomas...@cologne.de <Thomas...@cologne.de> wrote:

>>Wenn ich ein Programm in mehrere Sprachen uebersetzen will, dann wäre es ja
>>Wahnsinn, wenn ich jedesmal den Quellcode ändern würde. Wie macht man sowas
>>allgemein und speziell in C? Lagert man alle Strings in eine extra Datei
>>aus und bindet bei der Kompilierung nur die benötigten mit ein und gibt
>>diese über eine spezielle Funktion aus?
>
> Eine derartige Funktionalität gibt es in ISO-C nicht. In POSIX ist
> so etwas spezifiziert worden,

Nicht ganz. POSIX.1 beschäftigt sich überhaupt nicht damit, in POSIX.2
wird zwar LC_MESSAGES definiert, nicht aber die Funktionalität, das in
C zu nutzen. Die X/Open Portability Guides bis hin zur aktuellen SUSv2
spezifizieren catgets(XSH) usw. Dann gibt es noch gettxt(BA_LIB) in
der SVID ab Version 3.

> und GNU hat das als gettext - Paket implementiert.

Ein Standard, der gettext() umfaßt, ist mir nicht bekannt. Über die
tatsächliche Portabilität sagt das in diesem Fall aber wenig aus.

Grüße,
Gunnar

Sebastian Stein

unread,
Jun 20, 2001, 2:12:58 PM6/20/01
to
Thomas...@cologne.de wrote:
> Eine derartige Funktionalität gibt es in ISO-C nicht. In POSIX ist
> so etwas spezifiziert worden, und GNU hat das als gettext - Paket
> implementiert.

Das bringt es dann nicht, da mein Programm unbedingt sowohl unter Win als
auch unter Linux kompilieren muss. Muss mir wahrscheinlich eine eigene
Funktion schreiben und die einzelnen Textstrings per Makro definieren.

Steinchen
--
http://www.hpfsc.de/ - die Seite rund um:
Assembler, Bundeswehr, TFT LCDs, Halle/Saale, Fahrradtouren, Wanderstaat
Mauma, Raumschiff USS Nathan, Enemy Room, MLCAD Tutorial

Sven Geggus

unread,
Jun 20, 2001, 7:40:06 PM6/20/01
to
Sebastian Stein <s5...@informatik.htw-dresden.de> wrote:
> Das bringt es dann nicht, da mein Programm unbedingt sowohl unter Win als
> auch unter Linux kompilieren muss. Muss mir wahrscheinlich eine eigene
> Funktion schreiben und die einzelnen Textstrings per Makro definieren.

Warum? Cygwin sollte fast alle GNU Funktionalitaet auch unter Windows zur
Verfuegung stellen.

Sven

--
"Software is like sex; it's better when it's free"
(Linus Torvalds)

/me is giggls@ircnet, http://geggus.net/sven/ on the Web

Sebastian Stein

unread,
Jun 21, 2001, 3:07:06 AM6/21/01
to
Sven Geggus wrote:

> Sebastian Stein <s5...@informatik.htw-dresden.de> wrote:
>> Das bringt es dann nicht, da mein Programm unbedingt sowohl unter Win als
>> auch unter Linux kompilieren muss. Muss mir wahrscheinlich eine eigene
>> Funktion schreiben und die einzelnen Textstrings per Makro definieren.
>
> Warum? Cygwin sollte fast alle GNU Funktionalitaet auch unter Windows zur
> Verfuegung stellen.

Wird cygwin nur während der Kompilierung benötigt, oder muss der User es
auch auf seinem Computer installiert haben, um mein Programm nutzen zu
können. (also statisch oder dynamisch gelinkt?)

2. Fall wäre nicht akzeptabel, da Aufwand und Nutzen für den User dann
nicht stimmen würden.

Felix von Leitner

unread,
Jun 21, 2001, 10:05:42 AM6/21/01
to
Thus spake Sebastian Stein (s5...@informatik.htw-dresden.de):

> > Warum? Cygwin sollte fast alle GNU Funktionalitaet auch unter Windows zur
> > Verfuegung stellen.
> Wird cygwin nur während der Kompilierung benötigt, oder muss der User es
> auch auf seinem Computer installiert haben, um mein Programm nutzen zu
> können. (also statisch oder dynamisch gelinkt?)

Ja.

Gibt es eigentlich einen Grund, wieso du dir cygwin nicht einfach
angeguckt hast sondern hier überflüssige Fragen postest?

Felix

Andreas Ferber

unread,
Jul 13, 2001, 3:42:48 PM7/13/01
to
* Gunnar Ritter <g...@bigfoot.de> schrieb:

>
>> und GNU hat das als gettext - Paket implementiert.
> Ein Standard, der gettext() umfaßt, ist mir nicht bekannt. Über die
> tatsächliche Portabilität sagt das in diesem Fall aber wenig aus.

gettext ist allerdings so klein, daß es i.d.R. bei Verwendung dann auch
in den Distributionstarball mit reingepackt wird. Damit wird das
Gesamtkonstrukt dann wieder portabel (ausreichende Portabilität von
gettext vorausgesetzt, aber ich halte es eher für unwahrscheinlich, daß
es daran scheitern wird).

Andreas
--
Andreas Ferber - dev/consulting GmbH - Bielefeld, FRG
---------------------------------------------------------
+49 521 1365800 - a...@devcon.net - www.devcon.net

Gunnar Ritter

unread,
Jul 13, 2001, 5:03:28 PM7/13/01
to
Andreas Ferber <afe...@techfak.uni-bielefeld.de> wrote:

> * Gunnar Ritter <g...@bigfoot.de> schrieb:
>>> und GNU hat das als gettext - Paket implementiert.
>> Ein Standard, der gettext() umfaßt, ist mir nicht bekannt. Über die
>> tatsächliche Portabilität sagt das in diesem Fall aber wenig aus.
>
> gettext ist allerdings so klein, daß es i.d.R. bei Verwendung dann auch
> in den Distributionstarball mit reingepackt wird.

Mit scheint, unsere Vorstellungen von »klein« divergieren um mehrere
Größenordnungen.

> Damit wird das Gesamtkonstrukt dann wieder portabel (ausreichende
> Portabilität von gettext vorausgesetzt, aber ich halte es eher für
> unwahrscheinlich, daß es daran scheitern wird).

GNU gettext steht seit gut einem Jahr unter der GPL (nicht LGPL) und
kommt deshalb für viele Projekte von vornherein nicht mehr in Frage.

Grüße,
Gunnar

0 new messages