一种方法是,在 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的launch函数!
在 app.js 的启动功能中执行以下操作
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)。