fix #83
This commit is contained in:
		
							parent
							
								
									5e21a28eb2
								
							
						
					
					
						commit
						f20766d489
					
				| @ -1,18 +1,38 @@ | ||||
| import * as Blockly from "blockly/core"; | ||||
| import { getColour } from "../helpers/colour"; | ||||
| 
 | ||||
| var checkFileName = function (filename) { | ||||
|   var length = filename.length; | ||||
|   if (length > 8) { | ||||
|     alert("dateiname sollte kleiner als 8 Zeichen sein"); | ||||
|     return filename.slice(0, 8); | ||||
|   } | ||||
|   return filename; | ||||
| }; | ||||
| 
 | ||||
| Blockly.Blocks["sensebox_sd_open_file"] = { | ||||
|   init: function () { | ||||
|     this.appendDummyInput() | ||||
|       .appendField(Blockly.Msg.senseBox_sd_open_file) | ||||
|       .setAlign(Blockly.ALIGN_LEFT) | ||||
|       .appendField(new Blockly.FieldTextInput("Data.txt"), "Filename"); | ||||
|       .appendField( | ||||
|         new Blockly.FieldTextInput("Data", checkFileName), | ||||
|         "Filename" | ||||
|       ) | ||||
|       .appendField(".") | ||||
|       .appendField( | ||||
|         new Blockly.FieldDropdown([ | ||||
|           ["txt", "txt"], | ||||
|           ["csv", "csv"], | ||||
|         ]), | ||||
|         "extension" | ||||
|       ); | ||||
|     this.appendStatementInput("SD").setCheck(null); | ||||
|     this.setPreviousStatement(true, null); | ||||
|     this.setNextStatement(true, null); | ||||
|     this.setColour(getColour().sensebox); | ||||
|     this.setTooltip(Blockly.Msg.senseBox_sd_open_file_tooltip); | ||||
|     this.setHelpUrl("https://docs.sensebox.de/hardware/bee-sd/"); | ||||
|     this.setHelpUrl(Blockly.Msg.sensebox_sd_helpurl); | ||||
|   }, | ||||
| }; | ||||
| 
 | ||||
| @ -22,12 +42,23 @@ Blockly.Blocks["sensebox_sd_create_file"] = { | ||||
|       .appendField(Blockly.Msg.senseBox_sd_create_file) | ||||
|       .setAlign(Blockly.ALIGN_LEFT) | ||||
|       .appendField(Blockly.Msg.senseBox_output_filename) | ||||
|       .appendField(new Blockly.FieldTextInput("Data.txt"), "Filename"); | ||||
|       .appendField( | ||||
|         new Blockly.FieldTextInput("Data", checkFileName), | ||||
|         "Filename" | ||||
|       ) | ||||
|       .appendField(".") | ||||
|       .appendField( | ||||
|         new Blockly.FieldDropdown([ | ||||
|           ["txt", "txt"], | ||||
|           ["csv", "csv"], | ||||
|         ]), | ||||
|         "extension" | ||||
|       ); | ||||
|     this.setPreviousStatement(true, null); | ||||
|     this.setNextStatement(true, null); | ||||
|     this.setColour(getColour().sensebox); | ||||
|     this.setTooltip(Blockly.Msg.senseBox_sd_create_file_tooltip); | ||||
|     this.setHelpUrl("https://docs.sensebox.de/hardware/bee-sd/"); | ||||
|     this.setHelpUrl(Blockly.Msg.sensebox_sd_helpurl); | ||||
|   }, | ||||
| }; | ||||
| 
 | ||||
