Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Локализация кнопок MessageBox (https://javascript.ru/forum/extjs/65337-lokalizaciya-knopok-messagebox.html)

Sogl 13.10.2016 08:19

Локализация кнопок MessageBox
 
Всем привет!

Приложение у меня только на русском, поэтому я везде сразу по-русски пишу параметры. Так вот... каким образом можно глобально задать локализацию кнопок в MessageBox?

В Ext 3.4 я делал так:
Ext.onReady(function(){
    //show tooltips
    Ext.QuickTips.init();

    //add RU messagebox tanslation
    Ext.MessageBox.buttonText.yes = 'Да';
    Ext.MessageBox.buttonText.no = 'Нет';
.............


и все прекрасно работало. В Ext 6.2 решил прописать похожим образом в Application.js:
launch:function() {

    Ext.window.MessageBox.buttonText.yes = "Да";

Ошибка `TypeError: Ext.window.MessageBox.buttonText is undefined`.

В итоге я нашел решение:
Ext.Msg.show({
buttonText: {
    yes: 'Да',
    no: 'Нет'
},
title: 'Удаление',
msg: 'Вы действительно хотите удалить эту запись?',
buttons: Ext.Msg.YESNO,
icon: Ext.MessageBox.QUESTION,
fn: function(btn) {
     if (btn === 'yes') {
           
     }
}
});


Но такую портянку каждый раз надо писать, чтобы вызвать окошко. Как в 6.2 прописать глобально один раз перевод кнопок?

Infarch 13.10.2016 09:47

Можете воспользоваться оверрайдом. ВОт, почитайте: http://moduscreate.com/writing-ext-js-overrides/

Там многабукаф но в целом понятно.

Pavel M. 13.10.2016 11:56

А разве
Цитата:

Сообщение от Sogl
В Ext 3.4 я делал так

а почему не подключаете файл с локализацией
там куча оверайдов компонентов на русский язык
типа ext-locale-ru.js
в дистрибутиве 6-ой версии разве его нет?

Sogl 21.10.2016 02:06

Все есть, оказывается. В ExtJS 3.4 у меня был тестовый проект, поэтому этих 2х строк мне было достаточно.

А на ExtJS 6.2 сейчас проект куда больше и не все можно так сразу переопределить, как, например, сообщения валидации.

Помогла эта инструкция:
https://docs.sencha.com/extjs/6.2.0/...alization.html


Часовой пояс GMT +3, время: 16:07.