EXTJS 本地化(覆盖类)

Posted

技术标签:

【中文标题】EXTJS 本地化(覆盖类)【英文标题】:EXTJS localization (override classes) 【发布时间】:2013-10-21 08:24:09 【问题描述】:

我有一个简单的 ExtJS 树。一切正常。在 API 中,我看到我可以通过覆盖来更改标题和其他标签。这里是 API link

Ext.require(['*']);
var path = "";

Ext.onReady(function () 
    Ext.define('My.Tree', 
        extend: 'Ext.tree.Panel',
        id: 'DriveTree',
        title: 'File Manager',
        width: 500,
        height: 650,
        store: storeTree,
        rootVisible: true,
        renderTo: 'tree-div',

        viewConfig: 
            plugins: 
                ptype: 'treeviewdragdrop',
                appendOnly: true
            
        ,

        useArrows: true,

        dockedItems: [
            xtype: 'toolbar',
            items: [
                text: 'REFRESH', // MULTI LANGUAGE
                id: 'connectButton'

            ,
                
                    text: 'CHOOSE', // MULTI LANGUAGE
                    handler: function () 
                        Ext.Ajax.request(
                            url: '/test.json',
                            success: function (response, opts) 
                                Ext.MessageBox.alert('text', 'text'); // multi language

                            
                        );
                    
                ]
        ]
    );
    var tree = Ext.create('My.Tree', );
);

我创建了另一个 JS 文件并覆盖了我的树。

Ext.define('My.Tree', 
    override: 'Ext.tree.Panel',
    title: 'new NAME',

);

但这不起作用。我需要覆盖 Ext.MessageBox.alert 的文本。我可以这样做吗?

当我从 My.Tree 面板中删除标题时,它可以工作。

【问题讨论】:

如果我删除例如“标题:'文件管理器'”,它就可以工作! 【参考方案1】:

因为您要覆盖 tree.Panel,而不是您的子类。所以My.Tree 上的title 优先,因为你覆盖了Ext.tree.Panel

改为:

Ext.define('MyApp.locale.fr.Tree', 
    override: 'My.Tree',
    title: 'Bonjour'
);

【讨论】:

谢谢!请看我最后的评论问题:***.com/questions/19491117/…

以上是关于EXTJS 本地化(覆盖类)的主要内容,如果未能解决你的问题,请参考以下文章

extjs6学习笔记1.6 初始:本地化

ExtJs 4.1.0 缓冲网格 + 本地排序/过滤

来自本地数组的 ExtJs 组合框

基于Modern工具包的本地化方式(下)

ExtJS 4 与本地商店分页

使用本地 JSON 数据填充 ExtJS 3.4 组合框