home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga MA Magazine 1998 #6
/
amigamamagazinepolishissue1998.iso
/
coders
/
c2local
/
example
/
beispiel.dok
next >
Wrap
Text File
|
1977-12-31
|
2KB
|
94 lines
Als Beispiel soll hier das bekannt Hello-World Programm lokalisiert werden.
Dabei soll der Text "This is a short text!" durch den Text
"Dies ist ein langer Text, der eine neue Maximallänge erfordert." ersetzt
werden.
#include <stdio.h>
#include <stdlib.h>
char *p="This is a short text!";
main()
{
puts("Hello world!");
puts(p);
}
Dazu muß man zuerst einmal InitStrings() in die main-Routine einbauen.
Damit dieser Sourcecode auch noch normal compiliert werden kann fügt man
es am besten mit #ifdef und #endif geklammert ein.
#include <stdio.h>
#include <stdlib.h>
char *p="This is a short text";
main()
{
#ifdef __LOCALIZED
InitStrings();
#endif
puts("Hello world!");
puts(p);
}
Nun läßt man den Sourcecode patchen:
c2local patch hello.c name hello
Da die Länge des deutschen Textes in *p länger als die automatisch
reservierte Länge ist, muß man das Stringfile editieren:
ed hello_locale.str:
msg_0 "This is a short text!" 63
Nun compiliert man das Stringfile:
c2local compile name hello version 1 catalog hello.catalog
Jetzt kann man das lokalisierte Programm compilieren:
cd localized
sc #?.c link
Danach erstellt man die deutsche Übersetzung (nicht vergessen die Sprache
"## language deutsch" einzustellen):
copy hello_locale.ct hello_deutsch.ct
ed hello_deutsch.ct
Und daraus erzeugt man den Katalog, nachdem man die passenden Katalog-
Verzeichnisse angelegt hat.
makedir catalogs
makedir catalogs/deutsch
ccomp hello_locale.cd hello_deutsch.ct catalogs/deutsch/hello.catalog
Das war schon alles. (Genau dies wird auch durch das makelocal-script
ausgeführt.
Falls das Programm nun trotz Einstellung der Sprache deutsch keine deutschen
Strings verwendet:
- befindet sich der Katalog im richtigen Verzeichnis ?
- stimmt der Name des Katalogs ?
- stimmt die Version des Katalogs ?
- ist im .ct-file die Sprache eingetragen, Tippfehler ?
- ist noch ein alter Katalog im Speicher (evtl. "avail flush") ?