kopia lustrzana https://github.com/backface/turtlestitch
664 wiersze
16 KiB
JavaScript
664 wiersze
16 KiB
JavaScript
/*
|
||
|
||
locale.js
|
||
|
||
spoken language translation for SNAP!
|
||
|
||
written by Jens Mönig
|
||
|
||
Copyright (C) 2022 by Jens Mö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/>.
|
||
|
||
|
||
Attention Translators!
|
||
----------------------
|
||
Please refer to the documentation in the file
|
||
|
||
lang-de.js
|
||
|
||
or to the section titled
|
||
|
||
Translating Snap!
|
||
|
||
in the file
|
||
|
||
Contributing.md
|
||
|
||
(same contents) if you would like to contribute.
|
||
|
||
*/
|
||
|
||
// Global settings /////////////////////////////////////////////////////
|
||
|
||
/*global modules, contains, SpriteMorph*/
|
||
|
||
/*jshint esversion: 6*/
|
||
|
||
// Global stuff
|
||
|
||
modules.locale = '2022-January-31';
|
||
|
||
var Localizer;
|
||
var SnapTranslator = new Localizer();
|
||
|
||
function localize(string) {
|
||
return SnapTranslator.translate(string);
|
||
}
|
||
|
||
// Localizer /////////////////////////////////////////////////////////////
|
||
|
||
function Localizer(language, dict) {
|
||
this.language = language || 'en';
|
||
this.dict = dict || {};
|
||
}
|
||
|
||
Localizer.prototype.translate = function (string) {
|
||
var phrase = this.contextualize(string);
|
||
return Object.prototype.hasOwnProperty.call(
|
||
this.dict[this.language],
|
||
phrase
|
||
) ? this.dict[this.language][phrase] : phrase;
|
||
};
|
||
|
||
Localizer.prototype.languages = function () {
|
||
var property, arr = [];
|
||
for (property in this.dict) {
|
||
if (Object.prototype.hasOwnProperty.call(this.dict, property)) {
|
||
arr.push(property);
|
||
}
|
||
}
|
||
return arr.sort();
|
||
};
|
||
|
||
Localizer.prototype.languageName = function (lang) {
|
||
return this.dict[lang].language_name || lang;
|
||
};
|
||
|
||
Localizer.prototype.credits = function () {
|
||
var txt = '';
|
||
this.languages().forEach(lang => {
|
||
txt = txt + '\n'
|
||
+ this.languageName(lang)
|
||
+ ' (' + lang + ') - '
|
||
+ this.dict[lang].language_translator
|
||
+ ' - ' + this.dict[lang].last_changed;
|
||
});
|
||
return txt;
|
||
};
|
||
|
||
Localizer.prototype.unload = function () {
|
||
var dict,
|
||
keep = ['language_name', 'language_translator', 'last_changed'];
|
||
this.languages().forEach(lang => {
|
||
var key;
|
||
if (lang !== 'en') {
|
||
dict = this.dict[lang];
|
||
for (key in dict) {
|
||
if (Object.prototype.hasOwnProperty.call(dict, key)
|
||
&& !contains(keep, key)) {
|
||
delete dict[key];
|
||
}
|
||
}
|
||
}
|
||
});
|
||
};
|
||
|
||
Localizer.prototype.contextualize = function (string) {
|
||
switch (string) {
|
||
case 'Error':
|
||
return 'Hmm...';
|
||
case 'brightness':
|
||
return SpriteMorph.prototype.penColorModel === 'hsl' ?
|
||
'lightness' : string;
|
||
case 'r-g-b-a':
|
||
return 'RGBA';
|
||
case 'r-g-b(-a)':
|
||
return 'RGB(A)';
|
||
default:
|
||
return string;
|
||
}
|
||
};
|
||
|
||
// SnapTranslator initialization
|
||
|
||
SnapTranslator.dict.en = {
|
||
// meta information
|
||
'language_name':
|
||
'English',
|
||
'language_translator':
|
||
'Jens M\u00F6nig',
|
||
'translator_e-mail':
|
||
'jens@moenig.org',
|
||
'last_changed':
|
||
'2020-07-09',
|
||
|
||
// symbols in dropdowns
|
||
'__shout__go__':
|
||
'green flag clicked',
|
||
|
||
// rewordings in English avoiding having to adjust all other translations
|
||
'any':
|
||
'random',
|
||
'length of %s':
|
||
'length of text %s',
|
||
|
||
// long strings look-up only
|
||
'file menu import hint':
|
||
'load an exported project file\nor block library, a costume\n'
|
||
+ 'or a sound',
|
||
'settings menu prefer empty slots hint':
|
||
'check to focus on empty slots\nwhen dragging & '
|
||
+ 'dropping reporters',
|
||
'costumes tab help':
|
||
'import a picture from another web page or from\n'
|
||
+ 'a file on your computer by dropping it here\n',
|
||
'block deletion dialog text':
|
||
'Are you sure you want to delete this\n'
|
||
+ 'custom block and all its instances?',
|
||
'download to disk text':
|
||
'This item could not be opened in a new tab.\n' +
|
||
'It has been saved to your browser\'s downloads folder.',
|
||
'unable to export text':
|
||
'This item could not be exported from Snap!.\n' +
|
||
'It\'s likely that your project may contain a lot of media ' +
|
||
'(sounds and images) or that you are using an older browser.' +
|
||
'Please try using a recent version of Chrome, Firefox, or Safari.'
|
||
};
|
||
|
||
SnapTranslator.dict.de = {
|
||
'language_name':
|
||
'Deutsch',
|
||
'language_translator':
|
||
'Jens M\u00F6nig, Jadga H\u00fcgle',
|
||
'translator_e-mail':
|
||
'jens@moenig.org, jadga.huegle@sap.com',
|
||
'last_changed':
|
||
'2022-01-31'
|
||
};
|
||
|
||
SnapTranslator.dict.it = {
|
||
'language_name':
|
||
'Italiano',
|
||
'language_translator':
|
||
'Stefano Federici, Alberto Firpo, Massimo Ghisalberti',
|
||
'translator_e-mail':
|
||
's_federici@yahoo.com, albertofirpo12@gmail.com, zairik@gmail.com',
|
||
'last_changed':
|
||
'2022-91-03'
|
||
};
|
||
|
||
SnapTranslator.dict.ja = {
|
||
'language_name':
|
||
'日本語',
|
||
'language_translator':
|
||
'Kazuhiro Abe',
|
||
'translator_e-mail':
|
||
'abee@squeakland.jp',
|
||
'last_changed':
|
||
'2020-07-03'
|
||
};
|
||
|
||
SnapTranslator.dict.ja_HIRA = {
|
||
'language_name':
|
||
'にほんご',
|
||
'language_translator':
|
||
'Kazuhiro Abe',
|
||
'translator_e-mail':
|
||
'abee@squeakland.jp',
|
||
'last_changed':
|
||
'2018-10-23'
|
||
};
|
||
|
||
SnapTranslator.dict.ko = {
|
||
'language_name':
|
||
'한국어',
|
||
'language_translator':
|
||
'Yunjae Jang',
|
||
'translator_e-mail':
|
||
'janggoons@gmail.com',
|
||
'last_changed':
|
||
'2015-01-21'
|
||
};
|
||
|
||
SnapTranslator.dict.pt = {
|
||
'language_name':
|
||
'Português',
|
||
'language_translator':
|
||
'Manuel Menezes de Sequeira',
|
||
'translator_e-mail':
|
||
'mmsequeira@gmail.com',
|
||
'last_changed':
|
||
'2020-08-03'
|
||
};
|
||
|
||
SnapTranslator.dict.cs = {
|
||
'language_name':
|
||
'Česky',
|
||
'language_translator':
|
||
'Michal Moc, Jan Tomsa',
|
||
'translator_e-mail':
|
||
'info@iguru.eu, jan.tomsa.1976@gmail.com',
|
||
'last_changed':
|
||
'2015-11-16'
|
||
};
|
||
|
||
SnapTranslator.dict.zh_CN = {
|
||
'language_name':
|
||
'简体中文',
|
||
'language_translator':
|
||
'五百刀/邓江华/孟锡峰/曹儒林',
|
||
'translator_e-mail':
|
||
'ubertao@qq.com/djh@rhjxx.cn/simon@snapontop.org',
|
||
'last_changed':
|
||
'2022-01-17'
|
||
};
|
||
|
||
SnapTranslator.dict.eo = {
|
||
'language_name':
|
||
'Esperanto',
|
||
'language_translator':
|
||
'Sebastian Cyprych',
|
||
'translator_e-mail':
|
||
'sebacyp(heliko)gmail(punkto)com',
|
||
'last_changed':
|
||
'2017-10-01'
|
||
};
|
||
|
||
SnapTranslator.dict.fr = {
|
||
'language_name':
|
||
'Fran\u00E7ais',
|
||
'language_translator':
|
||
'Jean-Jacques Valliet, Mark Rafter, Martin Quinson, Damien Caselli',
|
||
'translator_e-mail':
|
||
'i.scool@mac.com',
|
||
'last_changed':
|
||
'2020-10-28'
|
||
};
|
||
|
||
SnapTranslator.dict.si = {
|
||
'language_name':
|
||
'Sloven\u0161\u010Dina',
|
||
'language_translator':
|
||
'Sasa Divjak, Gorazd Breskvar',
|
||
'translator_e-mail':
|
||
'sasa.divjak@fri.uni-lj.si',
|
||
'last_changed':
|
||
'2016-04-22'
|
||
};
|
||
|
||
SnapTranslator.dict.ru = {
|
||
'language_name':
|
||
'Русский',
|
||
'language_translator':
|
||
'Svetlana Ptashnaya, Проскурнёв Артём, Pavel Belousov',
|
||
'translator_e-mail':
|
||
'svetlanap@berkeley.edu, tema@school830.ru, pbsite@mail.ru',
|
||
'last_changed':
|
||
'2020-12-22'
|
||
};
|
||
|
||
SnapTranslator.dict.es = {
|
||
'language_name':
|
||
'Espa\u00F1ol',
|
||
'language_translator':
|
||
'V\u00EDctor Manuel Muratalla Morales / Cristi\u00E1n Rizzi Iribarren / Alfonso Ruzafa',
|
||
'translator_e-mail':
|
||
'victor.muratalla@yahoo.com / rizzi.cristian@gmail.com',
|
||
'last_changed':
|
||
'2020-12-01'
|
||
};
|
||
|
||
SnapTranslator.dict.nl = {
|
||
'language_name':
|
||
'Nederlands',
|
||
'language_translator':
|
||
'Joek van Montfort, Sjoerd Dirk Meijer, Frank Sierens, Jan-Gerard van der Toorn',
|
||
'translator_e-mail':
|
||
'joek@xota.nl, sjoerddirk@fromScratchEd.nl, frank.sierens@telenet.be, jg.2019@xs4all.nl',
|
||
'last_changed':
|
||
'2020-12-15'
|
||
};
|
||
|
||
SnapTranslator.dict.pl = {
|
||
'language_name':
|
||
'Polski',
|
||
'language_translator':
|
||
'Witek Kranas & deKrain & Andrzej Batorski',
|
||
'translator_e-mail':
|
||
'witek@oeiizk.waw.pl',
|
||
'last_changed':
|
||
'2021-05-15'
|
||
};
|
||
|
||
SnapTranslator.dict.zh_TW = {
|
||
'language_name':
|
||
'繁體中文',
|
||
'language_translator':
|
||
'cch',
|
||
'translator_e-mail':
|
||
'cchuang2009@gmail.com',
|
||
'last_changed':
|
||
'2013-8-14'
|
||
};
|
||
|
||
SnapTranslator.dict.no = {
|
||
'language_name':
|
||
'Norsk',
|
||
'language_translator':
|
||
'Olav A Marschall',
|
||
'translator_e-mail':
|
||
'olavmarschall@gmail.com',
|
||
'last_changed':
|
||
'2020-08-19'
|
||
};
|
||
|
||
SnapTranslator.dict.dk = {
|
||
'language_name':
|
||
'Dansk',
|
||
'language_translator':
|
||
'FAB, Pelle Hjek',
|
||
'translator_e-mail':
|
||
'fab@nielsen.mail.dk, hjek@mail.com',
|
||
'last_changed':
|
||
'2016-11-16'
|
||
};
|
||
|
||
SnapTranslator.dict.el = {
|
||
'language_name':
|
||
'Ελληνικά',
|
||
'language_translator':
|
||
'Ino Samaras, Alexandros Prekates, HM100',
|
||
'translator_e-mail':
|
||
'ino.samaras@berkeley.edu, aprekates@sch.gr',
|
||
'last_changed':
|
||
'2020-11-23'
|
||
};
|
||
|
||
SnapTranslator.dict.ca = {
|
||
'language_name':
|
||
'Català',
|
||
'language_translator':
|
||
'Bernat Romagosa Carrasquer, Joan Guillén i Pelegay',
|
||
'translator_e-mail':
|
||
'bernat@snap4arduino.rocks, jguille2@xtec.cat',
|
||
'last_changed':
|
||
'2022-01-05'
|
||
};
|
||
|
||
SnapTranslator.dict.ca_VA = {
|
||
'language_name':
|
||
'Català - Valencià',
|
||
'language_translator':
|
||
'Bernat Romagosa Carrasquer, Joan Guillén i Pelegay, Pilar Embid',
|
||
'translator_e-mail':
|
||
'bernat@snap4arduino.rocks, jguille2@xtec.cat, embid_mar@gva.es',
|
||
'last_changed':
|
||
'2018-02-08'
|
||
};
|
||
|
||
SnapTranslator.dict.fi = {
|
||
'language_name':
|
||
'suomi',
|
||
'language_translator':
|
||
'Jouni K. Sepp\u00e4nen',
|
||
'translator_e-mail':
|
||
'jks@iki.fi',
|
||
'last_changed':
|
||
'2014-04-18'
|
||
};
|
||
|
||
SnapTranslator.dict.sv = {
|
||
'language_name':
|
||
'svenska',
|
||
'language_translator':
|
||
'Erik A. Olsson',
|
||
'translator_e-mail':
|
||
'eolsson@gmail.com',
|
||
'last_changed':
|
||
'2016-06-09'
|
||
};
|
||
|
||
SnapTranslator.dict.pt_BR = {
|
||
'language_name':
|
||
'Português do Brasil',
|
||
'language_translator':
|
||
"Aldo von Wangenheim, Cassiano D'Andrea",
|
||
'translator_e-mail':
|
||
'awangenh@inf.ufsc.br, cassiano.dandrea@tagview.com.br',
|
||
'last_changed':
|
||
'2021-11-11',
|
||
};
|
||
|
||
SnapTranslator.dict.bn = {
|
||
'language_name':
|
||
'বাংলা',
|
||
'language_translator':
|
||
'Dr. Mokter Hossain, Radman Siddiki',
|
||
'translator_e-mail':
|
||
'mokter@gmail.com, radman.siddiki@outlook.com',
|
||
'last_changed':
|
||
'2020-07-04'
|
||
};
|
||
|
||
SnapTranslator.dict.kn = {
|
||
'language_name':
|
||
'\u0C95\u0CA8\u0CCD\u0CA8\u0CA1',
|
||
'language_translator':
|
||
'Vinayakumar R',
|
||
'translator_e-mail':
|
||
'vnkmr7620@gmail.com',
|
||
'last_changed':
|
||
'2014-12-02'
|
||
};
|
||
|
||
SnapTranslator.dict.ml = {
|
||
'language_name':
|
||
'Malayalam',
|
||
'language_translator':
|
||
'vinayakumar R',
|
||
'translator_e-mail':
|
||
'vnkmr7620@gmail.com',
|
||
'last_changed':
|
||
'2015-02-20'
|
||
};
|
||
|
||
SnapTranslator.dict.ta = {
|
||
'language_name':
|
||
'Tamil',
|
||
'language_translator':
|
||
'vinayakumar R, Barthdry',
|
||
'translator_e-mail':
|
||
'vnkmr7620@gmail.com',
|
||
'last_changed':
|
||
'2021-01-25'
|
||
};
|
||
|
||
SnapTranslator.dict.te = {
|
||
'language_name':
|
||
'Telagu', // the name as it should appear in the language menu
|
||
'language_translator':
|
||
'vinayakumar R', // your name for the Translators tab
|
||
'translator_e-mail':
|
||
'vnkmr7620@gmail.com', // optional
|
||
'last_changed':
|
||
'2015-02-20'
|
||
};
|
||
|
||
SnapTranslator.dict.tr = {
|
||
'language_name':
|
||
'Türkçe',
|
||
'language_translator':
|
||
'Turgut Güneysu, Hakan Atas',
|
||
'translator_e-mail':
|
||
'tguneysu@msn.com', // hakanatas@gmail.com, mustafaipekbayrak@gmail.com',
|
||
'last_changed':
|
||
'2021-01-26'
|
||
};
|
||
|
||
SnapTranslator.dict.hu = {
|
||
'language_name':
|
||
'Magyar',
|
||
'language_translator':
|
||
'Makány György, Faragó Attila',
|
||
'translator_e-mail':
|
||
'makany.gyorgy@gmail.com, attila.farago@sap.com',
|
||
'last_changed':
|
||
'2022-01-25'
|
||
};
|
||
|
||
SnapTranslator.dict.ia = {
|
||
'language_name':
|
||
'Interlingua',
|
||
'language_translator':
|
||
'Ken Dickey',
|
||
'translator_e-mail':
|
||
'Ken.Dickey@whidbey.com',
|
||
'last_changed':
|
||
'2015-08-09'
|
||
};
|
||
|
||
SnapTranslator.dict.hr = {
|
||
'language_name':
|
||
'Hrvatski',
|
||
'language_translator':
|
||
'\u017Deljko Hrvoj',
|
||
'translator_e-mail':
|
||
'zeljko.hrvoj@zg.t-com.hr',
|
||
'last_changed':
|
||
'2017-08-15'
|
||
};
|
||
|
||
SnapTranslator.dict.bg = {
|
||
'language_name':
|
||
'Български',
|
||
'language_translator':
|
||
'Ivan Savov',
|
||
'translator_e-mail':
|
||
'ivan.savov@gmail.com',
|
||
'last_changed':
|
||
'2015-11-16'
|
||
};
|
||
|
||
SnapTranslator.dict.ro = {
|
||
'language_name':
|
||
'Român',
|
||
'language_translator':
|
||
'Cristian Macarascu',
|
||
'translator_e-mail':
|
||
'',
|
||
'last_changed':
|
||
'2015-10-24'
|
||
};
|
||
|
||
SnapTranslator.dict.ar = {
|
||
'language_name':
|
||
'العربية', // the name as it should appear in the language menu
|
||
'language_translator':
|
||
'طارق جلال', // your name for the Translators tab
|
||
'translator_e-mail':
|
||
'tarekgalal46@hotmail.com', // optional
|
||
'last_changed':
|
||
'2016-02-24'
|
||
};
|
||
|
||
SnapTranslator.dict.id = {
|
||
'language_name':
|
||
'Bahasa Indonesia',
|
||
'language_translator':
|
||
'Alexander Raphael Liu, Emmanuella Rumanti',
|
||
'translator_e-mail':
|
||
'raphaxander@gmail.com',
|
||
'last_changed':
|
||
'2019-01-21'
|
||
};
|
||
|
||
SnapTranslator.dict.et = {
|
||
'language_name':
|
||
'Eesti',
|
||
'language_translator':
|
||
'Hasso Tepper',
|
||
'translator_e-mail':
|
||
'hasso.tepper@gmail.com',
|
||
'last_changed':
|
||
'2016-05-03'
|
||
};
|
||
|
||
SnapTranslator.dict.gl = {
|
||
'language_name':
|
||
'Galego',
|
||
'language_translator':
|
||
'tecnoloxia <2016>,Miguel A. Bouzada <2019>',
|
||
'translator_e-mail':
|
||
'mbouzada@gmail.com',
|
||
'last_changed':
|
||
'2019-07-29'
|
||
};
|
||
|
||
SnapTranslator.dict.eu = {
|
||
'language_name':
|
||
'Euskara',
|
||
'language_translator':
|
||
'Asier Iturralde Sarasola',
|
||
'translator_e-mail':
|
||
'aiturralde@iametza.eus',
|
||
'last_changed':
|
||
'2018-06-26'
|
||
};
|
||
|
||
SnapTranslator.dict.ua = {
|
||
'language_name':
|
||
'Українська',
|
||
'language_translator':
|
||
'Serhiy Kryzhanovsky',
|
||
'translator_e-mail':
|
||
'kseryj@gmail.com',
|
||
'last_changed':
|
||
'2018-08-21'
|
||
};
|
||
|
||
SnapTranslator.dict.sk = {
|
||
'language_name':
|
||
'Sloven\u010Dina',
|
||
'language_translator':
|
||
'Peter Luka\u010Dovi\u010D',
|
||
'translator_e-mail':
|
||
'peter_lukacovic@outlook.com',
|
||
'last_changed':
|
||
'2019-12-10'
|
||
};
|
||
|
||
SnapTranslator.dict.he = {
|
||
'language_name':
|
||
'עברית',
|
||
'language_translator':
|
||
'יוסי כהן',
|
||
'translator_e-mail':
|
||
'cohenyossi81@gmail.com',
|
||
'last_changed':
|
||
'2020-04-21'
|
||
};
|
||
SnapTranslator.dict.hi = {
|
||
'language_name':
|
||
'हिंदी',
|
||
'language_translator':
|
||
'Barthdry',
|
||
'translator_e-mail':
|
||
'barathkumarbasker2007@gmail.com',
|
||
'last_changed':
|
||
'2021-05-08'
|
||
};
|