moving all language stuff to one place (maybe later, a separate file)
This commit is contained in:
parent
8c7ac45428
commit
93907b308a
1 changed files with 146 additions and 146 deletions
292
src/tuxpaint.c
292
src/tuxpaint.c
|
|
@ -459,6 +459,53 @@ static TTF_Font *BUGFIX_TTF_OpenFont206(const char * const file, int ptsize)
|
||||||
)
|
)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
typedef struct info_type {
|
||||||
|
double ratio;
|
||||||
|
unsigned tinter;
|
||||||
|
int colorable;
|
||||||
|
int tintable;
|
||||||
|
int mirrorable;
|
||||||
|
int flipable;
|
||||||
|
} info_type;
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct state_type {
|
||||||
|
int mirrored;
|
||||||
|
int flipped;
|
||||||
|
unsigned min,size,max;
|
||||||
|
} state_type;
|
||||||
|
|
||||||
|
|
||||||
|
enum {
|
||||||
|
SAVE_OVER_PROMPT,
|
||||||
|
SAVE_OVER_ALWAYS,
|
||||||
|
SAVE_OVER_NO
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
enum {
|
||||||
|
STARTER_OUTLINE,
|
||||||
|
STARTER_SCENE
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* Show debugging stuff: */
|
||||||
|
|
||||||
|
static void debug(const char * const str)
|
||||||
|
{
|
||||||
|
#ifndef DEBUG
|
||||||
|
(void)str;
|
||||||
|
#else
|
||||||
|
fprintf(stderr, "DEBUG: %s\n", str);
|
||||||
|
fflush(stderr);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////
|
||||||
|
// Language stuff
|
||||||
|
|
||||||
|
static int language;
|
||||||
|
|
||||||
/* Possible languages: */
|
/* Possible languages: */
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
|
@ -588,39 +635,115 @@ static int lang_use_right_to_left[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
typedef struct info_type {
|
static int need_own_font(int l)
|
||||||
double ratio;
|
{
|
||||||
unsigned tinter;
|
int i, need;
|
||||||
int colorable;
|
|
||||||
int tintable;
|
need = 0;
|
||||||
int mirrorable;
|
|
||||||
int flipable;
|
for (i = 0; lang_use_own_font[i] != -1 && need == 0; i++)
|
||||||
} info_type;
|
{
|
||||||
|
if (lang_use_own_font[i] == l)
|
||||||
|
{
|
||||||
|
need = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return need;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
typedef struct state_type {
|
static int need_right_to_left(int l)
|
||||||
int mirrored;
|
{
|
||||||
int flipped;
|
int i, need;
|
||||||
unsigned min,size,max;
|
|
||||||
} state_type;
|
need = 0;
|
||||||
|
|
||||||
|
for (i = 0; lang_use_right_to_left[i] != -1 && need == 0; i++)
|
||||||
|
{
|
||||||
|
if (lang_use_right_to_left[i] == l)
|
||||||
|
{
|
||||||
|
need = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return need;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
enum {
|
|
||||||
SAVE_OVER_PROMPT,
|
/* Determine the current language/locale, and set the language string: */
|
||||||
SAVE_OVER_ALWAYS,
|
|
||||||
SAVE_OVER_NO
|
static int current_language(void)
|
||||||
};
|
{
|
||||||
|
char * loc;
|
||||||
|
#ifdef WIN32
|
||||||
|
char str[128];
|
||||||
|
#endif
|
||||||
|
int lang, i, found;
|
||||||
|
|
||||||
|
|
||||||
enum {
|
/* Default... */
|
||||||
STARTER_OUTLINE,
|
|
||||||
STARTER_SCENE
|
|
||||||
};
|
|
||||||
|
|
||||||
|
lang = LANG_EN;
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef WIN32
|
||||||
|
loc = setlocale(LC_MESSAGES, NULL);
|
||||||
|
if (loc != NULL)
|
||||||
|
{
|
||||||
|
if (strstr(loc, "LC_MESSAGES") != NULL)
|
||||||
|
loc = getenv("LANG");
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
loc = getenv("LANGUAGE");
|
||||||
|
if (!loc)
|
||||||
|
{
|
||||||
|
loc = g_win32_getlocale();
|
||||||
|
if (loc)
|
||||||
|
{
|
||||||
|
snprintf(str, sizeof(str), "LANGUAGE=%s", loc);
|
||||||
|
putenv(str);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
debug(loc);
|
||||||
|
|
||||||
|
if (loc != NULL)
|
||||||
|
{
|
||||||
|
/* Which, if any, of the locales is it? */
|
||||||
|
|
||||||
|
found = 0;
|
||||||
|
|
||||||
|
for (i = 0; i < NUM_LANGS && found == 0; i++)
|
||||||
|
{
|
||||||
|
// Case-insensitive (both "pt_BR" and "pt_br" work, etc.)
|
||||||
|
if (strncasecmp(loc, lang_prefixes[i], strlen(lang_prefixes[i])) == 0)
|
||||||
|
{
|
||||||
|
lang = i;
|
||||||
|
found = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef DEBUG
|
||||||
|
printf("lang=%d\n\n", lang);
|
||||||
|
sleep(10);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
return lang;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
/* Globals: */
|
/* Globals: */
|
||||||
|
|
||||||
static int use_sound, fullscreen, disable_quit, simple_shapes, language,
|
static int use_sound, fullscreen, disable_quit, simple_shapes,
|
||||||
disable_print, print_delay, only_uppercase, promptless_save, grab_input,
|
disable_print, print_delay, only_uppercase, promptless_save, grab_input,
|
||||||
wheely, no_fancy_cursors, keymouse, mouse_x, mouse_y,
|
wheely, no_fancy_cursors, keymouse, mouse_x, mouse_y,
|
||||||
mousekey_up, mousekey_down, mousekey_left, mousekey_right,
|
mousekey_up, mousekey_down, mousekey_left, mousekey_right,
|
||||||
|
|
@ -813,7 +936,6 @@ static Uint32 getpixel(SDL_Surface * surface, int x, int y);
|
||||||
static void putpixel(SDL_Surface * surface, int x, int y, Uint32 pixel);
|
static void putpixel(SDL_Surface * surface, int x, int y, Uint32 pixel);
|
||||||
static void clipped_putpixel(SDL_Surface * dest, int x, int y, Uint32 c);
|
static void clipped_putpixel(SDL_Surface * dest, int x, int y, Uint32 c);
|
||||||
|
|
||||||
static void debug(const char * const str);
|
|
||||||
static void do_undo(void);
|
static void do_undo(void);
|
||||||
static void do_redo(void);
|
static void do_redo(void);
|
||||||
static void render_brush(void);
|
static void render_brush(void);
|
||||||
|
|
@ -876,7 +998,6 @@ static void scan_fill(int cnt, point_type * pts);
|
||||||
static int clip_polygon(int n, fpoint_type * pin, fpoint_type * pout);
|
static int clip_polygon(int n, fpoint_type * pin, fpoint_type * pout);
|
||||||
#endif
|
#endif
|
||||||
static void wait_for_sfx(void);
|
static void wait_for_sfx(void);
|
||||||
static int current_language(void);
|
|
||||||
static int stamp_colorable(int stamp);
|
static int stamp_colorable(int stamp);
|
||||||
static int stamp_tintable(int stamp);
|
static int stamp_tintable(int stamp);
|
||||||
static void rgbtohsv(Uint8 r8, Uint8 g8, Uint8 b8, float *h, float *s, float *v);
|
static void rgbtohsv(Uint8 r8, Uint8 g8, Uint8 b8, float *h, float *s, float *v);
|
||||||
|
|
@ -899,8 +1020,6 @@ static void parse_options(FILE * fi);
|
||||||
static void do_setcursor(SDL_Cursor * c);
|
static void do_setcursor(SDL_Cursor * c);
|
||||||
static const char * great_str(void);
|
static const char * great_str(void);
|
||||||
static void draw_image_title(int t, int x);
|
static void draw_image_title(int t, int x);
|
||||||
static int need_own_font(int l);
|
|
||||||
static int need_right_to_left(int l);
|
|
||||||
static void handle_keymouse(SDLKey key, Uint8 updown);
|
static void handle_keymouse(SDLKey key, Uint8 updown);
|
||||||
static void handle_active(SDL_Event * event);
|
static void handle_active(SDL_Event * event);
|
||||||
static char * remove_slash(char * path);
|
static char * remove_slash(char * path);
|
||||||
|
|
@ -8381,19 +8500,6 @@ static void clipped_putpixel(SDL_Surface * dest, int x, int y, Uint32 c)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Show debugging stuff: */
|
|
||||||
|
|
||||||
static void debug(const char * const str)
|
|
||||||
{
|
|
||||||
#ifndef DEBUG
|
|
||||||
(void)str;
|
|
||||||
#else
|
|
||||||
fprintf(stderr, "DEBUG: %s\n", str);
|
|
||||||
fflush(stderr);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Undo! */
|
/* Undo! */
|
||||||
|
|
||||||
static void do_undo(void)
|
static void do_undo(void)
|
||||||
|
|
@ -12872,75 +12978,6 @@ static void wait_for_sfx(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Determine the current language/locale, and set the language string: */
|
|
||||||
|
|
||||||
static int current_language(void)
|
|
||||||
{
|
|
||||||
char * loc;
|
|
||||||
#ifdef WIN32
|
|
||||||
char str[128];
|
|
||||||
#endif
|
|
||||||
int lang, i, found;
|
|
||||||
|
|
||||||
|
|
||||||
/* Default... */
|
|
||||||
|
|
||||||
lang = LANG_EN;
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef WIN32
|
|
||||||
loc = setlocale(LC_MESSAGES, NULL);
|
|
||||||
if (loc != NULL)
|
|
||||||
{
|
|
||||||
if (strstr(loc, "LC_MESSAGES") != NULL)
|
|
||||||
loc = getenv("LANG");
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
loc = getenv("LANGUAGE");
|
|
||||||
if (!loc)
|
|
||||||
{
|
|
||||||
loc = g_win32_getlocale();
|
|
||||||
if (loc)
|
|
||||||
{
|
|
||||||
snprintf(str, sizeof(str), "LANGUAGE=%s", loc);
|
|
||||||
putenv(str);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
debug(loc);
|
|
||||||
|
|
||||||
if (loc != NULL)
|
|
||||||
{
|
|
||||||
/* Which, if any, of the locales is it? */
|
|
||||||
|
|
||||||
found = 0;
|
|
||||||
|
|
||||||
for (i = 0; i < NUM_LANGS && found == 0; i++)
|
|
||||||
{
|
|
||||||
/* Case-insensitive */
|
|
||||||
/* (so that, e.g. "pt_BR" is recognized as "pt_br") */
|
|
||||||
|
|
||||||
if (strncasecmp(loc, lang_prefixes[i], strlen(lang_prefixes[i])) == 0)
|
|
||||||
/* if (strcasecmp(loc, lang_prefixes[i]) == 0) */
|
|
||||||
{
|
|
||||||
lang = i;
|
|
||||||
found = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
printf("lang=%d\n\n", lang);
|
|
||||||
sleep(10);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
return lang;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
// stamp outline
|
// stamp outline
|
||||||
#ifndef LOW_QUALITY_STAMP_OUTLINE
|
#ifndef LOW_QUALITY_STAMP_OUTLINE
|
||||||
|
|
@ -14221,43 +14258,6 @@ static void draw_image_title(int t, int x)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int need_own_font(int l)
|
|
||||||
{
|
|
||||||
int i, need;
|
|
||||||
|
|
||||||
need = 0;
|
|
||||||
|
|
||||||
for (i = 0; lang_use_own_font[i] != -1 && need == 0; i++)
|
|
||||||
{
|
|
||||||
if (lang_use_own_font[i] == l)
|
|
||||||
{
|
|
||||||
need = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return need;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int need_right_to_left(int l)
|
|
||||||
{
|
|
||||||
int i, need;
|
|
||||||
|
|
||||||
need = 0;
|
|
||||||
|
|
||||||
for (i = 0; lang_use_right_to_left[i] != -1 && need == 0; i++)
|
|
||||||
{
|
|
||||||
if (lang_use_right_to_left[i] == l)
|
|
||||||
{
|
|
||||||
need = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return need;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Handle keyboard events to control the mouse: */
|
/* Handle keyboard events to control the mouse: */
|
||||||
|
|
||||||
static void handle_keymouse(SDLKey key, Uint8 updown)
|
static void handle_keymouse(SDLKey key, Uint8 updown)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue