Your message dated Sun, 28 Oct 2012 01:58:02 +0200
with message-id 
<CAMqf4EEmOFtFep_PvA-nD4=vveofbdvebrujn5f0bfbhsgb...@mail.gmail.com>
and subject line Re: Bug#568528: po4a: unsplit split mode?
has caused the Debian Bug report #568528,
regarding po4a: patch to support a single centralized catalog
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
568528: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=568528
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: po4a
Version: 0.39-1
Tags: patch

Currently, split mode is moderately useful, because it is based on the
assumption than people want to have their split pofiles as
a source for their translations.

The attached patch reuses existing code for split mode, but uses
the assumption that the central pofile is the one we want to use for
translating (and we keep the central pot around for the same reason).
Split pofiles can then be considered as pure products of the po4a run (and
manual changes to them are lost - if you don't want that, you want the
existing split mode).

It can be used eg. as follows:

[po4a_paths] $master/l10n/$master.pot $lang:$master/l10n/.$lang.po
centralpot:l10n/messages.pot central_$lang:l10n/$lang.po

Note that because of the way things are parsed, central_$lang must come
last, and centralpot just before it. (a similar comment applies to my
patch to #564245)


commit f120ed9011168ec26c0f68602cbf059383d23142
Author: Yann Dirson <[email protected]>
Date:   Fri Feb 5 15:19:14 2010 +0100

    Po4a: add support for 'centralpot:' and 'central_$lang' in po4a_paths declarations.

diff --git a/l10n/po4a b/l10n/po4a
index 37449fb..7ed9581 100644
--- a/l10n/po4a
+++ b/l10n/po4a
@@ -704,6 +704,8 @@ my (%aliases); # module aliases ([po4a_alias:...]
 my ($pot_filename) = "";
 my (%po_filename); # po_files: '$lang'=>'$path'
 my (%document); # '$master'=> {'format'=>'$format'; '$lang'=>'$path'; 'add_$lang'=>('$path','$path') }
+my ($central_pot); # central potfile to be kept
+my (%central_po); # '$master'=> central pofile to be kept
 my $doc_count = 0;
 open CONFIG,"<","$config_file" or die wrap_msg(gettext("Can't open %s: %s"), $config_file, $!);
 my ($line,$nb) = ("",0);
@@ -757,6 +759,21 @@ while (<CONFIG>) {
 	    gettext("'%s' redeclared"), "po4a_path")
 	  if (length $pot_filename);
 	$pot_filename = $main;
+
+	# Extract lang-specific central catalog.
+	if ($args =~ m/^(.*?) +(?:central(?:_(.+))?:(\S*))\s*$/) {
+	    $args = $1;
+	    $args = "" unless defined $args;
+	    $central_po{$2} = $3;
+	}
+
+	# Extract central pot catalog.
+	if ($args =~ m/^(.*?) +(?:centralpot:(\S*))\s*$/) {
+	    $args = $1;
+	    $args = "" unless defined $args;
+	    $central_pot = $2;
+	}
+
 	foreach my $arg (split(/ /,$args)) {
 	    die wrap_ref_mod("$config_file:$nb", "",
 		gettext("Unparsable argument '%s'."), $arg)
@@ -1150,6 +1167,12 @@ if ($po4a_opts{"split"}) {
         chdir $po4a_opts{"calldir"}
             if (defined $po4a_opts{"srcdir"});
     }
+    # Generate a big pot if required
+    if (defined $central_pot) {
+	my $cmd = "msgcat --use-first -o ".$central_pot." ".
+	    join(" ", map { $split_pot{$_} or "" } keys %document);
+	run_cmd($cmd);
+    }
     # Generate a complete .po
     foreach my $lang (sort keys %po_filename) {
         my $tmp_bigpo;
@@ -1177,7 +1200,11 @@ if ($po4a_opts{"split"}) {
             run_cmd($cmd_cat);
         }
         # We do not need to keep the original name with $master
-        $po_filename{$lang} = $tmp_bigpo;
+        if (defined $central_pot and defined $central_po{$lang}) {
+            $po_filename{$lang} = $central_po{$lang};
+        } else {
+            $po_filename{$lang} = $tmp_bigpo;
+        }
     }
 }
 
@@ -1455,9 +1482,13 @@ if (not $po4a_opts{"no-translations"}) {
 if ($po4a_opts{"split"}) {
     chdir $po4a_opts{"srcdir"}
 	if (defined $po4a_opts{"srcdir"});
-    # We don't need the tmp big POs anymore
-    foreach $lang (keys %po_filename) {
-        unlink $po_filename{$lang};
+    unless (defined $central_pot) {
+        foreach $lang (keys %po_filename) {
+            unless (defined $central_po{$lang}) {
+                # That big PO is a tmp one, we don't need it anymore
+                unlink $po_filename{$lang};
+            }
+        }
     }
     chdir $po4a_opts{"calldir"}
 	if (defined $po4a_opts{"srcdir"});

--- End Message ---
--- Begin Message ---
Hello,

Like Nicolas and David, I do not understand this bugreport.  I am
closing it now, please explain why you need this patch if you
disagree.
If you want a central PO file, you already may either not use the
splitted mode, or pass --msgmerge-opt --compendium =file.po flag.

Denis

--- End Message ---

Reply via email to