| @ -44,7 +75,7 @@ Blockly.Blocks["sensebox_sd_write_file"] = { | ||||
|     this.setNextStatement(true, null); | ||||
|     this.setColour(getColour().sensebox); | ||||
|     this.setTooltip(Blockly.Msg.senseBox_sd_write_file_tooltip); | ||||
|     this.setHelpUrl("https://docs.sensebox.de/hardware/bee-sd/"); | ||||
|     this.setHelpUrl(Blockly.Msg.sensebox_sd_helpurl); | ||||
|   }, | ||||
|   /** | ||||
|    * Called whenever anything on the workspace changes. | ||||
| @ -74,12 +105,12 @@ Blockly.Blocks["sensebox_sd_write_file"] = { | ||||
| 
 | ||||
| Blockly.Blocks["sensebox_sd_osem"] = { | ||||
|   init: function () { | ||||
|     this.setTooltip(Blockly.Msg.senseBox_osem_connection_tip); | ||||
|     this.setHelpUrl(""); | ||||
|     this.setTooltip(Blockly.Msg.sensebox_sd_osem_tip); | ||||
|     this.setHelpUrl(Blockly.Msg.sensebox_sd_helpurl); | ||||
|     this.setColour(getColour().sensebox); | ||||
|     this.appendDummyInput() | ||||
|       .setAlign(Blockly.ALIGN_LEFT) | ||||
|       .appendField("Create CSV for openSenseMap"); | ||||
|       .appendField(Blockly.Msg.sensebox_sd_osem); | ||||
|     this.appendDummyInput() | ||||
|       .setAlign(Blockly.ALIGN_LEFT) | ||||
|       .appendField(Blockly.Msg.senseBox_osem_exposure) | ||||
| @ -94,7 +125,7 @@ Blockly.Blocks["sensebox_sd_osem"] = { | ||||
|       Blockly.Msg.senseBox_gps_timeStamp | ||||
|     ); | ||||
|     this.appendStatementInput("DO") | ||||
|       .appendField(Blockly.Msg.senseBox_sensor) | ||||
|       .appendField(Blockly.Msg.sensebox_sd_measurement) | ||||
|       .setCheck(null); | ||||
|     this.setPreviousStatement(true, null); | ||||
|     this.setNextStatement(true, null); | ||||
| @ -142,13 +173,13 @@ Blockly.Blocks["sensebox_sd_osem"] = { | ||||
| }; | ||||
| Blockly.Blocks["sensebox_sd_save_for_osem"] = { | ||||
|   init: function () { | ||||
|     this.setTooltip(Blockly.Msg.senseBox_send_to_osem_tip); | ||||
|     this.setHelpUrl(""); | ||||
|     this.setTooltip(Blockly.Msg.sensebox_sd_save_for_osem_tip); | ||||
|     this.setHelpUrl(Blockly.Msg.sensebox_sd_helpurl); | ||||
|     this.setColour(getColour().sensebox); | ||||
|     this.appendDummyInput().appendField(Blockly.Msg.sensebox_sd_save_for_osem); | ||||
|     this.appendValueInput("Value") | ||||
|       .setAlign(Blockly.ALIGN_LEFT) | ||||
|       .appendField("Phänomen") | ||||
|       .appendField(Blockly.Msg.sensebox_sd_save_for_osem_id) | ||||
|       .appendField(new Blockly.FieldTextInput("sensorID"), "SensorID"); | ||||
|     this.setPreviousStatement(true, null); | ||||
|     this.setNextStatement(true, null); | ||||
|  | ||||
| @ -10,30 +10,27 @@ import Blockly from "blockly"; | ||||
| 
 | ||||
| Blockly.Arduino.sensebox_sd_create_file = function (block) { | ||||
|   var filename = this.getFieldValue("Filename"); | ||||
|   var res = filename.slice(0, 4); | ||||
|   var extension = this.getFieldValue("extension"); | ||||
|   var newFileName = filename.concat(".", extension); | ||||
|   Blockly.Arduino.libraries_["library_spi"] = "#include <SPI.h>"; | ||||
|   Blockly.Arduino.libraries_["library_sd"] = "#include <SD.h>"; | ||||
|   Blockly.Arduino.definitions_["define_" + res] = "File dataFile" + res + ";"; | ||||
|   Blockly.Arduino.setupCode_["sensebox_sd"] = "SD.begin(28);"; | ||||
|   Blockly.Arduino.setupCode_["sensebox_sd" + filename] = | ||||
|     "dataFile" + | ||||
|     res + | ||||
|     ' = SD.open("' + | ||||
|     filename + | ||||
|     '", FILE_WRITE);\ndataFile' + | ||||
|     res + | ||||
|     ".close();\n"; | ||||
|   Blockly.Arduino.definitions_["define_" + filename] = `File ${filename};`; | ||||
|   Blockly.Arduino.setupCode_["sensebox_sd"] = "SD.begin(28);\n"; | ||||
|   Blockly.Arduino.setupCode_[ | ||||
|     "sensebox_sd" + filename | ||||
|   ] = `${filename} = SD.open("${newFileName}", FILE_WRITE);\n${filename}.close();\n`; | ||||
|   var code = ""; | ||||
|   return code; | ||||
| }; | ||||
| 
 | ||||
| Blockly.Arduino.sensebox_sd_open_file = function (block) { | ||||
|   var filename = this.getFieldValue("Filename"); | ||||
|   var res = filename.slice(0, 4); | ||||
|   var extension = this.getFieldValue("extension"); | ||||
|   var newFileName = filename.concat(".", extension); | ||||
|   var branch = Blockly.Arduino.statementToCode(block, "SD"); | ||||
|   var code = "dataFile" + res + ' = SD.open("' + filename + '", FILE_WRITE);\n'; | ||||
|   var code = `${filename} = SD.open("${newFileName}", FILE_WRITE);\n`; | ||||
|   code += branch; | ||||
|   code += "dataFile" + res + ".close();\n"; | ||||
|   code += `${filename}.close();\n`; | ||||
|   return code; | ||||
| }; | ||||
| 
 | ||||
| @ -41,8 +38,7 @@ Blockly.Arduino.sensebox_sd_write_file = function (block) { | ||||
|   if (this.parentBlock_ != null) { | ||||
|     var filename = this.getSurroundParent().getFieldValue("Filename"); | ||||
|   } | ||||
|   var res = filename.slice(0, 4); | ||||
|   var text = | ||||
|   var branch = | ||||
|     Blockly.Arduino.valueToCode(this, "DATA", Blockly.Arduino.ORDER_ATOMIC) || | ||||
|     '"Keine Eingabe"'; | ||||
|   var linebreak = this.getFieldValue("linebreak"); | ||||
| @ -52,10 +48,10 @@ Blockly.Arduino.sensebox_sd_write_file = function (block) { | ||||
|     linebreak = ""; | ||||
|   } | ||||
|   var code = ""; | ||||
|   if (text === "gps.getLongitude()" || text === "gps.getLatitude()") { | ||||
|     code = "dataFile" + res + ".print" + linebreak + "(" + text + ",5);\n"; | ||||
|   if (branch === "gps.getLongitude()" || branch === "gps.getLatitude()") { | ||||
|     code = `${filename}.print${linebreak}(${branch},5);\n`; | ||||
|   } else { | ||||
|     code = "dataFile" + res + ".print" + linebreak + "(" + text + ");\n"; | ||||
|     code = `${filename}.print${linebreak}(${branch});\n`; | ||||
|   } | ||||
|   return code; | ||||
| }; | ||||
| @ -64,7 +60,7 @@ Blockly.Arduino.sensebox_sd_osem = function () { | ||||
|   if (this.parentBlock_ != null) { | ||||
|     var filename = this.getSurroundParent().getFieldValue("Filename"); | ||||
|   } | ||||
|   var res = filename.slice(0, 4); | ||||
| 
 | ||||
|   var type = this.getFieldValue("type"); | ||||
|   var blocks = this.getDescendants(); | ||||
|   var branch = Blockly.Arduino.statementToCode(this, "DO"); | ||||
| @ -108,7 +104,7 @@ void writeMeasurementsToSdCard(char* timeStamp) { | ||||
|     for (uint8_t i = 0; i < num_measurements; i++) { | ||||
| sprintf_P(buffer, PSTR("%s,%9.2f,%s"), measurements[i].sensorId, measurements[i].value, timeStamp);          | ||||
|       // transmit buffer to client
 | ||||
|       dataFile${res}.println(buffer); | ||||
|       ${filename}.println(buffer); | ||||
|     } | ||||
|     // reset num_measurements
 | ||||
|     num_measurements = 0; | ||||
| @ -177,7 +173,7 @@ void writeMeasurementsToSdCard(char* timeStamp, uint32_t latitudes, uint32_t lon | ||||
|             dtostrf(latitude, 1, 7, lat); | ||||
|             sprintf_P(buffer, PSTR("%s,%9.2f,%s,%02s,%02s"),  measurements[i].sensorId, measurements[i].value, timeStamp, lng, lat); | ||||
|             // transmit buffer to client
 | ||||
|             dataFile${res}.print(buffer); | ||||
|             ${filename}.print(buffer); | ||||
|             } | ||||
|             // reset num_measurements
 | ||||
|             num_measurements = 0; | ||||
|  | ||||
| @ -5,7 +5,7 @@ export const RTC = { | ||||
|   sensebox_rtc_set: "Setze Uhrzeit/Datum der RTC", | ||||
|   sensebox_rtc_set_tooltip: | ||||
|     "Stellt die Uhrzeit der RTC ein. Beachte, dass du diesen Block im Setup ausführst.", | ||||
|   sensebox_rtc_get_timestamp: "Zeitstempel", | ||||
|   sensebox_rtc_get_timestamp: "Zeitstempel (RFC 3339)", | ||||
|   sensebox_rtc_get_timestamp_tooltip: | ||||
|     "Gibt dir einen in ISO 8601 formatierten Zeitstempel zurück. Bsp: 2021-12-24T18:21Z", | ||||
|   sensebox_rtc_get: "Wert: ", | ||||
|  | ||||
| @ -3,6 +3,7 @@ export const SD = { | ||||
|    * SD-Block | ||||
|    */ | ||||
|   senseBox_sd_create_file: "Erstelle Datei auf SD-Karte", | ||||
|   sensebox_sd_helpurl: "https://docs.sensebox.de/hardware/bee-sd/", | ||||
|   senseBox_sd_write_file: "Schreibe Daten auf SD-Karte", | ||||
|   senseBox_sd_open_file: "Öffne eine Datei auf der SD-Karte", | ||||
|   senseBox_sd_create_file_tooltip: | ||||
| @ -13,6 +14,12 @@ export const SD = { | ||||
|     "Öffne die Datei auf der SD-Karte, um Dateien zu speichern. Am Ende der Schleife wird die Datei automatisch wieder geschlossen.", | ||||
|   sensebox_sd_filename: "Daten", | ||||
|   senseBox_sd_decimals: "Dezimalen", | ||||
|   sensebox_sd_osem: "Erstelle CSV für openSenseMap", | ||||
|   sensebox_sd_save_for_osem: "Speichere als CSV für openSenseMap", | ||||
|   sensebox_sd_osem: "Erstelle CSV-Datei für openSenseMap", | ||||
|   sensebox_sd_osem_tip: | ||||
|     "Erstellt eine CSV-Datei, die später auf die openSenseMap hochgeladen werden kann. ", | ||||
|   sensebox_sd_save_for_osem: "Speichere Messwert", | ||||
|   sensebox_sd_save_for_osem_tip: | ||||
|     "Füge eine Messung mit Sensor ID zur CSV-Datei hinzu", | ||||
|   sensebox_sd_save_for_osem_id: "Sensor ID:", | ||||
|   sensebox_sd_measurement: "Messwerte", | ||||
| }; | ||||
|  | ||||
| @ -1,212 +1,265 @@ | ||||
| export const TRANSLATIONS = { | ||||
|   AUTH: "Bitte autorisiere diese App zum Aktivieren der Speicherung deiner Arbeit und zum Teilen.", | ||||
|   CHANGE_VALUE_TITLE: "Wert ändern:", | ||||
|   CHAT: "Chatte mit unserem Mitarbeiter durch Eingeben von Text in diesen Kasten!", | ||||
|   CLEAN_UP: "Blöcke aufräumen", | ||||
|   COLLAPSE_ALL: "Alle Blöcke zusammenfalten", | ||||
|   COLLAPSE_BLOCK: "Block zusammenfalten", | ||||
|   DELETE_ALL_BLOCKS: "Alle %1 Bausteine löschen?", | ||||
|   DELETE_BLOCK: "Block löschen", | ||||
|   DELETE_X_BLOCKS: "Block %1 löschen", | ||||
|   DISABLE_BLOCK: "Block deaktivieren", | ||||
|   DUPLICATE_BLOCK: "Kopieren", | ||||
|   ENABLE_BLOCK: "Block aktivieren", | ||||
|   EXPAND_ALL: "Alle Blöcke entfalten", | ||||
|   EXPAND_BLOCK: "Block entfalten", | ||||
|   EXTERNAL_INPUTS: "externe Eingänge", | ||||
|   HELP: "Hilfe", | ||||
|   INLINE_INPUTS: "interne Eingänge", | ||||
|   LISTS_CREATE_EMPTY_HELPURL: | ||||
|     "https://github.com/google/blockly/wiki/Lists#create-empty-list", | ||||
|   LISTS_CREATE_EMPTY_TITLE: "Erzeuge eine leere Liste", | ||||
|   LISTS_CREATE_EMPTY_TOOLTIP: "Erzeugt eine leere Liste ohne Inhalt.", | ||||
|   LISTS_CREATE_WITH_CONTAINER_TITLE_ADD: "Liste", | ||||
|   LISTS_CREATE_WITH_CONTAINER_TOOLTIP: | ||||
|     "Hinzufügen, entfernen und sortieren von Elementen.", | ||||
|   LISTS_CREATE_WITH_HELPURL: | ||||
|     "https://github.com/google/blockly/wiki/Lists#create-list-with", | ||||
|   LISTS_CREATE_WITH_INPUT_WITH: "Erzeuge Liste mit", | ||||
|   LISTS_CREATE_WITH_ITEM_TOOLTIP: "Ein Element zur Liste hinzufügen.", | ||||
|   LISTS_CREATE_WITH_TOOLTIP: "Erzeugt eine List mit konfigurierten Elementen.", | ||||
|   LISTS_GET_INDEX_FIRST: "erstes", | ||||
|   LISTS_GET_INDEX_FROM_END: "#tes von hinten", | ||||
|   LISTS_GET_INDEX_FROM_START: "#tes", | ||||
|   LISTS_GET_INDEX_GET: "nimm", | ||||
|   LISTS_GET_INDEX_GET_REMOVE: "nimm und entferne", | ||||
|   LISTS_GET_INDEX_LAST: "letztes", | ||||
|   LISTS_GET_INDEX_RANDOM: "zufälliges", | ||||
|   LISTS_GET_INDEX_REMOVE: "entferne", | ||||
|   LISTS_GET_INDEX_TAIL: "", | ||||
|   LISTS_GET_INDEX_TOOLTIP_GET_FIRST: | ||||
|     "Extrahiere das erste Element aus der Liste.", | ||||
|   LISTS_GET_INDEX_TOOLTIP_GET_FROM_END: | ||||
|     "Extrahiere das #1te Element aus Ende der Liste.", | ||||
|   LISTS_GET_INDEX_TOOLTIP_GET_FROM_START: | ||||
|     "Extrahiere das #1te Element aus der Liste.", | ||||
|   LISTS_GET_INDEX_TOOLTIP_GET_LAST: | ||||
|     "Extrahiere das letzte Element aus der Liste.", | ||||
|   LISTS_GET_INDEX_TOOLTIP_GET_RANDOM: | ||||
|     "Extrahiere ein zufälliges Element aus der Liste.", | ||||
|   LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST: | ||||
|     "Extrahiere und entfernt das erste Element aus der Liste.", | ||||
|   LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM_END: | ||||
|     "Extrahiere und entfernt das #1te Element aus Ende der Liste.", | ||||
|   LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM_START: | ||||
|     "Extrahiere und entfernt das #1te Element aus der Liste.", | ||||
|   LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST: | ||||
|     "Extrahiere und entfernt das letzte Element aus der Liste.", | ||||
|   LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM: | ||||
|     "Extrahiere und entfernt ein zufälliges Element aus der Liste.", | ||||
|   LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST: | ||||
|     "Entfernt das erste Element von der Liste.", | ||||
|   LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM_END: | ||||
|     "Entfernt das #1te Element von Ende der Liste.", | ||||
|   LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM_START: | ||||
|     "Entfernt das #1te Element von der Liste.", | ||||
|   LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST: | ||||
|     "Entfernt das letzte Element von der Liste.", | ||||
|   LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM: | ||||
|     "Entfernt ein zufälliges Element von der Liste.", | ||||
|   LISTS_GET_SUBLIST_END_FROM_END: "bis zu # von hinten", | ||||
|   LISTS_GET_SUBLIST_END_FROM_START: "bis zu #", | ||||
|   LISTS_GET_SUBLIST_END_LAST: "bis zum Ende", | ||||
|   LISTS_GET_SUBLIST_HELPURL: | ||||
|     "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic:%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm", | ||||
|   LISTS_GET_SUBLIST_START_FIRST: "erhalte Unterliste vom Anfang", | ||||
|   LISTS_GET_SUBLIST_START_FROM_END: "erhalte Unterliste von # von hinten", | ||||
|   LISTS_GET_SUBLIST_START_FROM_START: "erhalte Unterliste von #", | ||||
|   LISTS_GET_SUBLIST_TAIL: "", | ||||
|   LISTS_GET_SUBLIST_TOOLTIP: | ||||
|     "Erstellt eine Kopie mit dem angegebenen Abschnitt der Liste.", | ||||
|   LISTS_INDEX_OF_FIRST: "suche erstes Auftreten von", | ||||
|   LISTS_INDEX_OF_HELPURL: | ||||
|     "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic:%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm", | ||||
|   LISTS_INDEX_OF_LAST: "suche letztes Auftreten von", | ||||
|   LISTS_INDEX_OF_TOOLTIP: | ||||
|     "Sucht die Position (index) eines Elementes in der Liste. Gibt 0 zurück, falls kein Element gefunden wurde.", | ||||
|   LISTS_INLIST: "von der Liste", | ||||
|   LISTS_ISEMPTY_HELPURL: | ||||
|     "https://github.com/google/blockly/wiki/Lists#is-empty", // untranslated
 | ||||
|   LISTS_ISEMPTY_TITLE: "%1 ist leer?", | ||||
|   LISTS_ISEMPTY_TOOLTIP: "Ist wahr (true), wenn die Liste leer ist.", | ||||
|   LISTS_LENGTH_HELPURL: | ||||
|     "https://github.com/google/blockly/wiki/Lists#length-of", // untranslated
 | ||||
|   LISTS_LENGTH_TITLE: "Länge von %1", | ||||
|   LISTS_LENGTH_TOOLTIP: "Die Anzahl von Elementen in der Liste.", | ||||
|   LISTS_REPEAT_HELPURL: | ||||
|     "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic:%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm", | ||||
|   LISTS_REPEAT_TITLE: "Erzeuge Liste mit Element %1 wiederhole es %2 mal", | ||||
|   LISTS_REPEAT_TOOLTIP: | ||||
|     "Erzeugt eine Liste mit einer variablen Anzahl von Elementen", | ||||
|   LISTS_SET_INDEX_HELPURL: | ||||
|     "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic:%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm", | ||||
|   LISTS_SET_INDEX_INPUT_TO: "ein", | ||||
|   LISTS_SET_INDEX_INSERT: "füge", | ||||
|   LISTS_SET_INDEX_SET: "setze", | ||||
|   LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST: | ||||
|     "Fügt das Element an den Anfang der Liste an.", | ||||
|   LISTS_SET_INDEX_TOOLTIP_INSERT_FROM_END: | ||||
|     "Fügt das Element an der angegebenen Position in der Liste ein.  #1 ist das letzte Element.", | ||||
|   LISTS_SET_INDEX_TOOLTIP_INSERT_FROM_START: | ||||
|     "Fügt das Element an der angegebenen Position in der Liste ein.  #1 ist die erste Element.", | ||||
|   LISTS_SET_INDEX_TOOLTIP_INSERT_LAST: | ||||
|     "Fügt das Element ans Ende der Liste an.", | ||||
|   LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM: | ||||
|     "Fügt das Element zufällig in die Liste ein.", | ||||
|   LISTS_SET_INDEX_TOOLTIP_SET_FIRST: "Setzt das erste Element in der Liste.", | ||||
|   LISTS_SET_INDEX_TOOLTIP_SET_FROM_END: | ||||
|     "Setzt das Element an der angegebenen Position in der Liste.  #1 ist das letzte Element.", | ||||
|   LISTS_SET_INDEX_TOOLTIP_SET_FROM_START: | ||||
|     "Setzte das Element an der angegebenen Position in der Liste.  #1 ist das erste Element.", | ||||
|   LISTS_SET_INDEX_TOOLTIP_SET_LAST: "Setzt das letzte Element in der Liste.", | ||||
|   LISTS_SET_INDEX_TOOLTIP_SET_RANDOM: | ||||
|     "Setzt ein zufälliges Element in der Liste.", | ||||
|   LISTS_SORT_HELPURL: | ||||
|     "https://github.com/google/blockly/wiki/Lists#sorting-a-list", | ||||
|   LISTS_SORT_ORDER_ASCENDING: "aufsteigend", | ||||
|   LISTS_SORT_ORDER_DESCENDING: "absteigend", | ||||
|   LISTS_SORT_TITLE: "%1 %2 %3 sortieren", | ||||
|   LISTS_SORT_TOOLTIP: "Eine Kopie einer Liste sortieren.", | ||||
|   LISTS_SORT_TYPE_IGNORECASE: "alphabetisch, Schreibung ignorieren", | ||||
|   LISTS_SORT_TYPE_NUMERIC: "numerisch", | ||||
|   LISTS_SORT_TYPE_TEXT: "alphabetisch", | ||||
|   LISTS_SPLIT_HELPURL: | ||||
|     "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists", | ||||
|   LISTS_SPLIT_LIST_FROM_TEXT: "Liste aus Text erstellen", | ||||
|   LISTS_SPLIT_TEXT_FROM_LIST: "Text aus Liste erstellen", | ||||
|   LISTS_SPLIT_TOOLTIP_JOIN: | ||||
|     "Liste mit Texten in einen Text vereinen, getrennt durch ein Trennzeichen.", | ||||
|   LISTS_SPLIT_TOOLTIP_SPLIT: | ||||
|     "Text in eine Liste mit Texten aufteilen, unterbrochen bei jedem Trennzeichen.", | ||||
|   LISTS_SPLIT_WITH_DELIMITER: "mit Trennzeichen", | ||||
|   LOGIC_BOOLEAN_FALSE: "falsch", | ||||
| 
 | ||||
|     AUTH: "Bitte autorisiere diese App zum Aktivieren der Speicherung deiner Arbeit und zum Teilen.", | ||||
|     CHANGE_VALUE_TITLE: "Wert ändern:", | ||||
|     CHAT: "Chatte mit unserem Mitarbeiter durch Eingeben von Text in diesen Kasten!", | ||||
|     CLEAN_UP: "Blöcke aufräumen", | ||||
|     COLLAPSE_ALL: "Alle Blöcke zusammenfalten", | ||||
|     COLLAPSE_BLOCK: "Block zusammenfalten", | ||||
|     DELETE_ALL_BLOCKS: "Alle %1 Bausteine löschen?", | ||||
|     DELETE_BLOCK: "Block löschen", | ||||
|     DELETE_X_BLOCKS: "Block %1 löschen", | ||||
|     DISABLE_BLOCK: "Block deaktivieren", | ||||
|     DUPLICATE_BLOCK: "Kopieren", | ||||
|     ENABLE_BLOCK: "Block aktivieren", | ||||
|     EXPAND_ALL: "Alle Blöcke entfalten", | ||||
|     EXPAND_BLOCK: "Block entfalten", | ||||
|     EXTERNAL_INPUTS: "externe Eingänge", | ||||
|     HELP: "Hilfe", | ||||
|     INLINE_INPUTS: "interne Eingänge", | ||||
|     LISTS_CREATE_EMPTY_HELPURL: "https://github.com/google/blockly/wiki/Lists#create-empty-list", | ||||
|     LISTS_CREATE_EMPTY_TITLE: "Erzeuge eine leere Liste", | ||||
|     LISTS_CREATE_EMPTY_TOOLTIP: "Erzeugt eine leere Liste ohne Inhalt.", | ||||
|     LISTS_CREATE_WITH_CONTAINER_TITLE_ADD: "Liste", | ||||
|     LISTS_CREATE_WITH_CONTAINER_TOOLTIP: "Hinzufügen, entfernen und sortieren von Elementen.", | ||||
|     LISTS_CREATE_WITH_HELPURL: "https://github.com/google/blockly/wiki/Lists#create-list-with", | ||||
|     LISTS_CREATE_WITH_INPUT_WITH: "Erzeuge Liste mit", | ||||
|     LISTS_CREATE_WITH_ITEM_TOOLTIP: "Ein Element zur Liste hinzufügen.", | ||||
|     LISTS_CREATE_WITH_TOOLTIP: "Erzeugt eine List mit konfigurierten Elementen.", | ||||
|     LISTS_GET_INDEX_FIRST: "erstes", | ||||
|     LISTS_GET_INDEX_FROM_END: "#tes von hinten", | ||||
|     LISTS_GET_INDEX_FROM_START: "#tes", | ||||
|     LISTS_GET_INDEX_GET: "nimm", | ||||
|     LISTS_GET_INDEX_GET_REMOVE: "nimm und entferne", | ||||
|     LISTS_GET_INDEX_LAST: "letztes", | ||||
|     LISTS_GET_INDEX_RANDOM: "zufälliges", | ||||
|     LISTS_GET_INDEX_REMOVE: "entferne", | ||||
|     LISTS_GET_INDEX_TAIL: "", | ||||
|     LISTS_GET_INDEX_TOOLTIP_GET_FIRST: "Extrahiere das erste Element aus der Liste.", | ||||
|     LISTS_GET_INDEX_TOOLTIP_GET_FROM_END: "Extrahiere das #1te Element aus Ende der Liste.", | ||||
|     LISTS_GET_INDEX_TOOLTIP_GET_FROM_START: "Extrahiere das #1te Element aus der Liste.", | ||||
|     LISTS_GET_INDEX_TOOLTIP_GET_LAST: "Extrahiere das letzte Element aus der Liste.", | ||||
|     LISTS_GET_INDEX_TOOLTIP_GET_RANDOM: "Extrahiere ein zufälliges Element aus der Liste.", | ||||
|     LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FIRST: "Extrahiere und entfernt das erste Element aus der Liste.", | ||||
|     LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM_END: "Extrahiere und entfernt das #1te Element aus Ende der Liste.", | ||||
|     LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_FROM_START: "Extrahiere und entfernt das #1te Element aus der Liste.", | ||||
|     LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_LAST: "Extrahiere und entfernt das letzte Element aus der Liste.", | ||||
|     LISTS_GET_INDEX_TOOLTIP_GET_REMOVE_RANDOM: "Extrahiere und entfernt ein zufälliges Element aus der Liste.", | ||||
|     LISTS_GET_INDEX_TOOLTIP_REMOVE_FIRST: "Entfernt das erste Element von der Liste.", | ||||
|     LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM_END: "Entfernt das #1te Element von Ende der Liste.", | ||||
|     LISTS_GET_INDEX_TOOLTIP_REMOVE_FROM_START: "Entfernt das #1te Element von der Liste.", | ||||
|     LISTS_GET_INDEX_TOOLTIP_REMOVE_LAST: "Entfernt das letzte Element von der Liste.", | ||||
|     LISTS_GET_INDEX_TOOLTIP_REMOVE_RANDOM: "Entfernt ein zufälliges Element von der Liste.", | ||||
|     LISTS_GET_SUBLIST_END_FROM_END: "bis zu # von hinten", | ||||
|     LISTS_GET_SUBLIST_END_FROM_START: "bis zu #", | ||||
|     LISTS_GET_SUBLIST_END_LAST: "bis zum Ende", | ||||
|     LISTS_GET_SUBLIST_HELPURL: "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic:%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm", | ||||
|     LISTS_GET_SUBLIST_START_FIRST: "erhalte Unterliste vom Anfang", | ||||
|     LISTS_GET_SUBLIST_START_FROM_END: "erhalte Unterliste von # von hinten", | ||||
|     LISTS_GET_SUBLIST_START_FROM_START: "erhalte Unterliste von #", | ||||
|     LISTS_GET_SUBLIST_TAIL: "", | ||||
|     LISTS_GET_SUBLIST_TOOLTIP: "Erstellt eine Kopie mit dem angegebenen Abschnitt der Liste.", | ||||
|     LISTS_INDEX_OF_FIRST: "suche erstes Auftreten von", | ||||
|     LISTS_INDEX_OF_HELPURL: "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic:%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm", | ||||
|     LISTS_INDEX_OF_LAST: "suche letztes Auftreten von", | ||||
|     LISTS_INDEX_OF_TOOLTIP: "Sucht die Position (index) eines Elementes in der Liste. Gibt 0 zurück, falls kein Element gefunden wurde.", | ||||
|     LISTS_INLIST: "von der Liste", | ||||
|     LISTS_ISEMPTY_HELPURL: "https://github.com/google/blockly/wiki/Lists#is-empty",  // untranslated
 | ||||
|     LISTS_ISEMPTY_TITLE: "%1 ist leer?", | ||||
|     LISTS_ISEMPTY_TOOLTIP: "Ist wahr (true), wenn die Liste leer ist.", | ||||
|     LISTS_LENGTH_HELPURL: "https://github.com/google/blockly/wiki/Lists#length-of",  // untranslated
 | ||||
|     LISTS_LENGTH_TITLE: "Länge von %1", | ||||
|     LISTS_LENGTH_TOOLTIP: "Die Anzahl von Elementen in der Liste.", | ||||
|     LISTS_REPEAT_HELPURL: "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic:%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm", | ||||
|     LISTS_REPEAT_TITLE: "Erzeuge Liste mit Element %1 wiederhole es %2 mal", | ||||
|     LISTS_REPEAT_TOOLTIP: "Erzeugt eine Liste mit einer variablen Anzahl von Elementen", | ||||
|     LISTS_SET_INDEX_HELPURL: "http://publib.boulder.ibm.com/infocenter/lnxpcomp/v8v101/index.jsp?topic:%2Fcom.ibm.xlcpp8l.doc%2Flanguage%2Fref%2Farsubex.htm", | ||||
|     LISTS_SET_INDEX_INPUT_TO: "ein", | ||||
|     LISTS_SET_INDEX_INSERT: "füge", | ||||
|     LISTS_SET_INDEX_SET: "setze", | ||||
|     LISTS_SET_INDEX_TOOLTIP_INSERT_FIRST: "Fügt das Element an den Anfang der Liste an.", | ||||
|     LISTS_SET_INDEX_TOOLTIP_INSERT_FROM_END: "Fügt das Element an der angegebenen Position in der Liste ein.  #1 ist das letzte Element.", | ||||
|     LISTS_SET_INDEX_TOOLTIP_INSERT_FROM_START: "Fügt das Element an der angegebenen Position in der Liste ein.  #1 ist die erste Element.", | ||||
|     LISTS_SET_INDEX_TOOLTIP_INSERT_LAST: "Fügt das Element ans Ende der Liste an.", | ||||
|     LISTS_SET_INDEX_TOOLTIP_INSERT_RANDOM: "Fügt das Element zufällig in die Liste ein.", | ||||
|     LISTS_SET_INDEX_TOOLTIP_SET_FIRST: "Setzt das erste Element in der Liste.", | ||||
|     LISTS_SET_INDEX_TOOLTIP_SET_FROM_END: "Setzt das Element an der angegebenen Position in der Liste.  #1 ist das letzte Element.", | ||||
|     LISTS_SET_INDEX_TOOLTIP_SET_FROM_START: "Setzte das Element an der angegebenen Position in der Liste.  #1 ist das erste Element.", | ||||
|     LISTS_SET_INDEX_TOOLTIP_SET_LAST: "Setzt das letzte Element in der Liste.", | ||||
|     LISTS_SET_INDEX_TOOLTIP_SET_RANDOM: "Setzt ein zufälliges Element in der Liste.", | ||||
|     LISTS_SORT_HELPURL: "https://github.com/google/blockly/wiki/Lists#sorting-a-list", | ||||
|     LISTS_SORT_ORDER_ASCENDING: "aufsteigend", | ||||
|     LISTS_SORT_ORDER_DESCENDING: "absteigend", | ||||
|     LISTS_SORT_TITLE: "%1 %2 %3 sortieren", | ||||
|     LISTS_SORT_TOOLTIP: "Eine Kopie einer Liste sortieren.", | ||||
|     LISTS_SORT_TYPE_IGNORECASE: "alphabetisch, Schreibung ignorieren", | ||||
|     LISTS_SORT_TYPE_NUMERIC: "numerisch", | ||||
|     LISTS_SORT_TYPE_TEXT: "alphabetisch", | ||||
|     LISTS_SPLIT_HELPURL: "https://github.com/google/blockly/wiki/Lists#splitting-strings-and-joining-lists", | ||||
|     LISTS_SPLIT_LIST_FROM_TEXT: "Liste aus Text erstellen", | ||||
|     LISTS_SPLIT_TEXT_FROM_LIST: "Text aus Liste erstellen", | ||||
|     LISTS_SPLIT_TOOLTIP_JOIN: "Liste mit Texten in einen Text vereinen, getrennt durch ein Trennzeichen.", | ||||
|     LISTS_SPLIT_TOOLTIP_SPLIT: "Text in eine Liste mit Texten aufteilen, unterbrochen bei jedem Trennzeichen.", | ||||
|     LISTS_SPLIT_WITH_DELIMITER: "mit Trennzeichen", | ||||
|     LOGIC_BOOLEAN_FALSE: "falsch", | ||||
|   ME: "Ich", | ||||
|   NEW_VARIABLE: "Neue Variable...", | ||||
|   NEW_VARIABLE_TITLE: "Name der neuen Variable:", | ||||
|   ORDINAL_NUMBER_SUFFIX: "", | ||||
|   PROCEDURES_ALLOW_STATEMENTS: "Aussagen erlauben", | ||||
|   PROCEDURES_CALLNORETURN_HELPURL: | ||||
|     "https://de.wikipedia.org/wiki/Prozedur_%28Programmierung%29", | ||||
|   PROCEDURES_CALLNORETURN_TOOLTIP: | ||||
|     "Rufe einen Funktionsblock ohne Rückgabewert auf.", | ||||
|   PROCEDURES_CALLRETURN_HELPURL: | ||||
|     "https://de.wikipedia.org/wiki/Prozedur_%28Programmierung%29", | ||||
|   PROCEDURES_CALLRETURN_TOOLTIP: | ||||
|     "Rufe einen Funktionsblock mit Rückgabewert auf.", | ||||
|   PROCEDURES_CALL: "Rufe", | ||||
|   PROCEDURES_CALL_END: "auf", | ||||
|   PROCEDURES_DEFNORETURN: "Erstelle Funktion", | ||||
|   PROCEDURES_BEFORE_PARAMS: "mit Eingabeparameter:", | ||||
|   PROCEDURES_DEFRETURN_RETURN_TYPE: "Rückgabetype", | ||||
|   PROCEDURES_CALL_BEFORE_PARAMS: "mit:", | ||||
|   PROCEDURES_CREATE_DO: 'Erzeuge "Aufruf %1"', | ||||
|   PROCEDURES_DEFNORETURN_COMMENT: "Beschreibe diese Funktion …", | ||||
|   PROCEDURES_DEFNORETURN_DO: "", | ||||
|   PROCEDURES_DEFNORETURN_HELPURL: | ||||
|     "https://de.wikipedia.org/wiki/Prozedur_%28Programmierung%29", | ||||
|   PROCEDURES_DEFNORETURN_PROCEDURE: "Funktionsblock", | ||||
|   PROCEDURES_DEFNORETURN_TITLE: "zu", | ||||
|   PROCEDURES_DEFNORETURN_TOOLTIP: "Ein Funktionsblock ohne Rückgabewert.", | ||||
|   PROCEDURES_DEFRETURN_HELPURL: | ||||
|     "https://de.wikipedia.org/wiki/Prozedur_%28Programmierung%29", | ||||
|   PROCEDURES_DEFRETURN_RETURN: "gebe zurück", | ||||
|   PROCEDURES_DEFRETURN_TOOLTIP: "Ein Funktionsblock mit Rückgabewert.", | ||||
|   PROCEDURES_DEF_DUPLICATE_WARNING: | ||||
|     "Warnung: dieser Funktionsblock hat zwei gleich benannte Parameter.", | ||||
|   PROCEDURES_HIGHLIGHT_DEF: "Markiere Funktionsblock", | ||||
|   PROCEDURES_IFRETURN_HELPURL: "http://c2.com/cgi/wiki?GuardClause", | ||||
|   PROCEDURES_IFRETURN_TOOLTIP: | ||||
|     "Wenn der erste Wert wahr (true) ist, Gebe den zweiten Wert zurück.", | ||||
|   PROCEDURES_IFRETURN_WARNING: | ||||
|     "Warnung: Dieser Block darf nur innerhalb eines Funktionsblock genutzt werden.", | ||||
|   PROCEDURES_MUTATORARG_TITLE: "Variable:", | ||||
|   PROCEDURES_MUTATORARG_TOOLTIP: "Eine Eingabe zur Funktion hinzufügen.", | ||||
|   PROCEDURES_MUTATORCONTAINER_TITLE: "Parameter", | ||||
|   PROCEDURES_MUTATORCONTAINER_TOOLTIP: | ||||
|     "Die Eingaben zu dieser Funktion hinzufügen, entfernen oder neu anordnen.", | ||||
|   REDO: "Wiederholen", | ||||
|   REMOVE_COMMENT: "Kommentar entfernen", | ||||
|   RENAME_VARIABLE: "Variable umbenennen...", | ||||
|   RENAME_VARIABLE_TITLE: 'Alle "%1" Variablen umbenennen in:', | ||||
| 
 | ||||
|     ME: "Ich", | ||||
|     NEW_VARIABLE: "Neue Variable...", | ||||
|     NEW_VARIABLE_TITLE: "Name der neuen Variable:", | ||||
|     ORDINAL_NUMBER_SUFFIX: "", | ||||
|     PROCEDURES_ALLOW_STATEMENTS: "Aussagen erlauben", | ||||
|     PROCEDURES_CALLNORETURN_HELPURL: "https://de.wikipedia.org/wiki/Prozedur_%28Programmierung%29", | ||||
|     PROCEDURES_CALLNORETURN_TOOLTIP: "Rufe einen Funktionsblock ohne Rückgabewert auf.", | ||||
|     PROCEDURES_CALLRETURN_HELPURL: "https://de.wikipedia.org/wiki/Prozedur_%28Programmierung%29", | ||||
|     PROCEDURES_CALLRETURN_TOOLTIP: "Rufe einen Funktionsblock mit Rückgabewert auf.", | ||||
|     PROCEDURES_CALL: "Rufe", | ||||
|     PROCEDURES_CALL_END: "auf", | ||||
|     PROCEDURES_DEFNORETURN: "Erstelle Funktion", | ||||
|     PROCEDURES_BEFORE_PARAMS: "mit Eingabeparameter:", | ||||
|     PROCEDURES_DEFRETURN_RETURN_TYPE: "Rückgabetype", | ||||
|     PROCEDURES_CALL_BEFORE_PARAMS: "mit:", | ||||
|     PROCEDURES_CREATE_DO: "Erzeuge \"Aufruf %1\"", | ||||
|     PROCEDURES_DEFNORETURN_COMMENT: "Beschreibe diese Funktion …", | ||||
|     PROCEDURES_DEFNORETURN_DO: "", | ||||
|     PROCEDURES_DEFNORETURN_HELPURL: "https://de.wikipedia.org/wiki/Prozedur_%28Programmierung%29", | ||||
|     PROCEDURES_DEFNORETURN_PROCEDURE: "Funktionsblock", | ||||
|     PROCEDURES_DEFNORETURN_TITLE: "zu", | ||||
|     PROCEDURES_DEFNORETURN_TOOLTIP: "Ein Funktionsblock ohne Rückgabewert.", | ||||
|     PROCEDURES_DEFRETURN_HELPURL: "https://de.wikipedia.org/wiki/Prozedur_%28Programmierung%29", | ||||
|     PROCEDURES_DEFRETURN_RETURN: "gebe zurück", | ||||
|     PROCEDURES_DEFRETURN_TOOLTIP: "Ein Funktionsblock mit Rückgabewert.", | ||||
|     PROCEDURES_DEF_DUPLICATE_WARNING: "Warnung: dieser Funktionsblock hat zwei gleich benannte Parameter.", | ||||
|     PROCEDURES_HIGHLIGHT_DEF: "Markiere Funktionsblock", | ||||
|     PROCEDURES_IFRETURN_HELPURL: "http://c2.com/cgi/wiki?GuardClause", | ||||
|     PROCEDURES_IFRETURN_TOOLTIP: "Wenn der erste Wert wahr (true) ist, Gebe den zweiten Wert zurück.", | ||||
|     PROCEDURES_IFRETURN_WARNING: "Warnung: Dieser Block darf nur innerhalb eines Funktionsblock genutzt werden.", | ||||
|     PROCEDURES_MUTATORARG_TITLE: "Variable:", | ||||
|     PROCEDURES_MUTATORARG_TOOLTIP: "Eine Eingabe zur Funktion hinzufügen.", | ||||
|     PROCEDURES_MUTATORCONTAINER_TITLE: "Parameter", | ||||
|     PROCEDURES_MUTATORCONTAINER_TOOLTIP: "Die Eingaben zu dieser Funktion hinzufügen, entfernen oder neu anordnen.", | ||||
|     REDO: "Wiederholen", | ||||
|     REMOVE_COMMENT: "Kommentar entfernen", | ||||
|     RENAME_VARIABLE: "Variable umbenennen...", | ||||
|     RENAME_VARIABLE_TITLE: "Alle \"%1\" Variablen umbenennen in:", | ||||
|   TODAY: "Heute", | ||||
|   UNDO: "Rückgängig", | ||||
|   VARIABLES_DEFAULT_NAME: "Element", | ||||
|   VARIABLES_GET_CREATE_SET: 'Erzeuge "Schreibe %1"', | ||||
|   VARIABLES_GET_HELPURL: | ||||
|     "https://de.wikipedia.org/wiki/Variable_%28Programmierung%29", | ||||
|   VARIABLES_GET_TOOLTIP: "Gibt den Wert der Variable zurück.", | ||||
|   VARIABLES_SET: "Schreibe %1 %2", | ||||
|   VARIABLES_SET_CREATE_GET: 'Erzeuge "Lese %1"', | ||||
|   VARIABLES_SET_HELPURL: | ||||
|     "https://de.wikipedia.org/wiki/Variable_%28Programmierung%29", | ||||
|   VARIABLES_SET_TOOLTIP: "Setzt den Wert einer Variable.", | ||||
|   MATH_CHANGE_TITLE_ITEM: "Element", | ||||
|   PROCEDURES_DEFRETURN_TITLE: "zu", | ||||
|   CONTROLS_IF_IF_TITLE_IF: "if", | ||||
|   CONTROLS_WHILEUNTIL_INPUT_DO: "mache", | ||||
|   CONTROLS_IF_MSG_THEN: "mache", | ||||
|   CONTROLS_IF_ELSE_TITLE_ELSE: "sonst", | ||||
|   PROCEDURES_DEFRETURN_PROCEDURE: "Funktionsblock", | ||||
|   LISTS_GET_SUBLIST_INPUT_IN_LIST: "in der Liste", | ||||
|   LISTS_GET_INDEX_INPUT_IN_LIST: "in der Liste", | ||||
|   PROCEDURES_DEFRETURN_DO: "", | ||||
|   CONTROLS_IF_ELSEIF_TITLE_ELSEIF: "sonst wenn", | ||||
|   LISTS_GET_INDEX_HELPURL: | ||||
|     "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list", | ||||
|   CONTROLS_FOREACH_INPUT_DO: "mache", | ||||
|   LISTS_SET_INDEX_INPUT_IN_LIST: "in der Liste", | ||||
|   CONTROLS_FOR_INPUT_DO: "mache", | ||||
|   LISTS_CREATE_WITH_ITEM_TITLE: "item", | ||||
|   TEXT_APPEND_VARIABLE: "item", | ||||
|   TEXT_CREATE_JOIN_ITEM_TITLE_ITEM: "item", | ||||
|   LISTS_INDEX_OF_INPUT_IN_LIST: "von der Liste", | ||||
|   PROCEDURES_DEFRETURN_COMMENT: "Beschreibe diese Funktion …", | ||||
| 
 | ||||
|     TODAY: "Heute", | ||||
|     UNDO: "Rückgängig", | ||||
|     VARIABLES_DEFAULT_NAME: "Element", | ||||
|     VARIABLES_GET_CREATE_SET: "Erzeuge \"Schreibe %1\"", | ||||
|     VARIABLES_GET_HELPURL: "https://de.wikipedia.org/wiki/Variable_%28Programmierung%29", | ||||
|     VARIABLES_GET_TOOLTIP: "Gibt den Wert der Variable zurück.", | ||||
|     VARIABLES_SET: "Schreibe %1 %2", | ||||
|     VARIABLES_SET_CREATE_GET: "Erzeuge \"Lese %1\"", | ||||
|     VARIABLES_SET_HELPURL: "https://de.wikipedia.org/wiki/Variable_%28Programmierung%29", | ||||
|     VARIABLES_SET_TOOLTIP: "Setzt den Wert einer Variable.", | ||||
|     MATH_CHANGE_TITLE_ITEM: "Element", | ||||
|     PROCEDURES_DEFRETURN_TITLE: "zu", | ||||
|     CONTROLS_IF_IF_TITLE_IF: "if", | ||||
|     CONTROLS_WHILEUNTIL_INPUT_DO: "mache", | ||||
|     CONTROLS_IF_MSG_THEN: "mache", | ||||
|     CONTROLS_IF_ELSE_TITLE_ELSE: "sonst", | ||||
|     PROCEDURES_DEFRETURN_PROCEDURE: "Funktionsblock", | ||||
|     LISTS_GET_SUBLIST_INPUT_IN_LIST: "in der Liste", | ||||
|     LISTS_GET_INDEX_INPUT_IN_LIST: "in der Liste", | ||||
|     PROCEDURES_DEFRETURN_DO: "", | ||||
|     CONTROLS_IF_ELSEIF_TITLE_ELSEIF: "sonst wenn", | ||||
|     LISTS_GET_INDEX_HELPURL: "https://github.com/google/blockly/wiki/Lists#getting-items-from-a-list", | ||||
|     CONTROLS_FOREACH_INPUT_DO: "mache", | ||||
|     LISTS_SET_INDEX_INPUT_IN_LIST: "in der Liste", | ||||
|     CONTROLS_FOR_INPUT_DO: "mache", | ||||
|     LISTS_CREATE_WITH_ITEM_TITLE: "item", | ||||
|     TEXT_APPEND_VARIABLE: "item", | ||||
|     TEXT_CREATE_JOIN_ITEM_TITLE_ITEM: "item", | ||||
|     LISTS_INDEX_OF_INPUT_IN_LIST: "von der Liste", | ||||
|     PROCEDURES_DEFRETURN_COMMENT: "Beschreibe diese Funktion …", | ||||
|   /*senseBox Blockly Translations*/ | ||||
| 
 | ||||
|     /*senseBox Blockly Translations*/ | ||||
| 
 | ||||
|     senseBox_basic_blue: "Blau", | ||||
|     senseBox_basic_green: "Grün", | ||||
|     senseBox_basic_red: "Rot", | ||||
|     senseBox_basic_state: "Status", | ||||
|     senseBox_off: "Aus", | ||||
|     senseBox_on: "Ein", | ||||
|     senseBox_sensor: "Sensoren", | ||||
|     senseBox_output_filename: "Daten", | ||||
|     senseBox_output_format: "Format:", | ||||
|     senseBox_output_linebreak: "Zeilenumbruch", | ||||
|     senseBox_output_networkid: "NetzwerkID", | ||||
|     senseBox_output_password: "Passwort", | ||||
|     senseBox_output_safetosd: "Auf SD Karte speichern", | ||||
|     senseBox_output_safetosd_tip: "Speichert Messwerte auf SD Karte", | ||||
|     senseBox_output_serialprint: "Auf Kommandozeile ausgeben", | ||||
|     senseBox_serial_tip: "Gibt Messwerte oder Daten auf dem Seriellen Monitor der Arduino IDE aus. Praktisch um ohne Display zu arbeiten", | ||||
|     senseBox_output_timestamp: "Zeitstempel", | ||||
|     senseBox_led: "LED an digitalen", | ||||
|     senseBox_led_tip: "Einfache LED. Beim Anschluss sollte immer ein Vorwiderstand verwendet werden", | ||||
|     senseBox_piezo: "Piezo an digital", | ||||
|     senseBox_piezo_tip: "Piezo an digital PIN. Beim Anschluss sollte immer ein Vorwiderstand verwendet werden", | ||||
|     senseBox_foto: "Fotowiderstand", | ||||
|     senseBox_foto_tip: "Fotowiderstand", | ||||
|     senseBox_hum: "Luftfeuchtigkeit in %", | ||||
|     senseBox_hum_tip: "Luftfeuchtigkeit", | ||||
|     senseBox_ir: "Infrarot Abstandssensor", | ||||
|     senseBox_ir_tip: "Infrarot Abstandssensor", | ||||
|     senseBox_lux: "Helligkeitssensor", | ||||
|     senseBox_lux_tip: "Helligkeitssensor", | ||||
|     senseBox_poti: "Potenziometer", | ||||
|     senseBox_poti_tip: "Potenziometer", | ||||
|     senseBox_soil: "Bodenfeuchte", | ||||
|     senseBox_watertemperature: "Wassertemperatur", | ||||
| 
 | ||||
| } | ||||
|   senseBox_basic_blue: "Blau", | ||||
|   senseBox_basic_green: "Grün", | ||||
|   senseBox_basic_red: "Rot", | ||||
|   senseBox_basic_state: "Status", | ||||
|   senseBox_off: "Aus", | ||||
|   senseBox_on: "Ein", | ||||
|   senseBox_sensor: "Sensoren", | ||||
|   senseBox_output_filename: "Daten", | ||||
|   senseBox_output_format: "Format:", | ||||
|   senseBox_output_linebreak: "Zeilenumbruch", | ||||
|   senseBox_output_networkid: "NetzwerkID", | ||||
|   senseBox_output_password: "Passwort", | ||||
|   senseBox_output_safetosd: "Auf SD Karte speichern", | ||||
|   senseBox_output_safetosd_tip: "Speichert Messwerte auf SD Karte", | ||||
|   senseBox_output_serialprint: "Auf Kommandozeile ausgeben", | ||||
|   senseBox_serial_tip: | ||||
|     "Gibt Messwerte oder Daten auf dem Seriellen Monitor der Arduino IDE aus. Praktisch um ohne Display zu arbeiten", | ||||
|   senseBox_output_timestamp: "Zeitstempel (RFC 3339)", | ||||
|   senseBox_led: "LED an digitalen", | ||||
|   senseBox_led_tip: | ||||
|     "Einfache LED. Beim Anschluss sollte immer ein Vorwiderstand verwendet werden", | ||||
|   senseBox_piezo: "Piezo an digital", | ||||
|   senseBox_piezo_tip: | ||||
|     "Piezo an digital PIN. Beim Anschluss sollte immer ein Vorwiderstand verwendet werden", | ||||
|   senseBox_foto: "Fotowiderstand", | ||||
|   senseBox_foto_tip: "Fotowiderstand", | ||||
|   senseBox_hum: "Luftfeuchtigkeit in %", | ||||
|   senseBox_hum_tip: "Luftfeuchtigkeit", | ||||
|   senseBox_ir: "Infrarot Abstandssensor", | ||||
|   senseBox_ir_tip: "Infrarot Abstandssensor", | ||||
|   senseBox_lux: "Helligkeitssensor", | ||||
|   senseBox_lux_tip: "Helligkeitssensor", | ||||
|   senseBox_poti: "Potenziometer", | ||||
|   senseBox_poti_tip: "Potenziometer", | ||||
|   senseBox_soil: "Bodenfeuchte", | ||||
|   senseBox_watertemperature: "Wassertemperatur", | ||||
| }; | ||||
|  | ||||
| @ -726,7 +726,7 @@ Blockly.Msg.senseBox_output_safetosd_tip = "Speichert Messwerte auf SD Karte"; | ||||
| Blockly.Msg.senseBox_output_serialprint = "Auf Kommandozeile ausgeben"; | ||||
| Blockly.Msg.senseBox_serial_tip = | ||||
|   "Gibt Messwerte oder Daten auf dem Seriellen Monitor der Arduino IDE aus. Praktisch um ohne Display zu arbeiten"; | ||||
| Blockly.Msg.senseBox_output_timestamp = "Zeitstempel"; | ||||
| Blockly.Msg.senseBox_output_timestamp = "Zeitstempel (RFC 3339)"; | ||||
| 
 | ||||
