[PD-dev] locales and iemgui

Hans-Christoph Steiner hans at eds.org
Mon Jan 12 18:36:38 CET 2009


On Jan 11, 2009, at 11:01 PM, [*~] wrote:

> Hans-Christoph Steiner said :
>>
>> I hear you about reusing existing code, but I think there are a  
>> number
>> of code reasons to use msgcat:
>> - a well debugged and optimized library
>> - it is a widely used standard, so its well documented (esp.  
>> compared to
>> our code ;)
>> - there are existing tools to make translating easier
>>
>> I'll happily write a script to convert the existing locales to the
>> msgcat/gettext format if you handle writing the code.  :D
>
> ok sure i can understand, i will look into the msgcat stuff next  
> week when my travel finishs and get back into the swing of things.

Excellent!  Let me know when you want me to convert those files... :D

.hc

>
> cheers
>
> chun
>
>>
>> hc
>>
>>
>> On Jan 6, 2009, at 11:03 AM, [*~] wrote:
>>
>>> Hi all:
>>>
>>> just a quick reply before i take some days off traveling a bit.
>>>
>>> ok, i will look into the msgcat and ths locale stuff you mentioned.
>>> but meanwhile, i have started porting the locale system in  
>>> desiredata
>>> to the new pd-devel, which i think could work nicely too, without
>>> adding any overhead. its done through a method which will look up
>>> locale names given by a file, which can be specified in the rc  
>>> file, or
>>> as a commandline option. the localed files are just .tcl script  
>>> calling
>>> the lookup method with the key value for storing all the terms.
>>>
>>> take a look at it and if we really need a change, then we can see  
>>> how
>>> best to change it. another reason that i would be more for staying  
>>> with
>>> the locale system of desiredata is that we could simply reuse all  
>>> the
>>> locale files (with permission) done for it so far, which is quite a
>>> fair bit(check the locale directory in /src at the dd branch).
>>>
>>> my 0.01C:)
>>>
>>> cheers
>>>
>>> chun
>>>
>>> Hans-Christoph Steiner said :
>>>>
>>>> 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
>>>> Pd-dev at iem.at
>>>> http://lists.puredata.info/listinfo/pd-dev
>>>>
>>
>>



----------------------------------------------------------------------------

News is what people want to keep hidden and everything else is  
publicity.          - Bill Moyers






More information about the Pd-dev mailing list