$| = 1;
+use POSIX;
use DB_File;
use File::Path;
use Data::Dumper;
use Deb::Versions;
use Packages::Template;
-use Packages::Config qw( $TOPDIR );
-use Packages::CGI;
+use Packages::Config qw( $TOPDIR @LANGUAGES );
+use Packages::I18N::Locale;
&Packages::Config::init( './' );
my $debtagsdir = "$TOPDIR/files/debtags";
my $wwwdir = "$TOPDIR/www/about";
$/ = "";
-delete $ENV{'LANGUAGE'};
-delete $ENV{'LANG'};
-delete $ENV{'LC_ALL'};
-delete $ENV{'LC_MESSAGES'};
+sub process_desc {
+ my ($desc) = @_;
+
+ if ($desc) {
+ $desc = encode_entities($desc);
+
+ $desc =~ s,((ftp|http|https)://[\S~-]+?/?)((\>\;)?[)]?[']?[:.\,]?(\s|$)),<a href=\"$1\">$1</a>$3,go; # syntax highlighting -> '];
+ $desc =~ s/\A //o;
+ $desc =~ s/\n /\n/sgo;
+ $desc =~ s/\n.\n/\n<p>\n/go;
+ $desc =~ s/(((\n|\A) [^\n]*)+)/\n<pre>$1\n<\/pre>/sgo;
+ }
+ return $desc;
+}
print "Parsing Vocabulary...\n";
tie %voc_db, "DB_File", "$debtagsdir/vocabulary.db.new",
warn "Duplicated key found: $voc_key\n";
next;
}
- my ($sdesc,$ldesc) = split /\n/, encode_entities($data{description}), 2;
-
- if ($ldesc) {
- $ldesc =~ s,((ftp|http|https)://[\S~-]+?/?)((\>\;)?[)]?[']?[:.\,]?(\s|$)),<a href=\"$1\">$1</a>$3,go; # syntax highlighting -> '];
- $ldesc =~ s/\A //o;
- $ldesc =~ s/\n /\n/sgo;
- $ldesc =~ s/\n.\n/\n<p>\n/go;
- $ldesc =~ s/(((\n|\A) [^\n]*)+)/\n<pre>$1\n<\/pre>/sgo;
- }
- $data{html_description} = [ $sdesc, $ldesc||"" ];
+ my ($sdesc,$ldesc) = split /\n/, $data{description}, 2;
+ $data{html_description} = [ encode_entities($sdesc), process_desc($ldesc)||"" ];
$voc_db{$voc_key} = $sdesc || "";
+
+ foreach my $lang (@LANGUAGES) {
+ next if $lang eq 'en';
+
+ my $cat = Packages::I18N::Locale->get_handle($lang)
+ or die "get_handle failed for $lang";
+
+ my $sdesc_trans = $cat->maketext($sdesc);
+ $voc_db{"$voc_key-$lang"} = $sdesc_trans
+ if $sdesc_trans and $sdesc_trans ne $sdesc;
+ }
+
$voc{$voc_key} = \%data;
}
my @tags = sort( grep { exists $voc{$_}{tag} } keys %voc );
my %tags_by_facet;
foreach (@tags) {
- my ($facet, $tag) = split /::/, $_, 2;
+ my ($facet, $tag) = split m/::/, $_, 2;
warn "No facet data available for $facet\n"
unless exists $voc{$facet};
$tags_by_facet{$facet} ||= [];