parse-translations: Fix encoding of Japanese descriptions
authorFrank Lichtenheld <frank@lichtenheld.de>
Sun, 17 Jun 2007 16:48:44 +0000 (18:48 +0200)
committerFrank Lichtenheld <frank@lichtenheld.de>
Sun, 17 Jun 2007 16:48:44 +0000 (18:48 +0200)
They should be in UTF-8, but actually they are in EUC-JP.

bin/parse-translations

index 436e435d1519ab77942ad66b77e1b1ec98c952db..fa9855db14ca200bf38466ceeb6fde23188e706e 100755 (executable)
@@ -32,6 +32,7 @@ use DB_File;
 use Storable;
 use File::Path;
 use Digest::MD5;
+use Text::Iconv;
 use Deb::Versions;
 use Lingua::Stem v0.82;
 use Search::Xapian;
@@ -43,6 +44,8 @@ $/ = "";
 
 -d $DBDIR || mkpath( $DBDIR );
 
+my $fixja = Text::Iconv->new("EUC-JP", "UTF-8");
+
 foreach my $lang (@DDTP_LANGUAGES) {
     print "Reading Translations for $lang...";
     open PKG, "zcat $TOPDIR/archive/*/*/*/i18n/Translation-$lang.gz|";
@@ -63,6 +66,10 @@ foreach my $lang (@DDTP_LANGUAGES) {
        next if exists($descriptions{$data{"description-md5"}}{$lang});
        # some weirdnesses in the files
        next unless defined $data{"description-".lc($lang)};
+       if ($lang eq 'ja') {
+           my $fixed = $fixja->convert($data{"description-ja"});
+           $data{"description-ja"} = $fixed if $fixed;
+       }
        $descriptions{$data{"description-md5"}}{$lang} = $data{"description-".lc($lang)};
        $count++;
     }