#!/usr/bin/perl # # po2abi.pl # # Converts a po file as produced by abi2po into an AbiWord # localised strings file $abiroot = "."; while (){ if (/^#: (.*)/){ $msgid = $1; #print "id=$msgid:"; } elsif (/^msgstr \"(.*)\"/) { $string = $1; $string =~ s/&/&/mg; $string =~ s/\\t/ /mg; $string =~ s/\\n/ /mg; $string =~ s/\\"/"/mg; $string =~ s//>/mg; $strings{$msgid} = $string; #print "str=$string\n"; } } close(STDIN); $targetLang = $ARGV[0]; #print "lang=$targetLang\n"; print "\n\n". "\n". "\n". "\n". "\n". "\n". "\n". "\n\n"; if (open(CREDITS, "< $abiroot/$targetLang.credits")){ while (){ print "$_"; } close(CREDITS); } else { print "\n"; } print "\n\n"; print "\n\n"; ## en-US is in a different file in a different format my $lang = 'en-US'; print ") { next unless /\((.*)\s*,\s*\"(.*)\"/; my ($msgid,$string) = ($1,$2); print "$msgid=\"$strings{$msgid}\"\n"; } close(STRINGS); print "/>\n\n"; print ") { next unless /\((.*)\s*,\s*\"(.*)\"/; my ($msgid,$string) = ($1,$2); print "$msgid=\"$strings{$msgid}\"\n"; } close(STRINGS2); print "/>\n\n"; print "\n\n";