kopia lustrzana https://github.com/backface/turtlestitch
13 wiersze
27 KiB
JavaScript
13 wiersze
27 KiB
JavaScript
|
/*
lang-no.js
Norwegian translation for SNAP!
written by Olav A Marschall
Copyright (C) 2013 by Jens M<EFBFBD>nig
This file is part of Snap!.
Snap! is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of
the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
Note to Translators:
--------------------
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 cha
|
|||
|
'Dynamic input labels':
|
|||
|
'Dynamisk inndata navn',
|
|||
|
'uncheck to disable dynamic\nlabels for variadic inputs':
|
|||
|
'fjern kryss for <20> hindre dynamisk benevning\nav inndata med flere variabelfelt',
|
|||
|
'check to enable dynamic\nlabels for variadic inputs':
|
|||
|
'kryss av for\ndynamisk benevning av inndata med flere variabelfelt',
|
|||
|
'Prefer empty slot drops':
'Preferanse for tomme variabelfelt',
'settings menu prefer empty slots hint':
'Valg meny\ntomme variabelfelt'
+ 'preferanse',
'uncheck to allow dropped\nreporters to kick out others':
'kryss vekk for at flyttede reportere vil ta plassen til andre\n',
'Long form input dialog':
'Lange inndata dialoger',
'check to always show slot\ntypes in the input dialog':
'kryss av for <20> vise variabelfelttype\ni inndata dialoger',
'uncheck to use the input\ndialog in short form':
'kryss vekk for <20> bruke korte inndata\ndialoger',
'Virtual keyboard':
'Virtuelt tastatur',
'uncheck to disable\nvirtual keyboard support\nfor mobile devices':
'kryss vekk for <20> sl<73> av virtuelt\ntastatur p<> mobile enheter',
'check to enable\nvirtual keyboard support\nfor mobile devices':
'kryss av for <20> sl<73> p<> virtuelt\ntastatur p<> mobile enheter',
'Input sliders':
'Inndata skyveknapp',
'uncheck to disable\ninput sliders for\nentry fields':
'kryss vekk for <20> sl<73> av\nskyveknapper i inndatafelt',
'check to enable\ninput sliders for\nentry fields':
'kryss av for <20> sl<73> p<> skyveknapper\ni inndatafelt',
'Clicking sound':
'Klikkelyd',
'uncheck to turn\nblock clicking\nsound off':
'kryss vekk for sl<73> av klikkelyd',
'check to turn\nblock clicking\nsound on':
'kryss av for <20> sl<73> p<> klikkelyd',
'Animations':
'Animasjoner',
'uncheck to disable\nIDE animations':
'kryss vekk for <20> sl<73> av IDE-animasjoner',
'check to enable\nIDE animations':
'kryss av for <20> sl<73> p<> IDE-animasjoner',
'Thread safe scripts':
'Tr<54>dsikker skripting',
'uncheck to allow\nscript reentrancy':
'kryss vekk for <20> sl<73> p<> gjenbruk av p<>begynte skripter',
'check to disallow\nscript reentrancy':
'kryss av for <20> sl<73> av gjenbruk av p<>begynte skripter',
// inputs
'with inputs':
'med inndata',
'input names:':
'inndata navn:',
'Input Names:':
'Inndata navn:',
|
|||
|
'input list:':
|
|||
|
'Inndata liste:',
// context menus:
'help':
'hjelp',
// blocks:
'hjelp...':
'Hjelp...',
'relabel...':
'gi nytt navn...',
'duplicate':
'dupliser',
'make a copy\nand pick it up':
'lag kopi\n og plukk opp',
'only duplicate this block':
'dupliser kun denne blokk',
'delete':
'slette',
'script pic...':
'skript bilde...',
'open a new window\nwith a picture of this script':
'<27>pne nytt vindu med bildet av dette skriptet',
'ringify':
'ring rundt',
'unringify':
'fjerne ringen rundt',
// custom blocks:
'delete block definition...':
'slett blokk definisjoner',
'edit...':
'rediger...',
// sprites:
'edit':
'redigere',
'export...':
'eksporter...',
// stage:
'show all':
'vis alt',
// scripting area
'clean up':
'rydd',
'arrange scripts\nvertically':
'sett opp skriptene\nvertikalt',
'add comment':
'legg til kommentar',
'make a block...':
'lag ny blokk...',
// costumes
'rename':
'nytt navn',
'export':
'eksportere',
'rename costume':
'nytt navn for kostyme',
// sounds
'Play sound':
'Spill lyd',
'Stop sound':
'Stop lyd',
'Stop':
'Stop',
'Play':
'Start',
'rename sound':
'nytt navn lyd',
// dialogs
// buttons
'OK':
'OK',
'Ok':
'OK',
'Cancel':
'Avbryt',
'Yes':
'Ja',
'No':
'Nei',
// help
'Help':
'Hjelp',
// Project Manager
'Untitled':
'Uten navn',
'Open Project':
'<27>pne prosjekt',
'(empty)':
'(tomt)',
'Saved!':
'Lagret!',
'Delete Project':
'Slett prosjekt',
'Are you sure you want to delete':
'Vil du virkelig slette?',
'rename...':
'nytt navn...',
// costume editor
'Costume Editor':
'Kostyme editor',
'click or drag crosshairs to move the rotation center':
'Klikk p<> kors for <20> flytte rotasjonssenteret',
// project notes
'Project Notes':
'Prosjekt notater',
// new project
'New Project':
'Nytt prosjekt',
'Replace the current project with a new one?':
'Erstatt n<>v<EFBFBD>rende prosjekt med nytt prosjekt?',
// save project
'Save Project As...':
'Lagre prosjekt som...',
// export blocks
'Export blocks':
'Eksporter blokker',
'Import blocks':
'Importer blokker',
'this project doesn\'t have any\ncustom global blocks yet':
'dette prosjektet har s<>langt ingen\nglobale blokker fra bruker',
'select':
'Velg',
'all':
'alt',
'none':
'ingenting',
// variable dialog
'for all sprites':
'for alle objekter',
'for this sprite only':
'for dette objektet (ekslusivt)',
// block dialog
'Change block':
'Endre blokker',
'Command':
'Styring',
'Reporter':
'Funksjon',
'Predicate':
'Predikat',
// block editor
'Block Editor':
'Blokk editor',
'Apply':
'Gj<47>r gjeldende',
// block deletion dialog
'Delete Custom Block':
'Slett custom blokk',
'block deletion dialog text':
'Skal denne blokken med alle dens instanser\n' +
'bli slettet?',
// input dialog
'Create input name':
'Lag inndata navn',
'Edit input name':
'Rediger inndata navn',
'Edit label fragment':
'Rediger label fragment',
'Title text':
'Tittel',
'Input name':
'Inndata navn',
'Delete':
'Slett',
'Object':
'Objekt',
'Number':
'Tall',
'Text':
'Tekst',
'List':
'Liste',
'Any type':
'Type valgfritt',
'Boolean (T/F)':
'Boolsk (S/U)',
'Command\n(inline)':
'Kommando\n(inline)',
'Command\n(C-shape)':
'Kommando\
|
|||
|
'import...':
|
|||
|
'importer...',
'Slider minimum value':
'Skyveknapp - minimumsverdi',
'Slider maximum value':
'Skyveknapp - maksimumsverdi',
// list watchers
'length: ':
'lengde: ',
// coments
'add comment here...':
'legg til kommentar her...',
// drow downs
// directions
'(90) h<>yre':
'(90) h<>yre',
'(-90) venstre':
'(-90) venstre',
'(0) opp':
'(0) oppe',
'(180) ned':
'(180) nede',
// collision detection
'mouse-pointer':
'Muspeker',
'edge':
'Kante',
'pen trails':
'pennens spor',
// costumes
'Turtle':
'Retning',
// graphical effects
'ghost':
'Gjennomsiktig',
// keys
'space':
'Mellomrom',
'up arrow':
'pil opp',
'down arrow':
'pil ned',
'right arrow':
'pil h<>yre',
'left arrow':
'pil',
'a':
'a',
'b':
'b',
'c':
'c',
'd':
'd',
'e':
'e',
'f':
'f',
'g':
'g',
'h':
'h',
'i':
'i',
'j':
'j',
'k':
'k',
'l':
'l',
'm':
'm',
'n':
'n',
'o':
'o',
'p':
'p',
'q':
'q',
'r':
'r',
's':
's',
't':
't',
'u':
'u',
'v':
'v',
'w':
'w',
'x':
'x',
'y':
'y',
'z':
'z',
'0':
'0',
'1':
'1',
'2':
'2',
'3':
'3',
'4':
'4',
'5':
'5',
'6':
'6',
'7':
'7',
'8':
'8',
'9':
'9',
// messages
'new...':
'ny...',
// math functions
'abs':
'abs',
'sqrt':
'kvardrat',
'sin':
'sin',
'cos':
'cos',
'tan':
'tan',
'asin':
'arc-1',
'acos':
'cos-1',
'atan':
'tan-1',
'ln':
'ln',
'e^':
'e^',
// data types
'number':
'tall',
'text':
'tekst',
'Boolean':
'boolsk',
'list':
'liste',
'command':
'kommando',
'reporter':
'funksjonsblokk',
'predicate':
'predikat',
// list indices
'last':
'siste',
'any':
'hvilken som helst'
};
|