发布ext.js 7.2带有本地化功能的现代项目



我用Ext JS 7.2 Modern构建了一个小示例应用程序,它只包含一个带按钮的面板。在按钮的点击处理程序中,创建了一个对话框,并显示了两个按钮";ok";以及";取消":

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'
}
]
});

如果我随后发布项目(不是构建,而是发布,可以这么说,制作一个发布版本以发送给客户(,两个按钮的文本是"确定"one_answers"取消",因为默认的";en";本地化。

现在我想用德语本地化这两个按钮。预期结果应该是"Ok"one_answers"Abbrechen"。

所以我在这里和这里遵循了Sencha文档的指南。

我尝试的第一件事是在app.json.中插入以下代码

"requires": [
"ext-locale"
],
"locale": "de",

但这并没有起到任何作用。按钮的文字仍然是英文的。

然后我尝试了的另一个建议

"requires": [
"ext-locale"
],
"locales": [
"de",
"fr"
],

同样,它没有起作用。

第一次我使用Sencha Architect出版,所以我想,也许它可以与Sencha cmd一起使用。

但是没有。它总是保持英语。我检查了发布文件夹,在那里找不到任何locale-xx.js文件。

然而,当我预览项目时,它每次都有效。

所以这毕竟是一个bug。在支持人员的帮助下,我不得不评论ext-locale-de.js文件的最后一部分,可以在这里找到:ext\modern\locae\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"
});
*/

最新更新