diff options
Diffstat (limited to 'icons/create_titles.pl')
-rwxr-xr-x | icons/create_titles.pl | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/icons/create_titles.pl b/icons/create_titles.pl new file mode 100755 index 00000000..437171cd --- /dev/null +++ b/icons/create_titles.pl @@ -0,0 +1,68 @@ +#!/usr/bin/perl + +# For faster multiple execs, start a gimp, and do Xtns/Perl/Server. +# Warning! Error message are the worst ever. Unquote the "set_trace" if you need troubleshooting. + +use Gimp qw(:consts main xlfd_size :auto); +use MDK::Common; + +Gimp::init(); +#Gimp::set_trace(TRACE_ALL); + +$| = 1; + +sub create_file { + my ($backimg, $fontname, $text, $outfile) = @_; + my $img = gimp_file_load($backimg, $backimg); + gimp_palette_set_foreground([255, 255, 255]); + my $layer = gimp_text_fontname($img, -1, 0, 10, $text, 0, 1, 250, 1, $fontname); + my $width = gimp_drawable_width($layer); + gimp_image_merge_visible_layers($img, 0); + gimp_crop($img, $width, 40, 0, 0); + gimp_file_save($img, gimp_image_active_drawable($img), $outfile, $outfile); +} + +my $wd = chomp_(`pwd`); + +my $font = 'SOME NICE FONT'; +my %meuh = (install => 'Software Packages Installation', remove => 'Software Packages Removal', update => 'Mandrake Update'); + +mkdir "title/en"; +create_file("$wd/title-back.png", $font, $meuh{$_}, "$wd/title/en/title-$_.png") foreach keys %meuh; + +foreach my $po (glob('../po/*.po')) { + my ($poname) = $po =~ m|/([^/\.]+)\.po$|; + print "[$poname] "; + my $charset; + my @lines = cat_($po); + foreach (@lines) { + /^"Content-Type: .*; charset=(.*)/ and $charset = $1; + } + if ($charset =~ /^(iso-8859-15?)|(utf-8)/i) { + foreach my $k (keys %meuh) { + my $str = $meuh{$k}; + my $i18n; + each_index { /^msgid "\Q$str/ && ($lines[$::i-1] !~ /fuzzy/) and $i18n = $lines[$::i+1] } @lines; + if ($i18n =~ /^msgstr "(.+)"$/) { + $i18n = $1; + if ($charset =~ /^utf-8/i) { + output("/tmp/create_titles_temp", $i18n); + $i18n = `iconv -f UTF8 -t iso-8859-1 /tmp/create_titles_temp 2>/dev/null`; + $? and next; + } + mkdir "title/$poname"; + create_file("$wd/title-back.png", + $font, + $i18n, + "$wd/title/$poname/title-$k.png"); + print "."; + } + } + } else { + print "- ignoring, charset is not iso-8859-1 or UTF8\n"; + } + print "\n"; +} + +Gimp::end(); + |