diff options
Diffstat (limited to 'pixseen/pixseen-msggen.tcl')
| -rw-r--r-- | pixseen/pixseen-msggen.tcl | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/pixseen/pixseen-msggen.tcl b/pixseen/pixseen-msggen.tcl new file mode 100644 index 0000000..5766009 --- /dev/null +++ b/pixseen/pixseen-msggen.tcl @@ -0,0 +1,85 @@ +#!/bin/sh +# the next line restarts using tclsh \ +exec tclsh8.5 "$0" "$@" + +encoding system {utf-8} + +set fd [open pixseen.tcl r] +set data [read $fd] +close $fd + +set msgList {} +foreach {- item} [regexp -all -inline -- {\[mc \{([^\}]+)\}} $data] { + if {[lsearch -exact $msgList $item] == -1} { + lappend msgList $item + } +} + +# generate en.msg + +set fd [open pixseen-msgs/en.msg w] +fconfigure $fd -translation lf -encoding {utf-8} +puts $fd "# en.msg - automatically generated by pixseen-msggen.tcl on [clock format [clock seconds] -timezone UTC]\n" +puts $fd "namespace eval ::pixseen \{" +puts $fd "\tvariable lang \"en\"" +foreach item $msgList { + puts $fd "\n\tmcset \$lang \\" + puts $fd "\t\t\{$item\} \\" + puts $fd "\t\t\{$item\}" +} +puts $fd "\n\}" +close $fd + +# generate en_US_bork.msg + +proc chef {args} { + set subs [list {a([nu])} {u\1}\ + {A([nu])} {U\1}\ + {a\Y} e\ + {A\Y} E\ + {en\y} ee\ + {\Yew} oo\ + {\Ye\y} e-a\ + {\ye} i\ + {\yE} I\ + {\Yf} ff\ + {\Yir} ur\ + {(\w+?)i(\w+?)$} {\1ee\2}\ + {\Yow} oo\ + {\yo} oo\ + {\yO} Oo\ + {^the$} zee\ + {^The$} Zee\ + {th\y} t\ + {\Ytion} shun\ + {\Yu} {oo}\ + {\YU} {Oo}\ + v f\ + V F\ + w w\ + W W\ + {([a-z])[.]} {\1. Bork Bork Bork!}] + foreach word $args { + foreach {exp subSpec} $subs { + set word [regsub -all -- $exp $word $subSpec] +# puts "$exp || $subSpec -> $word" + } + lappend retval $word + } + return [join $retval] +} + +set fd [open pixseen-msgs/en_us_bork.msg w] +fconfigure $fd -translation lf -encoding {utf-8} +puts $fd "# en_US_bork.msg - automatically generated by pixseen-msggen.tcl on [clock format [clock seconds] -timezone UTC]\n" +puts $fd "namespace eval ::pixseen \{" +puts $fd "\tvariable lang \"en_us_bork\"" +foreach item $msgList { + puts $fd "\n\tmcset \$lang \\" + puts $fd "\t\t\{$item\} \\" + puts $fd "\t\t\{[chef $item]\}" +} +puts $fd "\n\}" + +close $fd + |
