From be05848488b9d81df046d2adadb671f4ee34315c Mon Sep 17 00:00:00 2001 From: Frank Lichtenheld Date: Thu, 21 Aug 2008 14:43:33 +0200 Subject: [PATCH] debtags-xgettext: Handle linebreaks (and other whitespace) a little more sanely 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 | 4 +++- bin/fix_old_debtags_po | 12 ++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100755 bin/fix_old_debtags_po diff --git a/bin/debtags-xgettext b/bin/debtags-xgettext index a7f718b..329288b 100755 --- a/bin/debtags-xgettext +++ b/bin/debtags-xgettext @@ -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 index 0000000..86153b1 --- /dev/null +++ b/bin/fix_old_debtags_po @@ -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 -- 2.39.2