Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37860271
en ru br
ALT Linux repos
S:2.5-alt6
D:2.3-alt1.svn20071014.3
5.0: 2.2.1-alt1
4.0: 2.1.1-alt1.4

Group :: Games/Strategy
RPM: ufoai

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Patch: ufoai-svn20070730-locale.patch
Download


diff -uNr ufoai/src/client/cl_language.c ufoai-new/src/client/cl_language.c
--- ufoai/src/client/cl_language.c	2007-09-27 01:15:28 +0400
+++ ufoai-new/src/client/cl_language.c	2007-10-02 12:27:53 +0400
@@ -28,6 +28,10 @@
 
 #include "client.h"
 
+#ifndef LOCALESDIR
+# define LOCALESDIR "/usr/share/locale"
+#endif
+
 /**
  * @brief List of all mappings for a locale
  */
@@ -133,17 +137,17 @@
 	if (*fs_i18ndir->string)
 		Q_strncpyz(languagePath, fs_i18ndir->string, sizeof(languagePath));
 	else
-		Com_sprintf(languagePath, sizeof(languagePath), "%s/base/i18n/", FS_GetCwd());
+		Com_sprintf(languagePath, sizeof(languagePath), LOCALESDIR, FS_GetCwd());
 	Com_DPrintf(DEBUG_CLIENT, "Sys_TestLanguage()... using mo files from %s\n", languagePath);
 	Q_strcat(languagePath, localeID, sizeof(languagePath));
 	Q_strcat(languagePath, "/LC_MESSAGES/ufoai.mo", sizeof(languagePath));
 
 #ifdef _WIN32
 	if ((Q_putenv("LANGUAGE", localeID) == 0) && FS_FileExists(languagePath)) {
-		Com_DPrintf(DEBUG_CLIENT, "CL_LanguageTest()... locale %s found.\n", localeID);
+		Com_DPrintf(DEBUG_CLIENT, "CL_LanguageTest()... locale %s in %s found.\n", localeID, LOCALE);
 		return qtrue;
 	} else {
-		Com_DPrintf(DEBUG_CLIENT, "CL_LanguageTest()... locale %s not found.\n", localeID);
+		Com_DPrintf(DEBUG_CLIENT, "CL_LanguageTest()... locale %s in %s not found.\n", localeID, LOCALESDIR);
 		return qfalse;
 	}
 #else
@@ -152,7 +156,7 @@
 			break;
 	}
 	if (i == languageCount) {
-		Com_DPrintf(DEBUG_CLIENT, "Could not find locale with id '%s'\n", localeID);
+		Com_DPrintf(DEBUG_CLIENT, "Could not find locale with id '%s' in %s \n", localeID, LOCALESDIR);
 		return qfalse;
 	}
 
diff -uNr ufoai/src/client/cl_main.c ufoai-new/src/client/cl_main.c
--- ufoai/src/client/cl_main.c	2007-09-29 16:37:52 +0400
+++ ufoai-new/src/client/cl_main.c	2007-10-02 12:53:19 +0400
@@ -30,6 +30,11 @@
 #include "cl_global.h"
 #include "../shared/infostring.h"
 
+#ifndef LOCALESDIR
+# define LOCALESDIR "/usr/share/locale"
+#endif
+
+
 cvar_t *cl_isometric;
 
 cvar_t *rcon_client_password;
@@ -2430,6 +2435,8 @@
  *
  * @sa CL_Init
  */
+
+
 static qboolean CL_LocaleSet (void)
 {
 	char *locale;
@@ -2450,11 +2457,11 @@
 #endif /* _WIN32 */
 
 	/* set to system default */
-	setlocale(LC_ALL, "C");
+	setlocale(LC_ALL, "");
 	locale = setlocale(LC_MESSAGES, s_language->string);
 	if (!locale) {
 		Com_DPrintf(DEBUG_CLIENT, "...could not set to language: %s\n", s_language->string);
-		locale = setlocale(LC_MESSAGES, "");
+		locale = setlocale(LC_MESSAGES, "C");
 		if (!locale) {
 			Com_DPrintf(DEBUG_CLIENT, "...could not set to system language\n");
 			return qfalse;
@@ -2482,18 +2489,18 @@
 
 	fs_i18ndir = Cvar_Get("fs_i18ndir", "", 0, "System path to language files");
 	/* i18n through gettext */
-	setlocale(LC_ALL, "C");
-	setlocale(LC_MESSAGES, "");
+	setlocale(LC_ALL, "");
+	setlocale(LC_MESSAGES, ""); 
 	/* use system locale dir if we can't find in gamedir */
 	if (*fs_i18ndir->string)
 		Q_strncpyz(languagePath, fs_i18ndir->string, sizeof(languagePath));
 	else
-		Com_sprintf(languagePath, sizeof(languagePath), "%s/base/i18n/", FS_GetCwd());
+		Com_sprintf(languagePath, sizeof(languagePath), LOCALESDIR, FS_GetCwd());
 	Com_DPrintf(DEBUG_CLIENT, "...using mo files from %s\n", languagePath);
-	bindtextdomain(TEXT_DOMAIN, languagePath);
-	bind_textdomain_codeset(TEXT_DOMAIN, "UTF-8");
+	bindtextdomain(TEXT_DOMAIN, languagePath); 
+	bind_textdomain_codeset(TEXT_DOMAIN, "UTF-8"); 
 	/* load language file */
-	textdomain(TEXT_DOMAIN);
+	textdomain(TEXT_DOMAIN); 
 
 	CL_LocaleSet();
 
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin