Attempted to add a vertical nudge value for tool button labels, based
on locale. (Specifically, to prevent Khmer text from overlapping icons.) Locale-related code needs some bugfixing before this works right, though.
This commit is contained in:
parent
0ae6112586
commit
24768b831b
4 changed files with 52 additions and 16 deletions
|
|
@ -9,7 +9,7 @@ http://www.tuxpaint.org/
|
|||
$Id$
|
||||
|
||||
|
||||
2008.February.17 (0.9.19)
|
||||
2008.February.19 (0.9.19)
|
||||
* New Localizations:
|
||||
------------------
|
||||
* Australian English
|
||||
|
|
@ -69,6 +69,10 @@ $Id$
|
|||
* Russian translation
|
||||
Sergei Popov <skein@rambler.ru>
|
||||
|
||||
* Attempted to add a vertical nudge value for tool button labels, based
|
||||
on locale. (Specifically, to prevent Khmer text from overlapping icons.)
|
||||
Locale-related code needs some bugfixing before this works right, though.
|
||||
|
||||
* System-Related Improvements:
|
||||
----------------------------
|
||||
* Removed unfinished, unused record and playback code.
|
||||
|
|
@ -77,10 +81,12 @@ $Id$
|
|||
on first launch from a non-admin account on Mac OS X.
|
||||
Martin Fuhrer <mfuhrer@users.sourceforge.net>
|
||||
|
||||
* Fixed possible lockups in fullscreen mode when attempting to print on Mac OS X.
|
||||
* Fixed possible lockups in fullscreen mode when attempting to print on
|
||||
Mac OS X.
|
||||
Martin Fuhrer <mfuhrer@users.sourceforge.net>
|
||||
|
||||
* Skipping "AppleMyungjo.ttf" when loading fonts on Mac OS X to avoid TTF lib. crash.
|
||||
* Skipping "AppleMyungjo.ttf" when loading fonts on Mac OS X to avoid
|
||||
TTF lib. crash.
|
||||
Martin Fuhrer <mfuhrer@users.sourceforge.net>
|
||||
|
||||
* Documentation Improvements:
|
||||
|
|
|
|||
40
src/i18n.c
40
src/i18n.c
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
$Id$
|
||||
|
||||
June 14, 2002 - February 17, 2008
|
||||
June 14, 2002 - February 19, 2008
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
|
|
@ -180,6 +180,11 @@ int lang_use_right_to_left_word[] = {
|
|||
-1
|
||||
};
|
||||
|
||||
int lang_y_nudge[][2] = {
|
||||
{LANG_KM, 4},
|
||||
{-1, -1}
|
||||
};
|
||||
|
||||
|
||||
char *langstr;
|
||||
int need_own_font;
|
||||
|
|
@ -347,10 +352,13 @@ void ctype_utf8(void)
|
|||
|
||||
/* Determine the current language/locale, and set the language string: */
|
||||
|
||||
void set_current_language(void)
|
||||
int set_current_language(void)
|
||||
{
|
||||
char *loc;
|
||||
int i, found;
|
||||
int y_nudge;
|
||||
|
||||
y_nudge = 0;
|
||||
|
||||
bindtextdomain("tuxpaint", LOCALEDIR);
|
||||
/* Old version of glibc does not have bind_textdomain_codeset() */
|
||||
|
|
@ -365,11 +373,16 @@ void set_current_language(void)
|
|||
|
||||
|
||||
#ifndef WIN32
|
||||
loc = setlocale(LC_MESSAGES, NULL);
|
||||
loc = setlocale(LC_MESSAGES, NULL); // NULL: Used to direct setlocale() to query the current internationalised environment and return the name of the locale().
|
||||
|
||||
// FIXME: I'm getting back en_US.UTF-8 even after LC_ALL has been putenv()'d...?? -bjk 2008.02.19
|
||||
|
||||
if (loc != NULL)
|
||||
{
|
||||
if (strstr(loc, "LC_MESSAGES") != NULL)
|
||||
{
|
||||
loc = getenv("LANG");
|
||||
}
|
||||
}
|
||||
#else
|
||||
bind_textdomain_codeset("tuxpaint", "UTF-8");
|
||||
|
|
@ -408,11 +421,24 @@ void set_current_language(void)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/* FIXME: These don't work because we have the wrong langint...!? -bjk 2008.02.19 */
|
||||
|
||||
lang_prefix = lang_prefixes[langint];
|
||||
need_own_font = search_int_array(langint, lang_use_own_font);
|
||||
need_right_to_left = search_int_array(langint, lang_use_right_to_left);
|
||||
need_right_to_left_word = search_int_array(langint, lang_use_right_to_left_word);
|
||||
|
||||
for (i = 0; lang_y_nudge[i][0] != -1; i++)
|
||||
{
|
||||
printf("lang_y_nudge[%d][0] = %d\n", i, lang_y_nudge[i][0]);
|
||||
if (lang_y_nudge[i][0] == langint)
|
||||
{
|
||||
y_nudge = lang_y_nudge[i][1];
|
||||
printf("y_nudge = %d\n", y_nudge);
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
fprintf(stderr, "DEBUG: Language is %s (%d) %s/%s\n",
|
||||
lang_prefix, langint,
|
||||
|
|
@ -421,6 +447,7 @@ void set_current_language(void)
|
|||
fflush(stderr);
|
||||
#endif
|
||||
|
||||
return(y_nudge);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -615,7 +642,7 @@ void show_locale_usage(FILE * f, const char *const prg)
|
|||
"\n", prg);
|
||||
}
|
||||
|
||||
void setup_language(const char *const prg)
|
||||
void setup_language(const char *const prg, int * y_nudge)
|
||||
{
|
||||
|
||||
// Justify this or delete it. It seems to make Tux Paint
|
||||
|
|
@ -676,13 +703,14 @@ void setup_language(const char *const prg)
|
|||
putenv(s);
|
||||
}
|
||||
|
||||
setlocale(LC_ALL, "");
|
||||
setlocale(LC_ALL, ""); // Specifies an implementation-dependent native environment. For XSI-conformant systems, this corresponds to the value of the associated environment variables, LC_* and LANG
|
||||
|
||||
ctype_utf8();
|
||||
free(langstr);
|
||||
langstr = NULL;
|
||||
}
|
||||
|
||||
set_current_language();
|
||||
*y_nudge = set_current_language();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
$Id$
|
||||
|
||||
June 14, 2002 - February 17, 2008
|
||||
June 14, 2002 - February 18, 2008
|
||||
*/
|
||||
|
||||
|
||||
|
|
@ -135,11 +135,11 @@ extern const language_to_locale_struct language_to_locale_array[];
|
|||
/* Function prototypes: */
|
||||
|
||||
void set_langstr(const char *s);
|
||||
void set_current_language(void);
|
||||
int set_current_language(void);
|
||||
int get_current_language(void);
|
||||
void show_lang_usage(FILE * f, const char *const prg);
|
||||
void show_locale_usage(FILE * f, const char *const prg);
|
||||
void setup_language(const char *const prg);
|
||||
void setup_language(const char *const prg, int * y_nudge);
|
||||
void do_locale_option(const char *const arg);
|
||||
void ctype_utf8(void);
|
||||
|
||||
|
|
|
|||
|
|
@ -22,7 +22,7 @@
|
|||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
(See COPYING.txt)
|
||||
|
||||
June 14, 2002 - December 31, 2007
|
||||
June 14, 2002 - February 18, 2008
|
||||
$Id$
|
||||
*/
|
||||
|
||||
|
|
@ -961,6 +961,8 @@ static SDL_Surface *img_title_on, *img_title_off,
|
|||
static SDL_Surface *img_title_names[NUM_TITLES];
|
||||
static SDL_Surface *img_tools[NUM_TOOLS], *img_tool_names[NUM_TOOLS];
|
||||
|
||||
static int button_label_y_nudge;
|
||||
|
||||
static SDL_Surface *thumbnail(SDL_Surface * src, int max_x, int max_y,
|
||||
int keep_aspect);
|
||||
static SDL_Surface *thumbnail2(SDL_Surface * src, int max_x, int max_y,
|
||||
|
|
@ -6709,7 +6711,7 @@ static void setup(int argc, char *argv[])
|
|||
}
|
||||
|
||||
|
||||
setup_language(getfilename(argv[0]));
|
||||
setup_language(getfilename(argv[0]), &button_label_y_nudge);
|
||||
im_init(&im_data, get_current_language());
|
||||
|
||||
#ifndef NO_SDLPANGO
|
||||
|
|
@ -7771,7 +7773,7 @@ static SDL_Surface *do_render_button_label(const char *const label)
|
|||
myfont = locale_font;
|
||||
tmp_surf = render_text(myfont, upstr, black);
|
||||
free(upstr);
|
||||
surf = thumbnail(tmp_surf, min(48, tmp_surf->w), tmp_surf->h, 0);
|
||||
surf = thumbnail(tmp_surf, min(48, tmp_surf->w), min(18 + button_label_y_nudge, tmp_surf->h), 0);
|
||||
SDL_FreeSurface(tmp_surf);
|
||||
|
||||
return surf;
|
||||
|
|
@ -8030,7 +8032,7 @@ static void draw_toolbar(void)
|
|||
|
||||
|
||||
dest.x = ((i % 2) * 48) + 4 + (40 - img_tool_names[i]->w) / 2;
|
||||
dest.y = ((i / 2) * 48) + 40 + 2 + (44 - img_tool_names[i]->h);
|
||||
dest.y = ((i / 2) * 48) + 40 + 2 + (44 + button_label_y_nudge - img_tool_names[i]->h);
|
||||
|
||||
SDL_BlitSurface(img_tool_names[i], NULL, screen, &dest);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue