po2msg: actually output statistics

The "--statistics" option was ignored so far; no longer.  Now we have
a message similar to that of msgfmt.  (Untranslated, though ;-)

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
This commit is contained in:
Johannes Schindelin 2007-10-30 11:25:31 +00:00 committed by Shawn O. Pearce
parent 9a25ae82dd
commit 95a8b67c26

View File

@ -26,11 +26,17 @@ proc u2a {s} {
set output_directory "." set output_directory "."
set lang "dummy" set lang "dummy"
set files [list] set files [list]
set show_statistics 0
# parse options # parse options
for {set i 1} {$i < $argc} {incr i} { for {set i 0} {$i < $argc} {incr i} {
set arg [lindex $argv $i] set arg [lindex $argv $i]
if {$arg == "--statistics" || $arg == "--tcl"} { if {$arg == "--statistics"} {
incr show_statistics
continue
}
if {$arg == "--tcl"} {
# we know
continue continue
} }
if {$arg == "-l"} { if {$arg == "-l"} {
@ -49,12 +55,14 @@ for {set i 1} {$i < $argc} {incr i} {
proc flush_msg {} { proc flush_msg {} {
global msgid msgstr mode lang out fuzzy global msgid msgstr mode lang out fuzzy
global translated_count fuzzy_count not_translated_count
if {![info exists msgid] || $mode == ""} { if {![info exists msgid] || $mode == ""} {
return return
} }
set mode "" set mode ""
if {$fuzzy == 1} { if {$fuzzy == 1} {
incr fuzzy_count
set fuzzy 0 set fuzzy 0
return return
} }
@ -63,15 +71,20 @@ proc flush_msg {} {
set prefix "set ::msgcat::header" set prefix "set ::msgcat::header"
} else { } else {
if {$msgstr == ""} { if {$msgstr == ""} {
incr not_translated_count
return return
} }
set prefix "::msgcat::mcset $lang \"[u2a $msgid]\"" set prefix "::msgcat::mcset $lang \"[u2a $msgid]\""
incr translated_count
} }
puts $out "$prefix \"[u2a $msgstr]\"" puts $out "$prefix \"[u2a $msgstr]\""
} }
set fuzzy 0 set fuzzy 0
set translated_count 0
set fuzzy_count 0
set not_translated_count 0
foreach file $files { foreach file $files {
regsub "^.*/\(\[^/\]*\)\.po$" $file "$output_directory\\1.msg" outfile regsub "^.*/\(\[^/\]*\)\.po$" $file "$output_directory\\1.msg" outfile
set in [open $file "r"] set in [open $file "r"]
@ -113,3 +126,8 @@ foreach file $files {
close $out close $out
} }
if {$show_statistics} {
puts [concat "$translated_count translated messages, " \
"$fuzzy_count fuzzy ones, " \
"$not_translated_count untranslated ones."]
}