Перейти к содержимому
Korean Random

Рекомендуемые сообщения

2 часа назад, sirmax сказал:

вместо локализованного текста нужно использовать ключи локализации

Может сделать, чтобы оба варианта поддерживалось? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

смысл в том, что ключи универсальны для любого языка, соответственно конфиг не будет привязан к одной локализации. Иначе фича будет ограничена, ей будет не удобно пользоваться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@sirmax и я о том же. В дефолте прописать ключи, и оставить возможность использовать шаблоны. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Насчет такого варианта не возражаю, хотя считаю, что ключей достаточно. Локализованный текст тоже нужно из файлов локализации брать, потому что руками набивать - это плохо. Пропустят пробел, и будут писать, что не работает.

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)
10 часов назад, sirmax сказал:

только вместо локализованного текста нужно использовать ключи локализации

5 часов назад, sirmax сказал:

хотя считаю, что ключей достаточно

 

Ключами немного не то получается, в шаблонах прописываем ключ:

i18n.makeString('#system_messages:connected')

Получаем на выходе:

Добро пожаловать на сервер '%s' World of Tanks!

По этому шаблону мы не можем скрыть текст в системном канале т.к наименование сервера не указано.

И так не только с сервером, в локализации множество фраз аналогично дополняется (Ремонт: ..., Куплено: ... и т.п).

Изменено пользователем night_dragon_on

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

@night_dragon_on а если так:

connectionMgr = dependency.instance(IConnectionManager)
i18n.makeString('#system_messages:connected'.format(connectionMgr.serverUserName))

P.S. А, это же в конфиге надо прописывать

P.P.S. ключи надо сравнивать раньше. Хотя раньше негде.

 

Изменено пользователем ktulho

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
17 минут назад, ktulho сказал:

ключи надо сравнивать раньше

 

Я же ранее упомянул что помимо именно этой фразы полно других в которые так или иначе данные подставляются, например:

i18n.makeString('#system_messages:artefact_apply/money_success')
%(kind)s '%(name)s' снято с машины. Потрачено %(money)s.

i18n.makeString('#system_messages:artefact_apply/success')
%(kind)s '%(name)s' установлено на машину.

i18n.makeString('#system_messages:artefact_buy/not_enough_crystal')
Покупка %(kind)s '%(name)s' не удалась. Недостаточно бон.

И т.п., так что первоначальный вариант записи непосредственно текстом единственно возможный.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

@ktulho поймал ошибку и вылет с новым скриптом infoAutoAim.py

 

Захватил противника в автоприцел, он скрылся передо мной за камнем, после чего пропал из засвета.

Когда появился - игра вылетела, в логе - указанная ошибка.

 

Реплей, к сожалению, не сохранился из-за вылета. Пустой temp.wotreplay остался.

2018-06-13 18:01:41.495: INFO: =============================
2018-06-13 18:01:41.495: INFO: 2018-06-13 18:01:41: [ERROR] mods/xfw/python/xfw/events.pyc
2018-06-13 18:01:41.495: ERROR: Traceback (most recent call last):
2018-06-13 18:01:41.495: ERROR:   File "mods/xfw/python/xfw/events.py", line 57, in __event_handler
2018-06-13 18:01:41.496: ERROR:   File "mods/xfw/python/xfw/events.py", line 24, in fire
2018-06-13 18:01:41.497: ERROR:   File "res_mods/configs/xvm/py_macro\infoAutoAim.py", line 79, in onLockTarget
2018-06-13 18:01:41.497: ERROR:     hideMarker(oldTarget)
2018-06-13 18:01:41.497: ERROR:   File "res_mods/configs/xvm/py_macro\infoAutoAim.py", line 31, in hideMarker
2018-06-13 18:01:41.497: ERROR:     node = target.appearance.compoundModel.node('hull')
2018-06-13 18:01:41.497: ERROR: AttributeError: 'NoneType' object has no attribute 'appearance'
2018-06-13 18:01:41.497: INFO: =============================

Полный лог в аттаче.

python.log

Изменено пользователем ADv
  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
18 минут назад, night_dragon_on сказал:

Я же ранее упомянул что помимо именно этой фразы полно других в которые так или иначе данные подставляются, например:

Как раз с этими примерами проблем нет. Их все можно перехватить в SystemMessages.pushI18nMessage()

7 минут назад, ADv сказал:

поймал ошибку и вылет с новым скриптом infoAutoAim.py

Спасибо, но лучше писать в соответствующую тему.

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

я ж говорю - посмотрите, как сделано в отключении тултипов

  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

@sirmax , текст то уберется таким способом

@overrideMethod(i18n, 'makeString')

Но само сообщение пустое будет висеть в ЦУ.

Изменено пользователем night_dragon_on

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

Может так:

@overrideMethod(i18n, 'makeString')
def _i18n_makeString(base, key, *args, **kwargs):
    if key in config.get('hangar/hideMessagePatterns', []):
        return ''
    return base(key, *args, **kwargs)

В принципе здесь и проверку шаблонов можно делать.

Изменено пользователем ktulho

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

@ktulho , так пустое сообщение останется в ЦУ. 6278e1c3a5aa.png

Изменено пользователем night_dragon_on

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

@night_dragon_on ну вместо ''  можно возвращать какую-нибудь последовательность, а в as_setMessagesListS перехватывать эту последовательность. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну так у меня и сделано, вы бы хоть посмотрели

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

Так смотрели, если ключ совпал с тем что прописано в конфиге возвращается константа:

return XVM_TOOLTIPS.HIDE

Но я так и не понял почему она далее ищется в tooltipId

if XVM_TOOLTIPS.HIDE not in tooltipId

Она же имеет постоянное значение, на нее ничего не присваивается.

(или у меня просто голова после смены не варит сегодня и я чего то перед носом не вижу :smile:).

Изменено пользователем night_dragon_on

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
(изменено)

ищется, чтобы скрыть. в первом методе помечаем то, что надо скрыть, во втором - скрываем.

"not in" - потому что tooltipId - это уже локализованный текст (почему так называется переменная - это к WG). А она может быть форматированной, с лишними тегами. Поэтому ищем уникальный текст во всей строке.

Изменено пользователем sirmax
  • Нравится 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×