summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/os/macosx/macos.mm13
-rw-r--r--src/strings.cpp5
2 files changed, 16 insertions, 2 deletions
diff --git a/src/os/macosx/macos.mm b/src/os/macosx/macos.mm
index 6d25cee77..5defc392d 100644
--- a/src/os/macosx/macos.mm
+++ b/src/os/macosx/macos.mm
@@ -158,3 +158,16 @@ void ShowMacErrorDialog(const char *error)
ShowMacDialog(error, buffer, "Quit");
abort();
}
+
+
+/** Determine the current user's locale. */
+const char *GetCurrentLocale(const char *)
+{
+ static char retbuf[32] = { '\0' };
+ NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
+ NSArray* languages = [defs objectForKey:@"AppleLanguages"];
+ NSString* preferredLang = [languages objectAtIndex:0];
+ /* preferredLang is either 2 or 5 characters long ("xx" or "xx_YY"). */
+ strncpy(retbuf, [preferredLang cString], 31);
+ return retbuf;
+}
diff --git a/src/strings.cpp b/src/strings.cpp
index ad902ead4..6916d2aaa 100644
--- a/src/strings.cpp
+++ b/src/strings.cpp
@@ -1237,7 +1237,8 @@ bool ReadLanguagePack(int lang_index)
}
/* Win32 implementation in win32.cpp. */
-#ifndef WIN32
+/* OS X implementation in os/macosx/macos.mm. */
+#if !(defined(WIN32) || defined(__APPLE__))
/** Determine the current charset based on the environment
* First check some default values, after this one we passed ourselves
* and if none exist return the value for $LANG
@@ -1261,7 +1262,7 @@ const char *GetCurrentLocale(const char *param)
return getenv("LANG");
}
-#endif /* ifndef WIN32 */
+#endif /* !(defined(WIN32) || defined(__APPLE__)) */
static int CDECL LanguageCompareFunc(const void *a, const void *b)
{