Current time: 10.04.2020, 13:31 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Создание скриптов с поддержкой мультиязычности
Author Message
Berserker Offline
Administrators

Posts: 12109
Post: #1
Кирпич 
1. Формат ERT устарел и не рекомендуется к применению.

2. В папке мода создаётся файл Lang\*.json, например Lang\имя мода.json.

3. Файл имеет следующий формат в кодировке UTF-8:
Code:
{
  "ключ 1-го уровня": {
    "ключ 2-го уровня": {
      "ключ 3-го уровня": "значение",
      "ключ 3-го уровня": "значение"
    }
  }
}

4. Вложенность и количество уровней определяется объёмом текста в моде и личным решением автора мода. Минимальным и достаточным вариантом выступают 1 уровень группировки с аббревиатурой мода и один уровень для каждого конкретного переводимого текста.

Пример для мода Battle Heroes:
Code:
{
  "bh": {
    "skill_diplomacy": "Дипломатия",
    "tournament_win_message": "Вы победили в турнире!"
  }
}

5. В текстах перевода могут быть подстановочные параметры (placeholders), которые в момент перевода должны быть заменены на числа/строки. Такие параметры заключаются между символами "@"..."@".

Пример:
Code:
{
  "bh": {
    "exp_gain_msg": "Вы получили @exp@ опыта"
  }
}

6. Получить перевод из ЕРМ можно через SN:T$1/?$2/[#3/#4...];
$1 - составной ключ перевода, где ключи разных уровней разделяются точками. Пример: ^bh.exp_gain_msg^

?$2 - в какую строку поместить перевод
#3 - название очередного параметра
#4 - значение очередного параметра

Пример:

Предполагается, что в v600 хранится опыт, полученный героем.
Поддерживается до 7-и пар параметр-значение в ЕРМ и неограниченное число в плагинах/Lua.


Скачать Герои 3 Эра и всё, что с ней связано
Поддержать проект
16.02.2020 22:49
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 12109
Post: #2

Вот как бы мне передать WoG Scripts мод в цепкие лапы сообщества? professornova появился с идеей и сразу исчез.


Скачать Герои 3 Эра и всё, что с ней связано
Поддержать проект
17.02.2020 05:40
Find all posts by this user Quote this message in a reply
ElfbI Offline

Posts: 127
Post: #3

Berserker, начиная с какой версии эры работает?


The dreams you kill will break your heart
22.02.2020 01:05
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 12109
Post: #4

ElfbI, с 2.6.2.


Скачать Герои 3 Эра и всё, что с ней связано
Поддержать проект
22.02.2020 02:58
Find all posts by this user Quote this message in a reply
ElfbI Offline

Posts: 127
Post: #5

Тогда не пойму, где ошибся. ERA 2.8.8 Ставлю в z1 произвольный текст - все ок, пытаюсь получить перевод, пустой вопрос.
[#3/#4...] необязательно, как я понял :
В ерм:


в Mods\ElfbI Pandora\Lang\ElfbI Pandora.json
Code:
{
  "pandora90": {
    "open_box_q": "Ящик Пандоры. Вы хотите открыть ящичек?"
  }
}
И сразу вопрос, как быть с выделением текста {}


The dreams you kill will break your heart
(This post was last modified: 22.02.2020 03:24 by ElfbI.)
22.02.2020 03:16
Find all posts by this user Quote this message in a reply
Algor Offline
Administrators

Posts: 3459
Post: #6

!!SN:T^pandora90.open_box_q^/?z1; получаем значение ключа


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
22.02.2020 03:26
Visit this user's website Find all posts by this user Quote this message in a reply
ElfbI Offline

Posts: 127
Post: #7

Algor, в примере
$1 - составной ключ перевода, где ключи разных уровней разделяются точками. Пример: ^bh.exp_gain_msg^

Но вы правы при этом - все заработало


The dreams you kill will break your heart
(This post was last modified: 22.02.2020 03:29 by ElfbI.)
22.02.2020 03:28
Find all posts by this user Quote this message in a reply
Algor Offline
Administrators

Posts: 3459
Post: #8

Ну так у тебя
ключ первого уровня = pandora90
ключ второго уровня = open_box_q
итого составной = pandora90.open_box_q
разве не так?


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
22.02.2020 03:30
Visit this user's website Find all posts by this user Quote this message in a reply
ElfbI Offline

Posts: 127
Post: #9

Algor, это я копипастил сюда ошибся. Ключ первого уровня на самом деле был ep

Работает без первого ключа вообще. С ключом через точку - пустой вопрос.



Code:
{
  "ep": {
    "open_box_q": "Ящик Пандоры. Вы хотите открыть ящичек?"
  }
}


The dreams you kill will break your heart
(This post was last modified: 22.02.2020 03:34 by ElfbI.)
22.02.2020 03:33
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 12109
Post: #10

Символы {} можно смело использовать. Экранировать внутри строк нужно табы, переводы строк, сами двойные кавычки. \t, \n, \"


Скачать Герои 3 Эра и всё, что с ней связано
Поддержать проект
22.02.2020 03:33
Find all posts by this user Quote this message in a reply
ElfbI Offline

Posts: 127
Post: #11

Berserker, про экранирование - лучше написать в примере в шапке, мне кажется. Для меня термин не очень понятный. Как перевод строки экранировать, например?


The dreams you kill will break your heart
22.02.2020 03:37
Find all posts by this user Quote this message in a reply
Algor Offline
Administrators

Posts: 3459
Post: #12

\n - перевод строки
\t - табулятор
\" -двойная кавычка
{ "ключ" : "первая строка\nвторая строка\n{\"желтая\" строка}" }


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
22.02.2020 03:40
Visit this user's website Find all posts by this user Quote this message in a reply
ElfbI Offline

Posts: 127
Post: #13

Algor, Berserker, спасибо за помощь, буду пытаться)


The dreams you kill will break your heart
22.02.2020 03:43
Find all posts by this user Quote this message in a reply
ElfbI Offline

Posts: 127
Post: #14

То, что я раньше принял за срабатывание, оказалось родным окном ящика, т к шанс на новый ящик 66%
Я пишу следующее и получаю пустой вопрос. Редактировать lua без разницы чем? Я уже не знаю, что еще.



Code:
{
  "ep": {
    "open_box_q": "{Ящик Пандоры.}\n\n Вы хотите открыть ящичек?"
  }
}


The dreams you kill will break your heart
22.02.2020 04:06
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 12109
Post: #15

ElfbI, а мод включён? Скинь весь архив мода, пожалуйста. https://dropmefiles.com


Скачать Герои 3 Эра и всё, что с ней связано
Поддержать проект
22.02.2020 04:10
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-2020 MyBB Group