Imported Upstream version 1.47.3
[platform/upstream/help2man.git] / build-aux / fixup-texi-pot
index 0e6000b..9ca9ace 100755 (executable)
@@ -1,10 +1,11 @@
 #!/usr/bin/perl
 
 # Post-process the texinfo template to remove some entries which should not be
-# translated.
+# translated.  Add translator notes to cross references.
 
 use strict;
 use warnings;
+use Text::Wrap 'wrap';
 
 *OUT = *STDOUT;
 if (@ARGV and $ARGV[0] =~ /^-o(.*)/)
@@ -29,5 +30,39 @@ while (<>)
     next if /^msgid "\@unmacro/m;
     next if /^msgid "\\\\text\\\\"/m;
 
+    # Options.
+    next if /^msgid "-[a-zA-Z]"/m;
+    next if /^msgid "--[a-z-]+"/m;
+
+    # Other untranslatable strings.
+    next if /^#\. type: author/ and /^msgid "[^@]*\@email\{[^}]*\}"/m;
+    next if /^msgid "help2man"/m;
+    next if /^msgid "\@url\{[^}]*\}(\\n)?"/m;
+
+    # Find cross references and add a note to translators.
+    /^msgid "(.*)/sm or next;
+    my @refs = $1 =~ /\@(?:p?x)?ref\{([^,}]*)\}/g;
+    if (@refs)
+    {
+       for (@refs)
+       {
+           s/"\n"//g;       # remove line breaks
+           $_ = qq/"$_",/;  # add quotes and comma
+       }
+
+       $refs[-1] =~ s/,$//;
+       my $plural = '';
+       if (@refs > 1)
+       {
+           $plural = 's';
+           splice @refs, -1, 0, 'and';
+       }
+
+       my $note = wrap "#. Translators: ", "#. ",
+           "the translated cross-reference$plural @refs here must match the " .
+           " target (type: node) translation$plural elsewhere in this file.";
+       $_ = $note . "\n" . $_;
+    }
+
     print OUT;
 }