]> git.deb.at Git - deb/packages.git/commitdiff
debtags-xgettext: Handle linebreaks (and other whitespace) a little more sanely
authorFrank Lichtenheld <frank@lichtenheld.de>
Thu, 21 Aug 2008 12:43:33 +0000 (14:43 +0200)
committerFrank Lichtenheld <frank@lichtenheld.de>
Thu, 21 Aug 2008 12:43:33 +0000 (14:43 +0200)
Do not include linebreaks from the vocabulary file in the msgids.
Replace \n.\n with a single linebreak. Remove the single whitespace
at the beginning of the long description and new paragraphs.

Together these changes should make it easier for translators to translate
the long descriptions.

fix_old_debtags_po: Script to convert the old .po files to the new format
so that translators don't have to do that manually.

bin/debtags-xgettext
bin/fix_old_debtags_po [new file with mode: 0755]

index a7f718b39d421fd80d8d68948b2de4e1a2a18b05..329288b00ab6341bc49c7887fdd9ee9fdc08fbb3 100755 (executable)
@@ -18,7 +18,8 @@ sub escape {
         my $text = shift;
         $text =~ s/\\/\\\\/g;
         $text =~ s/"/\\"/g;
-        $text =~ s/\n/\\n/g;
+        $text =~ s/\n\s*\.\n\s?/\\n/g;
+        $text =~ s/\n//g;
         $text =~ s/\t/\\t/g;
         return $text;
 }
@@ -59,6 +60,7 @@ sub processFile {
 
            if ($long) {
                $long = escape($long);
+               $long =~ s/^\s//;
                push (@msgids, $long);
                push (@{$messages->{$long}}, $comment.", long desc", $file);
            }
diff --git a/bin/fix_old_debtags_po b/bin/fix_old_debtags_po
new file mode 100755 (executable)
index 0000000..86153b1
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+for i in po/debtags.*.po
+do
+       perl -i -p -e 'if (/^\s*$/) { $seen=1 };
+         if ($begin) { s/^"\s/"/ } $begin=0;
+         s/^(msg(id|str) ")\s/$1/;
+         if ($seen) { s/^"\s*\.\\n"/"\001"/g; s/\s*\\n//g; s/\001/\\n/g }
+         if (/^msg(id|str) ""/) { $begin=1 };
+         if (/^"\\n"/) { $begin=2 };
+       ' $i
+done