summaryrefslogtreecommitdiff
path: root/src/win32/windows.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/win32/windows.cpp')
-rw-r--r--src/win32/windows.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/win32/windows.cpp b/src/win32/windows.cpp
index 5f0c6d5e4..af37282c8 100644
--- a/src/win32/windows.cpp
+++ b/src/win32/windows.cpp
@@ -12,6 +12,36 @@
#ifdef _WIN32
#include "services.h"
+struct WindowsLanguage
+{
+ const char *languageName;
+ USHORT windowsLanguageName;
+};
+
+WindowsLanguage WindowsLanguages[] = {
+ {"ca_ES", LANG_CATALAN},
+ {"de_DE", LANG_GERMAN},
+ {"el_GR", LANG_GREEK},
+ {"es_ES", LANG_SPANISH},
+ {"fr_FR", LANG_FRENCH},
+ {"hu_HU", LANG_HUNGARIAN},
+ {"it_IT", LANG_ITALIAN},
+ {"nl_NL", LANG_DUTCH},
+ {"pl_PL", LANG_POLISH},
+ {"pt_PT", LANG_PORTUGUESE},
+ {"ru_RU", LANG_RUSSIAN},
+ {"tr_TR", LANG_TURKISH},
+ {NULL, 0}
+};
+
+USHORT WindowsGetLanguage(const char *lang)
+{
+ for (int i = 0; WindowsLanguages[i].languageName; ++i)
+ if (!strcmp(lang, WindowsLanguages[i].languageName))
+ return WindowsLanguages[i].windowsLanguageName;
+ return LANG_NEUTRAL;
+}
+
/** This is inet_pton, but it works on Windows
* @param af The protocol type, AF_INET or AF_INET6
* @param src The address