store message catalogs in Resources folder of the application bundle on OS

X. Opening a file selector is no longer needed in order to switch the
language for the first time; apparently gettext wasn't too happy about
relative paths.
This commit is contained in:
2003-05-09 20:20:40 +00:00
parent 2292658124
commit 99bd02a98b
2 changed files with 26 additions and 3 deletions

View File

@@ -39,6 +39,11 @@
#include <string.h>
#include <locale.h>
#include "libintl.h"
#ifdef __APPLE__
#include <libgen.h>
#endif
#include "../FTF_Settings.h"
#include "FTF_TTFont.h"
@@ -52,6 +57,7 @@
#define FTF_MAX_STR_SIZE 256
extern char bprogname[];
int utf8towchar(wchar_t *w, char *c)
{
@@ -136,6 +142,11 @@ int FTF_TTFont::SetFont(char* str, int size)
void FTF_TTFont::SetLanguage(char* str)
{
#ifdef __APPLE__
char tmp[1024];
char msgpath[1024];
#endif
#if defined (_WIN32) || defined(__APPLE__)
char envstr[12];
@@ -157,10 +168,18 @@ void FTF_TTFont::SetLanguage(char* str)
setlocale(LC_NUMERIC, "C");
#endif
#ifdef __APPLE__
/* message catalogs are stored inside the application bundle */
strcpy(tmp, dirname(bprogname));
strcat(tmp, "/../Resources/message");
realpath(tmp, msgpath);
bindtextdomain(DOMAIN_NAME, msgpath);
textdomain(DOMAIN_NAME);
#else
bindtextdomain(DOMAIN_NAME, MESSAGE_FILE);
textdomain(DOMAIN_NAME);
#endif
strcpy(language, str);
}