QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4550|回复: 17

Nautilus 2.12.0 界面经常变成英文的?

[复制链接]
发表于 2005-12-23 16:09:23 | 显示全部楼层 |阅读模式
Nautilus 好像不愿意界面汉化似的,总是莫名其妙的变成英文的。
注销后,恢复正常。

Why is  this

ps:
同时在 Ubuntu 和 SusE上面注意到这个现象。
发表于 2005-12-24 00:18:36 | 显示全部楼层
我也遇到了。 :neutral:
回复

使用道具 举报

发表于 2005-12-25 09:56:27 | 显示全部楼层
我碰到的情况是,安装了totem-xine,启用了Nautilus的totem-properties插件,然后随便查看一个影音文件的属性,之后就出这种情况了。
回复

使用道具 举报

发表于 2005-12-25 10:28:18 | 显示全部楼层
如何重现?我也玩玩,看nautilus 2.13中有没有。
回复

使用道具 举报

发表于 2005-12-25 15:17:20 | 显示全部楼层
我也在ubuntu下遇到了这个情况。倒是一直想注意一下激发的条件。
回复

使用道具 举报

发表于 2005-12-25 20:48:01 | 显示全部楼层
我也常碰到,killall nautilus一下就好了。按hzhr的说法查看一下某个mp3文件的属性,关闭文件管理器再重新打开,果然...
回复

使用道具 举报

发表于 2005-12-25 23:01:31 | 显示全部楼层
Dammit! 可能是某些与samba相关的操作。我碰到的情况是xine-lib支持samba协议,有个插件 xineplug_inp_smb.so,而totem使用libxine,结果totem老是被重置到英文 locale,同样也影响了 Nautilus。去掉 xineplug_inp_smb.so 不加载,正常。
查了一下samba的源代码,发现了下面的某位牛人写的代码,在samba源代码的 source/lib/charcnv.c 文件中:
[code:1]
/**
* Return the name of a charset to give to iconv().
**/
static const char *charset_name(charset_t ch)
{
        const char *ret = NULL;

        if (ch == CH_UCS2) ret = "UTF-16LE";
        else if (ch == CH_UNIX) ret = lp_unix_charset();
        else if (ch == CH_DOS) ret = lp_dos_charset();
        else if (ch == CH_DISPLAY) ret = lp_display_charset();
        else if (ch == CH_UTF8) ret = "UTF8";

#if defined(HAVE_NL_LANGINFO) && defined(CODESET)
        if (ret && !strcmp(ret, "LOCALE")) {
                const char *ln = NULL;

#ifdef HAVE_SETLOCALE
                setlocale(LC_ALL, "");
#endif
                ln = nl_langinfo(CODESET);
                if (ln) {
                        /* Check whether the charset name is supported
                           by iconv */
                        smb_iconv_t handle = smb_iconv_open(ln,"UCS-2LE");
                        if (handle == (smb_iconv_t) -1) {
                                DEBUG(5,("Locale charset '%s' unsupported, using ASCII instead\n", ln));
                                ln = NULL;
                        } else {
                                DEBUG(5,("Substituting charset '%s' for LOCALE\n", ln));
                                smb_iconv_close(handle);
                        }
                }
                ret = ln;
        }
#ifdef HAVE_SETLOCALE
        /* We set back the locale to C to get ASCII-compatible toupper/lower functions.
           For now we do not need any other POSIX localisations anyway. When we should
           really need localized string functions one day we need to write our own
           ascii_tolower etc.
        */
        setlocale(LC_ALL, "C");
#endif

#endif

        if (!ret || !*ret) ret = "ASCII";
        return ret;
}

[/code:1]
上面两个 setlocale 都不该用,特别是第二个使用的有问题。
这位牛人似乎考虑到了未来的某件事,结果一不小心对现在造成了影响。
回复

使用道具 举报

发表于 2005-12-26 14:15:35 | 显示全部楼层
我也遇到了,在ubuntu 5.10下。
回复

使用道具 举报

发表于 2005-12-26 14:42:21 | 显示全部楼层
呵呵,我这里照上面操作也重现了。 :-)  谁去提交 bug ?  
回复

使用道具 举报

发表于 2005-12-26 17:25:46 | 显示全部楼层
这样看来,这个问题似乎应该是samba的bug    
回复

使用道具 举报

发表于 2005-12-26 17:52:58 | 显示全部楼层
用gentoo就好办得多,USE=-samba重新编译xine-lib果然就没事了。bug定位这么准,hzhr也是姓牛的吧?
回复

使用道具 举报

发表于 2005-12-27 22:08:10 | 显示全部楼层
[quote:2f57c6b81c="mandrakechina"]这样看来,这个问题似乎应该是samba的bug    [/quote]
刚去查了一下,发现已经有人提这个问题了,问题原因现象与这里一致。
https://bugzilla.samba.org/show_bug.cgi?id=2926
不过好像是8月份就提了,最近才开始有人关注,希望不久就会解决。
回复

使用道具 举报

发表于 2005-12-28 10:50:43 | 显示全部楼层
大家去顶,顶到解决为止。
回复

使用道具 举报

发表于 2005-12-29 10:27:59 | 显示全部楼层
没想到是samba......


//这个,有进展了?

//Check out SVN revision 12522 in SAMBA_3_0 or revision 12521 in HEAD to check
//out the fix I've added for this bug.
//Should be fixed as I've removed the setlocale call in lib/charcnv.c and
//modified all the toupper/tolower/isupper/islower calls to be _ascii versions.
//Please let me know if this fixes the problem.
//Jeremy.
回复

使用道具 举报

发表于 2006-3-29 09:21:20 | 显示全部楼层
这个问题已经解决,详见:

https://bugzilla.samba.org/show_bug.cgi?id=2926

  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-3-29 05:25 , Processed in 0.120064 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表