aboutsummaryrefslogtreecommitdiffstats
path: root/icons/create_titles.pl
diff options
context:
space:
mode:
Diffstat (limited to 'icons/create_titles.pl')
-rwxr-xr-xicons/create_titles.pl68
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();
+