Merge pull request #7 from BudzynskiMaciej/feature/add-polish-lang

Polish translation added for Mesen
This commit is contained in:
NovaSquirrel 2020-11-11 22:58:15 -05:00 committed by GitHub
commit a3a2f5f2f1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 1472 additions and 0 deletions

View file

@ -557,6 +557,7 @@ enum class Language
Catalan = 8, Catalan = 8,
Chinese = 9, Chinese = 9,
Italian = 10, Italian = 10,
Polish = 11,
}; };
enum class MouseDevice enum class MouseDevice

View file

@ -753,6 +753,81 @@ std::unordered_map<string, string> MessageManager::_itResources = {
{ "SynchronizationCompleted", u8"Sincronizzazione completata." }, { "SynchronizationCompleted", u8"Sincronizzazione completata." },
}; };
std::unordered_map<string, string> MessageManager::_plResources = {
{ "Cheats", u8"Oszustwa" },
{ "Debug", u8"Debug" },
{ "EmulationSpeed", u8"Szybkość emulacji" },
{ "ClockRate", u8"Częstotliwość zegara" },
{ "Error", u8"Błąd" },
{ "GameInfo", u8"Informacje o grze" },
{ "GameLoaded", u8"Gra została załadowana" },
{ "Input", u8"Wejście" },
{ "Patch", u8"Poprawk" },
{ "Movies", u8"Filmy" },
{ "NetPlay", u8"Gra online" },
{ "Region", u8"Region" },
{ "SaveStates", u8"Zapisane stany" },
{ "ScreenshotSaved", u8"Zapisano zrzut ekranu" },
{ "SoundRecorder", u8"Rejestrator dźwięku" },
{ "Test", u8"Test" },
{ "VideoRecorder", u8"Rejestrator wideo" },
{ "ApplyingPatch", u8"Zastosowanie poprawki: %1" },
{ "CheatApplied", u8"Zastosowano 1 kod." },
{ "CheatsApplied", u8"Zastosowano %1 kodów." },
{ "CheatsDisabled", u8"Wszystkie kody wyłączone." },
{ "CoinInsertedSlot", u8"Włożono monetę (wejście %1)" },
{ "ConnectedToServer", u8"Połączono z serwerem." },
{ "ConnectedAsPlayer", u8"Połączono jako gracz %1" },
{ "ConnectedAsSpectator", u8"Połączony jako widz." },
{ "ConnectionLost", u8"Utracono połączenie z serwerem." },
{ "CouldNotConnect", u8"Nie można połączyć się z serwerem." },
{ "CouldNotInitializeAudioSystem", u8"Nie można zainicjować systemu audio." },
{ "CouldNotFindRom", u8"Nie można znaleźć pasującej pamięci ROM gry." },
{ "CouldNotLoadFile", u8"Nie można załadować pliku: %1" },
{ "EmulationMaximumSpeed", u8"Maksymalna prędkość" },
{ "EmulationSpeedPercent", u8"%1%" },
{ "FdsDiskInserted", u8"Dysk %1 Strona %2 włożono." },
{ "Frame", u8"Klatka" },
{ "GameCrash", u8"Gra się zawiesiła (%1)" },
{ "KeyboardModeDisabled", u8"Tryb klawiatury wyłączony." },
{ "KeyboardModeEnabled", u8"Tryb klawiatury włączony." },
{ "Lag", u8"Opóźnienie" },
{ "Mapper", u8"Mapper: %1, SubMapper: %2" },
{ "MovieEnded", u8"Film się skończył." },
{ "MovieInvalid", u8"Nieprawidłowy plik filmowy." },
{ "MovieMissingRom", u8"Brak pamięci ROM (%1) wymaganej do odtworzenia filmu." },
{ "MovieNewerVersion", u8"Nie można załadować filmów utworzonych w nowszej wersji Mesen. Proszę pobrać najnowszą wersję." },
{ "MovieIncompatibleVersion", u8"Ten film jest niekompatybilny z tą wersją Mesena." },
{ "MoviePlaying", u8"Odtwarzam film: %1" },
{ "MovieRecordingTo", u8"Nagrywanie do: %1" },
{ "MovieSaved", u8"Film zapisany do pliku: %1" },
{ "NetplayVersionMismatch", u8"%1 nie działa w tej samej wersji Mesena i został rozłączony." },
{ "PrgSizeWarning", u8"Rozmiar PRG jest mniejszy niż 32 kB" },
{ "SaveStateEmpty", u8"Miejsce zapisu jest puste." },
{ "SaveStateIncompatibleVersion", u8"Stan zapisu nie jest kompatybilny z tą wersją Mesena." },
{ "SaveStateInvalidFile", u8"Nieprawidłowy plik stanu zapisu." },
{ "SaveStateLoaded", u8"Załadowano stan #%1." },
{ "SaveStateMissingRom", u8"Brak wymaganego ROMu (%1) do wczytania stanu zapisu." },
{ "SaveStateNewerVersion", u8"Nie można wczytać stanów zapisu utworzonych przez nowszą wersję Mesena. Proszę pobrać najnowszą wersję." },
{ "SaveStateSaved", u8"Stan #%1 został zapisany." },
{ "SaveStateSlotSelected", u8"Wybrano miejsce nr %1." },
{ "ScanlineTimingWarning", u8"Czas PPU został zmieniony." },
{ "ServerStarted", u8"Serwer uruchomiony (Port: %1)" },
{ "ServerStopped", u8"Serwer został zatrzymany" },
{ "SoundRecorderStarted", u8"Nagrywanie do: %1" },
{ "SoundRecorderStopped", u8"Nagranie zapisane w: %1" },
{ "TestFileSavedTo", u8"Plik testowy zapisany w: %1" },
{ "UnsupportedMapper", u8"Nieobsługiwany mapper (%1), nie można załadować gry." },
{ "VideoRecorderStarted", u8"Nagrywanie do: %1" },
{ "VideoRecorderStopped", u8"Nagranie zapisane w: %1" },
{ "GoogleDrive", u8"Dysk Google" },
{ "SynchronizationStarted", u8"Rozpoczęto synchronizację." },
{ "SynchronizationFailed", u8"Synchronizacja nie powiodła się." },
{ "SynchronizationCompleted", u8"Synchronizacja zakończona." },
};
std::list<string> MessageManager::_log; std::list<string> MessageManager::_log;
SimpleLock MessageManager::_logLock; SimpleLock MessageManager::_logLock;
SimpleLock MessageManager::_messageLock; SimpleLock MessageManager::_messageLock;
@ -792,6 +867,7 @@ string MessageManager::Localize(string key)
case Language::Catalan: resources = &_caResources; break; case Language::Catalan: resources = &_caResources; break;
case Language::Chinese: resources = &_zhResources; break; case Language::Chinese: resources = &_zhResources; break;
case Language::Italian: resources = &_itResources; break; case Language::Italian: resources = &_itResources; break;
case Language::Polish: resources = &_plResources; break;
} }
if(resources) { if(resources) {
if(resources->find(key) != resources->end()) { if(resources->find(key) != resources->end()) {

View file

@ -20,6 +20,7 @@ private:
static std::unordered_map<string, string> _caResources; static std::unordered_map<string, string> _caResources;
static std::unordered_map<string, string> _zhResources; static std::unordered_map<string, string> _zhResources;
static std::unordered_map<string, string> _itResources; static std::unordered_map<string, string> _itResources;
static std::unordered_map<string, string> _plResources;
static bool _osdEnabled; static bool _osdEnabled;
static SimpleLock _logLock; static SimpleLock _logLock;

View file

@ -1116,6 +1116,7 @@
<Value ID="Catalan">Català</Value> <Value ID="Catalan">Català</Value>
<Value ID="Chinese">中文</Value> <Value ID="Chinese">中文</Value>
<Value ID="Italian">Italiano</Value> <Value ID="Italian">Italiano</Value>
<Value ID="Polish">Polski</Value>
</Enum> </Enum>
<Enum ID="VideoCodec"> <Enum ID="VideoCodec">
<Value ID="None">Cap (vídeo sense compressió)</Value> <Value ID="None">Cap (vídeo sense compressió)</Value>

View file

@ -1132,6 +1132,7 @@
<Value ID="Catalan">Català</Value> <Value ID="Catalan">Català</Value>
<Value ID="Chinese">中文</Value> <Value ID="Chinese">中文</Value>
<Value ID="Italian">Italiano</Value> <Value ID="Italian">Italiano</Value>
<Value ID="Polish">Polski</Value>
</Enum> </Enum>
<Enum ID="RamPowerOnState"> <Enum ID="RamPowerOnState">
<Value ID="AllZeros">All 0s (Default)</Value> <Value ID="AllZeros">All 0s (Default)</Value>

View file

@ -1133,6 +1133,7 @@
<Value ID="Catalan">Català</Value> <Value ID="Catalan">Català</Value>
<Value ID="Chinese">中文</Value> <Value ID="Chinese">中文</Value>
<Value ID="Italian">Italiano</Value> <Value ID="Italian">Italiano</Value>
<Value ID="Polish">Polski</Value>
</Enum> </Enum>
<Enum ID="VideoCodec"> <Enum ID="VideoCodec">
<Value ID="None">Ninguno (Sin comprimir)</Value> <Value ID="None">Ninguno (Sin comprimir)</Value>

View file

@ -1130,6 +1130,7 @@
<Value ID="Catalan">Català</Value> <Value ID="Catalan">Català</Value>
<Value ID="Chinese">中文</Value> <Value ID="Chinese">中文</Value>
<Value ID="Italian">Italiano</Value> <Value ID="Italian">Italiano</Value>
<Value ID="Polish">Polski</Value>
</Enum> </Enum>
<Enum ID="RamPowerOnState"> <Enum ID="RamPowerOnState">
<Value ID="AllZeros">Tous les bits à 0 (Défaut)</Value> <Value ID="AllZeros">Tous les bits à 0 (Défaut)</Value>

View file

@ -1131,6 +1131,7 @@
<Value ID="Catalan">Català</Value> <Value ID="Catalan">Català</Value>
<Value ID="Chinese">中文</Value> <Value ID="Chinese">中文</Value>
<Value ID="Italian">Italiano</Value> <Value ID="Italian">Italiano</Value>
<Value ID="Polish">Polski</Value>
</Enum> </Enum>
<Enum ID="RamPowerOnState"> <Enum ID="RamPowerOnState">
<Value ID="AllZeros">Tutto a 0 (Predefinito)</Value> <Value ID="AllZeros">Tutto a 0 (Predefinito)</Value>

View file

@ -1118,6 +1118,7 @@
<Value ID="Catalan">Català</Value> <Value ID="Catalan">Català</Value>
<Value ID="Chinese">中文</Value> <Value ID="Chinese">中文</Value>
<Value ID="Italian">Italiano</Value> <Value ID="Italian">Italiano</Value>
<Value ID="Polish">Polski</Value>
</Enum> </Enum>
<Enum ID="RamPowerOnState"> <Enum ID="RamPowerOnState">
<Value ID="AllZeros">ビット全てを0にする (デフォルト)</Value> <Value ID="AllZeros">ビット全てを0にする (デフォルト)</Value>

File diff suppressed because it is too large Load diff

View file

@ -1132,6 +1132,7 @@
<Value ID="Catalan">Català</Value> <Value ID="Catalan">Català</Value>
<Value ID="Chinese">中文</Value> <Value ID="Chinese">中文</Value>
<Value ID="Italian">Italiano</Value> <Value ID="Italian">Italiano</Value>
<Value ID="Polish">Polski</Value>
</Enum> </Enum>
<Enum ID="RamPowerOnState"> <Enum ID="RamPowerOnState">
<Value ID="AllZeros">Todos os 0 (Padrão)</Value> <Value ID="AllZeros">Todos os 0 (Padrão)</Value>

View file

@ -1118,6 +1118,7 @@
<Value ID="Catalan">Català</Value> <Value ID="Catalan">Català</Value>
<Value ID="Chinese">中文</Value> <Value ID="Chinese">中文</Value>
<Value ID="Italian">Italiano</Value> <Value ID="Italian">Italiano</Value>
<Value ID="Polish">Polski</Value>
</Enum> </Enum>
<Enum ID="RamPowerOnState"> <Enum ID="RamPowerOnState">
<Value ID="AllZeros">Все 0 (По умолчанию)</Value> <Value ID="AllZeros">Все 0 (По умолчанию)</Value>

View file

@ -1118,6 +1118,7 @@
<Value ID="Catalan">Català</Value> <Value ID="Catalan">Català</Value>
<Value ID="Chinese">中文</Value> <Value ID="Chinese">中文</Value>
<Value ID="Italian">Italiano</Value> <Value ID="Italian">Italiano</Value>
<Value ID="Polish">Polski</Value>
</Enum> </Enum>
<Enum ID="RamPowerOnState"> <Enum ID="RamPowerOnState">
<Value ID="AllZeros">Всi 0 (По умолчанию)</Value> <Value ID="AllZeros">Всi 0 (По умолчанию)</Value>

View file

@ -1151,6 +1151,7 @@
<Value ID="Catalan">Català</Value> <Value ID="Catalan">Català</Value>
<Value ID="Chinese">中文</Value> <Value ID="Chinese">中文</Value>
<Value ID="Italian">Italiano</Value> <Value ID="Italian">Italiano</Value>
<Value ID="Polish">Polski</Value>
</Enum> </Enum>
<Enum ID="RamPowerOnState"> <Enum ID="RamPowerOnState">
<Value ID="AllZeros">全 0 (默认)</Value> <Value ID="AllZeros">全 0 (默认)</Value>

View file

@ -27,6 +27,7 @@ namespace Mesen.GUI.Forms
Catalan = 8, Catalan = 8,
Chinese = 9, Chinese = 9,
Italian = 10, Italian = 10,
Polish = 11,
} }
class ResourceHelper class ResourceHelper
@ -57,6 +58,7 @@ namespace Mesen.GUI.Forms
case Language.Catalan: return "ca"; case Language.Catalan: return "ca";
case Language.Chinese: return "zh"; case Language.Chinese: return "zh";
case Language.Italian: return "it"; case Language.Italian: return "it";
case Language.Polish: return "pl";
} }
return ""; return "";
@ -87,6 +89,7 @@ namespace Mesen.GUI.Forms
case Language.Catalan: filename = "resources.ca.xml"; break; case Language.Catalan: filename = "resources.ca.xml"; break;
case Language.Chinese: filename = "resources.zh.xml"; break; case Language.Chinese: filename = "resources.zh.xml"; break;
case Language.Italian: filename = "resources.it.xml"; break; case Language.Italian: filename = "resources.it.xml"; break;
case Language.Polish: filename = "resources.pl.xml"; break;
} }
_language = language; _language = language;
@ -115,6 +118,7 @@ namespace Mesen.GUI.Forms
case "pt": language = Language.Portuguese; break; case "pt": language = Language.Portuguese; break;
case "zh": language = Language.Chinese; break; case "zh": language = Language.Chinese; break;
case "it": language = Language.Italian; break; case "it": language = Language.Italian; break;
case "pl": language = Language.Polish; break;
} }
return language; return language;
} }

