extjs 发布ext.js 7.2本地化的现代项目

px9o7tmv  于 2022-11-04  发布在  其他
关注(0)|答案(1)|浏览(201)

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

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

如果我随后发布了项目(不是build,而是publishing,也就是说,将发布版本发送给客户),则两个按钮的文本为“Ok”和“Cancel”,这是因为默认的本地化为“en”。
现在,我想本地化这两个按钮,例如,在德语中。预期的结果应该是'Ok'和'Abbrechen'。
所以我就按照这里和这里的 Sencha 医生的指导去做。
我尝试的第一件事是在app.json中插入以下代码。

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

但这没有任何作用,按钮上的文字仍然是英语。
然后我试了另一个建议

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

又一次,它不起作用。
我第一次使用 Sencha Architect发布,所以我想,也许它与Sencha cmd一起工作。
但是没有,它一直都是英语的。我检查了发布文件夹,在那里找不到任何locale-xx.js文件。
然而,当我预览项目时,它每次都能正常工作。

qgzx9mmu

qgzx9mmu1#

因此,这毕竟是一个bug。在支持人员的帮助下,我不得不对ext-locale-de.js文件的最后一部分进行注解,该文件可以在这里找到:扩展\敕勒\区域设置\覆盖\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"
});
 */

相关问题