[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [E-devel] Re: context menu



On Wed, 15 Feb 2006 23:07:14 +0900 David Stevenson <david.35472@gmail.com>
babbled:

> On 2/15/06, David Stevenson <david.35472@gmail.com> wrote:
> >
> >
> >
> > On 2/15/06, David Stevenson <david.35472@gmail.com> wrote:
> > >
> > >
> > >
> > > On 2/15/06, Martin Geisler < mgeisler@mgeisler.net> wrote:
> > > >
> > > > Carsten Haitzler (The Rasterman) <raster@rasterman.com> writes:
> > > >
> > > > > there's no documented call though to tell gettext to "flush your
> > > > > mush" :(
> > > >
> > > > I found this in the Gettext info pages, so for GNU Gettext there is a
> > > > way to make it change language at runtime:
> > > >
> > > >             /* Make change known.  */
> > > >             {
> > > >               extern int  _nl_msg_cat_cntr;
> > > >               ++_nl_msg_cat_cntr;
> > > >             }
> > >
> > >
> > > This was one of the suggestions I'd seen, and the other was from Bruno
> > > Haible (I believe he is the current gettext maintainer). He suggests that
> > > a textdomain (textdomain (NULL))
> > > call is used.
> > > [ http://lists.gnu.org/archive/html/bug-gnu-utils/2005-10/msg00092.html
> > > ]
> > >
> > > However, I took a look at the gettext code, and basically doing what
> > > Bruno suggests is just another way of achieving the _nl_msg_cat_cntr var
> > > incrementation.
> > > But e does in fact call textdomain when changing the language anyway
> > > (with the PACKAGE string, but the result is the same, if you read the
> > > gettext code)...
> > > I double-checked and the _nl_msg_cat_cntr is indeed getting incremented
> > > when e changes the language...
> > >
> >
> > Whoops! But not always...
> > When I switch to ja_JP.EUC-JP it gets incremented, but when I go back to
> > POSIX it doesn't...
> >
> >
> After more investigation I think this is a problem with the way the e_menus
> that these modules use work.

yeah. many parts of e are the same. have a dialg up and change lang - it wont
change until its re-created. in future with modules via gadcon i think we will
see them create their menus on the fly - saves memory and fixes this too. so a
matter of time will solve this.

> The modules create their right click menus when the module is first
> initialized, and the labels are retrieved from gettext at *that* point in
> time. The e_menu_item_label_set stores the strings for later use then, so
> subsequent language changes don't have effect until a restart.
> 
> But to make sure textdomain gets called when switching back to C locale
> perhaps the attached patch would be in order?

the patch looks decent enouhg - throw it in cvs :) (since u have access now!) :)

-- 
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler)    raster@rasterman.com
裸好多
Tokyo, Japan (東京 日本)