View file

@ -1919,6 +1919,10 @@
<Content Include="Dependencies\resources.ja.xml"> <Content Include="Dependencies\resources.ja.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
<SubType>Designer</SubType> <SubType>Designer</SubType>
</Content>
<Content Include="Dependencies\resources.pl.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<SubType>Designer</SubType>
</Content> </Content>
<Content Include="Dependencies\resources.ru.xml"> <Content Include="Dependencies\resources.ru.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>

View file

@ -117,6 +117,7 @@ namespace Mesen.GUI
case Language.Ukrainian: message = "Microsoft .NET Framework 4.5 не знайдений. Будь ласка завантажте і встановіть останню версію .NET Framework з сайту Microsoft і спробуйте знову."; break; case Language.Ukrainian: message = "Microsoft .NET Framework 4.5 не знайдений. Будь ласка завантажте і встановіть останню версію .NET Framework з сайту Microsoft і спробуйте знову."; break;
case Language.Portuguese: message = "Microsoft .NET Framework 4.5 não foi encontrado. Por favor, baixe a versão mais recente de .NET Framework do site da Microsoft e tente novamente."; break; case Language.Portuguese: message = "Microsoft .NET Framework 4.5 não foi encontrado. Por favor, baixe a versão mais recente de .NET Framework do site da Microsoft e tente novamente."; break;
case Language.Chinese: message = "找不到 Microsoft .NET Framework 4.5,请访问 Microsoft 官网下载安装之后再试。"; break; case Language.Chinese: message = "找不到 Microsoft .NET Framework 4.5,请访问 Microsoft 官网下载安装之后再试。"; break;
case Language.Polish: message = "Nie można znaleźć programu Microsoft .NET Framework 4.5. Pobierz i zainstaluj najnowszą wersję .NET Framework z witryny firmy Microsoft i spróbuj ponownie."; break;
} }
MessageBox.Show(message + Environment.NewLine + Environment.NewLine + e.ToString(), "Mesen", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(message + Environment.NewLine + Environment.NewLine + e.ToString(), "Mesen", MessageBoxButtons.OK, MessageBoxIcon.Error);
return; return;
@ -130,6 +131,7 @@ namespace Mesen.GUI
case Language.Ukrainian: message = "Невідома помилка.&#xA;&#xA;Детально:&#xA;{0}"; break; case Language.Ukrainian: message = "Невідома помилка.&#xA;&#xA;Детально:&#xA;{0}"; break;
case Language.Portuguese: message = "Houve um erro inesperado.&#xA;&#xA;Detalhes do erro:&#xA;{0}"; break; case Language.Portuguese: message = "Houve um erro inesperado.&#xA;&#xA;Detalhes do erro:&#xA;{0}"; break;
case Language.Chinese: message = "发生意外错误。\n\n详情:\n{0}"; break; case Language.Chinese: message = "发生意外错误。\n\n详情:\n{0}"; break;
case Language.Polish: message = "Wystąpił nieoczekiwany błąd.\n\nSzczegóły błędu:\n{0}"; break;
} }
MessageBox.Show(string.Format(message, e.ToString()), "Mesen", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(string.Format(message, e.ToString()), "Mesen", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }