summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Katz <katzj@redhat.com>2002-12-03 20:48:03 +0000
committerJeremy Katz <katzj@redhat.com>2002-12-03 20:48:03 +0000
commitd7f878ecd0370b3edfb5da143189d9141d92660a (patch)
treec7abac1c6c103cdcdcae2b2385adf2c7f167f081
parentfda8f4f2f7522b2155a2b0547d0b89dacf10563b (diff)
downloadanaconda-before-loader-switch.tar.gz
anaconda-before-loader-switch.tar.xz
anaconda-before-loader-switch.zip
translations for the loader returnbefore-loader-switch
-rw-r--r--loader2/Makefile18
-rwxr-xr-xloader2/simplemot59
-rw-r--r--loader2/tr/.cvsignore1
3 files changed, 77 insertions, 1 deletions
diff --git a/loader2/Makefile b/loader2/Makefile
index 1af95a3da..b367ae3ac 100644
--- a/loader2/Makefile
+++ b/loader2/Makefile
@@ -58,7 +58,23 @@ COPTS += -DUSE_LOGDEV
ISYSLIB += -lrpc
endif
-all: $(BINS)
+# translation stuff
+LANGS = $(shell awk '{ print $$2 }' ../lang-table | egrep -v '(^en$$)')
+
+TR = $(patsubst %,tr/%.tr,$(LANGS))
+TRFILES = $(patsubst %,%.tr,$(LANGS))
+
+all: $(BINS) loader.tr
+
+loader.tr: $(TR) ../lang-table
+ (cd tr; ls $(TRFILES) | cpio --quiet -Hcrc -o |gzip -9) > $@
+
+tr/%.tr: ../po/%.po loader.po
+ msgmerge $< loader.po | ./simplemot > $@
+
+loader.po: $(wildcard *.c)
+ xgettext --default-domain=loader --add-comments \
+ --keyword=_ --keyword=N_ *.c
init: init.o
$(CC) $(STATIC) $(COPTS) $(LDFLAGS) -o $@ init.o
diff --git a/loader2/simplemot b/loader2/simplemot
new file mode 100755
index 000000000..467020be0
--- /dev/null
+++ b/loader2/simplemot
@@ -0,0 +1,59 @@
+#!/usr/bin/perl
+
+$inone = 0;
+$intran = 0;
+$total = 0;
+while (<>) {
+ if (!$inone && /^msgid/) {
+ chop;
+ $str = substr($_, 7, length($_) - 8);
+ $inone = 1;
+ } elsif ($inone && /^"/) {
+ chop;
+ $str .= substr($_, 1, length($_) - 2);
+ } elsif ($inone) {
+ $inone = 0;
+
+ $str =~ s/\\n/\n/g;
+ $str =~ s/\\t/\t/g;
+ $str =~ s/\\"/"/g;
+
+ # the string is complete -- calculate a hash
+ $sum = 0;
+ $xor = 0;
+ for ($i = 0; $i < length($str); $i++) {
+ $char = ord(substr($str, $i, 1));
+ $sum += $char;
+ $xor ^= $char;
+ }
+
+ $total = ($sum << 16) | (($xor & 0xFF) << 8) | (length($str) & 0xFF);
+ }
+
+ if (!$intran && /^msgstr/) {
+ chop;
+ $tran = substr($_, 8, length($_) - 9);
+ $intran = 1;
+ } elsif ($intran && /^"/) {
+ chop;
+ $tran .= substr($_, 1, length($_) - 2);
+ } elsif ($intran) {
+ $intran = 0;
+
+ $tran =~ s/\\n/\n/g;
+ $tran =~ s/\\t/\t/g;
+ $tran =~ s/\\"/"/g;
+
+ if (!$total && $str) {
+ print STDERR "Missing string for $tran";
+ exit 1
+ } elsif ($str && $tran) {
+ print pack("Nn", $total, length($tran));
+ print $tran;
+
+ #if ($tran < 60) {
+ #printf STDERR ("0x%x %s\n", $total, $tran);
+ #}
+ }
+ }
+}
diff --git a/loader2/tr/.cvsignore b/loader2/tr/.cvsignore
new file mode 100644
index 000000000..596343c4a
--- /dev/null
+++ b/loader2/tr/.cvsignore
@@ -0,0 +1 @@
+*.tr