2012-04-12 64 views
1

如何使用本地化概念更改按鈕文本?sencha中的本地化

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' 


}); 
} 

我得到一個空白按鈕。請讓我知道要做什麼。

+0

Ext.override在煎茶觸摸2.已被棄用,請使用Ext.define代替。但是,在這種情況下,如果您只想爲您的配置設置新值,則無需使用本地化。 – 2012-04-12 10:51:24

回答

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', 

       } 
0

您已經使用loginText作爲按鈕上的文字,但覆蓋您已經使用login

當它所以應該

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

你不應該使用Ext.override,因爲它已經在煎茶觸摸2被棄用。

爲了達到你所需要的,試試這個:

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

,如果它不能正常工作,而不是使用:

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

希望它能幫助。

+0

我可以使用這種方法按鈕,但我也有文本框,標籤等所以我需要本地化 – Akshatha 2012-04-13 03:32:52