[PD-dev] locales and iemgui
Hans-Christoph Steiner
hans at eds.org
Tue Jan 6 01:27:09 CET 2009
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
>
More information about the Pd-dev
mailing list