Code

po2msg: ignore entries marked with "fuzzy"
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>
Tue, 30 Oct 2007 11:24:37 +0000 (11:24 +0000)
committerShawn O. Pearce <spearce@spearce.org>
Thu, 1 Nov 2007 04:00:30 +0000 (00:00 -0400)
As Christian Stimming pointed out, entries which are "fuzzy" need to
be checked by human translators, and cannot be used.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
po/po2msg.sh

index da0765dd8020af359c1f47e8f2ae2e4e72a9ce5b..48a2669967c77980f7953c886203e5deee96289b 100644 (file)
@@ -48,12 +48,16 @@ for {set i 1} {$i < $argc} {incr i} {
 }
 
 proc flush_msg {} {
-       global msgid msgstr mode lang out
+       global msgid msgstr mode lang out fuzzy
 
        if {![info exists msgid] || $mode == ""} {
                return
        }
        set mode ""
+       if {$fuzzy == 1} {
+               set fuzzy 0
+               return
+       }
 
        if {$msgid == ""} {
                set prefix "set ::msgcat::header"
@@ -64,6 +68,7 @@ proc flush_msg {} {
        puts $out "$prefix \"[u2a $msgstr]\""
 }
 
+set fuzzy 0
 foreach file $files {
        regsub "^.*/\(\[^/\]*\)\.po$" $file "$output_directory\\1.msg" outfile
        set in [open $file "r"]
@@ -73,7 +78,11 @@ foreach file $files {
        set mode ""
        while {[gets $in line] >= 0} {
                if {[regexp "^#" $line]} {
-                       flush_msg
+                       if {[regexp ", fuzzy" $line]} {
+                               set fuzzy 1
+                       } else {
+                               flush_msg
+                       }
                        continue
                } elseif {[regexp "^msgid \"(.*)\"$" $line dummy match]} {
                        flush_msg