У меня есть приложение, которое должно быть многоязычным.
Перевод выполнен с сервера и основан на пользователе, использующем приложение.
Мой текущий подход заключается в создании моего собственного поля для всего, что используется в приложении, и во время инициализации я изменяю то, что он говорит переведенному тексту, на основе заданного кода.
Например, в одной кнопки, я создаю свою собственную кнопку, как это:Добавить логику в Ext.Component initialize Sencha Touch
Ext.define('myapp.view.shared.MyButton', {
extend: 'Ext.Button',
xtype: 'myappbutton',
initialize: function() {
this.callParent();
this.setText(myapp.util.Helper.getTranslation(this.textCode, this.defaultText));
}
})
Затем меняю де настройки кнопки по умолчанию на что-то вроде этого, где я просто изменить xtype, удалить текст, а также добавить textCode и defaultText.
{
xtype: 'myappbutton',
textCode: 'back',
defaultText: 'Back',
...
}
Затем я определяю текст и текст по умолчанию. Метод getTranslation проверяет в локальном хранилище, чтобы получить перевод для кода, и вернуть найденный текст или отправленный по умолчанию текст.
¡Вот вопрос!
Поскольку у меня есть 12 различных компонентов (до сих пор), и каждый компонент каким-то образом расширяется из Ext.Component, я хочу добавить свой код в инициализацию Ext.Component, чтобы применить этот фрагмент кода, избегая этого дерьма создания настраиваемого элемента управления для каждого отдельного элемента управления, который мне нужен для перевода.
Возможно ли это?
TIA!
Milton.-
Ваш вопрос отсутствует знак вопроса. Но я вижу проблему наследования. Вы не можете быть уверены, какие функции доступны и/или необходимы для того, чтобы определенный компонент работал многоязычным. Вы оценили, могут ли переопределения быть лучше, чем «пользовательские компоненты»? – Alexander
Привет, Александр! Спасибо за ваш ответ. Я добавил вопросительный знак. Что касается того, что вы упоминаете, Ext.Component имеет событие initialize, поэтому я хочу получить эту функцию события и выполнить мой конец. Я в основном такой же, что и в каждом компоненте, но хочу сделать это только один раз. Имеют смысл? – Milton