首先要说明下,这个本来是提问贴的,但我在提问那里操作了半天,老是出错,根本提问不了,所以,很抱歉,放在论坛来了,请版主帮忙转到提问那里去吧。
本来之前也提了个类似的问题的了,但由于没说明清楚,那个问题补充也补充不了,非常郁闷,所以,再详细的提一次,这次,有带上代码的。
代码如下:
<link rel="stylesheet" type="text/css" href="ext4/resources/css/ext-all.css">
<script type="text/javascript" src="ext4/ext-all.js"></script><script type="text/javascript" src="ext4/locale/ext-lang-zh_CN.js"></script><script type="text/javascript">
Ext.onReady(function(){
Ext.Msg.alert("提示","按钮还是OK?");
});
</script>
jsp的页面,我一打开,那个提示按钮老是为英文的OK,而不是中文的,说明国际化无效,不知道,怎么改?
3.0版本,我就这样写,没问题,但4.0却不行,很怪的。
囧。。。果然还是有问题 :oops:
事不过三,这次我测试好了的,同样引入原版语言文件,以下代码放置在语言文件后、页面逻辑前:
[code="js"]
Ext.onReady(function(){
var msgBox = Ext.MessageBox;
Ext.each(msgBox.msgButtons, function(btn, index){
btn.setText(msgBox.buttonText[msgBox.buttonIds[index]]);
});
});
[/code]
彻底是Ext4.0的bug,只有暴力修改了。
P.S. 如果以上还不生效。。。将语言文件按上面说的修改一下(去掉onReady)
抱歉哦。。之前的问题好像是我回答的,我对3.x比较熟,4.0只是简单的看了一下语言文件的源码就轻率回复了……
刚才再看了一下MessageBox的源码,发现它是定义后就立即创建了实例(属于特殊的全局单例对象),所以是在语言文件之前定义完按钮文本的。
试试修改语言文件吧,把Ext.onReady去掉,让它直接运行。对于你这样的一次性全部引入的方式应该是不会出错的。
[code="js"]
//Ext.onReady(function(){
if(Ext.Updater){
...
//});
[/code]
或者保守点,只将MessageBox的那块移出
[code="js"]
if(Ext.MessageBox){
Ext.MessageBox.buttonText = {
ok : "确定",
cancel : "取消",
yes : "是",
no : "否"
};
}
Ext.onReady(function(){
...
[/code]
这个应该算Ext4.0的bug