| Blockly.Msg.senseBox_led = "LED an digitalen"; | ||||
| Blockly.Msg.senseBox_led_tip = | ||||
|  | ||||
| @ -1,15 +1,16 @@ | ||||
| export const SD = { | ||||
|     /** | ||||
|      * SD-Block | ||||
|      */ | ||||
|     senseBox_sd_create_file: "Create file on SD-Card", | ||||
|     senseBox_sd_write_file: " Write Data to SD-Card", | ||||
|     senseBox_sd_open_file: "Open a file from SD-Card", | ||||
|     senseBox_sd_create_file_tooltip: "Creates a file on the card. Plug the SD-Bee into the **XBEE2** slot. The **maximum** length of the file name is **8 characters**. The file should be created first in *Setup()*", | ||||
|     senseBox_sd_write_file_tooptip: "Write data to the SD card. Note that the file must be opened first.", | ||||
|     senseBox_sd_open_file_tooltip: "Open the file on the SD card to save files. At the end of the loop, the file will be closed again automatically.", | ||||
|     sensebox_sd_filename: "Data.txt", | ||||
|     senseBox_sd_decimals: "decimals", | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
|   /** | ||||
|    * SD-Block | ||||
|    */ | ||||
|   senseBox_sd_create_file: "Create file on SD-Card", | ||||
|   senseBox_sd_write_file: " Write Data to SD-Card", | ||||
|   senseBox_sd_open_file: "Open a file from SD-Card", | ||||
|   senseBox_sd_create_file_tooltip: | ||||
|     "Creates a file on the card. Plug the SD-Bee into the **XBEE2** slot. The **maximum** length of the file name is **8 characters**. The file should be created first in *Setup()*", | ||||
|   senseBox_sd_write_file_tooptip: | ||||
|     "Write data to the SD card. Note that the file must be opened first.", | ||||
|   senseBox_sd_open_file_tooltip: | ||||
|     "Open the file on the SD card to save files. At the end of the loop, the file will be closed again automatically.", | ||||
|   sensebox_sd_filename: "Data.csv", | ||||
|   senseBox_sd_decimals: "decimals", | ||||
| }; | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user