Merge branch 'master' of https://bitbucket.org/Souryo/mesen into russian
This commit is contained in:
commit
94499a94a1
5 changed files with 32 additions and 24 deletions
|
@ -198,7 +198,8 @@ enum class Language
|
|||
SystemDefault = 0,
|
||||
English = 1,
|
||||
French = 2,
|
||||
Japanese = 3
|
||||
Japanese = 3,
|
||||
Russian = 4
|
||||
};
|
||||
|
||||
enum class StereoFilter
|
||||
|
|
|
@ -204,42 +204,37 @@ string MessageManager::Localize(string key)
|
|||
case Language::English: resources = &_enResources; break;
|
||||
case Language::French: resources = &_frResources; break;
|
||||
case Language::Japanese: resources = &_jaResources; break;
|
||||
case Language::Russian: resources = &_enResources; break;
|
||||
}
|
||||
if(resources) {
|
||||
if(resources->find(key) != resources->end()) {
|
||||
return (*resources)[key];
|
||||
} else if(EmulationSettings::GetDisplayLanguage() != Language::English) {
|
||||
//Fallback on English if resource key is missing another language
|
||||
resources = &_enResources;
|
||||
if(resources->find(key) != resources->end()) {
|
||||
return (*resources)[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return "";
|
||||
return key;
|
||||
}
|
||||
|
||||
void MessageManager::DisplayMessage(string title, string message, string param1, string param2)
|
||||
{
|
||||
if(MessageManager::_messageManager) {
|
||||
std::unordered_map<string, string> *resources = nullptr;
|
||||
switch(EmulationSettings::GetDisplayLanguage()) {
|
||||
case Language::English: resources = &_enResources; break;
|
||||
case Language::French: resources = &_frResources; break;
|
||||
case Language::Japanese: resources = &_jaResources; break;
|
||||
title = Localize(title);
|
||||
message = Localize(message);
|
||||
|
||||
size_t startPos = message.find(u8"%1");
|
||||
if(startPos != std::string::npos) {
|
||||
message.replace(startPos, 2, param1);
|
||||
}
|
||||
if(resources) {
|
||||
if(resources->find(title) != resources->end()) {
|
||||
title = (*resources)[title];
|
||||
}
|
||||
if(resources->find(message) != resources->end()) {
|
||||
message = (*resources)[message];
|
||||
|
||||
size_t startPos = message.find(u8"%1");
|
||||
if(startPos != std::string::npos) {
|
||||
message.replace(startPos, 2, param1);
|
||||
}
|
||||
|
||||
startPos = message.find(u8"%2");
|
||||
if(startPos != std::string::npos) {
|
||||
message.replace(startPos, 2, param2);
|
||||
}
|
||||
}
|
||||
startPos = message.find(u8"%2");
|
||||
if(startPos != std::string::npos) {
|
||||
message.replace(startPos, 2, param2);
|
||||
}
|
||||
MessageManager::_messageManager->DisplayMessage(title, message);
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@ namespace Mesen.GUI.Config
|
|||
{
|
||||
private static Configuration _config;
|
||||
private static Configuration _dirtyConfig;
|
||||
private static bool? _portableMode = null;
|
||||
private static string _portablePath = null;
|
||||
|
||||
private static void LoadConfig()
|
||||
{
|
||||
|
@ -42,7 +44,16 @@ namespace Mesen.GUI.Config
|
|||
{
|
||||
get
|
||||
{
|
||||
return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments, Environment.SpecialFolderOption.Create), "Mesen");
|
||||
if(_portableMode == null) {
|
||||
_portableMode = System.Reflection.Assembly.GetEntryAssembly().Location.EndsWith("_P.exe", StringComparison.InvariantCultureIgnoreCase);
|
||||
_portablePath = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
|
||||
}
|
||||
|
||||
if(_portableMode.Value) {
|
||||
return Path.Combine(_portablePath, "Mesen");
|
||||
} else {
|
||||
return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments, Environment.SpecialFolderOption.Create), "Mesen");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Binary file not shown.
|
@ -1350,6 +1350,7 @@ namespace Mesen.GUI.Forms
|
|||
case Language.English: langCode = "en"; break;
|
||||
case Language.French: langCode = "fr"; break;
|
||||
case Language.Japanese: langCode = "ja"; break;
|
||||
case Language.Russian: langCode = "ru"; 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());
|
||||
|
|
Loading…
Add table
Reference in a new issue