summaryrefslogtreecommitdiff
path: root/po/po2msg.sh
diff options
context:
space:
mode:
Diffstat (limited to 'po/po2msg.sh')
-rwxr-xr-xpo/po2msg.sh133
1 files changed, 0 insertions, 133 deletions
diff --git a/po/po2msg.sh b/po/po2msg.sh
deleted file mode 100755
index c63248e375..0000000000
--- a/po/po2msg.sh
+++ /dev/null
@@ -1,133 +0,0 @@
-#!/bin/sh
-# Tcl ignores the next line -*- tcl -*- \
-exec tclsh "$0" -- "$@"
-
-# This is a really stupid program, which serves as an alternative to
-# msgfmt. It _only_ translates to Tcl mode, does _not_ validate the
-# input, and does _not_ output any statistics.
-
-proc u2a {s} {
- set res ""
- foreach i [split $s ""] {
- scan $i %c c
- if {$c<128} {
- # escape '[', '\' and ']'
- if {$c == 0x5b || $c == 0x5d} {
- append res "\\"
- }
- append res $i
- } else {
- append res \\u[format %04.4x $c]
- }
- }
- return $res
-}
-
-set output_directory "."
-set lang "dummy"
-set files [list]
-set show_statistics 0
-
-# parse options
-for {set i 0} {$i < $argc} {incr i} {
- set arg [lindex $argv $i]
- if {$arg == "--statistics"} {
- incr show_statistics
- continue
- }
- if {$arg == "--tcl"} {
- # we know
- continue
- }
- if {$arg == "-l"} {
- incr i
- set lang [lindex $argv $i]
- continue
- }
- if {$arg == "-d"} {
- incr i
- set tmp [lindex $argv $i]
- regsub "\[^/\]$" $tmp "&/" output_directory
- continue
- }
- lappend files $arg
-}
-
-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
- }
-
- if {$msgid == ""} {
- 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"]
- fconfigure $in -encoding utf-8
- set out [open $outfile "w"]
-
- set mode ""
- while {[gets $in line] >= 0} {
- if {[regexp "^#" $line]} {
- if {[regexp ", fuzzy" $line]} {
- set fuzzy 1
- } else {
- flush_msg
- }
- continue
- } elseif {[regexp "^msgid \"(.*)\"$" $line dummy match]} {
- flush_msg
- set msgid $match
- set mode "msgid"
- } elseif {[regexp "^msgstr \"(.*)\"$" $line dummy match]} {
- set msgstr $match
- set mode "msgstr"
- } elseif {$line == ""} {
- flush_msg
- } elseif {[regexp "^\"(.*)\"$" $line dummy match]} {
- if {$mode == "msgid"} {
- append msgid $match
- } elseif {$mode == "msgstr"} {
- append msgstr $match
- } else {
- puts stderr "I do not know what to do: $match"
- }
- } else {
- puts stderr "Cannot handle $line"
- }
- }
- flush_msg
- close $in
- close $out
-}
-
-if {$show_statistics} {
- puts [concat "$translated_count translated messages, " \
- "$fuzzy_count fuzzy ones, " \
- "$not_translated_count untranslated ones."]
-}