###===============================================  ============================
 ## Поддержка
 ###===============================================  ============================
 Поддержать: 
https://dk-plugins.ru/donate
 Стать патроном: 
https://www.patreon.com/dkplugins
 ###===============================================  ============================
 ## Требования и зависимости
 ###===============================================  ============================
 Наличие включенного плагина DKTools версии 9.0.0 или выше
 ###===============================================  ============================
 ## Демоверсия
 ###===============================================  ============================
 
https://dk-plugins.ru/mv/system/localization/
 ###===============================================  ============================
 ## Специальная совместимость с другими плагинами
 ###===============================================  ============================
 Плагин совместим с большинством других плагинов, но все же могут попасться плагины,
 которые не работают с локализацией. Я добавляю совместимость этих плагинов.
 Чтобы совместимость работала правильно,
 плагины из следующего списка необходимо разместить ВЫШЕ плагина локализации:
 YEP_MessageCore.js
 YEP_OptionsCore.js
 YEP_QuestJournal.js
 ## Внимание! ##
 Если вы считаете, что какой-то плагин несовместим с локализацией сообщите мне об этом.
 ###===============================================  ============================
 ## Инструкции
 ###===============================================  ============================
 ### 1 ### Установка ###
 1. Добавить хотя бы один язык в параметре "Языки игры".
 2. Если вы меняли стандартный шрифт в игре, то его также нужно изменить в параметре "Стандартный шрифт".
 ## Неполный список рекомендованных локалей ##
 Russian - ru
 Ukrainian - uk
 Belarusian - be
 English - en
 Chinese - zh
 Japanese - ja
 Korean - ko
 French - fe
 German - de
 Spanish - es
 Czech - cs
 Italian - it
 Если вы не нашли в этом списке локаль, то можете найти ее в интернете, например,
 здесь: 
