Merge branch 'master' into sdl2.0

This commit is contained in:
Pere Pujal i Carabantes 2020-10-28 17:03:05 +01:00
commit 63e060afa3
30 changed files with 6000 additions and 4329 deletions

20
src/install-dlls.sh Normal file
View file

@ -0,0 +1,20 @@
#!/bin/sh
find_depends(){
for dllpath in `ntldd $@ | grep mingw | awk '{print $3}' | sort | uniq`
do
dllname=`basename $dllpath`
if ! grep -q $dllname dlllist; then
echo $dllpath >> dlllist
echo -n .
cp $dllpath $DESTDIR/
find_depends $dllpath
fi
done
}
DESTDIR=$3
echo > dlllist
find_depends $1 $2
echo

View file

@ -83,15 +83,27 @@ static void mtw(wchar_t * wtok, char *tok)
#define mbstowcs(wtok, tok, size) mtw(wtok, tok)
#endif
struct osk_keyboard *osk_create(char *layout_name, SDL_Surface * canvas, SDL_Surface * button_up,
SDL_Surface * button_down, SDL_Surface * button_off, SDL_Surface * button_nav,
SDL_Surface * button_hold, SDL_Surface * oskdel, SDL_Surface * osktab,
SDL_Surface * oskenter, SDL_Surface * oskcapslock, SDL_Surface * oskshift,
struct osk_keyboard *osk_create(char * layout_name, SDL_Surface * canvas,
SDL_Surface * LG_button_up, SDL_Surface * LG_button_down,
SDL_Surface * LG_button_off, SDL_Surface * LG_button_nav,
SDL_Surface * LG_button_hold,
SDL_Surface * LG_oskdel, SDL_Surface * LG_osktab, SDL_Surface * LG_oskenter,
SDL_Surface * LG_oskcapslock, SDL_Surface * LG_oskshift,
SDL_Surface * SM_button_up, SDL_Surface * SM_button_down,
SDL_Surface * SM_button_off, SDL_Surface * SM_button_nav,
SDL_Surface * SM_button_hold,
SDL_Surface * SM_oskdel, SDL_Surface * SM_osktab, SDL_Surface * SM_oskenter,
SDL_Surface * SM_oskcapslock, SDL_Surface * SM_oskshift,
int disable_change)
{
SDL_Surface *surface;
osk_layout *layout;
on_screen_keyboard *keyboard;
SDL_Surface * surface;
SDL_Surface * button_up, * button_down;
SDL_Surface * button_off, * button_nav;
SDL_Surface * button_hold;
SDL_Surface * oskdel, * osktab, * oskenter;
SDL_Surface * oskcapslock, * oskshift;
osk_layout * layout;
on_screen_keyboard * keyboard;
keyboard = malloc(sizeof(on_screen_keyboard));
@ -115,6 +127,32 @@ struct osk_keyboard *osk_create(char *layout_name, SDL_Surface * canvas, SDL_Sur
printf("w %i, h %i\n", layout->width, layout->height);
#endif
if (layout->width * LG_button_up->w >= (canvas->w - 48 * 4) * 0.9 ||
layout->height * LG_button_up->h >= canvas->h * 0.5) {
/* Full-size buttons too large, use small buttons */
button_up = SM_button_up;
button_down = SM_button_down;
button_off = SM_button_off;
button_nav = SM_button_nav;
button_hold = SM_button_hold;
oskdel = SM_oskdel;
osktab = SM_osktab;
oskenter = SM_oskenter;
oskcapslock = SM_oskcapslock;
oskshift = SM_oskshift;
} else {
button_up = LG_button_up;
button_down = LG_button_down;
button_off = LG_button_off;
button_nav = LG_button_nav;
button_hold = LG_button_hold;
oskdel = LG_oskdel;
osktab = LG_osktab;
oskenter = LG_oskenter;
oskcapslock = LG_oskcapslock;
oskshift = LG_oskshift;
}
surface = SDL_CreateRGBSurface(canvas->flags,
layout->width * button_up->w,
layout->height * button_up->h,
@ -126,6 +164,7 @@ struct osk_keyboard *osk_create(char *layout_name, SDL_Surface * canvas, SDL_Sur
return NULL;
}
// keyboard->name = layout_name;
keyboard->canvas_ptr = canvas;
keyboard->layout = layout;
keyboard->surface = surface;
keyboard->rect.x = 0;
@ -159,6 +198,27 @@ struct osk_keyboard *osk_create(char *layout_name, SDL_Surface * canvas, SDL_Sur
keyboard->kmdf.dead3 = NULL;
keyboard->kmdf.dead4 = NULL;
keyboard->LG_button_up = LG_button_up;
keyboard->LG_button_down = LG_button_down;
keyboard->LG_button_off = LG_button_off;
keyboard->LG_button_nav = LG_button_nav;
keyboard->LG_button_hold = LG_button_hold;
keyboard->LG_oskdel = LG_oskdel;
keyboard->LG_osktab = LG_osktab;
keyboard->LG_oskenter = LG_oskenter;
keyboard->LG_oskcapslock = LG_oskcapslock;
keyboard->LG_oskshift = LG_oskshift;
keyboard->SM_button_up = SM_button_up;
keyboard->SM_button_down = SM_button_down;
keyboard->SM_button_off = SM_button_off;
keyboard->SM_button_nav = SM_button_nav;
keyboard->SM_button_hold = SM_button_hold;
keyboard->SM_oskdel = SM_oskdel;
keyboard->SM_osktab = SM_osktab;
keyboard->SM_oskenter = SM_oskenter;
keyboard->SM_oskcapslock = SM_oskcapslock;
keyboard->SM_oskshift = SM_oskshift;
SDL_FillRect(surface, NULL,
SDL_MapRGB(surface->format, keyboard->layout->bgcolor.r, keyboard->layout->bgcolor.g,
keyboard->layout->bgcolor.b));
@ -1005,36 +1065,40 @@ static int is_blank_or_comment(char *line)
/* } */
/* Fixme: Is it safe to supose that if a font is loaded at one size, it will be loaded at any size? */
/* Fixme: sizes should be dynamically adapted to the button size */
/* Fixme: starting a layout with one font causes all other layouts be in that font */
/* FIXME: Is it safe to supose that if a font is loaded at one size, it will be loaded at any size? */
/* FIXME: starting a layout with one font causes all other layouts be in that font */
static void keybd_prepare(on_screen_keyboard * keyboard)
{
char *fontname;
int font_height;
/* Pick a height (e.g., 16pt for small (24x24), 32pt for large (48x48) buttons) */
font_height = ((keyboard->button_up->h * 2) / 3);
fontname = malloc(sizeof(char) * 255);
if (keyboard->osk_fonty == NULL)
{
if (keyboard->layout->fontpath)
{
/* First try if it is an absolute path */
keyboard->osk_fonty = TTF_OpenFont(keyboard->layout->fontpath, 12);
keyboard->osk_fonty = TTF_OpenFont(keyboard->layout->fontpath, font_height);
if (keyboard->osk_fonty == NULL)
{
/* Now trying if it is relative to DATA_PREFIX/fonts/ */
snprintf(fontname, 255, "%s/fonts/%s", DATA_PREFIX, keyboard->layout->fontpath);
keyboard->osk_fonty = TTF_OpenFont(fontname, 12);
keyboard->osk_fonty = TTF_OpenFont(fontname, font_height);
if (keyboard->osk_fonty == NULL)
{
/* Perhaps it is relative to DATA_PREFIX only? */
snprintf(fontname, 255, "%s/%s", DATA_PREFIX, keyboard->layout->fontpath);
keyboard->osk_fonty = TTF_OpenFont(fontname, 12);
keyboard->osk_fonty = TTF_OpenFont(fontname, font_height);
if (keyboard->osk_fonty == NULL)
{
/* Or to DATA_PREFIX/fonts/locale/ ? */
snprintf(fontname, 255, "%s/fonts/locale/%s", DATA_PREFIX, keyboard->layout->fontpath);
keyboard->osk_fonty = TTF_OpenFont(fontname, 12);
keyboard->osk_fonty = TTF_OpenFont(fontname, font_height);
}
}
}
@ -1044,7 +1108,7 @@ static void keybd_prepare(on_screen_keyboard * keyboard)
{
/* Going with the default */
sprintf(fontname, "%s/fonts/FreeSansBold.ttf", DATA_PREFIX);
keyboard->osk_fonty = TTF_OpenFont(fontname, 12);
keyboard->osk_fonty = TTF_OpenFont(fontname, font_height);
}
if (keyboard->osk_fonty == NULL)
@ -1687,9 +1751,20 @@ struct osk_keyboard *osk_clicked(on_screen_keyboard * keyboard, int x, int y)
new_keyboard =
osk_create(name, keyboard->surface, keyboard->button_up, keyboard->button_down, keyboard->button_off,
keyboard->button_nav, keyboard->button_hold, keyboard->oskdel, keyboard->osktab,
keyboard->oskenter, keyboard->oskcapslock, keyboard->oskshift, keyboard->disable_change);
osk_create(name, keyboard->canvas_ptr,
keyboard->LG_button_up, keyboard->LG_button_down,
keyboard->LG_button_off, keyboard->LG_button_nav,
keyboard->LG_button_hold,
keyboard->LG_oskdel, keyboard->LG_osktab,
keyboard->LG_oskenter, keyboard->LG_oskcapslock,
keyboard->LG_oskshift,
keyboard->SM_button_up, keyboard->SM_button_down,
keyboard->SM_button_off, keyboard->SM_button_nav,
keyboard->SM_button_hold,
keyboard->SM_oskdel, keyboard->SM_osktab,
keyboard->SM_oskenter, keyboard->SM_oskcapslock,
keyboard->SM_oskshift,
keyboard->disable_change);
free(aux_list_ptr);
@ -1774,7 +1849,7 @@ struct osk_keyboard *osk_clicked(on_screen_keyboard * keyboard, int x, int y)
//event.text.text = keysym2unicode(mnemo2keysym(mnemo, keyboard), keyboard);
clear_dead_sticks(keyboard);
event.type = SDL_KEYDOWN;
event.type = SDL_TEXTINPUT;
SDL_PushEvent(&event);
free(mnemo);
}

View file

@ -104,13 +104,15 @@ typedef struct osk_keyboard
{
char *name; /* The name of the keyboard */
char *keyboard_list; /* The names of the keyboards allowed from this one */
SDL_Surface *surface; /* The surface containing the keyboard */
SDL_Surface *button_up; /* The surfaces containing the buttons */
SDL_Surface *surface; /* The surface containing the current layout's keyboard */
/* The surfaces containing the current layout's button backgrounds*/
SDL_Surface *button_up;
SDL_Surface *button_down;
SDL_Surface *button_off;
SDL_Surface *button_nav;
SDL_Surface *button_hold;
SDL_Surface *oskdel; /* The surfaces containing some symbols for the buttons, delete arrow */
/* The surfaces containing some symbols for the current layout's buttons */
SDL_Surface *oskdel; /* delete arrow */
SDL_Surface *osktab; /* Tab arrows */
SDL_Surface *oskenter; /* Return hook/arrow */
SDL_Surface *oskcapslock; /* CapsLock */
@ -131,12 +133,41 @@ typedef struct osk_keyboard
int composed_type; /* 1 if the value stored in composed is yet the unicode value */
osk_composenode *composing; /* The node in the middle of a compose sequence */
osk_key *last_key_pressed; /* The last key pressed */
SDL_Surface * canvas_ptr; /* Canvas drawing surface, for bpp and sizing needs when cycling through keyboard layouts */
/* Large and small buttons, to pass back to osk_create() when cycling through keyboard layouts */
SDL_Surface *LG_button_up;
SDL_Surface *LG_button_down;
SDL_Surface *LG_button_off;
SDL_Surface *LG_button_nav;
SDL_Surface *LG_button_hold;
SDL_Surface *LG_oskdel;
SDL_Surface *LG_osktab;
SDL_Surface *LG_oskenter;
SDL_Surface *LG_oskcapslock;
SDL_Surface *LG_oskshift;
SDL_Surface *SM_button_up;
SDL_Surface *SM_button_down;
SDL_Surface *SM_button_off;
SDL_Surface *SM_button_nav;
SDL_Surface *SM_button_hold;
SDL_Surface *SM_oskdel;
SDL_Surface *SM_osktab;
SDL_Surface *SM_oskenter;
SDL_Surface *SM_oskcapslock;
SDL_Surface *SM_oskshift;
} on_screen_keyboard;
struct osk_keyboard *osk_create(char *layout_name, SDL_Surface * canvas, SDL_Surface * button_up,
SDL_Surface * button_down, SDL_Surface * button_off, SDL_Surface * button_nav,
SDL_Surface * button_hold, SDL_Surface * oskdel, SDL_Surface * osktab,
SDL_Surface * oskenter, SDL_Surface * oskcapslock, SDL_Surface * oskshift,
struct osk_keyboard *osk_create(char * layout_name, SDL_Surface * canvas,
SDL_Surface * LG_button_up, SDL_Surface * LG_button_down,
SDL_Surface * LG_button_off, SDL_Surface * LG_button_nav,
SDL_Surface * LG_button_hold,
SDL_Surface * LG_oskdel, SDL_Surface * LG_osktab, SDL_Surface * LG_oskenter,
SDL_Surface * LG_oskcapslock, SDL_Surface * LG_oskshift,
SDL_Surface * SM_button_up, SDL_Surface * SM_button_down,
SDL_Surface * SM_button_off, SDL_Surface * SM_button_nav,
SDL_Surface * SM_button_hold,
SDL_Surface * SM_oskdel, SDL_Surface * SM_osktab, SDL_Surface * SM_oskenter,
SDL_Surface * SM_oskcapslock, SDL_Surface * SM_oskshift,
int disable_change);
struct osk_layout *osk_load_layout(char *layout_name);

View file

@ -1,16 +1,18 @@
# Galician translation Tux Paint.
# Copyright (C) 2015 Tux Paint.
# This file is distributed under the same license as the Tux Paint package.
#
# Translators:
# Leandro Regueiro <leandro.regueiro@gmail.com>, 2005-2006
# Miguel Anxo Bouzada <mbouzada@gmail.com>, 2015
# Miguel A. Bouzada <mbouzada@gmail.com>, 2017.
# Miguel Anxo Bouzada <mbouzada@gmail.com>, 2017
# Miguel Anxo Bouzada <mbouzada@gmail.com>, 2020.
msgid ""
msgstr ""
"Project-Id-Version: Tux Paint\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-15 16:42-0700\n"
"PO-Revision-Date: 2020-08-16 09:19+0200\n"
"PO-Revision-Date: 2020-09-03 18:31+0200\n"
"Last-Translator: Miguel Anxo Bouzada <mbouzada@gmail.com>\n"
"Language-Team: Proxecto Trasno <proxecto@trasno.net>\n"
"Language: gl\n"
@ -18,7 +20,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Poedit 2.3\n"
"X-Generator: Poedit 2.4.1\n"
#. Response to Black (0, 0, 0) color selected
#: ../colors.h:86
@ -533,7 +535,7 @@ msgstr "Escolle unha cor ou unha imaxe coa que iniciar un novo debuxo."
#. Response to 'open' action (while file dialog is being constructed)
#: ../tools.h:154
msgid "Open…"
msgstr "Abrir..."
msgstr "Abrir"
#. Response to 'save' action
#: ../tools.h:157
@ -543,7 +545,7 @@ msgstr "Gardouse a túa imaxe!"
#. Response to 'print' action (while printing, or print dialog is being used)
#: ../tools.h:160
msgid "Printing…"
msgstr "Imprimindo..."
msgstr "Imprimindo"
#. Response to 'quit' (exit) action
#: ../tools.h:163
@ -697,7 +699,7 @@ msgstr "Son sen silenciar."
#. Wait while Text tool finishes loading fonts
#: ../tuxpaint.c:3167
msgid "Please wait…"
msgstr "Agarda un chisco..."
msgstr "Agarda un chisco"
#. Open dialog: 'Erase' button, to erase/deleted the selected picture
#: ../tuxpaint.c:7923
@ -822,7 +824,7 @@ msgid ""
"perpendicularly to open or close the blinds."
msgstr ""
"Preme preto do bordo do debuxo para poñer unha persiana sobre el. Move o "
"rato perpendicularmente para abrir ou pechas as persianas. "
"rato perpendicularmente para abrir ou pechas as persianas."
#: ../../magic/src/blocks_chalk_drip.c:129
msgid "Blocks"
@ -900,7 +902,7 @@ msgstr "Confeti"
#: ../../magic/src/confetti.c:88
msgid "Click to throw confetti!"
msgstr "Preme para lanzar confeti"
msgstr "Preme para lanzar confeti."
#: ../../magic/src/distortion.c:134
msgid "Distortion"
@ -932,7 +934,7 @@ msgstr "Preme e arrastra o rato para clarexar algunhas partes do debuxo."
#: ../../magic/src/fade_darken.c:129
msgid "Click to lighten your entire picture."
msgstr "Preme para clarexar todo o debuxo"
msgstr "Preme para clarexar todo o debuxo."
#: ../../magic/src/fade_darken.c:134
msgid "Click and drag the mouse to darken parts of your picture."
@ -1042,7 +1044,7 @@ msgid ""
"Click and drag the mouse to draw with two brushes that are symmetric across "
"the left and right of your picture."
msgstr ""
"Preme e arrastra o rato para debuxar con dous pinceis simétricos da dereita "
"Preme e arrastra o rato para debuxar con dous pinceis simétricos á dereita e "
"á esquerda do debuxo."
#: ../../magic/src/kalidescope.c:152
@ -1050,7 +1052,7 @@ msgid ""
"Click and drag the mouse to draw with two brushes that are symmetric across "
"the top and bottom of your picture."
msgstr ""
"Preme e arrastra o rato para debuxar con dous pinceis simétricos de arriba a "
"Preme e arrastra o rato para debuxar con dous pinceis simétricos arriba e "
"abaixo do debuxo."
#: ../../magic/src/kalidescope.c:156
@ -1089,7 +1091,7 @@ msgstr "Preme e arrastra o rato para pintar cunha cor metalizada."
#: ../../magic/src/mirror_flip.c:110
msgid "Mirror"
msgstr "Reflectir"
msgstr "Espello"
#: ../../magic/src/mirror_flip.c:112
msgid "Flip"
@ -1179,7 +1181,7 @@ msgstr "Preme para converter a negativo o debuxo."
#: ../../magic/src/noise.c:66
msgid "Noise"
msgstr "Noise"
msgstr "Ruído"
#: ../../magic/src/noise.c:70
msgid "Click and drag the mouse to add noise to parts of your picture."
@ -1188,7 +1190,7 @@ msgstr ""
#: ../../magic/src/noise.c:71
msgid "Click to add noise to your entire picture."
msgstr "Preme para engadirlle ruído a todo o debuxo"
msgstr "Preme para engadirlle ruído a todo o debuxo."
#: ../../magic/src/perspective.c:147
msgid "Perspective"
@ -1266,11 +1268,11 @@ msgstr ""
#: ../../magic/src/ripples.c:102
msgid "Ripples"
msgstr "Ondulacións"
msgstr "Rizos"
#: ../../magic/src/ripples.c:108
msgid "Click to make ripples appear over your picture."
msgstr "Preme para facer que aparezan unhas ondas no debuxo."
msgstr "Preme para facer que aparezan unhas ondas rizadas no debuxo."
#: ../../magic/src/rosette.c:115
msgid "Rosette"
@ -1354,7 +1356,7 @@ msgstr ""
#: ../../magic/src/snow.c:71
msgid "Snow Ball"
msgstr "Cerellos"
msgstr "Bolas de neve"
#: ../../magic/src/snow.c:72
msgid "Snow Flake"
@ -1362,11 +1364,11 @@ msgstr "Folerpas"
#: ../../magic/src/snow.c:76
msgid "Click to add snow balls to your picture."
msgstr "Preme para engadirlle cerellos ao debuxo"
msgstr "Preme para engadirlle cerellos ao debuxo."
#: ../../magic/src/snow.c:77
msgid "Click to add snow flakes to your picture."
msgstr "Preme para engadirlle folerpas ao debuxo"
msgstr "Preme para engadirlle folerpas ao debuxo."
#: ../../magic/src/string.c:129
msgid "String edges"
@ -1395,7 +1397,7 @@ msgstr "Preme e arrastra o rato para debuxar frechas feitas con cadenetas."
#: ../../magic/src/string.c:153
msgid "Draw string art arrows with free angles."
msgstr "Debuxa cadenetas con forma de frecha de varios ángulos. "
msgstr "Debuxa cadenetas con forma de frecha de varios ángulos."
#: ../../magic/src/tint.c:74
msgid "Tint"
@ -1496,7 +1498,7 @@ msgstr "Preme e arrastra o rato para obter un efecto excluínte (XOR)"
#: ../../magic/src/xor.c:101
msgid "Click to draw a XOR effect on the whole picture"
msgstr "Preme para obter un efecto excluínte (XOR) en todo o debuxo."
msgstr "Preme para obter un efecto excluínte (XOR) en todo o debuxo"
#~ msgid "`\\%_@$~#{<(^&*"
#~ msgstr "`\\%_@$~#{<(^&*"

View file

@ -2,7 +2,7 @@
# Íslensk þýðing á TuxPaint
# Copyright (C) 2002-2017.
# This file is distributed under the same license as the tuxpaint package.
#
#
# Pjetur G. Hjaltason <pjetur@pjetur.net>, 2002, 2003, 2004, 2014.
# Sveinn í Felli <sv1@fellsnet.is>, 2015, 2017, 2020.
msgid ""
@ -110,19 +110,19 @@ msgstr "Fölbrúnt!"
#. they have both uppercase and lowercase letters. Note that we do not
#. test for "Aa", because it is OK if uppercase and lowercase are the
#. same (but not nice -- such fonts get a low score later).
#.
#.
#. Most locales leave the blacklist strings alone: "QX" and "qx"
#. (it is less destructive to use the scoring strings instead)
#.
#.
#. Locales that absolutely require all fonts to have some
#. extra characters should use "QX..." and "qx...", where "..."
#. are some characters you absolutely require in all fonts.
#.
#.
#. Locales with absolutely NO use for ASCII may use "..." and "...",
#. where "..." are some characters you absolutely require in
#. all fonts. This would be the case for a locale in which it is
#. impossible for a user to type ASCII letters.
#.
#.
#. Most translators should use scoring instead.
#: ../dirwalk.c:177
msgid "qx"
@ -474,17 +474,13 @@ msgid "Click to start drawing a line. Let go to complete it."
msgstr "Smelltu til að byrja línu. Slepptu til að enda línuna."
#: ../tools.h:125
#| msgid ""
#| "Pick a shape. Click to pick the center, drag, then let go when it is the "
#| "size you want. Move around to rotate it, and click to draw it."
msgid ""
"Pick a shape. Click to start drawing, drag, and let go when it is the size "
"you want. Move around to rotate it, and click to draw it."
msgstr ""
"Veldu form. Smelltu til að byrja að teikna, dragðu músina til, slepptu þegar"
" það "
"er af réttri stærð. Hreyfðu til að snúa forminu, og smelltu til að teikna "
"það."
"Veldu form. Smelltu til að byrja að teikna, dragðu músina til, slepptu þegar "
"það er af réttri stærð. Hreyfðu til að snúa forminu, og smelltu til að "
"teikna það."
#: ../tools.h:129
msgid ""
@ -780,7 +776,7 @@ msgstr "Veldu teikningu, og smelltu svo á 'Opna'."
#. None selected? Too dangerous to automatically select all (like we do for slideshow playback).
#. Only 1 selected? No point in saving as GIF.
#.
#.
#: ../tuxpaint.c:15880
msgid "Select 2 or more drawings to turn into an animated GIF."
msgstr "Veldu 2 eða fleiri teikningar sem á að breyta í GIF-hreyfimynd."

File diff suppressed because it is too large Load diff

View file

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: tuxpaint 0.9.23\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-08-15 16:42-0700\n"
"PO-Revision-Date: 2020-08-17 20:27+0900\n"
"PO-Revision-Date: 2020-08-19 20:56+0900\n"
"Last-Translator: Shin-ichi TOYAMA <shin1@wmail.plala.or.jp>\n"
"Language-Team: japanese <shin1@wmail.plala.or.jp>\n"
"Language: ja\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.3\n"
"X-Generator: Poedit 2.4.1\n"
#. Response to Black (0, 0, 0) color selected
#: ../colors.h:86
@ -338,11 +338,11 @@ msgstr "とんがりが 5つの ほし。"
#: ../shapes.h:372
msgid "Draw shapes from the center."
msgstr ""
msgstr "ずけいを まんなかから ひろげます。"
#: ../shapes.h:373
msgid "Draw shapes from a corner."
msgstr ""
msgstr "ずけいを ひだりうえの かどから ひろげます。"
#. Title of tool selector (buttons down the left)
#: ../titles.h:56
@ -680,7 +680,7 @@ msgstr "えを かきだしたよ!"
#: ../tuxpaint.c:2191
msgid "Your slideshow GIF has been exported!"
msgstr "スライドショーを GIF けいしきで かきだしたよ!"
msgstr "スライドショーを GIF アニメに かきだしたよ!"
#. We got an error exporting
#: ../tuxpaint.c:2195
@ -724,7 +724,7 @@ msgstr "スライド"
#. Open dialog: 'Export' button, to copy an image to an easily-accessible location
#: ../tuxpaint.c:7929
msgid "Export"
msgstr ""
msgstr "かきだす"
#. Open dialog: 'Back' button, to dismiss Open dialog without opening a picture
#: ../tuxpaint.c:7932
@ -739,7 +739,7 @@ msgstr "かいし"
#. Slideshow: 'GIF Export' button, to create an animated GIF
#: ../tuxpaint.c:7938
msgid "GIF Export"
msgstr ""
msgstr "かきだす"
#. Slideshow: 'Next' button, to load next slide (image)
#: ../tuxpaint.c:7941
@ -790,7 +790,7 @@ msgstr "えを えらんでから 「ひらく」をクリックしてね。"
#.
#: ../tuxpaint.c:15880
msgid "Select 2 or more drawings to turn into an animated GIF."
msgstr ""
msgstr "2ついじょうのえをえらんで GIFアニメをかきだします。"
#: ../tuxpaint.c:23539
msgid "Select a color from your drawing."

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -2,7 +2,7 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#
#, fuzzy
msgid ""
msgstr ""
@ -107,19 +107,19 @@ msgstr ""
#. they have both uppercase and lowercase letters. Note that we do not
#. test for "Aa", because it is OK if uppercase and lowercase are the
#. same (but not nice -- such fonts get a low score later).
#.
#.
#. Most locales leave the blacklist strings alone: "QX" and "qx"
#. (it is less destructive to use the scoring strings instead)
#.
#.
#. Locales that absolutely require all fonts to have some
#. extra characters should use "QX..." and "qx...", where "..."
#. are some characters you absolutely require in all fonts.
#.
#.
#. Locales with absolutely NO use for ASCII may use "..." and "...",
#. where "..." are some characters you absolutely require in
#. all fonts. This would be the case for a locale in which it is
#. impossible for a user to type ASCII letters.
#.
#.
#. Most translators should use scoring instead.
#: ../dirwalk.c:177
msgid "qx"
@ -762,7 +762,7 @@ msgstr ""
#. None selected? Too dangerous to automatically select all (like we do for slideshow playback).
#. Only 1 selected? No point in saving as GIF.
#.
#.
#: ../tuxpaint.c:15880
msgid "Select 2 or more drawings to turn into an animated GIF."
msgstr ""

View file

@ -22,7 +22,7 @@
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
(See COPYING.txt)
June 14, 2002 - August 16, 2020
June 14, 2002 - October 15, 2020
*/
@ -1526,7 +1526,7 @@ static int text_undo[NUM_UNDO_BUFS];
static int have_to_rec_label_node;
static int have_to_rec_label_node_back;
static SDL_Surface *img_title, *img_title_credits, *img_title_tuxpaint;
static SDL_Surface *img_btn_up, *img_btn_down, *img_btn_off;
static SDL_Surface *img_btn_up, *img_btn_down, *img_btn_off, *img_btn_hold;
static SDL_Surface *img_btnsm_up, *img_btnsm_off, *img_btnsm_down, *img_btnsm_hold;
static SDL_Surface *img_btn_nav, *img_btnsm_nav;
static SDL_Surface *img_prev, *img_next;
@ -2315,6 +2315,8 @@ enum
SHAPE_TOOL_MODE_DONE
};
int shape_reverse;
int brushflag, xnew, ynew, eraflag, lineflag, magicflag, keybd_flag, keybd_position, keyglobal, initial_y, gen_key_flag,
ide, activeflag, old_x, old_y;
@ -3328,6 +3330,40 @@ static void mainloop(void)
{
if (onscreen_keyboard && kbd)
{
if (kbd == NULL)
{
if (onscreen_keyboard_layout)
kbd =
osk_create(onscreen_keyboard_layout, screen,
img_btn_up, img_btn_down, img_btn_off,
img_btn_nav, img_btn_hold,
img_oskdel, img_osktab, img_oskenter,
img_oskcapslock, img_oskshift,
img_btnsm_up, img_btnsm_down, img_btnsm_off,
img_btnsm_nav, img_btnsm_hold,
/* FIXME */
img_oskdel, img_osktab, img_oskenter,
img_oskcapslock, img_oskshift,
onscreen_keyboard_disable_change);
else
kbd =
osk_create(strdup("default.layout"), screen,
img_btn_up, img_btn_down, img_btn_off,
img_btn_nav, img_btn_hold,
img_oskdel, img_osktab, img_oskenter,
img_oskcapslock, img_oskshift,
img_btnsm_up, img_btnsm_down, img_btnsm_off,
img_btnsm_nav, img_btnsm_hold,
/* FIXME */
img_oskdel, img_osktab, img_oskenter,
img_oskcapslock, img_oskshift,
onscreen_keyboard_disable_change);
}
if (kbd == NULL)
{
fprintf(stderr, "kbd = NULL\n");
}
kbd_rect.x = button_w * 2 + (canvas->w - kbd->surface->w) / 2;
if (old_y > canvas->h / 2)
kbd_rect.y = 0;
@ -5298,6 +5334,10 @@ static void mainloop(void)
shape_tool_mode = SHAPE_TOOL_MODE_DONE;
draw_tux_text(TUX_GREAT, tool_tips[TOOL_SHAPES], 1);
/* FIXME: Do something less intensive! */
SDL_Flip(screen);
}
}
}
@ -5617,6 +5657,8 @@ static void mainloop(void)
do_shape(shape_start_x, shape_start_y, new_x, new_y, 0, 0);
shape_reverse = (new_x < shape_start_x);
/* FIXME: Fix update shape function! */
@ -12384,7 +12426,7 @@ static void save_current(void)
char *fname;
FILE *fi;
if (!make_directory(DIR_SAVE, "", "Can't create user data directory"))
if (!make_directory(DIR_SAVE, "", "Can't create user data directory (E001)"))
{
draw_tux_text(TUX_OOPS, strerror(errno), 0);
return;
@ -13010,6 +13052,7 @@ static void cleanup(void)
free_surface(&img_btn_up);
free_surface(&img_btn_down);
free_surface(&img_btn_off);
free_surface(&img_btn_hold);
free_surface(&img_btnsm_up);
free_surface(&img_btnsm_off);
@ -13610,9 +13653,12 @@ static int shape_rotation(int ctr_x, int ctr_y, int ox, int oy)
{
int deg;
deg = (atan2(oy - ctr_y, ox - ctr_x) * 180 / M_PI);
if (shape_reverse) {
deg = (deg + 180) % 360;
}
if (shape_radius < 50)
deg = ((deg - 15) / 30) * 30;
else if (shape_radius < 100)
@ -13731,7 +13777,7 @@ static int do_save(int tool, int dont_show_success_results, int autosave)
do_setcursor(cursor_watch);
}
if (!make_directory(DIR_SAVE, "", "Can't create user data directory"))
if (!make_directory(DIR_SAVE, "", "Can't create user data directory (E002)"))
{
fprintf(stderr, "Cannot save the any pictures! SORRY!\n\n");
draw_tux_text(TUX_OOPS, strerror(errno), 0);
@ -13746,7 +13792,7 @@ static int do_save(int tool, int dont_show_success_results, int autosave)
/* Make sure we have a ~/.tuxpaint/saved directory: */
if (!make_directory(DIR_SAVE, "saved", "Can't create user data directory"))
if (!make_directory(DIR_SAVE, "saved", "Can't create user data directory (for saved drawings) (E003)"))
{
fprintf(stderr, "Cannot save any pictures! SORRY!\n\n");
draw_tux_text(TUX_OOPS, strerror(errno), 0);
@ -13761,7 +13807,7 @@ static int do_save(int tool, int dont_show_success_results, int autosave)
/* Make sure we have a ~/.tuxpaint/saved/.thumbs/ directory: */
if (!make_directory(DIR_SAVE, "saved/.thumbs", "Can't create user data thumbnail directory"))
if (!make_directory(DIR_SAVE, "saved/.thumbs", "Can't create user data thumbnail directory (for saved drawings' thumbnails) (E004)"))
{
fprintf(stderr, "Cannot save any pictures! SORRY!\n\n");
draw_tux_text(TUX_OOPS, strerror(errno), 0);
@ -13770,9 +13816,8 @@ static int do_save(int tool, int dont_show_success_results, int autosave)
/* Make sure we have a ~/.tuxpaint/saved/.label/ directory: */
if (!make_directory(DIR_SAVE, "saved/.label", "Can't create label information directory"))
{
if (!make_directory(DIR_SAVE, "saved/.label", "Can't create label information directory (E005)"))
{
fprintf(stderr, "Cannot save label information! SORRY!\n\n");
draw_tux_text(TUX_OOPS, strerror(errno), 0);
return 0;
@ -14833,10 +14878,10 @@ static int do_open(void)
/* No thumbnail - load original: */
/* Make sure we have a ~/.tuxpaint/saved directory: */
if (make_directory(DIR_SAVE, "saved", "Can't create user data directory"))
if (make_directory(DIR_SAVE, "saved", "Can't create user data directory (for saved drawings) (E006)"))
{
/* (Make sure we have a .../saved/.thumbs/ directory:) */
make_directory(DIR_SAVE, "saved/.thumbs", "Can't create user data thumbnail directory");
make_directory(DIR_SAVE, "saved/.thumbs", "Can't create user data thumbnail directory (for saved drawings' thumbnails) (E007)");
}
@ -15914,10 +15959,10 @@ static int do_slideshow(void)
/* No thumbnail - load original: */
/* Make sure we have a ~/.tuxpaint/saved directory: */
if (make_directory(DIR_SAVE, "saved", "Can't create user data directory"))
if (make_directory(DIR_SAVE, "saved", "Can't create user data directory (for saved drawings) (E008)"))
{
/* (Make sure we have a .../saved/.thumbs/ directory:) */
make_directory(DIR_SAVE, "saved/.thumbs", "Can't create user data thumbnail directory");
make_directory(DIR_SAVE, "saved/.thumbs", "Can't create user data thumbnail directory (for saved drawings' thumbnails) (E009)");
}
safe_snprintf(fname, sizeof(fname), "%s/%s", dirname, f->d_name);
@ -19824,12 +19869,16 @@ static int do_new_dialog(void)
{
/* No thumbnail - load original: */
/* Make sure we have a ~/.tuxpaint/[starters|templates] directory: */
if (make_directory(DIR_SAVE, dirname[d_places[num_files]], "Can't create user data directory"))
if (d_places[num_files] == PLACE_PERSONAL_TEMPLATES_DIR ||
d_places[num_files] == PLACE_PERSONAL_STARTERS_DIR)
{
/* (Make sure we have a .../[starters|templates]/.thumbs/ directory:) */
safe_snprintf(fname, sizeof(fname), "%s/.thumbs", dirname[d_places[num_files]]);
make_directory(DIR_SAVE, fname, "Can't create user data thumbnail directory");
/* Make sure we have a ~/.tuxpaint/[starters|templates] directory: */
if (make_directory(DIR_SAVE, dirname[d_places[num_files]], "Can't create user data directory (for starters/templates) (E010)"))
{
/* (Make sure we have a .../[starters|templates]/.thumbs/ directory:) */
safe_snprintf(fname, sizeof(fname), "%s/.thumbs", dirname[d_places[num_files]]);
make_directory(DIR_SAVE, fname, "Can't create user data thumbnail directory (for starters/templates) (E011)");
}
}
img = NULL;
@ -19930,10 +19979,10 @@ static int do_new_dialog(void)
safe_snprintf(fname, sizeof(fname), "%s/.thumbs/%s-t.png",
dirname[d_places[num_files]], d_names[num_files]);
if (!make_directory(DIR_SAVE, "starters", "Can't create user data directory") ||
!make_directory(DIR_SAVE, "templates", "Can't create user data directory") ||
!make_directory(DIR_SAVE, "starters/.thumbs", "Can't create user data directory") ||
!make_directory(DIR_SAVE, "templates/.thumbs", "Can't create user data directory"))
if (!make_directory(DIR_SAVE, "starters", "Can't create user data directory (for starters) (E012)") ||
!make_directory(DIR_SAVE, "templates", "Can't create user data directory (for templates) (E013)") ||
!make_directory(DIR_SAVE, "starters/.thumbs", "Can't create user data directory (for starters) (E014)") ||
!make_directory(DIR_SAVE, "templates/.thumbs", "Can't create user data directory (for templates) (E015)"))
fprintf(stderr, "Cannot save any pictures! SORRY!\n\n");
else
{
@ -25040,6 +25089,7 @@ static void setup(void)
img_btn_up = loadimage(DATA_PREFIX "images/ui/btn_up.png");
img_btn_down = loadimage(DATA_PREFIX "images/ui/btn_down.png");
img_btn_off = loadimage(DATA_PREFIX "images/ui/btn_off.png");
img_btn_hold = loadimage(DATA_PREFIX "images/ui/btn_hold.png");
img_btnsm_up = loadimage(DATA_PREFIX "images/ui/btnsm_up.png");
img_btnsm_off = loadimage(DATA_PREFIX "images/ui/btnsm_off.png");
@ -25158,14 +25208,22 @@ static void setup(void)
kbd = NULL;
else
kbd =
osk_create(onscreen_keyboard_layout, screen, img_btnsm_up, img_btnsm_down, img_btnsm_off, img_btnsm_nav,
osk_create(onscreen_keyboard_layout, screen, img_btn_up, img_btn_down, img_btn_off,
img_btn_nav, img_btn_hold,
img_oskdel, img_osktab, img_oskenter,
img_oskcapslock, img_oskshift,
img_btnsm_up, img_btnsm_down, img_btnsm_off, img_btnsm_nav,
img_btnsm_hold, img_oskdel, img_osktab, img_oskenter, img_oskcapslock, img_oskshift,
onscreen_keyboard_disable_change);
}
else
{
kbd =
osk_create(strdup("default.layout"), screen, img_btnsm_up, img_btnsm_down, img_btnsm_off, img_btnsm_nav,
osk_create(strdup("default.layout"), screen, img_btn_up, img_btn_down, img_btn_off,
img_btn_nav, img_btn_hold,
img_oskdel, img_osktab, img_oskenter,
img_oskcapslock, img_oskshift,
img_btnsm_up, img_btnsm_down, img_btnsm_off, img_btnsm_nav,
img_btnsm_hold, img_oskdel, img_osktab, img_oskenter, img_oskcapslock, img_oskshift,
onscreen_keyboard_disable_change);
}
@ -26733,7 +26791,7 @@ static char * get_export_filepath(const char * ext) {
/* Make sure the export dir exists */
if (!make_directory(DIR_EXPORT, "", "Can't create export directory"))
if (!make_directory(DIR_EXPORT, "", "Can't create export directory (E016)"))
{
return NULL;
}