(svn r10851) -Feature [OSX]: OpenTTD will now pick the same language as finder is set to if no config file is found (ln-)
authorbjarni
Sat, 11 Aug 2007 15:52:34 +0000
changeset 7435 c5d1a7a3235c
parent 7434 d8f97a247304
child 7436 2ef100150423
(svn r10851) -Feature [OSX]: OpenTTD will now pick the same language as finder is set to if no config file is found (ln-)
src/os/macosx/macos.mm
src/strings.cpp
--- a/src/os/macosx/macos.mm	Fri Aug 10 13:33:04 2007 +0000
+++ b/src/os/macosx/macos.mm	Sat Aug 11 15:52:34 2007 +0000
@@ -158,3 +158,16 @@
 	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;
+}
--- a/src/strings.cpp	Fri Aug 10 13:33:04 2007 +0000
+++ b/src/strings.cpp	Sat Aug 11 15:52:34 2007 +0000
@@ -1237,7 +1237,8 @@
 }
 
 /* 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 @@
 
 	return getenv("LANG");
 }
-#endif /* ifndef WIN32 */
+#endif /* !(defined(WIN32) || defined(__APPLE__)) */
 
 static int CDECL LanguageCompareFunc(const void *a, const void *b)
 {