https://www.science.co.il/language/Locale-codes.php
 ### 2 ### Использование ###
 1. При первом запуске игры плагин создаст папки для переводов и json файлы для каждого языка.
 2. Для локализации текста используйте теги: {}.
 3. Для использования переменной внутри текста используйте тег \VAR[ID],
 где ID - номер переменной. Используйте только для глубины перевода (см. ниже).
 ### Добавление нового перевода на примере события с сообщением ###
 1. Создайте новое событие, добавьте отображение сообщения.
 2. В сообщении напишите {text}. Сохраните событие и проект.
 3. Откройте json файлы для каждого языка.
 4. Первый символ файла должна быть {, а последний - }.
 Эти символы нельзя удалять. Внутри этих скобок пишется перевод игры.
 6. Добавьте в один из файлов следующий текст и сохраните его: "text": "Текст".
 7. Запустите игру и созданное событие.
 ### Внимание! ###
 Кодировка в файлах перевода должна быть UTF-8 без BOM.
 ###===============================================  ============================
 ## Использование массивов
 ###===============================================  ============================
 Массивы загружаются в данные локализации по названию файла.
 ## Использование массивов на примере файла "quests.json" ##
 1. Файл имеет следующую структуру:
 [null, { "name": "Quest 1" }, { "name": "Quest 2" }]
 2. Чтобы вывести в сообщении текст "Quest 1", необходимо прописать тег
 {quests[1].name}
 Чтобы обратиться к массиву сначала необходимо написать название файла,
 в котором он хранится, затем необходимо указать в квадратных скобках
 номер элемента и поле, которое должно быть использовано.
 ###===============================================  ============================
 ## Локализованные ресурсы
 ## Использование разных файлов (аудио, изображения, видео) для каждого языка
 ###===============================================  ============================
 Данная функция поможет использовать специальные файлы для разных языков.
 Например, если на них есть текст, то можно сделать разные изображения для каждого языка,
 и плагин сам будет выбирать нужное изображение.
 Данная функция работает только с аудио, видео и изображениями.
 ## Внимание! ##
 Для работы данной функции на мобильных устройствах и в браузерах
 необходимо выставить режим работы файловой системы Nwjs + Stamp в плагине DKTools!
 1. Создайте новую папку в необходимой папке
 2. В качестве имени папки используйте необходимую локаль игры
 3. Переместите файлы в созданную папку
 Пример:
 Необходимо использовать разные файлы Loading.png для разных языков
 Основной файл находится в папке "img/system".
 Создаем папку "ru" в "img/system" и перемещаем туда Loading.png для русского языка.
 Например, для английского языка будет использоваться основной файл из "img/system",
 а для русского языка из созданной нами "img/system/ru".
 ###===============================================  ============================
 ## Использование неограниченного количества файлов перевода
 ###===============================================  ============================
 ## Внимание! ##
 Для работы данной функции на мобильных устройствах и в браузерах
 необходимо выставить режим работы файловой системы Nwjs + Stamp в плагине DKTools!
 Данная инструкция предназначена для папки, которая имеет название по умолчанию (locales)
 Если Вы переименовали папку в параметрах плагина, то используйте новое название папки!
 Если у Вас большое количество текста в игре, и Вам неудобно пользоваться одним json файлом,
 то Вы можете разбить его на несколько json файлов и поместить в отдельную папку.
 Пример для английской локали (en):
 1. В папке locales создайте папку en.
 2. Перенесите в новую папку свой старый файл en.json из папки locales.
 3. Создайте несколько json файлов с любыми именами.
 4. В каждом файле пропишите необходимые теги и сохраните изменения.
 ## Внимание! ##
 Все теги во всех файлах должны иметь уникальное название!
 В случае совпадения имен тегов будет загружен первый из них (порядок не гарантируется)!
 ### 3 ### Параметры плагина ###
 1. Игнорируемые файлы - Файлы, которые игнорируются командой плагина UpdateLocalizationTags.
 2. Глубина перевода - Количество операций перевода текста.
 В переведенном тексте Вы можете указать другой тег,
 и он будет переведен, если глубина перевода больше 1.
 Пример:
 "text": "Текст {text2}",
 "text2" "2"
 При глубине перевода больше 1 в итоге получится "Текст 2".
 3. Длина текста - Длина текста, при которой он сохраняется в кэш.
 Это нужно, чтобы сократить необходимые вычислительные ресурсы для перевода.
 Кэш автоматически очищается при переходе между картами.
 ### 4 ### Специальные символы сообщений ###
 1. \language - Вывести название текущего языка
 ### 5 ### Команды плагина ###
 1. UpdateLocalizationTags
 Обновить теги в файлах перевода.
 Команда плагина проверяет json файлы из папки "data/" (кроме игнорируемых файлов,
 заданных в параметрах плагина), а также все параметры всех плагинов.
 Найденные теги сохраняются в новые файлы в папке локализации с префиксом "new".
 2. ClearLocalizationCache
 Очистить кэш локализации.
 ### 6 ### Вызовы скриптов ###
 1. DKTools.Localization.locale - Получить текущую локаль
 2. DKTools.Localization.locales - Получить массив локалей
 3. DKTools.Localization.language - Получить текущий язык
 4. DKTools.Localization.languages - Получить массив языков
 5. DKTools.Localization.getText(text) - Получить локализованный текст
 6. DKTools.Localization.getPrevLocale() - Получить предыдущую локаль
 7. DKTools.Localization.getNextLocale() - Получить следующую локаль
 8. DKTools.Localization.getPrevLanguage() - Получить предыдущий язык
 9. DKTools.Localization.getNextLanguage() - Получить следующий язык
 10. DKTools.Localization.selectLocale(locale) - Установить локаль (асинхронная операция, возвращает Promise)
 11. DKTools.Localization.selectPrevLocale() - Выбрать предыдущую локаль (асинхронная операция, возвращает Promise)
 12. DKTools.Localization.selectNextLocale() - Выбрать следующую локаль (асинхронная операция, возвращает Promise)
 13. DKTools.Localization.addChangeLocaleListener(funct  ion) - Добавить слушателя изменения локали (синхронная/асинхронная функция)
 14. DKTools.Localization.getPrimaryLocale() - Получить основную локаль
 15. DKTools.Localization.getPrimaryLanguage() - Получить основной язык
 ### 7 ### Как добавить опцию в YEP_OptionsCore.js ###
 1. Поместите плагин YEP_OptionsCore ВЫШЕ в списке плагинов
 2. Включите параметр "Показывать команду" в плагине локализации
 3. Добавьте новую опцию в YEP_OptionsCore.js со следующими параметрами:
 Symbol: locale
 Show/Hide:
 show = LocalizationParam.get('Show Options Command');
 Draw Option Code:
 var rect = this.itemRectForText(index);
 var statusWidth = this.statusWidth();
 var titleWidth = rect.width - statusWidth;
 this.resetTextColor();
 this.changePaintOpacity(this.isCommandEnabled(inde  x));
 this.drawOptionsName(index);
 this.drawText(this.statusText(index), titleWidth, rect.y, statusWidth, 'center');
 
Социальные закладки