Ok, responding to myself again :D It turns out that msgcat has been part of Tcl since 8.1:
http://tcl.tk/man/tcl8.4/TclCmd/msgcat.htm It looks like this is definitely the way to handle locales. .hc On Jan 5, 2009, at 7:18 PM, Hans-Christoph Steiner wrote: > > Actually, I just found out that the GNU gettext utils for .po files > are included in Tcl/Tk in a package called "msgcat". Here's a > little bit more on the topic: > > http://www.gnu.org/software/automake/manual/gettext/Tcl.html > > .hc > > On Jan 5, 2009, at 4:33 PM, Hans-Christoph Steiner wrote: > >> >> Hey Chun, all, >> >> I am thinking that for adding locales to pd-devel, we should leave >> iemgui out of it. It is very messy code that has a lot of legacy >> use, so that the iemgui stuff would need to have full backwards >> compatibility. Instead, I think we should build a new GUI library >> that includes locale support. In the process we could make a >> locale API for people who want to write their own GUI objects and >> include translations. I have almost the whole framework for such a >> library finished, its called 'tkwidgets'. >> >> Perhaps it makes sense to use the standard .po file format for >> locales, its pretty simple and would be easy to parse in Tcl. I >> imagine there are tools for working with .po files, so then we >> could use those. Then init_locale() could read the .po into a >> hashtable, i.e. $hashtable($key). My guess is that a big hashtable >> would be faster than the current say() procedure, but I could be >> wrong. >> >> Or maybe a locale namespace makes more sense, it would just be lots >> of variable names, something like: >> >> namespace eval ::pd_locale:: { >> variable file_new >> variable file_open >> variable file_save >> variable file_saveas >> ... >> variable edit_undo >> variable edit_redo >> variable edit_cut >> variable edit_copy >> ... >> variable put_object >> variable put_message >> variable put_numberbox >> variable put_symbolbox >> variable put_comment >> ... >> } >> >> Then to use them: >> >> $rootmenu add command -label $::pd_locale::file_new -accelerator >> "$accelerator+N" >> $rootmenu add command -label $::pd_locale::file_open -accelerator >> "$accelerator+O" >> $rootmenu add command -label $::pd_locale::file_save -accelerator >> "$accelerator+S" >> >> But I suppose it might make more sense to programmatically declare >> the 'variable's. >> >> .hc > _______________________________________________ Pd-dev mailing list [email protected] http://lists.puredata.info/listinfo/pd-dev
