Re: Problem with locale on Win32
- From: "Andrew E. Makeev" <andrew solvo ru>
- To: Tor Lillqvist <tml iki fi>
- Cc: gtk-list <gtk-list gnome org>
- Subject: Re: Problem with locale on Win32
- Date: Fri, 23 Sep 2005 16:57:48 +0400
Tor Lillqvist wrote:
Andrew E. Makeev writes:
> The problem is when you call standart popup menu on GtkEntry,
> GtkTextView for example, it is appearing in user locale only once, next
> time you see all menuitems in English.
Have never seen this. Could not reproduce. Please reproduce with a
minimal but complete test program. Please use at least GTK+ 2.6, 2.4
is not maintained any longer.
(Well, 2.6 is not maintained either, but it's still widely distributed
and used on Win32. If this really is a bug in GTK+, the fix will go in
2.8 and HEAD only, though.)
If the problem still occurs in a minimal test program, open a bug
report on bugzilla.gnome.org and attach the test program's source
code. If the problem does not appear in a minimal test program, it
can't be in GTK+, can it?
We have debugged the program and found the following in module
gtkimmulticontext.c file:
...
void
gtk_im_multicontext_append_menuitems (GtkIMMulticontext *context,
GtkMenuShell *menushell)
{
const GtkIMContextInfo **contexts;
guint n_contexts, i;
GSList *group = NULL;
_gtk_im_module_list (&contexts, &n_contexts);
for (i=0; i < n_contexts; i++)
{
GtkWidget *menuitem;
const gchar *translated_name;
#ifdef ENABLE_NLS
if (contexts[i]->domain && contexts[i]->domain_dirname &&
contexts[i]->domain[0] && contexts[i]->domain_dirname[0])
{
if (strcmp (contexts[i]->domain, GETTEXT_PACKAGE) == 0 &&
/**************
* GTK_LOCALEDIR returns "/usr/local/share/locale" on Win32 machine
* when condition below is commented out, popup menu works fine
**************/
strcmp (contexts[i]->domain_dirname, GTK_LOCALEDIR) == 0)
/* ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ */
/* Input method may have a name in the GTK+ message catalog */
translated_name = _(contexts[i]->context_name);
else
/* Input method has own message catalog */
{
bindtextdomain (contexts[i]->domain,
contexts[i]->domain_dirname);
#ifdef HAVE_BIND_TEXTDOMAIN_CODESET
bind_textdomain_codeset (contexts[i]->domain, "UTF-8");
#endif
...
As I've discovered, that GTK_LOCALEDIR tries to get installation path by
GETTEXT_PACKAGE define.
Probably, the problem is here, because we have built gettext dll on one
machine, then copy dll in some directory on other machine.
I couldn't find the way g_win32_get_package_installation_subdirectory()
function works, so, can't be sure about it.
Is it possible to solve this issue using some configuration settings?
Regards,
-andrew
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]