Nautilus 2.12.0 界面经常变成英文的?
Nautilus 好像不愿意界面汉化似的,总是莫名其妙的变成英文的。注销后,恢复正常。
Why isthis :?:
ps:
同时在 Ubuntu 和 SusE上面注意到这个现象。 我也遇到了。 :neutral: 我碰到的情况是,安装了totem-xine,启用了Nautilus的totem-properties插件,然后随便查看一个影音文件的属性,之后就出这种情况了。 如何重现?我也玩玩,看nautilus 2.13中有没有。 我也在ubuntu下遇到了这个情况。倒是一直想注意一下激发的条件。 我也常碰到,killall nautilus一下就好了。按hzhr的说法查看一下某个mp3文件的属性,关闭文件管理器再重新打开,果然... Dammit! 可能是某些与samba相关的操作。我碰到的情况是xine-lib支持samba协议,有个插件 xineplug_inp_smb.so,而totem使用libxine,结果totem老是被重置到英文 locale,同样也影响了 Nautilus。去掉 xineplug_inp_smb.so 不加载,正常。
查了一下samba的源代码,发现了下面的某位牛人写的代码,在samba源代码的 source/lib/charcnv.c 文件中:
/**
* 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;
}
上面两个 setlocale 都不该用,特别是第二个使用的有问题。
这位牛人似乎考虑到了未来的某件事,结果一不小心对现在造成了影响。 我也遇到了,在ubuntu 5.10下。 呵呵,我这里照上面操作也重现了。 :-)谁去提交 bug ?:mrgreen: 这样看来,这个问题似乎应该是samba的bug:?::?: 用gentoo就好办得多,USE=-samba重新编译xine-lib果然就没事了。bug定位这么准,hzhr也是姓牛的吧? 这样看来,这个问题似乎应该是samba的bug:?::?:
刚去查了一下,发现已经有人提这个问题了,问题原因现象与这里一致。
https://bugzilla.samba.org/show_bug.cgi?id=2926
不过好像是8月份就提了,最近才开始有人关注,希望不久就会解决。 大家去顶,顶到解决为止。 :mrgreen: 没想到是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. 这个问题已经解决,详见:
https://bugzilla.samba.org/show_bug.cgi?id=2926
:mrgreen::mrgreen:
页:
[1]
2