summaryrefslogtreecommitdiff
path: root/src/mir_core
diff options
context:
space:
mode:
authorGeorge Hazan <george.hazan@gmail.com>2015-02-06 20:41:30 +0000
committerGeorge Hazan <george.hazan@gmail.com>2015-02-06 20:41:30 +0000
commitda825236d558418c8a5a7137cd7e6e3a7312d159 (patch)
tree2b3ce967dce9c20a58d24e469b95343ef57b1512 /src/mir_core
parentf15f4d589ab7e2ad7f4112c42f83edcee8924482 (diff)
one more way to detect the default language, if it's not specified in mirandaboot.ini
git-svn-id: http://svn.miranda-ng.org/main/trunk@12025 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'src/mir_core')
-rw-r--r--src/mir_core/src/commonheaders.h3
-rw-r--r--src/mir_core/src/langpack.cpp30
2 files changed, 19 insertions, 14 deletions
diff --git a/src/mir_core/src/commonheaders.h b/src/mir_core/src/commonheaders.h
index 87a26ebd2c..cb5fea518a 100644
--- a/src/mir_core/src/commonheaders.h
+++ b/src/mir_core/src/commonheaders.h
@@ -63,7 +63,4 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <m_ssl.h>
#include <m_xml.h>
-
-extern TCHAR tszDefaultLang[100];
-
void GetDefaultLang(); \ No newline at end of file
diff --git a/src/mir_core/src/langpack.cpp b/src/mir_core/src/langpack.cpp
index aa6d9f9d86..0cbe25e91c 100644
--- a/src/mir_core/src/langpack.cpp
+++ b/src/mir_core/src/langpack.cpp
@@ -634,8 +634,6 @@ MIR_CORE_DLL(void) Langpack_SortDuplicates(void)
/////////////////////////////////////////////////////////////////////////////////////////
-TCHAR tszDefaultLang[100];
-
void GetDefaultLang()
{
// calculate the langpacks' root
@@ -644,17 +642,27 @@ void GetDefaultLang()
PathToAbsoluteT(_T("."), g_tszRoot);
// look into mirandaboot.ini
- TCHAR tszPath[MAX_PATH];
+ TCHAR tszPath[MAX_PATH], tszLangName[256];
PathToAbsoluteT(_T("\\mirandaboot.ini"), tszPath);
- GetPrivateProfileString(_T("Language"), _T("DefaultLanguage"), _T(""), tszDefaultLang, SIZEOF(tszDefaultLang), tszPath);
-
- if (!mir_tstrcmpi(tszDefaultLang, _T("default"))) {
- db_set_ts(NULL, "Langpack", "Current", _T("default"));
- return;
+ GetPrivateProfileString(_T("Language"), _T("DefaultLanguage"), _T(""), tszLangName, SIZEOF(tszLangName), tszPath);
+ if (tszLangName[0]) {
+ if (!mir_tstrcmpi(tszLangName, _T("default"))) {
+ db_set_ts(NULL, "Langpack", "Current", _T("default"));
+ return;
+ }
+ if (!LoadLangPack(tszLangName)) {
+ db_set_ts(NULL, "Langpack", "Current", tszLangName);
+ return;
+ }
}
- else if (!LoadLangPack(tszDefaultLang)) {
- db_set_ts(NULL, "Langpack", "Current", tszDefaultLang);
- return;
+
+ // try to load langpack that matches UserDefaultUILanguage
+ if (GetLocaleInfo(MAKELCID(GetUserDefaultUILanguage(), SORT_DEFAULT), LOCALE_SENGLANGUAGE, tszLangName, SIZEOF(tszLangName))) {
+ mir_sntprintf(tszPath, SIZEOF(tszPath), _T("langpack_%s.txt"), _tcslwr(tszLangName));
+ if (!LoadLangPack(tszPath)) {
+ db_set_ts(NULL, "Langpack", "Current", tszPath);
+ return;
+ }
}
// finally try to load first file