【问题标题】:Publishing ext.js 7.2 Modern project with localization发布带有本地化功能的 ext.js 7.2 现代项目
【发布时间】:2020-08-27 17:17:18
【问题描述】:

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

如果我随后发布项目(不是构建,而是发布,可以说是制作发布版本以发送给客户),则两个按钮的文本是 'Ok' 和 'Cancel',因为默认的“en”本地化。

现在我想本地化这两个按钮,例如德语。预期的结果应该是“Ok”和“Abbrechen”。

所以我遵循 Sencha 文档 herehere 中的指南。

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

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

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

然后我尝试了其他建议

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

还是不行。

我第一次使用 Sencha Architect 进行发布,所以我想,也许它适用于 Sencha cmd。

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

但是,当我预览项目时,它每次都能正常工作。

【问题讨论】:

  • 我们如何重现这个错误?
  • 我已经编辑了帖子以获得更多说明

标签: extjs sencha-architect sencha-cmd


【解决方案1】:

所以毕竟这是一个错误。 在支持的帮助下,我不得不评论 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"
});
 */

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 2018-09-18
    • 2013-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多