aboutsummaryrefslogtreecommitdiff
path: root/pixseen/pixseen-msggen.tcl
diff options
context:
space:
mode:
Diffstat (limited to 'pixseen/pixseen-msggen.tcl')
-rw-r--r--pixseen/pixseen-msggen.tcl85
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
+