diff --git a/Core/EmulationSettings.h b/Core/EmulationSettings.h index 60576312..ec8883f4 100644 --- a/Core/EmulationSettings.h +++ b/Core/EmulationSettings.h @@ -236,7 +236,8 @@ enum class Language French = 2, Japanese = 3, Russian = 4, - Spanish = 5 + Spanish = 5, + Ukrainian = 6 }; enum class StereoFilter diff --git a/Core/MessageManager.cpp b/Core/MessageManager.cpp index 0cd5a555..9df2a84c 100644 --- a/Core/MessageManager.cpp +++ b/Core/MessageManager.cpp @@ -322,6 +322,69 @@ std::unordered_map MessageManager::_esResources = { { "SynchronizationCompleted", u8"Sincronización completada." }, }; +std::unordered_map MessageManager::_ukResources = { + { "Cheats", u8"Чiти" }, + { "Debug", u8"Налагодження" }, + { "EmulationSpeed", u8"Швидкість емуляції" }, + { "ClockRate", u8"Тактова частота" }, + { "Error", u8"Помилка" }, + { "GameInfo", u8"Інформація про гру" }, + { "GameLoaded", u8"Гра завантажена" }, + { "IPS", u8"IPS" }, + { "Movies", u8"Записи" }, + { "NetPlay", u8"Гра по мережi" }, + { "Region", u8"Регiон" }, + { "SaveStates", u8"Збереження" }, + { "ScreenshotSaved", u8"Скріншот збережений" }, + { "SoundRecorder", u8"Запис звуку" }, + { "Test", u8"Тест" }, + + { "ApplyingIps", u8"Застосування патчу: %1" }, + { "CheatApplied", u8"1 Чiт застосований." }, + { "CheatsApplied", u8"Чiтів застосовано %1" }, + { "ConnectedToServer", u8"Підключення до сервера." }, + { "ConnectedAsPlayer", u8"Пiдключен як гравець %1" }, + { "ConnectedAsSpectator", u8"Підключений як спостерігач." }, + { "ConnectionLost", u8"З'єднання втрачено." }, + { "CouldNotConnect", u8"Не вдалося підключитися до сервера" }, + { "CouldNotIniitalizeAudioSystem", u8"Не вдалося ініціалізувати звукову підсистему" }, + { "CouldNotFindRom", u8"Не вдалося знайти відповідний ROM." }, + { "CouldNotLoadFile", u8"Не вдалося завантажити файл: %1" }, + { "EmulationMaximumSpeed", u8"Максимальна швидкiсть" }, + { "EmulationSpeedPercent", u8"%1%" }, + { "GameCrash", u8"Гра була аварійно завершена (%1)" }, + { "Lag", u8"Лаг" }, + { "Mapper", u8"Mapper: %1, SubMapper: %2" }, + { "MovieEnded", u8"Відтворення закінчено." }, + { "MovieInvalid", u8"Некоректна запис" }, + { "MovieMissingRom", u8"Вiдсутнiй ROM (%1) необхідний для відтворення" }, + { "MovieNewerVersion", u8"Запис створена в більш нової версії Mesen. Будь ласка завантажте останню версію." }, + { "MovieIncompatibleVersion", u8"Ця запись не сумісна з вашою версією Mesen" }, + { "MoviePlaying", u8"Відтворення запису: %1" }, + { "MovieRecordingTo", u8"Запис розпочато: %1" }, + { "MovieSaved", u8"Запис збережена: %1" }, + { "NetplayVersionMismatch", u8"Версія Mesen відрізняється. %1 був відключений." }, + { "PrgSizeWarning", u8"Розмiр PRG менше 32kb" }, + { "SaveStateEmpty", u8"Слот порожнiй." }, + { "SaveStateIncompatibleVersion", u8"Збереження #%1 несумісне з вашою версією Mesen." }, + { "SaveStateInvalidFile", u8"Некоректне збереження." }, + { "SaveStateLoaded", u8"Збереження #%1 завантажено." }, + { "SaveStateNewerVersion", u8"Збереження створено в більш нової версії Mesen. Будь ласка завантажте останню версію." }, + { "SaveStateSaved", u8"Збережено в #%1 слот." }, + { "ScanlineTimingWarning", u8"Таймiнг PPU був змінений." }, + { "ServerStarted", u8"Сервер запущено (Порт: %1)" }, + { "ServerStopped", u8"Сервер зупинено" }, + { "SoundRecorderStarted", u8"Запис розпочато to: %1" }, + { "SoundRecorderStopped", u8"Запис збережена: %1" }, + { "TestFileSavedTo", u8"Тест збережений: %1" }, + { "UnsupportedMapper", u8"Непідтримуваний mapper (%1), гра не завантажена." }, + + { "Google Диск", u8"Google Drive" }, + { "SynchronizationStarted", u8"Синхронізацію розпочато." }, + { "SynchronizationFailed", u8"Синхронізація не вдалася." }, + { "SynchronizationCompleted", u8"Синхронізація завершена." } +}; + std::list MessageManager::_log; SimpleLock MessageManager::_logLock; IMessageManager* MessageManager::_messageManager = nullptr; @@ -341,6 +404,7 @@ string MessageManager::Localize(string key) case Language::Japanese: resources = &_jaResources; break; case Language::Russian: resources = &_ruResources; break; case Language::Spanish: resources = &_esResources; break; + case Language::Ukrainian: resources = &_ukResources; break; } if(resources) { if(resources->find(key) != resources->end()) { diff --git a/Core/MessageManager.h b/Core/MessageManager.h index b2a90382..3cae9bf9 100644 --- a/Core/MessageManager.h +++ b/Core/MessageManager.h @@ -17,6 +17,7 @@ private: static std::unordered_map _jaResources; static std::unordered_map _ruResources; static std::unordered_map _esResources; + static std::unordered_map _ukResources; static SimpleLock _logLock; static std::list _log; diff --git a/GUI.NET/Dependencies/resources.en.xml b/GUI.NET/Dependencies/resources.en.xml index 733b88b1..7b90bfbb 100644 --- a/GUI.NET/Dependencies/resources.en.xml +++ b/GUI.NET/Dependencies/resources.en.xml @@ -137,6 +137,7 @@ 日本語 Русский Español + Українська All 0s (Default) diff --git a/GUI.NET/Dependencies/resources.es.xml b/GUI.NET/Dependencies/resources.es.xml index 639bdeac..1e58a7ff 100644 --- a/GUI.NET/Dependencies/resources.es.xml +++ b/GUI.NET/Dependencies/resources.es.xml @@ -511,6 +511,7 @@ 日本語 Русский Español + Українська \ No newline at end of file diff --git a/GUI.NET/Dependencies/resources.fr.xml b/GUI.NET/Dependencies/resources.fr.xml index 931f9223..5057aa2f 100644 --- a/GUI.NET/Dependencies/resources.fr.xml +++ b/GUI.NET/Dependencies/resources.fr.xml @@ -589,6 +589,7 @@ 日本語 Русский Español + Українська Tous les bits à 0 (Défaut) diff --git a/GUI.NET/Dependencies/resources.ja.xml b/GUI.NET/Dependencies/resources.ja.xml index 49290af7..f8b220ac 100644 --- a/GUI.NET/Dependencies/resources.ja.xml +++ b/GUI.NET/Dependencies/resources.ja.xml @@ -571,6 +571,7 @@ 日本語 Русский Español + Українська ビット全てを0にする (デフォルト) diff --git a/GUI.NET/Dependencies/resources.ru.xml b/GUI.NET/Dependencies/resources.ru.xml index 0c3ca490..8f18c28a 100644 --- a/GUI.NET/Dependencies/resources.ru.xml +++ b/GUI.NET/Dependencies/resources.ru.xml @@ -537,6 +537,7 @@ 日本語 Русский Español + Українська Все 0 (По умолчанию) diff --git a/GUI.NET/Dependencies/resources.uk.xml b/GUI.NET/Dependencies/resources.uk.xml new file mode 100644 index 00000000..43c22b6b --- /dev/null +++ b/GUI.NET/Dependencies/resources.uk.xml @@ -0,0 +1,560 @@ + + + +
+ Файл + Відкрити + Зберегти + Завантажити + Недавнi файлы + Выхiд + Гра + Пауза + Скидання + Стоп + Змінити сторону диска + Вибрати диск + Вилучити диск + Конфігурація VS + Вставити монету в слот 1 + Вставити монету в слот 2 + Опції + Швидкість емуляції + Нормальна (100%) + Збiльшити швидкiсть + Зменшити швидкiсть + Максимальна швидкiсть + Потрiйна (300%) + Подвiйна (200%) + Половина (50%) + Чверть (25%) + Показувати FPS + Розмір екрану + 1x + 2x + 3x + 4x + Вручну + Повний екран + Фільтр зображення + Немає + NTSC + Білінійна інтерполяція + Звук + Пристрої введення + Регiон + Авто + NTSC + PAL + Dendy + Вiдео + Емуляція + Налаштування + Утиліти + Гра по мережі + Запустити сервер + Підключитися до сервера + Вибрати контроллер + Гравець 1 + Гравець 2 + Гравець 3 + Гравець 4 + Спостерігач + Знайти сервер... + Налаштувати профіль + Записи + Програти + Записати + Спочатку + Негайно + Зупинити запис + Запис звуку + Почати + Зупинити + Чити + Тести + Запустити... + Записати + Спочатку + Негайно + Iз запису + Тест + Зупинити запис + Запустіті всі тести + Налагодження + Лог + Зробити скріншот + Допомога + Перевірити оновлення + Повідомити про помилку + Про програму + + + Витяг файлу, будь ласка почекайте + + + Назва + Автор + Copyright + Звукові чіпи +
+
+ Закрити +
+
+ Загальнi + Розширені + Переплутана шпаруватість (як на старих клонах) + Заглушати ультразвукові частоти на каналі triangle (зменшує "трiск") + Ефекти + Стерео + Відключити + Затримка + Панорамування + мс + кут в градусах + Відлуння + Включена + Затримка : + Сила : + Відключати звук при втраті фокуса + Приглушати звук при потере фокуса + Увімкнути звук + Частота дискретизації: + мс + Затримка: + Пристрій: + Гучність + Гучність + Скидання + OK + Відміна + DMC + Noise + Triangle + Square 2 + Square 1 + Загальна + FDS + MMC5 + VRC6 + VRC7 + Namco + Sunsoft +
+
+ OK + Отмена + Контролери + Налаштувати + Налаштувати + Контролер 1: + Контролер 2: + Контролер 4: + Контролер 3: + Налаштувати + Налаштувати + Тип консолі : + Порт розширення : + Використовувати NES Four Score + Автоматично налаштовувати контролери при завантаженні гри + Emulator Keys + + Розширені + Відображати введення + Порт 1 + Порт 2 + Порт 3 + Порт 4 + Позиція : + Відображати горизонтально +
+
+ Швидкість турбо-кнопок: + Швидко + Повiльно + Контролер #1 + Контролер #2 + Контролер #3 + Контролер #4 + Скидання + Очистити + OK + Відміна +
+
+ Загальнi + Розмір : + Фiльтр : + Включити вертикальну синхронізацію + Співвідношення сторін : + Білінійна інтерполяція + Показувати FPS + Використовувати HDNes HD packs + Overscan + Overscan + Злiвава + Зверху + Знизу + Справа + Палiтра + За замовчуванням (NTSC) + Вибрати палітру + Експорт .pal + Завантажити .pal + Зображення + Шаблони + Загальні налаштування + Яркiсть + Контраст + Відтінок + Насиченість + NTSC фiльтр + Артефакти + Вицвітання + Окантування + Гамма + Дозвіл + Рiзкiсть + Злиття полів + Scanlines + Scanlines + Скидання + Composite + S-Video + RGB + Monochrome + OK + Відміна +
+
+ Загальні + % (0 = Максимальна швидкiсть) + Швидкість емуляції : + + Розширені + Використовувати альтернативний IRQ MMC3 + Дозволити неприпустимі комбінації (Вниз+Вгору і Ліворуч+Вправо) + Відключити ліміт спрайтів (зменшує мерехтіння) + Вміст ОЗУ при включенні : + + Розгін + Розгін CPU + УВАГА: Розгін може викликати помилки в деяких іграх! + Тактова частота : + % (За замовчуванням: 100%) + + Конфігурація PPU + Додаткові scanlines до NMI : + Додаткові scanlines пiсля NMI : + Тактова частота (NTSC) : + Тактова частота (PAL) : + Тактова частота (Dendy) : + + Не розганяти APU (Запобігає зміні тону звуку) + + Показувати лічильник лага + Скинути лічильник лага + + OK + Вiдмiна +
+
+ Загальні + Мова : + Запускати тільки одну копію Mesen + Автоматично перевіряти оновлення + Ставити на паузу після програвання запису + Дозволити введення в тлі + Ставити на паузу при втраті фокуса + Автоматично завантажувати IPS + Відкрити папку Mesen + Асоціації файлів + Асоціації файлів + .NES + .FDS (Famicom Disk System) + .MMO (Записи) + .MST (Збереження) + Розширені + Автоматично вставляти диск 1 стороною А при завантаженні FDS + Використовувати швидке завантаження FDS + + Хмарні збереження + Mesen має можливість інтеграції з Google Drive . Коли інтеграція з Google Drive включена, ваші збереження стають доступні з будь-якого комп'ютера і можуть бути синхронізовані між комп'ютерами. Також, збереження зберігаються на Google Drive можуть бути відновлені якщо ви видалите їх зі свого комп'ютера. + Iнтеграція с Google Drive включена + Вимкнути інтеграцію + Увімкнути інтеграцію + Востаннє синхронізовано : + Синхронізувати + + Відключити вбудовану базу даних + + NSF / NSFe + Переходити на наступний трек після + мілісекунд тиші + Обмежити тривалість відтворення + секундами + Відключити IRQs APU (Рекомендовано) + + OK + Вiдмiна +
+
+ 8888 + Порт: + Публічний сервер + Назва : + Дозволити спостерігачів + Максимально гравців : + Пароль: + OK + Вiдмiна +
+
+ 8888 + Iм'я сервера: + Порт: + Ввійти як спостерігач + OK + Вiдмiна +
+
+ Налаштування імпорту + Файл: + Гра: + Вибрати... + Вибрати... + Iмпорт + Вiдмiна +
+
+ Пошук : + Iмпорт + Вiдео +
+
+ Чiты + Додати чiт + Видалити + Видалити вибрані чіти + Видалити всі чіти для обраної гри + Додати чiт + Видалити + Видалити + Гра + Опис чiта + Код + Iмпорт + З бази даних + З файлу (XML, CHT) + Експорт + Всi чіти + Для обраної гри + Експорт + Обрані чiты + Експорт + Відключити всі чіти + + Пошук чiтiв + Скидання + Вiдмiна + Поточне значення + Попереднє значення + Додати фiльтр + Додати фiльтр + Створити чiт + Створити чiт + + Ставити на паузу коли вікно не активно + + OK + Вiдмiна +
+
+ Гра: + Опис чiта : + Код + Вручну : + Game Genie : + Pro Action Rocky : + Адрес : + Нове значення : + Пам'ять + Game Code + Порівняти значення + Вибрати + Чiт активований + OK + Вiдмiна +
+
+ Mesen + © 2016 M. Bibaud (aka Sour) + Сайт: + www.mesen.ca + Версiя: 0.4.3 (Beta) + &OK +
+
+ Гра + Модель PPU + DIP Switches +
+
+ Остання версія : + Поточна версія : + Changelog + Оновити + Вiдмiна +
+
+ Пошук : + ОК + Вiдмiна +
+
+ + Всi файли (*.*)|*.* + Записи (*.mmo)|*.mmo|All Files (*.*)|*.* + Wave files (*.wav)|*.wav|All Files (*.*)|*.* + Palette Files (*.pal)|*.pal|All Files (*.*)|*.* + Всі підтримувані формати (*.nes, *.zip, *.7z, *.nsf, *.nsfe, *.fds, *.unf)|*.NES;*.ZIP;*.7z;*.FDS;*.NSF;*.NSFE;*.UNF|NES Roms (*.nes, *.unf)|*.NES;*.UNF|Famicom Disk System Roms (*.fds)|*.FDS|NSF files (*.nsf, *.nsfe)|*.nsf;*.nsfe|ZIP Archives (*.zip)|*.ZIP|7-Zip Archives (*.7z)|*.7z|All (*.*)|*.* + Всі підтримувані формати (*.nes, *.zip, *.7z, *.fds, *.nsf, *.nsfe, *.unf, *.ips)|*.NES;*.ZIP;*.7z;*.IPS;*.FDS;*.NSF;*.NSFE;*.UNF|NES Roms (*.nes, *.unf)|*.NES;*.UNF|Famicom Disk System Roms (*.fds)|*.FDS|NSF files (*.nsf, *.nsfe)|*.nsf;*.nsfe|ZIP Archives (*.zip)|*.ZIP|7-Zip Archives (*.7z)|*.7z|IPS Patches (*.ips)|*.IPS|All (*.*)|*.* + Test files (*.mtp)|*.mtp|All (*.*)|*.* + Всі підтримувані формати (*.cht, *.xml)|*.cht;*.xml + + Продовжити + Пауза + Запустити сервер + Зупинити сервер + Пiдключитися к серверу + Відключитися + Гравець {0} + + {0} Знайдені ROM файли + + iгр {0}, читiв {1} + {0} читiв імпортовано для {1}. + + Наступний трек (Затисніть для перемотування) + <безіменний> + <невідомий> + + The Visual Studio Runtime не встановлений. + <пусто> + Не вдалося перевірити оновлення. Детально: {0} + FDS BIOS не знайдений. BIOS необхідний для запуску FDS игр. Вибрати BIOS зараз? + Диск {0} Сторона {1} + Файл не знайдено: {0} + Обраний биос некоректний. + Дана опція дозволяє використовувати HD packs для емулятора HDNes якщо вони знайдени. HD Packs повинні бути поміщені в папку "HdPacks" в папці з ім'ям збігається з ім'ям ROM. наприклад: HD Pack для MyRom.nes повинні лежати в "HdPacks\MyRom\hires.txt". Зауваження: Підтримка HD Packs не закінчена і має ряд обмежень. + Ви використовуєте останню версію Mesen + Пропатчити і скинути поточну гру? + Будь ласка, оберіть ROM відповідний IPS. + Неможливо завантажити файл. Перевірте ваше з'єднання з інтернетом і спробуйте ще раз. Детально: + Mesen повинен завантажити та встановити Microsoft Visual Studio 2015 runtime щоб продовжити. Хочете автоматично завантажити Microsoft Visual Studio 2015 runtime з сайту Microsoft і встановити його зараз?" + Mesen не може запуститися через відсутні файли. Помилка: WinMesen.dll не знайдений. + Невідома помилка. Детально: {0} + Завантаження не вдалася - файл пошкоджений. Будь ласка відвідайте сайт Mesen і завантажте останню версію вручну. + Оновлення пройшло успішно. + Оновлення не може бути розпочато через відсутніх файлів + Microsoft .NET Framework 4.5 не знайдений. Будь ласка завантажте і встановіть останню версію .NET Framework з сайту Microsoft і спробуйте знову. + + Mesen не зміг підключитися до вашого аккаунту Google Drive - спробуйте ще раз. + + The selected file ({0}) is not a valid cheat file. + The selected file ({0}) is not a valid XML file. + The selected cheat file ({0}) contains no cheats that match the selected game. + + + + Пусто + Стандартний контролер + Zapper + Arkanoid + + + Auto + NTSC (8:7) + PAL (11:8) + Стандарт (4:3) + Широкий екран (16:9) + + + Відсутнє + NTSC + xBRZ 2x + xBRZ 3x + xBRZ 4x + xBRZ 5x + xBRZ 6x + HQ 2x + HQ 3x + HQ 4x + Scale2x + Scale3x + Scale4x + 2xSai + Super2xSai + SuperEagle + Prescale 2x + Prescale 3x + Prescale 4x + + + NES + Famicom + + + Пусто + Zapper + Адаптер на 4 гравців + Arkanoid + Oeka Kids Tablet + + + RP2C03 + RP2C04-0001 + RP2C04-0002 + RP2C04-0003 + RP2C04-0004 + RP2C05-01 + RP2C05-02 + RP2C05-03 + RP2C05-04 + RP2C05-05 + + + Зверху злiва + Зверху справа + Снизу злiва + Снизу справа + + + Використовувати мову за замовчуванням + English + Français + 日本語 + Русский + Español + Українська + + + Всi 0 (По умолчанию) + Всi 1 + Випадкові значення + + + Менше нiж + Дорівнює + Не дорівнює + Більше ніж + + + Менше + Дорівнює + Не дорівнює + Бiльше + + +
\ No newline at end of file diff --git a/GUI.NET/Forms/ResourceHelper.cs b/GUI.NET/Forms/ResourceHelper.cs index 0e88f17c..7e047922 100644 --- a/GUI.NET/Forms/ResourceHelper.cs +++ b/GUI.NET/Forms/ResourceHelper.cs @@ -21,7 +21,8 @@ namespace Mesen.GUI.Forms French = 2, Japanese = 3, Russian = 4, - Spanish = 5 + Spanish = 5, + Ukrainian = 6 } class ResourceHelper @@ -51,6 +52,7 @@ namespace Mesen.GUI.Forms case "ja": language = Language.Japanese; break; case "ru": language = Language.Russian; break; case "es": language = Language.Spanish; break; + case "uk": language = Language.Ukrainian; break; } } @@ -63,6 +65,7 @@ namespace Mesen.GUI.Forms case Language.Japanese: filename = "resources.ja.xml"; break; case Language.Russian: filename = "resources.ru.xml"; break; case Language.Spanish: filename = "resources.es.xml"; break; + case Language.Ukrainian: filename = "resources.uk.xml"; break; } _language = language; diff --git a/GUI.NET/Forms/frmMain.cs b/GUI.NET/Forms/frmMain.cs index aee5eed7..ac778f56 100644 --- a/GUI.NET/Forms/frmMain.cs +++ b/GUI.NET/Forms/frmMain.cs @@ -1440,6 +1440,7 @@ namespace Mesen.GUI.Forms case Language.Japanese: langCode = "ja"; break; case Language.Russian: langCode = "ru"; break; case Language.Spanish: langCode = "es"; break; + case Language.Ukrainian: langCode = "uk"; break; } xmlDoc.LoadXml(client.DownloadString("http://www.mesen.ca/Services/GetLatestVersion.php?v=" + InteropEmu.GetMesenVersion() + "&p=win&l=" + langCode)); Version currentVersion = new Version(InteropEmu.GetMesenVersion()); diff --git a/GUI.NET/GUI.NET.csproj b/GUI.NET/GUI.NET.csproj index dcbc4588..ac6965c9 100644 --- a/GUI.NET/GUI.NET.csproj +++ b/GUI.NET/GUI.NET.csproj @@ -784,6 +784,9 @@ Always Designer + + Always + Always Designer diff --git a/GUI.NET/Program.cs b/GUI.NET/Program.cs index 9ac94b0f..5c99aa34 100644 --- a/GUI.NET/Program.cs +++ b/GUI.NET/Program.cs @@ -75,6 +75,7 @@ namespace Mesen.GUI case Language.Japanese: message = "Microsoft .NET Framework 4.5はインストールされていないため、Mesenは起動できません。Microsoft .NET Frameworkの最新版をMicrosoftのサイトからダウンロードして、インストールしてください。"; break; case Language.Russian: message = "Microsoft .NET Framework 4.5 не найден. Пожалуйста загрузите и установите последнюю версию .NET Framework с сайта Microsoft и попробуйте снова."; break; case Language.Spanish: message = "El Microsoft .NET Framework 4.5 no se ha encontrado. Por favor, descargue la versión más reciente de .NET Framework desde el sitio de Microsoft y vuelva a intentarlo."; break; + case Language.Ukrainian: message = "Microsoft .NET Framework 4.5 не знайдений. Будь ласка завантажте і встановіть останню версію .NET Framework з сайту Microsoft і спробуйте знову."; break; } MessageBox.Show(message, "Mesen", MessageBoxButtons.OK, MessageBoxIcon.Error); return; @@ -85,6 +86,7 @@ namespace Mesen.GUI case Language.Japanese: message = "予期しないエラーが発生しました。\n\nエラーの詳細:\n{0}"; break; case Language.Russian: message = "Неизвестная ошибка. Подробно: {0}"; break; case Language.Spanish: message = "Se ha producido un error inesperado. Detalles del error: {0}"; break; + case Language.Ukrainian: message = "Невідома помилка. Детально: {0}"; break; } MessageBox.Show(string.Format(message, e.ToString()), "Mesen", MessageBoxButtons.OK, MessageBoxIcon.Error); }