aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorninioe <ninioe@gmail.com>2016-07-17 09:54:15 +0300
committerninioe <ninioe@gmail.com>2016-07-17 09:54:15 +0300
commit4d55b911bd252c90d1d0ec4053d8502154192676 (patch)
tree5cb88f24fb5ba9edbec1bd0593ed2878c401bb2d
parent636f6e19b4ae7fbd80ff083498fface8c12ee9c8 (diff)
downloadtraccar-server-4d55b911bd252c90d1d0ec4053d8502154192676.tar.gz
traccar-server-4d55b911bd252c90d1d0ec4053d8502154192676.tar.bz2
traccar-server-4d55b911bd252c90d1d0ec4053d8502154192676.zip
Added AlertEventHandler & Mute button for all notifications
-rw-r--r--debug.xml1
-rw-r--r--src/org/traccar/BasePipelineFactory.java13
-rw-r--r--src/org/traccar/events/AlertEventHandler.java46
-rw-r--r--src/org/traccar/model/Event.java5
-rw-r--r--src/org/traccar/model/Position.java1
-rw-r--r--src/org/traccar/protocol/H02ProtocolDecoder.java12
-rwxr-xr-xtools/test-generator.py4
-rw-r--r--web/app/AttributeFormatter.js29
-rw-r--r--web/app/controller/Root.js16
-rw-r--r--web/app/view/Report.js5
-rw-r--r--web/app/view/StateController.js49
-rw-r--r--web/l10n/ar.json4
-rw-r--r--web/l10n/bg.json4
-rw-r--r--web/l10n/cs.json4
-rw-r--r--web/l10n/da.json4
-rw-r--r--web/l10n/de.json4
-rw-r--r--web/l10n/el.json4
-rw-r--r--web/l10n/en.json4
-rw-r--r--web/l10n/es.json4
-rw-r--r--web/l10n/fa.json4
-rw-r--r--web/l10n/fi.json4
-rw-r--r--web/l10n/fr.json4
-rw-r--r--web/l10n/he.json4
-rw-r--r--web/l10n/hu.json4
-rw-r--r--web/l10n/id.json4
-rw-r--r--web/l10n/it.json4
-rw-r--r--web/l10n/ka.json4
-rw-r--r--web/l10n/lo.json4
-rw-r--r--web/l10n/lt.json4
-rw-r--r--web/l10n/ml.json4
-rw-r--r--web/l10n/ms.json4
-rw-r--r--web/l10n/nb.json4
-rw-r--r--web/l10n/ne.json4
-rw-r--r--web/l10n/nl.json4
-rw-r--r--web/l10n/nn.json4
-rw-r--r--web/l10n/pl.json4
-rw-r--r--web/l10n/pt.json4
-rw-r--r--web/l10n/pt_BR.json4
-rw-r--r--web/l10n/ro.json4
-rw-r--r--web/l10n/ru.json4
-rw-r--r--web/l10n/si.json4
-rw-r--r--web/l10n/sk.json4
-rw-r--r--web/l10n/sl.json4
-rw-r--r--web/l10n/sr.json4
-rw-r--r--web/l10n/ta.json4
-rw-r--r--web/l10n/th.json4
-rw-r--r--web/l10n/tr.json4
-rw-r--r--web/l10n/uk.json4
-rw-r--r--web/l10n/vi.json4
-rw-r--r--web/l10n/zh.json4
50 files changed, 244 insertions, 93 deletions
diff --git a/debug.xml b/debug.xml
index 5c6a59f27..cf310fd04 100644
--- a/debug.xml
+++ b/debug.xml
@@ -47,6 +47,7 @@
<entry key='event.globalSpeedLimit'>90</entry>
<entry key='event.motionHandler'>true</entry>
<entry key='event.geofenceHandler'>true</entry>
+ <entry key='event.alertHandler'>true</entry>
<!--<entry key='mail.smtp.host'>smtp.example.com</entry>
for STARTTLS
diff --git a/src/org/traccar/BasePipelineFactory.java b/src/org/traccar/BasePipelineFactory.java
index 44f1b0657..eb08c7e08 100644
--- a/src/org/traccar/BasePipelineFactory.java
+++ b/src/org/traccar/BasePipelineFactory.java
@@ -29,10 +29,7 @@ import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.SimpleChannelHandler;
import org.jboss.netty.handler.logging.LoggingHandler;
import org.jboss.netty.handler.timeout.IdleStateHandler;
-import org.traccar.events.CommandResultEventHandler;
-import org.traccar.events.GeofenceEventHandler;
-import org.traccar.events.MotionEventHandler;
-import org.traccar.events.OverspeedEventHandler;
+import org.traccar.events.*;
import org.traccar.helper.Log;
import java.net.InetSocketAddress;
@@ -52,6 +49,7 @@ public abstract class BasePipelineFactory implements ChannelPipelineFactory {
private OverspeedEventHandler overspeedEventHandler;
private MotionEventHandler motionEventHandler;
private GeofenceEventHandler geofenceEventHandler;
+ private AlertEventHandler alertEventHandler;
private static final class OpenChannelHandler extends SimpleChannelHandler {
@@ -146,6 +144,9 @@ public abstract class BasePipelineFactory implements ChannelPipelineFactory {
if (Context.getConfig().getBoolean("event.geofenceHandler")) {
geofenceEventHandler = new GeofenceEventHandler();
}
+ if (Context.getConfig().getBoolean("event.alertHandler")) {
+ alertEventHandler = new AlertEventHandler();
+ }
}
protected abstract void addSpecificHandlers(ChannelPipeline pipeline);
@@ -207,6 +208,10 @@ public abstract class BasePipelineFactory implements ChannelPipelineFactory {
pipeline.addLast("GeofenceEventHandler", geofenceEventHandler);
}
+ if (alertEventHandler != null) {
+ pipeline.addLast("AlertEventHandler", alertEventHandler);
+ }
+
pipeline.addLast("mainHandler", new MainEventHandler());
return pipeline;
}
diff --git a/src/org/traccar/events/AlertEventHandler.java b/src/org/traccar/events/AlertEventHandler.java
new file mode 100644
index 000000000..92d1566a7
--- /dev/null
+++ b/src/org/traccar/events/AlertEventHandler.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright 2016 Anton Tananaev (anton.tananaev@gmail.com)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.traccar.events;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.traccar.BaseEventHandler;
+import org.traccar.model.Event;
+import org.traccar.model.Position;
+
+public class AlertEventHandler extends BaseEventHandler {
+
+ @Override
+ protected Collection<Event> analyzePosition(Position position) {
+ Object alarm = position.getAttributes().get(Position.KEY_ALARM);
+ if (alarm != null) {
+ Collection<Event> events = new ArrayList<>();
+ if(alarm.equals(Event.TYPE_SOS_ALARM)){
+ events.add(new Event(Event.TYPE_SOS_ALARM, position.getDeviceId(), position.getId()));
+ } else if(alarm.equals(Event.TYPE_VIBRATION_ALARM)){
+ events.add(new Event(Event.TYPE_VIBRATION_ALARM, position.getDeviceId(), position.getId()));
+ } else if(alarm.equals(Event.TYPE_MOVEMENT_ALARM)){
+ events.add(new Event(Event.TYPE_MOVEMENT_ALARM, position.getDeviceId(), position.getId()));
+ } else if(alarm.equals(Event.TYPE_OVERSPEED_ALARM)){
+ events.add(new Event(Event.TYPE_OVERSPEED_ALARM, position.getDeviceId(), position.getId()));
+ }
+ return events;
+ }
+ return null;
+ }
+
+}
diff --git a/src/org/traccar/model/Event.java b/src/org/traccar/model/Event.java
index 235a39f9a..3a0056bd6 100644
--- a/src/org/traccar/model/Event.java
+++ b/src/org/traccar/model/Event.java
@@ -48,6 +48,11 @@ public class Event extends Message {
public static final String TYPE_GEOFENCE_ENTER = "geofenceEnter";
public static final String TYPE_GEOFENCE_EXIT = "geofenceExit";
+ public static final String TYPE_SOS_ALARM = "sosAlarm";
+ public static final String TYPE_VIBRATION_ALARM = "vibrationAlarm";
+ public static final String TYPE_MOVEMENT_ALARM = "movementAlarm";
+ public static final String TYPE_OVERSPEED_ALARM = "overspeedAlarm";
+
private Date serverTime;
public Date getServerTime() {
diff --git a/src/org/traccar/model/Position.java b/src/org/traccar/model/Position.java
index c5a7889bd..4e03b2097 100644
--- a/src/org/traccar/model/Position.java
+++ b/src/org/traccar/model/Position.java
@@ -28,7 +28,6 @@ public class Position extends Message {
public static final String KEY_GPS = "gps";
public static final String KEY_EVENT = "event";
public static final String KEY_ALARM = "alarm";
- public static final String KEY_ALARM_TYPE = "alarm-type";
public static final String KEY_STATUS = "status";
public static final String KEY_ODOMETER = "odometer";
public static final String KEY_HOURS = "hours";
diff --git a/src/org/traccar/protocol/H02ProtocolDecoder.java b/src/org/traccar/protocol/H02ProtocolDecoder.java
index ffe16e975..09375958e 100644
--- a/src/org/traccar/protocol/H02ProtocolDecoder.java
+++ b/src/org/traccar/protocol/H02ProtocolDecoder.java
@@ -24,6 +24,7 @@ import org.traccar.helper.BitUtil;
import org.traccar.helper.DateBuilder;
import org.traccar.helper.Parser;
import org.traccar.helper.PatternBuilder;
+import org.traccar.model.Event;
import org.traccar.model.Position;
import java.net.SocketAddress;
@@ -65,18 +66,17 @@ public class H02ProtocolDecoder extends BaseProtocolDecoder {
private void processStatus(Position position, long status) {
if (!BitUtil.check(status, 0) || !BitUtil.check(status, 1)
|| !BitUtil.check(status, 3) || !BitUtil.check(status, 4) || !BitUtil.check(status, 7)) {
- position.set(Position.KEY_ALARM, true);
if (!BitUtil.check(status, 0)){
- position.set(Position.KEY_ALARM_TYPE, "theft");
+ position.set(Position.KEY_ALARM, Event.TYPE_VIBRATION_ALARM);//theft alarm
} else if (!BitUtil.check(status, 1)){
- position.set(Position.KEY_ALARM_TYPE, "robbery");
+ position.set(Position.KEY_ALARM, "robbery");
} else if (!BitUtil.check(status, 3)){
- position.set(Position.KEY_ALARM_TYPE, "illegal ignition");
+ position.set(Position.KEY_ALARM, "illegal ignition");
} else if (!BitUtil.check(status, 4)){
- position.set(Position.KEY_ALARM_TYPE, "entering");
+ position.set(Position.KEY_ALARM, "entering");
} else if (!BitUtil.check(status, 7)){
- position.set(Position.KEY_ALARM_TYPE, "out");
+ position.set(Position.KEY_ALARM, "out");
}
}
diff --git a/tools/test-generator.py b/tools/test-generator.py
index 09fb65611..54e5feced 100755
--- a/tools/test-generator.py
+++ b/tools/test-generator.py
@@ -35,7 +35,7 @@ for i in range(0, len(waypoints)):
def send(lat, lon, course, alarm):
params = (('id', id), ('timestamp', int(time.time())), ('lat', lat), ('lon', lon), ('bearing', course))
if alarm:
- params = params + (('alarm', 'true'),)
+ params = params + (('alarm', 'sosAlarm'),)
urllib2.urlopen(server + '?' + urllib.urlencode(params)).read()
def course(lat1, lon1, lat2, lon2):
@@ -52,7 +52,7 @@ index = 0
while True:
(lat1, lon1) = points[index % len(points)]
(lat2, lon2) = points[(index + 1) % len(points)]
- alarm = False #((index % 10) == 0)
+ alarm = ((index % 10) == 0)
send(lat1, lon1, course(lat1, lon1, lat2, lon2), alarm)
time.sleep(period)
index += 1
diff --git a/web/app/AttributeFormatter.js b/web/app/AttributeFormatter.js
index 253dadb53..4b6cb5755 100644
--- a/web/app/AttributeFormatter.js
+++ b/web/app/AttributeFormatter.js
@@ -34,30 +34,11 @@ Ext.define('Traccar.AttributeFormatter', {
return Ext.getStore('DistanceUnits').formatValue(value, Traccar.app.getPreference('distanceUnit'));
},
- alarmFormatter: function (attributes) {
- if (attributes instanceof Object) {
- if (attributes.hasOwnProperty('alarm')){
- var value = attributes.alarm;
- if (typeof value === 'boolean') {
- value = (value ? Ext.Msg.buttonText.yes : Ext.Msg.buttonText.no);
- }
- return '<span style="color:red;">' + value + '</span>';
- }
- }
- return '';
- },
-
- alarmTypeFormatter: function (attributes) {
- var alatmType = '';
- if (attributes instanceof Object) {
- for (key in attributes) {
- if (attributes.hasOwnProperty(key) && key.toLowerCase()=='alarm-type') {
- alatmType = attributes[key];
- break;
- }
- }
+ alarmFormatter: function (value) {
+ if (typeof value === 'boolean') {
+ value = (value ? Ext.Msg.buttonText.yes : Ext.Msg.buttonText.no);
}
- return '<span style="color:red;">' + alatmType + '</span>';
+ return '<span style="color:red;">' + value + '</span>';
},
defaultFormatter: function (value) {
@@ -86,8 +67,6 @@ Ext.define('Traccar.AttributeFormatter', {
return this.distanceFormatter;
} else if (key === 'alarm') {
return this.alarmFormatter;
- } else if (key === 'alarm-type') {
- return this.alarmTypeFormatter;
} else {
return this.defaultFormatter;
}
diff --git a/web/app/controller/Root.js b/web/app/controller/Root.js
index 98ded9c47..dec3c9158 100644
--- a/web/app/controller/Root.js
+++ b/web/app/controller/Root.js
@@ -89,6 +89,17 @@ Ext.define('Traccar.controller.Root', {
}
},
+ beep: function() {
+ if(this.snd == null){
+ this.snd = new Audio("data:audio/wav;base64,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qJrx4KOQjahZxWbcZgztj2c49nKmkId44S71j0c8eV9yDK6uPRzx5X18eDvjvQ6yKo9ZSS6l//8elePK/Lf//IInrOF/FvDoADYAGBMGb7FtErm5MXMlmPAJQVgWta7Zx2go+8xJ0UiCb8LHHdftWyLJE0QIAIsI+UbXu67dZMjmgDGCGl1H+vpF4NSDckSIkk7Vd+sxEhBQMRU8j/12UIRhzSaUdQ+rQU5kGeFxm+hb1oh6pWWmv3uvmReDl0UnvtapVaIzo1jZbf/pD6ElLqSX+rUmOQNpJFa/r+sa4e/pBlAABoAAAAA3CUgShLdGIxsY7AUABPRrgCABdDuQ5GC7DqPQCgbbJUAoRSUj+NIEig0YfyWUho1VBBBA//uQZB4ABZx5zfMakeAAAAmwAAAAF5F3P0w9GtAAACfAAAAAwLhMDmAYWMgVEG1U0FIGCBgXBXAtfMH10000EEEEEECUBYln03TTTdNBDZopopYvrTTdNa325mImNg3TTPV9q3pmY0xoO6bv3r00y+IDGid/9aaaZTGMuj9mpu9Mpio1dXrr5HERTZSmqU36A3CumzN/9Robv/Xx4v9ijkSRSNLQhAWumap82WRSBUqXStV/YcS+XVLnSS+WLDroqArFkMEsAS+eWmrUzrO0oEmE40RlMZ5+ODIkAyKAGUwZ3mVKmcamcJnMW26MRPgUw6j+LkhyHGVGYjSUUKNpuJUQoOIAyDvEyG8S5yfK6dhZc0Tx1KI/gviKL6qvvFs1+bWtaz58uUNnryq6kt5RzOCkPWlVqVX2a/EEBUdU1KrXLf40GoiiFXK///qpoiDXrOgqDR38JB0bw7SoL+ZB9o1RCkQjQ2CBYZKd/+VJxZRRZlqSkKiws0WFxUyCwsKiMy7hUVFhIaCrNQsKkTIsLivwKKigsj8XYlwt/WKi2N4d//uQRCSAAjURNIHpMZBGYiaQPSYyAAABLAAAAAAAACWAAAAApUF/Mg+0aohSIRobBAsMlO//Kk4soosy1JSFRYWaLC4qZBYWFRGZdwqKiwkNBVmoWFSJkWFxX4FFRQWR+LsS4W/rFRb/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU291bmRib3kuZGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAwNGh0dHA6Ly93d3cuc291bmRib3kuZGUAAAAAAAAAACU=");
+ }
+ this.snd.play();
+ },
+
+ showAlarmSelected: function () {
+ return Ext.getCmp('showAlarmButton') && Ext.getCmp('showAlarmButton').pressed;
+ },
+
asyncUpdate: function (first) {
var protocol, socket, self = this;
protocol = location.protocol === 'https:' ? 'wss:' : 'ws:';
@@ -160,7 +171,10 @@ Ext.define('Traccar.controller.Root', {
}
device = Ext.getStore('Devices').getById(array[i].deviceId);
if (typeof device !== 'undefined') {
- Ext.toast(text, device.getData().name);
+ if(self.showAlarmSelected()){
+ self.beep();
+ Ext.toast(text, device.getData().name);
+ }
}
}
}
diff --git a/web/app/view/Report.js b/web/app/view/Report.js
index 95f8144f2..78ff5d52f 100644
--- a/web/app/view/Report.js
+++ b/web/app/view/Report.js
@@ -120,10 +120,5 @@ Ext.define('Traccar.view.Report', {
dataIndex: 'attributes',
flex: 1,
renderer: Traccar.AttributeFormatter.getFormatter('alarm')
- }, {
- text: 'Alarm Type',
- dataIndex: 'attributes',
- flex: 1,
- renderer: Traccar.AttributeFormatter.getFormatter('alarm-type')
}]
});
diff --git a/web/app/view/StateController.js b/web/app/view/StateController.js
index 68ec3466d..01df6645d 100644
--- a/web/app/view/StateController.js
+++ b/web/app/view/StateController.js
@@ -62,11 +62,6 @@ Ext.define('Traccar.view.StateController', {
if (this.deviceId === data[i].get('deviceId')) {
this.updatePosition(data[i]);
}
- var position = data[i];
- var attributes = position.get('attributes');
- if (attributes instanceof Object){
- if (attributes.hasOwnProperty('alarm') && this.showAlarmSelected()) this.onAlarm(position.get('deviceId'), attributes);
- }
}
},
@@ -109,50 +104,6 @@ Ext.define('Traccar.view.StateController', {
}
},
- showAlarmSelected: function () {
- return Ext.getCmp('showAlarmButton') && Ext.getCmp('showAlarmButton').pressed;
- },
-
- onAlarm: function(deviceId, attributes){
- var alatmType = '';
- for (key in attributes) {
- if (attributes.hasOwnProperty(key) && key.toLowerCase()=='alarm-type') {
- alatmType = ' of type ' + attributes[key];
- break;
- }
- }
-
- var device = Ext.getStore('Devices').findRecord('id', deviceId, 0, false, false, true);
- if(device){
- var deviceName = device.get('name');
- var msg = 'Alarm'+alatmType+' on device '+deviceName+'!';
- this.showAlarmMsg(msg);
- }
- },
-
- showAlarmMsg: function(msg){
- this.beep();
- var alarmMsg = Ext.Msg.show({
- title:'Alarm',
- message: msg,
- modal: false,
- buttons: Ext.Msg.YES,
- icon: Ext.Msg.WARNING
- });
-
- window.setTimeout(function(){
- alarmMsg.close();
- }, 10000)
-
- },
-
- beep: function() {
- if(this.snd == null){
- this.snd = new Audio("data:audio/wav;base64,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qJrx4KOQjahZxWbcZgztj2c49nKmkId44S71j0c8eV9yDK6uPRzx5X18eDvjvQ6yKo9ZSS6l//8elePK/Lf//IInrOF/FvDoADYAGBMGb7FtErm5MXMlmPAJQVgWta7Zx2go+8xJ0UiCb8LHHdftWyLJE0QIAIsI+UbXu67dZMjmgDGCGl1H+vpF4NSDckSIkk7Vd+sxEhBQMRU8j/12UIRhzSaUdQ+rQU5kGeFxm+hb1oh6pWWmv3uvmReDl0UnvtapVaIzo1jZbf/pD6ElLqSX+rUmOQNpJFa/r+sa4e/pBlAABoAAAAA3CUgShLdGIxsY7AUABPRrgCABdDuQ5GC7DqPQCgbbJUAoRSUj+NIEig0YfyWUho1VBBBA//uQZB4ABZx5zfMakeAAAAmwAAAAF5F3P0w9GtAAACfAAAAAwLhMDmAYWMgVEG1U0FIGCBgXBXAtfMH10000EEEEEECUBYln03TTTdNBDZopopYvrTTdNa325mImNg3TTPV9q3pmY0xoO6bv3r00y+IDGid/9aaaZTGMuj9mpu9Mpio1dXrr5HERTZSmqU36A3CumzN/9Robv/Xx4v9ijkSRSNLQhAWumap82WRSBUqXStV/YcS+XVLnSS+WLDroqArFkMEsAS+eWmrUzrO0oEmE40RlMZ5+ODIkAyKAGUwZ3mVKmcamcJnMW26MRPgUw6j+LkhyHGVGYjSUUKNpuJUQoOIAyDvEyG8S5yfK6dhZc0Tx1KI/gviKL6qvvFs1+bWtaz58uUNnryq6kt5RzOCkPWlVqVX2a/EEBUdU1KrXLf40GoiiFXK///qpoiDXrOgqDR38JB0bw7SoL+ZB9o1RCkQjQ2CBYZKd/+VJxZRRZlqSkKiws0WFxUyCwsKiMy7hUVFhIaCrNQsKkTIsLivwKKigsj8XYlwt/WKi2N4d//uQRCSAAjURNIHpMZBGYiaQPSYyAAABLAAAAAAAACWAAAAApUF/Mg+0aohSIRobBAsMlO//Kk4soosy1JSFRYWaLC4qZBYWFRGZdwqKiwkNBVmoWFSJkWFxX4FFRQWR+LsS4W/rFRb/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU291bmRib3kuZGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAwNGh0dHA6Ly93d3cuc291bmRib3kuZGUAAAAAAAAAACU=");
- }
- this.snd.play();
- },
-
selectDevice: function (device) {
var position;
this.deviceId = device.get('id');
diff --git a/web/l10n/ar.json b/web/l10n/ar.json
index 515b75510..a0d843aad 100644
--- a/web/l10n/ar.json
+++ b/web/l10n/ar.json
@@ -118,6 +118,10 @@
"eventCommandResult": "نتيجة الأمر",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "نوع الملاحظة",
"notificationWeb": "أرسل عن طريق صفحة الويب",
"notificationMail": "أرسل عن طريق البريد الإلكتروني"
diff --git a/web/l10n/bg.json b/web/l10n/bg.json
index ac739a6ec..08a1c67de 100644
--- a/web/l10n/bg.json
+++ b/web/l10n/bg.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/cs.json b/web/l10n/cs.json
index 71448bfb4..d2fe08c0a 100644
--- a/web/l10n/cs.json
+++ b/web/l10n/cs.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Výsledek příkazu",
"eventGeofenceEnter": "Zařízení vstoupilo do geografické hranice",
"eventGeofenceExit": "Zařízení opustilo geografickou hranici",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Typ oznámení",
"notificationWeb": "Odeslat přes web",
"notificationMail": "Odeslat přes mail"
diff --git a/web/l10n/da.json b/web/l10n/da.json
index c24aae9c1..5bf98be9a 100644
--- a/web/l10n/da.json
+++ b/web/l10n/da.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/de.json b/web/l10n/de.json
index d76bf0824..8aba977fa 100644
--- a/web/l10n/de.json
+++ b/web/l10n/de.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Ergrbnis des Befehls",
"eventGeofenceEnter": "Gerät hat Geo-Zaun betreten",
"eventGeofenceExit": "Gerät hat Geo-Zaun verlassen",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Art der Benachrichtigung ",
"notificationWeb": "Per Web senden",
"notificationMail": "Per E-Mail senden"
diff --git a/web/l10n/el.json b/web/l10n/el.json
index d9dbfcdf0..c3924213e 100644
--- a/web/l10n/el.json
+++ b/web/l10n/el.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Αποτέλεσμα εντολής",
"eventGeofenceEnter": "Η συσσκευή εισήλθε του γεωφράχτη",
"eventGeofenceExit": "Η συσκευή εξήλθε του γεωφράχτη",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Τύπος ειδοποίησης",
"notificationWeb": "Αποστολή μέσω διαδικτύου",
"notificationMail": "Αποστολή μέσω ηλ. ταχυδρομείου"
diff --git a/web/l10n/en.json b/web/l10n/en.json
index e97bb45b1..2f930a27c 100644
--- a/web/l10n/en.json
+++ b/web/l10n/en.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/es.json b/web/l10n/es.json
index 68cbeae88..33f1066d5 100644
--- a/web/l10n/es.json
+++ b/web/l10n/es.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/fa.json b/web/l10n/fa.json
index 66a517f0a..bdea02e01 100644
--- a/web/l10n/fa.json
+++ b/web/l10n/fa.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/fi.json b/web/l10n/fi.json
index 2c02e0cf5..3b4fef041 100644
--- a/web/l10n/fi.json
+++ b/web/l10n/fi.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/fr.json b/web/l10n/fr.json
index 5111fb952..85e602e46 100644
--- a/web/l10n/fr.json
+++ b/web/l10n/fr.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Résultat de la commande",
"eventGeofenceEnter": "L'appareil est entré dans un périmètre virtuel",
"eventGeofenceExit": "L'appareil est sorti d'un périmètre virtuel",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type de notification",
"notificationWeb": "Envoyer par internet",
"notificationMail": "Envoyer par E-mail"
diff --git a/web/l10n/he.json b/web/l10n/he.json
index 175848af1..1a3028644 100644
--- a/web/l10n/he.json
+++ b/web/l10n/he.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/hu.json b/web/l10n/hu.json
index 2d8ba9976..0aa279bf1 100644
--- a/web/l10n/hu.json
+++ b/web/l10n/hu.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Parancs eredmény",
"eventGeofenceEnter": "Eszköz belépett a geokerítésbe",
"eventGeofenceExit": "Eszköz kilépett a geokerítésből",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Értesítés Típusa",
"notificationWeb": "Küldés Weben",
"notificationMail": "Küldés E-mailben"
diff --git a/web/l10n/id.json b/web/l10n/id.json
index d0f03009e..e4e6f5e76 100644
--- a/web/l10n/id.json
+++ b/web/l10n/id.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/it.json b/web/l10n/it.json
index b2d9104c7..6b1d6b705 100644
--- a/web/l10n/it.json
+++ b/web/l10n/it.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Risultato comando",
"eventGeofenceEnter": "Il dipositivo e` entrato nel GeoRecinto",
"eventGeofenceExit": "Il dipositivo e` uscito dal GeoRecinto",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Tipo notica",
"notificationWeb": "Invia tramite Web",
"notificationMail": "Invia tramite Mail"
diff --git a/web/l10n/ka.json b/web/l10n/ka.json
index 0c789b582..bf501a31e 100644
--- a/web/l10n/ka.json
+++ b/web/l10n/ka.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/lo.json b/web/l10n/lo.json
index 10e9bf226..1be1b13bf 100644
--- a/web/l10n/lo.json
+++ b/web/l10n/lo.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/lt.json b/web/l10n/lt.json
index 7e35f2f63..e311ffeec 100644
--- a/web/l10n/lt.json
+++ b/web/l10n/lt.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/ml.json b/web/l10n/ml.json
index ad2689210..832295f87 100644
--- a/web/l10n/ml.json
+++ b/web/l10n/ml.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/ms.json b/web/l10n/ms.json
index c241deee7..9f36c0171 100644
--- a/web/l10n/ms.json
+++ b/web/l10n/ms.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/nb.json b/web/l10n/nb.json
index d5ff90186..397eddded 100644
--- a/web/l10n/nb.json
+++ b/web/l10n/nb.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/ne.json b/web/l10n/ne.json
index 7e3211949..0935ea60b 100644
--- a/web/l10n/ne.json
+++ b/web/l10n/ne.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/nl.json b/web/l10n/nl.json
index 1b23b288a..c5b88b72c 100644
--- a/web/l10n/nl.json
+++ b/web/l10n/nl.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Commando resultaat",
"eventGeofenceEnter": "Appraat is binnen geografisch gebied",
"eventGeofenceExit": "Apparaat verlaat geografisch gebied",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type notificatie",
"notificationWeb": "Stuur via web",
"notificationMail": "Stuur via mail"
diff --git a/web/l10n/nn.json b/web/l10n/nn.json
index 2fe357e3d..e674ca630 100644
--- a/web/l10n/nn.json
+++ b/web/l10n/nn.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/pl.json b/web/l10n/pl.json
index 7ac5bcba3..03009b42b 100644
--- a/web/l10n/pl.json
+++ b/web/l10n/pl.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/pt.json b/web/l10n/pt.json
index 0feb253d9..5480e4ed0 100644
--- a/web/l10n/pt.json
+++ b/web/l10n/pt.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/pt_BR.json b/web/l10n/pt_BR.json
index c536d5239..f6bc0d460 100644
--- a/web/l10n/pt_BR.json
+++ b/web/l10n/pt_BR.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/ro.json b/web/l10n/ro.json
index cdfec868d..9892f0ae6 100644
--- a/web/l10n/ro.json
+++ b/web/l10n/ro.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/ru.json b/web/l10n/ru.json
index 23314d64d..1a6a64cc3 100644
--- a/web/l10n/ru.json
+++ b/web/l10n/ru.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Результат команды",
"eventGeofenceEnter": "Устройство вошло в геозону",
"eventGeofenceExit": "Устройство покинуло геозону",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Тип уведомления",
"notificationWeb": "Отправлять через Веб",
"notificationMail": "Отправлять через Почту"
diff --git a/web/l10n/si.json b/web/l10n/si.json
index 00c5a5bc9..78c2468a4 100644
--- a/web/l10n/si.json
+++ b/web/l10n/si.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/sk.json b/web/l10n/sk.json
index bd54ed0a7..b1afc742b 100644
--- a/web/l10n/sk.json
+++ b/web/l10n/sk.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/sl.json b/web/l10n/sl.json
index fc81f6500..c4f5bfb7d 100644
--- a/web/l10n/sl.json
+++ b/web/l10n/sl.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/sr.json b/web/l10n/sr.json
index 2170cc444..b7468c13b 100644
--- a/web/l10n/sr.json
+++ b/web/l10n/sr.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Stanje komande",
"eventGeofenceEnter": "Uređaj je ušao u geoogradu",
"eventGeofenceExit": "Uređaj je izašao iz geoograde",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Tip obaveštenja",
"notificationWeb": "Pošalji preko Web-a",
"notificationMail": "Pošalji putem Email-a"
diff --git a/web/l10n/ta.json b/web/l10n/ta.json
index 5d47face5..e8de9c292 100644
--- a/web/l10n/ta.json
+++ b/web/l10n/ta.json
@@ -118,6 +118,10 @@
"eventCommandResult": "கட்டளை விளைவு",
"eventGeofenceEnter": "சாதனம் பூகோள வேலியினுள் நுழைந்துள்ளது",
"eventGeofenceExit": "சாதனம் பூகோள வேலியை விட்டு வெளியேறியது",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "type of notification",
"notificationWeb": "வலைதளம் வழி அனுப்புக ",
"notificationMail": "மின்னஞ்சல் வழி அனுப்புக"
diff --git a/web/l10n/th.json b/web/l10n/th.json
index e1b2b3867..3349ef895 100644
--- a/web/l10n/th.json
+++ b/web/l10n/th.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/tr.json b/web/l10n/tr.json
index bcce758d6..92793a35a 100644
--- a/web/l10n/tr.json
+++ b/web/l10n/tr.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Komut sonucu",
"eventGeofenceEnter": "Cihaz güvenli bölgede",
"eventGeofenceExit": "Cihaz güvenli bölgeden çıktı",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Bildirim tipi",
"notificationWeb": "Wed ile gönder",
"notificationMail": "E-posta ile gönder"
diff --git a/web/l10n/uk.json b/web/l10n/uk.json
index 7cb40e174..d49b0d6f3 100644
--- a/web/l10n/uk.json
+++ b/web/l10n/uk.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/vi.json b/web/l10n/vi.json
index 676b07318..e717719b8 100644
--- a/web/l10n/vi.json
+++ b/web/l10n/vi.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"
diff --git a/web/l10n/zh.json b/web/l10n/zh.json
index 6d32fae23..86089700e 100644
--- a/web/l10n/zh.json
+++ b/web/l10n/zh.json
@@ -118,6 +118,10 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventSosAlarm": "SOS alarm",
+ "eventVibrationAlarm": "Vibration alarm",
+ "eventMovementAlarm": "Movement alarm",
+ "eventOverspeedAlarm": "Overspeed alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"