Expanded the steps for making and posting releases (docs/RELEASE.txt). Bumped version to 0.9.26.
1912 lines
62 KiB
HTML
1912 lines
62 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
||
<html>
|
||
<head>
|
||
<meta name="generator"
|
||
content="HTML Tidy for HTML5 for Linux version 5.6.0">
|
||
<title>
|
||
Extending Tux Paint
|
||
</title>
|
||
<meta http-equiv="Content-Type"
|
||
content="text/html; charset=utf-8">
|
||
</head>
|
||
<body bgcolor="#FFFFFF"
|
||
text="#000000"
|
||
link="#0000FF"
|
||
vlink="#FF0000"
|
||
alink="#FF00FF">
|
||
<center>
|
||
<h1>
|
||
Extending<br>
|
||
<img src="../../html/images/tuxpaint-title.png"
|
||
width="205"
|
||
height="210"
|
||
alt="Tux Paint"><br>
|
||
version 0.9.26
|
||
</h1>
|
||
|
||
<p>
|
||
Copyright (c) 2002-2020 by various contributors; see
|
||
AUTHORS.txt<br>
|
||
<a href=
|
||
"http://www.tuxpaint.org/">http://www.tuxpaint.org/</a>
|
||
</p>
|
||
|
||
<p>
|
||
June 14, 2002 - December 27, 2020
|
||
</p>
|
||
</center>
|
||
|
||
<hr size="2"
|
||
noshade>
|
||
|
||
<table border="2"
|
||
cellspacing="0"
|
||
cellpadding="2"
|
||
summary="Table of Contents">
|
||
<tr>
|
||
<th>
|
||
Table of Contents
|
||
</th>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td>
|
||
<ul>
|
||
<li>
|
||
<a href="#where_files_go">Where Files Go</a>
|
||
<ul>
|
||
<li>
|
||
<a href="#standard_files">Standard Files</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="#personal_files">Personal Files</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="#brushes">Brushes</a>
|
||
<ul>
|
||
<li>
|
||
<a href="#brush_options">Brush Options</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="#stamps">Stamps</a>
|
||
<ul>
|
||
<li>
|
||
<a href="#stamps_images">Images</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="#description_text">Description Text</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="#sound_effects">Sound Effects</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="#descriptive_sound">Descriptive
|
||
Sound</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="#stamp_options">Stamp Options</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href=
|
||
"#pre_mirroed_and_flipped_images">Pre-Mirrored
|
||
and Flipped Images</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="#fonts">Fonts</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="#starters">'Starters'</a>
|
||
<ul>
|
||
<li>
|
||
<a href="#coloring_book_style">Coloring-Book
|
||
Style</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="#scene_style">Scene-Style</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="#templates">'Templates'</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="#translations">Translations</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="#input_methods">Alternative Input
|
||
Methods</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="#on_screen_keyboard">On-screen Keyboard</a>
|
||
</li>
|
||
</ul>
|
||
</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<hr size="2"
|
||
noshade>
|
||
|
||
<p>
|
||
If you wish to add or change things like Brushes, Starters,
|
||
<span style="white-space: nowrap;">Rubber Stamps</span> and
|
||
other content used by <cite style="white-space: nowrap;">Tux
|
||
Paint</cite>, you can do so fairly easily by simply adding,
|
||
changing, or removing files where <span style=
|
||
"white-space: nowrap;">Tux Paint</span> looks for them.
|
||
</p>
|
||
|
||
<p>
|
||
Note: You'll need to restart <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite> for the changes to
|
||
take effect.
|
||
</p>
|
||
|
||
<hr size="2"
|
||
noshade>
|
||
|
||
<h2>
|
||
<a name="where_files_go"
|
||
id="where_files_go">Where Files Go</a>
|
||
</h2>
|
||
|
||
<blockquote>
|
||
<h3>
|
||
<a name="standard_files"
|
||
id="standard_files">Standard Files</a>
|
||
</h3>
|
||
|
||
<blockquote>
|
||
<p>
|
||
<cite style="white-space: nowrap;">Tux Paint</cite> looks
|
||
for its various data files in its '<code>data</code>'
|
||
directory.
|
||
</p>
|
||
|
||
<h4>
|
||
Linux and Unix
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
Where this directory goes depends on what value was set
|
||
for "<code>DATA_PREFIX</code>" when <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite> was built. See
|
||
<a href="../INSTALL.txt">INSTALL.txt</a> for details.
|
||
</p>
|
||
|
||
<p>
|
||
By default, though, the directory is:
|
||
</p>
|
||
|
||
<blockquote>
|
||
<code>/usr/local/share/tuxpaint/</code>
|
||
</blockquote>
|
||
|
||
<p>
|
||
If you installed from a package, it is more likely to
|
||
be:
|
||
</p>
|
||
|
||
<blockquote>
|
||
<code>/usr/share/tuxpaint/</code>
|
||
</blockquote>
|
||
</blockquote>
|
||
|
||
<h4>
|
||
Windows
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
<cite style="white-space: nowrap;">Tux Paint</cite>
|
||
looks for a directory called 'data' in the same
|
||
directory as the executable. This is the directory that
|
||
the installer used when installing <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite> e.g.:
|
||
</p>
|
||
|
||
<blockquote>
|
||
<code style="white-space: nowrap;">C:\Program
|
||
Files\TuxPaint\data</code>
|
||
</blockquote>
|
||
</blockquote>
|
||
|
||
<h4>
|
||
macOS
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
<cite style="white-space: nowrap;">Tux Paint</cite>
|
||
stores its data files inside the "<code style=
|
||
"white-space: nowrap;">Tux Paint</code>" application
|
||
icon (which is actually a special kind of folder on
|
||
macOS & <span style="white-space: nowrap;">Mac OS
|
||
X</span> before it). The following steps explain how to
|
||
get to the folders within it:
|
||
</p>
|
||
|
||
<ol>
|
||
<li>Bring up a 'context' menu by holding the [Control]
|
||
key and clicking the <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite> icon the in
|
||
<cite>Finder</cite>. (If you have a mouse with more
|
||
than one button, you can simply right-click the icon.)
|
||
</li>
|
||
|
||
<li>Select "<span style="white-space: nowrap;">Show
|
||
Contents</span>" from the menu that appears. A new
|
||
<cite>Finder</cite> window will appear with a folder
|
||
inside called "<code>Contents</code>."
|
||
</li>
|
||
|
||
<li>Open the "<code>Contents</code>" folder and open
|
||
the "<code>Resources</code>" folder found inside.
|
||
</li>
|
||
|
||
<li>There, you will find various sub-folders, such as
|
||
"<code>starters</code>", "<code>stamps</code>",
|
||
"<code>brushes</code>", etc. Adding new content to
|
||
these folders will make the content available to any
|
||
user that launches this copy (icon) of <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite>.
|
||
</li>
|
||
</ol>
|
||
|
||
<p>
|
||
<em>Note:</em> If you install a newer version of
|
||
<cite style="white-space: nowrap;">Tux Paint</cite> and
|
||
replace or discard the old version, you will lose
|
||
changes made by following the instructions above, so
|
||
keep backups of your new content (stamps, brushes,
|
||
etc.).
|
||
</p>
|
||
|
||
<p>
|
||
<cite style="white-space: nowrap;">Tux Paint</cite>
|
||
also looks for files in a "<code>TuxPaint</code>"
|
||
folder that you can place in your system's
|
||
"<code style="white-space: nowrap;">Application
|
||
Support</code>" folder (found under
|
||
"<code>Library</code>" at the root of your filesystem):
|
||
</p>
|
||
|
||
<blockquote>
|
||
<code style="white-space: nowrap;">/Library/Application
|
||
Support/TuxPaint/</code>
|
||
</blockquote>
|
||
|
||
<p>
|
||
It also looks for files in the user's "<code style=
|
||
"white-space: nowrap;">Application Support</code>"
|
||
folder:
|
||
</p>
|
||
|
||
<blockquote>
|
||
<code style=
|
||
"white-space: nowrap;">/Users/<i>(username)</i>/Library/Application
|
||
Support/TuxPaint/</code>
|
||
</blockquote>
|
||
|
||
<p>
|
||
When you upgrade to a newer version of <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite>, the contents
|
||
of this <code>TuxPaint</code> folder will stay the same
|
||
and remain accessible by all users of <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite>.
|
||
</p>
|
||
</blockquote>
|
||
</blockquote>
|
||
|
||
<hr size="1"
|
||
noshade>
|
||
|
||
<h3>
|
||
<a name="personal_files"
|
||
id="personal_files">Personal Files</a>
|
||
</h3>
|
||
|
||
<blockquote>
|
||
<p>
|
||
You can also create brushes, stamps, fonts and 'starters'
|
||
in your own directory (folder) for <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite> to find.
|
||
</p>
|
||
|
||
<h4>
|
||
Windows
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
Your personal <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> folder is stored in your "Application
|
||
Data". For example, on newer Windows (set up for an
|
||
English-speaking user):
|
||
</p>
|
||
|
||
<blockquote>
|
||
<code style="white-space: nowrap;">C:\Documents and
|
||
Settings\<i>(username)</i>\Application
|
||
Data\TuxPaint\</code>
|
||
</blockquote>
|
||
</blockquote>
|
||
|
||
<h4>
|
||
Mac OS X
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
Your personal <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> folder is stored in your "Application
|
||
Support" folder:
|
||
</p>
|
||
|
||
<blockquote>
|
||
<code style=
|
||
"white-space: nowrap;">/Users/<i>(username)</i>/Library/Application
|
||
Support/TuxPaint/</code>
|
||
</blockquote>
|
||
</blockquote>
|
||
|
||
<h4>
|
||
Linux and Unix
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
Your personal <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> directory is
|
||
"<code>$(HOME)/.tuxpaint/</code>" (also known as
|
||
"<code>~/.tuxpaint/</code>".
|
||
</p>
|
||
|
||
<p>
|
||
That is, if your home directory is
|
||
"<code>/home/karl</code>", then your <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite> directory is
|
||
"<code>/home/karl/.tuxpaint/</code>".
|
||
</p>
|
||
|
||
<p>
|
||
Don't forget the period ("<code>.</code>") before the
|
||
'<code>tuxpaint</code>'!
|
||
</p>
|
||
</blockquote>
|
||
|
||
<p>
|
||
To add brushes, stamps fonts, and 'starters,' create
|
||
subdirectories under your personal <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite> directory named
|
||
"<code><b>brushes</b></code>",
|
||
"<code><b>stamps</b></code>", "<code><b>fonts</b></code>"
|
||
and "<code><b>starters</b></code>" respectively.
|
||
</p>
|
||
|
||
<p>
|
||
(For example, if you created a brush named
|
||
"<code>flower.png</code>", you would put it in
|
||
"<code>~/.tuxpaint/brushes/</code>" under Linux or Unix.)
|
||
</p>
|
||
</blockquote>
|
||
</blockquote>
|
||
|
||
<hr size="1"
|
||
noshade>
|
||
|
||
<h2>
|
||
<a name="brushes"
|
||
id="brushes">Brushes</a>
|
||
</h2>
|
||
|
||
<blockquote>
|
||
<p>
|
||
The brushes used for drawing with the 'Brush' and 'Lines'
|
||
tools in <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> are simply PNG image files.
|
||
</p>
|
||
<img src="../../html/images/brush_edit.png"
|
||
width="123"
|
||
height="147"
|
||
alt=""
|
||
align="right">
|
||
<p>
|
||
The alpha (transparency) of the PNG image is used to
|
||
determine the shape of the brush, which means that the
|
||
shape can be 'anti-aliased' and even partially-transparent!
|
||
</p>
|
||
|
||
<p>
|
||
Greyscale pixels in the brush PNG will be drawn using the
|
||
currently-selected color in <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite>. Color pixels will
|
||
be tinted.
|
||
</p>
|
||
|
||
<h3>
|
||
<a name="brush_options"
|
||
id="brush_options">Brush Options</a>
|
||
</h3>
|
||
|
||
<blockquote>
|
||
<p>
|
||
Aside from a graphical shape, brushes can also be given
|
||
other attributes. To do this, you need to create a
|
||
<span style="white-space: nowrap;">'data file'</span> for
|
||
the brush.
|
||
</p>
|
||
|
||
<p>
|
||
A brush data file is simply a text file containing the
|
||
options.
|
||
</p>
|
||
|
||
<p>
|
||
The file has the same name as the PNG image, but a
|
||
"<code>.dat</code>" extension. (e.g.,
|
||
"<code>brush.png</code>"'s data file is the text file
|
||
"<code>brush.dat</code>" in the same directory.)
|
||
</p>
|
||
|
||
<h4>
|
||
Brush Spacing
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
As of <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> version 0.9.16, you can now specify the
|
||
spacing for brushes (that is, how often they are
|
||
drawn). By default, the spacing will be the brush's
|
||
height, divided by 4.
|
||
</p>
|
||
|
||
<p>
|
||
Add a line containing the line
|
||
"<code><b>spacing=<i>N</i></b></code>" to the brush's
|
||
data file, where <i>N</i> is the spacing you want for
|
||
the brush. (The lower the number, the more often the
|
||
brush is drawn.)
|
||
</p>
|
||
</blockquote>
|
||
|
||
<h4>
|
||
Animated Brushes
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
As of <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> version 0.9.16, you may now create
|
||
animated brushes. As the brush is used, each frame of
|
||
the animation is drawn.
|
||
</p>
|
||
|
||
<p>
|
||
Lay each frame out across a wide PNG image. For
|
||
example, if your brush is 30x30 and you have 5 frames,
|
||
the image should be 150x30.
|
||
</p>
|
||
|
||
<p>
|
||
Add a line containing the line
|
||
"<code><b>frames=<i>N</i></b></code>" to the brush's
|
||
data file, where <i>N</i> is the number of frames in
|
||
the brush.
|
||
</p>
|
||
|
||
<p>
|
||
<b>Note:</b> If you'd rather the frames be flipped
|
||
through randomly, rather than sequentially, also add a
|
||
line containing "<code><b>random</b></code>" to the
|
||
brush's data file.
|
||
</p>
|
||
</blockquote>
|
||
|
||
<h4>
|
||
Directional Brushes
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
As of <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> version 0.9.16, you may now create
|
||
directional brushes. As the brush is used, different
|
||
shapes are drawn, depending on the direction the brush
|
||
is going.
|
||
</p>
|
||
|
||
<p>
|
||
The directional shapes are divided into a 3x3 square in
|
||
a PNG image. For example, if your brush is 30x30, the
|
||
image should be 90x90, and each of the direction's
|
||
shapes placed in a 3x3 grid. The center region is used
|
||
for no motion. The top right is used for motion that's
|
||
both up, and to the right. And so on.
|
||
</p>
|
||
|
||
<p>
|
||
Add a line containing the line
|
||
"<code><b>directional</b></code>" to the brush's data
|
||
file.
|
||
</p>
|
||
</blockquote>
|
||
|
||
<h4>
|
||
Animated Directional Brushes
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
You may mix both animated and directional features into
|
||
one brush. Use both options
|
||
("<code><b>frames=<i>N</i></b></code>" and
|
||
"<code><b>directional</b></code>"), in separate lines
|
||
in the brush's "<code>".dat</code>" file.
|
||
</p>
|
||
|
||
<p>
|
||
Lay the brush out so that each 3x3 set of directional
|
||
shapes are laid out across a wide PNG image. For
|
||
example, if the brush is 30x30 and there are 5 frames,
|
||
it would be 450x90. (The leftmost 150x90 pixels of the
|
||
image represent the 9 direction shapes for the first
|
||
frame, for example.)
|
||
</p>
|
||
</blockquote>
|
||
</blockquote>
|
||
|
||
<p>
|
||
Place the brush image PNGs (and any data text files) in the
|
||
"<code><b>brushes</b></code>" directory.
|
||
</p>
|
||
|
||
<p>
|
||
Note: If your new brushes all come out as solid squares or
|
||
rectangles, it's because you forgot to use alpha
|
||
transparency! See the documentation file "PNG.txt" for more
|
||
information and tips.
|
||
</p>
|
||
<br clear="all">
|
||
</blockquote>
|
||
|
||
<hr size="1"
|
||
noshade>
|
||
|
||
<h2>
|
||
<a name="stamps"
|
||
id="stamps">Stamps</a>
|
||
</h2>
|
||
|
||
<blockquote>
|
||
<p>
|
||
All stamp-related files go in the
|
||
"<code><b>stamps</b></code>" directory. It's useful to
|
||
create subdirectories and sub-subdirectories there to
|
||
organize the stamps. (For example, you can have a
|
||
"<code>holidays</code>" folder with
|
||
"<code>halloween</code>" and "<code>christmas</code>"
|
||
sub-folders.)
|
||
</p>
|
||
|
||
<h3>
|
||
<a name="stamps_images"
|
||
id="stamps_images">Images</a>
|
||
</h3>
|
||
|
||
<blockquote>
|
||
<p>
|
||
Rubber Stamps in <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> can be made up of a number of separate
|
||
files. The one file that is required is, of course, the
|
||
picture itself.
|
||
</p>
|
||
<img src="../../html/images/stamp_edit.png"
|
||
width="128"
|
||
height="147"
|
||
alt=""
|
||
align="right">
|
||
<p>
|
||
As of <cite style="white-space: nowrap;">Tux Paint</cite>
|
||
version 0.9.17, Stamps may be either PNG bitmap images or
|
||
SVG vector images. They can be full-color or greyscale.
|
||
The alpha (transparency) channel of PNGs is used to
|
||
determine the actual shape of the picture (otherwise
|
||
you'll stamp a large rectangle on your drawings).
|
||
</p>
|
||
|
||
<p>
|
||
PNGs can be any size, and <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite> (by default)
|
||
provides a set of sizing buttons to let the user scale
|
||
the stamp up (larger) and down (smaller).
|
||
</p>
|
||
|
||
<p>
|
||
SVGs are vector-based, and will be scaled appropriately
|
||
for the canvas being used in <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite>.
|
||
</p>
|
||
|
||
<p>
|
||
Note: If your new PNG stamps all have solid
|
||
rectangular-shaped outlines of a solid color (e.g., white
|
||
or black), it's because you forgot to use alpha
|
||
transparency! See the documentation file "<a href=
|
||
"../PNG.txt">PNG.txt</a>" for more information and tips.
|
||
</p>
|
||
|
||
<p>
|
||
Note: If your new SVG stamps seem to have a lot of
|
||
whitespace, make sure the SVG 'document' is no larger
|
||
than the shape(s) within. If they are being clipped, make
|
||
sure the 'document' is large enough to contain the
|
||
shape(s). See the documentation file "<a href=
|
||
"../SVG.txt">SVG.txt</a>" for more information and tips.
|
||
</p>
|
||
|
||
<p>
|
||
<b>Advanced Users:</b> The <a href=
|
||
"ADVANCED-STAMPS-HOWTO.html">Advanced Stamps HOWTO</a>
|
||
describes, in detail, how to make PNG images which will
|
||
scale perfectly when used as stamps in <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite>.
|
||
</p>
|
||
<br clear="all">
|
||
</blockquote>
|
||
|
||
<hr size="1"
|
||
noshade>
|
||
|
||
<h3>
|
||
<a name="description_text"
|
||
id="description_text">Description Text</a>
|
||
</h3>
|
||
|
||
<blockquote>
|
||
<p>
|
||
Text (".TXT") files with the same name as the PNG or SVG.
|
||
(e.g., "<code>picture.png</code>"'s description is stored
|
||
in "<code>picture.txt</code>" in the same directory.)
|
||
</p>
|
||
|
||
<p>
|
||
The first line of the text file will be used as the US
|
||
English description of the stamp's image. It must be
|
||
encoded in UTF-8.
|
||
</p>
|
||
|
||
<h4>
|
||
Language Support
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
Additional lines can be added to the text file to
|
||
provide translations of the description, to be
|
||
displayed when <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> is running in a different locale (like
|
||
French or Spanish).
|
||
</p>
|
||
|
||
<p>
|
||
The beginning of the line should correspond to the
|
||
language code of the language in question (e.g.,
|
||
"<code>fr</code>" for French, and "<code>zh_TW</code>"
|
||
for Traditional Chinese), followed by
|
||
"<code>.utf8=</code>" and the translated description
|
||
(encoded in UTF-8).
|
||
</p>
|
||
|
||
<p>
|
||
There are scripts in the "<code>po</code>" directory
|
||
for converting the text files to PO format (and back)
|
||
for easy translation to different languages. Therefore
|
||
you should never add or change translations in the .txt
|
||
files directly.
|
||
</p>
|
||
|
||
<p>
|
||
If no translation is available for the language
|
||
<cite style="white-space: nowrap;">Tux Paint</cite> is
|
||
currently running in, the US English text is used.
|
||
</p>
|
||
</blockquote>
|
||
|
||
<h4>
|
||
Windows Users
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
Use <cite>NotePad</cite> or <cite>WordPad</cite> to
|
||
edit/create these files. Be sure to save them as
|
||
plain-text, and make sure they have a
|
||
"<code>.txt</code>" extension at the end of the
|
||
filename.
|
||
</p>
|
||
</blockquote>
|
||
</blockquote>
|
||
|
||
<hr size="1"
|
||
noshade>
|
||
|
||
<h3>
|
||
<a name="sound_effects"
|
||
id="sound_effects">Sound Effects</a>
|
||
</h3>
|
||
|
||
<blockquote>
|
||
<p>
|
||
WAVE ("<code>.wav</code>") or <span style=
|
||
"white-space: nowrap;">OGG Vorbis</span>
|
||
("<code>.ogg</code>") files with the same name as the PNG
|
||
or SVG. (e.g., "<code>picture.svg</code>"'s sound effect
|
||
is the sound file "<code>picture.wav</code>" in the same
|
||
directory.)
|
||
</p>
|
||
|
||
<h4>
|
||
Language Support
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
For sounds for different locales (e.g., if the sound is
|
||
someone saying a word, and you want translated versions
|
||
of the word said), also create WAV or OGG files with
|
||
the locale's label in the filename, in the form:
|
||
"<code><b>STAMP_LOCALE.EXT</b></code>"
|
||
</p>
|
||
|
||
<p>
|
||
"<code>picture.png</code>"'s sound effect, when
|
||
<cite style="white-space: nowrap;">Tux Paint</cite> is
|
||
run in Spanish mode, would be
|
||
"<code>picture_es.wav</code>". In French mode,
|
||
"<code>picture_fr.wav</code>". In Brazilian Portuguese
|
||
mode, "<code>picture_pt_BR.wav</code>". And so on...
|
||
</p>
|
||
|
||
<p>
|
||
If no localized sound effect can be loaded,
|
||
<cite style="white-space: nowrap;">Tux Paint</cite>
|
||
will attempt to load the 'default' sound file. (e.g.,
|
||
"<code>picture.wav</code>")
|
||
</p>
|
||
</blockquote>
|
||
|
||
<p>
|
||
Note: For descriptive sounds (not sound effects, like a
|
||
bang or a bird chirping), consider using the <span style=
|
||
"white-space: nowrap;">Descriptive Sounds</span>,
|
||
described below.
|
||
</p>
|
||
</blockquote>
|
||
|
||
<hr size="1"
|
||
noshade>
|
||
|
||
<h3>
|
||
<a name="descriptive_sound"
|
||
id="descriptive_sound">Descriptive Sound</a>
|
||
</h3>
|
||
|
||
<blockquote>
|
||
<p>
|
||
WAVE (".wav") or OGG Vorbis (".ogg") files with the same
|
||
name as the PNG or SVG, followed by "<code>_desc</code>"
|
||
(e.g., "<code>picture.svg</code>"'s descriptive sound is
|
||
the sound file "<code>picture_desc.ogg</code>" in the
|
||
same directory.)
|
||
</p>
|
||
|
||
<h4>
|
||
Language Support
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
For descriptions in different languages, also create
|
||
WAV or OGG files with both "<code>_desc</code>" and the
|
||
locale's label in the filename, in the form:
|
||
"<code><b>STAMP_desc_LOCALE.EXT</b></code>"
|
||
</p>
|
||
|
||
<p>
|
||
"<code>picture.png</code>"'s descriptive sound, when
|
||
<cite style="white-space: nowrap;">Tux Paint</cite> is
|
||
run in Spanish mode, would be
|
||
"<code>picture_desc_es.wav</code>". In French mode,
|
||
"<code>picture_desc_fr.wav</code>". In Brazilian
|
||
Portuguese mode, "<code>picture_desc_br_PT.wav</code>".
|
||
And so on...
|
||
</p>
|
||
|
||
<p>
|
||
If no localized descriptive sound can be loaded,
|
||
<cite style="white-space: nowrap;">Tux Paint</cite>
|
||
will attempt to load the 'default' descriptive sound
|
||
file. (e.g., "<code>picture_desc.wav</code>")
|
||
</p>
|
||
</blockquote>
|
||
</blockquote>
|
||
|
||
<hr size="1"
|
||
noshade>
|
||
|
||
<h3>
|
||
<a name="stamp_options"
|
||
id="stamp_options">Stamp Options</a>
|
||
</h3>
|
||
|
||
<blockquote>
|
||
<p>
|
||
Aside from a graphical shape, a textual description, and
|
||
a sound effect, stamps can also be given other
|
||
attributes. To do this, you need to create a
|
||
'<span style="white-space: nowrap;">data file</span>' for
|
||
the stamp.
|
||
</p>
|
||
|
||
<p>
|
||
A stamp data file is simply a text file containing the
|
||
options.
|
||
</p>
|
||
|
||
<p>
|
||
The file has the same name as the PNG or SVG image, but a
|
||
"<code>.dat</code>" extension. (e.g.,
|
||
"<code>picture.png</code>"'s data file is the text file
|
||
"<code>picture.dat</code>" in the same directory.)
|
||
</p>
|
||
|
||
<h4>
|
||
Colored Stamps
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
Stamps can be made to be either "colorable" or
|
||
"tintable."
|
||
</p>
|
||
|
||
<h5>
|
||
Colorable
|
||
</h5>
|
||
|
||
<blockquote>
|
||
<p>
|
||
"Colorable" stamps they work much like brushes - you
|
||
pick the stamp to get the shape, and then pick the
|
||
color you want it to be. (Symbol stamps, like the
|
||
mathematical and musical ones, are an example.)
|
||
</p>
|
||
|
||
<p>
|
||
Nothing about the original image is used except the
|
||
transparency (from "alpha" channel). The color of the
|
||
stamp comes out solid.
|
||
</p>
|
||
|
||
<center>
|
||
<img src="../../html/images/ex_colorable.png"
|
||
width="74"
|
||
height="92"
|
||
alt="">
|
||
</center>
|
||
|
||
<p>
|
||
Add a line containing the word
|
||
"<code><b>colorable</b></code>" to the stamp's data
|
||
file.
|
||
</p>
|
||
</blockquote>
|
||
|
||
<h5>
|
||
Tinted
|
||
</h5>
|
||
|
||
<blockquote>
|
||
<p>
|
||
"Tinted" stamps are similar to "colorable" ones,
|
||
except the details of the original image are kept.
|
||
(To put it technically, the original image is used,
|
||
but its hue is changed, based on the
|
||
currently-selected color.)
|
||
</p>
|
||
|
||
<center>
|
||
<img src="../../html/images/ex_tintable.png"
|
||
width="151"
|
||
height="78"
|
||
alt="">
|
||
</center>
|
||
|
||
<p>
|
||
Add a line containing the word
|
||
"<code><b>tintable</b></code>" to the stamp's data
|
||
file.
|
||
</p>
|
||
|
||
<h6>
|
||
Tinting Options:
|
||
</h6>
|
||
|
||
<blockquote>
|
||
<p>
|
||
Depending on the contents of your stamp, you might
|
||
want to have <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> use one of a number of methods when
|
||
tinting it. Add one of the following lines to the
|
||
stamp's data file:
|
||
</p>
|
||
|
||
<dl>
|
||
<dt>
|
||
"<code><b>tinter=normal</b></code>" (default)
|
||
</dt>
|
||
|
||
<dd>
|
||
This is the normal tinting mode. (Hue range is
|
||
±18°, 27 replace.)
|
||
</dd>
|
||
|
||
<dt>
|
||
"<code><b>tinter=anyhue</b></code>"
|
||
</dt>
|
||
|
||
<dd>
|
||
This remaps all hues in the stamp. (Hue range is
|
||
±180°.)
|
||
</dd>
|
||
|
||
<dt>
|
||
"<code><b>tinter=narrow</b></code>"
|
||
</dt>
|
||
|
||
<dd>
|
||
This like '<code>anyhue</code>', but a narrower
|
||
hue angle. (Hue range is ±6°, 9 replace.)
|
||
</dd>
|
||
|
||
<dt>
|
||
"<code><b>tinter=vector</b></code>"
|
||
</dt>
|
||
|
||
<dd>
|
||
This maps 'black through white' to 'black through
|
||
destination'.
|
||
</dd>
|
||
</dl>
|
||
</blockquote>
|
||
</blockquote>
|
||
</blockquote>
|
||
|
||
<h4>
|
||
Unalterable Stamps
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
By default, a stamp can be flipped upside down, shown
|
||
as a mirror image, or both. This is done using the
|
||
control buttons below the stamp selector, at the lower
|
||
right side of the screen in <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite>.
|
||
</p>
|
||
|
||
<p>
|
||
Sometimes, it doesn't make sense for a stamp to be
|
||
flippable or mirrored; for example, stamps of letters
|
||
or numbers. Sometimes stamps are symmetrical, so
|
||
letting the user flip or mirror them isn't useful.
|
||
</p>
|
||
|
||
<p>
|
||
To make a stamp un-flippable, add the option
|
||
"<code><b>noflip</b></code>" to the stamp's data file.
|
||
</p>
|
||
|
||
<p>
|
||
To keep a stamp from being mirrored, add a line
|
||
containing the word "<code><b>nomirror</b></code>" to
|
||
the stamp's data file.
|
||
</p>
|
||
</blockquote>
|
||
|
||
<h4>
|
||
Initial Stamp Size
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
By default, <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> assumes that your stamp is sized
|
||
appropriately for unscaled display on a 608x472 canvas.
|
||
This is the original <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite> canvas size,
|
||
provided by a 640x480 screen. <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite> will then
|
||
adjust the stamp according to the current canvas size
|
||
and, if enabled, the user's stamp size controls.
|
||
</p>
|
||
|
||
<p>
|
||
If your stamp would be too big or too small, you can
|
||
specify a scale factor. If your stamp would be 2.5
|
||
times as wide (or tall) as it should be, add the option
|
||
"<code style="white-space: nowrap;"><b>scale
|
||
40%</b></code>" or "<code style=
|
||
"white-space: nowrap;"><b>scale 5/2</b></code>" or
|
||
"<code style="white-space: nowrap;"><b>scale
|
||
2.5</b></code>" or "<code style=
|
||
"white-space: nowrap;"><b>scale 2:5</b></code>" to your
|
||
image. You may include an "<code><b>=</b></code>" if
|
||
you wish, as in "<code><b>scale=40%</b></code>".
|
||
</p>
|
||
</blockquote>
|
||
|
||
<h4>
|
||
Windows Users
|
||
</h4>
|
||
|
||
<blockquote>
|
||
<p>
|
||
You can use NotePad or WordPad to create these file. Be
|
||
sure to save it as Plain Text, and make sure the
|
||
filename has "<code>.dat</code>" at the end, and not
|
||
"<code>.txt</code>"...
|
||
</p>
|
||
</blockquote>
|
||
</blockquote>
|
||
|
||
<h3>
|
||
<a name="pre_mirroed_and_flipped_images"
|
||
id="pre_mirroed_and_flipped_images">Pre-Mirrored and
|
||
Flipped Images</a>
|
||
</h3>
|
||
|
||
<blockquote>
|
||
<p>
|
||
In some cases, you may wish to provide a pre-drawn
|
||
version of a stamp's mirror-image, flipped image, or even
|
||
both. For example, imagine a picture of a fire truck
|
||
with the words "<i style="white-space: nowrap;">Fire
|
||
Department</i>" written across the side. You probably do
|
||
not want that text to appear backwards when the image is
|
||
flipped!
|
||
</p>
|
||
|
||
<p>
|
||
To create a mirrored version of a stamp that you want
|
||
<cite style="white-space: nowrap;">Tux Paint</cite> to
|
||
use, rather than mirroring one on its own, simply create
|
||
a second "<code>.png</code>" or "<code>.svg</code>"
|
||
graphics file with the same name, except with
|
||
"<code><b>_mirror</b></code>" before the filename
|
||
extension.
|
||
</p>
|
||
|
||
<p>
|
||
For example, for the stamp
|
||
"<code><b>truck.png</b></code>" you would create another
|
||
file named "<code><b>truck_mirror.png</b></code>", which
|
||
will be used when the stamp is mirrored (rather than
|
||
using a backwards version of '<code>truck.png</code>').
|
||
</p>
|
||
|
||
<p>
|
||
As of <cite style="white-space: nowrap;">Tux Paint</cite>
|
||
0.9.18, you may similarly provide a pre-flipped image
|
||
with "<code><b>_flip</b></code>" in the name, and/or an
|
||
image that is both mirrored and flipped, by naming it
|
||
"<code><b>_mirror_flip</b></code>".
|
||
</p>
|
||
|
||
<p>
|
||
<b>Note:</b> If the user flips and mirrors an image, and
|
||
a pre-drawn "<code>_mirror_flip</code>" doesn't exist,
|
||
but either "<code>_flip</code>" or "<code>_mirror</code>"
|
||
does, it will be used, and mirrored or flipped,
|
||
respectively.
|
||
</p>
|
||
</blockquote>
|
||
</blockquote>
|
||
|
||
<hr size="1"
|
||
noshade>
|
||
|
||
<h2>
|
||
<a name="fonts"
|
||
id="fonts">Fonts</a>
|
||
</h2>
|
||
|
||
<blockquote>
|
||
<img src="../../html/images/fontsizes.png"
|
||
width="48"
|
||
height="48"
|
||
alt=""
|
||
align="right">
|
||
<p>
|
||
The fonts used by <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> are <span style=
|
||
"white-space: nowrap;">TrueType Fonts</span> (TTF).
|
||
</p>
|
||
|
||
<p>
|
||
Simply place them in the "<code><b>fonts</b></code>"
|
||
directory. <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> will load the font and provide four different
|
||
sizes in the 'Letters' selector when using the 'Text' tool.
|
||
</p>
|
||
<br clear="all">
|
||
</blockquote>
|
||
|
||
<hr size="1"
|
||
noshade>
|
||
|
||
<h2>
|
||
<a name="starters"
|
||
id="starters">'Starters'</a>
|
||
</h2>
|
||
|
||
<blockquote>
|
||
<img src="../../html/images/open_open.png"
|
||
width="48"
|
||
height="48"
|
||
alt=""
|
||
align="right">
|
||
<p>
|
||
'Starter' images appear in the 'New' dialog, along with
|
||
solid color background choices. (Note: In earlier versions
|
||
of <cite style="white-space: nowrap;">Tux Paint</cite>,
|
||
they appeared in the 'Open' dialog, together with saved
|
||
drawings.)
|
||
</p>
|
||
|
||
<p>
|
||
Unlike pictures drawn in <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite> by users and then
|
||
opened later, opening a 'starter' creates a new drawing.
|
||
When you save, the 'starter' image is not overwritten.
|
||
Additionally, as you edit your new picture, the contents of
|
||
the original 'starter' affect it.
|
||
</p>
|
||
|
||
<h3>
|
||
<a name="coloring_book_style"
|
||
id="coloring_book_style">Coloring-Book Style</a>
|
||
</h3>
|
||
|
||
<blockquote>
|
||
<p>
|
||
The most basic kind of 'starter' is similar to a picture
|
||
in a coloring book. It's an outline of a shape which you
|
||
can then color in and add details to. In <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite>, as you draw,
|
||
type text, or stamp stamps, the outline remains 'above'
|
||
what you draw. You can erase the parts of the drawing you
|
||
made, but you can't erase the outline.
|
||
</p>
|
||
|
||
<p>
|
||
To create this kind of 'starter' image, simply draw an
|
||
outlined picture in a paint program, make the rest of the
|
||
graphic transparent (that will come out as white in
|
||
<cite style="white-space: nowrap;">Tux Paint</cite>), and
|
||
save it as a PNG format file.
|
||
</p>
|
||
|
||
<p>
|
||
<b>Note:</b> Previous to Tux Paint 0.9.21, images needed
|
||
to be black and transparent. As of 0.9.21, if a Starter
|
||
is black and white, with no transparency, white will be
|
||
converted to transparent when the Starter is opened.
|
||
</p>
|
||
|
||
<p>
|
||
<b>Note:</b> Previous to Tux Paint 0.9.22, Starters had
|
||
to be in PNG or JPEG (backgrounds only) format. As of
|
||
0.9.22, they may be in SVG (vector graphics) or KPX
|
||
(templates from Kid Pix, another childrens' drawing
|
||
program; they are special files which simply contain a
|
||
JPEG within).
|
||
</p>
|
||
</blockquote>
|
||
|
||
<h3>
|
||
<a name="scene_style"
|
||
id="scene_style">Scene-Style</a>
|
||
</h3>
|
||
|
||
<blockquote>
|
||
<p>
|
||
Along with the 'coloring-book' style overlay, you can
|
||
also provide a separate background image as part of a
|
||
'starter' picture. The overlay acts the same: it can't be
|
||
drawn over, erased, or affected by 'Magic' tools.
|
||
However, the background can be!
|
||
</p>
|
||
|
||
<p>
|
||
When the 'Eraser' tool is used on a picture based on this
|
||
kind of 'starter' image, rather than turning the canvas
|
||
to a solid color, such as white, it returns that part of
|
||
the canvas to the original background picture from the
|
||
'starter'.
|
||
</p>
|
||
|
||
<p>
|
||
By creating both an overlay and a background, you can
|
||
create a 'starter' which simulates depth. Imagine a
|
||
background that shows the ocean, and an overlay that's a
|
||
picture of a reef. You can then draw (or stamp) fish in
|
||
the picture. They'll appear in the ocean, but never 'in
|
||
front of' the reef.
|
||
</p>
|
||
|
||
<p>
|
||
To create this kind of 'starter' picture, simply create
|
||
an overlay (with transparency) as described above, and
|
||
save it as a PNG. Then create another image (without
|
||
transparency), and save it with the same filename, but
|
||
with "<code>-back</code>" appended to the name. (e.g.,
|
||
"<code>reef-back.png</code>" would be the background
|
||
ocean picture that corresponds to the
|
||
"<code>reef.png</code>" overlay, or foreground.)
|
||
</p>
|
||
</blockquote>
|
||
|
||
<p>
|
||
The 'starter' images should be the same size as
|
||
<cite style="white-space: nowrap;">Tux Paint's</cite>
|
||
canvas. (See the "Loading Other Pictures into <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite>" section of
|
||
<a href="README.html">README</a> for details on sizing.) If
|
||
they are not, they will be stretched, without affecting the
|
||
shape ("aspect ratio"); however some smudging may be
|
||
applied to the edges.
|
||
</p>
|
||
|
||
<p>
|
||
Place them in the "<code><b>starters</b></code>" directory.
|
||
When the 'New' dialog is accessed in <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite>, the 'starter'
|
||
images will appear in the screen that appears, after the
|
||
various solid color choices.
|
||
</p>
|
||
|
||
<p>
|
||
<b>Note:</b> 'Starters' can't be saved over from within
|
||
<cite style="white-space: nowrap;">Tux Paint</cite>, since
|
||
loading a 'starter' is really like creating a new image.
|
||
(Instead of being blank, though there's already something
|
||
there to work with.) The 'Save' command simply creates a
|
||
new picture, like it would if the 'New' command had been
|
||
used.
|
||
</p>
|
||
|
||
<p>
|
||
<b>Note:</b> 'Starters' are 'attached' to saved pictures,
|
||
via a small text file that has the same name as the saved
|
||
file, but with "<code>.dat</code>" as the extension. This
|
||
allows the overlay and background, if any, to continue to
|
||
affect the drawing even after <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite> has been quit, or
|
||
another picture loaded or started. (In other words, if you
|
||
base a drawing on a 'starter' image, it will always be
|
||
affected by it.)
|
||
</p>
|
||
<br clear="all">
|
||
</blockquote>
|
||
|
||
<hr size="1"
|
||
noshade>
|
||
|
||
<h2>
|
||
<a name="templates"
|
||
id="templates">'Templates'</a>
|
||
</h2>
|
||
|
||
<blockquote>
|
||
<img src="../../html/images/open_open.png"
|
||
width="48"
|
||
height="48"
|
||
alt=""
|
||
align="right">
|
||
<p>
|
||
'Template' images also appear in the 'New' dialog, along
|
||
with solid color background choices and 'Starters'. (Note:
|
||
<cite style="white-space: nowrap;">Tux Paint</cite> prior
|
||
to version 0.9.22 did not have the 'Template' feature.)
|
||
</p>
|
||
|
||
<p>
|
||
Unlike pictures drawn in <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite> by users and then
|
||
opened later, opening a 'template' creates a new drawing.
|
||
When you save, the 'template' image is not overwritten.
|
||
Unlike 'starters', there is no immutable 'layer' above the
|
||
canvas. You may draw over any part of it.
|
||
</p>
|
||
|
||
<p>
|
||
When the 'Eraser' tool is used on a picture based on a
|
||
'template', rather than turning the canvas to a solid
|
||
color, such as white, it returns that part of the canvas to
|
||
the original picture from the 'template'.
|
||
</p>
|
||
|
||
<p>
|
||
'Templates' are simply image files (in PNG, JPG, SVG or KPX
|
||
format). No preparation or conversion should be required.
|
||
</p>
|
||
|
||
<p>
|
||
The 'template' images should be the same size as
|
||
<cite style="white-space: nowrap;">Tux Paint's</cite>
|
||
canvas. (See the "Loading Other Pictures into <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite>" section of
|
||
<a href="README.html">README</a> for details on sizing.) If
|
||
they are not, they will be stretched, without affecting the
|
||
shape ("aspect ratio"); however some smudging may be
|
||
applied to the edges.
|
||
</p>
|
||
|
||
<p>
|
||
Place them in the "<code><b>templates</b></code>"
|
||
directory. When the 'New' dialog is accessed in
|
||
<cite style="white-space: nowrap;">Tux Paint</cite>, the
|
||
'template' images will appear in the screen that appears,
|
||
after the various solid color choices and 'starters'.
|
||
</p>
|
||
|
||
<p>
|
||
<b>Note:</b> 'Templates' can't be saved over from within
|
||
<cite style="white-space: nowrap;">Tux Paint</cite>, since
|
||
loading a 'template' is really like creating a new image.
|
||
(Instead of being blank, though there's already something
|
||
there to work with.) The 'Save' command simply creates a
|
||
new picture, like it would if the 'New' command had been
|
||
used.
|
||
</p>
|
||
|
||
<p>
|
||
<b>Note:</b> 'Templates' are 'attached' to saved pictures,
|
||
via a small text file that has the same name as the saved
|
||
file, but with "<code>.dat</code>" as the extension. This
|
||
allows the background to continue to be available to the
|
||
drawing (e.g., when using the 'Eraser' tool) even after
|
||
<cite style="white-space: nowrap;">Tux Paint</cite> has
|
||
been quit, or another picture loaded or started. (In other
|
||
words, if you base a drawing on a 'template' image, it will
|
||
always be affected by it.)
|
||
</p>
|
||
<br clear="all">
|
||
</blockquote>
|
||
|
||
<hr size="1"
|
||
noshade>
|
||
|
||
<h2>
|
||
<a name="translations"
|
||
id="translations">Translations</a>
|
||
</h2>
|
||
|
||
<blockquote>
|
||
<p>
|
||
<cite style="white-space: nowrap;">Tux Paint</cite>
|
||
supports numerous languages, thanks to use of the "gettext"
|
||
localization library. (See <a href=
|
||
"OPTIONS.html">OPTIONS</a> for how to change locales in
|
||
<cite style="white-space: nowrap;">Tux Paint</cite>.)
|
||
</p>
|
||
|
||
<p>
|
||
To translate <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> to a new language, copy the translation
|
||
template file, "<code>tuxpaint.pot</code>" (found in
|
||
<cite style="white-space: nowrap;">Tux Paint's</cite>
|
||
source code, in the folder "<code>src/po/</code>"). Rename
|
||
the copy as a "<code>.po</code>" file, with an appropriate
|
||
name for the locale you're translating to (e.g.,
|
||
"<code>es.po</code>" for Spanish; or
|
||
"<code>pt_BR.po</code>" for <span style=
|
||
"white-space: nowrap;">Brazilian Portuguese</span>, versus
|
||
"<code>pt.po</code>" or "<code>pt_PT.po</code>" for
|
||
Portuguese spoken in Portugal.)
|
||
</p>
|
||
|
||
<p>
|
||
Open the newly-created "<code>.po</code>" file — you can
|
||
edit in a <i>plain</i> text edtior, such as Emacs, Pico or
|
||
VI on Linux, or NotePad on Windows. The original English
|
||
text used in <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> is listed in lines starting with
|
||
"<code>msgid</code>". Enter your translations of each of
|
||
these pieces of text in the empty "<code>msgstr</code>"
|
||
lines directly below the corresponding "<code>msgid</code>"
|
||
lines. (<i>Note:</i> Do not remove the quotes.)
|
||
</p>
|
||
|
||
<p>
|
||
Example:
|
||
</p>
|
||
|
||
<blockquote>
|
||
<p>
|
||
<code>msgid "Smudge"<br>
|
||
msgstr "<u>Manchar</u>"<br>
|
||
<br>
|
||
msgid "Click and drag to draw large bricks."<br>
|
||
msgstr "<u>Haz clic y arrastra para dibujar ladrillos
|
||
grandes.</u>"</code>
|
||
</p>
|
||
</blockquote>
|
||
|
||
<p>
|
||
A graphical tool, called <i><b>poEdit</b></i> (<a href=
|
||
"http://www.poedit.net/">http://www.poedit.net/</a>), is
|
||
available for Linux, Windows and Mac OS X.
|
||
</p>
|
||
|
||
<p>
|
||
<i>Note:</i> It is best to always work off of the
|
||
<i>latest</i> <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> text catalog template
|
||
("<code>tuxpaint.pot</code>"), since new text is added, and
|
||
old text is occasionally changed. The text catalog for the
|
||
upcoming, unreleased version of <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite> can be found in
|
||
<cite style="white-space: nowrap;">Tux Paint's</cite> Git
|
||
repository (see: <a href=
|
||
"http://www.tuxpaint.org/download/source/git/">http://www.tuxpaint.org/download/source/git/</a>),
|
||
and on the <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> website at <a href=
|
||
"http://www.tuxpaint.org/help/po/">http://www.tuxpaint.org/help/po/</a>.
|
||
</p>
|
||
|
||
<p>
|
||
To edit an existing translation, download the latest
|
||
"<code>.po</code>" file for that language, and edit it as
|
||
described above.
|
||
</p>
|
||
|
||
<p>
|
||
You may send new or edited translation files to
|
||
<span style="white-space: nowrap;">Bill Kendrick</span>,
|
||
lead developer of <cite style="white-space: nowrap;">Tux
|
||
Paint</cite>, at: <a href=
|
||
"mailto:bill@newbreedsoftware.com">bill@newbreedsoftware.com</a>,
|
||
or post them to the "tuxpaint-i18n" mailing list (see:
|
||
<a href=
|
||
"http://www.tuxpaint.org/lists/">http://www.tuxpaint.org/lists/</a>).
|
||
</p>
|
||
|
||
<p>
|
||
Alternatively, if you have an account with <a href=
|
||
"http://www.sourceforge.net/">SourceForge.net</a>, you can
|
||
request to be added to the "<code>tuxpaint</code>" project
|
||
and receive write-access to the Git source code repository
|
||
so that you may commit your changes directly.
|
||
</p>
|
||
|
||
<p>
|
||
<i>Note:</i> Additional locale support also requires
|
||
additions to <cite style="white-space: nowrap;">Tux
|
||
Paint's</cite> source code (<code>/src/i18n.h</code> and
|
||
<code>/src/i18n.c</code>), and requires updates to the
|
||
<code>Makefile</code>, to have the "<code>.po</code>"
|
||
gettext catalog source files compiled into
|
||
"<code>.mo</code>" files, and installed, for use at
|
||
runtime.
|
||
</p>
|
||
</blockquote>
|
||
|
||
<hr size="1"
|
||
noshade>
|
||
|
||
<h2>
|
||
<a name="input_methods"
|
||
id="input_methods">Alternative Input Methods</a>
|
||
</h2>
|
||
|
||
<blockquote>
|
||
<p>
|
||
As of version 0.9.17, <cite style=
|
||
"white-space: nowrap;">Tux Paint's</cite> "Text" tool can
|
||
provide alternative input methods for some languages. For
|
||
example, when <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> is running with a Japanese locale, the
|
||
<b style="white-space: nowrap;">right [Alt]</b> key can be
|
||
pressed to cycle between Latin, Romanized Hiragana and
|
||
Romanized Katakana modes. This allows native characters and
|
||
words to be entered into the "Text" tool by typing one or
|
||
more keys on a keyboard with Latin characters (e.g., a
|
||
<span style="white-space: nowrap;">US QWERTY</span>
|
||
keyboard).
|
||
</p>
|
||
|
||
<p>
|
||
To create an input method for a new locale, create a text
|
||
file with a name based on the locale (e.g.,
|
||
"<code>ja</code>" for Japanese), with "<code>.im</code>" as
|
||
the extension (e.g., "<code>ja.im</code>").
|
||
</p>
|
||
|
||
<p>
|
||
The "<code>.im</code>" file can have multiple character
|
||
mapping sections for different character mapping modes. For
|
||
example, on a Japanese typing system, typing <span style=
|
||
"white-space: nowrap;"><b>[K]</b> <b>[A]</b></span> in
|
||
Hiragana mode generates a different Unicode character than
|
||
typing <span style="white-space: nowrap;"><b>[K]</b>
|
||
<b>[A]</b></span> in Katakana mode.
|
||
</p>
|
||
|
||
<p>
|
||
List the character mappings in this file, one per line.
|
||
Each line should contain (separated by whitespace):
|
||
</p>
|
||
|
||
<ul>
|
||
<li>the Unicode value of the character, in hexadecimal
|
||
(more than one character can be listed, separated by a
|
||
colon (':'), this allowing some sequences to map to words)
|
||
</li>
|
||
|
||
<li>the keycode sequence (the ASCII characters that must be
|
||
entered to generate the Unicode character)
|
||
</li>
|
||
|
||
<li>a flag (or "<code>-</code>")
|
||
</li>
|
||
</ul>
|
||
|
||
<p>
|
||
Start additional character mapping sections with a line
|
||
containign the word "<code>section</code>".
|
||
</p>
|
||
|
||
<p>
|
||
Example:
|
||
</p>
|
||
|
||
<blockquote>
|
||
<p>
|
||
<code># Hiragana<br>
|
||
304B ka -<br>
|
||
304C ga -<br>
|
||
304D ki -<br>
|
||
304E gi -<br>
|
||
304D:3083 kya -<br>
|
||
3063:305F tta -<br>
|
||
<br>
|
||
# Katakana<br>
|
||
section<br>
|
||
30AB ka -<br>
|
||
30AC ga -<br>
|
||
30AD ki -<br>
|
||
30AE gi -</code>
|
||
</p>
|
||
</blockquote>
|
||
|
||
<p>
|
||
<i>Note:</i> Blank lines within the "<code>.im</code>" file
|
||
will be ignored, as will any text following a
|
||
"<code>#</code>" (pound/hash) character — it can be used to
|
||
denote comments, as seen in the example above.
|
||
</p>
|
||
|
||
<p>
|
||
<i>Note:</i> Meanings of the flags are locale-specific, and
|
||
are processed by the language-specific source code in
|
||
"<code>src/im.c</code>". For example, "<code>b</code>" is
|
||
used in Korean to handle Batchim, which may carry over to
|
||
the next character.
|
||
</p>
|
||
|
||
<p>
|
||
<i>Note:</i> Additional input method support also requires
|
||
additions to <cite style="white-space: nowrap;">Tux
|
||
Paint's</cite> source code (<code>/src/im.c</code>), and
|
||
requires updates to the <code>Makefile</code>, to have the
|
||
"<code>.im</code>" files installed, for use at runtime.
|
||
</p>
|
||
</blockquote>
|
||
|
||
<hr size="1"
|
||
noshade>
|
||
|
||
<h2>
|
||
<a name="on_screen_keyboard"
|
||
id="on_screen_keyboard">On-screen Keyboard</a>
|
||
</h2>
|
||
|
||
<blockquote>
|
||
<p>
|
||
As of version 0.9.22, <cite style=
|
||
"white-space: nowrap;">Tux Paint's</cite> "Text" and
|
||
"Label" tools can present an on-screen keyboard that allows
|
||
the pointer (via a mouse, eye-tracking systems, etc.) to be
|
||
used to input characters. Files that describe the layout
|
||
and available keys are stored in <cite style=
|
||
"white-space: nowrap;">Tux Paint's</cite>
|
||
"<code>osk</code>" directory. Each keyboard layout is
|
||
defined by a number of files (some of which may be shared
|
||
by different layouts). We'll use the QWERTY keyboard as an
|
||
example:
|
||
</p>
|
||
|
||
<h3>
|
||
Layout overview file ("<code>qwerty.layout")</code>
|
||
</h3>
|
||
|
||
<blockquote>
|
||
<p>
|
||
This is a text file that specifies the other files used
|
||
to describe the layout and key mappings.
|
||
</p>
|
||
|
||
<blockquote>
|
||
<p>
|
||
<code>layout qwerty.h_layout<br>
|
||
keymap us-intl-altgr-dead-keys.keymap<br>
|
||
<!-- dead_keys_map dead_keys.map --><!-- br/ -->
|
||
composemap en_US.UTF-8_Compose<br>
|
||
keysymdefs keysymdef.h<br>
|
||
keyboardlist qwerty.layout default.layout</code>
|
||
</p>
|
||
</blockquote>
|
||
|
||
<p>
|
||
<i>Note:</i> Blank lines within the
|
||
"<code>.layout</code>" file will be ignored, as will any
|
||
text following a "<code>#</code>" (pound/hash) character
|
||
— it can be used to denote comments, as seen in the
|
||
example above.
|
||
</p>
|
||
|
||
<p>
|
||
The "<code>keyboardlist</code>" line describes which
|
||
layouts to switch to, when the user clicks the left and
|
||
right buttons on the keyboard. (See below.)
|
||
</p>
|
||
</blockquote>
|
||
|
||
<h3>
|
||
Keyboard layout file ("<code>qwerty.h_layout</code>")
|
||
</h3>
|
||
|
||
<blockquote>
|
||
<p>
|
||
This describes how big the keyboard is (as a W×H grid),
|
||
and lists each key with its numeric keycode (see the
|
||
"keymap" file, below), the width it should be drawn at
|
||
(typically "<code>1.0</code>", to take one space on the
|
||
keyboard, but in the example below, notice the
|
||
"<code>TAB</code>" and "<code>SPACE</code>" keys are much
|
||
wider), the character or text to display on the key,
|
||
depending on which modifier keys have been pressed (one
|
||
each for: no modifiers, <b>[Shift]</b>, <b>[AltGr]</b>,
|
||
and <b>[Shift]+[AltGr]</b>), and finally whether or not
|
||
the key is affected by the <b>[CapsLock]</b> key (use
|
||
"<code>1</code>") or <b>[AltGr]</b> (alternate graphics)
|
||
key (use "<code>2</code>"), or not at all (use
|
||
"<code>0</code>").
|
||
</p>
|
||
|
||
<blockquote>
|
||
<p>
|
||
<code>WIDTH 15<br>
|
||
HEIGHT 5<br>
|
||
<br>
|
||
KEY 49 1.0 ` ~ ` ~ 0<br>
|
||
KEY 10 1.0 1 ! ¡ ¹ 0<br>
|
||
KEY 11 1.0 2 @ ² ˝ 0<br>
|
||
KEY 12 1.0 3 # · ³ 0<br>
|
||
KEY 13 1.0 4 $ ¤ £ 0<br>
|
||
KEY 14 1.0 5 % € ¸ 0<br>
|
||
KEY 15 1.0 6 ^ ¼ ^ 0<br>
|
||
...<br>
|
||
KEY 21 1.0 = + × ÷ 0<br>
|
||
KEY 22 2.0 DELETE DELETE DELETE DELETE 0<br>
|
||
<br>
|
||
NEWLINE<br>
|
||
<br>
|
||
KEY 23 1.5 TAB TAB TAB TAB 0<br>
|
||
KEY 24 1.0 q Q ä Ä 1<br>
|
||
KEY 25 1.0 w W å Å 1<br>
|
||
KEY 26 1.0 e E é É 1<br>
|
||
KEY 27 1.0 r R ® ® 1<br>
|
||
...<br>
|
||
<br>
|
||
NEWLINE<br>
|
||
<br>
|
||
# Arrow to left will change to the previous
|
||
keyboard<br>
|
||
KEY 2 1.0 <- <- <- <- 0<br>
|
||
<br>
|
||
KEY 133 2.0 Cmp Cmp Cmp Cmp 0<br>
|
||
<br>
|
||
# The ALT or ALTGR keys are used in im to switch the
|
||
input mode.<br>
|
||
KEY 64 2.0 Alt Alt Alt Alt 0<br>
|
||
<br>
|
||
# Space<br>
|
||
KEY 65 7.0 SPACE SPACE SPACE SPACE 0<br>
|
||
<br>
|
||
KEY 108 2.0 AltGr AltGr AltGr AltGr 0<br>
|
||
<br>
|
||
# Arrow to right will change to the next keyboard<br>
|
||
KEY 1 1.0 -> -> -> -> 0</code>
|
||
</p>
|
||
</blockquote>
|
||
|
||
<p>
|
||
Notice here that alphabetic keys (<b>[Q]</b>, <b>[W]</b>,
|
||
etc.) will be affected by <b>[CapsLock]</b>, while
|
||
numeric keys (<b>[1]</b>, <b>[2]</b>, etc.),
|
||
<b>[Space]</b>, and so on, will not.
|
||
</p>
|
||
|
||
<p>
|
||
Keycodes up to "<code>8</code>" are reserved for internal
|
||
use. The ones currently used are described below.
|
||
</p>
|
||
|
||
<ul>
|
||
<li>
|
||
<code>0</code> — empty button
|
||
</li>
|
||
|
||
<li>
|
||
<code>1</code> — next layout (per the layout file's
|
||
"<code>keyboardlist</code>" setting)
|
||
</li>
|
||
|
||
<li>
|
||
<code>2</code> — previous layout (per the layout file's
|
||
"<code>keyboardlist</code>" setting)
|
||
</li>
|
||
</ul>
|
||
</blockquote>
|
||
|
||
<h3>
|
||
Keymap file ("<code>us-intl-altgr-dead-keys.keymap</code>")
|
||
</h3>
|
||
|
||
<blockquote>
|
||
<p>
|
||
This file defines which numeric keycodes (seen in the
|
||
keyboard layout files, such as
|
||
"<code>qwerty.h_layout</code>" described above) should be
|
||
mapped to which actual characters that an application
|
||
such as <cite style="white-space: nowrap;">Tux
|
||
Paint</cite> expects to receive when keys (e.g., on a
|
||
real keyboard) are pressed.
|
||
</p>
|
||
|
||
<p>
|
||
If you're using an operating system such as
|
||
<cite>Linux</cite>, which runs <cite>X-Window</cite> and
|
||
has the "<code>xmodmap</code>" command-line tool
|
||
available, you can run it with the ("<span style=
|
||
"white-space: nowrap;">print keymap expressions</span>"
|
||
option, "<code>-pke</code>", to generate a keymap file.
|
||
</p>
|
||
|
||
<blockquote>
|
||
<p>
|
||
<code>keycode 9 = Escape NoSymbol Escape Escape<br>
|
||
keycode 10 = 1 exclam exclamdown onesuperior 1 exclam 1
|
||
exclam NoSymbol onesuperior<br>
|
||
keycode 11 = 2 at twosuperior dead_doubleacute 2 at 2
|
||
at onehalf twosuperior<br>
|
||
keycode 12 = 3 numbersign periodcentered threesuperior
|
||
dead_macron periodcentered<br>
|
||
...<br>
|
||
keycode 52 = z Z ae AE Arabic_hamzaonyeh asciitilde
|
||
guillemotright NoSymbol Greek_zeta Greek_ZETA U037D
|
||
U03FF<br>
|
||
keycode 53 = x X x X Arabic_hamza Arabic_sukun
|
||
guillemotleft NoSymbol Greek_chi Greek_CHI rightarrow
|
||
leftarrow<br>
|
||
keycode 54 = c C copyright cent Arabic_hamzaonwaw
|
||
braceright Greek_psi Greek_PSI copyright<br>
|
||
keycode 55 = v V v V Arabic_ra braceleft Greek_omega
|
||
Greek_OMEGA U03D6<br>
|
||
keycode 56 = b B b B UFEFB UFEF5 Greek_beta Greek_BETA
|
||
U03D0<br>
|
||
keycode 57 = n N ntilde Ntilde Arabic_alefmaksura
|
||
Arabic_maddaonalef Greek_nu Greek_NU U0374 U0375<br>
|
||
keycode 58 = m M mu mu Arabic_tehmarbuta apostrophe
|
||
Greek_mu Greek_MU U03FB U03FA<br>
|
||
keycode 59 = comma less ccedilla Ccedilla Arabic_waw
|
||
comma comma less guillemotleft<br>
|
||
keycode 60 = period greater dead_abovedot dead_caron
|
||
Arabic_zain period period greater guillemotright
|
||
periodcentered<br>
|
||
keycode 61 = slash question questiondown dead_hook
|
||
Arabic_zah Arabic_question_mark slash question<br>
|
||
keycode 62 = Shift_R NoSymbol Shift_R Shift_R<br>
|
||
...<br></code>
|
||
</p>
|
||
</blockquote>
|
||
</blockquote>
|
||
|
||
<h3>
|
||
Composemap file ("<code>en_US.UTF-8_Compose</code>")
|
||
</h3>
|
||
|
||
<blockquote>
|
||
<p>
|
||
This file describes characters that can be composed by
|
||
multiple inputs. For example, "<b>[Compose]</b>" followed
|
||
by "<b>[A]</b>" and "<b>[E]</b>" can be used to create
|
||
the "<code>æ</code>" character.
|
||
</p>
|
||
|
||
<p>
|
||
The file that comes with <cite style=
|
||
"white-space: nowrap;">Tux Paint</cite> is based on the
|
||
US English UTF-8 (Unicode) composemap that comes with
|
||
X.Org's <cite style="white-space: nowrap;">X Window
|
||
system</cite>. The current version from the
|
||
<cite>Xlib</cite> library as a web page at <a href=
|
||
"https://www.x.org/releases/current/doc/libX11/i18n/compose/en_US.UTF-8.html">
|
||
https://www.x.org/releases/current/doc/libX11/i18n/compose/en_US.UTF-8.html</a>).
|
||
</p>
|
||
</blockquote>
|
||
|
||
<h3>
|
||
Keysym definitions file ("<code>keysymdef.h</code>")
|
||
</h3>
|
||
|
||
<blockquote>
|
||
<p>
|
||
This file (which is a <cite>C</cite> programming language
|
||
header file) is also from the <cite style=
|
||
"white-space: nowrap;">X Window System</cite>. It defines
|
||
the Unicode values of each keycap (e.g.,
|
||
"<code>XK_equal</code>" corresponds to
|
||
"<code>U+003D</code>", for the character "<code>=</code>"
|
||
("<code style="white-space: nowrap;">EQUALS
|
||
SIGN</code>").
|
||
</p>
|
||
|
||
<p>
|
||
It is unlikely that any modification will be required of
|
||
this file.
|
||
</p>
|
||
</blockquote>
|
||
</blockquote>
|
||
|
||
<hr size="2"
|
||
noshade>
|
||
</body>
|
||
</html>
|