1 つの方法は、すべてのオーバーライドを含む 1 つのファイルを index.html に含めることです! 公式のロケール ファイル (ext/locale) を使用する場合と同様です。
<script type="text/javascript" src="ext-4/locale/ext-lang-de.js"> </script>
これは、アプリケーションをビルドしない限り機能します。
いつの日かアプリケーションを構築したいので、別の方法をお勧めします!
問題: (sencha ツール -> app-all.js を使用して) アプリケーションをビルドしている場合、最初にアプリケーションをロードしたときにローカリゼーションが機能しないことがわかりました。その理由は、要素のレンダリング プロセスの後にオーバーライドが適用されるためです。
たとえばmyOverrides.jsという名前のファイルを作成します
Ext.define('MyApp.myOverrides', {
statics: {
doOverride: function() {
Ext.apply(Ext.app.ContactForm.prototype, {
formTitle: 'Contact Informatie (Dutch)',
firstName: 'Nom',
lastName: 'Prénom'
});
}
});
初期化の前に適用するために、app.js に次の変更を加え、index.html から削除しました。
- autoCreateViewportのターン
理由: レンダリング プロセスが開始する前に、アプリの起動関数が呼び出されるようになりました。
app.js の launch 関数で次のことを行います
launch: function() {
...
//Injecting the overrides
Ext.Loader.injectScriptElement('app/myOverride.js', Ext.emptyFn);
MyApp.myOverride.doOverride();
Ext.create( "MyApp.view.Viewport"); //We have to create the viewport manually
}
前に言ったように、これは開発モードと本番モード (app-all.js) でうまくいきました。