在sencha的本地化

时间:2012-04-12 07:08:23

标签: sencha-touch sencha-touch-2

如何使用本地化概念更改按钮文本?

Ext.define("iPolis.view.login", {
     extend: 'Ext.form.Panel',

     requires: [
         'Ext.TitleBar',
         'Ext.form.FieldSet',
         'Ext.field.Password',
         'Ext.field.Text',
         'Ext.field.TextAreaInput',
     ],
     id:'loginPanel',

     loginText:'Login',

     xtype:'login',
     .
     .
     .
     items: [{
           xtype: 'button',
           cls: 'btn',
           text: this.loginText,
           id:'loginbtn',
           handler: function() {

           }
     ]
});

我的localization.js是这样的:

if(Ext.form.Panel) {

Ext.override(Ext.form.Panel,{


    loginText:'iniciarsession'


});
}

我得到一个空白按钮。请让我知道必须做些什么。

3 个答案:

答案 0 :(得分:2)

我用这种方式,它对我有用

var Messages = {

username: 'Benutzername',
password: 'Passwort'
login: 'iniciarsession'

}

并在按钮定义中:

                   {
                      xtype: 'passwordfield',
                      id: 'pwd',
                      placeHolder:'Password',
                      label:Messages.password


                    },
                   {
                    xtype: 'button',
                    cls: 'btn',
                    text:Messages.login,
                    id:'loginbtn',

                }

答案 1 :(得分:0)

您已使用loginText作为按钮文字,但在覆盖它时您已使用login

所以它应该是

Ext.override(Ext.form.Panel,{
    loginText: 'iniciarsession'
});

答案 2 :(得分:0)

您不应该使用Ext.override,因为它已在Sencha Touch 2中弃用。

要实现您的需求,请尝试以下方法:

Ext.getCmp('loginPanel').loginText = 'my new value'

如果不起作用,请改用:

Ext.getCmp('loginPanel').config.loginText = 'my new value'

希望它有所帮助。