diff --git a/src/main/java/com/ardublock/core/Context.java b/src/main/java/com/ardublock/core/Context.java
index 3319866d3c8db16a77334fb1c5ae3e13e68d4eec..6204ccc44b026b0ad47c6085f5a16c7c45ab1fb5 100644
--- a/src/main/java/com/ardublock/core/Context.java
+++ b/src/main/java/com/ardublock/core/Context.java
@@ -11,6 +11,7 @@ import java.net.URLDecoder;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Locale;
 import java.util.ResourceBundle;
 import java.util.Set;
 
@@ -120,7 +121,19 @@ public class Context
 		}
 		workspaceController.resetWorkspace();
 		workspaceController.resetLanguage();
-		workspaceController.setLangResourceBundle(ResourceBundle.getBundle(ARDUBLOCK_LANG_RESOURCE_BUNDLE));//"com/ardublock/block/ardublock"));
+		
+		if(PreferencesData.getBoolean("ardublock.cstyle")) {
+			if(Locale.getDefault().equals(Locale.GERMANY)) {
+				workspaceController.setLangResourceBundle(ResourceBundle.getBundle(ARDUBLOCK_LANG_RESOURCE_BUNDLE, Locale.GERMAN));
+			} else if(Locale.getDefault().equals(Locale.ENGLISH)) {
+				workspaceController.setLangResourceBundle(ResourceBundle.getBundle(ARDUBLOCK_LANG_RESOURCE_BUNDLE, Locale.UK));
+			} else {
+				workspaceController.setLangResourceBundle(ResourceBundle.getBundle(ARDUBLOCK_LANG_RESOURCE_BUNDLE));
+			}
+		} else {
+			workspaceController.setLangResourceBundle(ResourceBundle.getBundle(ARDUBLOCK_LANG_RESOURCE_BUNDLE));
+		}
+		
 		workspaceController.setStyleList(list);
 		workspaceController.setLangDefDtd(this.getClass().getResourceAsStream(LANG_DTD_PATH));
 		workspaceController.setLangDefStream(this.getClass().getResourceAsStream(ARDUBLOCK_LANG_PATH));
@@ -190,6 +203,7 @@ public class Context
 	
 	private void setDefaultPreferences() {//letsgoING
 		PreferencesData.setBoolean("ardublock", true);
+		PreferencesData.setBoolean("ardublock.cstyle", false);
 		//PreferencesData.set("ardublock.ui.language", "DE");			//TODO: implement
 		PreferencesData.set("ardublock.workspace.mode", "default"); //"default" / "custom" / "page"
 		PreferencesData.setInteger("ardublock.workspace.zoom", 10); // float values between 
diff --git a/src/main/java/com/ardublock/ui/OpenblocksFrame.java b/src/main/java/com/ardublock/ui/OpenblocksFrame.java
index 3ca57556267a039cda9fef17c6339e07cdf63d0b..32e3a37ad4d1f0524769029efb887fe66db7dcfe 100644
--- a/src/main/java/com/ardublock/ui/OpenblocksFrame.java
+++ b/src/main/java/com/ardublock/ui/OpenblocksFrame.java
@@ -27,9 +27,11 @@ import java.net.URLDecoder;
 import java.util.ResourceBundle;
 
 import javax.imageio.ImageIO;
+import javax.swing.AbstractButton;
 import javax.swing.Box;
 import javax.swing.ImageIcon;
 import javax.swing.JButton;
+import javax.swing.JCheckBoxMenuItem;
 import javax.swing.JComponent;
 import javax.swing.JFileChooser;
 import javax.swing.JFrame;
@@ -502,6 +504,23 @@ public class OpenblocksFrame extends JFrame
 		JMenuItem blockreferenceMenuItem = new JMenuItem(uiMessageBundle.getString("ardublock.ui.blockreference"));
 		blockreferenceMenuItem.addActionListener(blockreferenceButtonListener);
 		blockreferenceMenuItem.setToolTipText(uiMessageBundle.getString("ardublock.ui.blockreference.tooltip"));
+		
+		
+		ActionListener languagestyleCheckboxListener = new ActionListener () {
+			public void actionPerformed(ActionEvent e) {
+				AbstractButton cButton = (AbstractButton) e.getSource();  
+                boolean selected = cButton.getModel().isSelected();  
+                if(selected) {
+                	PreferencesData.setBoolean("ardublock.cstyle", true);
+                } else {
+                	PreferencesData.setBoolean("ardublock.cstyle", false);
+                }
+			}
+		};
+		
+		JCheckBoxMenuItem languagestyleMenuItem = new JCheckBoxMenuItem(uiMessageBundle.getString("ardublock.ui.languagestyle"), PreferencesData.getBoolean("ardublock.cstyle"));
+		languagestyleMenuItem.addActionListener(languagestyleCheckboxListener);
+		languagestyleMenuItem.setToolTipText(uiMessageBundle.getString("ardublock.ui.languagestyle.tooltip"));
 		//*****************************************
 		
 		// VERSION LABEL
@@ -1014,6 +1033,8 @@ public class OpenblocksFrame extends JFrame
 		blocksMenu.add(modeSimMenuItem);
 		blocksMenu.addSeparator();
 		blocksMenu.add(blockreferenceMenuItem);
+		blocksMenu.addSeparator();
+		blocksMenu.add(languagestyleMenuItem);
 		
 		aboutMenu.add(websiteButtonMenuItem);
 		//aboutMenu.add(simulatorHelpMenuItem);
diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties
index 7525989ab2bc695b6581589c9af7e96247936127..5f1df7a748bc3dd64675bacf1f601ed51b836381 100644
--- a/src/main/resources/com/ardublock/block/ardublock.properties
+++ b/src/main/resources/com/ardublock/block/ardublock.properties
@@ -48,8 +48,10 @@ ardublock.ui.reference=open block reference
 ardublock.ui.blockreference=open block reference
 ardublock.ui.blockreference.domain=https://blockreferenz.letsgoing.org/
 ardublock.ui.blockreference.tooltip=open block reference
-ardublock.ui.website.repository=https://gitlab.reutlingen-university.de/letsgoing/ardublock
-ardublock.ui.website.repository.tooltip=go to ArduBlock Repository
+ardublock.ui.repository=https://gitlab.reutlingen-university.de/letsgoing/ardublock
+ardublock.ui.repository.tooltip=go to ArduBlock Repository
+ardublock.ui.languagestyle=C-Style (reboot IDE or new File) 
+ardublock.ui.languagestyle.tooltip=Block names paraphrased or c-style
 ardublock.ui.mode.expert=Full
 ardublock.ui.mode.expert.tooltip=full blockset
 ardublock.ui.mode.standard=Basic
@@ -94,7 +96,7 @@ ardublock.ui.addLibraries.tooltip=Add non-standard libraries used in ArduBlock
 ardublock.ui.version=v2.2 beta4
 
 ardublock.ui.appprefix.standard=Basic
-ardublock.ui.appprefix.pro=Pro
+ardublock.ui.appprefix.pro=Full
 ardublock.ui.appprefix.sim=Simulator
 
 #ERROR
diff --git a/src/main/resources/com/ardublock/block/ardublock_de.properties b/src/main/resources/com/ardublock/block/ardublock_de.properties
index 227c4a453e7ecd75f5ab5c5c9dda536b4ae437a8..fe3a74d973fe4b5cff9630464551f5767a974373 100644
--- a/src/main/resources/com/ardublock/block/ardublock_de.properties
+++ b/src/main/resources/com/ardublock/block/ardublock_de.properties
@@ -50,6 +50,8 @@ ardublock.ui.blockreference.domain=https://blockreferenz.letsgoing.org/
 ardublock.ui.blockreference.tooltip=öffnet die Blockreferenz
 ardublock.ui.repository=https://gitlab.reutlingen-university.de/letsgoing/ardublock
 ardublock.ui.repository.tooltip=gehe zur ArduBlock Repository
+ardublock.ui.languagestyle=C-Style (Neustart IDE oder neues Programm)
+ardublock.ui.languagestyle.tooltip=Block-Namen umschrieben oder c-style
 ardublock.ui.mode.expert=Full
 ardublock.ui.mode.expert.tooltip=Mehr Blöcke und komplexere Funktionen fuer Fortgeschrittene
 ardublock.ui.mode.standard=Basic
@@ -93,7 +95,7 @@ ardublock.ui.simulatorHelp.text=TASTER\n**********************\nlinke Maustaste
 ardublock.ui.addLibraries=Bibliotheken hinzufügen
 ardublock.ui.addLibraries.tooltip=Lade nicht-standard Bibliotheken sie in ArduBlock verwendet werden
 
-ardublock.ui.version=v2.2 beta4 
+ardublock.ui.version=v2.2 beta4
 
 ardublock.ui.appprefix.standard=Basic
 ardublock.ui.appprefix.pro=Pro
@@ -112,10 +114,11 @@ ardublock.error_msg.long_number_var_slot=Der 'Variable'-Sockel ben
 ardublock.error_msg.double_number_var_slot=Der 'Variable'-Sockel benötigt einen 'Name_der_dezimalen_analogen_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
 ardublock.error_msg.char_var_slot=Der 'Variable'-Sockel benötigt einen 'Name_der_Zeichen_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
 ardublock.error_msg.array_var_slot=Der 'Variable'-Sockel benötigt einen 'Name_der_Tabelle'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
+ardublock.error_msg.number_const_write=
 ardublock.error_msg.array_size_slot=Der 'Größe' Slot muss einen analogen Wert enthalten
 ardublock.error_msg.string_var_slot=Der 'Variable'-Slot benötigt einen 'Name_der_String_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
-ardublock.error_msg.string_slot= Der 'Wert'-Slot benötigt einen 'String_Variable'-Block oder einen 'Name_der_String_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
 ardublock.error_msg.var_slot= Der Slot benötigt einen 'Variable'-Block
+ardublock.error_msg.string_slot= Der 'Wert'-Slot benötigt einen 'String_Variable'-Block oder einen 'Name_der_String_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
 ardublock.error_msg.local_var_slot=Der 'Variable'-Sockel benötigt einen 'lokale_X_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
 ardublock.error_msg.var_value_slot=Der Sockel benötigt einen 'Variable' oder 'Wert'-Block.\nTIPP: Schaue an dem hervorgehobenen Block!
 ardublock.error_msg.var_value_slot=Es ist nur ein Rueckgabeparameter pro Unterprogramm erlaubt!
@@ -161,9 +164,9 @@ ardublock.examples.blink=Blink
 ardublock.examples.digitalserial=digitalRead Serial
 ardublock.examples.analogserial=analogRead Serial
 ardublock.examples.buttonled=digitalRead LED
-ardublock.examples.digitalvariabletoggle=toggle digitale Variable
+ardublock.examples.digitalvariabletoggle=toggle bool Variable
 ardublock.examples.countervariable=Zaehler
-ardublock.examples.whilebutton=digitalRead solange
+ardublock.examples.whilebutton=digitalRead while
 ardublock.examples.psnBroker=PubSubNet Broker
 ardublock.examples.psnClient1=PubSubNet Client1
 ardublock.examples.psnClient2=PubSubNet Client2
@@ -187,8 +190,8 @@ bc.value=Wert
 bc.variable=Variable
 bc.digital=digital
 bc.analog=analog
-bc.char=Zeichen
-bc.message=Zeichenkette
+bc.char=char
+bc.message=string
 
 #CONTROL
 #****************************
@@ -199,31 +202,31 @@ bg.controlDivider2=|       Verzweigungen       |
 bg.controlDivider3=|       Schleifen       |
 bg.controlDivider4=|       Warten       |
 
-bg.loop=wiederhole fortlaufend
+bg.loop=loop
 #legacy support
-bg.loop1=wiederhole fortlaufend
+bg.loop1=loop
 bg.loop1.description=Hauptschleife loop()
-bg.loop2=wiederhole fortlaufend
+bg.loop2=loop
 bg.loop2.description=Hauptschleife loop()
-bg.loop3=wiederhole fortlaufend
+bg.loop3=loop
 bg.loop3.description=Hauptschleife loop()
 #End of legacy support
 bg.program=Programm
 bg.sketch=Programm
 bg.setup=Setup
-bg.if=falls
-bg.elseif=sonst falls
-bg.else=sonst
-bg.ifelse=falls/sonst
-bg.repeat_times=wiederhole
-bg.repeat=wiederhole und zaehle
+bg.if=if
+bg.elseif=else if
+bg.else=else
+bg.ifelse=if/else
+bg.repeat_times=for
+bg.repeat=for
 bg.repeat_control=
-bg.break=unterbreche
-bg.delay=warte Millisekunden
-bg.delay_microseconds=warte Microsekunden
-bg.while=solange
-bg.do_while=mache solange
-bg.wait=solange (millis)
+bg.break=break
+bg.delay=delay
+bg.delay_microseconds=delayMicroseconds
+bg.while=while
+bg.do_while=do while
+bg.wait=while (millis)
 
 bg.program.description=Schleife und Setup
 bg.sketch.description=Programm mit global-Teil, setup() und loop()
@@ -243,8 +246,8 @@ bg.delay_microseconds.description=Warte Mikrosekunden. Solange tut das Programm
 bg.wait.description=Die Bloecke innerhalb dieses Blocks werden ausgeführt x Millisekunden ausgeführt. 
 
 bc.head=
-bc.setup=Setup
-bc.loop=Loop
+bc.setup=setup
+bc.loop=loop
 bc.loop.description=Liste mit Befehlen die fortlaufen wiederholt wird.
 
 bc.do=mache
@@ -339,20 +342,20 @@ bg.pin-write-analog=analogWrite
 bg.pin-write-digital=digitalWrite
 bg.pin-mode-output= pinMode OUTPUT
 bg.servo_default=Servo
-bg.tone=Ton
-bg.tone_time=Ton
-bg.no_tone=kein Ton
-bg.attach_servo_default=Servo verbinden
-bg.detach_servo_default=Servo trennen 
-
-bg.neopixel_init=Setup Pixel 
-bg.neopixel_pixel_color=Farbe fuer Pixel RGB [0...255]
-bg.neopixel_show= Daten an Pixel senden
-bg.neopixel_brightness=Pixel Helligkeit[0...255]
-bg.stepper_2pin=Setup fuer Stepper
-bg.stepper_4pin=Setup fuer Stepper
-bg.stepper_set_rpm=Stepper U/min
-bg.stepper_steps=Stepper Schritte
+bg.tone=tone
+bg.tone_time=tone
+bg.no_tone=noTone
+bg.attach_servo_default=attachServo
+bg.detach_servo_default=detachServo 
+
+bg.neopixel_init=Pixel Setup
+bg.neopixel_pixel_color=Pixel setPixelColor
+bg.neopixel_show= Pixel show
+bg.neopixel_brightness=Pixel setBrightness
+bg.stepper_2pin=Stepper Setup
+bg.stepper_4pin=Stepper Setup
+bg.stepper_set_rpm=Stepper setSpeed
+bg.stepper_steps=Stepper step
 
 bg.attach_servo_default.description=Servo verbinden
 bg.detach_servo_default.description=Servo trennen
@@ -367,16 +370,16 @@ bg.no_tone.description=Beendet das Rechtecksignals das durch tone() ausgel
 bg.pin-write-digital.description=Ausgangwert für digitalen Pin festlegen [HIGH / LOW]
 bg.pin-write-analog.description=PWM-Ausgang erhält Wert [0-255]
 bg.pin-mode-output.description= Setze Pin als Ausgang (OUTPUT)
-bg.neopixel_brightness.description=Stellt die Helligkeit der gesamten Kette ein
-bg.neopixel_pixel_color.description=Farbewerte fuer einen bestimmten Pixel festlegen
+bg.neopixel_brightness.description=Stellt die Helligkeit der gesamten Kette ein [0...255]
+bg.neopixel_pixel_color.description=Farbewerte fuer einen bestimmten Pixel festlegen (RGB [0...255])
 bg.neopixel_init.description=Initialisiert die RGB-Pixel\nSchnittstelle: NEO_KHZ800 / NEO_KHZ400\nFarbfolge: NEO_GRB / NEO_RGB
 bg.neopixel_show.description=Daten werden erst mit diesem Befehl an die Pixel übertragen
 
 bc.steps=Schritte/U
 bc.speed=U/min
-bc.red=Rot Start
-bc.blue=Blau Start
-bc.green=Gruen Start
+bc.red=Rot
+bc.blue=Blau
+bc.green=Gruen
 bc.brightness=Helligkeit
 bc.Nb_of_Led=Wie viele Pixel
 bc.Nb_of_Led.description=Wie viele Pixel hat die Kette
@@ -399,8 +402,8 @@ bg.pin-read-analog=analogRead
 bg.pin-read-digital=digitalRead
 bg.pin-read-digital-pullup=inputPullup
 bg.pin-mode-input=pinMode INPUT
-bg.LGI_Ultrasonic=lese Ultraschall Sensor
-bg.LGI_Ultrasonic2Pin=lese Ultraschall Sensor
+bg.LGI_Ultrasonic=lese Ultraschall-Sensor
+bg.LGI_Ultrasonic2Pin=lese Ultraschall-Sensor
 
 bg.LGI_Qtouch_Init1=Setup fuer Q-Touch-Button1
 bg.LGI_Qtouch_Init2=Setup fuer Q-Touch-Button2
@@ -419,10 +422,10 @@ bg.LGI_Qtouch_Slider_getTouchPosition=Wert von Q-Touch-Slider
 bg.LGI_Qtouch_Slider_getOffset1=Offset1 von Q-Touch-Slider
 bg.LGI_Qtouch_Slider_getOffset2=Offset2 von Q-Touch-Slider
 bg.LGI_Qtouch_Slider_getOffset3=Offset3 von Q-Touch-Slider
-bg.dht_sensor_setup=Setup DHT Sensor
-bg.dht_sensor_read_temp=DHT lese Temperatur
-bg.dht_sensor_read_humid=DHT lese Luftfeuchtigkeit
-bg.dht_sensor_calc_index=DHT berechne Hitzeindex
+bg.dht_sensor_setup=DHT begin
+bg.dht_sensor_read_temp=DHT readTemperature
+bg.dht_sensor_read_humid=DHT readHumidity
+bg.dht_sensor_calc_index=DHT computeHeatIndex
 
 bg.pin-read-analog.description=Liest den analogen Wert vom Pin. 0V = 0. 5V = 1023
 bg.pin-read-digital.description=Liest den digitalen Wert vom Pin ein (HIGH or LOW)
@@ -458,7 +461,6 @@ bc.DHTtemp=Temperatur
 bc.DHThumid=Luftfeuchtigkeit
 bc.triggerPin=Trigger-Pin
 bc.echoPin=Echo-Pin
-
 #LOGIC
 #****************************
 bd.logic=Log. Operatoren
@@ -476,10 +478,10 @@ bg.greater=>
 bg.greater_equal=>=
 bg.less=<
 bg.less_equal=<=
-bg.not=NICHT
+bg.not=! (NOT)
 bg.not_equal=!=
-bg.and=UND
-bg.or=ODER
+bg.and=&& (AND)
+bg.or=|| (OR)
 bg.equal_digital===
 bg.not_equal_digital=!=
 bg.bit_and_poly=&
@@ -489,7 +491,7 @@ bg.bit_not_poly=~
 bg.bit_and=&
 bg.bit_or=|
 bg.bit_xor=^
-bg.bit_not=~
+bg.bit_not=~ 
 bg.bit_shift_left=<<
 bg.bit_shift_right=>>
 
@@ -501,9 +503,9 @@ bg.greater_equal.description=WAHR, wenn der erste Wert gr
 bg.less_equal.description=WAHR, wenn der erste Wert kleiner oder gleich dem Zweiten ist
 bg.not_equal.description=WAHR, wenn NICHT beide analogen Werte identisch sind
 bg.not_equal_digital.description=WAHR, wenn NICHT beide digitalen Werte identisch sind
-bg.and.description=WAHR, wenn beide beide Bedingungen erfüllt sind.
-bg.or.description=WAHR, wenn eine oder beide Bedingungen erfüllt sind.
-bg.not.description= Das Gegenteil von (z.B. WAHR wird zu FALSCH)
+bg.and.description=UND - WAHR, wenn beide beide Bedingungen erfüllt sind.
+bg.or.description=ODER - WAHR, wenn eine oder beide Bedingungen erfüllt sind.
+bg.not.description=NICHT - Das Gegenteil von (z.B. WAHR wird zu FALSCH)
 bg.equal_poly.description=WAHR wenn die zwei Zeichen identisch sind
 bg.not_equal_poly.description=WAHR wenn die zwei Zeichen NICHT identisch sind
 bg.bit_and_poly.description=bitweises UND
@@ -523,26 +525,26 @@ bd.operators=Math. Operatoren
 
 bg.mathDivider1=|       Operatoren       |
 bg.mathDivider2=|       Signalanpassung      |
-bg.mathDivider3=|       Zufallszahl      |     
-bg.mathDivider4=|       PID-Regler       |  
+bg.mathDivider3=|       Zufallszahl      | 
+bg.mathDivider4=|       PID-Regler       |      
 
-bg.constrain=einschränken
+bg.constrain=constrain
 bg.abs=abs
 bg.addition=+
 bg.cos=cos
 bg.division=/
 bg.equal===
-bg.map=zuordnen
+bg.map=map
 bg.map_common=map [0, 1023] to [0, 255]
 bg.max=max
 bg.min=min
 bg.modulo=%
 bg.multiplication=x
-bg.pow=Potenz
-bg.random=Zufallszahl
-bg.random_range=Zufallszahl
+bg.pow=pow
+bg.random=random
+bg.random_range=random
 bg.sin=sin
-bg.sqrt=Wurzel
+bg.sqrt=sqrt
 bg.log=log
 bg.subtraction=-
 bg.tan=tan
@@ -561,10 +563,10 @@ bg.log.description=Natuerlicher Logarithmus
 bc.max=max
 bc.min=min
 bc.to=bis
-bc.fromLow= von Low
-bc.fromHigh=von High
-bc.toLow=nach Low
-bc.toHigh=nach High
+bc.fromLow= in Low
+bc.fromHigh=in High
+bc.toLow=out Low
+bc.toHigh=out High
 bc.from=von
 bc.base=Basis
 bc.exponent=Exponent
@@ -572,13 +574,11 @@ bc.low=unterer
 bc.high=oberer
 bc.element = Element
 
-
 bg.pid=PID
 bg.pid_limit=PID
 bg.pid.description= PID Regler-Block
 bg.pid_limit.description= PID Regler-Block mit Begrenzung
 
-
 bc.input=Istwert
 bc.setpoint=Sollwert
 bc.interval=Intervall
@@ -592,38 +592,38 @@ bc.limitH=oberes Limit
 #****************************
 bd.cast=Typ Konvertierung
 
-bg.castDivider1=|       Zeichenketten <-> analoge Werte      |
+bg.castDivider1=|       ASCII <-> int      |
 bg.castDivider2=|       Datentypen      |
-bg.castDivider3=|       kurze analoge Werte <-> Zeichen       |
-
-bg.cast_atoi=Zeichenkette zu analogem Wert
-bg.cast_itoa=analoger Wert zu Zeichenkette
-bg.cast_number=wandle in analogen Wert
-bg.cast_number_byte=wandle in kurzen analogen Wert
-bg.cast_number_long=wandle in langen analogen Wert
-bg.cast_number_float=wandle in dezimalen Wert
-bg.cast_byte_char=wandle kurzen analoger Wert in Zeichen
-bg.cast_char_byte=wandle Zeichen zu kurzem analogen Wert
-bg.cast_low_int_char=unterer Teil analoger Wert zu Zeichen
-bg.cast_up_int_char=oberer Teil analoger Wert zu Zeichen
-bg.cast_char_int=Zeichen zu analoger Wert
-bg.cast_byte_int=kurzer analoger Wert zu analogem Wert
-
-bg.cast_atoi.description=lese analogen Wert (int) aus Zeichenkette (char)
-bg.cast_itoa.description=erstelle  Zeichenkette (char) aus analogem Wert (int)
-bg.cast_number.description=wandle in analogen Wert
-bg.cast_number_byte.description=wandle in kurzen analogen Wert
-bg.cast_number_long.description=wandle in langen analogen Wert
-bg.cast_number_float.description=wandle in dezimalen Wert
-bg.cast_byte_char.description=wandle analogen Wert zu Zeichen
-bg.cast_char_byte.description=wandle Zeichen zu kurzem analogen Wert
-bg.cast_low_int_char.description=wandle unteren Teil von analogem Wert zu Zeichen
-bg.cast_up_int_char.description=wandle oberen Teil von analogem Wert zu Zeichen
-bg.cast_char_int.description=erzeuge analogen Wert aus zwei Zeichen
-bg.cast_byte_int.description=erzeuge analogen Wert aus zwei kurzen analogen Werten
-
-bc.lowerByte=unterer Wert
-bc.upperByte=oberer Wert
+bg.castDivider3=|       byte <-> char       |
+
+bg.cast_atoi=atoi
+bg.cast_itoa=itoa
+bg.cast_number=(int)
+bg.cast_number_byte=(byte)
+bg.cast_number_long=(long)
+bg.cast_number_float=(float)
+bg.cast_byte_char=(char)
+bg.cast_char_byte=char zu byte
+bg.cast_low_int_char=int zu char
+bg.cast_up_int_char=(int >> 8) zu char
+bg.cast_char_int=char zu int
+bg.cast_byte_int=byte zu int
+
+bg.cast_atoi.description=lese int-Wert aus char-array
+bg.cast_itoa.description=erstelle char-array aus int-Wert
+bg.cast_number.description=wandle zu int
+bg.cast_number_byte.description=wandle zu byte
+bg.cast_number_long.description=wandle zu long
+bg.cast_number_float.description=wandle zu float
+bg.cast_byte_char.description=wandle byte zu char
+bg.cast_char_byte.description=wandle char zu byte
+bg.cast_low_int_char.description=wandle unteren Teil von int Wert zu char
+bg.cast_up_int_char.description=wandle oberen Teil von int Wert zu char
+bg.cast_char_int.description=erzeuge int Wert aus zwei char-Zeichen
+bg.cast_byte_int.description=erzeuge int Wert aus zwei byte
+
+bc.lowerByte=unteres byte
+bc.upperByte=oberes byte
 
 #NUMBERS
 #****************************
@@ -635,7 +635,7 @@ bg.numberDivider3=|       Analoge Variablen       |
 bg.numberDivider4=|       Zeichen/Text       |
 bg.numberDivider5=|       Konstanten       |
 
-bg.millis=Millis
+bg.millis=millis
 bg.digital-high=HIGH
 bg.digital-low=LOW
 bg.true=true
@@ -644,29 +644,29 @@ bg.false=false
 bg.string=ABCD
 bg.char=A
 bg.number=1
-bg.setter_variable_digital=Setze digitale Variable
-bg.setter_variable_number=Setze analoge Variable
-bg.setter_variable_number_byte=Setze kurze analoge Variable
-bg.setter_variable_number_long=Setze lange analoge Variable
-bg.setter_variable_number_float=Setze dezimale Variable
-bg.setter_variable_char=Setze Zeichen Variable
-bg.setter_variable_string=Setze Zeichenkette
-bg.setter_define_digital=Definiere Konstante
-bg.setter_define_number=Definiere Konstante
-bg.variable_digital=digitale_Variable
-bg.constant_digital=digitale_Konstante
-bg.variable_number=analoge_Variable
-bg.constant_number=analoge_Konstante
-bg.variable_char=Zeichen_Variable
-bg.local_variable_char=lokale_Zeichen_Variable
-bg.variable_string=Zeichenketten_Variable
-bg.local_variable_string=lokale_Zeichenketten_Variable
-bg.variable_file=Datei_Variable
-bg.local_variable_file=lokale_Datei_Variable
-bg.local_variable_number=lokale_analoge_Variable
-bg.local_variable_digital=lokale_digitale_Variable
-
-g.millis.description=Gibt die Millisekungen seit Programmstart zurück\n(langer analoger Wert)
+bg.setter_variable_digital=Setze bool Variable
+bg.setter_variable_number=Setze int Variable
+bg.setter_variable_number_byte=Setze byte Variable
+bg.setter_variable_number_long=Setze long Variable
+bg.setter_variable_number_float=Setze float Variable
+bg.setter_variable_char=Setze char Variable
+bg.setter_variable_string=Setze char-Array
+bg.setter_define_digital=#define
+bg.setter_define_number=#define
+bg.variable_digital=bool_Variable
+bg.constant_digital=bool_Konstante
+bg.variable_number=int_Variable
+bg.constant_number=int_Konstante
+bg.variable_char=char_Variable
+bg.local_variable_char=lokale_char_Variable
+bg.variable_string=char_Array
+bg.local_variable_string=lokales_char_Array
+bg.variable_file=File_Variable
+bg.local_variable_file=lokale_File_Variable
+bg.local_variable_number=lokale_int_Variable
+bg.local_variable_digital=lokale_bool_Variable
+
+bg.millis.description=Gibt die Millisekungen seit Programmstart zurück\n(langer analoger Wert)
 bg.true.description=digitaler Wert WAHR (true)
 bg.false.description=digitaler Wert FALSCH (false)
 bg.digital-high.description=Pin HIGH
@@ -674,23 +674,23 @@ bg.digital-low.description=Pin LOW
 bg.char.description=Ein ASCII-Zeichen
 bg.number.description=analoger Ganzzahlwert (int)-Wert (-32,768 bis +32,767)
 bg.variable_number.description=Name der analogen Variable (int)\nDatentyp hängt vom \"Setze-Block\" ab
-bg.constant_number.description=Name der analogen Konstante (byte|int|float)\nDie Konstante kann nur einmal definiert werden.
+bg.constant_number.description=Name der analogen Konstante (byte/int/float)\nDie Konstante kann nur einmal definiert werden.
 bg.variable_digital.description=Name der digitalen Variable (bool)
 bg.constant_digital.description=Name der digitalen Konstante (bool)\nDie Konstante kann nur einmal definiert werden.
-bg.variable_string.description=Name der Zeichenketten Variable  (char[]-Array)
-bg.local_variable_string.description=Name der lokalen Zeichenketten Variable (char[]-Array)
+bg.variable_string.description=Name der Zeichenketten Variable  (char-Array)
+bg.local_variable_string.description=Name der lokalen Zeichenketten Variable (char-Array)
 bg.setter_variable_number.description=Setze eine analoge Variable (int).\n-32,768 bis +32,767
 bg.setter_variable_number_byte.description=Setze eine kurze analoge Variable (byte).\n 0 bis 255
 bg.setter_variable_number_long.description=Setze eine lange analoge Variable (long). \n-2,147,483,648 bis 2,147,483,647
 bg.setter_variable_number_float.description=Setze eine dezimale Variable (float).\n +/- 3.4028235E+38
 bg.setter_variable_digital.description=Setze eine digitale Variable (bool).\nHIGH or LOW
-bg.setter_variable_string.description=Setze eine Zeichenkette Variable (char[]-Array)
+bg.setter_variable_string.description=Setze eine Zeichenkette Variable (char-Array)
 bg.setter_variable_char.description=Setze ASCII-Zeichen Variable (char)
-bg.setter_define_digital.description=Deiniere digitale (bool) Konstante.\n(Bezeichnung wird beim Hochladen durch Wert ersetzt)
-bg.setter_define_number.description=Deiniere analoge (byte/int/float) Konstante.\n(Bezeichnung wird beim Hochladen durch Wert ersetzt)
+bg.setter_define_digital.description=Deiniere bool Konstante.\n(Bezeichnung wird beim Hochladen durch Wert ersetzt)
+bg.setter_define_number.description=Deiniere byte/int/float Konstante.\n(Bezeichnung wird beim Hochladen durch Wert ersetzt)
 bg.variable_char.description=ASCII-Zeichen Variable (char)
 bg.local_variable_char.description=lokale Zeichen Variable (char)
-bg.string.description=Zeichenkette (char[]-Array)
+bg.string.description=Zeichenkette (char-Array)
 bg.variable_file.description=Datei Variable
 bg.local_variable_file.description=lokale Datei Variable
 bg.local_variable_number.description=Name der lokalen analogen Variable (int)\nDatentyp hängt vom \"Setze-Block\" ab
@@ -698,19 +698,19 @@ bg.local_variable_digital.description=Name der lokalen digitalen Variable (bool)
 
 bc.num=#
 bc.position=Position
-bc.variable_digital=digitale_Variable
-bc.variable_number=analoge_Variable
-bc.variable_number_long =lange_analogen_Variable
-bc.variable_number_float=dezimale_Variable
+bc.variable_digital=bool_Variable
+bc.variable_number=int_Variable
+bc.variable_number_long =long_Variable
+bc.variable_number_float=float_Variable
 
 #TEST NEW BLOCKDESIGN
-bg.setter_variable_digital_line=setze digitale variable
-bg.setter_variable_digital_line.description=Schreibe neuen Wert in digitale (bool) Variable
-bg.setter_variable_analog_line=setze analoge variable
-bg.setter_variable_analog_line.description=Schreibe neuen Wert in analoge (int) Variable
-bg.create_variable_analog=erstelle analoge variable
+bg.setter_variable_digital_line=setze bool variable
+bg.setter_variable_digital_line.description=Schreibe neuen Wert in bool Variable
+bg.setter_variable_analog_line=setze int variable
+bg.setter_variable_analog_line.description=Schreibe neuen Wert in int Variable
+bg.create_variable_analog=erstelle int variable
 bg.create_variable_analog.description=Erstelle neue int Variable\nOptional mit Startwert
-bg.create_array_analog=setze analoge Tabelle
+bg.create_array_analog=setze int array
 bg.create_array_analog.description=Erstelle neues int Array\nOptional mit Startwert
 
 #ARRAYS
@@ -721,50 +721,50 @@ bg.arrayDivider1=|       analoge Tabellen      |
 bg.arrayDivider2=|       Zeichenketten      |
 bg.arrayDivider3=|       kopieren/ersetzen      |
 
-bg.create_char_array=Erstelle Zeichenkette
-bg.read_char_array=lese Zeichen
-bg.setter_char_array=setze Zeichen
-bg.create_number_array=Erstelle analoge Tabelle
-bg.create_number_byte_array=Erstelle kurze analoge Tabelle
-bg.create_number_long_array=Erstelle lange analoge Tabelle
-bg.create_number_float_array=Erstelle dezimale Tabelle
-bg.setter_number_array=Setze Tabellen-Feld
-bg.read_number_array=Lese Tabellenelement
-
-bg.create_char_array.description=Erstelle Zeichenkette (char[])
+bg.create_char_array=Erstelle char-Array
+bg.read_char_array=lese char-Zeichen
+bg.setter_char_array=setze char-Zeichen
+bg.create_number_array=Erstelle int-Array
+bg.create_number_byte_array=Erstelle byte-Array
+bg.create_number_long_array=Erstelle long-Array
+bg.create_number_float_array=Erstelle float-Array
+bg.setter_number_array=setze Array-Feld
+bg.read_number_array=lese Array-Feld
+
+bg.create_char_array.description=Erstelle char-Array
 bg.read_char_array.description=lese Zeichen (char) an Position
 bg.setter_char_array.description=setze Zeichen (char) an Position
 bg.create_number_array.description=Erzeuge ein Array für analoge Werte (int)\n-32,768 bis +32,767
 bg.create_number_byte_array.description=Erzeuge ein Array für kurze analoge Werte (byte)\n 0-255
-bg.create_number_long_array.description=Erzeuge ein Array für lange analoge Werte (long)
-bg.create_number_float_array.description=Erzeuge ein Array für dezimale Werte (float)
+bg.create_number_long_array.description=Erzeuge ein Array für lange analoge Werte (long)\n-2,147,483,648 bis 2,147,483,647
+bg.create_number_float_array.description=Erzeuge ein Array für dezimale Werte (float)\n +/- 3.4028235E+38
 bg.setter_number_array.description=Setze den Wert eines Array-Feldes
-bg.read_number_array.description=Lese den Wert eines\nTabellen-Feldes
+bg.read_number_array.description=Lese den Wert eines Array-Feldes
 
-bg.memcpy_number=kopiere Tabelle
+bg.memcpy_number=memcpy
 bg.memcpy_number.description=kopiere einen Speicherbereich von einem Ort (Quelle) in einen anderen (Ziel).\nACHTUNG: Laenge in Bytes angeben 
-bg.memset_number=ersetze Werte in Tabelle
+bg.memset_number=memset
 bg.memset_number.description=ersetze eine bestimmte Anzahl Werte in einer Tabelle
-bg.memcpy_string=kopiere Zeichenkette (Teil)
+bg.memcpy_string=memcpy
 bg.memcpy_string.description=kopiere einen Speicherbereich von einem Ort (Quelle) in einen anderen (Ziel) 
-bg.memset_string=ersetze Werte in Zeichenkette
+bg.memset_string=memset
 bg.memset_string.description=ersetze eine bestimmte Anzahl Zeichen durch ein anderes
-bg.strcpy_string=kopiere Zeichenkette
+bg.strcpy_string=strcpy
 bg.strcpy_string.description=kopiere eine Zeichenkette (Quelle) in eine andere (Ziel)
-bg.reference_string=Offset Zeichenkette
-bg.reference_string.description=Verschiebt die Startposition ab der die Zeichenkette verwendet wird \n-> &array[x]
-bg.reference_number=Offset Tabelle
-bg.reference_number.description=Verschiebt die Startposition ab der die Tabelle verwendet wird \n-> &array[x]
-bg.sizeof_number=Anzahl Stellen Tabelle
+bg.reference_string=offset char-array
+bg.reference_string.description=Verschiebt die Startposition ab der das char-Array verwendet wird \n-> &array[x]
+bg.reference_number=offset array
+bg.reference_number.description=Verschiebt die Startposition ab der das Array verwendet wird \n-> &array[x]
+bg.sizeof_number=sizeOf
 bg.sizeof_number.description=Gibt Anzahl der verfuegbaren Stellen der Tabelle zurueck \n-> sizeOf(Array)/sizeOf(Datentyp)
-bg.sizeof_string=Anzahl Stellen Zeichenkette
-bg.sizeof_string.description=Gibt Anzahl der verfuegbaren Stellen der Zeichenkette zurueck \n-> sizeOf(Array)/sizeOf(Datentyp)
-bg.strlen_string=Länge der Zeichenkette
+bg.sizeof_string=sizeOf
+bg.sizeof_string.description=Gibt Anzahl der verfuegbaren Stellen der Zeichenkette zurueck  \n-> sizeOf(Array)/sizeOf(Datentyp)
+bg.strlen_string=strlen
 bg.strlen_string.description=Gibt Laenge der Zeichenkette zurueck\n(Bis zum ersten String-Ende -> '\\0')
 
-bc.string=Zeichenkette
+bc.string=char-Array
 bc.position=Stelle
-bc.array=Tabellen-Name
+bc.array=Array-Name
 bc.vecsize=Anzahl Werte
 bc.count_chars=Anzahl Zeichen
 bc.count=Anzahl
@@ -800,7 +800,7 @@ bg.glue_digital=verbinde
 bg.glue_number=verbinde
 bg.glue_char=verbinde
 bg.glue_string=verbinde
-bg.read_serial_monitor=lese von SerialMonitor
+bg.read_serial_monitor=readSerialData
 
 bg.tele_set_frame=schreibe Daten in Frame
 bg.tele_read_frame=lese Frame seriell ein
@@ -828,7 +828,7 @@ bg.glue_digital.description=Verbinde digitalen Wert mit Zeichenkette
 bg.glue_number.description=Verbinde analogen Wert mit Zeichenkette
 bg.glue_char.description=Verbinde Zeichen mit Zeichenkette
 bg.glue_string.description=Verbinde Zeichenkette mit Zeichenkette
-bg.read_serial_monitor.description=Lese Zeichen vom SerialMonitor bis Zeilenende "CR" und schreibe diese in Zeichenkette.
+bg.read_serial_monitor.description=Lese Zeichen vom SerialMonitor bis Zeilenende "CR" und schreibe diese in char-Array
 
 bg.tele_set_frame.description=schreibe Daten in den Telegramm-Rahmen
 bg.tele_read_frame.description=lese Daten von der seriellen Schnittstelle im letsgoING-Telegramm-Format
@@ -836,13 +836,12 @@ bg.tele_read_data_frame.description=lese Daten aus dem Telegramm-Rahmen\n HINWEI
 bg.mqtt_set_frame.description=schreibe Daten in MQTT-Rahmen\n(letsgoING-IOT-Modul)
 bg.mqtt_read_frame.description=lese Daten aus MQTT-Rahmen\n(letsgoING-IOT-Modul)
 
-
 bc.print=print
 bc.ln=neue Zeile
 bc.rx_pin_number=Rx Pin
 bc.tx_pin_number=Tx Pin
 bc.baudrate=Baud
-bc.read_array=lese-Zeichenkette
+bc.read_array=lese-Array
 
 bc.sendAddress= Adr. Sender
 bc.recAddress=Adr. Empfänger
@@ -851,9 +850,9 @@ bc.sendBuffer=zu sendender Frame
 bc.recFrame=empfangener Frame
 bc.recBuffer=Empfangspuffer
 bc.recChars=Anz. empfangene Zeichen 
+bc.command=Befehlsart
 bc.nextChar=nächstes Zeichen
 bc.dataComplete=Daten komplett
-bc.command=Befehlsart
 
 #DIDACTIC NETWORK
 #****************************
@@ -869,7 +868,7 @@ bg.psn_client=Client pubSubNet
 bg.psn_callback=psnNewData
 bg.psn_handle_network=pubSubNet handleNetwork
 bg.psn_data_to_send=pubSubNet isDataToSend?
-bg.psn_set_interval=pubSubNet setInterval
+bg.psn_set_interval=PubSub setInterval 
 bg.psn_publish=pubSubNet publish
 bg.psn_publish_analog=pubSubNet publish
 bg.psn_publish_digital=pubSubNet publish
@@ -893,11 +892,11 @@ bg.psn_subscribe.description=Topic abonnieren
 bg.psn_unsubscribe.description=Topic nicht mehr abonnieren
 
 bc.ps_name=Name
-bc.ps_interval=ms 
+bc.ps_interval=ms
 bc.callback=Uebergabefunktion
 bc.payloadVar=Nutzdaten-Variable
 bc.payloadLengthVar=Nutzdaten-Laenge-Variable
-bc.topicVar=Topic-Variable
+bc.topicVar=Topic Variable
 bc.topicLengthVar=Topic-Laenge-Variable
 bc.payload=Nutzdaten
 bc.payloadLength=Länge Nutzdaten
@@ -905,7 +904,6 @@ bc.threshold=Schwellwert
 bc.topic=Topic
 bc.topicLength=Länge Topic
 
-
 #STORAGE
 #****************************
 bd.storage=Speicher
@@ -913,21 +911,21 @@ bd.storage=Speicher
 bg.storageDivider1=|       EEPROM     |
 bg.storageDivider2=|       SD Card      |
 
-bg.eeprom_read=lese kurzen analogen Wert von EEPROM
-bg.eeprom_write=schreibe kurzen analogen Wert auf EEPROM
-bg.eeprom_get=lese beliebigen Datentyp von EEPROM
-bg.eeprom_put=schreibe beliebigen Datentyp auf EEPROM
-bg.eeprom_length=länge des EEPROM
-bg.sd_begin=starte SD
-bg.sd_open=öffne Datei SD
-bg.sd_close=schließe Datei SD
-bg.sd_write=schreibe in Datei SD
-bg.sd_read=lese aus Datei SD
-bg.sd_data_available=Daten verfuegbar SD
-bg.sd_file_available=Datei verfuegbar SD
-
-bg.eeprom_read.description=lese einen kurzen analogen Wert (0-255) vom EEPROM. Jedes Byte entspicht einer EEPROM Adresse.
-bg.eeprom_write.description=schreibe einen kurzen analogen Wert (0-255) auf EEPROM. Jedes Byte entspicht einer EEPROM Adresse.
+bg.eeprom_read=EEPROM read (byte)
+bg.eeprom_write=EEPROM write (byte)
+bg.eeprom_get=EEPROM get
+bg.eeprom_put=EEPROM put
+bg.eeprom_length=EEPROM
+bg.sd_begin=SD begin
+bg.sd_open=SD open
+bg.sd_close=SD close
+bg.sd_write=SD println
+bg.sd_read=SD read
+bg.sd_data_available=SD available
+bg.sd_file_available=SD File exists
+
+bg.eeprom_read.description=lese einen kurzen analogen Wert (byte, 0-255) vom EEPROM. Jedes Byte entspicht einer EEPROM Adresse.
+bg.eeprom_write.description=schreibe einen kurzen analogen Wert (byte, 0-255) auf EEPROM. Jedes Byte entspicht einer EEPROM Adresse.
 bg.eeprom_get.description=lese beliebigen Datentyp von EEPROM. Jedes Byte entspicht einer EEPROM Adresse. Länge des Datentyps überprüfen!
 bg.eeprom_put.description=schreibe beliebigen Datentyp auf EEPROM. Jedes Byte entspicht einer EEPROM Adresse. Länge des Datentyps überprüfen!
 bg.eeprom_length.description=länge des EEPROM
diff --git a/src/main/resources/com/ardublock/block/ardublock_de_DE.properties b/src/main/resources/com/ardublock/block/ardublock_de_DE.properties
new file mode 100644
index 0000000000000000000000000000000000000000..c55c92f51ca50d492f7a6353654953776f77b319
--- /dev/null
+++ b/src/main/resources/com/ardublock/block/ardublock_de_DE.properties
@@ -0,0 +1,977 @@
+
+###############
+#  ARDUBLOCK  #
+###############
+
+#FILE
+#****************************
+ardublock.file.suffix=Ardublock Programmdatei (*.abp)
+
+#UI
+#****************************
+ardublock.ui.menu.file=Datei
+ardublock.ui.menu.program=Programm
+ardublock.ui.menu.tools=Werkzeuge
+ardublock.ui.menu.blocks=Blöcke
+ardublock.ui.menu.about=Über
+ardublock.ui.menu.help=?
+
+ardublock.ui.submenu.examples=Beispiele
+ardublock.ui.submenu.examples.basic=Basic
+ardublock.ui.submenu.examples.digital=Digital
+ardublock.ui.submenu.examples.analog=Analog
+ardublock.ui.submenu.examples.communication=Kommunikation
+
+ardublock.ui.new=Neu
+ardublock.ui.new.tooltip=Neues Programm erstellen
+ardublock.ui.save=Speichern
+ardublock.ui.save.tooltip=ArduBlock-Programm speichern
+ardublock.ui.saveAs=Speichern unter
+ardublock.ui.saveAs.tooltip=ArduBlock-Programm unter neuem Namen speichern
+ardublock.ui.load=Öffnen
+ardublock.ui.load.tooltip=ArduBlock-Programm öffnen
+ardublock.ui.upload=Hochladen auf den Arduino
+ardublock.ui.upload.tooltip=Programm auf Arduino laden
+ardublock.ui.clone=klonen (Strg-Rechtsklick)
+ardublock.ui.clone_all=folgende klonen (Strg-Shift-Rechtsklick)
+ardublock.ui.add_comment=Kommentar hinzufügen
+ardublock.ui.delete_comment=Kommentar löschen
+ardublock.ui.organize_blocks=Alle Blöcke neu anordnen
+ardublock.ui.create_refer=Verweis erstellen
+ardublock.ui.website=letsgoING (Web)
+ardublock.ui.website.domain=https://letsgoing.org
+ardublock.ui.website.tooltip=öffnet die letsgoING-Homepage
+ardublock.ui.lmssite=Online Lernen (Web)
+ardublock.ui.lmssite.domain=moodle.letsgoing.org
+ardublock.ui.lmssite.tooltip=öffnet die letsgoING-Lernseiten
+ardublock.ui.reference=Block-Referenz öffnen 
+ardublock.ui.blockreference=Übersicht Block-Referenz öffnen (Web)
+ardublock.ui.blockreference.domain=https://blockreferenz.letsgoing.org/
+ardublock.ui.blockreference.tooltip=öffnet die Blockreferenz
+ardublock.ui.repository=https://gitlab.reutlingen-university.de/letsgoing/ardublock
+ardublock.ui.repository.tooltip=gehe zur ArduBlock Repository
+ardublock.ui.languagestyle=C-Style (Neustart IDE oder neues Programm)
+ardublock.ui.languagestyle.tooltip=Block-Namen umschrieben oder c-style
+ardublock.ui.mode.expert=Full
+ardublock.ui.mode.expert.tooltip=Mehr Blöcke und komplexere Funktionen fuer Fortgeschrittene
+ardublock.ui.mode.standard=Basic
+ardublock.ui.mode.standard.tooltip=Die wichtigsten Blöcke für den Einstieg
+ardublock.ui.mode.sim=Sim
+ardublock.ui.mode.sim.tooltip=ArduBlock Basic mit Simulation "letsgoING-Grundlagen-Hardware"
+ardublock.ui.search=suche Blöcke
+ardublock.ui.search.tooltip=Suche im Arbeitsfenster und den Menüs nach Blöcken
+
+#ardublock.ui.modeButton.mode.tooltip=umschalten zwischen Grundlagen- und Projektblöcken
+ardublock.ui.serialMonitor=Serieller Monitor
+ardublock.ui.serialMonitor.tooltip=öffnet den seriellen Monitor
+ardublock.ui.serialPlotter=Serieller Plotter
+ardublock.ui.serialPlotter.tooltip=öffnet den seriellen Plotter
+ardublock.ui.undo=Undo
+ardublock.ui.undo.tooltip=Rückgängig
+ardublock.ui.redo=Redo
+ardublock.ui.redo.tooltip=Wiederherstellen
+ardublock.ui.saveImage=Als Bild speichern
+ardublock.ui.saveImage.tooltip=Speichert ein Bild des aktuellen Programms
+ardublock.ui.saveDefaultProgram=Als Vorlage speichern
+ardublock.ui.saveDefaultProgram.tooltip=Speichert aktuelles Programm als Vorlage für neue Programme
+ardublock.ui.zoomIn=+
+ardublock.ui.zoomIn.tooltip=vergrößere Programm
+ardublock.ui.zoomOut=-
+ardublock.ui.zoomOut.tooltip=verkleinere Programm
+ardublock.ui.zoomReset=0
+ardublock.ui.zoomReset.tooltip=zurücksetzen
+ardublock.ui.copy=Programm kopieren
+ardublock.ui.copy.tooltip=kopiere gesamtes Programm in Zwischenablage
+ardublock.ui.paste=Programm einfügen
+ardublock.ui.paste.tooltip=füge gesamtes Programm aus Zwischenablage ein
+ardublock.ui.help=Hilfe zu ArduBlock
+ardublock.ui.help.tooltip=Hilfe zu ArduBlock
+ardublock.ui.simulation=Hochladen auf den Simulator
+ardublock.ui.simulation.tooltip=Starte den Simulator und lade das Programm hoch
+ardublock.ui.simulatorHelp=Hilfe zum Simulator
+ardublock.ui.simulatorHelp.tooltip=Infos zum letsgoING-Simulator
+ardublock.ui.simulatorHelp.title=Infos zum letsgoING-Simulator
+ardublock.ui.simulatorHelp.text=TASTER\n**********************\nlinke Maustaste -> Taster-Funktion\nrechte oder mittlere Maustaste -> Schalterfunktion (bleibt aktiv)\n\n\n\nPOTI\n**********************\nSlider ziehen oder mit Mausrad verstellen (Mauszeiger über Slider)\n\n\nSERIALMONITOR\n**********************\nHier werden die Nachrichten vom "Serial.Print"-Block ausgegeben\nAutoscroll:\n    an -> neueste Nachrichten werden angezeigt\n    aus -> Ausgabe kann manuell ausgewählt werden\nReset SerialMonitor: bisherige Ausgabe wird gelöscht\n\n\n\RESET ARDUINO\n**********************\nTaster startet das Programm neu\n\n\n\ONBOARD LED\n**********************\nLED kann über Pin13 angesteuert werden
+ardublock.ui.addLibraries=Bibliotheken hinzufügen
+ardublock.ui.addLibraries.tooltip=Lade nicht-standard Bibliotheken sie in ArduBlock verwendet werden
+
+ardublock.ui.version=v2.2 beta4 
+
+ardublock.ui.appprefix.standard=Basic
+ardublock.ui.appprefix.pro=Pro
+ardublock.ui.appprefix.sim=Simulator
+
+#ERROR
+#****************************
+ardublock.error_msg.unset_variable=Die Variable ist unbestimmt. Bevor die Variable lesend verwendet werden kann, muss ihr ein Wert zugewiesen werden.
+ardublock.error_msg.define_slot=#define benötigt einen define-Konstante-Block.
+ardublock.error_msg.number_const_write=Eine Define-Konstante kann nicht mit einem neuen Wert beschrieben werden. Keine neuen Werte für Define-Konstanten setzen!
+ardublock.error_msg.digital_var_slot=Der 'Variable'-Sockel benötigt einen 'digitale_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
+ardublock.error_msg.number_local_var_slot=Der 'Variable'-Sockel benötigt einen 'lokale_analoge_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
+ardublock.error_msg.number_var_slot= Der 'Variable'-Sockel benötigt einen 'analoge_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
+ardublock.error_msg.number_slot= Der Sockel benötigt einen 'analoge_Variable'-Block oder einen "Analoger Wert"-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
+ardublock.error_msg.long_number_var_slot=Der 'Variable'-Sockel benötigt einen 'Name_der_langen_analogen_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
+ardublock.error_msg.double_number_var_slot=Der 'Variable'-Sockel benötigt einen 'Name_der_dezimalen_analogen_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
+ardublock.error_msg.char_var_slot=Der 'Variable'-Sockel benötigt einen 'Name_der_Zeichen_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
+ardublock.error_msg.array_var_slot=Der 'Variable'-Sockel benötigt einen 'Name_der_Tabelle'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
+ardublock.error_msg.array_size_slot=Der 'Größe' Slot muss einen analogen Wert enthalten
+ardublock.error_msg.string_var_slot=Der 'Variable'-Slot benötigt einen 'Name_der_String_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
+ardublock.error_msg.string_slot= Der 'Wert'-Slot benötigt einen 'String_Variable'-Block oder einen 'Name_der_String_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
+ardublock.error_msg.var_slot= Der Slot benötigt einen 'Variable'-Block
+ardublock.error_msg.local_var_slot=Der 'Variable'-Sockel benötigt einen 'lokale_X_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
+ardublock.error_msg.var_value_slot=Der Sockel benötigt einen 'Variable' oder 'Wert'-Block.\nTIPP: Schaue an dem hervorgehobenen Block!
+ardublock.error_msg.var_value_slot=Es ist nur ein Rueckgabeparameter pro Unterprogramm erlaubt!
+ardublock.error_msg.Digital_pin_slot=Pin# muss einer Pin-Nummer des Arduino-Boards entsprechen
+ardublock.error_msg.Analog_pin_slot=Pin# muss einer analogen Pin-Nummer des Arduino-Boards entsprechen
+ardublock.error_msg.Serial_Read_slot=Der 'nächstes Zeichen' Sockel benötigt einen 'Serial read'- oder 'softSerial read'-Block
+ardublock.error_msg.wrong_block_header=Dieser Block kann nicht im Kopfteil des Programms verwendet werden
+ardublock.error_msg.stepper_duplicated=Es gibt schon einen Stepper mit diesem Namen
+ardublock.error_msg.stepper_not_existing=Es gibt keinen Stepper mit diesem Namen
+ardublock.error_msg.paste.invalid=Zwischenablage enthält keine ArduBlock-Blöcke
+ardublock.error_msg.paste.notpossible=Einfügen ohne Blöcke nicht möglich.
+
+ardublock.error_msg.pid_limit_error=PID-Block: Oberes Limit ist kleiner oder gleich wie unteres Limit
+
+ardublock.error_msg.no_sim_for_block=Dieser Block ist für die Simulation nicht geeignet.
+ 
+#TRANSLATOR
+#****************************
+ardublock.translator.exception.subroutineNameDuplicated=Zwei oder mehr Unterprogramme haben den selben Namen!
+ardublock.translator.exception.noLoopFound=Keine Hauptschleife gefunden\!
+ardublock.translator.exception.multipleLoopFound=Mehrere Hauptschleifen gefunden\!
+ardublock.translator.exception.socketNull=Ein benötigter Wert, Variablenname oder eine Bedingung fehlt!\nTIPP: Suche nach einem leeren Sockel an dem hervorgehobenen Block!
+ardublock.translator.exception.socketNull.consolePrint=Der Name des Blocks:
+ardublock.translator.exception.subroutineNotDeclared=Unterprogramm nicht deklariert!
+ardublock.translator.exception.subroutineNotDeclared.consolePrint=Der Name des Unterprogramms:
+
+#MESSAGE
+#****************************
+message.title.error=Fehler
+message.title.question=Frage
+message.content.open_unsaved=Das Ardublock-Programm hat sich geändert, soll es gespeichert werden?
+message.content.overwrite=Soll das vorhandene Programm überschrieben werden?
+message.content.overwriteDefault=Soll die Programmvorlage überschrieben werden?
+message.file_not_found=Datei wurde nicht gefunden oder der Zugriff wurde verweigert.
+message.file_not_found_new_file=Datei wurde nicht gefunden oder der Zugriff wurde verweigert.\nSoll eine neue Datei erstellt werden?
+message.question.newfile_on_workspace_changed=Das Programm hat sich geändert, soll eine neue Ardublock-Datei erstellt werden?
+message.content.overwriteImage=Soll das vorhandene Bild überschrieben werden?
+message.content.saveOnExit=Soll das Programm gespeichert werden bevor ArduBlock geschlossen wird?
+
+#  EXAMPLES
+#****************************
+ardublock.examples.blink=Blink
+ardublock.examples.digitalserial=digitalRead Serial
+ardublock.examples.analogserial=analogRead Serial
+ardublock.examples.buttonled=digitalRead LED
+ardublock.examples.digitalvariabletoggle=toggle digitale Variable
+ardublock.examples.countervariable=Zaehler
+ardublock.examples.whilebutton=digitalRead solange
+ardublock.examples.psnBroker=PubSubNet Broker
+ardublock.examples.psnClient1=PubSubNet Client1
+ardublock.examples.psnClient2=PubSubNet Client2
+ardublock.examples.psnChat=PubSubNet Chat-Client
+
+
+##################
+#  BLOCK CONFIG  #
+##################
+
+#COMMON
+#****************************
+bg.dummy=Dummy
+bg.dummy.description=Dummy Beschreibung
+
+bc.commands=Befehle
+bc.pin_number=Pin
+bc.pin_number_analog=Pin A
+bc.pwm_pin_number=~Pin
+bc.value=Wert
+bc.variable=Variable
+bc.digital=digital
+bc.analog=analog
+bc.char=Zeichen
+bc.message=Zeichenkette
+
+#CONTROL
+#****************************
+bd.control=Steuerung
+
+bg.controlDivider1=|       Hauptschleifen       |
+bg.controlDivider2=|       Verzweigungen       |
+bg.controlDivider3=|       Schleifen       |
+bg.controlDivider4=|       Warten       |
+
+bg.loop=wiederhole fortlaufend
+#legacy support
+bg.loop1=wiederhole fortlaufend
+bg.loop1.description=Hauptschleife loop()
+bg.loop2=wiederhole fortlaufend
+bg.loop2.description=Hauptschleife loop()
+bg.loop3=wiederhole fortlaufend
+bg.loop3.description=Hauptschleife loop()
+#End of legacy support
+bg.program=Programm
+bg.sketch=Programm
+bg.setup=Setup
+bg.if=falls
+bg.elseif=sonst falls
+bg.else=sonst
+bg.ifelse=falls/sonst
+bg.repeat_times=wiederhole
+bg.repeat=wiederhole und zaehle
+bg.repeat_control=
+bg.break=unterbreche
+bg.delay=warte Millisekunden
+bg.delay_microseconds=warte Microsekunden
+bg.while=solange
+bg.do_while=mache solange
+bg.wait=solange (millis)
+
+bg.program.description=Schleife und Setup
+bg.sketch.description=Programm mit global-Teil, setup() und loop()
+bg.loop.description=Schleife mit automatischem Setup
+bg.delay.description=Warte Millisekunden. Solange tut das Programm nichts
+bg.if.description=Führe Befehle aus, wenn die Bedingung WAHR ist
+bg.elseif.description=Führe die Befehle aus wenn "falls-Block" FALSCH ist und Bedingung WAHR \n->falls-Block wird benoetigt!!
+bg.else.description=Führe die Befehle aus wenn "falls-Block" (und evtl. "sonst-falls") FALSCH ist \n->falls-Block wird benoetigt!!
+bg.ifelse.description=Führe die ersten Befehle aus wenn die Bedingung WAHR ist, sonst die zweiten
+bg.while.description=Führe Befehle aus, solange die Bedingung WAHR ist
+bg.do_while.description=Führe Befehle aus, solange die Bedingung WAHR ist
+bg.repeat_times.description=Wiederhole die Befehle x-mal
+bg.repeat.description=Wiederhole die Befehle x-mal. Die Wiederholungen werden in der Variable gespeichert
+bg.repeat_control.description=
+bg.break.description=Beende die aktuelle Schleife\nACHTUNG: Nicht in der Hauptschleife verwenden!
+bg.delay_microseconds.description=Warte Mikrosekunden. Solange tut das Programm nichts
+bg.wait.description=Die Bloecke innerhalb dieses Blocks werden ausgeführt x Millisekunden ausgeführt. 
+
+bc.head=
+bc.setup=Setup
+bc.loop=Loop
+bc.loop.description=Liste mit Befehlen die fortlaufen wiederholt wird.
+
+bc.do=mache
+bc.var=Name der Iterationsvariable
+bc.microseconds=Microsekunden
+bc.milliseconds=Millisekunden
+bc.transmit=uebertrage
+bc.repeat_times=mal
+bc.test=teste
+bc.then=dann
+bc.else=sonst
+bc.condition=teste
+bc.start=start
+bc.end=stop
+bc.increment=Schritte von
+bc.time=Millisekunden
+bc.sub_var = Uebergabewert
+bc.sub_return = Rückgabewert
+bc.irName = ISR Name
+bc.irNumber = IR Nummer
+bc.irType = IR Modus
+bc.fcn_description=Beschreibung
+
+#SUBROUTINES
+#****************************
+bd.subroutines = Unterprogramme
+
+bg.subroutineDivider1=|       Ohne Uebergabewerte       |
+bg.subroutineDivider2=|       Mit Uebergabewerten       |
+bg.subroutineDivider3=|       Unterbrechungsprogramm       |
+
+bg.subroutine_param = up_Unterprogramm
+bg.subroutine_ref = up_Unterprogramm
+bg.subroutine_ref_digital = up_Unterprogramm
+bg.subroutine_ref_number = up_Unterprogramm
+bg.param_digital = verbinde
+bg.param_number = verbinde
+bg.param_char = verbinde
+bg.param_ref_digital = verbinde
+bg.param_ref_number = verbinde
+bg.param_ref_char = verbinde
+bg.interrupt=interrupt
+
+bg.subroutine_param.description = Unterprogramm
+bg.subroutine_ref.description = Aufruf Unterprogramm
+bg.subroutine_ref_digital = Aufruf Unterprogramm
+bg.subroutine_ref_number = Aufruf Unterprogramm
+bg.param_digital.description = Verbinder für digitalen Parameter
+bg.param_number.description = Verbinder für analogen Parameter
+bg.param_char.description = Verbinder für  Zeichen als Parameter
+bg.param_ref_digital.description = Verbinder für  digitalen Uebergabewert
+bg.param_ref_number.description = Verbinder für analogen Uebergabewert
+bg.param_ref_char.description = Verbinder für Zeichen als Uebergabewert
+bg.interrupt.description=Interrupt-Block\nIR-Nr.0 = Pin2\nIR-Nr.1 = Pin3\n\nIR-Mode\n0: LOW\n1: HIGH\n2: RISING\n3: FALLING\n4: CHANGE\n
+
+bc.param_connector=naechster Uebergabewert
+
+#legacy support
+bg.subroutine_com=Unterprogramm
+bg.subroutine-ref=Unterprogramm
+bg.subroutine_var_com=UP_mit_Uebergabe
+bg.subroutine-ref_var=UP_mit_Uebergabe
+bg.subroutine_varret_com=UP_mit_Rueckgabe
+bg.subroutine-ref_varret=UP_mit_Rueckgabe
+bg.ref_var=Uebergabe_Variable
+
+bg.subroutine_com.description=Erstellt ein Unterprogramm.\nDas Unterprogramm muss im Hauptprogramm aufgerufen werden
+bg.subroutine-ref.description=Ruft das Unterprogramm mit gleichem Namen auf
+bg.subroutine_varret_com.description=Erstellt ein Unterprogramm mit Übergabe- und  Rückgabewert
+bg.subroutine-ref_varret.description=Ruft das Unterprogramm mit gleichem Namen auf.\n Gibt den Rückgabewert vom Unterprogramm aus und übergibt den Übergabewert
+bg.subroutine_var_com.description=Erstellt ein Unterprogramm mit Übergabewert
+bg.subroutine-ref_var.description=Ruft das Unterprogramm mit gleichem Namen auf und übergibt den Übergabewert
+
+bg.subroutine_varret=UP_mit_Rueckgabe
+bg.subroutine_var=UP_mit_Uebergabe
+bg.subroutine=Unterprogramm
+bg.subroutine_varret.description=Erstellt ein Unterprogramm mit Übergabe- und  Rückgabewert
+bg.subroutine_var.description=Erstellt ein Unterprogramm mit Übergabewert
+bg.subroutine.description=Erstellt ein Unterprogramm.\nDas Unterprogramm muss im Hauptprogramm aufgerufen werden
+
+#OUTPUT
+#****************************
+bd.output=Output
+
+bg.outputDivider1=|       Pins       |
+bg.outputDivider2=|       NeoPixel LEDs       |
+bg.outputDivider3=|       Toene       |
+bg.outputDivider4=|       Servomotoren       |
+bg.outputDivider5=|       Schrittmotoren       |
+
+bg.pin-write-analog=analogWrite
+bg.pin-write-digital=digitalWrite
+bg.pin-mode-output= pinMode OUTPUT
+bg.servo_default=Servo
+bg.tone=Ton
+bg.tone_time=Ton
+bg.no_tone=kein Ton
+bg.attach_servo_default=Servo verbinden
+bg.detach_servo_default=Servo trennen 
+
+bg.neopixel_init=Setup Pixel 
+bg.neopixel_pixel_color=Farbe fuer Pixel RGB [0...255]
+bg.neopixel_show= Daten an Pixel senden
+bg.neopixel_brightness=Pixel Helligkeit[0...255]
+bg.stepper_2pin=Setup fuer Stepper
+bg.stepper_4pin=Setup fuer Stepper
+bg.stepper_set_rpm=Stepper U/min
+bg.stepper_steps=Stepper Schritte
+
+bg.attach_servo_default.description=Servo verbinden
+bg.detach_servo_default.description=Servo trennen
+bg.servo_default.description=Steuere einen Servo an
+bg.stepper_2pin.description=Setup für einen Schrittmotor mit 2-Pin-Ansteuerung
+bg.stepper_4pin.description=Setup für einen Schrittmotor mit 4-Pin-Ansteuerung
+bg.stepper_set_rpm.description=Setze Geschwindigkeit für Schrittmotor (Umdrehungen pro Minute)
+bg.stepper_steps.description=Bewege Schrittmotor X Schritte
+bg.tone.description=Generiert ein Rechtecksignal mit der angegebenen Frequenz(und 50 % Tastverhältnis) auf dem Pin.
+bg.tone_time.description=Generiert ein Rechtecksignal für eine bestimmte Zeit mit der angegebenen Frequenz(und 50 % Tastverhältnis) auf dem Pin.
+bg.no_tone.description=Beendet das Rechtecksignals das durch tone() ausgelöst wurde.
+bg.pin-write-digital.description=Ausgangwert für digitalen Pin festlegen [HIGH / LOW]
+bg.pin-write-analog.description=PWM-Ausgang erhält Wert [0-255]
+bg.pin-mode-output.description= Setze Pin als Ausgang (OUTPUT)
+bg.neopixel_brightness.description=Stellt die Helligkeit der gesamten Kette ein
+bg.neopixel_pixel_color.description=Farbewerte fuer einen bestimmten Pixel festlegen
+bg.neopixel_init.description=Initialisiert die RGB-Pixel\nSchnittstelle: NEO_KHZ800 / NEO_KHZ400\nFarbfolge: NEO_GRB / NEO_RGB
+bg.neopixel_show.description=Daten werden erst mit diesem Befehl an die Pixel übertragen
+
+bc.steps=Schritte/U
+bc.speed=U/min
+bc.red=Rot Start
+bc.blue=Blau Start
+bc.green=Gruen Start
+bc.brightness=Helligkeit
+bc.Nb_of_Led=Wie viele Pixel
+bc.Nb_of_Led.description=Wie viele Pixel hat die Kette
+bc.Pixel_Nb=Nummer Pixel
+bc.Pixel_Nb.description=Welches Pixel soll programmiert werden (beginnend mit 0)
+bc.schnittstelle=Schnittstelle
+bc.farbfolge=Farbfolge
+bc.angle=Winkel
+bc.frequency =Frequenz
+
+#INPUT
+#****************************
+bd.input=Input
+
+bg.inputDivider1=|       Pins       |
+bg.inputDivider2=|       Touch       |
+bg.inputDivider3=|       Sensoren       |
+
+bg.pin-read-analog=analogRead
+bg.pin-read-digital=digitalRead
+bg.pin-read-digital-pullup=inputPullup
+bg.pin-mode-input=pinMode INPUT
+bg.LGI_Ultrasonic=lese Ultraschall Sensor
+bg.LGI_Ultrasonic2Pin=lese Ultraschall Sensor
+
+bg.LGI_Qtouch_Init1=Setup fuer Q-Touch-Button1
+bg.LGI_Qtouch_Init2=Setup fuer Q-Touch-Button2
+bg.LGI_Qtouch_Init3=Setup fuer Q-Touch-Button3
+bg.LGI_Qtouch_Button1_getOffset=Offset von Q-Touch-Button1
+bg.LGI_Qtouch_Button2_getOffset=Offset von Q-Touch-Button2
+bg.LGI_Qtouch_Button3_getOffset=Offset von Q-Touch-Button3
+bg.LGI_Qtouch_Button1_getRaw=Raw-Wert von Q-Touch-Button1
+bg.LGI_Qtouch_Button2_getRaw=Raw-Wert von Q-Touch-Button2
+bg.LGI_Qtouch_Button3_getRaw=Raw-Wert von Q-Touch-Button3
+bg.LGI_Qtouch_Button1_isTouched=Q-Touch-Button1 beruehrt?
+bg.LGI_Qtouch_Button2_isTouched=Q-Touch-Button2 beruehrt?
+bg.LGI_Qtouch_Button3_isTouched=Q-Touch-Button3 beruehrt?
+bg.LGI_Qtouch_Slider_Init=Q-Touch-Slider Setup
+bg.LGI_Qtouch_Slider_getTouchPosition=Wert von Q-Touch-Slider
+bg.LGI_Qtouch_Slider_getOffset1=Offset1 von Q-Touch-Slider
+bg.LGI_Qtouch_Slider_getOffset2=Offset2 von Q-Touch-Slider
+bg.LGI_Qtouch_Slider_getOffset3=Offset3 von Q-Touch-Slider
+bg.dht_sensor_setup=Setup DHT Sensor
+bg.dht_sensor_read_temp=DHT lese Temperatur
+bg.dht_sensor_read_humid=DHT lese Luftfeuchtigkeit
+bg.dht_sensor_calc_index=DHT berechne Hitzeindex
+
+bg.pin-read-analog.description=Liest den analogen Wert vom Pin. 0V = 0. 5V = 1023
+bg.pin-read-digital.description=Liest den digitalen Wert vom Pin ein (HIGH or LOW)
+bg.pin-read-digital-pullup.description=Setzt den Pin auf Eingang mit einem Pullup-Widerstand\n Gibt HIGH zurück, wenn nichts angeschlossen ist
+bg.pin-mode-input.description= Setze Pin als Eingang (INPUT)
+bg.LGI_Ultrasonic.description=Lese Messwert vom Unltraschallsensor
+bg.LGI_Ultrasonic2Pin.description=Lese Messwert vom Unltraschallsensor
+bg.LGI_Qtouch_Init1.description=Setup fuer Q-Touch-Button1
+bg.LGI_Qtouch_Init2.description=Setup fuer Q-Touch-Button2
+bg.LGI_Qtouch_Init3.description=Setup fuer Q-Touch-Button3
+bg.LGI_Qtouch_Button1_getOffset.description=Gibt den für den Nullabgleich verwendeten Wert zurück
+bg.LGI_Qtouch_Button2_getOffset.description=Gibt den für den Nullabgleich verwendeten Wert zurück
+bg.LGI_Qtouch_Button3_getOffset.description=Gibt den für den Nullabgleich verwendeten Wert zurück
+bg.LGI_Qtouch_Button1_getRaw.description=Gibt den gemessenen, analogen Wert zurück
+bg.LGI_Qtouch_Button2_getRaw.description=Gibt den gemessenen, analogen Wert zurück
+bg.LGI_Qtouch_Button3_getRaw.description=Gibt den gemessenen, analogen Wert zurück
+bg.LGI_Qtouch_Button1_isTouched.description=Gibt WAHR zurück, wenn Button1 berührt wird
+bg.LGI_Qtouch_Button2_isTouched.description=Gibt WAHR zurück, wenn Button2 berührt wird
+bg.LGI_Qtouch_Button3_isTouched.description=Gibt WAHR zurück, wenn Button3 berührt wird
+bg.LGI_Qtouch_Slider_Init.description=QTouch-Slider initialisieren
+bg.LGI_Qtouch_Slider_getTouchPosition.description=Gibt die Position vom Q-Touch-Slider zurük [0...100]
+bg.LGI_Qtouch_Slider_getOffset1.description=Ermittelt den Offset vom ersten Slider-Element
+bg.LGI_Qtouch_Slider_getOffset2.description=Ermittelt den Offset vom zweiten Slider-Element
+bg.LGI_Qtouch_Slider_getOffset3.description=Ermittelt den Offset vom dritten Slider-Element
+bg.dht_sensor_setup.description=Setup fuer DHT Sensor\nFestlegen des Anschlusspins\nFestlegen des Sensor-Typs\nDHT11, DHT21, DHT22
+bg.dht_sensor_read_temp.description=Lese Temperatur in °C
+bg.dht_sensor_read_humid.description=Lese Luftfeuchtigkeit in %
+bg.dht_sensor_calc_index.description=berechne Hitzeindex in °C\n(gefuehlte Temperatur)
+
+bc.analogpin_number=#AnalogPin
+bc.dhtType=DHT
+bc.DHTtemp=Temperatur
+bc.DHThumid=Luftfeuchtigkeit
+bc.triggerPin=Trigger-Pin
+bc.echoPin=Echo-Pin
+
+#LOGIC
+#****************************
+bd.logic=Log. Operatoren
+#bd.logic=Tests
+
+bg.logicDivider1=|       Logische Verknuepfungen      |
+bg.logicDivider2=|       Vergleiche       |
+bg.logicDivider3=|       Bit Operationen       |
+
+bg.not_equal_poly= !=
+bg.equal_poly= ==
+bg.equal_digital===
+bg.not_equal_digital=!=
+bg.greater=>
+bg.greater_equal=>=
+bg.less=<
+bg.less_equal=<=
+bg.not=NICHT
+bg.not_equal=!=
+bg.and=UND
+bg.or=ODER
+bg.equal_digital===
+bg.not_equal_digital=!=
+bg.bit_and_poly=&
+bg.bit_or_poly=|
+bg.bit_xor_poly=^
+bg.bit_not_poly=~
+bg.bit_and=&
+bg.bit_or=|
+bg.bit_xor=^
+bg.bit_not=~
+bg.bit_shift_left=<<
+bg.bit_shift_right=>>
+
+bg.greater.description=WAHR, wenn der erste Wert größer als der Zweite ist
+bg.less.description=WAHR, wenn der erste Wert kleiner als der Zweite ist
+bg.equal.description=WAHR, wenn beide analogen Werte identisch sind
+bg.equal_digital.description=WAHR, wenn beide digitalen Werte identisch sind
+bg.greater_equal.description=WAHR, wenn der erste Wert größer oder gleich dem Zweiten ist
+bg.less_equal.description=WAHR, wenn der erste Wert kleiner oder gleich dem Zweiten ist
+bg.not_equal.description=WAHR, wenn NICHT beide analogen Werte identisch sind
+bg.not_equal_digital.description=WAHR, wenn NICHT beide digitalen Werte identisch sind
+bg.and.description=WAHR, wenn beide beide Bedingungen erfüllt sind.
+bg.or.description=WAHR, wenn eine oder beide Bedingungen erfüllt sind.
+bg.not.description= Das Gegenteil von (z.B. WAHR wird zu FALSCH)
+bg.equal_poly.description=WAHR wenn die zwei Zeichen identisch sind
+bg.not_equal_poly.description=WAHR wenn die zwei Zeichen NICHT identisch sind
+bg.bit_and_poly.description=bitweises UND
+bg.bit_or_poly.description=bitweises ODER
+bg.bit_xor_poly.description=bitweises XOR
+bg.bit_not_poly.description=bitweises NICHT
+bg.bit_and.description=bitweises UND
+bg.bit_or.description=bitweises ODER
+bg.bit_xor.description=bitweises EXCLUSIV-ODER
+bg.bit_not.description=bitweises NICHT
+bg.bit_shift_left.description=verschiebe Bits nach links
+bg.bit_shift_right.description=verschiebe Bits nach rechts
+
+#OPERATORS
+#****************************
+bd.operators=Math. Operatoren
+
+bg.mathDivider1=|       Operatoren       |
+bg.mathDivider2=|       Signalanpassung      |
+bg.mathDivider3=|       Zufallszahl      |     
+bg.mathDivider4=|       PID-Regler       |  
+
+bg.constrain=einschränken
+bg.abs=abs
+bg.addition=+
+bg.cos=cos
+bg.division=/
+bg.equal===
+bg.map=zuordnen
+bg.map_common=map [0, 1023] to [0, 255]
+bg.max=max
+bg.min=min
+bg.modulo=%
+bg.multiplication=x
+bg.pow=Potenz
+bg.random=Zufallszahl
+bg.random_range=Zufallszahl
+bg.sin=sin
+bg.sqrt=Wurzel
+bg.log=log
+bg.subtraction=-
+bg.tan=tan
+
+bg.addition.description=Summe zweier Zahlen
+bg.subtraction.description=Differenz zweier Zahlen
+bg.multiplication.description=Produkt zweier Zahlen
+bg.division.description=Quotient zweier Zahlen
+bg.random.description=Erzeuge Zufallszahl zwischen "0" und "max-1"
+bg.map_common.description=Ordne die Werte von [0, 1023] zu den Werten von [0, 255]
+bg.map.description=Ordne Werte vom Bereich "von" zum Bereich "zu"
+bg.constrain.description=Beschränke eine analoge Zahl auf einen Bereich
+bg.random_range.description=Erzeuge Zufallszahl zwischen "min" und "max-1"
+bg.log.description=Natuerlicher Logarithmus
+
+bc.max=max
+bc.min=min
+bc.to=bis
+bc.fromLow= von Low
+bc.fromHigh=von High
+bc.toLow=nach Low
+bc.toHigh=nach High
+bc.from=von
+bc.base=Basis
+bc.exponent=Exponent
+bc.low=unterer
+bc.high=oberer
+bc.element = Element
+
+
+bg.pid=PID
+bg.pid_limit=PID
+bg.pid.description= PID Regler-Block
+bg.pid_limit.description= PID Regler-Block mit Begrenzung
+
+
+bc.input=Istwert
+bc.setpoint=Sollwert
+bc.interval=Intervall
+bc.kp=Kp
+bc.ki=Ki
+bc.kd=Kd
+bc.limitL=unteres Limit
+bc.limitH=oberes Limit
+
+#CAST
+#****************************
+bd.cast=Typ Konvertierung
+
+bg.castDivider1=|       Zeichenketten <-> analoge Werte      |
+bg.castDivider2=|       Datentypen      |
+bg.castDivider3=|       kurze analoge Werte <-> Zeichen       |
+
+bg.cast_atoi=Zeichenkette zu analogem Wert
+bg.cast_itoa=analoger Wert zu Zeichenkette
+bg.cast_number=wandle in analogen Wert
+bg.cast_number_byte=wandle in kurzen analogen Wert
+bg.cast_number_long=wandle in langen analogen Wert
+bg.cast_number_float=wandle in dezimalen Wert
+bg.cast_byte_char=wandle kurzen analoger Wert in Zeichen
+bg.cast_char_byte=wandle Zeichen zu kurzem analogen Wert
+bg.cast_low_int_char=unterer Teil analoger Wert zu Zeichen
+bg.cast_up_int_char=oberer Teil analoger Wert zu Zeichen
+bg.cast_char_int=Zeichen zu analoger Wert
+bg.cast_byte_int=kurzer analoger Wert zu analogem Wert
+
+bg.cast_atoi.description=lese analogen Wert (int) aus Zeichenkette (char)
+bg.cast_itoa.description=erstelle  Zeichenkette (char) aus analogem Wert (int)
+bg.cast_number.description=wandle in analogen Wert
+bg.cast_number_byte.description=wandle in kurzen analogen Wert
+bg.cast_number_long.description=wandle in langen analogen Wert
+bg.cast_number_float.description=wandle in dezimalen Wert
+bg.cast_byte_char.description=wandle analogen Wert zu Zeichen
+bg.cast_char_byte.description=wandle Zeichen zu kurzem analogen Wert
+bg.cast_low_int_char.description=wandle unteren Teil von analogem Wert zu Zeichen
+bg.cast_up_int_char.description=wandle oberen Teil von analogem Wert zu Zeichen
+bg.cast_char_int.description=erzeuge analogen Wert aus zwei Zeichen
+bg.cast_byte_int.description=erzeuge analogen Wert aus zwei kurzen analogen Werten
+
+bc.lowerByte=unterer Wert
+bc.upperByte=oberer Wert
+
+#NUMBERS
+#****************************
+bd.number=Variablen/Konstanten
+
+bg.numberDivider1=|       Zeit ab Start      |
+bg.numberDivider2=|       Digitale Variablen      |
+bg.numberDivider3=|       Analoge Variablen       |
+bg.numberDivider4=|       Zeichen/Text       |
+bg.numberDivider5=|       Konstanten       |
+
+bg.millis=Millis
+bg.digital-high=HIGH
+bg.digital-low=LOW
+bg.true=true
+bg.false=false
+
+bg.string=ABCD
+bg.char=A
+bg.number=1
+bg.setter_variable_digital=Setze digitale Variable
+bg.setter_variable_number=Setze analoge Variable
+bg.setter_variable_number_byte=Setze kurze analoge Variable
+bg.setter_variable_number_long=Setze lange analoge Variable
+bg.setter_variable_number_float=Setze dezimale Variable
+bg.setter_variable_char=Setze Zeichen Variable
+bg.setter_variable_string=Setze Zeichenkette
+bg.setter_define_digital=Definiere Konstante
+bg.setter_define_number=Definiere Konstante
+bg.variable_digital=digitale_Variable
+bg.constant_digital=digitale_Konstante
+bg.variable_number=analoge_Variable
+bg.constant_number=analoge_Konstante
+bg.variable_char=Zeichen_Variable
+bg.local_variable_char=lokale_Zeichen_Variable
+bg.variable_string=Zeichenketten_Variable
+bg.local_variable_string=lokale_Zeichenketten_Variable
+bg.variable_file=Datei_Variable
+bg.local_variable_file=lokale_Datei_Variable
+bg.local_variable_number=lokale_analoge_Variable
+bg.local_variable_digital=lokale_digitale_Variable
+
+g.millis.description=Gibt die Millisekungen seit Programmstart zurück\n(langer analoger Wert)
+bg.true.description=digitaler Wert WAHR (true)
+bg.false.description=digitaler Wert FALSCH (false)
+bg.digital-high.description=Pin HIGH
+bg.digital-low.description=Pin LOW
+bg.char.description=Ein ASCII-Zeichen
+bg.number.description=analoger Ganzzahlwert (int)-Wert (-32,768 bis +32,767)
+bg.variable_number.description=Name der analogen Variable (int)\nDatentyp hängt vom \"Setze-Block\" ab
+bg.constant_number.description=Name der analogen Konstante (byte|int|float)\nDie Konstante kann nur einmal definiert werden.
+bg.variable_digital.description=Name der digitalen Variable (bool)
+bg.constant_digital.description=Name der digitalen Konstante (bool)\nDie Konstante kann nur einmal definiert werden.
+bg.variable_string.description=Name der Zeichenketten Variable  (char[]-Array)
+bg.local_variable_string.description=Name der lokalen Zeichenketten Variable (char[]-Array)
+bg.setter_variable_number.description=Setze eine analoge Variable (int).\n-32,768 bis +32,767
+bg.setter_variable_number_byte.description=Setze eine kurze analoge Variable (byte).\n 0 bis 255
+bg.setter_variable_number_long.description=Setze eine lange analoge Variable (long). \n-2,147,483,648 bis 2,147,483,647
+bg.setter_variable_number_float.description=Setze eine dezimale Variable (float).\n +/- 3.4028235E+38
+bg.setter_variable_digital.description=Setze eine digitale Variable (bool).\nHIGH or LOW
+bg.setter_variable_string.description=Setze eine Zeichenkette Variable (char[]-Array)
+bg.setter_variable_char.description=Setze ASCII-Zeichen Variable (char)
+bg.setter_define_digital.description=Deiniere digitale (bool) Konstante.\n(Bezeichnung wird beim Hochladen durch Wert ersetzt)
+bg.setter_define_number.description=Deiniere analoge (byte/int/float) Konstante.\n(Bezeichnung wird beim Hochladen durch Wert ersetzt)
+bg.variable_char.description=ASCII-Zeichen Variable (char)
+bg.local_variable_char.description=lokale Zeichen Variable (char)
+bg.string.description=Zeichenkette (char[]-Array)
+bg.variable_file.description=Datei Variable
+bg.local_variable_file.description=lokale Datei Variable
+bg.local_variable_number.description=Name der lokalen analogen Variable (int)\nDatentyp hängt vom \"Setze-Block\" ab
+bg.local_variable_digital.description=Name der lokalen digitalen Variable (bool)
+
+bc.num=#
+bc.position=Position
+bc.variable_digital=digitale_Variable
+bc.variable_number=analoge_Variable
+bc.variable_number_long =lange_analogen_Variable
+bc.variable_number_float=dezimale_Variable
+
+#TEST NEW BLOCKDESIGN
+bg.setter_variable_digital_line=setze digitale variable
+bg.setter_variable_digital_line.description=Schreibe neuen Wert in digitale (bool) Variable
+bg.setter_variable_analog_line=setze analoge variable
+bg.setter_variable_analog_line.description=Schreibe neuen Wert in analoge (int) Variable
+bg.create_variable_analog=erstelle analoge variable
+bg.create_variable_analog.description=Erstelle neue int Variable\nOptional mit Startwert
+bg.create_array_analog=setze analoge Tabelle
+bg.create_array_analog.description=Erstelle neues int Array\nOptional mit Startwert
+
+#ARRAYS
+#****************************
+bd.array=Tabellen
+
+bg.arrayDivider1=|       analoge Tabellen      |
+bg.arrayDivider2=|       Zeichenketten      |
+bg.arrayDivider3=|       kopieren/ersetzen      |
+
+bg.create_char_array=Erstelle Zeichenkette
+bg.read_char_array=lese Zeichen
+bg.setter_char_array=setze Zeichen
+bg.create_number_array=Erstelle analoge Tabelle
+bg.create_number_byte_array=Erstelle kurze analoge Tabelle
+bg.create_number_long_array=Erstelle lange analoge Tabelle
+bg.create_number_float_array=Erstelle dezimale Tabelle
+bg.setter_number_array=Setze Tabellen-Feld
+bg.read_number_array=Lese Tabellenelement
+
+bg.create_char_array.description=Erstelle Zeichenkette (char[])
+bg.read_char_array.description=lese Zeichen (char) an Position
+bg.setter_char_array.description=setze Zeichen (char) an Position
+bg.create_number_array.description=Erzeuge ein Array für analoge Werte (int)\n-32,768 bis +32,767
+bg.create_number_byte_array.description=Erzeuge ein Array für kurze analoge Werte (byte)\n 0-255
+bg.create_number_long_array.description=Erzeuge ein Array für lange analoge Werte (long)
+bg.create_number_float_array.description=Erzeuge ein Array für dezimale Werte (float)
+bg.setter_number_array.description=Setze den Wert eines Array-Feldes
+bg.read_number_array.description=Lese den Wert eines\nTabellen-Feldes
+
+bg.memcpy_number=kopiere Tabelle
+bg.memcpy_number.description=kopiere einen Speicherbereich von einem Ort (Quelle) in einen anderen (Ziel).\nACHTUNG: Laenge in Bytes angeben 
+bg.memset_number=ersetze Werte in Tabelle
+bg.memset_number.description=ersetze eine bestimmte Anzahl Werte in einer Tabelle
+bg.memcpy_string=kopiere Zeichenkette (Teil)
+bg.memcpy_string.description=kopiere einen Speicherbereich von einem Ort (Quelle) in einen anderen (Ziel) 
+bg.memset_string=ersetze Werte in Zeichenkette
+bg.memset_string.description=ersetze eine bestimmte Anzahl Zeichen durch ein anderes
+bg.strcpy_string=kopiere Zeichenkette
+bg.strcpy_string.description=kopiere eine Zeichenkette (Quelle) in eine andere (Ziel)
+bg.reference_string=Offset Zeichenkette
+bg.reference_string.description=Verschiebt die Startposition ab der die Zeichenkette verwendet wird \n-> &array[x]
+bg.reference_number=Offset Tabelle
+bg.reference_number.description=Verschiebt die Startposition ab der die Tabelle verwendet wird \n-> &array[x]
+bg.sizeof_number=Anzahl Stellen Tabelle
+bg.sizeof_number.description=Gibt Anzahl der verfuegbaren Stellen der Tabelle zurueck \n-> sizeOf(Array)/sizeOf(Datentyp)
+bg.sizeof_string=Anzahl Stellen Zeichenkette
+bg.sizeof_string.description=Gibt Anzahl der verfuegbaren Stellen der Zeichenkette zurueck \n-> sizeOf(Array)/sizeOf(Datentyp)
+bg.strlen_string=Länge der Zeichenkette
+bg.strlen_string.description=Gibt Laenge der Zeichenkette zurueck\n(Bis zum ersten String-Ende -> '\\0')
+
+bc.string=Zeichenkette
+bc.position=Stelle
+bc.array=Tabellen-Name
+bc.vecsize=Anzahl Werte
+bc.count_chars=Anzahl Zeichen
+bc.count=Anzahl
+bc.dest=Ziel
+bc.source=Quelle
+
+#COMMUNICATION
+#****************************
+bd.communication=Kommunikation
+
+bg.communicationDivider1=|       Seriell      |
+bg.communicationDivider2=|       Software Seriell      |
+bg.communicationDivider3=|       Verbinder      |
+bg.communicationDivider4=|       Hilfsfunktionen      |
+
+bg.glue_poly=verbinde
+bg.glue_msg=verbinde
+bg.glue_sb=verbinde
+bg.glue_sn=verbinde
+bg.serial_parseInt=Serial parseAnalog
+bg.serial_available=Serial available
+bg.serial_read=Serial read
+bg.serial_print=Serial print
+bg.serial_begin=Serial begin 
+bg.soft_serial_begin=softSerial begin 
+bg.soft_serial_print=softSerial print
+bg.soft_serial_read=softSerial read
+bg.soft_serial_available=softSerial available
+#bg.serial_println=serial println
+bg.serial_write=serial write
+bg.serialEvent=serialEvent
+bg.glue_digital=verbinde
+bg.glue_number=verbinde
+bg.glue_char=verbinde
+bg.glue_string=verbinde
+bg.read_serial_monitor=lese von SerialMonitor
+
+bg.tele_set_frame=schreibe Daten in Frame
+bg.tele_read_frame=lese Frame seriell ein
+bg.tele_read_data_frame=lese Daten aus Frame
+bg.mqtt_set_frame=erstelle MQTT Frame
+bg.mqtt_read_frame=lese aus MQTT Frame
+
+bg.serial_write.description=Sende Nachricht via Serial
+bg.serial_print.description=Sende Nachricht via Serial
+bg.serial_read.description=Lese Zeichen via Serial als kurze analoge Variable ein\n(siehe ASCII-Tabelle)
+bg.serial_available.description=Daten verfügbar an Serial
+#bg.serial_println.description=Send message via Serial port with a return
+bg.serial_begin.description=Starte Serial Schnittstelle mit bestimmter Baudrate 
+bg.soft_serial_begin.description=Starte SoftwareSerial Schnittstelle mit bestimmter Baudrate
+bg.soft_serial_print.description=Sende Nachricht via Software Serial
+bg.soft_serial_read.description=Lese Nachricht via Software Serial
+bg.soft_serial_available.description=Daten verfügbar an Software Serial
+bg.serial_parseInt.description=Lese den nächsten analogen Wert via Serial
+bg.glue_sn.description=Verbindet Zahlen mit einer Zeichenkette
+bg.glue_sb.description=Verbindet digitale Werte mit einer Zeichenkette
+bg.glue_poly.description=Verbindet Zeichen mit einer Zeichenkette
+bg.glue_msg.description=Verbinde Zeichenketten miteinander
+bg.serialEvent.description=Unterprogramm serialEvent, wird ausgeführt wenn Daten an Serial 
+bg.glue_digital.description=Verbinde digitalen Wert mit Zeichenkette
+bg.glue_number.description=Verbinde analogen Wert mit Zeichenkette
+bg.glue_char.description=Verbinde Zeichen mit Zeichenkette
+bg.glue_string.description=Verbinde Zeichenkette mit Zeichenkette
+bg.read_serial_monitor.description=Lese Zeichen vom SerialMonitor bis Zeilenende "CR" und schreibe diese in Zeichenkette.
+
+bg.tele_set_frame.description=schreibe Daten in den Telegramm-Rahmen
+bg.tele_read_frame.description=lese Daten von der seriellen Schnittstelle im letsgoING-Telegramm-Format
+bg.tele_read_data_frame.description=lese Daten aus dem Telegramm-Rahmen\n HINWEIS: Senderadresse 0 erhält Daten von allen Sendern
+bg.mqtt_set_frame.description=schreibe Daten in MQTT-Rahmen\n(letsgoING-IOT-Modul)
+bg.mqtt_read_frame.description=lese Daten aus MQTT-Rahmen\n(letsgoING-IOT-Modul)
+
+
+bc.print=print
+bc.ln=neue Zeile
+bc.rx_pin_number=Rx Pin
+bc.tx_pin_number=Tx Pin
+bc.baudrate=Baud
+bc.read_array=lese-Zeichenkette
+
+bc.sendAddress= Adr. Sender
+bc.recAddress=Adr. Empfänger
+bc.dataLength=Länge Daten [0-9]
+bc.sendBuffer=zu sendender Frame
+bc.recFrame=empfangener Frame
+bc.recBuffer=Empfangspuffer
+bc.recChars=Anz. empfangene Zeichen 
+bc.nextChar=nächstes Zeichen
+bc.dataComplete=Daten komplett
+bc.command=Befehlsart
+
+#DIDACTIC NETWORK
+#****************************
+bd.didacticnetwork = Didaktik Netzwerk
+
+bg.didacticnetworkDivider1=|       PubSub Netzwerk      |
+bg.didacticnetworkDivider2=|       PubSub publish      |
+bg.didacticnetworkDivider3=|       PubSub subscribe      |
+bg.didacticnetworkDivider4=|       PubSub callback      |
+
+bg.psn_broker=Broker pubSubNet
+bg.psn_client=Client pubSubNet
+bg.psn_callback=psnNewData
+bg.psn_handle_network=pubSubNet handleNetwork
+bg.psn_data_to_send=pubSubNet isDataToSend?
+bg.psn_set_interval=pubSubNet setInterval
+bg.psn_publish=pubSubNet publish
+bg.psn_publish_analog=pubSubNet publish
+bg.psn_publish_digital=pubSubNet publish
+bg.psn_publish_onchange=pubSubNet publishOnChange
+bg.psn_publish_onchange_bool=pubSubNet publishOnChange
+bg.psn_subscribe=pubSubNet subscribe
+bg.psn_unsubscribe=pubSubNet unsubscribe 
+
+bg.psn_broker.description=Broker fuer PubSub Netzwerk erzeugen
+bg.psn_client.description=Client fuer PubSub Netzwerk erzeugen
+bg.psn_callback.description=Funktion wird automatisch aufgefufen wenn neue Daten empfangen werden
+bg.psn_handle_network.description=Empfaengt Daten, ueberprueft ob gesendet werden kann und versendet Daten
+bg.psn_data_to_send.description=Gibt zurück ob Daten zum Versenden bereit sind
+bg.psn_set_interval.description=Minimale Zeit zwischen zwei publish-Vorgängen 
+bg.psn_publish.description=Zeichenkette (char[]) zu Topic veroeffentlichen
+bg.psn_publish_analog.description=Analoge (int) Daten zu Topic veroeffentlichen
+bg.psn_publish_digital.description=Digitale (bool) Daten zu Topic veroeffentlichen
+bg.psn_publish_onchange.description=Analoge (int) Daten bei Wertänderung zu Topic veroeffentlichen
+bg.psn_publish_onchange_bool.description=Digitale (bool) Daten bei Änderung zu Topic veroeffentlichen
+bg.psn_subscribe.description=Topic abonnieren
+bg.psn_unsubscribe.description=Topic nicht mehr abonnieren
+
+bc.ps_name=Name
+bc.ps_interval=ms 
+bc.callback=Uebergabefunktion
+bc.payloadVar=Nutzdaten-Variable
+bc.payloadLengthVar=Nutzdaten-Laenge-Variable
+bc.topicVar=Topic-Variable
+bc.topicLengthVar=Topic-Laenge-Variable
+bc.payload=Nutzdaten
+bc.payloadLength=Länge Nutzdaten
+bc.threshold=Schwellwert
+bc.topic=Topic
+bc.topicLength=Länge Topic
+
+
+#STORAGE
+#****************************
+bd.storage=Speicher
+
+bg.storageDivider1=|       EEPROM     |
+bg.storageDivider2=|       SD Card      |
+
+bg.eeprom_read=lese kurzen analogen Wert von EEPROM
+bg.eeprom_write=schreibe kurzen analogen Wert auf EEPROM
+bg.eeprom_get=lese beliebigen Datentyp von EEPROM
+bg.eeprom_put=schreibe beliebigen Datentyp auf EEPROM
+bg.eeprom_length=länge des EEPROM
+bg.sd_begin=starte SD
+bg.sd_open=öffne Datei SD
+bg.sd_close=schließe Datei SD
+bg.sd_write=schreibe in Datei SD
+bg.sd_read=lese aus Datei SD
+bg.sd_data_available=Daten verfuegbar SD
+bg.sd_file_available=Datei verfuegbar SD
+
+bg.eeprom_read.description=lese einen kurzen analogen Wert (0-255) vom EEPROM. Jedes Byte entspicht einer EEPROM Adresse.
+bg.eeprom_write.description=schreibe einen kurzen analogen Wert (0-255) auf EEPROM. Jedes Byte entspicht einer EEPROM Adresse.
+bg.eeprom_get.description=lese beliebigen Datentyp von EEPROM. Jedes Byte entspicht einer EEPROM Adresse. Länge des Datentyps überprüfen!
+bg.eeprom_put.description=schreibe beliebigen Datentyp auf EEPROM. Jedes Byte entspicht einer EEPROM Adresse. Länge des Datentyps überprüfen!
+bg.eeprom_length.description=länge des EEPROM
+bg.sd_begin.description=starte SD Karte
+bg.sd_open.description=\u00d6ffne Datei auf SD Karte\nmax. Laenge des Dateinamens 8 Zeichen \n+ 3 Zeichen Datentyp\nBsp.: datei1.txt
+bg.sd_close.description=schließe Datei auf SD Karte
+bg.sd_write.description=schreibe in Datei auf SD Karte
+bg.sd_read.description=lese aus Datei auf SD Karte
+bg.sd_data_available.description=Ungelesene Daten in Datei verfuegbar (SD Karte)
+bg.sd_file_available.description=Datei verfuegbar (SD Karte)
+
+bc.eeprom_address=Adresse
+bc.eeprom_data=Daten
+bc.File=Datei
+bc.sdFileVar  = Datei-Variable
+bc.sdFileName = Datei Name
+bc.sdFileMode = Starte am Anfang
+bc.sdWriteData= Daten
+bc.sdCSPin    = CS
+
+#CODE
+#****************************
+bd.code=Kommentare/Code
+
+bg.codeDivider1=|       Kommentare      |
+bg.codeDivider2=|       C-Code einfuegen       |
+
+bg.program_comment=Programmkopf
+bg.code_head=Code im globalen Bereich
+bg.code_comment_head=//Kommentar im globalen Bereich einfuegen
+bg.code_loop=Code einfuegen
+bg.code_comment=//Kommentar einfuegen
+
+bg.program_comment.description=Programmbeschreibung und Informationen als Kommentar anfügen
+bg.code_loop.description=Code an dieser Stelle einfügen
+bg.code_head.description=Code im globalen Bereich einfügen
+bg.code_comment_head.description=Kommentar im globalen Bereich einfügen
+bg.code_comment.description=Kommentar im Programm einfügen
+
+bc.prog_name=Dateiname
+bc.prog_author=Autor
+bc.prog_description=Beschreibung
+bc.prog_date=Datum
+bc.prog_version=Version
+#****************************
\ No newline at end of file
diff --git a/src/main/resources/com/ardublock/block/ardublock_en_GB.properties b/src/main/resources/com/ardublock/block/ardublock_en_GB.properties
index dd3c2171341511c8a4c5a9ce51b538de732da20b..b6288ba6c26136b6bf21cfa5b723f72d79ab309c 100644
--- a/src/main/resources/com/ardublock/block/ardublock_en_GB.properties
+++ b/src/main/resources/com/ardublock/block/ardublock_en_GB.properties
@@ -5,156 +5,157 @@
 
 #FILE
 #****************************
-ardublock.file.suffix=Ardublock Programmdatei (*.abp)
+ardublock.file.suffix=Ardublock Program File(*.abp)
 
 #UI
 #****************************
-ardublock.ui.menu.file=Datei
-ardublock.ui.menu.program=Programm
-ardublock.ui.menu.tools=Werkzeuge
-ardublock.ui.menu.blocks=Blöcke
-ardublock.ui.menu.about=Über
+ardublock.ui.menu.file=File
+ardublock.ui.menu.program=Program
+ardublock.ui.menu.tools=Tools
+ardublock.ui.menu.blocks=Blocks
+ardublock.ui.menu.about=About
 ardublock.ui.menu.help=?
 
-ardublock.ui.submenu.examples=Beispiele
+ardublock.ui.submenu.examples=Examples
 ardublock.ui.submenu.examples.basic=Basic
 ardublock.ui.submenu.examples.digital=Digital
 ardublock.ui.submenu.examples.analog=Analog
-ardublock.ui.submenu.examples.communication=Kommunikation
-
-ardublock.ui.new=Neu
-ardublock.ui.new.tooltip=Neues Programm erstellen
-ardublock.ui.save=Speichern
-ardublock.ui.save.tooltip=ArduBlock-Programm speichern
-ardublock.ui.saveAs=Speichern unter
-ardublock.ui.saveAs.tooltip=ArduBlock-Programm unter neuem Namen speichern
-ardublock.ui.load=Öffnen
-ardublock.ui.load.tooltip=ArduBlock-Programm öffnen
-ardublock.ui.upload=Hochladen auf den Arduino
-ardublock.ui.upload.tooltip=Programm auf Arduino laden
-ardublock.ui.clone=klonen (Strg-Rechtsklick)
-ardublock.ui.clone_all=folgende klonen (Strg-Shift-Rechtsklick)
-ardublock.ui.add_comment=Kommentar hinzufügen
-ardublock.ui.delete_comment=Kommentar löschen
-ardublock.ui.organize_blocks=Alle Blöcke neu anordnen
-ardublock.ui.create_refer=Verweis erstellen
-ardublock.ui.website=letsgoING (Web)
+ardublock.ui.submenu.examples.communication=Communication
+
+ardublock.ui.new=New
+ardublock.ui.new.tooltip=new program
+ardublock.ui.save=Save
+ardublock.ui.save.tooltip=save program
+ardublock.ui.saveAs=Save As
+ardublock.ui.saveAs.tooltip=save program as
+ardublock.ui.load=Open
+ardublock.ui.load.tooltip=open program
+ardublock.ui.upload=Upload
+ardublock.ui.upload.tooltip=Upload to Arduino
+ardublock.ui.clone=Clone (rightclick-Ctrl)
+ardublock.ui.clone_all=Clone following (rightclick-Shift-Ctrl)
+ardublock.ui.add_comment=Add Comment
+ardublock.ui.delete_comment=Delete Comment
+ardublock.ui.organize_blocks=Organize all blocks
+ardublock.ui.create_refer=create reference
+ardublock.ui.website=letsgoING
 ardublock.ui.website.domain=https://letsgoing.org
-ardublock.ui.website.tooltip=öffnet die letsgoING-Homepage
-ardublock.ui.lmssite=Online Lernen (Web)
+ardublock.ui.website.tooltip=goto letsgoING project-page
+ardublock.ui.lmssite=Online LMS
 ardublock.ui.lmssite.domain=moodle.letsgoing.org
-ardublock.ui.lmssite.tooltip=öffnet die letsgoING-Lernseiten
-ardublock.ui.reference=Block-Referenz öffnen 
-ardublock.ui.blockreference=Übersicht Block-Referenz öffnen (Web)
+ardublock.ui.lmssite.tooltip=go to letsgoING online-LMS
+ardublock.ui.reference=open block reference
+ardublock.ui.blockreference=open block reference
 ardublock.ui.blockreference.domain=https://blockreferenz.letsgoing.org/
-ardublock.ui.blockreference.tooltip=öffnet die Blockreferenz
+ardublock.ui.blockreference.tooltip=open block reference
 ardublock.ui.repository=https://gitlab.reutlingen-university.de/letsgoing/ardublock
-ardublock.ui.repository.tooltip=gehe zur ArduBlock Repository
+ardublock.ui.repository.tooltip=go to ArduBlock Repository
+ardublock.ui.languagestyle=C-Style (reboot IDE or new File) 
+ardublock.ui.languagestyle.tooltip=Block names paraphrased or c-style
 ardublock.ui.mode.expert=Full
-ardublock.ui.mode.expert.tooltip=Mehr Blöcke und komplexere Funktionen fuer Fortgeschrittene
+ardublock.ui.mode.expert.tooltip=full blockset
 ardublock.ui.mode.standard=Basic
-ardublock.ui.mode.standard.tooltip=Die wichtigsten Blöcke für den Einstieg
+ardublock.ui.mode.standard.tooltip=most important blocks to get started
 ardublock.ui.mode.sim=Sim
-ardublock.ui.mode.sim.tooltip=ArduBlock Basic mit Simulation "letsgoING-Grundlagen-Hardware"
-ardublock.ui.search=suche Blöcke
-ardublock.ui.search.tooltip=Suche im Arbeitsfenster und den Menüs nach Blöcken
-
-#ardublock.ui.modeButton.mode.tooltip=umschalten zwischen Grundlagen- und Projektblöcken
-ardublock.ui.serialMonitor=Serieller Monitor
-ardublock.ui.serialMonitor.tooltip=öffnet den seriellen Monitor
-ardublock.ui.serialPlotter=Serieller Plotter
-ardublock.ui.serialPlotter.tooltip=öffnet den seriellen Plotter
+ardublock.ui.mode.sim.tooltip=basic blockset for use with simulator "letsgoING-basic-hardware"
+ardublock.ui.search=search block
+ardublock.ui.search.tooltip=Search for blocks in the drawers and workspace
+ardublock.ui.serialMonitor=Serial Monitor
+ardublock.ui.serialMonitor.tooltip=open Serial Monitor
+ardublock.ui.serialPlotter=Serial Plotter
+ardublock.ui.serialPlotter.tooltip=open Serial Plotter
 ardublock.ui.undo=Undo
-ardublock.ui.undo.tooltip=Rückgängig
+ardublock.ui.undo.tooltip=undo
 ardublock.ui.redo=Redo
-ardublock.ui.redo.tooltip=Wiederherstellen
-ardublock.ui.saveImage=Als Bild speichern
-ardublock.ui.saveImage.tooltip=Speichert ein Bild des aktuellen Programms
-ardublock.ui.saveDefaultProgram=Als Vorlage speichern
-ardublock.ui.saveDefaultProgram.tooltip=Speichert aktuelles Programm als Vorlage für neue Programme
+ardublock.ui.redo.tooltip=redo
+ardublock.ui.saveImage=Save as image
+ardublock.ui.saveImage.tooltip=save current program as image... 
+ardublock.ui.saveDefaultProgram=save as default
+ardublock.ui.saveDefaultProgram.tooltip=saves current program as default program
 ardublock.ui.zoomIn=+
-ardublock.ui.zoomIn.tooltip=vergrößere Programm
+ardublock.ui.zoomIn.tooltip=zoom in Ctrl-Plus
 ardublock.ui.zoomOut=-
-ardublock.ui.zoomOut.tooltip=verkleinere Programm
+ardublock.ui.zoomOut.tooltip=zoom out Ctrl-Minus
 ardublock.ui.zoomReset=0
-ardublock.ui.zoomReset.tooltip=zurücksetzen
-ardublock.ui.copy=Programm kopieren
-ardublock.ui.copy.tooltip=kopiere gesamtes Programm in Zwischenablage
-ardublock.ui.paste=Programm einfügen
-ardublock.ui.paste.tooltip=füge gesamtes Programm aus Zwischenablage ein
-ardublock.ui.help=Hilfe zu ArduBlock
-ardublock.ui.help.tooltip=Hilfe zu ArduBlock
-ardublock.ui.simulation=Hochladen auf den Simulator
-ardublock.ui.simulation.tooltip=Starte den Simulator und lade das Programm hoch
-ardublock.ui.simulatorHelp=Hilfe zum Simulator
-ardublock.ui.simulatorHelp.tooltip=Infos zum letsgoING-Simulator
-ardublock.ui.simulatorHelp.title=Infos zum letsgoING-Simulator
-ardublock.ui.simulatorHelp.text=TASTER\n**********************\nlinke Maustaste -> Taster-Funktion\nrechte oder mittlere Maustaste -> Schalterfunktion (bleibt aktiv)\n\n\n\nPOTI\n**********************\nSlider ziehen oder mit Mausrad verstellen (Mauszeiger über Slider)\n\n\nSERIALMONITOR\n**********************\nHier werden die Nachrichten vom "Serial.Print"-Block ausgegeben\nAutoscroll:\n    an -> neueste Nachrichten werden angezeigt\n    aus -> Ausgabe kann manuell ausgewählt werden\nReset SerialMonitor: bisherige Ausgabe wird gelöscht\n\n\n\RESET ARDUINO\n**********************\nTaster startet das Programm neu\n\n\n\ONBOARD LED\n**********************\nLED kann über Pin13 angesteuert werden
-ardublock.ui.addLibraries=Bibliotheken hinzufügen
-ardublock.ui.addLibraries.tooltip=Lade nicht-standard Bibliotheken sie in ArduBlock verwendet werden
+ardublock.ui.zoomReset.tooltip=reset zoom
+ardublock.ui.copy=copy
+ardublock.ui.copy.tooltip=copy program to clipboard
+ardublock.ui.paste=paste
+ardublock.ui.paste.tooltip=paste program from
+ardublock.ui.help=Help ArduBlock
+ardublock.ui.help.tooltip=Help ArduBlock
+ardublock.ui.simulation=simulate
+ardublock.ui.simulation.tooltip=start simulation with basic block-set and letsgoING modules
+ardublock.ui.simulatorHelp=Help Simulator
+ardublock.ui.simulatorHelp.tooltip=About the letsgoING-simulator
+ardublock.ui.simulatorHelp.title=About the letsgoING-simulator
+ardublock.ui.simulatorHelp.text=
+ardublock.ui.addLibraries=Add libraries
+ardublock.ui.addLibraries.tooltip=Add non-standard libraries used in ArduBlock
 
 ardublock.ui.version=v2.2 beta4
 
 ardublock.ui.appprefix.standard=Basic
-ardublock.ui.appprefix.pro=Pro
+ardublock.ui.appprefix.pro=Full
 ardublock.ui.appprefix.sim=Simulator
 
 #ERROR
 #****************************
-ardublock.error_msg.unset_variable=Die Variable ist unbestimmt. Bevor die Variable lesend verwendet werden kann, muss ihr ein Wert zugewiesen werden.
-ardublock.error_msg.define_slot=#define benötigt einen define-Konstante-Block.
-ardublock.error_msg.number_const_write=Eine Define-Konstante kann nicht mit einem neuen Wert beschrieben werden. Keine neuen Werte für Define-Konstanten setzen!
-ardublock.error_msg.digital_var_slot=Der 'Variable'-Sockel benötigt einen 'digitale_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
-ardublock.error_msg.number_local_var_slot=Der 'Variable'-Sockel benötigt einen 'lokale_analoge_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
-ardublock.error_msg.number_var_slot= Der 'Variable'-Sockel benötigt einen 'analoge_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
-ardublock.error_msg.number_slot= Der Sockel benötigt einen 'analoge_Variable'-Block oder einen "Analoger Wert"-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
-ardublock.error_msg.long_number_var_slot=Der 'Variable'-Sockel benötigt einen 'Name_der_langen_analogen_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
-ardublock.error_msg.double_number_var_slot=Der 'Variable'-Sockel benötigt einen 'Name_der_dezimalen_analogen_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
-ardublock.error_msg.char_var_slot=Der 'Variable'-Sockel benötigt einen 'Name_der_Zeichen_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
-ardublock.error_msg.array_var_slot=Der 'Variable'-Sockel benötigt einen 'Name_der_Tabelle'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
-ardublock.error_msg.number_const_write=
-ardublock.error_msg.array_size_slot=Der 'Größe' Slot muss einen analogen Wert enthalten
-ardublock.error_msg.string_var_slot=Der 'Variable'-Slot benötigt einen 'Name_der_String_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
-ardublock.error_msg.var_slot= Der Slot benötigt einen 'Variable'-Block
-ardublock.error_msg.string_slot= Der 'Wert'-Slot benötigt einen 'String_Variable'-Block oder einen 'Name_der_String_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
-ardublock.error_msg.local_var_slot=Der 'Variable'-Sockel benötigt einen 'lokale_X_Variable'-Block.\nTIPP: Schaue an dem 'Variable' Sockel an dem hervorgehobenen Block!
-ardublock.error_msg.var_value_slot=Der Sockel benötigt einen 'Variable' oder 'Wert'-Block.\nTIPP: Schaue an dem hervorgehobenen Block!
-ardublock.error_msg.var_value_slot=Es ist nur ein Rueckgabeparameter pro Unterprogramm erlaubt!
-ardublock.error_msg.Digital_pin_slot=Pin# muss einer Pin-Nummer des Arduino-Boards entsprechen
-ardublock.error_msg.Analog_pin_slot=Pin# muss einer analogen Pin-Nummer des Arduino-Boards entsprechen
-ardublock.error_msg.Serial_Read_slot=Der 'nächstes Zeichen' Sockel benötigt einen 'Serial read'- oder 'softSerial read'-Block
-ardublock.error_msg.wrong_block_header=Dieser Block kann nicht im Kopfteil des Programms verwendet werden
-ardublock.error_msg.stepper_duplicated=Es gibt schon einen Stepper mit diesem Namen
-ardublock.error_msg.stepper_not_existing=Es gibt keinen Stepper mit diesem Namen
-ardublock.error_msg.paste.invalid=Zwischenablage enthält keine ArduBlock-Blöcke
-ardublock.error_msg.paste.notpossible=Einfügen ohne Blöcke nicht möglich.
-
-ardublock.error_msg.pid_limit_error=PID-Block: Oberes Limit ist kleiner oder gleich wie unteres Limit
-
-ardublock.error_msg.no_sim_for_block=Dieser Block ist für die Simulation nicht geeignet.
- 
+ardublock.error_msg.unset_variable=The variable is undefined. Before the variable can be read, a value must be assigned to it.
+ardublock.error_msg.define_slot=#define must take a constant-x Block.
+ardublock.error_msg.number_const_write=Defines can be set only once. Don\'t reassign values to define-constants!
+ardublock.error_msg.digital_var_slot=Digital variable slot must take a 'digital variable' name.\nHint: Look at the 'variable' socket on the highlighted block
+ardublock.error_msg.number_var_slot=Standard variable slot must take a standard 'analog variable name'.\nHint: Look at the 'variable' socket on the highlighted block
+ardublock.error_msg.number_local_var_slot=Variable slot must take a standard 'local analog variable name'.\nHint: Look at the 'variable' socket on the highlighted block
+ardublock.error_msg.number_slot=This slot must take a standard 'analog variable name' or "analog value".\nHint: Look at the 'variable' socket on the highlighted block
+ardublock.error_msg.long_number_var_slot=Large integer variable slot must take a 'Large Integer' variable name.\nHint: Look at the 'variable' socket on the highlighted block
+ardublock.error_msg.double_number_var_slot=variable slot must take a 'Decimal' variable name.\nHint: Look at the 'variable' socket on the highlighted block
+ardublock.error_msg.char_var_slot=Char variable slot must take a char variable name.\nHint: Look at the 'variable' socket on the highlighted block
+ardublock.error_msg.array_var_slot='Array variable' slot must take an 'array variable' name.\nHint: Look at the 'variable' socket on the highlighted block
+ardublock.error_msg.array_size_slot='Array size' slot must take a standard integer constant
+ardublock.error_msg.string_var_slot=String variable slot must take a String variable name.\nHint: Look at the 'variable' socket on the highlighted block
+ardublock.error_msg.var_slot= The slot must take an variable-block
+ardublock.error_msg.string_slot=String slot must take a String variable or a String variable name.\nHint: Look at the 'variable' socket on the highlighted block
+ardublock.error_msg.Digital_pin_slot=Pin# must be a valid digital pin number found on an Arduino Board
+ardublock.error_msg.Analog_pin_slot=Pin# must be a valid analog input pin number found on an Arduino Board
+ardublock.error_msg.local_var_slot=Variable slot must take a standard 'local X variable name'.\nHint: Look at the 'variable' socket on the highlighted block
+ardublock.error_msg.var_value_slot=The slot must take a 'variable' or 'value' block.\nHint: Look at the highlighted block
+ardublock.error_msg.return_var_slot=Only one return-parameter is valid
+ardublock.error_msg.Serial_Read_slot=This Block needs an 'Serial read'- or 'softSerial read'-block
+ardublock.error_msg.wrong_block_header=This Block cannot be used in head-section
+ardublock.error_msg.stepper_duplicated=There is already a stepper with this name
+ardublock.error_msg.stepper_not_existing=There is no stepper with this name
+ardublock.error_msg.paste.invalid=clipboard contains no blocks
+ardublock.error_msg.paste.notpossible=Past not possible without Blocks
+ardublock.error_msg.pid_limit_error=PID-Block: Upper limit is smaller or equal to lower limit
+
+ardublock.error_msg.no_sim_for_block=This Block is not suitable for simulation
+
 #TRANSLATOR
 #****************************
-ardublock.translator.exception.subroutineNameDuplicated=Zwei oder mehr Unterprogramme haben den selben Namen!
-ardublock.translator.exception.noLoopFound=Keine Hauptschleife gefunden\!
-ardublock.translator.exception.multipleLoopFound=Mehrere Hauptschleifen gefunden\!
-ardublock.translator.exception.socketNull=Ein benötigter Wert, Variablenname oder eine Bedingung fehlt!\nTIPP: Suche nach einem leeren Sockel an dem hervorgehobenen Block!
-ardublock.translator.exception.socketNull.consolePrint=Der Name des Blocks:
-ardublock.translator.exception.subroutineNotDeclared=Unterprogramm nicht deklariert!
-ardublock.translator.exception.subroutineNotDeclared.consolePrint=Der Name des Unterprogramms:
+ardublock.translator.exception.subroutineNameDuplicated=two or more subroutines have the same name!
+ardublock.translator.exception.noLoopFound=No loop found!
+ardublock.translator.exception.multipleLoopFound=multiple loop block found!
+ardublock.translator.exception.socketNull=A required Value, Variable Name or 'Test' is missing.\nHint:: Look for an empty 'socket' in the highlighted block.
+ardublock.translator.exception.socketNull.consolePrint=Name of the block:
+ardublock.translator.exception.subroutineNotDeclared=subroutine not declared
+ardublock.translator.exception.subroutineNotDeclared.consolePrint=Name of the subroutine:
 
 #MESSAGE
 #****************************
-message.title.error=Fehler
-message.title.question=Frage
-message.content.open_unsaved=Das Ardublock-Programm hat sich geändert, soll es gespeichert werden?
-message.content.overwrite=Soll das vorhandene Programm überschrieben werden?
-message.content.overwriteDefault=Soll die Programmvorlage überschrieben werden?
-message.file_not_found=Datei wurde nicht gefunden oder der Zugriff wurde verweigert.
-message.file_not_found_new_file=Datei wurde nicht gefunden oder der Zugriff wurde verweigert.\nSoll eine neue Datei erstellt werden?
-message.question.newfile_on_workspace_changed=Das Programm hat sich geändert, soll eine neue Ardublock-Datei erstellt werden?
-message.content.overwriteImage=Soll das vorhandene Bild überschrieben werden?
-message.content.saveOnExit=Soll das Programm gespeichert werden bevor ArduBlock geschlossen wird?
+message.title.error=Error
+message.title.question=Question
+message.content.open_unsaved=Ardublock program has changed, do you want to save?
+message.content.overwrite=Do you want to overwrite existing file?
+message.content.overwriteDefault=Do you want to overwrite default file?
+message.file_not_found=File not found or permission denied
+message.file_not_found_new_file=File Not Found or permission denied.\nCreate new file?
+message.content.overwriteImage=Do you want to overwrite existing image?
+message.content.saveOnExit=Do you want to save the file before closing ArduBlock?
+
+message.question.newfile_on_workspace_changed=The program has changed, do you want to create a new Ardublock file?
+
+
 
 #  EXAMPLES
 #****************************