Current time: 23.01.2018, 05:16 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
ERA II
» WoG Era 2: Русская и Английская версии
Author Message
XEPOMAHT Offline

Posts: 60
Post: #3511

(01.12.2017 15:11)Berserker Wrote:  сделаем своё меню опций, например, рядом с кнопкой вог-опций.

Желательно бы для ERA вообще ликвидировать меню вог-опций вместе с кнопкой (там вроде и кнопки как таковой нет - стоит перехват клика по определённой области экрана). А саму кнопку для нового меню опций скриптов поставить в главном игровом меню. Правда, кто способен сделать такое под ERA?

Если и планируется оставить меню вог-опций, то хотя бы попытаться перенести его из WoG 3.59, где оно было расширено под новые скрипты.
01.12.2017 15:33
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 10490
Post: #3512

Quote: то хотя бы попытаться перенести его из WoG 3.59, где оно было расширено под новые скрипты.
Прокрутка добавлена?


Скачать Герои 3 Эра и всё, что с ней связано
01.12.2017 15:41
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline

Posts: 60
Post: #3513

(01.12.2017 15:41)Berserker Wrote:  Прокрутка добавлена?

Можно сказать, что да:

01.12.2017 15:50
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 10490
Post: #3514

Переписанный диалог, как вижу, здорово.


Скачать Герои 3 Эра и всё, что с ней связано
01.12.2017 16:10
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 10490
Post: #3515

Кому-нибудь нравится локализация скриптов через ERT-файлы? А велосипеды с локализацией плагинов?


Скачать Герои 3 Эра и всё, что с ней связано
01.12.2017 21:38
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 10490
Post: #3516

Мне не нравится, поэтому я пишу так:

Попутно создаю Lang\test.json с содержимым:
Code:
{
  "hero_is_x_age": "|hero| достиг |age| лет"
}

Выводится: «Berserer достиг 27 лет» Ab

Из каких элементов состоит локализация:
1) Автоматическая подгрузка языковых json-файлов формата { "глобальный уникальный ключ": "перевод", ... }
2) Совпадающие строки из разных модов подчиняются приоритетам модов (последний установленный весомее)
3) Перевод по ключу можно загрузить из ЕРМ или плагина.
4) В перевод можно передать до 7 именованных параметров (плагинам — неограниченно), которые будут подставлены в перевод при необходимости.
|имя параметра|
5) SN:T(ключ)/?(z-переменная)/(параметр 1)/(значение 1)/(параметр N)/(значение N);
Команда получает перевод строки или возвращает сам ключ, если перевод не найден.


Скачать Герои 3 Эра и всё, что с ней связано
01.12.2017 23:26
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline

Posts: 60
Post: #3517

(01.12.2017 23:26)Berserker Wrote:  Мне не нравится, поэтому я пишу так:

Попутно создаю Lang\test.json с содержимым:
Code:
{
  "hero_is_x_age": "|hero| достиг |age| лет"
}

Выводится: «Berserer достиг 27 лет» Ab

Переводчик с английского может путаться в этих |hero| и |age| и пытаться их переводить тоже. В старом ERT как-то проще (примерно как-то так):



Code:
2017    %Z1 достиг %Z2 лет
02.12.2017 00:25
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 10490
Post: #3518

Переводчик не может переводить тексты с параметрами, не зная правила подстановки параметров. Что касается ERT, то это костыли:
1) Привязка к числовым индексам (нет совместимости, нет читаемости).
2) Привязка к номерам скриптов (нет совместимости, неудобно расширять, нет читаемости).
3) Параметры внутри оперируют любыми ERM-переменными (нарушение ответственности, перевод не должен иметь доступ ко всей памяти), причём по числовым индексам (нет читаемости, жёстко фиксирует код).

Выбрал один из безопасных символов для ERM и визуально отличимый. В Delphi пользовался процентами, реже тильдами, но оба имеют спец. значение.

Большинство современных библиотек для локализации использует именованные (реже — позиционные) параметры и строковые ключи. Никаких привязок, никаких нарушений ответственности (перевод получает только то, что решит автор кода), всё явно и читаемо.


Скачать Герои 3 Эра и всё, что с ней связано
02.12.2017 00:56
Find all posts by this user Quote this message in a reply
igrik Offline
Moderators

Posts: 1225
Post: #3519

Berserker, проверь плизз диалог. Вроде сделал, но голова уже не варит вообще. Ссылка та же


Скачать HoMM3 ERA 2.461 + (мелочи)
(This post was last modified: 02.12.2017 00:58 by igrik.)
02.12.2017 00:57
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 10490
Post: #3520

igrik, проверил. На первый взгляд полный порядок Ab


Скачать Герои 3 Эра и всё, что с ней связано
02.12.2017 01:28
Find all posts by this user Quote this message in a reply
Algor Offline
Forum Moderators

Posts: 2341
Post: #3521

(01.12.2017 23:26)Berserker Wrote:  Мне не нравится, поэтому я пишу так:

Попутно создаю Lang\test.json с содержимым:
Code:
{
  "hero_is_x_age": "|hero| достиг |age| лет"
}

1. Все Lang\*.json грузятся автоматически?
2. С многострочными текстами нет проблем?
3. Цвета текстов задаются аналогично ert-шному синтаксису?
4. Возможность установить название навыка и пр. вещей напрямую из json-файла есть?


02.12.2017 15:21
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 10490
Post: #3522

1) Да.
2) Есть проблемы. Нужно экранировать переводы строк как \n и писать текст в одну строку.
3) Текст из любого источника будет работать, да.
4) Напрямую — нет. WoG-команды намертво приклеены к z-переменным, часть из которых поддерживает ERT, часть — нет. Думаю, лучше добавить ещё поддержку вторичных навыков в SN:H.

Пункт 2 можно изменить, изменив формат файла на ключ = многострочное значение в кавычках. Думаю, последний даже более удобен будет для конфигураций.
Пункт 4 нужно разгребать постепенно, нагружая команду SN:H.
ERT остаются как устаревшие (DEPRECATED).

Что думаешь?


Скачать Герои 3 Эра и всё, что с ней связано
02.12.2017 16:04
Find all posts by this user Quote this message in a reply
Algor Offline
Forum Moderators

Posts: 2341
Post: #3523

2) \n вполне устраивает. Имхо, 1 ключ = одна строка это удобнее, чем скроллить многострочные тексты. А сложно оставить и многострочку в кавычках и перенос по \n?
4) SN:H надо допиливать, если хочется совсем уйти от ert и резервируемых z-переменных.

Я, кстати, когда-то спрашивал про возможность добавления спецкодов для выравнивания текстов (по левом/правому краю, центру). Слишком геморно?


02.12.2017 17:41
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Offline
Forum Moderators

Posts: 2341
Post: #3524

Эмм, Berserker, ты SN:T еще не зарелизил? А то я уже начал тестить, а мне грит мол нет такой команды Bad

Попутный вопрос: а !!SN:T^foobar^/z2; запишет значение в json-файл? Было бы вааще супер.


02.12.2017 18:24
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 10490
Post: #3525

Quote:2) \n вполне устраивает.
Мне наоборот это ограничение кажется жутко неудобным, но стандарт json крайне строго говорит, что контрольные символы в строках запрещены.
Отбой, реализация JSON, которую я использую, очень удобная: контрольные символы разрешены (вывел многострочный текст) и разрешены комментарии // ..., что очень удобно.

Quote:4) SN:H надо допиливать, если хочется совсем уйти от ert и резервируемых z-переменных.
Уход может быть плавным. Что и происходит. Сейчас подсказки для объектов на карте и тексты геройских специализаций устанавливаются через SN:H. На очереди вторичные навыки.

Quote:Я, кстати, когда-то спрашивал про возможность добавления спецкодов для выравнивания текстов (по левом/правому краю, центру). Слишком геморно?
За выравнивание отвечает параметр элемента управления диалога. Когда-то давно я раскапывал варианты, как его можно было бы попробовать реализовать, но руки так и не дошли. Пометку оставлю, но не обещаю. Это какой-то грубый аналог html был бы вроде {~>}{~red}Выравнено по правой и красным текстом{~}{~}.

Algor, да, извини, это анонс.

Quote:!!SN:T^foobar^/z2;
Нет, все переводы объединяются в один большой словарь типа ключ-значение, связь с файлами не сохраняется. Тебе остро нужна возможность удобной работы с файлами?

Ах да, забыл сказать. JSON-файлы должны быть в кодировки UTF-8, как и полагается. То есть можно свободно и легко распространять польские переводы или китайские, так как они будут переведены в ansi-кодировку целевой системы автоматически.


Скачать Герои 3 Эра и всё, что с ней связано
02.12.2017 18:25
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2018 MyBB Group