X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=po%2Fpo2msg.sh;h=1e9f992528153fa62c167db8f8e8c184e7df86bd;hb=ab2d3b0d7d29bcdfd5c710cd762d90e78d5fc917;hp=91d420b4fbda333856dba25e8b112d37e4a0eb0c;hpb=9a25ae82dd635957e40e2d29ea5022d25fb6c2b0;p=git.git diff --git a/po/po2msg.sh b/po/po2msg.sh index 91d420b4f..1e9f99252 100644 --- a/po/po2msg.sh +++ b/po/po2msg.sh @@ -11,8 +11,8 @@ proc u2a {s} { foreach i [split $s ""] { scan $i %c c if {$c<128} { - # escape '[', '\' and ']' - if {$c == 0x5b || $c == 0x5d} { + # escape '[', '\', '$' and ']' + if {$c == 0x5b || $c == 0x5d || $c == 0x24} { append res "\\" } append res $i @@ -26,11 +26,17 @@ proc u2a {s} { set output_directory "." set lang "dummy" set files [list] +set show_statistics 0 # parse options -for {set i 1} {$i < $argc} {incr i} { +for {set i 0} {$i < $argc} {incr i} { set arg [lindex $argv $i] - if {$arg == "--statistics" || $arg == "--tcl"} { + if {$arg == "--statistics"} { + incr show_statistics + continue + } + if {$arg == "--tcl"} { + # we know continue } if {$arg == "-l"} { @@ -49,12 +55,14 @@ for {set i 1} {$i < $argc} {incr i} { proc flush_msg {} { global msgid msgstr mode lang out fuzzy + global translated_count fuzzy_count not_translated_count if {![info exists msgid] || $mode == ""} { return } set mode "" if {$fuzzy == 1} { + incr fuzzy_count set fuzzy 0 return } @@ -63,15 +71,20 @@ proc flush_msg {} { set prefix "set ::msgcat::header" } else { if {$msgstr == ""} { + incr not_translated_count return } set prefix "::msgcat::mcset $lang \"[u2a $msgid]\"" + incr translated_count } puts $out "$prefix \"[u2a $msgstr]\"" } set fuzzy 0 +set translated_count 0 +set fuzzy_count 0 +set not_translated_count 0 foreach file $files { regsub "^.*/\(\[^/\]*\)\.po$" $file "$output_directory\\1.msg" outfile set in [open $file "r"] @@ -113,3 +126,27 @@ foreach file $files { close $out } +if {$show_statistics} { + set str "" + + append str "$translated_count translated message" + if {$translated_count != 1} { + append str s + } + + if {$fuzzy_count > 1} { + append str ", $fuzzy_count fuzzy translation" + if {$fuzzy_count != 1} { + append str s + } + } + if {$not_translated_count > 0} { + append str ", $not_translated_count untranslated message" + if {$not_translated_count != 1} { + append str s + } + } + + append str . + puts $str +}