kopia lustrzana https://github.com/backface/turtlestitch
144 wiersze
3.9 KiB
Plaintext
144 wiersze
3.9 KiB
Plaintext
|
*****************************
|
||
|
Translating BYOB4 / Snap!
|
||
|
by Jens Moenig
|
||
|
last changed: 12/10/16
|
||
|
*****************************
|
||
|
|
||
|
At this stage of development, Snap! can be translated to any LTR language
|
||
|
maintaining the current order of inputs (formal parameters in blocks).
|
||
|
|
||
|
Translating Snap! is easy:
|
||
|
|
||
|
|
||
|
1. Download
|
||
|
|
||
|
Download the sources and extract them into a local folder on your
|
||
|
computer:
|
||
|
|
||
|
<http://snap.berkeley.edu/snapsource/snap.zip>
|
||
|
|
||
|
Use the German translation file (named 'lang-de.js') as template for your
|
||
|
own translations. Start with editing the original file, because that way
|
||
|
you will be able to immediately check the results in your browsers while
|
||
|
you're working on your translation (keep the local copy of snap.html open
|
||
|
in your web browser, and refresh it as you progress with your
|
||
|
translation).
|
||
|
|
||
|
|
||
|
2. Edit
|
||
|
|
||
|
Edit the translation file with a regular text editor, or with your
|
||
|
favorite JavaScript editor.
|
||
|
|
||
|
In the first non-commented line (the one right below this
|
||
|
note) replace "de" with the two-letter ISO 639-1 code for your language,
|
||
|
e.g.
|
||
|
|
||
|
fr - French => SnapTranslator.dict.fr = {
|
||
|
it - Italian => SnapTranslator.dict.it = {
|
||
|
pl - Polish => SnapTranslator.dict.pl = {
|
||
|
pt - Portuguese => SnapTranslator.dict.pt = {
|
||
|
es - Spanish => SnapTranslator.dict.es = {
|
||
|
el - Greek => => SnapTranslator.dict.el = {
|
||
|
|
||
|
etc. (see <http://en.wikipedia.org/wiki/ISO_639-1>)
|
||
|
|
||
|
|
||
|
3. Translate
|
||
|
|
||
|
Then work through the dictionary, replacing the German strings against
|
||
|
your translations. The dictionary is a straight-forward JavaScript ad-hoc
|
||
|
object, for review purposes it should be formatted as follows:
|
||
|
|
||
|
{
|
||
|
'English string':
|
||
|
'Translation string',
|
||
|
'last key':
|
||
|
} 'last value'
|
||
|
|
||
|
and you only edit the indented value strings. Note that each key-value
|
||
|
pair needs to be delimited by a comma, but that there shouldn't be a comma
|
||
|
after the last pair (again, just overwrite the template file and you'll be
|
||
|
fine).
|
||
|
|
||
|
If something doesn't work, or if you're unsure about the formalities you
|
||
|
should check your file with
|
||
|
|
||
|
<http://JSLint.com>
|
||
|
|
||
|
This will inform you about any missed commas etc.
|
||
|
|
||
|
|
||
|
4. Accented characters
|
||
|
|
||
|
Depending on which text editor and which file encoding you use you can
|
||
|
directly enter special characters (e.g. Umlaut, accented characters) on
|
||
|
your keyboard. However, I've noticed that some browsers may not display
|
||
|
special characters correctly, even if other browsers do. So it's best to
|
||
|
check your results in several browsers. If you want to be on the safe
|
||
|
side, it's even better to escape these characters using Unicode.
|
||
|
|
||
|
see: <http://0xcc.net/jsescape/>
|
||
|
|
||
|
|
||
|
5. Block specs:
|
||
|
|
||
|
At this time your translation of block specs will only work
|
||
|
correctly, if the order of formal parameters and their types
|
||
|
are unchanged. Placeholders for inputs (formal parameters) are
|
||
|
indicated by a preceding % prefix and followed by a type
|
||
|
abbreviation.
|
||
|
|
||
|
For example:
|
||
|
|
||
|
'say %s for %n secs'
|
||
|
|
||
|
can currently not be changed into
|
||
|
|
||
|
'say %n secs long %s'
|
||
|
|
||
|
and still work as intended.
|
||
|
|
||
|
Similarly
|
||
|
|
||
|
'point towards %dst'
|
||
|
|
||
|
cannot be changed into
|
||
|
|
||
|
'point towards %cst'
|
||
|
|
||
|
without breaking its functionality.
|
||
|
|
||
|
|
||
|
6. Submit
|
||
|
|
||
|
When you're done, rename the edited file by replacing the "de" part of the
|
||
|
filename with the two-letter ISO 639-1 code for your language, e.g.
|
||
|
|
||
|
fr - French => lang-fr.js
|
||
|
it - Italian => lang-it.js
|
||
|
pl - Polish => lang-pl.js
|
||
|
pt - Portuguese => lang-pt.js
|
||
|
es - Spanish => lang-es.js
|
||
|
el - Greek => => lang-el.js
|
||
|
|
||
|
and send it to me for inclusion in the official Snap! distribution.
|
||
|
Once your translation has been included, Your name will the shown in the
|
||
|
"Translators" tab in the "About Snap!" dialog box, and you will be able to
|
||
|
directly launch a translated version of Snap! in your browser by appending
|
||
|
|
||
|
lang:xx
|
||
|
|
||
|
to the URL, xx representing your translations two-letter code.
|
||
|
|
||
|
|
||
|
7. Known issues
|
||
|
|
||
|
In some browsers accents or ornaments located in typographic ascenders
|
||
|
above the cap height are currently (partially) cut-off.
|
||
|
|
||
|
|
||
|
|
||
|
Enjoy!
|
||
|
-Jens
|