add translations

This commit is contained in:
Mario Pesch 2022-01-25 19:39:23 +01:00
parent 405b7fd465
commit 3e3956b185
5 changed files with 270 additions and 222 deletions

View File

@ -1,56 +1,77 @@
import * as Blockly from 'blockly/core'; import * as Blockly from "blockly/core";
import { getColour } from '../helpers/colour'; import { getColour } from "../helpers/colour";
import store from '../../../store'; import store from "../../../store";
var boxes = store.getState().auth.user ? store.getState().auth.user.boxes : null; var boxes = store.getState().auth.user
? store.getState().auth.user.boxes
: null;
store.subscribe(() => { store.subscribe(() => {
boxes = store.getState().auth.user ? store.getState().auth.user.boxes : null; boxes = store.getState().auth.user ? store.getState().auth.user.boxes : null;
}); });
var selectedBox = ''; var selectedBox = "";
Blockly.Blocks["sensebox_osem_connection"] = {
Blockly.Blocks['sensebox_osem_connection'] = {
init: function () { init: function () {
var ssl = "TRUE";
var workspace = Blockly.getMainWorkspace();
if (workspace.getBlocksByType("sensebox_ethernet").length > 0) {
ssl = "FALSE";
console.log("ethernet");
}
this.setTooltip(Blockly.Msg.senseBox_osem_connection_tip); this.setTooltip(Blockly.Msg.senseBox_osem_connection_tip);
this.setHelpUrl(''); this.setHelpUrl("");
this.setColour(getColour().sensebox); this.setColour(getColour().sensebox);
this.appendDummyInput() this.appendDummyInput()
.appendField(Blockly.Msg.senseBox_osem_connection) .appendField(Blockly.Msg.senseBox_osem_connection)
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.senseBox_osem_host, '"ingress.opensensemap.org"'], [Blockly.Msg.senseBox_osem_host_workshop, '"ingress.workshop.opensensemap.org"']]), "host") .appendField(
.appendField('SSL') new Blockly.FieldDropdown([
.appendField(new Blockly.FieldCheckbox("TRUE"), "SSL"); [Blockly.Msg.senseBox_osem_host, '"ingress.opensensemap.org"'],
[
Blockly.Msg.senseBox_osem_host_workshop,
'"ingress.workshop.opensensemap.org"',
],
]),
"host"
)
.appendField("SSL")
.appendField(new Blockly.FieldCheckbox(ssl), "SSL");
this.appendDummyInput() this.appendDummyInput()
.setAlign(Blockly.ALIGN_LEFT) .setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.senseBox_osem_exposure) .appendField(Blockly.Msg.senseBox_osem_exposure)
.appendField(new Blockly.FieldDropdown([[Blockly.Msg.senseBox_osem_stationary, 'Stationary'], [Blockly.Msg.senseBox_osem_mobile, 'Mobile']]), "type"); .appendField(
new Blockly.FieldDropdown([
[Blockly.Msg.senseBox_osem_stationary, "Stationary"],
[Blockly.Msg.senseBox_osem_mobile, "Mobile"],
]),
"type"
);
if (!boxes) { if (!boxes) {
this.appendDummyInput() this.appendDummyInput()
.setAlign(Blockly.ALIGN_LEFT) .setAlign(Blockly.ALIGN_LEFT)
.appendField("senseBox ID") .appendField("senseBox ID")
.appendField(new Blockly.FieldTextInput("senseBox ID"), "BoxID"); .appendField(new Blockly.FieldTextInput("senseBox ID"), "BoxID");
} else { } else {
var dropdown = [] var dropdown = [];
for (var i = 0; i < boxes.length; i++) { for (var i = 0; i < boxes.length; i++) {
dropdown.push([boxes[i].name, boxes[i]._id]) dropdown.push([boxes[i].name, boxes[i]._id]);
} }
this.appendDummyInput() this.appendDummyInput()
.setAlign(Blockly.ALIGN_LEFT) .setAlign(Blockly.ALIGN_LEFT)
.appendField("senseBox ID") .appendField("senseBox ID")
.appendField(new Blockly.FieldDropdown(dropdown), 'BoxID'); .appendField(new Blockly.FieldDropdown(dropdown), "BoxID");
} }
this.appendDummyInput() this.appendDummyInput()
.setAlign(Blockly.ALIGN_LEFT) .setAlign(Blockly.ALIGN_LEFT)
.appendField(Blockly.Msg.senseBox_osem_access_token) .appendField(Blockly.Msg.senseBox_osem_access_token)
.appendField(new Blockly.FieldTextInput("access_token"), "access_token"); .appendField(new Blockly.FieldTextInput("access_token"), "access_token");
this.appendStatementInput('DO') this.appendStatementInput("DO")
.appendField(Blockly.Msg.senseBox_sensor) .appendField(Blockly.Msg.senseBox_sensor)
.setCheck(null); .setCheck(null);
this.setPreviousStatement(true, null); this.setPreviousStatement(true, null);
this.setNextStatement(true, null); this.setNextStatement(true, null);
}, },
onchange: function (e) { onchange: function (e) {
var legal = false; var legal = false;
// Is the block nested in a loop? // Is the block nested in a loop?
var block = this; var block = this;
@ -72,28 +93,29 @@ Blockly.Blocks['sensebox_osem_connection'] = {
* To add a new loop type add this to your code: * To add a new loop type add this to your code:
* Blockly.Blocks['controls_flow_statements'].LOOP_TYPES.push('custom_loop'); * Blockly.Blocks['controls_flow_statements'].LOOP_TYPES.push('custom_loop');
*/ */
selectedBox = this.getFieldValue('BoxID'); selectedBox = this.getFieldValue("BoxID");
if (selectedBox !== '' && boxes) { if (selectedBox !== "" && boxes) {
var accessToken = boxes.find(element => element._id === selectedBox).access_token var accessToken = boxes.find(
(element) => element._id === selectedBox
).access_token;
if (accessToken !== undefined) { if (accessToken !== undefined) {
this.getField('access_token').setValue(accessToken) this.getField("access_token").setValue(accessToken);
} else { } else {
this.getField('access_token').setValue('access_token') this.getField("access_token").setValue("access_token");
} }
} }
}, },
mutationToDom: function () { mutationToDom: function () {
var container = document.createElement('mutation'); var container = document.createElement("mutation");
var input = this.getFieldValue('type'); var input = this.getFieldValue("type");
this.updateShape_(input); this.updateShape_(input);
container.setAttribute('type', input); container.setAttribute("type", input);
return container; return container;
}, },
domToMutation: function (xmlElement) { domToMutation: function (xmlElement) {
var connections = xmlElement.getAttribute('connections'); var connections = xmlElement.getAttribute("connections");
this.updateShape_(connections); this.updateShape_(connections);
}, },
/** /**
@ -103,46 +125,51 @@ Blockly.Blocks['sensebox_osem_connection'] = {
* @this Blockly.Block * @this Blockly.Block
*/ */
updateShape_: function () { updateShape_: function () {
var extraFieldExist = this.getFieldValue('gps'); var extraFieldExist = this.getFieldValue("gps");
var input = this.getFieldValue('type'); var input = this.getFieldValue("type");
if ((input === 'Mobile') && extraFieldExist === null) { if (input === "Mobile" && extraFieldExist === null) {
this.appendValueInput('lat', 'Number') this.appendValueInput("lat", "Number").appendField(
.appendField(Blockly.Msg.senseBox_gps_lat, 'gps'); Blockly.Msg.senseBox_gps_lat,
this.appendValueInput('lng', 'Number') "gps"
.appendField(Blockly.Msg.senseBox_gps_lng); );
this.appendValueInput('altitude', 'Number') this.appendValueInput("lng", "Number").appendField(
.appendField(Blockly.Msg.senseBox_gps_alt); Blockly.Msg.senseBox_gps_lng
this.appendValueInput('timeStamp', 'Number') );
.appendField(Blockly.Msg.senseBox_gps_timeStamp); this.appendValueInput("altitude", "Number").appendField(
Blockly.Msg.senseBox_gps_alt
);
this.appendValueInput("timeStamp", "Number").appendField(
Blockly.Msg.senseBox_gps_timeStamp
);
} }
if (input === 'Stationary' && extraFieldExist !== null) { if (input === "Stationary" && extraFieldExist !== null) {
this.removeInput('lat'); this.removeInput("lat");
this.removeInput('lng'); this.removeInput("lng");
this.removeInput('altitude'); this.removeInput("altitude");
this.removeInput('timeStamp'); this.removeInput("timeStamp");
} }
}, },
LOOP_TYPES: ['sensebox_interval_timer'] LOOP_TYPES: ["sensebox_interval_timer"],
}; };
Blockly.Blocks['sensebox_send_to_osem'] = { Blockly.Blocks["sensebox_send_to_osem"] = {
init: function () { init: function () {
this.setTooltip(Blockly.Msg.senseBox_send_to_osem_tip); this.setTooltip(Blockly.Msg.senseBox_send_to_osem_tip);
this.setHelpUrl(''); this.setHelpUrl("");
this.setColour(getColour().sensebox); this.setColour(getColour().sensebox);
this.appendDummyInput() this.appendDummyInput().appendField(Blockly.Msg.senseBox_send_to_osem);
.appendField(Blockly.Msg.senseBox_send_to_osem);
if (boxes) { if (boxes) {
this.appendValueInput('Value') this.appendValueInput("Value")
.appendField('Phänomen') .appendField("Phänomen")
.appendField(new Blockly.FieldDropdown( .appendField(
this.generateOptions), 'SensorID'); new Blockly.FieldDropdown(this.generateOptions),
"SensorID"
);
} else { } else {
this.appendValueInput('Value') this.appendValueInput("Value")
.setAlign(Blockly.ALIGN_LEFT) .setAlign(Blockly.ALIGN_LEFT)
.appendField('Phänomen') .appendField("Phänomen")
.appendField(new Blockly.FieldTextInput( .appendField(new Blockly.FieldTextInput("sensorID"), "SensorID");
'sensorID'), 'SensorID')
} }
this.setPreviousStatement(true, null); this.setPreviousStatement(true, null);
@ -150,24 +177,23 @@ Blockly.Blocks['sensebox_send_to_osem'] = {
}, },
generateOptions: function () { generateOptions: function () {
var dropdown = [['', '']]; var dropdown = [["", ""]];
var boxID = selectedBox; var boxID = selectedBox;
if (boxID !== '' && boxes) { if (boxID !== "" && boxes) {
let box = boxes.find((el) => el._id === boxID);
let box = boxes.find(el => el._id === boxID);
if (box !== undefined) { if (box !== undefined) {
for (var i = 0; i < box.sensors.length; i++) { for (var i = 0; i < box.sensors.length; i++) {
dropdown.push([box.sensors[i].title, box.sensors[i]._id]) dropdown.push([box.sensors[i].title, box.sensors[i]._id]);
} }
} }
if (dropdown.length > 1) { if (dropdown.length > 1) {
var options = dropdown.slice(1) var options = dropdown.slice(1);
return options return options;
} else { } else {
return dropdown return dropdown;
} }
} }
return dropdown return dropdown;
}, },
/** /**
* Called whenever anything on the workspace changes. * Called whenever anything on the workspace changes.
@ -176,7 +202,6 @@ Blockly.Blocks['sensebox_send_to_osem'] = {
* @this Blockly.Block * @this Blockly.Block
*/ */
onchange: function () { onchange: function () {
var legal = false; var legal = false;
// Is the block nested in a loop? // Is the block nested in a loop?
var block = this; var block = this;
@ -198,5 +223,5 @@ Blockly.Blocks['sensebox_send_to_osem'] = {
* To add a new loop type add this to your code: * To add a new loop type add this to your code:
* Blockly.Blocks['controls_flow_statements'].LOOP_TYPES.push('custom_loop'); * Blockly.Blocks['controls_flow_statements'].LOOP_TYPES.push('custom_loop');
*/ */
LOOP_TYPES: ['sensebox_osem_connection'] LOOP_TYPES: ["sensebox_osem_connection"],
}; };

View File

@ -61,17 +61,16 @@ Blockly.Blocks["sensebox_ethernet"] = {
this.setHelpUrl(""); this.setHelpUrl("");
this.setColour(getColour().sensebox); this.setColour(getColour().sensebox);
this.appendDummyInput() this.appendDummyInput()
.appendField("Connect with Ethernet") .appendField(Blockly.Msg.senseBox_ethernet)
.appendField("using")
.appendField( .appendField(
new Blockly.FieldDropdown([ new Blockly.FieldDropdown([
["dhcp", "Dhcp"], [Blockly.Msg.senseBox_ethernet_dhcp, "Dhcp"],
["manual configuration", "Manual"], [Blockly.Msg.senseBox_ethernet_manuel_config, "Manual"],
]), ]),
"dhcp" "dhcp"
); );
this.appendDummyInput() this.appendDummyInput()
.appendField("MAC-Address") .appendField(Blockly.Msg.senseBox_ethernet_mac)
.appendField( .appendField(
new Blockly.FieldTextInput("0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED"), new Blockly.FieldTextInput("0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED"),
"mac" "mac"
@ -88,19 +87,18 @@ Blockly.Blocks["sensebox_ethernet"] = {
}, },
updateShape_(isManual) { updateShape_(isManual) {
// console.log(isDhcp);
if (isManual) { if (isManual) {
this.appendDummyInput("ip-field") this.appendDummyInput("ip-field")
.appendField("Ip Adress") .appendField(Blockly.Msg.senseBox_ethernet_ip)
.appendField(new Blockly.FieldTextInput("192.168.1.100"), "ip"); .appendField(new Blockly.FieldTextInput("192.168.1.100"), "ip");
this.appendDummyInput("subnetmask-field") this.appendDummyInput("subnetmask-field")
.appendField("Subnetmask") .appendField(Blockly.Msg.senseBox_ethernet_subnetmask)
.appendField(new Blockly.FieldTextInput("255.255.255.0"), "subnetmask"); .appendField(new Blockly.FieldTextInput("255.255.255.0"), "subnetmask");
this.appendDummyInput("gateway-field") this.appendDummyInput("gateway-field")
.appendField("Gateway") .appendField(Blockly.Msg.senseBox_ethernet_gateway)
.appendField(new Blockly.FieldTextInput("192.168.1.1"), "gateway"); .appendField(new Blockly.FieldTextInput("192.168.1.1"), "gateway");
this.appendDummyInput("dns-field") this.appendDummyInput("dns-field")
.appendField("DNS") .appendField(Blockly.Msg.senseBox_ethernet_dns)
.appendField(new Blockly.FieldTextInput("8.8.8.8"), "dns"); .appendField(new Blockly.FieldTextInput("8.8.8.8"), "dns");
} else { } else {
this.removeInput("ip-field", true); this.removeInput("ip-field", true);

View File

@ -47,8 +47,8 @@ Blockly.Arduino.sensebox_ethernet = function () {
//Configure static IP setup (only needed if DHCP is disabled) //Configure static IP setup (only needed if DHCP is disabled)
IPAddress myIp(${ip.replaceAll(".", ", ")}); IPAddress myIp(${ip.replaceAll(".", ", ")});
IPAddress myDns(${dns.replaceAll(".", ",")}); IPAddress myDns(${dns.replaceAll(".", ",")});
IPAddress myGateway(${gateway.replaceAll(".", ",")}192, 168, 0, 177); IPAddress myGateway(${gateway.replaceAll(".", ",")});
IPAddress mySubnet(${subnetmask.replaceAll(".", ",")}255, 255, 255, 0); IPAddress mySubnet(${subnetmask.replaceAll(".", ",")});
`; `;
Blockly.Arduino.setupCode_["ethernet_setup"] = ` Blockly.Arduino.setupCode_["ethernet_setup"] = `
Ethernet.init(23); Ethernet.init(23);

View File

@ -4,8 +4,20 @@ export const WEB = {
*/ */
senseBox_wifi_connect: "Verbinde mit WLAN", senseBox_wifi_connect: "Verbinde mit WLAN",
senseBox_wifi_ssid: "Netzwerkname", senseBox_wifi_ssid: "Netzwerkname",
senseBox_wifi_tooltip: "Stellt eine Verbindung mit einem WLAN-Netzwerk her. Möchtest du dich mit einem ungesicheren Netzwerk (z.B. Freifunk) verbinden lösche das Feld Passwort. Das WiFi-Bee muss auf den Steckplatz **XBEE1** aufgesteckt werden.", senseBox_wifi_tooltip:
"Stellt eine Verbindung mit einem WLAN-Netzwerk her. Möchtest du dich mit einem ungesicheren Netzwerk (z.B. Freifunk) verbinden lösche das Feld Passwort. Das WiFi-Bee muss auf den Steckplatz **XBEE1** aufgesteckt werden.",
senseBox_wifi_startap: "Initialisiere WLAN Access Point", senseBox_wifi_startap: "Initialisiere WLAN Access Point",
senseBox_wifi_startap_tooltip: "Erstellt einen WiFi-Accesspoint zu dem du dich verbinden kannst. Beachte, dass immer nur 1 Gerät gleichzeitig verbunden werden kann.", senseBox_wifi_startap_tooltip:
"Erstellt einen WiFi-Accesspoint zu dem du dich verbinden kannst. Beachte, dass immer nur 1 Gerät gleichzeitig verbunden werden kann.",
senseBox_wifi_helpurl: "https://docs.sensebox.de/blockly/blockly-web-wifi/", senseBox_wifi_helpurl: "https://docs.sensebox.de/blockly/blockly-web-wifi/",
} senseBox_ethernet: "Verbinde mit Ethernet",
senseBox_ethernet_dhcp: "DHCP",
senseBox_ethernet_manuel_config: "Manuelle Konfiguration",
senseBox_ethernet_ip: "IP-Adresse",
senseBox_ethernet_gateway: "Gateway",
senseBox_ethernet_subnetmask: "Subnetzmaske",
senseBox_ethernet_mac: "MAC-Adresse",
senseBox_ethernet_dns: "DNS-Server",
senseBox_ethernet_tooltip:
"Verbinde das LAN-Bee mit dem Steckplatz XBEE1. Die meisten Netzwerke verwenden DHCP und vergeben automatisch eine IP-Adresse. Solltest du eine Manuelle Konfiguration durchführen wollen wählen im Dropdown Menü **Manuelle Konfiguration** aus und gebe die entsprechenden Daten ein.",
};

View File

@ -4,8 +4,21 @@ export const WEB = {
*/ */
senseBox_wifi_connect: "Connect to Wifi", senseBox_wifi_connect: "Connect to Wifi",
senseBox_wifi_ssid: "Networkname", senseBox_wifi_ssid: "Networkname",
senseBox_wifi_tooltip: "Connects to a wireless network. If you want to connect to an unsecured network (e.g. Freifunk) clear the password field. The WiFi-Bee must be plugged into the **XBEE1** slot.", senseBox_wifi_tooltip:
"Connects to a wireless network. If you want to connect to an unsecured network (e.g. Freifunk) clear the password field. The WiFi-Bee must be plugged into the **XBEE1** slot.",
senseBox_wifi_startap: "Initialize Wifi Access Point", senseBox_wifi_startap: "Initialize Wifi Access Point",
senseBox_wifi_startap_tooltip: "Creates a WiFi access point to which you can connect. Note that only 1 device can be connected at a time.", senseBox_wifi_startap_tooltip:
senseBox_wifi_helpurl: "https://en.docs.sensebox.de/blockly/blockly-web-wifi/", "Creates a WiFi access point to which you can connect. Note that only 1 device can be connected at a time.",
} senseBox_wifi_helpurl:
"https://en.docs.sensebox.de/blockly/blockly-web-wifi/",
senseBox_ethernet: "Connect to Ethernet",
senseBox_ethernet_dhcp: "DHCP",
senseBox_ethernet_manuel_config: "Manual configuration",
senseBox_ethernet_ip: "IP address",
senseBox_ethernet_gateway: "Gateway",
senseBox_ethernet_subnetmask: "Subnet mask",
senseBox_ethernet_mac: "MAC address",
senseBox_ethernet_dns: "DNS-Server",
senseBox_ethernet_tooltip:
"Connect the LAN-Bee to the XBEE1 slot. Most networks use DHCP and assign an IP address automatically. If you want to do a manual configuration select **Manual Configuration** in the dropdown menu and enter the appropriate data.",
};