diff --git a/src/api/api.cpp b/src/api/api.cpp index 28f596a2..bace3666 100644 --- a/src/api/api.cpp +++ b/src/api/api.cpp @@ -73,13 +73,14 @@ const unsigned int boss_message_error = boss::g_message_error; const unsigned int boss_message_tag = boss::g_message_tag; // BOSS message languages. -const unsigned int boss_lang_any = boss::g_lang_any; -const unsigned int boss_lang_english = boss::g_lang_english; -const unsigned int boss_lang_spanish = boss::g_lang_spanish; -const unsigned int boss_lang_russian = boss::g_lang_russian; -const unsigned int boss_lang_french = boss::g_lang_french; -const unsigned int boss_lang_chinese = boss::g_lang_chinese; -const unsigned int boss_lang_polish = boss::g_lang_polish; +const unsigned int boss_lang_any = boss::g_lang_any; +const unsigned int boss_lang_english = boss::g_lang_english; +const unsigned int boss_lang_spanish = boss::g_lang_spanish; +const unsigned int boss_lang_russian = boss::g_lang_russian; +const unsigned int boss_lang_french = boss::g_lang_french; +const unsigned int boss_lang_chinese = boss::g_lang_chinese; +const unsigned int boss_lang_polish = boss::g_lang_polish; +const unsigned int boss_lang_brazilian_portuguese = boss::g_lang_brazilian_portuguese; // BOSS cleanliness codes. const unsigned int boss_needs_cleaning_no = 0; diff --git a/src/api/api.h b/src/api/api.h index ee66a252..ceef19d9 100644 --- a/src/api/api.h +++ b/src/api/api.h @@ -176,6 +176,7 @@ BOSS_API extern const unsigned int boss_lang_russian; ///< Tells the API to pre BOSS_API extern const unsigned int boss_lang_french; ///< Tells the API to preferentially select French messages. BOSS_API extern const unsigned int boss_lang_chinese; ///< Tells the API to preferentially select Chinese messages. BOSS_API extern const unsigned int boss_lang_polish; ///< Tells the API to preferentially select Polish messages. +BOSS_API extern const unsigned int boss_lang_brazilian_portuguese; ///< Tells the API to preferentially select Polish messages. ///@} /*********************************//** diff --git a/src/archive.py b/src/archive.py index 23946bba..7788c1c1 100644 --- a/src/archive.py +++ b/src/archive.py @@ -65,7 +65,7 @@ if not os.path.exists(temp_path): # Now copy everything into the temporary folder. shutil.copy( os.path.join('..', 'build', 'BOSS.exe'), temp_path ) -for lang in ['es', 'ru', 'fr', 'zh', 'pl']: +for lang in ['es', 'ru', 'fr', 'zh_CN', 'pl', 'pt_BR']: os.makedirs(os.path.join(temp_path, 'resources', 'l10n', lang, 'LC_MESSAGES')) shutil.copy( os.path.join('..', 'resources', 'l10n', lang, 'LC_MESSAGES', 'boss.mo'), os.path.join(temp_path, 'resources', 'l10n', lang, 'LC_MESSAGES') ) shutil.copy( os.path.join('..', 'resources', 'l10n', lang, 'LC_MESSAGES', 'wxstd.mo'), os.path.join(temp_path, 'resources', 'l10n', lang, 'LC_MESSAGES') ) diff --git a/src/backend/globals.cpp b/src/backend/globals.cpp index 576014f9..7eeaf37e 100644 --- a/src/backend/globals.cpp +++ b/src/backend/globals.cpp @@ -39,14 +39,16 @@ namespace boss { const unsigned int g_message_error = 2; const unsigned int g_message_tag = 3; - //Languages + //Languages. const unsigned int g_lang_any = 0; const unsigned int g_lang_english = 1; const unsigned int g_lang_spanish = 2; const unsigned int g_lang_russian = 3; const unsigned int g_lang_french = 4; const unsigned int g_lang_chinese = 5; - const unsigned int g_lang_polish = 6; + const unsigned int g_lang_polish = 6; + const unsigned int g_lang_brazilian_portuguese = 7; + //Version numbers. const unsigned int g_version_major = 3; const unsigned int g_version_minor = 0; diff --git a/src/backend/globals.h b/src/backend/globals.h index 2df0f087..536bf920 100644 --- a/src/backend/globals.h +++ b/src/backend/globals.h @@ -48,6 +48,7 @@ namespace boss { extern const unsigned int g_lang_french; extern const unsigned int g_lang_chinese; extern const unsigned int g_lang_polish; + extern const unsigned int g_lang_brazilian_portuguese; //Version numbers. extern const unsigned int g_version_major; diff --git a/src/backend/helpers.cpp b/src/backend/helpers.cpp index 2b72dce4..45be616c 100644 --- a/src/backend/helpers.cpp +++ b/src/backend/helpers.cpp @@ -239,16 +239,18 @@ namespace boss { Language::Language(const std::string& nameOrISOCode) { if (nameOrISOCode == Language(g_lang_english).Name() || nameOrISOCode == Language(g_lang_english).Locale()) Construct(g_lang_english); - if (nameOrISOCode == Language(g_lang_english).Name() || nameOrISOCode == Language(g_lang_english).Locale()) + else if (nameOrISOCode == Language(g_lang_spanish).Name() || nameOrISOCode == Language(g_lang_spanish).Locale()) Construct(g_lang_spanish); - if (nameOrISOCode == Language(g_lang_spanish).Name() || nameOrISOCode == Language(g_lang_spanish).Locale()) + else if (nameOrISOCode == Language(g_lang_russian).Name() || nameOrISOCode == Language(g_lang_russian).Locale()) Construct(g_lang_russian); - if (nameOrISOCode == Language(g_lang_russian).Name() || nameOrISOCode == Language(g_lang_russian).Locale()) + else if (nameOrISOCode == Language(g_lang_french).Name() || nameOrISOCode == Language(g_lang_french).Locale()) Construct(g_lang_french); - if (nameOrISOCode == Language(g_lang_french).Name() || nameOrISOCode == Language(g_lang_french).Locale()) + else if (nameOrISOCode == Language(g_lang_chinese).Name() || nameOrISOCode == Language(g_lang_chinese).Locale()) Construct(g_lang_chinese); - if (nameOrISOCode == Language(g_lang_chinese).Name() || nameOrISOCode == Language(g_lang_chinese).Locale()) + else if (nameOrISOCode == Language(g_lang_polish).Name() || nameOrISOCode == Language(g_lang_polish).Locale()) Construct(g_lang_polish); + else if (nameOrISOCode == Language(g_lang_brazilian_portuguese).Name() || nameOrISOCode == Language(g_lang_brazilian_portuguese).Locale()) + Construct(g_lang_brazilian_portuguese); else Construct(g_lang_any); } @@ -283,6 +285,10 @@ namespace boss { _name = "Polski"; _locale = "pl"; } + else if (_code == g_lang_brazilian_portuguese) { + _name = "Português do Brasil"; + _locale = "pt_BR"; + } } unsigned int Language::Code() const { diff --git a/src/backend/helpers.h b/src/backend/helpers.h index c8cdd453..f3ecfae2 100644 --- a/src/backend/helpers.h +++ b/src/backend/helpers.h @@ -84,6 +84,7 @@ namespace boss { vec.push_back(Language(g_lang_french).Name()); vec.push_back(Language(g_lang_chinese).Name()); vec.push_back(Language(g_lang_polish).Name()); + vec.push_back(Language(g_lang_brazilian_portuguese).Name()); return vec; } private: diff --git a/src/gui/main.cpp b/src/gui/main.cpp index 468b25bb..8de77f51 100644 --- a/src/gui/main.cpp +++ b/src/gui/main.cpp @@ -252,6 +252,8 @@ bool BossGUI::OnInit() { wxLang = wxLANGUAGE_CHINESE; else if (lang.Code() == boss::g_lang_polish) wxLang = wxLANGUAGE_POLISH; + else if (lang.Code() == boss::g_lang_brazilian_portuguese) + wxLang = wxLANGUAGE_PORTUGUESE_BRAZILIAN; } //Boost.Locale initialisation: Specify location of language dictionaries. diff --git a/src/installer.nsi b/src/installer.nsi index 87e1c366..d258bb7b 100644 --- a/src/installer.nsi +++ b/src/installer.nsi @@ -311,15 +311,18 @@ FunctionEnd File "..\resources\l10n\es\LC_MESSAGES\boss.mo" ;SetOutPath "$INSTDIR\resources\l10n\de\LC_MESSAGES" ;File "..\resources\l10n\de\LC_MESSAGES\wxstd.mo" - SetOutPath "$INSTDIR\resources\l10n\zh\LC_MESSAGES" - File "..\resources\l10n\zh\LC_MESSAGES\boss.mo" - File "..\resources\l10n\zh\LC_MESSAGES\wxstd.mo" + SetOutPath "$INSTDIR\resources\l10n\zh_CN\LC_MESSAGES" + File "..\resources\l10n\zh_CN\LC_MESSAGES\boss.mo" + File "..\resources\l10n\zh_CN\LC_MESSAGES\wxstd.mo" SetOutPath "$INSTDIR\resources\l10n\fr\LC_MESSAGES" File "..\resources\l10n\fr\LC_MESSAGES\wxstd.mo" File "..\resources\l10n\fr\LC_MESSAGES\boss.mo" SetOutPath "$INSTDIR\resources\l10n\pl\LC_MESSAGES" File "..\resources\l10n\pl\LC_MESSAGES\wxstd.mo" File "..\resources\l10n\pl\LC_MESSAGES\boss.mo" + SetOutPath "$INSTDIR\resources\l10n\pt_BR\LC_MESSAGES" + File "..\resources\l10n\pt_BR\LC_MESSAGES\wxstd.mo" + File "..\resources\l10n\pt_BR\LC_MESSAGES\boss.mo" ;Install settings file. SetOutPath "$LOCALAPPDATA\BOSS" @@ -329,33 +332,38 @@ FunctionEnd StrCmp $LANGUAGE ${LANG_RUSSIAN} 0 +5 Push "$LOCALAPPDATA\BOSS\settings.yaml" Push "Language:" - Push "Language: rus" + Push "Language: ru" Call ReplaceLineStr ;StrCmp $LANGUAGE ${LANG_GERMAN} 0 +5 ; Push "$LOCALAPPDATA\BOSS\settings.yaml" ; Push "Language:" - ; Push "Language: deu" + ; Push "Language: de" ; Call ReplaceLineStr StrCmp $LANGUAGE ${LANG_SPANISH} 0 +5 Push "$LOCALAPPDATA\BOSS\settings.yaml" Push "Language:" - Push "Language: spa" + Push "Language: es" Call ReplaceLineStr StrCmp $LANGUAGE ${LANG_SIMPCHINESE} 0 +5 Push "$LOCALAPPDATA\BOSS\settings.yaml" Push "Language:" - Push "Language: zho" + Push "Language: zh_CN" Call ReplaceLineStr StrCmp $LANGUAGE ${LANG_FRENCH} 0 +5 Push "$LOCALAPPDATA\BOSS\settings.yaml" Push "Language:" - Push "Language: fra" + Push "Language: fr" Call ReplaceLineStr StrCmp $LANGUAGE ${LANG_POLISH} 0 +5 Push "$LOCALAPPDATA\BOSS\settings.yaml" Push "Language:" - Push "Language: pol" + Push "Language: pl" Call ReplaceLineStr + ;StrCmp $LANGUAGE ${LANG_PORTUGUESEBR} 0 +5 + ; Push "$LOCALAPPDATA\BOSS\settings.yaml" + ; Push "Language:" + ; Push "Language: pt_BR" + ; Call ReplaceLineStr ;Add Start Menu shortcuts. Set out path back to $INSTDIR otherwise the shortcuts start in the wrong place. ;Set Shell Var Context to all so that shortcuts are installed for all users, not just admin. @@ -469,24 +477,28 @@ FunctionEnd Delete "$INSTDIR\resources\l10n\es\LC_MESSAGES\boss.mo" Delete "$INSTDIR\resources\l10n\es\LC_MESSAGES\wxstd.mo" ;Delete "$INSTDIR\resources\l10n\de\LC_MESSAGES\wxstd.mo" - Delete "$INSTDIR\resources\l10n\zh\LC_MESSAGES\boss.mo" - Delete "$INSTDIR\resources\l10n\zh\LC_MESSAGES\wxstd.mo" + Delete "$INSTDIR\resources\l10n\zh_CN\LC_MESSAGES\boss.mo" + Delete "$INSTDIR\resources\l10n\zh_CN\LC_MESSAGES\wxstd.mo" Delete "$INSTDIR\resources\l10n\fr\LC_MESSAGES\boss.mo" Delete "$INSTDIR\resources\l10n\fr\LC_MESSAGES\wxstd.mo" Delete "$INSTDIR\resources\l10n\pl\LC_MESSAGES\boss.mo" - Delete "$INSTDIR\resources\l10n\pl\LC_MESSAGES\wxstd.mo" + Delete "$INSTDIR\resources\l10n\pl\LC_MESSAGES\wxstd.mo" + Delete "$INSTDIR\resources\l10n\pt_BR\LC_MESSAGES\boss.mo" + Delete "$INSTDIR\resources\l10n\pt_BR\LC_MESSAGES\wxstd.mo" RMDir "$INSTDIR\resources\l10n\ru\LC_MESSAGES" RMDir "$INSTDIR\resources\l10n\ru" RMDir "$INSTDIR\resources\l10n\es\LC_MESSAGES" RMDir "$INSTDIR\resources\l10n\es" ;RMDir "$INSTDIR\resources\l10n\de\LC_MESSAGES" ;RMDir "$INSTDIR\resources\l10n\de" - RMDir "$INSTDIR\resources\l10n\zh\LC_MESSAGES" - RMDir "$INSTDIR\resources\l10n\zh" + RMDir "$INSTDIR\resources\l10n\zh_CN\LC_MESSAGES" + RMDir "$INSTDIR\resources\l10n\zh_CN" RMDir "$INSTDIR\resources\l10n\fr\LC_MESSAGES" RMDir "$INSTDIR\resources\l10n\fr" RMDir "$INSTDIR\resources\l10n\pl\LC_MESSAGES" - RMDir "$INSTDIR\resources\l10n\pl" + RMDir "$INSTDIR\resources\l10n\pl" + RMDir "$INSTDIR\resources\l10n\pt_BR\LC_MESSAGES" + RMDir "$INSTDIR\resources\l10n\pt_BR" RMDir "$INSTDIR\resources\l10n" RMDir "$INSTDIR\resources"