问题描述
我已经使用Ext JS 7.2 Modern构建了一个小示例应用程序,该应用程序仅包含带有按钮的面板。在按钮的单击处理程序中,将创建一个对话框,并显示两个按钮“确定”和“取消”:
Ext.define('EmpDir.view.MyPanel',{
extend: 'Ext.Panel',alias: 'widget.mypanel',requires: [
'EmpDir.view.MyPanelviewmodel','Ext.Button'
],viewmodel: {
type: 'mypanel'
},title: 'My Panel',items: [
{
xtype: 'button',handler: function(button,e) {
var dialog = Ext.create('Ext.Dialog',{
title: 'Dialog',closable: true,defaultFocus: '#ok',maximizable: true,bodyPadding: 30,maxWidth: 300,html: 'This is a dialog,which extends from Panel and adds some extra features.',buttons: {
ok: {
handler: function() {
// Do something
this.up('dialog').hide();
}
},cancel: {
handler: function() {
// Do something
this.up('dialog').hide();
}
}
}
});
dialog.show();
},text: 'MyButton2'
}
]
});
如果我然后发布项目(例如,不是构建,但发布,从而发布要发布给客户的发行版),则两个按钮的文本因为默认的“ en”本地化,所以它们是“确定”和“取消”。
现在,我想将两个按钮本地化,例如,德语。预期的结果应该是“好”和“阿伯雷琴”。
我尝试的第一件事是在app.json中插入以下代码。
"requires": [
"ext-locale"
],"locale": "de",
但是那什么也没做。按钮的文本仍为英文。
然后我尝试了其他建议
"requires": [
"ext-locale"
],"locales": [
"de","fr"
],
再次,它不起作用。
第一时间我使用Sencha Architect进行发布,所以我认为也许可以与Sencha cmd一起使用。
但是,没有。它始终保持英语。我检查了publish文件夹,在其中找不到任何locale-xx.js文件。
但是,当我预览项目时,它每次都有效。
解决方法
所以毕竟这是一个错误。 在支持的帮助下,我不得不注释了ext-locale-de.js文件的最后一部分,该文件可以在这里找到:ext \ modern \ locale \ overrides \ de
/* Ext.define("Ext.locale.de.grid.filters.menu.Base",{
override: "Ext.grid.filters.menu.Base",config: {
text: "Filter"
}
});
Ext.define('Ext.locale.de.grid.locked.Grid',{
override: 'Ext.grid.locked.Grid',config: {
columnMenu: {
items: {
region: {
text: 'Region'
}
}
},regions: {
left: {
menuLabel: 'Verschlossen (Links)'
},center: {
menuLabel: 'Freigeschaltet'
},right: {
menuLabel: 'Verschlossen (Recht)'
}
}
}
});
Ext.define("Ext.locale.de.grid.plugin.RowDragDrop",{
override: "Ext.grid.plugin.RowDragDrop",dragText: "{0} Zeile(n) ausgewählt"
});
*/