aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debug.xml1
-rw-r--r--src/org/traccar/BasePipelineFactory.java9
-rw-r--r--src/org/traccar/CoordinatesHandler.java51
-rw-r--r--src/org/traccar/MainEventHandler.java4
-rw-r--r--src/org/traccar/model/Position.java11
-rw-r--r--src/org/traccar/notification/NotificationFormatter.java4
-rw-r--r--src/org/traccar/protocol/AutoFonProtocolDecoder.java4
-rw-r--r--src/org/traccar/protocol/Avl301ProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/BlackKiteProtocolDecoder.java4
-rw-r--r--src/org/traccar/protocol/CarTrackProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/CarcellProtocolDecoder.java4
-rw-r--r--src/org/traccar/protocol/CastelProtocolDecoder.java221
-rw-r--r--src/org/traccar/protocol/Gps103ProtocolDecoder.java21
-rw-r--r--src/org/traccar/protocol/GranitProtocolDecoder.java4
-rw-r--r--src/org/traccar/protocol/Gt06ProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/H02ProtocolDecoder.java13
-rw-r--r--src/org/traccar/protocol/Jt600ProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/MeiligaoProtocolDecoder.java23
-rw-r--r--src/org/traccar/protocol/MxtProtocolDecoder.java4
-rw-r--r--src/org/traccar/protocol/NavisProtocolDecoder.java6
-rw-r--r--src/org/traccar/protocol/NoranProtocolDecoder.java18
-rw-r--r--src/org/traccar/protocol/ObdDongleProtocol.java43
-rw-r--r--src/org/traccar/protocol/ObdDongleProtocolDecoder.java128
-rw-r--r--src/org/traccar/protocol/ProgressProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/SuntechProtocolDecoder.java2
-rw-r--r--src/org/traccar/protocol/TeltonikaProtocolDecoder.java39
-rw-r--r--src/org/traccar/protocol/Tk103ProtocolDecoder.java28
-rw-r--r--src/org/traccar/protocol/TotemProtocolDecoder.java31
-rw-r--r--src/org/traccar/protocol/UlbotechProtocolDecoder.java21
-rw-r--r--test/org/traccar/protocol/CastelProtocolDecoderTest.java6
-rw-r--r--test/org/traccar/protocol/ObdDongleProtocolDecoderTest.java22
-rw-r--r--test/org/traccar/protocol/Tk103ProtocolDecoderTest.java6
-rwxr-xr-xtools/test-generator.py4
-rw-r--r--web/app/view/Login.js4
-rw-r--r--web/app/view/LoginController.js14
-rw-r--r--web/l10n/ar.json70
-rw-r--r--web/l10n/bg.json80
-rw-r--r--web/l10n/cs.json12
-rw-r--r--web/l10n/da.json76
-rw-r--r--web/l10n/de.json12
-rw-r--r--web/l10n/el.json18
-rw-r--r--web/l10n/en.json2
-rw-r--r--web/l10n/es.json50
-rw-r--r--web/l10n/fa.json12
-rw-r--r--web/l10n/fi.json12
-rw-r--r--web/l10n/fr.json22
-rw-r--r--web/l10n/he.json84
-rw-r--r--web/l10n/hu.json12
-rw-r--r--web/l10n/id.json12
-rw-r--r--web/l10n/it.json12
-rw-r--r--web/l10n/ka.json12
-rw-r--r--web/l10n/lo.json178
-rw-r--r--web/l10n/lt.json12
-rw-r--r--web/l10n/ml.json12
-rw-r--r--web/l10n/ms.json12
-rw-r--r--web/l10n/nb.json82
-rw-r--r--web/l10n/ne.json12
-rw-r--r--web/l10n/nl.json12
-rw-r--r--web/l10n/nn.json82
-rw-r--r--web/l10n/pl.json12
-rw-r--r--web/l10n/pt.json12
-rw-r--r--web/l10n/pt_BR.json82
-rw-r--r--web/l10n/ro.json22
-rw-r--r--web/l10n/ru.json12
-rw-r--r--web/l10n/si.json38
-rw-r--r--web/l10n/sk.json80
-rw-r--r--web/l10n/sl.json12
-rw-r--r--web/l10n/sr.json12
-rw-r--r--web/l10n/ta.json12
-rw-r--r--web/l10n/th.json86
-rw-r--r--web/l10n/tr.json12
-rw-r--r--web/l10n/uk.json12
-rw-r--r--web/l10n/vi.json114
-rw-r--r--web/l10n/zh.json12
74 files changed, 1547 insertions, 643 deletions
diff --git a/debug.xml b/debug.xml
index 70bd0e80f..3f875aae7 100644
--- a/debug.xml
+++ b/debug.xml
@@ -448,5 +448,6 @@
<entry key='l100.port'>5112</entry>
<entry key='granit.port'>5113</entry>
<entry key='carcell.port'>5114</entry>
+ <entry key='obddongle.port'>5115</entry>
</properties>
diff --git a/src/org/traccar/BasePipelineFactory.java b/src/org/traccar/BasePipelineFactory.java
index 31845290f..2b5028f33 100644
--- a/src/org/traccar/BasePipelineFactory.java
+++ b/src/org/traccar/BasePipelineFactory.java
@@ -44,6 +44,7 @@ public abstract class BasePipelineFactory implements ChannelPipelineFactory {
private int timeout;
private FilterHandler filterHandler;
+ private CoordinatesHandler coordinatesHandler;
private DistanceHandler distanceHandler;
private ReverseGeocoderHandler reverseGeocoderHandler;
private LocationProviderHandler locationProviderHandler;
@@ -115,6 +116,10 @@ public abstract class BasePipelineFactory implements ChannelPipelineFactory {
filterHandler = new FilterHandler();
}
+ if (Context.getConfig().getBoolean("coordinates.filter")) {
+ coordinatesHandler = new CoordinatesHandler();
+ }
+
if (Context.getReverseGeocoder() != null) {
reverseGeocoderHandler = new ReverseGeocoderHandler(
Context.getReverseGeocoder(), Context.getConfig().getBoolean("geocoder.processInvalidPositions"));
@@ -188,6 +193,10 @@ public abstract class BasePipelineFactory implements ChannelPipelineFactory {
pipeline.addLast("filter", filterHandler);
}
+ if (coordinatesHandler != null) {
+ pipeline.addLast("coordinatesHandler", coordinatesHandler);
+ }
+
if (Context.getDataManager() != null) {
pipeline.addLast("dataHandler", new DefaultDataHandler());
}
diff --git a/src/org/traccar/CoordinatesHandler.java b/src/org/traccar/CoordinatesHandler.java
new file mode 100644
index 000000000..2dcb3c632
--- /dev/null
+++ b/src/org/traccar/CoordinatesHandler.java
@@ -0,0 +1,51 @@
+/*
+ * 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;
+
+import org.traccar.helper.DistanceCalculator;
+import org.traccar.model.Position;
+
+public class CoordinatesHandler extends BaseDataHandler {
+
+ private final int coordinatesError;
+
+ public CoordinatesHandler() {
+ Config config = Context.getConfig();
+ coordinatesError = config.getInteger("coordinates.error", 50);
+ }
+
+ private Position getLastPosition(long deviceId) {
+ if (Context.getIdentityManager() != null) {
+ return Context.getIdentityManager().getLastPosition(deviceId);
+ }
+ return null;
+ }
+
+ @Override
+ protected Position handlePosition(Position position) {
+ Position last = getLastPosition(position.getDeviceId());
+ if (last != null) {
+ double distance = DistanceCalculator.distance(
+ position.getLatitude(), position.getLongitude(), last.getLatitude(), last.getLongitude());
+ if (distance < coordinatesError) {
+ position.setLatitude(last.getLatitude());
+ position.setLongitude(last.getLongitude());
+ }
+ }
+ return position;
+ }
+
+}
diff --git a/src/org/traccar/MainEventHandler.java b/src/org/traccar/MainEventHandler.java
index c01760283..3f7e68b2a 100644
--- a/src/org/traccar/MainEventHandler.java
+++ b/src/org/traccar/MainEventHandler.java
@@ -25,6 +25,7 @@ import org.jboss.netty.handler.timeout.IdleStateAwareChannelHandler;
import org.jboss.netty.handler.timeout.IdleStateEvent;
import org.traccar.helper.Log;
import org.traccar.model.Position;
+import org.traccar.protocol.TeltonikaProtocolDecoder;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
@@ -78,7 +79,8 @@ public class MainEventHandler extends IdleStateAwareChannelHandler {
Log.info(formatChannel(e.getChannel()) + " disconnected");
closeChannel(e.getChannel());
- if (ctx.getPipeline().get("httpDecoder") == null) {
+ if (ctx.getPipeline().get("httpDecoder") == null
+ && !(ctx.getPipeline().get("objectDecoder") instanceof TeltonikaProtocolDecoder)) {
Context.getConnectionManager().removeActiveDevice(e.getChannel());
}
}
diff --git a/src/org/traccar/model/Position.java b/src/org/traccar/model/Position.java
index e667f097d..d2409a75d 100644
--- a/src/org/traccar/model/Position.java
+++ b/src/org/traccar/model/Position.java
@@ -54,6 +54,7 @@ public class Position extends Message {
public static final String KEY_APPROXIMATE = "approximate";
public static final String KEY_THROTTLE = "throttle";
public static final String KEY_MOTION = "motion";
+ public static final String KEY_ARMED = "armed";
public static final String KEY_OBD_SPEED = "obd-speed";
public static final String KEY_OBD_ODOMETER = "obd-odometer";
@@ -65,15 +66,25 @@ public class Position extends Message {
public static final String PREFIX_ADC = "adc";
public static final String PREFIX_IO = "io";
public static final String PREFIX_COUNT = "count";
+ public static final String PREFIX_BUTTON = "button";
+ public static final String ALARM_GENERAL = "general";
public static final String ALARM_SOS = "sos";
public static final String ALARM_VIBRATION = "vibration";
public static final String ALARM_MOVEMENT = "movement";
+ public static final String ALARM_LOW_SPEED = "lowspeed";
public static final String ALARM_OVERSPEED = "overspeed";
public static final String ALARM_FALL_DOWN = "fallDown";
public static final String ALARM_LOW_BATTERY = "lowBattery";
public static final String ALARM_MOTION = "motion";
public static final String ALARM_FAULT = "fault";
+ public static final String ALARM_POWER_OFF = "powerOff";
+ public static final String ALARM_GEOFENCE = "geofence";
+ public static final String ALARM_GEOFENCE_ENTER = "geofenceEnter";
+ public static final String ALARM_GEOFENCE_EXIT = "geofenceExit";
+ public static final String ALARM_GPS_ANTENNA_CUT = "gpsAntennaCut";
+ public static final String ALARM_ACCIDENT = "accident";
+
private String protocol;
diff --git a/src/org/traccar/notification/NotificationFormatter.java b/src/org/traccar/notification/NotificationFormatter.java
index 37bd7848c..449426df0 100644
--- a/src/org/traccar/notification/NotificationFormatter.java
+++ b/src/org/traccar/notification/NotificationFormatter.java
@@ -53,9 +53,9 @@ public final class NotificationFormatter {
+ "Point: http://www.openstreetmap.org/?mlat=%3$f&mlon=%4$f#map=16/%3$f/%4$f%n"
+ "Time: %2$tc%n";
- public static final String TITLE_TEMPLATE_TYPE_DEVICE_OVERSPEED = "%1$s: exeeds the speed";
+ public static final String TITLE_TEMPLATE_TYPE_DEVICE_OVERSPEED = "%1$s: exceeds the speed";
public static final String MESSAGE_TEMPLATE_TYPE_DEVICE_OVERSPEED = "Device: %1$s%n"
- + "Exeeds the speed: %5$f%n"
+ + "Exceeds the speed: %5$f%n"
+ "Point: http://www.openstreetmap.org/?mlat=%3$f&mlon=%4$f#map=16/%3$f/%4$f%n"
+ "Time: %2$tc%n";
diff --git a/src/org/traccar/protocol/AutoFonProtocolDecoder.java b/src/org/traccar/protocol/AutoFonProtocolDecoder.java
index dd0f54af0..90e8ca103 100644
--- a/src/org/traccar/protocol/AutoFonProtocolDecoder.java
+++ b/src/org/traccar/protocol/AutoFonProtocolDecoder.java
@@ -169,7 +169,9 @@ public class AutoFonProtocolDecoder extends BaseProtocolDecoder {
position.setDeviceId(deviceSession.getDeviceId());
short status = buf.readUnsignedByte();
- position.set(Position.KEY_ALARM, BitUtil.check(status, 7));
+ if (BitUtil.check(status, 7)) {
+ position.set(Position.KEY_ALARM, Position.ALARM_GENERAL);
+ }
position.set(Position.KEY_BATTERY, BitUtil.to(status, 7));
buf.skipBytes(2); // remaining time
diff --git a/src/org/traccar/protocol/Avl301ProtocolDecoder.java b/src/org/traccar/protocol/Avl301ProtocolDecoder.java
index 4d2dfe126..818dd94df 100644
--- a/src/org/traccar/protocol/Avl301ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Avl301ProtocolDecoder.java
@@ -123,7 +123,7 @@ public class Avl301ProtocolDecoder extends BaseProtocolDecoder {
position.set(Position.KEY_LAC, buf.readUnsignedShort());
position.set(Position.KEY_CID, buf.readUnsignedMedium());
- position.set(Position.KEY_ALARM, true);
+ position.set(Position.KEY_ALARM, Position.ALARM_GENERAL);
int flags = buf.readUnsignedByte();
position.set("acc", (flags & 0x2) != 0);
diff --git a/src/org/traccar/protocol/BlackKiteProtocolDecoder.java b/src/org/traccar/protocol/BlackKiteProtocolDecoder.java
index 92179072a..c2c051884 100644
--- a/src/org/traccar/protocol/BlackKiteProtocolDecoder.java
+++ b/src/org/traccar/protocol/BlackKiteProtocolDecoder.java
@@ -122,7 +122,9 @@ public class BlackKiteProtocolDecoder extends BaseProtocolDecoder {
case TAG_STATUS:
int status = buf.readUnsignedShort();
position.set(Position.KEY_IGNITION, BitUtil.check(status, 9));
- position.set(Position.KEY_ALARM, BitUtil.check(status, 15));
+ if (BitUtil.check(status, 15)) {
+ position.set(Position.KEY_ALARM, Position.ALARM_GENERAL);
+ }
position.set(Position.KEY_POWER, BitUtil.check(status, 2));
break;
diff --git a/src/org/traccar/protocol/CarTrackProtocolDecoder.java b/src/org/traccar/protocol/CarTrackProtocolDecoder.java
index e0fd60b15..0d21e77e6 100644
--- a/src/org/traccar/protocol/CarTrackProtocolDecoder.java
+++ b/src/org/traccar/protocol/CarTrackProtocolDecoder.java
@@ -99,7 +99,7 @@ public class CarTrackProtocolDecoder extends BaseProtocolDecoder {
odometer = odometer.replace("?", "F");
position.set(Position.KEY_ODOMETER, Integer.parseInt(odometer, 16));
- position.set(Position.KEY_ALARM, parser.next());
+ parser.next(); // there is no meaningful alarms
position.set(Position.PREFIX_ADC + 1, parser.next());
return position;
diff --git a/src/org/traccar/protocol/CarcellProtocolDecoder.java b/src/org/traccar/protocol/CarcellProtocolDecoder.java
index 7aacfa4d0..e9b6cdf28 100644
--- a/src/org/traccar/protocol/CarcellProtocolDecoder.java
+++ b/src/org/traccar/protocol/CarcellProtocolDecoder.java
@@ -143,7 +143,9 @@ public class CarcellProtocolDecoder extends BaseProtocolDecoder {
parser.next(); // panic button status
String painelStatus = parser.next();
- position.set(Position.KEY_ALARM, painelStatus.equals("1"));
+ if (painelStatus.equals("1")) {
+ position.set(Position.KEY_ALARM, Position.ALARM_GENERAL);
+ }
position.set("painel", painelStatus.equals("2"));
Double mainVoltage = parser.nextDouble() / 100d;
diff --git a/src/org/traccar/protocol/CastelProtocolDecoder.java b/src/org/traccar/protocol/CastelProtocolDecoder.java
index 212096018..994c66ea6 100644
--- a/src/org/traccar/protocol/CastelProtocolDecoder.java
+++ b/src/org/traccar/protocol/CastelProtocolDecoder.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com)
+ * Copyright 2015 - 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.
@@ -132,150 +132,175 @@ public class CastelProtocolDecoder extends BaseProtocolDecoder {
}
}
- @Override
- protected Object decode(
- Channel channel, SocketAddress remoteAddress, Object msg) throws Exception {
+ private Object decodeSc(
+ Channel channel, SocketAddress remoteAddress, ChannelBuffer buf,
+ int version, ChannelBuffer id, int type, DeviceSession deviceSession) {
- ChannelBuffer buf = (ChannelBuffer) msg;
+ if (type == MSG_SC_HEARTBEAT) {
- int header = buf.readUnsignedShort();
- buf.readUnsignedShort(); // length
+ sendResponse(channel, remoteAddress, version, id, MSG_SC_HEARTBEAT_RESPONSE, null);
- int version = -1;
- if (header == 0x4040) {
- version = buf.readUnsignedByte();
- }
+ } else if (type == MSG_SC_LOGIN || type == MSG_SC_LOGOUT || type == MSG_SC_GPS
+ || type == MSG_SC_ALARM || type == MSG_SC_CURRENT_LOCATION) {
- ChannelBuffer id = buf.readBytes(20);
- int type = ChannelBuffers.swapShort(buf.readShort());
-
- DeviceSession deviceSession = getDeviceSession(
- channel, remoteAddress, id.toString(StandardCharsets.US_ASCII).trim());
- if (deviceSession == null) {
- return null;
- }
+ if (type == MSG_SC_LOGIN) {
+ ChannelBuffer response = ChannelBuffers.directBuffer(ByteOrder.LITTLE_ENDIAN, 10);
+ response.writeInt(0xFFFFFFFF);
+ response.writeShort(0);
+ response.writeInt((int) (System.currentTimeMillis() / 1000));
+ sendResponse(channel, remoteAddress, version, id, MSG_SC_LOGIN_RESPONSE, response);
+ }
- if (version == -1) {
+ if (type == MSG_SC_GPS) {
+ buf.readUnsignedByte(); // historical
+ } else if (type == MSG_SC_ALARM) {
+ buf.readUnsignedInt(); // alarm
+ } else if (type == MSG_SC_CURRENT_LOCATION) {
+ buf.readUnsignedShort();
+ }
- if (type == 0x2001) {
+ buf.readUnsignedInt(); // ACC ON time
+ buf.readUnsignedInt(); // UTC time
+ long odometer = buf.readUnsignedInt();
+ buf.readUnsignedInt(); // trip odometer
+ buf.readUnsignedInt(); // total fuel consumption
+ buf.readUnsignedShort(); // current fuel consumption
+ long status = buf.readUnsignedInt();
+ buf.skipBytes(8);
- sendResponse(channel, remoteAddress, id, (short) 0x1001);
+ int count = buf.readUnsignedByte();
- buf.readUnsignedInt(); // index
- buf.readUnsignedInt(); // unix time
- buf.readUnsignedByte();
+ List<Position> positions = new LinkedList<>();
- return readPosition(deviceSession, buf);
+ for (int i = 0; i < count; i++) {
+ Position position = readPosition(deviceSession, buf);
+ position.set(Position.KEY_ODOMETER, odometer);
+ position.set(Position.KEY_STATUS, status);
+ positions.add(position);
+ }
+ if (!positions.isEmpty()) {
+ return positions;
}
- } else if (version == 4) {
+ } else if (type == MSG_SC_GPS_SLEEP) {
- if (type == MSG_SC_HEARTBEAT) {
+ buf.readUnsignedInt(); // device time
- sendResponse(channel, remoteAddress, version, id, MSG_SC_HEARTBEAT_RESPONSE, null);
+ return readPosition(deviceSession, buf);
- } else if (type == MSG_SC_LOGIN || type == MSG_SC_LOGOUT || type == MSG_SC_GPS
- || type == MSG_SC_ALARM || type == MSG_SC_CURRENT_LOCATION) {
+ } else if (type == MSG_SC_AGPS_REQUEST) {
- if (type == MSG_SC_LOGIN) {
- ChannelBuffer response = ChannelBuffers.directBuffer(ByteOrder.LITTLE_ENDIAN, 10);
- response.writeInt(0xFFFFFFFF);
- response.writeShort(0);
- response.writeInt((int) (System.currentTimeMillis() / 1000));
- sendResponse(channel, remoteAddress, version, id, MSG_SC_LOGIN_RESPONSE, response);
- }
+ return readPosition(deviceSession, buf);
- if (type == MSG_SC_GPS) {
- buf.readUnsignedByte(); // historical
- } else if (type == MSG_SC_ALARM) {
- buf.readUnsignedInt(); // alarm
- } else if (type == MSG_SC_CURRENT_LOCATION) {
- buf.readUnsignedShort();
- }
+ }
- buf.readUnsignedInt(); // ACC ON time
- buf.readUnsignedInt(); // UTC time
- long odometer = buf.readUnsignedInt();
- buf.readUnsignedInt(); // trip odometer
- buf.readUnsignedInt(); // total fuel consumption
- buf.readUnsignedShort(); // current fuel consumption
- long status = buf.readUnsignedInt();
- buf.skipBytes(8);
+ return null;
+ }
- int count = buf.readUnsignedByte();
- List<Position> positions = new LinkedList<>();
+ private Object decodeCc(
+ Channel channel, SocketAddress remoteAddress, ChannelBuffer buf,
+ int version, ChannelBuffer id, int type, DeviceSession deviceSession) {
- for (int i = 0; i < count; i++) {
- Position position = readPosition(deviceSession, buf);
- position.set(Position.KEY_ODOMETER, odometer);
- position.set(Position.KEY_STATUS, status);
- positions.add(position);
- }
+ if (type == MSG_CC_HEARTBEAT) {
- if (!positions.isEmpty()) {
- return positions;
- }
+ sendResponse(channel, remoteAddress, version, id, MSG_CC_HEARTBEAT_RESPONSE, null);
- } else if (type == MSG_SC_GPS_SLEEP || type == MSG_SC_AGPS_REQUEST) {
+ buf.readUnsignedByte(); // 0x01 for history
+ int count = buf.readUnsignedByte();
- return readPosition(deviceSession, buf);
+ List<Position> positions = new LinkedList<>();
+
+ for (int i = 0; i < count; i++) {
+ Position position = readPosition(deviceSession, buf);
+
+ position.set(Position.KEY_STATUS, buf.readUnsignedInt());
+ position.set(Position.KEY_BATTERY, buf.readUnsignedByte());
+ position.set(Position.KEY_ODOMETER, buf.readUnsignedInt());
+
+ buf.readUnsignedByte(); // geo-fencing id
+ buf.readUnsignedByte(); // geo-fencing flags
+ buf.readUnsignedByte(); // additional flags
+
+ position.set(Position.KEY_LAC, buf.readUnsignedShort());
+ position.set(Position.KEY_CID, buf.readUnsignedShort());
+ positions.add(position);
}
- } else {
+ return positions;
- if (type == MSG_CC_HEARTBEAT) {
+ } else if (type == MSG_CC_LOGIN) {
- sendResponse(channel, remoteAddress, version, id, MSG_CC_HEARTBEAT_RESPONSE, null);
+ sendResponse(channel, remoteAddress, version, id, MSG_CC_LOGIN_RESPONSE, null);
- buf.readUnsignedByte(); // 0x01 for history
- int count = buf.readUnsignedByte();
+ Position position = readPosition(deviceSession, buf);
- List<Position> positions = new LinkedList<>();
+ position.set(Position.KEY_STATUS, buf.readUnsignedInt());
+ position.set(Position.KEY_BATTERY, buf.readUnsignedByte());
+ position.set(Position.KEY_ODOMETER, buf.readUnsignedInt());
- for (int i = 0; i < count; i++) {
- Position position = readPosition(deviceSession, buf);
+ buf.readUnsignedByte(); // geo-fencing id
+ buf.readUnsignedByte(); // geo-fencing flags
+ buf.readUnsignedByte(); // additional flags
- position.set(Position.KEY_STATUS, buf.readUnsignedInt());
- position.set(Position.KEY_BATTERY, buf.readUnsignedByte());
- position.set(Position.KEY_ODOMETER, buf.readUnsignedInt());
+ // GSM_CELL_CODE
+ // STR_Z - firmware version
+ // STR_Z - hardware version
- buf.readUnsignedByte(); // geo-fencing id
- buf.readUnsignedByte(); // geo-fencing flags
- buf.readUnsignedByte(); // additional flags
+ return position;
- position.set(Position.KEY_LAC, buf.readUnsignedShort());
- position.set(Position.KEY_CID, buf.readUnsignedShort());
+ }
- positions.add(position);
- }
+ return null;
+ }
- return positions;
+ @Override
+ protected Object decode(
+ Channel channel, SocketAddress remoteAddress, Object msg) throws Exception {
- } else if (type == MSG_CC_LOGIN) {
+ ChannelBuffer buf = (ChannelBuffer) msg;
- sendResponse(channel, remoteAddress, version, id, MSG_CC_LOGIN_RESPONSE, null);
+ int header = buf.readUnsignedShort();
+ buf.readUnsignedShort(); // length
- Position position = readPosition(deviceSession, buf);
+ int version = -1;
+ if (header == 0x4040) {
+ version = buf.readUnsignedByte();
+ }
- position.set(Position.KEY_STATUS, buf.readUnsignedInt());
- position.set(Position.KEY_BATTERY, buf.readUnsignedByte());
- position.set(Position.KEY_ODOMETER, buf.readUnsignedInt());
+ ChannelBuffer id = buf.readBytes(20);
+ int type = ChannelBuffers.swapShort(buf.readShort());
- buf.readUnsignedByte(); // geo-fencing id
- buf.readUnsignedByte(); // geo-fencing flags
- buf.readUnsignedByte(); // additional flags
+ DeviceSession deviceSession = getDeviceSession(
+ channel, remoteAddress, id.toString(StandardCharsets.US_ASCII).trim());
+ if (deviceSession == null) {
+ return null;
+ }
+
+ if (version == -1) {
+
+ if (type == 0x2001) {
+
+ sendResponse(channel, remoteAddress, id, (short) 0x1001);
- // GSM_CELL_CODE
- // STR_Z - firmware version
- // STR_Z - hardware version
+ buf.readUnsignedInt(); // index
+ buf.readUnsignedInt(); // unix time
+ buf.readUnsignedByte();
- return position;
+ return readPosition(deviceSession, buf);
}
+ } else if (version == 4) {
+
+ return decodeSc(channel, remoteAddress, buf, version, id, type, deviceSession);
+
+ } else {
+
+ return decodeCc(channel, remoteAddress, buf, version, id, type, deviceSession);
+
}
return null;
diff --git a/src/org/traccar/protocol/Gps103ProtocolDecoder.java b/src/org/traccar/protocol/Gps103ProtocolDecoder.java
index 821cf2d21..b153984cb 100644
--- a/src/org/traccar/protocol/Gps103ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Gps103ProtocolDecoder.java
@@ -102,6 +102,25 @@ public class Gps103ProtocolDecoder extends BaseProtocolDecoder {
.any()
.compile();
+ private String decodeAlarm(String value) {
+ switch (value) {
+ case "tracker":
+ return null;
+ case "help me":
+ return Position.ALARM_SOS;
+ case "low battery":
+ return Position.ALARM_LOW_BATTERY;
+ case "stockade":
+ return Position.ALARM_GEOFENCE;
+ case "move":
+ return Position.ALARM_MOVEMENT;
+ case "speed":
+ return Position.ALARM_OVERSPEED;
+ default:
+ return null;
+ }
+ }
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg) throws Exception {
@@ -195,7 +214,7 @@ public class Gps103ProtocolDecoder extends BaseProtocolDecoder {
position.setDeviceId(deviceSession.getDeviceId());
String alarm = parser.next();
- position.set(Position.KEY_ALARM, alarm);
+ position.set(Position.KEY_ALARM, decodeAlarm(alarm));
if (channel != null && alarm.equals("help me")) {
channel.write("**,imei:" + imei + ",E;", remoteAddress);
}
diff --git a/src/org/traccar/protocol/GranitProtocolDecoder.java b/src/org/traccar/protocol/GranitProtocolDecoder.java
index 0c7ea4d1d..3a2d24fa2 100644
--- a/src/org/traccar/protocol/GranitProtocolDecoder.java
+++ b/src/org/traccar/protocol/GranitProtocolDecoder.java
@@ -71,7 +71,9 @@ public class GranitProtocolDecoder extends BaseProtocolDecoder {
private static void decodeStructure(ChannelBuffer buf, Position position) {
short flags = buf.readUnsignedByte();
position.setValid(BitUtil.check(flags, 7));
- position.set(Position.KEY_ALARM, BitUtil.check(flags, 1));
+ if (BitUtil.check(flags, 1)) {
+ position.set(Position.KEY_ALARM, Position.ALARM_GENERAL);
+ }
short satDel = buf.readUnsignedByte();
position.set(Position.KEY_SATELLITES, BitUtil.from(satDel, 4));
diff --git a/src/org/traccar/protocol/Gt06ProtocolDecoder.java b/src/org/traccar/protocol/Gt06ProtocolDecoder.java
index 3e875086e..d69f425ab 100644
--- a/src/org/traccar/protocol/Gt06ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Gt06ProtocolDecoder.java
@@ -154,7 +154,7 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder {
private void decodeStatus(Position position, ChannelBuffer buf) {
- position.set(Position.KEY_ALARM, true);
+ position.set(Position.KEY_ALARM, Position.ALARM_GENERAL);
int flags = buf.readUnsignedByte();
diff --git a/src/org/traccar/protocol/H02ProtocolDecoder.java b/src/org/traccar/protocol/H02ProtocolDecoder.java
index bb18a68e2..fc6c9f17c 100644
--- a/src/org/traccar/protocol/H02ProtocolDecoder.java
+++ b/src/org/traccar/protocol/H02ProtocolDecoder.java
@@ -65,20 +65,15 @@ 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)) {
+ || !BitUtil.check(status, 2)) {
if (!BitUtil.check(status, 0)) {
position.set(Position.KEY_ALARM, Position.ALARM_VIBRATION);
} else if (!BitUtil.check(status, 1)) {
- position.set(Position.KEY_ALARM, "robbery");
- } else if (!BitUtil.check(status, 3)) {
- position.set(Position.KEY_ALARM, "illegal ignition");
- } else if (!BitUtil.check(status, 4)) {
- position.set(Position.KEY_ALARM, "entering");
- } else if (!BitUtil.check(status, 7)) {
- position.set(Position.KEY_ALARM, "out");
+ position.set(Position.KEY_ALARM, Position.ALARM_SOS);
+ } else if (!BitUtil.check(status, 2)) {
+ position.set(Position.KEY_ALARM, Position.ALARM_OVERSPEED);
}
-
}
position.set(Position.KEY_IGNITION, BitUtil.check(status, 10));
position.set(Position.KEY_STATUS, status);
diff --git a/src/org/traccar/protocol/Jt600ProtocolDecoder.java b/src/org/traccar/protocol/Jt600ProtocolDecoder.java
index 7e0b54456..372b4cac1 100644
--- a/src/org/traccar/protocol/Jt600ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Jt600ProtocolDecoder.java
@@ -151,7 +151,7 @@ public class Jt600ProtocolDecoder extends BaseProtocolDecoder {
Position position = new Position();
position.setProtocol(getProtocolName());
- position.set(Position.KEY_ALARM, true);
+ position.set(Position.KEY_ALARM, Position.ALARM_GENERAL);
DeviceSession deviceSession = getDeviceSession(channel, remoteAddress, parser.next());
if (deviceSession == null) {
diff --git a/src/org/traccar/protocol/MeiligaoProtocolDecoder.java b/src/org/traccar/protocol/MeiligaoProtocolDecoder.java
index 9c7e9ea23..41e248791 100644
--- a/src/org/traccar/protocol/MeiligaoProtocolDecoder.java
+++ b/src/org/traccar/protocol/MeiligaoProtocolDecoder.java
@@ -151,6 +151,27 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder {
return server;
}
+ private String decodeAlarm(short value) {
+ switch (value) {
+ case 0x01:
+ return Position.ALARM_SOS;
+ case 0x10:
+ return Position.ALARM_LOW_BATTERY;
+ case 0x11:
+ return Position.ALARM_OVERSPEED;
+ case 0x12:
+ return Position.ALARM_MOVEMENT;
+ case 0x13:
+ return Position.ALARM_GEOFENCE_ENTER;
+ case 0x50:
+ return Position.ALARM_POWER_OFF;
+ case 0x53:
+ return Position.ALARM_GPS_ANTENNA_CUT;
+ default:
+ return null;
+ }
+ }
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg) throws Exception {
@@ -196,7 +217,7 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder {
// Custom data
if (command == MSG_ALARM) {
- position.set(Position.KEY_ALARM, buf.readUnsignedByte());
+ position.set(Position.KEY_ALARM, decodeAlarm(buf.readUnsignedByte()));
} else if (command == MSG_POSITION_LOGGED) {
buf.skipBytes(6);
}
diff --git a/src/org/traccar/protocol/MxtProtocolDecoder.java b/src/org/traccar/protocol/MxtProtocolDecoder.java
index 56024057e..1dbfc3696 100644
--- a/src/org/traccar/protocol/MxtProtocolDecoder.java
+++ b/src/org/traccar/protocol/MxtProtocolDecoder.java
@@ -82,7 +82,9 @@ public class MxtProtocolDecoder extends BaseProtocolDecoder {
long flags = buf.readUnsignedInt();
position.set(Position.KEY_IGNITION, BitUtil.check(flags, 0));
- position.set(Position.KEY_ALARM, BitUtil.check(flags, 1));
+ if (BitUtil.check(flags, 1)) {
+ position.set(Position.KEY_ALARM, Position.ALARM_GENERAL);
+ }
position.set(Position.KEY_INPUT, BitUtil.between(flags, 2, 7));
position.set(Position.KEY_OUTPUT, BitUtil.between(flags, 7, 10));
position.setCourse(BitUtil.between(flags, 10, 13) * 45);
diff --git a/src/org/traccar/protocol/NavisProtocolDecoder.java b/src/org/traccar/protocol/NavisProtocolDecoder.java
index fad24301c..72c5f53c3 100644
--- a/src/org/traccar/protocol/NavisProtocolDecoder.java
+++ b/src/org/traccar/protocol/NavisProtocolDecoder.java
@@ -95,7 +95,11 @@ public class NavisProtocolDecoder extends BaseProtocolDecoder {
buf.skipBytes(6); // event time
- position.set(Position.KEY_ALARM, buf.readUnsignedByte());
+ short armedStatus = buf.readUnsignedByte();
+ position.set(Position.KEY_ARMED, armedStatus & 0x7F);
+ if (BitUtil.check(armedStatus, 7)) {
+ position.set(Position.KEY_ALARM, Position.ALARM_GENERAL);
+ }
position.set(Position.KEY_STATUS, buf.readUnsignedByte());
position.set(Position.KEY_GSM, buf.readUnsignedByte());
diff --git a/src/org/traccar/protocol/NoranProtocolDecoder.java b/src/org/traccar/protocol/NoranProtocolDecoder.java
index c2161d9c9..aaecfc1db 100644
--- a/src/org/traccar/protocol/NoranProtocolDecoder.java
+++ b/src/org/traccar/protocol/NoranProtocolDecoder.java
@@ -90,7 +90,23 @@ public class NoranProtocolDecoder extends BaseProtocolDecoder {
position.setValid(BitUtil.check(buf.readUnsignedByte(), 0));
- position.set(Position.KEY_ALARM, buf.readUnsignedByte());
+ short alarm = buf.readUnsignedByte();
+ switch (alarm) {
+ case 1:
+ position.set(Position.KEY_ALARM, Position.ALARM_SOS);
+ break;
+ case 2:
+ position.set(Position.KEY_ALARM, Position.ALARM_OVERSPEED);
+ break;
+ case 3:
+ position.set(Position.KEY_ALARM, Position.ALARM_GEOFENCE_EXIT);
+ break;
+ case 9:
+ position.set(Position.KEY_ALARM, Position.ALARM_POWER_OFF);
+ break;
+ default:
+ break;
+ }
if (newFormat) {
position.setSpeed(UnitsConverter.knotsFromKph(buf.readUnsignedInt()));
diff --git a/src/org/traccar/protocol/ObdDongleProtocol.java b/src/org/traccar/protocol/ObdDongleProtocol.java
new file mode 100644
index 000000000..e87f9a99a
--- /dev/null
+++ b/src/org/traccar/protocol/ObdDongleProtocol.java
@@ -0,0 +1,43 @@
+/*
+ * 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.protocol;
+
+import org.jboss.netty.bootstrap.ServerBootstrap;
+import org.jboss.netty.channel.ChannelPipeline;
+import org.jboss.netty.handler.codec.frame.LengthFieldBasedFrameDecoder;
+import org.traccar.BaseProtocol;
+import org.traccar.TrackerServer;
+
+import java.util.List;
+
+public class ObdDongleProtocol extends BaseProtocol {
+
+ public ObdDongleProtocol() {
+ super("obddongle");
+ }
+
+ @Override
+ public void initTrackerServers(List<TrackerServer> serverList) {
+ serverList.add(new TrackerServer(new ServerBootstrap(), this.getName()) {
+ @Override
+ protected void addSpecificHandlers(ChannelPipeline pipeline) {
+ pipeline.addLast("frameDecoder", new LengthFieldBasedFrameDecoder(1099, 20, 2, 3, 0));
+ pipeline.addLast("objectDecoder", new ObdDongleProtocolDecoder(ObdDongleProtocol.this));
+ }
+ });
+ }
+
+}
diff --git a/src/org/traccar/protocol/ObdDongleProtocolDecoder.java b/src/org/traccar/protocol/ObdDongleProtocolDecoder.java
new file mode 100644
index 000000000..84ff1450a
--- /dev/null
+++ b/src/org/traccar/protocol/ObdDongleProtocolDecoder.java
@@ -0,0 +1,128 @@
+/*
+ * 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.protocol;
+
+import org.jboss.netty.buffer.ChannelBuffer;
+import org.jboss.netty.buffer.ChannelBuffers;
+import org.jboss.netty.channel.Channel;
+import org.traccar.BaseProtocolDecoder;
+import org.traccar.DeviceSession;
+import org.traccar.helper.BitUtil;
+import org.traccar.helper.UnitsConverter;
+import org.traccar.model.Position;
+
+import java.net.SocketAddress;
+import java.nio.charset.StandardCharsets;
+import java.util.Date;
+
+public class ObdDongleProtocolDecoder extends BaseProtocolDecoder {
+
+ public ObdDongleProtocolDecoder(ObdDongleProtocol protocol) {
+ super(protocol);
+ }
+
+ public static final int MSG_TYPE_CONNECT = 0x01;
+ public static final int MSG_TYPE_CONNACK = 0x02;
+ public static final int MSG_TYPE_PUBLISH = 0x03;
+ public static final int MSG_TYPE_PUBACK = 0x04;
+ public static final int MSG_TYPE_PINGREQ = 0x0C;
+ public static final int MSG_TYPE_PINGRESP = 0x0D;
+ public static final int MSG_TYPE_DISCONNECT = 0x0E;
+
+ private static void sendResponse(Channel channel, int type, int index, String imei, ChannelBuffer content) {
+ if (channel != null) {
+ ChannelBuffer response = ChannelBuffers.dynamicBuffer();
+ response.writeShort(0x5555); // header
+ response.writeShort(index);
+ response.writeBytes(imei.getBytes(StandardCharsets.US_ASCII));
+ response.writeByte(type);
+ response.writeShort(content.readableBytes());
+ response.writeBytes(content);
+ response.writeByte(0); // checksum
+ response.writeShort(0xAAAA);
+ channel.write(response);
+ }
+ }
+
+ @Override
+ protected Object decode(
+ Channel channel, SocketAddress remoteAddress, Object msg) throws Exception {
+
+ ChannelBuffer buf = (ChannelBuffer) msg;
+
+ buf.skipBytes(2); // header
+ int index = buf.readUnsignedShort();
+
+ String imei = buf.readBytes(15).toString(StandardCharsets.US_ASCII);
+ DeviceSession deviceSession = getDeviceSession(channel, remoteAddress, imei);
+ if (deviceSession == null) {
+ return null;
+ }
+
+ int type = buf.readUnsignedByte();
+
+ buf.readUnsignedShort(); // data length
+
+ if (type == MSG_TYPE_CONNECT) {
+
+ ChannelBuffer response = ChannelBuffers.dynamicBuffer();
+ response.writeByte(1);
+ response.writeShort(0);
+ response.writeInt(0);
+ sendResponse(channel, MSG_TYPE_CONNACK, index, imei, response);
+
+ } else if (type == MSG_TYPE_PUBLISH) {
+
+ int typeMajor = buf.readUnsignedByte();
+ int typeMinor = buf.readUnsignedByte();
+
+ buf.readUnsignedByte(); // event id
+
+ Position position = new Position();
+ position.setProtocol(getProtocolName());
+ position.setDeviceId(deviceSession.getDeviceId());
+
+ position.setTime(new Date(buf.readUnsignedInt() * 1000));
+
+ int flags = buf.readUnsignedByte();
+
+ position.setValid(!BitUtil.check(flags, 6));
+
+ position.set(Position.KEY_SATELLITES, BitUtil.to(flags, 4));
+
+ double longitude = ((BitUtil.to(buf.readUnsignedShort(), 1) << 24) + buf.readUnsignedMedium()) * 0.00001;
+ position.setLongitude(BitUtil.check(flags, 5) ? longitude : -longitude);
+
+ double latitude = buf.readUnsignedMedium() * 0.00001;
+ position.setLatitude(BitUtil.check(flags, 4) ? latitude : -latitude);
+
+ int speedCourse = buf.readUnsignedMedium();
+ position.setSpeed(UnitsConverter.knotsFromMph(BitUtil.from(speedCourse, 10) * 0.1));
+ position.setCourse(BitUtil.to(speedCourse, 10));
+
+ ChannelBuffer response = ChannelBuffers.dynamicBuffer();
+ response.writeByte(typeMajor);
+ response.writeByte(typeMinor);
+ sendResponse(channel, MSG_TYPE_PUBACK, index, imei, response);
+
+ return position;
+
+ }
+
+ return null;
+ }
+
+}
diff --git a/src/org/traccar/protocol/ProgressProtocolDecoder.java b/src/org/traccar/protocol/ProgressProtocolDecoder.java
index e524626fa..0032a9a1b 100644
--- a/src/org/traccar/protocol/ProgressProtocolDecoder.java
+++ b/src/org/traccar/protocol/ProgressProtocolDecoder.java
@@ -104,7 +104,7 @@ public class ProgressProtocolDecoder extends BaseProtocolDecoder {
position.set(Position.KEY_ARCHIVE, true);
int subtype = buf.readUnsignedShort();
if (subtype == MSG_ALARM) {
- position.set(Position.KEY_ALARM, true);
+ position.set(Position.KEY_ALARM, Position.ALARM_GENERAL);
}
if (buf.readUnsignedShort() > buf.readableBytes()) {
lastIndex += 1;
diff --git a/src/org/traccar/protocol/SuntechProtocolDecoder.java b/src/org/traccar/protocol/SuntechProtocolDecoder.java
index 5169e7c67..503f4d6f8 100644
--- a/src/org/traccar/protocol/SuntechProtocolDecoder.java
+++ b/src/org/traccar/protocol/SuntechProtocolDecoder.java
@@ -68,7 +68,7 @@ public class SuntechProtocolDecoder extends BaseProtocolDecoder {
if (parser.hasNext()) {
String type = parser.next();
if (type.equals("Alert") || type.equals("Emergency")) {
- position.set(Position.KEY_ALARM, true);
+ position.set(Position.KEY_ALARM, Position.ALARM_GENERAL);
}
}
diff --git a/src/org/traccar/protocol/TeltonikaProtocolDecoder.java b/src/org/traccar/protocol/TeltonikaProtocolDecoder.java
index d982b07b3..00ab90ce0 100644
--- a/src/org/traccar/protocol/TeltonikaProtocolDecoder.java
+++ b/src/org/traccar/protocol/TeltonikaProtocolDecoder.java
@@ -67,6 +67,32 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder {
}
+ private void decodeParameter(Position position, int id, long value) {
+ switch (id) {
+ case 9:
+ position.set(Position.PREFIX_ADC + 1, value);
+ break;
+ case 66:
+ position.set(Position.KEY_POWER, value);
+ break;
+ case 68:
+ position.set(Position.KEY_BATTERY, value);
+ break;
+ case 85:
+ position.set(Position.KEY_RPM, value);
+ break;
+ case 182:
+ position.set(Position.KEY_HDOP, value);
+ break;
+ case 239:
+ position.set(Position.KEY_IGNITION, value == 1);
+ break;
+ default:
+ position.set(Position.PREFIX_IO + id, value);
+ break;
+ }
+ }
+
private void decodeLocation(Position position, ChannelBuffer buf, int codec) {
int globalMask = 0x0f;
@@ -153,12 +179,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder {
if (BitUtil.check(globalMask, 1)) {
int cnt = buf.readUnsignedByte();
for (int j = 0; j < cnt; j++) {
- int id = buf.readUnsignedByte();
- if (id == 1) {
- position.set(Position.KEY_POWER, buf.readUnsignedByte());
- } else {
- position.set(Position.PREFIX_IO + id, buf.readUnsignedByte());
- }
+ decodeParameter(position, buf.readUnsignedByte(), buf.readUnsignedByte());
}
}
@@ -166,7 +187,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder {
if (BitUtil.check(globalMask, 2)) {
int cnt = buf.readUnsignedByte();
for (int j = 0; j < cnt; j++) {
- position.set(Position.PREFIX_IO + buf.readUnsignedByte(), buf.readUnsignedShort());
+ decodeParameter(position, buf.readUnsignedByte(), buf.readUnsignedShort());
}
}
@@ -174,7 +195,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder {
if (BitUtil.check(globalMask, 3)) {
int cnt = buf.readUnsignedByte();
for (int j = 0; j < cnt; j++) {
- position.set(Position.PREFIX_IO + buf.readUnsignedByte(), buf.readUnsignedInt());
+ decodeParameter(position, buf.readUnsignedByte(), buf.readUnsignedInt());
}
}
@@ -182,7 +203,7 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder {
if (codec == CODEC_FM4X00) {
int cnt = buf.readUnsignedByte();
for (int j = 0; j < cnt; j++) {
- position.set(Position.PREFIX_IO + buf.readUnsignedByte(), buf.readLong());
+ decodeParameter(position, buf.readUnsignedByte(), buf.readLong());
}
}
diff --git a/src/org/traccar/protocol/Tk103ProtocolDecoder.java b/src/org/traccar/protocol/Tk103ProtocolDecoder.java
index a76c208b5..ac99a1440 100644
--- a/src/org/traccar/protocol/Tk103ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Tk103ProtocolDecoder.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012 - 2015 Anton Tananaev (anton.tananaev@gmail.com)
+ * Copyright 2012 - 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.
@@ -51,6 +51,7 @@ public class Tk103ProtocolDecoder extends BaseProtocolDecoder {
.number("(?:([01]{8})|(x{8}))?,?") // state
.number("(?:L(x+))?") // odometer
.any()
+ .number("([+-]ddd.d)?") // temperature
.text(")").optional()
.compile();
@@ -75,6 +76,25 @@ public class Tk103ProtocolDecoder extends BaseProtocolDecoder {
.any()
.compile();
+ private String decodeAlarm(int value) {
+ switch (value) {
+ case 1:
+ return Position.ALARM_ACCIDENT;
+ case 2:
+ return Position.ALARM_SOS;
+ case 3:
+ return Position.ALARM_VIBRATION;
+ case 4:
+ return Position.ALARM_LOW_SPEED;
+ case 5:
+ return Position.ALARM_OVERSPEED;
+ case 6:
+ return Position.ALARM_GEOFENCE_EXIT;
+ default:
+ return null;
+ }
+ }
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg) throws Exception {
@@ -160,7 +180,7 @@ public class Tk103ProtocolDecoder extends BaseProtocolDecoder {
int alarm = sentence.indexOf("BO01");
if (alarm != -1) {
- position.set(Position.KEY_ALARM, Integer.parseInt(sentence.substring(alarm + 4, alarm + 5)));
+ position.set(Position.KEY_ALARM, decodeAlarm(Integer.parseInt(sentence.substring(alarm + 4, alarm + 5))));
}
DateBuilder dateBuilder = new DateBuilder();
@@ -206,6 +226,10 @@ public class Tk103ProtocolDecoder extends BaseProtocolDecoder {
position.set(Position.KEY_ODOMETER, parser.nextLong(16));
}
+ if (parser.hasNext()) {
+ position.set(Position.PREFIX_TEMP + 1, parser.nextDouble());
+ }
+
return position;
}
diff --git a/src/org/traccar/protocol/TotemProtocolDecoder.java b/src/org/traccar/protocol/TotemProtocolDecoder.java
index 7b196f5ad..72c0f6306 100644
--- a/src/org/traccar/protocol/TotemProtocolDecoder.java
+++ b/src/org/traccar/protocol/TotemProtocolDecoder.java
@@ -159,6 +159,23 @@ public class TotemProtocolDecoder extends BaseProtocolDecoder {
.any()
.compile();
+ private String decodeAlarm(Short value) {
+ switch (value) {
+ case 0x01:
+ return Position.ALARM_SOS;
+ case 0x10:
+ return Position.ALARM_LOW_BATTERY;
+ case 0x11:
+ return Position.ALARM_OVERSPEED;
+ case 0x42:
+ return Position.ALARM_GEOFENCE_EXIT;
+ case 0x43:
+ return Position.ALARM_GEOFENCE_ENTER;
+ default:
+ return null;
+ }
+ }
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg) throws Exception {
@@ -193,9 +210,9 @@ public class TotemProtocolDecoder extends BaseProtocolDecoder {
position.setDeviceId(deviceSession.getDeviceId());
if (pattern == PATTERN1 || pattern == PATTERN2) {
-
- position.set(Position.KEY_ALARM, parser.next());
-
+ if (parser.hasNext()) {
+ position.set(Position.KEY_ALARM, decodeAlarm(Short.parseShort(parser.next(), 16)));
+ }
DateBuilder dateBuilder = new DateBuilder();
int year = 0;
if (pattern == PATTERN2) {
@@ -238,9 +255,9 @@ public class TotemProtocolDecoder extends BaseProtocolDecoder {
position.set(Position.KEY_ODOMETER, parser.next());
} else if (pattern == PATTERN3) {
-
- position.set(Position.KEY_ALARM, parser.next());
-
+ if (parser.hasNext()) {
+ position.set(Position.KEY_ALARM, decodeAlarm(Short.parseShort(parser.next(), 16)));
+ }
DateBuilder dateBuilder = new DateBuilder()
.setDateReverse(parser.nextInt(), parser.nextInt(), parser.nextInt())
.setTime(parser.nextInt(), parser.nextInt(), parser.nextInt());
@@ -304,11 +321,9 @@ public class TotemProtocolDecoder extends BaseProtocolDecoder {
position.setLongitude(parser.nextCoordinate());
}
-
if (channel != null) {
channel.write("ACK OK\r\n");
}
-
return position;
}
diff --git a/src/org/traccar/protocol/UlbotechProtocolDecoder.java b/src/org/traccar/protocol/UlbotechProtocolDecoder.java
index c17341b5f..36fb23f9a 100644
--- a/src/org/traccar/protocol/UlbotechProtocolDecoder.java
+++ b/src/org/traccar/protocol/UlbotechProtocolDecoder.java
@@ -115,6 +115,25 @@ public class UlbotechProtocolDecoder extends BaseProtocolDecoder {
}
}
+ private String decodeAlarm(int alarm) {
+ if (BitUtil.check(alarm, 0)) {
+ return Position.ALARM_POWER_OFF;
+ }
+ if (BitUtil.check(alarm, 1)) {
+ return Position.ALARM_MOTION;
+ }
+ if (BitUtil.check(alarm, 2)) {
+ return Position.ALARM_OVERSPEED;
+ }
+ if (BitUtil.check(alarm, 4)) {
+ return Position.ALARM_GEOFENCE;
+ }
+ if (BitUtil.check(alarm, 10)) {
+ return Position.ALARM_SOS;
+ }
+ return null;
+ }
+
@Override
protected Object decode(
Channel channel, SocketAddress remoteAddress, Object msg) throws Exception {
@@ -181,7 +200,7 @@ public class UlbotechProtocolDecoder extends BaseProtocolDecoder {
int status = buf.readUnsignedShort();
position.set(Position.KEY_IGNITION, BitUtil.check(status, 9));
position.set(Position.KEY_STATUS, status);
- position.set(Position.KEY_ALARM, buf.readUnsignedShort());
+ position.set(Position.KEY_ALARM, decodeAlarm(buf.readUnsignedShort()));
break;
case DATA_ODOMETER:
diff --git a/test/org/traccar/protocol/CastelProtocolDecoderTest.java b/test/org/traccar/protocol/CastelProtocolDecoderTest.java
index eafe80748..feba9386e 100644
--- a/test/org/traccar/protocol/CastelProtocolDecoderTest.java
+++ b/test/org/traccar/protocol/CastelProtocolDecoderTest.java
@@ -13,6 +13,12 @@ public class CastelProtocolDecoderTest extends ProtocolTest {
CastelProtocolDecoder decoder = new CastelProtocolDecoder(new CastelProtocol());
verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN,
+ "40403600043231334e583230313630303033343600000000004009ad31a457050810061a35b29bf80ae6da83180300320bbe32580d0a40403600043231334e583230313630303033343600000000004009ad31a457050810061a35b29bf80ae6da83180300320bbe32580d0a"));
+
+ verifyNothing(decoder, binary(ByteOrder.LITTLE_ENDIAN,
+ "4040d400043535333133350000000000000000000000000000100196d499574bd899570000000000000000010000000000000000000000002410000000004944445f3231334730325f532056322e332e345f4e004944445f3231334730325f482056322e332e345f4e0032000110021003100410051006100710081009100a100b100c100d100e1011100111021103110411051106110711011202120312041201130213031301160216011701180218011b011c011d011e011f021f031f041f051f061f071f012102210126012701285b410d0a"));
+
+ verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN,
"24243f00676e6768656636313031313132393030313734002001840d0000d2deb556020602100b35360456cf09e6ebac0200000000030000000001abc10d0a"));
verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN,
diff --git a/test/org/traccar/protocol/ObdDongleProtocolDecoderTest.java b/test/org/traccar/protocol/ObdDongleProtocolDecoderTest.java
new file mode 100644
index 000000000..19e3a4ff2
--- /dev/null
+++ b/test/org/traccar/protocol/ObdDongleProtocolDecoderTest.java
@@ -0,0 +1,22 @@
+package org.traccar.protocol;
+
+import org.junit.Test;
+import org.traccar.ProtocolTest;
+
+public class ObdDongleProtocolDecoderTest extends ProtocolTest {
+
+ @Test
+ public void testDecode() throws Exception {
+
+ ObdDongleProtocolDecoder decoder = new ObdDongleProtocolDecoder(new ObdDongleProtocol());
+
+ verifyNothing(decoder, binary(
+ "55550003383634383637303232353131303135010009010011023402010201ABAAAA"));
+
+ verifyPosition(decoder, binary(
+ "5555000338363438363730323235313130313503000100010355AABBCC184F1ABC614E21C1FA08712A84ABAAAA"),
+ position("2015-07-18 20:49:16.000", true, 22.12346, -123.45678));
+
+ }
+
+}
diff --git a/test/org/traccar/protocol/Tk103ProtocolDecoderTest.java b/test/org/traccar/protocol/Tk103ProtocolDecoderTest.java
index b15d7894e..c1bf148bc 100644
--- a/test/org/traccar/protocol/Tk103ProtocolDecoderTest.java
+++ b/test/org/traccar/protocol/Tk103ProtocolDecoderTest.java
@@ -10,6 +10,12 @@ public class Tk103ProtocolDecoderTest extends ProtocolTest {
Tk103ProtocolDecoder decoder = new Tk103ProtocolDecoder(new Tk103Protocol());
+ verifyPosition(decoder, text(
+ "(088046338039BR00160727A3354.7768N03540.7258E000.0140832068.4700000000L00BEB0D4+017.7)"));
+
+ verifyPosition(decoder, text(
+ "(088046338039BP05000088046338039160727A3354.7768N03540.7258E000.0140309065.1000000000L00BEB0D4+017.3)"));
+
verifyAttributes(decoder, text(
"(013632651491,ZC20,180716,144222,6,392,65535,255"));
diff --git a/tools/test-generator.py b/tools/test-generator.py
index b4edbfbaf..41a32a565 100755
--- a/tools/test-generator.py
+++ b/tools/test-generator.py
@@ -37,7 +37,7 @@ def send(conn, lat, lon, course, alarm):
if alarm:
params = params + (('alarm', 'sos'),)
conn.request('GET', '?' + urllib.urlencode(params))
- conn.getresponse()
+ conn.getresponse().read()
def course(lat1, lon1, lat2, lon2):
lat1 = lat1 * math.pi / 180
@@ -58,4 +58,4 @@ while True:
alarm = ((index % 10) == 0)
send(conn, lat1, lon1, course(lat1, lon1, lat2, lon2), alarm)
time.sleep(period)
- index += 1 \ No newline at end of file
+ index += 1
diff --git a/web/app/view/Login.js b/web/app/view/Login.js
index 259086854..db3c55261 100644
--- a/web/app/view/Login.js
+++ b/web/app/view/Login.js
@@ -77,8 +77,8 @@ Ext.define('Traccar.view.Login', {
inputAttrTpl: ['autocomplete="on"']
}, {
xtype: 'checkboxfield',
- reference: 'rememberMeField',
- fieldLabel: Strings.rememberMe
+ reference: 'rememberField',
+ fieldLabel: Strings.userRemember
}, {
xtype: 'component',
html: '<iframe id="submitTarget" name="submitTarget" style="display:none"></iframe>'
diff --git a/web/app/view/LoginController.js b/web/app/view/LoginController.js
index f78b1e560..7a78a6fb1 100644
--- a/web/app/view/LoginController.js
+++ b/web/app/view/LoginController.js
@@ -1,5 +1,5 @@
/*
- * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com)
+ * Copyright 2015 - 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.
@@ -27,10 +27,10 @@ Ext.define('Traccar.view.LoginController', {
!Traccar.app.getServer().get('registration'));
this.lookupReference('languageField').setValue(Locale.language);
var user = Ext.util.Cookies.get('user');
- var pass = Ext.util.Cookies.get('pass');
- if (user && pass) {
+ var password = Ext.util.Cookies.get('password');
+ if (user && password) {
this.lookupReference('userField').setValue(user);
- this.lookupReference('passwordField').setValue(pass);
+ this.lookupReference('passwordField').setValue(password);
this.login();
}
},
@@ -47,9 +47,9 @@ Ext.define('Traccar.view.LoginController', {
callback: function (options, success, response) {
Ext.getBody().unmask();
if (success) {
- if (this.lookupReference('rememberMeField').getValue()) {
+ if (this.lookupReference('rememberField').getValue()) {
Ext.util.Cookies.set('user', this.lookupReference('userField').getValue(), Ext.Date.add(new Date(), Ext.Date.YEAR, 1));
- Ext.util.Cookies.set('pass', this.lookupReference('passwordField').getValue(), Ext.Date.add(new Date(), Ext.Date.YEAR, 1));
+ Ext.util.Cookies.set('password', this.lookupReference('passwordField').getValue(), Ext.Date.add(new Date(), Ext.Date.YEAR, 1));
}
Traccar.app.setUser(Ext.decode(response.responseText));
this.fireViewEvent('login');
@@ -63,7 +63,7 @@ Ext.define('Traccar.view.LoginController', {
logout: function () {
Ext.util.Cookies.clear('user');
- Ext.util.Cookies.clear('pass');
+ Ext.util.Cookies.clear('password');
Ext.Ajax.request({
scope: this,
method: 'DELETE',
diff --git a/web/l10n/ar.json b/web/l10n/ar.json
index 515b75510..ac40da9ee 100644
--- a/web/l10n/ar.json
+++ b/web/l10n/ar.json
@@ -5,10 +5,10 @@
"sharedAdd": "إضافة",
"sharedEdit": "تعديل",
"sharedRemove": "حذف",
- "sharedRemoveConfirm": "حذف العنصر",
+ "sharedRemoveConfirm": "حذف العنصر؟",
"sharedKm": "كم",
"sharedMi": "ميل",
- "sharedKn": "kn",
+ "sharedKn": "عقدة",
"sharedKmh": "كم/ساعه",
"sharedMph": "ميل/ساعة",
"sharedHour": "ساعه",
@@ -17,23 +17,25 @@
"sharedName": "الاسم",
"sharedDescription": "الوصف",
"sharedSearch": "بحث",
- "sharedGeofence": "السياج الغرافي",
+ "sharedGeofence": "السياج الجغرافي",
"sharedGeofences": "السياجات الجغرافية",
"sharedNotifications": "التنبيهات",
- "sharedAttributes": "Attributes",
- "sharedAttribute": "Attribute",
+ "sharedAttributes": "الخصائص",
+ "sharedAttribute": "خاصية",
"sharedArea": "منطقة",
+ "sharedMute": "Mute",
"errorTitle": "خطأ",
"errorUnknown": "خطأ غير معروف",
"errorConnection": "خطأ في الاتصال",
- "userEmail": "بريد الكتروني",
+ "userEmail": "بريد إلكتروني",
"userPassword": "كلمة المرور",
"userAdmin": "مدير النظام",
- "loginTitle": "دخول",
+ "userRemember": "Remember",
+ "loginTitle": "تسجيل الدخول",
"loginLanguage": "اللغة",
- "loginRegister": "تسجيل",
- "loginLogin": "تسجيل دخول",
- "loginFailed": "كلمة مرور او بريد خطأ",
+ "loginRegister": "تسجيل جديد",
+ "loginLogin": "تسجيل الدخول",
+ "loginFailed": "كلمة مرور او بريد خاطئ",
"loginCreated": "تم تسجيل مستخدم جديد",
"loginLogout": "خروج",
"devicesAndState": "الأجهزة والحالة",
@@ -43,17 +45,17 @@
"deviceLastUpdate": "آخر تحديث",
"deviceCommand": "أمر ",
"deviceFollow": "متابعة",
- "groupDialog": "Group",
- "groupParent": "Group",
- "groupNoGroup": "No Group",
+ "groupDialog": "مجموعة",
+ "groupParent": "مجموعة",
+ "groupNoGroup": "لا توجد مجموعة",
"settingsTitle": "إعدادات",
"settingsUser": "حساب",
"settingsGroups": "المجموعات",
"settingsServer": "خادم",
- "settingsUsers": "مستخدم",
+ "settingsUsers": "المستخدمون",
"settingsDistanceUnit": "مسافة",
"settingsSpeedUnit": "سرعة",
- "settingsTwelveHourFormat": "هيئة 12-ساعة",
+ "settingsTwelveHourFormat": "صيغة 12-ساعة",
"reportTitle": "تقارير",
"reportDevice": "جهاز",
"reportFrom": "من",
@@ -61,18 +63,18 @@
"reportShow": "اظهار",
"reportClear": "تفريغ الحقول",
"positionFixTime": "وقت",
- "positionValid": "صحيح",
+ "positionValid": "صالح",
"positionLatitude": "خط العرض",
"positionLongitude": "خط الطول",
"positionAltitude": "ارتفاع عن سطح البحر",
"positionSpeed": "السرعة",
- "positionCourse": "Course",
+ "positionCourse": "دورة",
"positionAddress": "العنوان",
"positionProtocol": "بروتوكول",
"serverTitle": "اعدادت الخادم",
"serverZoom": "تقريب",
"serverRegistration": "تسجيل",
- "serverReadonly": "Readonly",
+ "serverReadonly": "قراءة فقط",
"mapTitle": "خريطة",
"mapLayer": "طبقة الخريطة",
"mapCustom": "خريطة محددة",
@@ -80,8 +82,8 @@
"mapBingKey": "مفتاح خرائط Bing",
"mapBingRoad": " خرائط الطرق Bing",
"mapBingAerial": "خرائط جوية Bing",
- "mapShapePolygon": "Polygon",
- "mapShapeCircle": "Circle",
+ "mapShapePolygon": "مضلع",
+ "mapShapeCircle": "دائرة",
"stateTitle": "حالة",
"stateName": "عنصر",
"stateValue": "قيمة",
@@ -93,21 +95,21 @@
"commandPositionStop": "ايقاف الارسال",
"commandEngineStop": "ايقاف المحرك",
"commandEngineResume": "تشغيل المحرك",
- "commandFrequency": "معدل",
+ "commandFrequency": "تردد",
"commandUnit": "وحدة",
"commandCustom": "أمر خاص",
- "commandPositionSingle": "Single Reporting",
- "commandAlarmArm": "Arm Alarm",
+ "commandPositionSingle": "تقرير مفرد",
+ "commandAlarmArm": "بدء تشغيل المنبه",
"commandAlarmDisarm": "تعطيل المنبه",
"commandSetTimezone": "حدد التوقيت الزمني",
"commandRequestPhoto": "اطلب صورة",
"commandRebootDevice": "أعد تشغيل الجهاز",
- "commandSendSms": "Send SMS",
- "commandSosNumber": "Set SOS Number",
+ "commandSendSms": "إرسال رسالة قصيرة",
+ "commandSosNumber": "ظبط رقم الطوارئ",
"commandSilenceTime": "حدد توقيت الصامت",
- "commandSetPhonebook": "Set Phonebook",
+ "commandSetPhonebook": "ضبط سجل الهاتف",
"commandVoiceMessage": "رسالة صوتية",
- "commandOutputControl": "Output Control",
+ "commandOutputControl": "التحكم بالإخراج",
"commandAlarmSpeed": "منبه تعدي السرعة",
"commandDeviceIdentification": "تعريف الجهاز",
"eventDeviceOnline": "الجهاز متصل",
@@ -116,8 +118,18 @@
"eventDeviceStopped": "الجهاز متوقف",
"eventDeviceOverspeed": "الجهاز متعدٍّ للسرعة",
"eventCommandResult": "نتيجة الأمر",
- "eventGeofenceEnter": "Device has entered geofence",
- "eventGeofenceExit": "Device has exited geofence",
+ "eventGeofenceEnter": "الجهاز قد دخل السياج الجغرافي",
+ "eventGeofenceExit": "الجهاز قد خرج من السياج الجغرافي",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault Alarm",
"notificationType": "نوع الملاحظة",
"notificationWeb": "أرسل عن طريق صفحة الويب",
"notificationMail": "أرسل عن طريق البريد الإلكتروني"
diff --git a/web/l10n/bg.json b/web/l10n/bg.json
index ac739a6ec..68d631ec8 100644
--- a/web/l10n/bg.json
+++ b/web/l10n/bg.json
@@ -15,20 +15,22 @@
"sharedMinute": "Минута",
"sharedSecond": "Секунда",
"sharedName": "Име",
- "sharedDescription": "Description",
+ "sharedDescription": "Описание",
"sharedSearch": "Търси",
- "sharedGeofence": "Geofence",
- "sharedGeofences": "Geofences",
- "sharedNotifications": "Notifications",
- "sharedAttributes": "Attributes",
- "sharedAttribute": "Attribute",
- "sharedArea": "Area",
+ "sharedGeofence": "Зона",
+ "sharedGeofences": "Зони",
+ "sharedNotifications": "Известия",
+ "sharedAttributes": "Атрибути",
+ "sharedAttribute": "Атрибут",
+ "sharedArea": "Район",
+ "sharedMute": "Изкл. звук",
"errorTitle": "Грешка",
"errorUnknown": "Непозната Грешка",
"errorConnection": "Грешка във връзката",
"userEmail": "Пощенска кутия",
"userPassword": "Парола",
"userAdmin": "Admin",
+ "userRemember": "Remember",
"loginTitle": "Вход",
"loginLanguage": "Език",
"loginRegister": "Регистрация",
@@ -80,8 +82,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
- "mapShapePolygon": "Polygon",
- "mapShapeCircle": "Circle",
+ "mapShapePolygon": "Многоъгълник",
+ "mapShapeCircle": "Кръг",
"stateTitle": "Състояние",
"stateName": "Параметър",
"stateValue": "Стойност",
@@ -95,30 +97,40 @@
"commandEngineResume": "Стартирай Двигател",
"commandFrequency": "Честота",
"commandUnit": "Обект",
- "commandCustom": "Custom command",
- "commandPositionSingle": "Single Reporting",
- "commandAlarmArm": "Arm Alarm",
- "commandAlarmDisarm": "Disarm Alarm",
- "commandSetTimezone": "Set Timezone",
- "commandRequestPhoto": "Request Photo",
- "commandRebootDevice": "Reboot Device",
- "commandSendSms": "Send SMS",
- "commandSosNumber": "Set SOS Number",
- "commandSilenceTime": "Set Silence Time",
- "commandSetPhonebook": "Set Phonebook",
- "commandVoiceMessage": "Voice Message",
+ "commandCustom": "Персонализирана Команда",
+ "commandPositionSingle": "Единичен доклад",
+ "commandAlarmArm": "Активирай Аларма",
+ "commandAlarmDisarm": "Деактивирай Аларма",
+ "commandSetTimezone": "Задайте Часова Зона",
+ "commandRequestPhoto": "Изпрати Снимка",
+ "commandRebootDevice": "Рестартирай Устройство",
+ "commandSendSms": "Изпрати СМС",
+ "commandSosNumber": "Задай SOS номер",
+ "commandSilenceTime": "Задай Тих Час",
+ "commandSetPhonebook": "Задай Тел. Указател",
+ "commandVoiceMessage": "Гласово Съобщение",
"commandOutputControl": "Output Control",
- "commandAlarmSpeed": "Overspeed Alarm",
- "commandDeviceIdentification": "Device Identification",
- "eventDeviceOnline": "Device is online",
- "eventDeviceOffline": "Device is offline",
- "eventDeviceMoving": "Device is moving",
- "eventDeviceStopped": "Device is stopped",
- "eventDeviceOverspeed": "Device exceeds the speed",
- "eventCommandResult": "Command result",
- "eventGeofenceEnter": "Device has entered geofence",
- "eventGeofenceExit": "Device has exited geofence",
- "notificationType": "Type of Notification",
- "notificationWeb": "Send via Web",
- "notificationMail": "Send via Mail"
+ "commandAlarmSpeed": "Аларма за Превишена Скорост",
+ "commandDeviceIdentification": "Идентификация на Устройство",
+ "eventDeviceOnline": "Устройството е онлайн",
+ "eventDeviceOffline": "Устройството е офлайн",
+ "eventDeviceMoving": "Устройството е в движение",
+ "eventDeviceStopped": "Устройството е спряло",
+ "eventDeviceOverspeed": "Устройството превишава скоростта",
+ "eventCommandResult": "Резултат от командата",
+ "eventGeofenceEnter": "Устройството влезе в зоната",
+ "eventGeofenceExit": "Устройството излезе от зоната",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault Alarm",
+ "notificationType": "Тип на известието",
+ "notificationWeb": "Изпрати през Web",
+ "notificationMail": "Изпрати през Mail"
} \ No newline at end of file
diff --git a/web/l10n/cs.json b/web/l10n/cs.json
index 71448bfb4..e27f767be 100644
--- a/web/l10n/cs.json
+++ b/web/l10n/cs.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Atributy",
"sharedAttribute": "Atribut",
"sharedArea": "Oblast",
+ "sharedMute": "Mute",
"errorTitle": "Chyba",
"errorUnknown": "Neznámá chyba",
"errorConnection": "Chyba spojení",
"userEmail": "Email",
"userPassword": "Heslo",
"userAdmin": "Admin",
+ "userRemember": "Remember",
"loginTitle": "Přihlášení",
"loginLanguage": "Jazyk",
"loginRegister": "Registrace",
@@ -118,6 +120,16 @@
"eventCommandResult": "Výsledek příkazu",
"eventGeofenceEnter": "Zařízení vstoupilo do geografické hranice",
"eventGeofenceExit": "Zařízení opustilo geografickou hranici",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..ec8f02816 100644
--- a/web/l10n/da.json
+++ b/web/l10n/da.json
@@ -1,5 +1,5 @@
{
- "sharedLoading": "Loading...",
+ "sharedLoading": "Loading... ",
"sharedSave": "Gem",
"sharedCancel": "Fortryd",
"sharedAdd": "Tilføj",
@@ -15,20 +15,22 @@
"sharedMinute": "Minut",
"sharedSecond": "Sekund",
"sharedName": "Navn",
- "sharedDescription": "Description",
+ "sharedDescription": "Beskrivelse",
"sharedSearch": "Søg",
"sharedGeofence": "Geofence",
"sharedGeofences": "Geofences",
- "sharedNotifications": "Notifications",
- "sharedAttributes": "Attributes",
- "sharedAttribute": "Attribute",
- "sharedArea": "Area",
+ "sharedNotifications": "Notifikationer",
+ "sharedAttributes": "Egenskaber",
+ "sharedAttribute": "Egenskab",
+ "sharedArea": "Område",
+ "sharedMute": "Mute",
"errorTitle": "Fejl",
"errorUnknown": "Ukendt Fejl",
"errorConnection": "Tilslutning fejl",
"userEmail": "Email",
"userPassword": "Kodeord",
"userAdmin": "Admin",
+ "userRemember": "Remember",
"loginTitle": "Log på",
"loginLanguage": "Sprog",
"loginRegister": "Registrer",
@@ -81,7 +83,7 @@
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
"mapShapePolygon": "Polygon",
- "mapShapeCircle": "Circle",
+ "mapShapeCircle": "Cirkel",
"stateTitle": "Status",
"stateName": "Parameter",
"stateValue": "Værdi",
@@ -95,30 +97,40 @@
"commandEngineResume": "Genstart motor",
"commandFrequency": "Frekvens",
"commandUnit": "Enhed",
- "commandCustom": "Custom command",
- "commandPositionSingle": "Single Reporting",
- "commandAlarmArm": "Arm Alarm",
- "commandAlarmDisarm": "Disarm Alarm",
- "commandSetTimezone": "Set Timezone",
- "commandRequestPhoto": "Request Photo",
- "commandRebootDevice": "Reboot Device",
- "commandSendSms": "Send SMS",
- "commandSosNumber": "Set SOS Number",
- "commandSilenceTime": "Set Silence Time",
- "commandSetPhonebook": "Set Phonebook",
- "commandVoiceMessage": "Voice Message",
- "commandOutputControl": "Output Control",
- "commandAlarmSpeed": "Overspeed Alarm",
- "commandDeviceIdentification": "Device Identification",
- "eventDeviceOnline": "Device is online",
- "eventDeviceOffline": "Device is offline",
- "eventDeviceMoving": "Device is moving",
- "eventDeviceStopped": "Device is stopped",
- "eventDeviceOverspeed": "Device exceeds the speed",
- "eventCommandResult": "Command result",
- "eventGeofenceEnter": "Device has entered geofence",
- "eventGeofenceExit": "Device has exited geofence",
- "notificationType": "Type of Notification",
+ "commandCustom": "Skræddersyet kommando",
+ "commandPositionSingle": "Enkel rapport",
+ "commandAlarmArm": "Armer alarm",
+ "commandAlarmDisarm": "Slå alarm fra",
+ "commandSetTimezone": "Sæt tidszone",
+ "commandRequestPhoto": "Tag billede",
+ "commandRebootDevice": "Genstart enhed",
+ "commandSendSms": "send SMS",
+ "commandSosNumber": "Angiv SOS nummer",
+ "commandSilenceTime": "Angiv lydløs tid",
+ "commandSetPhonebook": "Angiv telefonbog",
+ "commandVoiceMessage": "Tale meddelelse",
+ "commandOutputControl": "Output kontrol",
+ "commandAlarmSpeed": "Hastigheds alarm",
+ "commandDeviceIdentification": "Enheds id",
+ "eventDeviceOnline": "Enhed online",
+ "eventDeviceOffline": "Enhed offline",
+ "eventDeviceMoving": "Enhed i bevægelse",
+ "eventDeviceStopped": "Enhed i stilstand",
+ "eventDeviceOverspeed": "Enhed overskrider hastighed",
+ "eventCommandResult": "Resultat af kommando",
+ "eventGeofenceEnter": "Enhed kom indenfor geofence",
+ "eventGeofenceExit": "Enhed kom udenfor geofence",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault Alarm",
+ "notificationType": "Type af notifikation",
"notificationWeb": "Send via Web",
- "notificationMail": "Send via Mail"
+ "notificationMail": "Send via mail"
} \ No newline at end of file
diff --git a/web/l10n/de.json b/web/l10n/de.json
index d76bf0824..61a4567b1 100644
--- a/web/l10n/de.json
+++ b/web/l10n/de.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Eigenschaften",
"sharedAttribute": "Eigenschaft",
"sharedArea": "Gebiet",
+ "sharedMute": "Stummschalten",
"errorTitle": "Fehler",
"errorUnknown": "Unbekannter Fehler",
"errorConnection": "Verbindungsfehler",
"userEmail": "Email",
"userPassword": "Passwort",
"userAdmin": "Admin",
+ "userRemember": "Remember",
"loginTitle": "Anmeldung",
"loginLanguage": "Sprache",
"loginRegister": "Registrieren",
@@ -118,6 +120,16 @@
"eventCommandResult": "Ergrbnis des Befehls",
"eventGeofenceEnter": "Gerät hat Geo-Zaun betreten",
"eventGeofenceExit": "Gerät hat Geo-Zaun verlassen",
+ "eventAlarm": "Alarme",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Erschütterungsalarm",
+ "alarmMovement": "Bewegungsalarm",
+ "alarmOverspeed": "Geschwindigkeitsalarm",
+ "alarmFallDown": "Sturzalarm",
+ "alarmLowBattery": "Batteriealarm",
+ "alarmMotion": "Bewegungsalarm",
+ "alarmFault": "Fehleralarm",
"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..cbadf67ef 100644
--- a/web/l10n/el.json
+++ b/web/l10n/el.json
@@ -9,8 +9,8 @@
"sharedKm": "χλμ",
"sharedMi": "μίλια",
"sharedKn": "κόμβοι",
- "sharedKmh": "km/h",
- "sharedMph": "mph",
+ "sharedKmh": "χλμ/ώρα",
+ "sharedMph": "μίλια/ώρα",
"sharedHour": "Ώρα",
"sharedMinute": "Λεπτά",
"sharedSecond": "Δευτερόλεπτα",
@@ -23,12 +23,14 @@
"sharedAttributes": "Παράμετροι",
"sharedAttribute": "Παράμετρος",
"sharedArea": "Περιοχή",
+ "sharedMute": "Mute",
"errorTitle": "Σφάλμα",
"errorUnknown": "Άγνωστο σφάλμα",
"errorConnection": "Σφάλμα σύνδεσης",
"userEmail": "Ηλ. διεύθυνση",
"userPassword": "Συνθηματικό",
"userAdmin": "Admin",
+ "userRemember": "Remember",
"loginTitle": "Σύνδεση",
"loginLanguage": "Γλώσσα",
"loginRegister": "Εγγραφή",
@@ -107,7 +109,7 @@
"commandSilenceTime": "Καθορισμός χρόνου σιωπής",
"commandSetPhonebook": "Καθορισμός τηλεφωνικού καταλόγου",
"commandVoiceMessage": "Φωνητικό μήνυμα",
- "commandOutputControl": "Output Control",
+ "commandOutputControl": "Έλεγχος αποτελεσμάτων",
"commandAlarmSpeed": "Υπέρβαση ορίου ταχύτητας",
"commandDeviceIdentification": "Αναγνωριστικό συσκευής",
"eventDeviceOnline": "Η συσκευή είναι συνδεδεμένη",
@@ -118,6 +120,16 @@
"eventCommandResult": "Αποτέλεσμα εντολής",
"eventGeofenceEnter": "Η συσσκευή εισήλθε του γεωφράχτη",
"eventGeofenceExit": "Η συσκευή εξήλθε του γεωφράχτη",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault Alarm",
"notificationType": "Τύπος ειδοποίησης",
"notificationWeb": "Αποστολή μέσω διαδικτύου",
"notificationMail": "Αποστολή μέσω ηλ. ταχυδρομείου"
diff --git a/web/l10n/en.json b/web/l10n/en.json
index c64d06b45..37e4537f2 100644
--- a/web/l10n/en.json
+++ b/web/l10n/en.json
@@ -30,7 +30,7 @@
"userEmail": "Email",
"userPassword": "Password",
"userAdmin": "Admin",
- "rememberMe": "Remember Me",
+ "userRemember": "Remember",
"loginTitle": "Login",
"loginLanguage": "Language",
"loginRegister": "Register",
diff --git a/web/l10n/es.json b/web/l10n/es.json
index 68cbeae88..f8ae21bfc 100644
--- a/web/l10n/es.json
+++ b/web/l10n/es.json
@@ -15,20 +15,22 @@
"sharedMinute": "Minuto",
"sharedSecond": "Segundo",
"sharedName": "Nombre",
- "sharedDescription": "Description",
+ "sharedDescription": "Descripción",
"sharedSearch": "Buscar",
- "sharedGeofence": "Geofence",
- "sharedGeofences": "Geofences",
- "sharedNotifications": "Notifications",
- "sharedAttributes": "Attributes",
- "sharedAttribute": "Attribute",
- "sharedArea": "Area",
+ "sharedGeofence": "Geocerca",
+ "sharedGeofences": "Geocercas",
+ "sharedNotifications": "Notificaciones",
+ "sharedAttributes": "Atributos",
+ "sharedAttribute": "Atributo",
+ "sharedArea": "Área",
+ "sharedMute": "Silenciar",
"errorTitle": "Error",
"errorUnknown": "Error Desconocido",
"errorConnection": "Error de Conexión",
"userEmail": "Email",
"userPassword": "Contraseña",
"userAdmin": "Administrador",
+ "userRemember": "Remember",
"loginTitle": "Ingresar",
"loginLanguage": "Idioma",
"loginRegister": "Registrar",
@@ -80,8 +82,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps - Carretera",
"mapBingAerial": "Bing Maps - Aéreo",
- "mapShapePolygon": "Polygon",
- "mapShapeCircle": "Circle",
+ "mapShapePolygon": "Polígono",
+ "mapShapeCircle": "Círculo",
"stateTitle": "Estado",
"stateName": "Parámetro",
"stateValue": "Valor",
@@ -104,21 +106,31 @@
"commandRebootDevice": "Reiniciar dispositivo",
"commandSendSms": "Enviar SMS",
"commandSosNumber": "Establecer el número SOS",
- "commandSilenceTime": "Set Silence Time",
+ "commandSilenceTime": "Setear horario de silencio",
"commandSetPhonebook": "Establecer contacto",
"commandVoiceMessage": "Mensaje de voz",
- "commandOutputControl": "Output Control",
- "commandAlarmSpeed": "Overspeed Alarm",
- "commandDeviceIdentification": "Device Identification",
+ "commandOutputControl": "Control de Salidas",
+ "commandAlarmSpeed": "Alerta de Velocidad",
+ "commandDeviceIdentification": "Identificación de Dispositivo",
"eventDeviceOnline": "El dispositivo está en linea",
"eventDeviceOffline": "El dispositivo está fuera de linea",
"eventDeviceMoving": "El dispositivo se está moviendo",
"eventDeviceStopped": "El dispositivo está parado",
"eventDeviceOverspeed": "El dispositivo excedió el limite de velocidad",
- "eventCommandResult": "Command result",
- "eventGeofenceEnter": "Device has entered geofence",
- "eventGeofenceExit": "Device has exited geofence",
- "notificationType": "Type of Notification",
- "notificationWeb": "Send via Web",
- "notificationMail": "Send via Mail"
+ "eventCommandResult": "Resultado de comando",
+ "eventGeofenceEnter": "El dispositivo ha ingresado a la geocerca",
+ "eventGeofenceExit": "El dispositivo ha salido de la geocerca",
+ "eventAlarm": "Alarmas",
+ "alarm": "Alarma",
+ "alarmSos": "Alarma de SOS",
+ "alarmVibration": "Alarma de vibración",
+ "alarmMovement": "Alarma de movimiento",
+ "alarmOverspeed": "Alarma de exceso de velocidad",
+ "alarmFallDown": "Alarma de caida",
+ "alarmLowBattery": "Alarma de bateria baja",
+ "alarmMotion": "Alarma de movimiento",
+ "alarmFault": "Alarma de fallo",
+ "notificationType": "Tipo de Notificación",
+ "notificationWeb": "Envíar vía Web",
+ "notificationMail": "Envíar vía Email"
} \ No newline at end of file
diff --git a/web/l10n/fa.json b/web/l10n/fa.json
index 66a517f0a..5bfec4bb1 100644
--- a/web/l10n/fa.json
+++ b/web/l10n/fa.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Attributes",
"sharedAttribute": "Attribute",
"sharedArea": "Area",
+ "sharedMute": "Mute",
"errorTitle": "خطا",
"errorUnknown": "خطا ناشناخته",
"errorConnection": "خطا در اتصال",
"userEmail": "نام كاربرى ( ايميل )",
"userPassword": "گذرواژه",
"userAdmin": "مدیر",
+ "userRemember": "Remember",
"loginTitle": "ورود",
"loginLanguage": "انتخاب زبان",
"loginRegister": "ثبت نام",
@@ -118,6 +120,16 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..9309ab1a1 100644
--- a/web/l10n/fi.json
+++ b/web/l10n/fi.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Attributes",
"sharedAttribute": "Attribute",
"sharedArea": "Area",
+ "sharedMute": "Mute",
"errorTitle": "Virhe",
"errorUnknown": "Tuntematon virhe",
"errorConnection": "Yhteysvirhe",
"userEmail": "Email",
"userPassword": "Salasana",
"userAdmin": "Ylläpito",
+ "userRemember": "Remember",
"loginTitle": "Kirjaudu",
"loginLanguage": "Kieli",
"loginRegister": "Rekisteröidy",
@@ -118,6 +120,16 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..487dd7acd 100644
--- a/web/l10n/fr.json
+++ b/web/l10n/fr.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Attributs",
"sharedAttribute": "Attribut",
"sharedArea": "Aire",
+ "sharedMute": "Mute",
"errorTitle": "Erreur",
"errorUnknown": "Erreur inconnue",
"errorConnection": "Erreur de connexion",
"userEmail": "Email",
"userPassword": "Mot de Passe",
"userAdmin": "Admin",
+ "userRemember": "Remember",
"loginTitle": "Identification",
"loginLanguage": "Langue",
"loginRegister": "Inscription",
@@ -104,12 +106,12 @@
"commandRebootDevice": "Redémarrer l'appareil",
"commandSendSms": "Envoyer un SMS",
"commandSosNumber": "Régler le n° SOS",
- "commandSilenceTime": "Set Silence Time",
- "commandSetPhonebook": "Set Phonebook",
+ "commandSilenceTime": "Définir le temps de silence",
+ "commandSetPhonebook": "Définir l'annuaire",
"commandVoiceMessage": "Message vocal",
- "commandOutputControl": "Output Control",
- "commandAlarmSpeed": "Overspeed Alarm",
- "commandDeviceIdentification": "Device Identification",
+ "commandOutputControl": "Contrôle de la sortie",
+ "commandAlarmSpeed": "Alarme de dépassement de vitesse",
+ "commandDeviceIdentification": "Identification de l'appareil",
"eventDeviceOnline": "L'appareil est en ligne",
"eventDeviceOffline": "L'appareil est hors-ligne",
"eventDeviceMoving": "L'appareil est en mouvement",
@@ -118,6 +120,16 @@
"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",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..a2bb338bb 100644
--- a/web/l10n/he.json
+++ b/web/l10n/he.json
@@ -15,20 +15,22 @@
"sharedMinute": "דקה",
"sharedSecond": "שנייה",
"sharedName": "שם",
- "sharedDescription": "Description",
+ "sharedDescription": "תיאור",
"sharedSearch": "חיפוש",
- "sharedGeofence": "Geofence",
- "sharedGeofences": "Geofences",
- "sharedNotifications": "Notifications",
- "sharedAttributes": "Attributes",
- "sharedAttribute": "Attribute",
- "sharedArea": "Area",
+ "sharedGeofence": "גדר וירטואלית",
+ "sharedGeofences": "גדרות וירטואליות",
+ "sharedNotifications": "התראות",
+ "sharedAttributes": "מאפיינים",
+ "sharedAttribute": "מאפיין",
+ "sharedArea": "איזור",
+ "sharedMute": "Mute",
"errorTitle": "שגיאה",
"errorUnknown": "שגיאה לא ידועה",
"errorConnection": "בעייה בחיבור",
"userEmail": "אימייל",
"userPassword": "סיסמה",
"userAdmin": "אדמין",
+ "userRemember": "זכור אותי",
"loginTitle": "כניסה",
"loginLanguage": "שפה",
"loginRegister": "הרשם",
@@ -45,7 +47,7 @@
"deviceFollow": "עקוב",
"groupDialog": "קבוצה",
"groupParent": "קבוצה",
- "groupNoGroup": "No Group",
+ "groupNoGroup": "ללא קבוצה",
"settingsTitle": "הגדרות",
"settingsUser": "חשבון",
"settingsGroups": "קבוצות",
@@ -80,8 +82,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
- "mapShapePolygon": "Polygon",
- "mapShapeCircle": "Circle",
+ "mapShapePolygon": "פוליגון",
+ "mapShapeCircle": "מעגל",
"stateTitle": "מצב",
"stateName": "תכונה",
"stateValue": "ערך",
@@ -95,30 +97,40 @@
"commandEngineResume": "הפעל מנוע",
"commandFrequency": "תדירות",
"commandUnit": "יחידה",
- "commandCustom": "Custom command",
- "commandPositionSingle": "Single Reporting",
- "commandAlarmArm": "Arm Alarm",
- "commandAlarmDisarm": "Disarm Alarm",
- "commandSetTimezone": "Set Timezone",
- "commandRequestPhoto": "Request Photo",
- "commandRebootDevice": "Reboot Device",
- "commandSendSms": "Send SMS",
- "commandSosNumber": "Set SOS Number",
- "commandSilenceTime": "Set Silence Time",
- "commandSetPhonebook": "Set Phonebook",
- "commandVoiceMessage": "Voice Message",
- "commandOutputControl": "Output Control",
- "commandAlarmSpeed": "Overspeed Alarm",
- "commandDeviceIdentification": "Device Identification",
- "eventDeviceOnline": "Device is online",
- "eventDeviceOffline": "Device is offline",
- "eventDeviceMoving": "Device is moving",
- "eventDeviceStopped": "Device is stopped",
- "eventDeviceOverspeed": "Device exceeds the speed",
- "eventCommandResult": "Command result",
- "eventGeofenceEnter": "Device has entered geofence",
- "eventGeofenceExit": "Device has exited geofence",
- "notificationType": "Type of Notification",
- "notificationWeb": "Send via Web",
- "notificationMail": "Send via Mail"
+ "commandCustom": "פקודה בהתאמה אישית",
+ "commandPositionSingle": "דו\"ח יחיד",
+ "commandAlarmArm": "הפעלת אזעקה",
+ "commandAlarmDisarm": "נטרול אזעקה",
+ "commandSetTimezone": "קבע איזור זמן",
+ "commandRequestPhoto": "בקשה לתמונה",
+ "commandRebootDevice": "איתחול המכשיר",
+ "commandSendSms": "שלח סמס",
+ "commandSosNumber": "קבע מספר חירום",
+ "commandSilenceTime": "קבע משך זמן הדממה",
+ "commandSetPhonebook": "הגדר ספר טלפונים",
+ "commandVoiceMessage": "הודעה קולית",
+ "commandOutputControl": "בקרת פלט",
+ "commandAlarmSpeed": "התראת מהירות",
+ "commandDeviceIdentification": "זיהוי מכשיר",
+ "eventDeviceOnline": "המכשיר און לין",
+ "eventDeviceOffline": "המכשיר מנותק",
+ "eventDeviceMoving": "המכשיר בתזוזה",
+ "eventDeviceStopped": "המכשיר עצר",
+ "eventDeviceOverspeed": "המכשיר עבר את המהירות המותרת",
+ "eventCommandResult": "תוצאות הפקודה",
+ "eventGeofenceEnter": "המכשיר נכנס לתחום המוגדר",
+ "eventGeofenceExit": "המכשיר יצא מהתחום המוגדר",
+ "eventAlarm": "אזעקות",
+ "alarm": "אזעקה",
+ "alarmSos": "אתרעת SOS",
+ "alarmVibration": "אזעקת רטט",
+ "alarmMovement": "אזעקת תנועה",
+ "alarmOverspeed": "אזעקת מהירות יתר",
+ "alarmFallDown": "אזעקת נפילה",
+ "alarmLowBattery": "אזעקת סוללה חלשה",
+ "alarmMotion": "אזעקת תזוזה",
+ "alarmFault": "אזעקת שווא",
+ "notificationType": "סוג ההתראה",
+ "notificationWeb": "שלח דרך ווב",
+ "notificationMail": "שלח באימייל"
} \ No newline at end of file
diff --git a/web/l10n/hu.json b/web/l10n/hu.json
index 2d8ba9976..bc9604a39 100644
--- a/web/l10n/hu.json
+++ b/web/l10n/hu.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Tulajdonságok",
"sharedAttribute": "Tulajdonság",
"sharedArea": "Terület",
+ "sharedMute": "Mute",
"errorTitle": "Hiba",
"errorUnknown": "Ismeretlen hiba",
"errorConnection": "Kapcsolódási hiba",
"userEmail": "Email",
"userPassword": "Jelszó",
"userAdmin": "Adminisztrátor",
+ "userRemember": "Remember",
"loginTitle": "Bejelentkezés",
"loginLanguage": "Nyelv",
"loginRegister": "Regisztráció",
@@ -118,6 +120,16 @@
"eventCommandResult": "Parancs eredmény",
"eventGeofenceEnter": "Eszköz belépett a geokerítésbe",
"eventGeofenceExit": "Eszköz kilépett a geokerítésből",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..1fed27962 100644
--- a/web/l10n/id.json
+++ b/web/l10n/id.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Attributes",
"sharedAttribute": "Attribute",
"sharedArea": "Area",
+ "sharedMute": "Mute",
"errorTitle": "Error",
"errorUnknown": "Error tidak diketahui",
"errorConnection": "Koneksi error",
"userEmail": "Email",
"userPassword": "Sandi",
"userAdmin": "Admin",
+ "userRemember": "Remember",
"loginTitle": "Masuk",
"loginLanguage": "Bahasa",
"loginRegister": "Daftar",
@@ -118,6 +120,16 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..ae9184a83 100644
--- a/web/l10n/it.json
+++ b/web/l10n/it.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Attributi",
"sharedAttribute": "Attributo",
"sharedArea": "Area",
+ "sharedMute": "Mute",
"errorTitle": "Errore",
"errorUnknown": "Errore sconosciuto",
"errorConnection": "Errore di connessione",
"userEmail": "Email",
"userPassword": "Password",
"userAdmin": "Admin",
+ "userRemember": "Remember",
"loginTitle": "Login",
"loginLanguage": "Lingua",
"loginRegister": "Registrazione",
@@ -118,6 +120,16 @@
"eventCommandResult": "Risultato comando",
"eventGeofenceEnter": "Il dipositivo e` entrato nel GeoRecinto",
"eventGeofenceExit": "Il dipositivo e` uscito dal GeoRecinto",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..f8f8d50a5 100644
--- a/web/l10n/ka.json
+++ b/web/l10n/ka.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Attributes",
"sharedAttribute": "Attribute",
"sharedArea": "Area",
+ "sharedMute": "Mute",
"errorTitle": "შეცდომა",
"errorUnknown": "უცნობი შეცდომა",
"errorConnection": "კავშირის შეცდომა",
"userEmail": "ელ-ფოსტა",
"userPassword": "პაროლი",
"userAdmin": "ადმინი",
+ "userRemember": "Remember",
"loginTitle": "ავტორიზაცია",
"loginLanguage": "ენა",
"loginRegister": "რეგისტრაცია",
@@ -118,6 +120,16 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..bfd641ac9 100644
--- a/web/l10n/lo.json
+++ b/web/l10n/lo.json
@@ -6,119 +6,131 @@
"sharedEdit": "ແກ້ໄຂ",
"sharedRemove": "ລົບອອກ",
"sharedRemoveConfirm": "ລົບລາຍການນີ້ບໍ່?",
- "sharedKm": "ກມ",
+ "sharedKm": "ກມ.",
"sharedMi": "ໄມລ໌",
- "sharedKn": "kn",
- "sharedKmh": "ກມ/ຊ",
- "sharedMph": "ມ/ຊ",
+ "sharedKn": "ນ໊ອດ",
+ "sharedKmh": "ກມ. /ຊມ.",
+ "sharedMph": "ໄມລ໌ຕໍ່ຊົ່ວໂມງ",
"sharedHour": "ຊົ່ວໂມງ",
"sharedMinute": "ນາທີ",
"sharedSecond": "ວິນາທີ",
"sharedName": "ຊື່",
- "sharedDescription": "Description",
+ "sharedDescription": "ລັກສະນະ",
"sharedSearch": "ຄົ້ນຫາ",
- "sharedGeofence": "Geofence",
- "sharedGeofences": "Geofences",
- "sharedNotifications": "Notifications",
- "sharedAttributes": "Attributes",
- "sharedAttribute": "Attribute",
- "sharedArea": "Area",
- "errorTitle": "ຂໍ້ຜິດພາດ",
+ "sharedGeofence": "ເຂດພື້ນທີ່",
+ "sharedGeofences": "ເຂດພື້ນທີ່",
+ "sharedNotifications": "ການແຈ້ງເຕືອນ",
+ "sharedAttributes": "ຄຸນລັກສະນະ",
+ "sharedAttribute": "ຄຸນລັກສະນະ",
+ "sharedArea": "ພື້ນທີ່",
+ "sharedMute": "ປິດສຽງ",
+ "errorTitle": "ຜິດພາດ",
"errorUnknown": "ຂໍ້ຜິດພາດທີ່ບໍ່ຮູ້ຈັກ",
"errorConnection": "ການເຊື່ອມຕໍ່ຜິດພາດ",
"userEmail": "ອີເມວ",
"userPassword": "ລະຫັດຜ່ານ",
- "userAdmin": "ແອັດມິນ",
+ "userAdmin": "ຜູ້ເບິ່ງແຍງລະບົບ",
+ "userRemember": "ຈື່ໄວ້",
"loginTitle": "ເຂົ້າສູ່ລະບົບ",
"loginLanguage": "ພາສາ",
"loginRegister": "ລົງທະບຽນ",
"loginLogin": "ເຂົ້າສູ່ລະບົບ",
- "loginFailed": "ອີເມວຫລືລະຫັດຜ່ານບໍ່ຖືກຕ້ອງ",
- "loginCreated": "ບັນຊີຜູ້ໃຊ້ຄົນໃຫມ່ໄດ້ຖືກລົງທະບຽນແລ້ວ",
+ "loginFailed": "ທີ່ຢູ່ອີເມວຫລືລະຫັດຜ່ານບໍ່ຖືກຕ້ອງ",
+ "loginCreated": "ຜູ້ໃຊ້ໃຫມ່ ໄດ້ຮັບການລົງທະບຽນ",
"loginLogout": "ອອກຈາກລະບົບ",
- "devicesAndState": "ລາຍການອຸປະກອນແລະສະຖານະ",
- "deviceDialog": "ອຸປະກອນ",
- "deviceTitle": "ລາຍການອຸປະກອນ",
- "deviceIdentifier": "ລະຫັດອຸປະກອນ",
- "deviceLastUpdate": "ອັບເດດລ່າສຸດ",
+ "devicesAndState": "ອຸປະກອນແລະສະຖານະ",
+ "deviceDialog": "ເຄື່ອງ/ອຸປະກອນ",
+ "deviceTitle": "ເຄື່ອງ/ອຸປະກອນ",
+ "deviceIdentifier": "ລະບຸເລກອຸປະກອນ",
+ "deviceLastUpdate": "ແກ້ໄຂລ່າສຸດ",
"deviceCommand": "ຄຳສັ່ງ",
"deviceFollow": "ຕິດຕາມ",
"groupDialog": "ກຸ່ມ",
"groupParent": "ກຸ່ມ",
- "groupNoGroup": "No Group",
+ "groupNoGroup": "ບໍ່ຈັດໃນກຸ່ມ",
"settingsTitle": "ການຕັ້ງຄ່າ",
- "settingsUser": "ບັນຊີ",
- "settingsGroups": "ລາຍການກຸ່ມ",
- "settingsServer": "ເຊີເວີ້",
- "settingsUsers": "ຍູເຊີ້",
- "settingsDistanceUnit": "ໄລຍະທາງ",
- "settingsSpeedUnit": "ຄວາມໄວ",
- "settingsTwelveHourFormat": "ແບບ 12 ຊົ່ວໂມງ",
+ "settingsUser": "ບັນຊີຜູ້ໃຊ້",
+ "settingsGroups": "ຕັ້ງຄ່າກຸ່ມ",
+ "settingsServer": "ຕັ້ງຄ່າລະບົບ",
+ "settingsUsers": "ຕັ້ງຄ່າຜູ້ໃຊ້ງານ",
+ "settingsDistanceUnit": "ຫນ່ວຍໄລຍະທາງ",
+ "settingsSpeedUnit": "ຫນ່ວຍຄວາມໄວ",
+ "settingsTwelveHourFormat": "ຮູບແບບເວລາ 12 ຊົ່ວໂມງ",
"reportTitle": "ລາຍງານ",
- "reportDevice": "ອຸປະກອນ",
+ "reportDevice": "ລາຍງານເຄື່ອງ/ອຸປະກອນ",
"reportFrom": "ຈາກ",
- "reportTo": "ໄປຫາ",
- "reportShow": "ສະແດງຜົນ",
- "reportClear": "ລົບລ້າງ",
+ "reportTo": "ໄປເຖິງ",
+ "reportShow": "ສະແດງ",
+ "reportClear": "ລົບລ້າງລາຍງານ",
"positionFixTime": "ເວລາ",
- "positionValid": "ໃຊ້ໄດ້",
- "positionLatitude": "ລາຕິທູດ",
- "positionLongitude": "ລອງຈິທູດ",
- "positionAltitude": "ອານຕິທູດ",
+ "positionValid": "ຖືກຕ້ອງ",
+ "positionLatitude": "ລາຕິຈູດ",
+ "positionLongitude": "ລອງຈິຈູດ",
+ "positionAltitude": "ລະດັບຄວາມສູງ",
"positionSpeed": "ຄວາມໄວ",
- "positionCourse": "ເສັ້ນທາງ",
+ "positionCourse": "ທິດທາງ",
"positionAddress": "ທີ່ຢູ່",
- "positionProtocol": "ໂປຣໂຕຄໍ",
- "serverTitle": "ການຕັ້ງຄ່າສິນຄ້າ",
- "serverZoom": "ຊູມ",
- "serverRegistration": "ການລົງທະບຽນ",
- "serverReadonly": "ໃຊ້ງານເທົ່ານັ້ນ",
+ "positionProtocol": "ໂປຣໂຕຄໍລ໌",
+ "serverTitle": "ການຕັ້ງຄ່າເຊີເວີ້",
+ "serverZoom": "ຂະຫຍາຍ +/-",
+ "serverRegistration": "ລົງທະບຽນ",
+ "serverReadonly": "ອ່ານໄດ້ຢ່າງດຽວ",
"mapTitle": "ແຜ່ນທີ",
- "mapLayer": "ລັກສະນະແຜ່ນທີ",
- "mapCustom": "ແຜ່ນທີ່ຕັ້ງເອງ",
- "mapOsm": "ໂອເພັ້ນສະຕຣີດແມັບ",
- "mapBingKey": "ບິງສະຕຣີດແມັບ",
- "mapBingRoad": "ບິງແມັບໂຣດ",
- "mapBingAerial": "ບິງແມັບອາຣີໂອ",
- "mapShapePolygon": "Polygon",
- "mapShapeCircle": "Circle",
- "stateTitle": "ແຂວງ",
+ "mapLayer": "ຊັ້ນແຜ່ນທີ",
+ "mapCustom": "ແຜ່ນທີ່ທີ່ກຳຫນົດເອງ",
+ "mapOsm": "Open Street Map",
+ "mapBingKey": "Bing Maps ສຳຄັນ",
+ "mapBingRoad": "Bing Maps ຖະຫນົນ",
+ "mapBingAerial": "Bing Maps ທາງອາກາດ",
+ "mapShapePolygon": "ໂພລີກອນ",
+ "mapShapeCircle": "ວົງກົມ",
+ "stateTitle": "ສະຖານະ",
"stateName": "ຄຸນລັກສະນະ",
- "stateValue": "ຄ່າ",
+ "stateValue": "ມູນຄ່າ",
"commandTitle": "ຄຳສັ່ງ",
"commandSend": "ສົ່ງ",
- "commandType": "ພິມ",
+ "commandType": "ຊະນິດ",
"commandSent": "ຄຳສັ່ງໄດ້ຖືກສົ່ງແລ້ວ",
- "commandPositionPeriodic": "ບົດລາຍງານຕາມໄລຍະເວລາ",
- "commandPositionStop": "ຢຸດການລາຍງານ",
- "commandEngineStop": "ເຄື່ອງຍົນຢຸດ",
- "commandEngineResume": "ເຄື່ອງຍົນເລີ່ມກັບຄືນໃຊ້ງານ",
+ "commandPositionPeriodic": "ແກ້ໄຂຕ່ຳແຫນ່ງ",
+ "commandPositionStop": "ຕ່ຳແຫນ່ງ ຢຸດ",
+ "commandEngineStop": "ດັບເຄື່ອງຈັກ",
+ "commandEngineResume": "ຕິດເຄື່ອງຈັກຄືນໃຫມ່",
"commandFrequency": "ຄວາມຖີ່",
"commandUnit": "ຫນ່ວຍ",
- "commandCustom": "Custom command",
- "commandPositionSingle": "Single Reporting",
- "commandAlarmArm": "Arm Alarm",
- "commandAlarmDisarm": "Disarm Alarm",
- "commandSetTimezone": "Set Timezone",
- "commandRequestPhoto": "Request Photo",
- "commandRebootDevice": "Reboot Device",
- "commandSendSms": "Send SMS",
- "commandSosNumber": "Set SOS Number",
- "commandSilenceTime": "Set Silence Time",
- "commandSetPhonebook": "Set Phonebook",
- "commandVoiceMessage": "Voice Message",
- "commandOutputControl": "Output Control",
- "commandAlarmSpeed": "Overspeed Alarm",
- "commandDeviceIdentification": "Device Identification",
- "eventDeviceOnline": "Device is online",
- "eventDeviceOffline": "Device is offline",
- "eventDeviceMoving": "Device is moving",
- "eventDeviceStopped": "Device is stopped",
- "eventDeviceOverspeed": "Device exceeds the speed",
- "eventCommandResult": "Command result",
- "eventGeofenceEnter": "Device has entered geofence",
- "eventGeofenceExit": "Device has exited geofence",
- "notificationType": "Type of Notification",
- "notificationWeb": "Send via Web",
- "notificationMail": "Send via Mail"
+ "commandCustom": "ຄຳສັ່ງກຳຫນົດເອງ",
+ "commandPositionSingle": "ລາຍງານຕ່ຳແຫນ່ງດຽວ",
+ "commandAlarmArm": "ແຈ້ງເຕືອນຕິດຕໍ່ສາຂາ",
+ "commandAlarmDisarm": "ແຈ້ງເຕືອນຍົກເລີກຕິດຕໍ່ສາຂາ",
+ "commandSetTimezone": "ຕັ້ງຄ່າເຂດເວລາ",
+ "commandRequestPhoto": "ສັ່ງຖ່າຍຮູບ",
+ "commandRebootDevice": "ຣີບູດ",
+ "commandSendSms": "ສົ່ງ SMS",
+ "commandSosNumber": "ຕັ້ງຄ່າເລກໝາຍໂທສຸກເສີນ SOS",
+ "commandSilenceTime": "ຕັ້ງຄ່າຊ່ວງເວລາຢຸດນິ່ງ",
+ "commandSetPhonebook": "ຕັ້ງຄ່າສະໝຸດໂທລະສັບ",
+ "commandVoiceMessage": "ຂໍ້ຄວາມສຽງ",
+ "commandOutputControl": "ຄວບຄຸມຂໍ້ມູນທີ່ສົ່ງອອກ",
+ "commandAlarmSpeed": "ແຈ້ງເຕືອນຄວາມໄວເກີນກຳນົດ",
+ "commandDeviceIdentification": "ໝາຍເລກອຸປະກອນ",
+ "eventDeviceOnline": "ອຸປະກອນເຊື່ອມຕໍ່ແລ້ວ",
+ "eventDeviceOffline": "ອຸປະກອນບໍ່ໄດ້ເຊື່ອມຕໍ່",
+ "eventDeviceMoving": "ອຸປະກອນກຳລັງເຄື່ອນທີ່",
+ "eventDeviceStopped": "ອຸປະກອນບໍ່ເຄື່ອນໄຫວ",
+ "eventDeviceOverspeed": "ອຸປະກອນເກີນກຳນົດຄວາມໄວ",
+ "eventCommandResult": "ຜົນຮັບຈາກຄຳສັ່ງ",
+ "eventGeofenceEnter": "ອຸປະກອນເຂົ້າໃນເຂດພື້ນທີ່",
+ "eventGeofenceExit": "ອຸປະກອນອອກນອກເຂດພື້ນທີ່",
+ "eventAlarm": "ລາຍການແຈ້ງເຕືອນ",
+ "alarm": "ແຈ້ງເຕືອນ",
+ "alarmSos": "ແຈ້ງເຕືອນ SOS",
+ "alarmVibration": "ແຈ້ງເຕືອນແບບສັ່ນ",
+ "alarmMovement": "ແຈ້ງເຕືອນມີການເຄື່ອນທີ່",
+ "alarmOverspeed": "ແຈ້ງເຕືອນຄວາມໄວສູງເກີນກຳນົດ",
+ "alarmFallDown": "ແຈ້ງເຕືອນການຕົກ",
+ "alarmLowBattery": "ແຈ້ງເຕືອນແບັດເຕີລີ້ອ່ອນ",
+ "alarmMotion": "ແຈ້ງເຕື່ອນການເຄື່ອນທີ່",
+ "alarmFault": "ແຈ້ງເຕື່ອນຜິດພາດ",
+ "notificationType": "ຊະນິດການແຈ້ງເຕືອນ",
+ "notificationWeb": "ສົ່ງທາງເວັບ",
+ "notificationMail": "ສົ່ງທາງເມວ"
} \ No newline at end of file
diff --git a/web/l10n/lt.json b/web/l10n/lt.json
index 7e35f2f63..4ea7b5847 100644
--- a/web/l10n/lt.json
+++ b/web/l10n/lt.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Attributes",
"sharedAttribute": "Attribute",
"sharedArea": "Area",
+ "sharedMute": "Mute",
"errorTitle": "Klaida",
"errorUnknown": "Nenumatyta klaida",
"errorConnection": "Ryšio klaida",
"userEmail": "Vartotojo vardas",
"userPassword": "Slaptažodis",
"userAdmin": "Administratorius",
+ "userRemember": "Remember",
"loginTitle": "Prisijungimas",
"loginLanguage": "Kalba",
"loginRegister": "Registruotis",
@@ -118,6 +120,16 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..eaf288e9f 100644
--- a/web/l10n/ml.json
+++ b/web/l10n/ml.json
@@ -23,12 +23,14 @@
"sharedAttributes": "ഗുണവിശേഷങ്ങൾ",
"sharedAttribute": "ഗുണവിശേഷങ്ങ",
"sharedArea": "പ്രദേശം",
+ "sharedMute": "Mute",
"errorTitle": "പിശക്‌",
"errorUnknown": "അജ്ഞാത പിശക്",
"errorConnection": "കണക്ഷൻ പിശക്",
"userEmail": "ഇമെയിൽ",
"userPassword": "രഹസ്യ കോഡ്‌",
"userAdmin": "നിർവാജി ",
+ "userRemember": "Remember",
"loginTitle": "അകത്തു പ്രവേശിക്കുക",
"loginLanguage": "ഭാഷ",
"loginRegister": "രെജിസ്റ്റർ ",
@@ -118,6 +120,16 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..ecb769e9a 100644
--- a/web/l10n/ms.json
+++ b/web/l10n/ms.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Attributes",
"sharedAttribute": "Attribute",
"sharedArea": "Area",
+ "sharedMute": "Mute",
"errorTitle": "Ralat",
"errorUnknown": "Ralat tidak diketahui",
"errorConnection": "Ralat penyambungan",
"userEmail": "Emel",
"userPassword": "Katalaluan",
"userAdmin": "Admin",
+ "userRemember": "Remember",
"loginTitle": "Log masuk",
"loginLanguage": "Bahasa",
"loginRegister": "Daftar",
@@ -118,6 +120,16 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..db6273d96 100644
--- a/web/l10n/nb.json
+++ b/web/l10n/nb.json
@@ -15,20 +15,22 @@
"sharedMinute": "Minutt",
"sharedSecond": "Sekund",
"sharedName": "Navn",
- "sharedDescription": "Description",
+ "sharedDescription": "Beskrivelse",
"sharedSearch": "Søk",
- "sharedGeofence": "Geofence",
- "sharedGeofences": "Geofences",
- "sharedNotifications": "Notifications",
- "sharedAttributes": "Attributes",
- "sharedAttribute": "Attribute",
- "sharedArea": "Area",
+ "sharedGeofence": "geo-gjerde",
+ "sharedGeofences": "Geo-gjerder",
+ "sharedNotifications": "Varsel",
+ "sharedAttributes": "Egenskaper",
+ "sharedAttribute": "Egenskap",
+ "sharedArea": "Område",
+ "sharedMute": "Mute",
"errorTitle": "Feil",
"errorUnknown": "Ukjent feil",
"errorConnection": "Forbindelse feilet",
"userEmail": "E-post",
"userPassword": "Passord",
"userAdmin": "Admin",
+ "userRemember": "Remember",
"loginTitle": "Logg inn",
"loginLanguage": "Språk",
"loginRegister": "Registrer",
@@ -45,7 +47,7 @@
"deviceFollow": "Følg",
"groupDialog": "Gruppe",
"groupParent": "Gruppe",
- "groupNoGroup": "No Group",
+ "groupNoGroup": "Ingen gruppe",
"settingsTitle": "Innstillinger",
"settingsUser": "Konto",
"settingsGroups": "Grupper",
@@ -80,8 +82,8 @@
"mapBingKey": "Bing Maps-nøkkel",
"mapBingRoad": "Bing Maps-veg",
"mapBingAerial": "Bing Maps-flyfoto",
- "mapShapePolygon": "Polygon",
- "mapShapeCircle": "Circle",
+ "mapShapePolygon": "Mangekant",
+ "mapShapeCircle": "Sirkel",
"stateTitle": "Status",
"stateName": "Egenskap",
"stateValue": "Verdi",
@@ -95,30 +97,40 @@
"commandEngineResume": "Fortsett motor",
"commandFrequency": "Frekvens",
"commandUnit": "Enhet",
- "commandCustom": "Custom command",
- "commandPositionSingle": "Single Reporting",
- "commandAlarmArm": "Arm Alarm",
- "commandAlarmDisarm": "Disarm Alarm",
- "commandSetTimezone": "Set Timezone",
- "commandRequestPhoto": "Request Photo",
- "commandRebootDevice": "Reboot Device",
+ "commandCustom": "Egendefinert kommando",
+ "commandPositionSingle": "Enkel-rapportering",
+ "commandAlarmArm": "Slå alarm på",
+ "commandAlarmDisarm": "Slå alarm av",
+ "commandSetTimezone": "Sett tidssone",
+ "commandRequestPhoto": "Be om foto",
+ "commandRebootDevice": "Omstart enhet",
"commandSendSms": "Send SMS",
- "commandSosNumber": "Set SOS Number",
- "commandSilenceTime": "Set Silence Time",
- "commandSetPhonebook": "Set Phonebook",
- "commandVoiceMessage": "Voice Message",
- "commandOutputControl": "Output Control",
- "commandAlarmSpeed": "Overspeed Alarm",
- "commandDeviceIdentification": "Device Identification",
- "eventDeviceOnline": "Device is online",
- "eventDeviceOffline": "Device is offline",
- "eventDeviceMoving": "Device is moving",
- "eventDeviceStopped": "Device is stopped",
- "eventDeviceOverspeed": "Device exceeds the speed",
- "eventCommandResult": "Command result",
- "eventGeofenceEnter": "Device has entered geofence",
- "eventGeofenceExit": "Device has exited geofence",
- "notificationType": "Type of Notification",
- "notificationWeb": "Send via Web",
- "notificationMail": "Send via Mail"
+ "commandSosNumber": "Sett SOS-nummer",
+ "commandSilenceTime": "Sett stilletid",
+ "commandSetPhonebook": "Sett telefonbok",
+ "commandVoiceMessage": "Talemelding",
+ "commandOutputControl": "Utgangkontroll",
+ "commandAlarmSpeed": "Fartsgrensealarm",
+ "commandDeviceIdentification": "Enhetsidentifikasjon",
+ "eventDeviceOnline": "Enhet er tilkoblet",
+ "eventDeviceOffline": "Enhet er frakoblet",
+ "eventDeviceMoving": "Enheten beveger seg",
+ "eventDeviceStopped": "Enheten har stoppet",
+ "eventDeviceOverspeed": "Enheten bryter fartsgrensen",
+ "eventCommandResult": "Kommandoresultat",
+ "eventGeofenceEnter": "Enheten har kommet inn i geo-gjerde",
+ "eventGeofenceExit": "Enheten har forlatt geo-gjerde",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault Alarm",
+ "notificationType": "Varseltype",
+ "notificationWeb": "Send via web",
+ "notificationMail": "Send via e-post"
} \ No newline at end of file
diff --git a/web/l10n/ne.json b/web/l10n/ne.json
index 7e3211949..c36b9a6fb 100644
--- a/web/l10n/ne.json
+++ b/web/l10n/ne.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Attributes",
"sharedAttribute": "Attribute",
"sharedArea": "Area",
+ "sharedMute": "Mute",
"errorTitle": "त्रुटी",
"errorUnknown": "अज्ञात त्रुटी ",
"errorConnection": "जडान मा त्रुटी भयो ",
"userEmail": "इ मेल ",
"userPassword": "गोप्य शब्द ",
"userAdmin": "ब्यबस्थापक",
+ "userRemember": "Remember",
"loginTitle": "लगिन गर्ने ",
"loginLanguage": "भाषा ",
"loginRegister": "दर्ता गर्ने",
@@ -118,6 +120,16 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..85e2071ff 100644
--- a/web/l10n/nl.json
+++ b/web/l10n/nl.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Attributen",
"sharedAttribute": "Attribuut",
"sharedArea": "Gebied",
+ "sharedMute": "Mute",
"errorTitle": "Fout",
"errorUnknown": "Onbekende fout",
"errorConnection": "Verbindingsfout",
"userEmail": "Email",
"userPassword": "Wachtwoord",
"userAdmin": "Administrator",
+ "userRemember": "Remember",
"loginTitle": "Inloggen",
"loginLanguage": "Taal",
"loginRegister": "Registreren",
@@ -118,6 +120,16 @@
"eventCommandResult": "Commando resultaat",
"eventGeofenceEnter": "Appraat is binnen geografisch gebied",
"eventGeofenceExit": "Apparaat verlaat geografisch gebied",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..c79ed1546 100644
--- a/web/l10n/nn.json
+++ b/web/l10n/nn.json
@@ -15,20 +15,22 @@
"sharedMinute": "Minutt",
"sharedSecond": "Sekund",
"sharedName": "Namn",
- "sharedDescription": "Description",
+ "sharedDescription": "Beskriving",
"sharedSearch": "Søk",
- "sharedGeofence": "Geofence",
- "sharedGeofences": "Geofences",
- "sharedNotifications": "Notifications",
- "sharedAttributes": "Attributes",
- "sharedAttribute": "Attribute",
- "sharedArea": "Area",
+ "sharedGeofence": "Geo-gjerde",
+ "sharedGeofences": "Geo-gjerde",
+ "sharedNotifications": "Varsel",
+ "sharedAttributes": "Eigenskapar",
+ "sharedAttribute": "Eigenskap",
+ "sharedArea": "Område",
+ "sharedMute": "Mute",
"errorTitle": "Feil",
"errorUnknown": "Ukjent feil",
"errorConnection": "Forbindelse feila",
"userEmail": "E-post",
"userPassword": "Passord",
"userAdmin": "Admin",
+ "userRemember": "Remember",
"loginTitle": "Logg inn",
"loginLanguage": "Språk",
"loginRegister": "Registrer",
@@ -45,7 +47,7 @@
"deviceFollow": "Følj",
"groupDialog": "Gruppe",
"groupParent": "Gruppe",
- "groupNoGroup": "No Group",
+ "groupNoGroup": "Inga gruppe",
"settingsTitle": "Innstillingar",
"settingsUser": "Konto",
"settingsGroups": "Gruppar",
@@ -80,8 +82,8 @@
"mapBingKey": "Bing Maps-nøkkel",
"mapBingRoad": "Bing Maps-veg",
"mapBingAerial": "Bing Maps-flyfoto",
- "mapShapePolygon": "Polygon",
- "mapShapeCircle": "Circle",
+ "mapShapePolygon": "Mangekant",
+ "mapShapeCircle": "Sirkel",
"stateTitle": "Status",
"stateName": "Eigenskap",
"stateValue": "Verdi",
@@ -95,30 +97,40 @@
"commandEngineResume": "Fortsett motor",
"commandFrequency": "Frekvens",
"commandUnit": "Eining",
- "commandCustom": "Custom command",
- "commandPositionSingle": "Single Reporting",
- "commandAlarmArm": "Arm Alarm",
- "commandAlarmDisarm": "Disarm Alarm",
- "commandSetTimezone": "Set Timezone",
- "commandRequestPhoto": "Request Photo",
- "commandRebootDevice": "Reboot Device",
+ "commandCustom": "Eigendefinert kommando",
+ "commandPositionSingle": "Enkel-rapportering",
+ "commandAlarmArm": "Slå alarm på",
+ "commandAlarmDisarm": "Slå alarm av",
+ "commandSetTimezone": "Sett opp tidssone",
+ "commandRequestPhoto": "Be om foto",
+ "commandRebootDevice": "Omstart eining",
"commandSendSms": "Send SMS",
- "commandSosNumber": "Set SOS Number",
- "commandSilenceTime": "Set Silence Time",
- "commandSetPhonebook": "Set Phonebook",
- "commandVoiceMessage": "Voice Message",
- "commandOutputControl": "Output Control",
- "commandAlarmSpeed": "Overspeed Alarm",
- "commandDeviceIdentification": "Device Identification",
- "eventDeviceOnline": "Device is online",
- "eventDeviceOffline": "Device is offline",
- "eventDeviceMoving": "Device is moving",
- "eventDeviceStopped": "Device is stopped",
- "eventDeviceOverspeed": "Device exceeds the speed",
- "eventCommandResult": "Command result",
- "eventGeofenceEnter": "Device has entered geofence",
- "eventGeofenceExit": "Device has exited geofence",
- "notificationType": "Type of Notification",
- "notificationWeb": "Send via Web",
- "notificationMail": "Send via Mail"
+ "commandSosNumber": "Set SMS-nummer",
+ "commandSilenceTime": "Sett stilletid",
+ "commandSetPhonebook": "Sett telefonkatalog",
+ "commandVoiceMessage": "Talemelding",
+ "commandOutputControl": "Utgangkontroll",
+ "commandAlarmSpeed": "Fartsgrensealarm",
+ "commandDeviceIdentification": "Einingsidentifikasjon",
+ "eventDeviceOnline": "Eining er tilkopla",
+ "eventDeviceOffline": "Eininga er fråkopla",
+ "eventDeviceMoving": "Eininga rører seg",
+ "eventDeviceStopped": "Eininga er stoppa",
+ "eventDeviceOverspeed": "Eininga bryt fartsgrensa",
+ "eventCommandResult": "Kommandoresultat",
+ "eventGeofenceEnter": "Eininga har komme inn i geo-gjerde",
+ "eventGeofenceExit": "Eininga har forlatt geo-gjerde",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault Alarm",
+ "notificationType": "Varseltype",
+ "notificationWeb": "Send via web",
+ "notificationMail": "Send via e-post"
} \ No newline at end of file
diff --git a/web/l10n/pl.json b/web/l10n/pl.json
index 7ac5bcba3..742103c4f 100644
--- a/web/l10n/pl.json
+++ b/web/l10n/pl.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Attributes",
"sharedAttribute": "Attribute",
"sharedArea": "Area",
+ "sharedMute": "Mute",
"errorTitle": "Bląd",
"errorUnknown": "Nieznany błąd",
"errorConnection": "Błąd przy połączeniu",
"userEmail": "Email",
"userPassword": "Hasło",
"userAdmin": "Administrator",
+ "userRemember": "Remember",
"loginTitle": "Logowanie",
"loginLanguage": "Język",
"loginRegister": "Rejestracja",
@@ -118,6 +120,16 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..3492bdc5c 100644
--- a/web/l10n/pt.json
+++ b/web/l10n/pt.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Attributes",
"sharedAttribute": "Attribute",
"sharedArea": "Area",
+ "sharedMute": "Mute",
"errorTitle": "Erro",
"errorUnknown": "Erro desconhecido",
"errorConnection": "Erro de conexão",
"userEmail": "E-mail",
"userPassword": "Senha",
"userAdmin": "Admin",
+ "userRemember": "Remember",
"loginTitle": "Entrar",
"loginLanguage": "Idioma",
"loginRegister": "Registrar",
@@ -118,6 +120,16 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..9d613dd1c 100644
--- a/web/l10n/pt_BR.json
+++ b/web/l10n/pt_BR.json
@@ -15,20 +15,22 @@
"sharedMinute": "Minuto",
"sharedSecond": "Segundo",
"sharedName": "Nome",
- "sharedDescription": "Description",
+ "sharedDescription": "Descrição",
"sharedSearch": "Busca",
- "sharedGeofence": "Geofence",
- "sharedGeofences": "Geofences",
- "sharedNotifications": "Notifications",
- "sharedAttributes": "Attributes",
- "sharedAttribute": "Attribute",
- "sharedArea": "Area",
+ "sharedGeofence": "Geocerca",
+ "sharedGeofences": "Geocercas",
+ "sharedNotifications": "Notificações",
+ "sharedAttributes": "Atributos",
+ "sharedAttribute": "Atributo",
+ "sharedArea": "Área",
+ "sharedMute": "Mudo",
"errorTitle": "Erro",
"errorUnknown": "Erro desconhecido",
"errorConnection": "Erro de conexão",
"userEmail": "Email",
"userPassword": "Senha",
"userAdmin": "Admin",
+ "userRemember": "Remember",
"loginTitle": "Entrar",
"loginLanguage": "Idioma",
"loginRegister": "Registrar",
@@ -80,8 +82,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Estradas",
"mapBingAerial": "Bing Maps Aéreo",
- "mapShapePolygon": "Polygon",
- "mapShapeCircle": "Circle",
+ "mapShapePolygon": "Polígono",
+ "mapShapeCircle": "Círculo",
"stateTitle": "Estado",
"stateName": "Atributo",
"stateValue": "Valor",
@@ -95,30 +97,40 @@
"commandEngineResume": "Religar Motor",
"commandFrequency": "Frequencia",
"commandUnit": "Unidade",
- "commandCustom": "Custom command",
- "commandPositionSingle": "Single Reporting",
- "commandAlarmArm": "Arm Alarm",
- "commandAlarmDisarm": "Disarm Alarm",
- "commandSetTimezone": "Set Timezone",
- "commandRequestPhoto": "Request Photo",
- "commandRebootDevice": "Reboot Device",
- "commandSendSms": "Send SMS",
- "commandSosNumber": "Set SOS Number",
- "commandSilenceTime": "Set Silence Time",
- "commandSetPhonebook": "Set Phonebook",
- "commandVoiceMessage": "Voice Message",
- "commandOutputControl": "Output Control",
- "commandAlarmSpeed": "Overspeed Alarm",
- "commandDeviceIdentification": "Device Identification",
- "eventDeviceOnline": "Device is online",
- "eventDeviceOffline": "Device is offline",
- "eventDeviceMoving": "Device is moving",
- "eventDeviceStopped": "Device is stopped",
- "eventDeviceOverspeed": "Device exceeds the speed",
- "eventCommandResult": "Command result",
- "eventGeofenceEnter": "Device has entered geofence",
- "eventGeofenceExit": "Device has exited geofence",
- "notificationType": "Type of Notification",
- "notificationWeb": "Send via Web",
- "notificationMail": "Send via Mail"
+ "commandCustom": "Comando personalizado",
+ "commandPositionSingle": "Relatório único",
+ "commandAlarmArm": "Ativar Alarme",
+ "commandAlarmDisarm": "Desativar Alarme",
+ "commandSetTimezone": "Definir fuso horário",
+ "commandRequestPhoto": "Pegar foto",
+ "commandRebootDevice": "Reiniciar dispositivo",
+ "commandSendSms": "Enviar SMS",
+ "commandSosNumber": "Definir numero SOS",
+ "commandSilenceTime": "Silencioso",
+ "commandSetPhonebook": "Definir lista telefônica",
+ "commandVoiceMessage": "Mensagem de voz",
+ "commandOutputControl": "Controle de saída",
+ "commandAlarmSpeed": "Alarme de excesso de velocidade",
+ "commandDeviceIdentification": "Identificação do dispositivo",
+ "eventDeviceOnline": "Dispositivo está on-line",
+ "eventDeviceOffline": "Dispositivo está offline",
+ "eventDeviceMoving": "Dispositivo está se movendo",
+ "eventDeviceStopped": "Dispositivo está parado",
+ "eventDeviceOverspeed": "Dispositivo excede a velocidade",
+ "eventCommandResult": "Resultado do comando",
+ "eventGeofenceEnter": "Dispositivo entrou geocerca",
+ "eventGeofenceExit": "Dispositivo saiu geocerca",
+ "eventAlarm": "Alarmes",
+ "alarm": "Alarme",
+ "alarmSos": "Alarme SOS",
+ "alarmVibration": "Alarme de Vibração",
+ "alarmMovement": "Alarme de Movimento",
+ "alarmOverspeed": "Alarme de Alta Velocidade",
+ "alarmFallDown": "Alarme de Queda",
+ "alarmLowBattery": "Alarme de Bateria Fraca",
+ "alarmMotion": "Alarme de Movimento",
+ "alarmFault": "Alarme de Problema",
+ "notificationType": "Tipo de Notificação",
+ "notificationWeb": "Enviar via Web",
+ "notificationMail": "Enviar via Email"
} \ No newline at end of file
diff --git a/web/l10n/ro.json b/web/l10n/ro.json
index cdfec868d..950eb2845 100644
--- a/web/l10n/ro.json
+++ b/web/l10n/ro.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Atribute",
"sharedAttribute": "Atribute",
"sharedArea": "Area",
+ "sharedMute": "Mute",
"errorTitle": "Eroare",
"errorUnknown": "Eroare necunoscută",
"errorConnection": "Eroare de conexiune",
"userEmail": "Email",
"userPassword": "Parolă",
"userAdmin": "Admin",
+ "userRemember": "Remember",
"loginTitle": "Autentificare",
"loginLanguage": "Limbă",
"loginRegister": "Înregistrare",
@@ -102,11 +104,11 @@
"commandSetTimezone": "Set Timezone",
"commandRequestPhoto": "Request Photo",
"commandRebootDevice": "Reboot Device",
- "commandSendSms": "Send SMS",
- "commandSosNumber": "Set SOS Number",
- "commandSilenceTime": "Set Silence Time",
- "commandSetPhonebook": "Set Phonebook",
- "commandVoiceMessage": "Voice Message",
+ "commandSendSms": "Trimite SMS",
+ "commandSosNumber": "Set număr SOS",
+ "commandSilenceTime": "Set Timp Silențios",
+ "commandSetPhonebook": "Set Agendă telefonică",
+ "commandVoiceMessage": "Vesaj Vocal",
"commandOutputControl": "Output Control",
"commandAlarmSpeed": "Overspeed Alarm",
"commandDeviceIdentification": "Device Identification",
@@ -118,6 +120,16 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..412443f15 100644
--- a/web/l10n/ru.json
+++ b/web/l10n/ru.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Атрибуты",
"sharedAttribute": "Атрибут",
"sharedArea": "Область",
+ "sharedMute": "Mute",
"errorTitle": "Ошибка",
"errorUnknown": "Неизвестная ошибка",
"errorConnection": "Ошибка соединения",
"userEmail": "Email",
"userPassword": "Пароль",
"userAdmin": "Администратор",
+ "userRemember": "Remember",
"loginTitle": "Вход",
"loginLanguage": "Язык",
"loginRegister": "Регистрация",
@@ -118,6 +120,16 @@
"eventCommandResult": "Результат команды",
"eventGeofenceEnter": "Устройство вошло в геозону",
"eventGeofenceExit": "Устройство покинуло геозону",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault Alarm",
"notificationType": "Тип уведомления",
"notificationWeb": "Отправлять через Веб",
"notificationMail": "Отправлять через Почту"
diff --git a/web/l10n/si.json b/web/l10n/si.json
index 00c5a5bc9..8a76ca968 100644
--- a/web/l10n/si.json
+++ b/web/l10n/si.json
@@ -14,21 +14,23 @@
"sharedHour": "පැය",
"sharedMinute": "මිනිත්තු",
"sharedSecond": "තත්පර",
- "sharedName": "Name",
- "sharedDescription": "Description",
- "sharedSearch": "Search",
+ "sharedName": "නම",
+ "sharedDescription": "විස්තරය",
+ "sharedSearch": "සොයන්න",
"sharedGeofence": "Geofence",
"sharedGeofences": "Geofences",
- "sharedNotifications": "Notifications",
+ "sharedNotifications": "නිවේදන",
"sharedAttributes": "Attributes",
"sharedAttribute": "Attribute",
- "sharedArea": "Area",
+ "sharedArea": "ප්‍රදේශය",
+ "sharedMute": "Mute",
"errorTitle": "දෝෂයක් ",
"errorUnknown": "නොදන්නා දෝෂයක් !",
"errorConnection": "සම්බන්ධතා දෝෂයක් !",
"userEmail": "විද්යුත් තැපෑල",
"userPassword": "මුරපදය",
"userAdmin": "පරිපාලක",
+ "userRemember": "Remember",
"loginTitle": "පිවිසුම් ගිණුම",
"loginLanguage": "භාෂාව",
"loginRegister": "ලියාපදිංචි කරන්න",
@@ -36,19 +38,19 @@
"loginFailed": "ඊ-මේල් ලිපිනය හෝ මුරපදය වැරදිය !",
"loginCreated": "නව පරිශීලක ලියාපදිංචි කරන ලදි !",
"loginLogout": "ඉවත්වන්න",
- "devicesAndState": "Devices and State",
+ "devicesAndState": "උපාංග සහ ස්වභාවය",
"deviceDialog": "උපාංගය",
"deviceTitle": "උපාංග",
"deviceIdentifier": "හඳුනාගැනීමේ කේතය",
- "deviceLastUpdate": "Last Update",
+ "deviceLastUpdate": "අවසන් යාවත්කාලීනය",
"deviceCommand": "විධානය",
"deviceFollow": "Follow",
- "groupDialog": "Group",
- "groupParent": "Group",
- "groupNoGroup": "No Group",
+ "groupDialog": "සමූහය",
+ "groupParent": "සමූහය",
+ "groupNoGroup": "සමූහ එපා",
"settingsTitle": "සැකසුම්",
"settingsUser": "ගිණුම",
- "settingsGroups": "Groups",
+ "settingsGroups": "සමූහ",
"settingsServer": "සේවාදායකය",
"settingsUsers": "පරිශීලකයන්",
"settingsDistanceUnit": "දුර",
@@ -80,8 +82,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
- "mapShapePolygon": "Polygon",
- "mapShapeCircle": "Circle",
+ "mapShapePolygon": "බහුඅශ්‍රය",
+ "mapShapeCircle": "වෘත්තය",
"stateTitle": "තත්වය",
"stateName": "පරාමිතිය",
"stateValue": "අගය",
@@ -118,6 +120,16 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..6d36c3dd6 100644
--- a/web/l10n/sk.json
+++ b/web/l10n/sk.json
@@ -15,20 +15,22 @@
"sharedMinute": "Minúta",
"sharedSecond": "Sekunda",
"sharedName": "Meno",
- "sharedDescription": "Description",
+ "sharedDescription": "Popis",
"sharedSearch": "Hľadať",
"sharedGeofence": "Geofence",
"sharedGeofences": "Geofences",
- "sharedNotifications": "Notifications",
- "sharedAttributes": "Attributes",
- "sharedAttribute": "Attribute",
- "sharedArea": "Area",
+ "sharedNotifications": "Notifikácie",
+ "sharedAttributes": "Atribúty",
+ "sharedAttribute": "Atribút",
+ "sharedArea": "Oblasť",
+ "sharedMute": "Mute",
"errorTitle": "Chyba",
"errorUnknown": "Neznáma chyba",
"errorConnection": "Chyba pripojenia",
"userEmail": "E-mail",
"userPassword": "Heslo",
"userAdmin": "Admin",
+ "userRemember": "Remember",
"loginTitle": "Prihlásenie",
"loginLanguage": "Jazyk",
"loginRegister": "Registrovať",
@@ -45,7 +47,7 @@
"deviceFollow": "Nasleduj",
"groupDialog": "Skupina",
"groupParent": "Skupina",
- "groupNoGroup": "No Group",
+ "groupNoGroup": "Žiadna skupina",
"settingsTitle": "Nastavenia",
"settingsUser": "Účet",
"settingsGroups": "Skupiny",
@@ -80,8 +82,8 @@
"mapBingKey": "Klúč Bing Maps",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Arial",
- "mapShapePolygon": "Polygon",
- "mapShapeCircle": "Circle",
+ "mapShapePolygon": "Polygón",
+ "mapShapeCircle": "Kruh",
"stateTitle": "Štát",
"stateName": "Parameter",
"stateValue": "Hodnota",
@@ -95,30 +97,40 @@
"commandEngineResume": "Spustenie motora",
"commandFrequency": "Frekvencia",
"commandUnit": "Jednotka",
- "commandCustom": "Custom command",
- "commandPositionSingle": "Single Reporting",
- "commandAlarmArm": "Arm Alarm",
- "commandAlarmDisarm": "Disarm Alarm",
- "commandSetTimezone": "Set Timezone",
- "commandRequestPhoto": "Request Photo",
- "commandRebootDevice": "Reboot Device",
- "commandSendSms": "Send SMS",
- "commandSosNumber": "Set SOS Number",
- "commandSilenceTime": "Set Silence Time",
- "commandSetPhonebook": "Set Phonebook",
- "commandVoiceMessage": "Voice Message",
- "commandOutputControl": "Output Control",
- "commandAlarmSpeed": "Overspeed Alarm",
- "commandDeviceIdentification": "Device Identification",
- "eventDeviceOnline": "Device is online",
- "eventDeviceOffline": "Device is offline",
- "eventDeviceMoving": "Device is moving",
- "eventDeviceStopped": "Device is stopped",
- "eventDeviceOverspeed": "Device exceeds the speed",
- "eventCommandResult": "Command result",
- "eventGeofenceEnter": "Device has entered geofence",
- "eventGeofenceExit": "Device has exited geofence",
- "notificationType": "Type of Notification",
- "notificationWeb": "Send via Web",
- "notificationMail": "Send via Mail"
+ "commandCustom": "Vlastný príkaz",
+ "commandPositionSingle": "Jednoduché podávanie správ",
+ "commandAlarmArm": "Nastaviť upozornenie",
+ "commandAlarmDisarm": "Zrušiť upozornenie",
+ "commandSetTimezone": "Nastaviť časovú zónu",
+ "commandRequestPhoto": "Poslať fotku",
+ "commandRebootDevice": "Rebootovať zariadenie",
+ "commandSendSms": "Postať SMS",
+ "commandSosNumber": "Nastaviť čislo SOS",
+ "commandSilenceTime": "Nastav tichý čas",
+ "commandSetPhonebook": "Nastav telefónny zoznam",
+ "commandVoiceMessage": "Hlasové správy",
+ "commandOutputControl": "Výstupná kontrola",
+ "commandAlarmSpeed": "Upozornenie na prekročenie rýchlosti",
+ "commandDeviceIdentification": "Identifikácia zariadenia",
+ "eventDeviceOnline": "Zariadenie je online",
+ "eventDeviceOffline": "Zariadenie je offline",
+ "eventDeviceMoving": "Zariadenie je v pohybe",
+ "eventDeviceStopped": "Zariadenie je zastavené",
+ "eventDeviceOverspeed": "Zariadenie prekročilo rýchlosť",
+ "eventCommandResult": "Výsledok príkazu",
+ "eventGeofenceEnter": "Zariadenie vstúpilo geofence zóny",
+ "eventGeofenceExit": "Zariadenie opustilo geofence zónu",
+ "eventAlarm": "Upozornenia",
+ "alarm": "Upozornenie",
+ "alarmSos": "SOS upozornenie",
+ "alarmVibration": "Vibračné upozornenie",
+ "alarmMovement": "Upozornenie pohnutia",
+ "alarmOverspeed": "Upozornenie prekročenia rýchlosti ",
+ "alarmFallDown": "Upozornenie FallDown ",
+ "alarmLowBattery": "Upozornenie LowBattery",
+ "alarmMotion": "Upozornenie pohybu",
+ "alarmFault": "Upozorneie poruchy",
+ "notificationType": "Typ notifikácie",
+ "notificationWeb": "Poslať cez Web",
+ "notificationMail": "Poslať e-mailom"
} \ No newline at end of file
diff --git a/web/l10n/sl.json b/web/l10n/sl.json
index fc81f6500..fc5e5e309 100644
--- a/web/l10n/sl.json
+++ b/web/l10n/sl.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Attributes",
"sharedAttribute": "Attribute",
"sharedArea": "Area",
+ "sharedMute": "Mute",
"errorTitle": "Napaka",
"errorUnknown": "Neznana napaka",
"errorConnection": "Napaka v povezavi",
"userEmail": "E-Pošta",
"userPassword": "Geslo",
"userAdmin": "Admin",
+ "userRemember": "Remember",
"loginTitle": "Prijava",
"loginLanguage": "Jezik",
"loginRegister": "Registracija",
@@ -118,6 +120,16 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..1b36e514e 100644
--- a/web/l10n/sr.json
+++ b/web/l10n/sr.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Osobine",
"sharedAttribute": "Osobina",
"sharedArea": "Oblast",
+ "sharedMute": "Nečujno",
"errorTitle": "Greška",
"errorUnknown": "Nepoznata greška",
"errorConnection": "Greška u konekciji",
"userEmail": "Email",
"userPassword": "Lozinka",
"userAdmin": "Admin",
+ "userRemember": "Zapamti",
"loginTitle": "Prijava",
"loginLanguage": "Jezik",
"loginRegister": "Registruj se",
@@ -118,6 +120,16 @@
"eventCommandResult": "Stanje komande",
"eventGeofenceEnter": "Uređaj je ušao u geoogradu",
"eventGeofenceExit": "Uređaj je izašao iz geoograde",
+ "eventAlarm": "Alarmi",
+ "alarm": "Alarm",
+ "alarmSos": "SOS alarm",
+ "alarmVibration": "Alarm vibracija",
+ "alarmMovement": "Alarm Kretanja",
+ "alarmOverspeed": "Prekoračenje brzine alarm",
+ "alarmFallDown": "Padanje Alarm",
+ "alarmLowBattery": "Slaba baterija alarm",
+ "alarmMotion": "Alarm kretanja",
+ "alarmFault": "Alarm greške",
"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..f328fcaf1 100644
--- a/web/l10n/ta.json
+++ b/web/l10n/ta.json
@@ -23,12 +23,14 @@
"sharedAttributes": "பண்புகள்",
"sharedAttribute": "பண்பு",
"sharedArea": "பகுதி",
+ "sharedMute": "Mute",
"errorTitle": "பிழை",
"errorUnknown": "அறியப்படாத பிழை",
"errorConnection": "இணைப்புப் பிழை",
"userEmail": "மின்னஞ்சல்",
"userPassword": "கடவுச்சொல்",
"userAdmin": "நிர்வாகி",
+ "userRemember": "Remember",
"loginTitle": "உள் நுழை",
"loginLanguage": "மொழி",
"loginRegister": "பதிவு செய்ய",
@@ -118,6 +120,16 @@
"eventCommandResult": "கட்டளை விளைவு",
"eventGeofenceEnter": "சாதனம் பூகோள வேலியினுள் நுழைந்துள்ளது",
"eventGeofenceExit": "சாதனம் பூகோள வேலியை விட்டு வெளியேறியது",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault Alarm",
"notificationType": "type of notification",
"notificationWeb": "வலைதளம் வழி அனுப்புக ",
"notificationMail": "மின்னஞ்சல் வழி அனுப்புக"
diff --git a/web/l10n/th.json b/web/l10n/th.json
index e1b2b3867..63373804e 100644
--- a/web/l10n/th.json
+++ b/web/l10n/th.json
@@ -8,27 +8,29 @@
"sharedRemoveConfirm": "ยืนยันลบรายการ",
"sharedKm": "กม.",
"sharedMi": "ไมล์",
- "sharedKn": "kn",
+ "sharedKn": "น๊อต",
"sharedKmh": "กม./ชม.",
"sharedMph": "ไมล์ต่อชั่วโมง",
"sharedHour": "ชั่วโมง",
"sharedMinute": "นาที",
"sharedSecond": "วินาที",
"sharedName": "ชื่อ",
- "sharedDescription": "Description",
+ "sharedDescription": "ลักษณะ",
"sharedSearch": "ค้นหา",
- "sharedGeofence": "Geofence",
- "sharedGeofences": "Geofences",
- "sharedNotifications": "Notifications",
- "sharedAttributes": "Attributes",
- "sharedAttribute": "Attribute",
- "sharedArea": "Area",
+ "sharedGeofence": "เขตพื้นที่",
+ "sharedGeofences": "เขตพื้นที่",
+ "sharedNotifications": "การแจ้งเตือน",
+ "sharedAttributes": "คุณลักษณะ",
+ "sharedAttribute": "คุณลักษณะ",
+ "sharedArea": "พื้นที่",
+ "sharedMute": "Mute",
"errorTitle": "ผิดพลาด",
"errorUnknown": "ข้อผิดพลาดที่ไม่รู้จัก",
"errorConnection": "การเชื่อมต่อผิดพลาด",
"userEmail": "อีเมล์",
"userPassword": "รหัสผ่าน",
"userAdmin": "ผู้ดูแลระบบ",
+ "userRemember": "Remember",
"loginTitle": "เข้าสู่ระบบ",
"loginLanguage": "ภาษา",
"loginRegister": "ลงทะเบียน",
@@ -45,7 +47,7 @@
"deviceFollow": "ติดตาม",
"groupDialog": "กลุ่ม",
"groupParent": "กลุ่ม",
- "groupNoGroup": "No Group",
+ "groupNoGroup": "ไม่จัดกลุ่ม",
"settingsTitle": "การตั้งค่า",
"settingsUser": "บัญชีผู้ใช้",
"settingsGroups": "ตั้งค่ากลุ่ม",
@@ -80,8 +82,8 @@
"mapBingKey": "Bing Maps สำคัญ",
"mapBingRoad": "Bing Maps ถนน",
"mapBingAerial": "Bing Maps ทางอากาศ",
- "mapShapePolygon": "Polygon",
- "mapShapeCircle": "Circle",
+ "mapShapePolygon": "โพลิกอน",
+ "mapShapeCircle": "วงกลม",
"stateTitle": "สถานะ",
"stateName": "พารามิเตอร์",
"stateValue": "มูลค่า",
@@ -95,30 +97,40 @@
"commandEngineResume": "ติดครื่องยนต์ใหม่",
"commandFrequency": "ความถี่",
"commandUnit": "หน่วย",
- "commandCustom": "Custom command",
- "commandPositionSingle": "Single Reporting",
- "commandAlarmArm": "Arm Alarm",
- "commandAlarmDisarm": "Disarm Alarm",
- "commandSetTimezone": "Set Timezone",
- "commandRequestPhoto": "Request Photo",
- "commandRebootDevice": "Reboot Device",
- "commandSendSms": "Send SMS",
- "commandSosNumber": "Set SOS Number",
- "commandSilenceTime": "Set Silence Time",
- "commandSetPhonebook": "Set Phonebook",
- "commandVoiceMessage": "Voice Message",
- "commandOutputControl": "Output Control",
- "commandAlarmSpeed": "Overspeed Alarm",
- "commandDeviceIdentification": "Device Identification",
- "eventDeviceOnline": "Device is online",
- "eventDeviceOffline": "Device is offline",
- "eventDeviceMoving": "Device is moving",
- "eventDeviceStopped": "Device is stopped",
- "eventDeviceOverspeed": "Device exceeds the speed",
- "eventCommandResult": "Command result",
- "eventGeofenceEnter": "Device has entered geofence",
- "eventGeofenceExit": "Device has exited geofence",
- "notificationType": "Type of Notification",
- "notificationWeb": "Send via Web",
- "notificationMail": "Send via Mail"
+ "commandCustom": "คำสั่งกำหนดเอง",
+ "commandPositionSingle": "รายงานตำแหน่งเดียว",
+ "commandAlarmArm": "แจ้งเตือนติดต่อสาขา",
+ "commandAlarmDisarm": "แจ้งเตือนยกเลิกติดต่อสาขา",
+ "commandSetTimezone": "ตั้งค่าเขตเวลา",
+ "commandRequestPhoto": "สั่งถ่ายภาพ",
+ "commandRebootDevice": "รีบูต",
+ "commandSendSms": "ส่ง SMS",
+ "commandSosNumber": "ตั้งค่าเลขหมายโทรฉุกเฉิน SOS",
+ "commandSilenceTime": "ตั้งค่าช่วงเาลาหยุดนิ่ง",
+ "commandSetPhonebook": "ตั้งค่าสมุดโทรศัพท์",
+ "commandVoiceMessage": "ข้อความเสียง",
+ "commandOutputControl": "ควบคุมข้อมูลที่ส่งออก",
+ "commandAlarmSpeed": "แจ้งเตือนความเร็วเกินกำหนด",
+ "commandDeviceIdentification": "หมายเลขอุปกรณ์",
+ "eventDeviceOnline": "อุปกรณ์เชื่อมต่อแล้ว",
+ "eventDeviceOffline": "อุปกรณ์ไม่ได้เชื่อมต่อ",
+ "eventDeviceMoving": "อุปกรณ์กำลังเคลื่อนที่",
+ "eventDeviceStopped": "อุปกรณ์ไม่เคลื่อนไหว",
+ "eventDeviceOverspeed": "อุปกรณ์เกินกำหนดความเร็ว",
+ "eventCommandResult": "ผลลัพธ์จากคำสั่ง",
+ "eventGeofenceEnter": "อุปกรณ์เข้าในเขตพื้นที่",
+ "eventGeofenceExit": "อุปกรณ์ออกนอกเขตพื้นที่",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault Alarm",
+ "notificationType": "ชนิดการแจ้งเตือน",
+ "notificationWeb": "ส่งทางเว็บ",
+ "notificationMail": "ส่งทางเมล์"
} \ No newline at end of file
diff --git a/web/l10n/tr.json b/web/l10n/tr.json
index bcce758d6..7a00586c2 100644
--- a/web/l10n/tr.json
+++ b/web/l10n/tr.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Nitelikler",
"sharedAttribute": "Nitelik",
"sharedArea": "Bölge",
+ "sharedMute": "Mute",
"errorTitle": "Hata",
"errorUnknown": "Bilinmeyen hata ",
"errorConnection": "Bağlantı Hatası",
"userEmail": "Eposta",
"userPassword": "Şifre",
"userAdmin": "Yönetici",
+ "userRemember": "Remember",
"loginTitle": "Oturum aç",
"loginLanguage": "Lisan",
"loginRegister": "Kayıt",
@@ -118,6 +120,16 @@
"eventCommandResult": "Komut sonucu",
"eventGeofenceEnter": "Cihaz güvenli bölgede",
"eventGeofenceExit": "Cihaz güvenli bölgeden çıktı",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..02096ec5d 100644
--- a/web/l10n/uk.json
+++ b/web/l10n/uk.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Attributes",
"sharedAttribute": "Attribute",
"sharedArea": "Area",
+ "sharedMute": "Mute",
"errorTitle": "Помилка",
"errorUnknown": "Невiдома помилка",
"errorConnection": "Помилка з'єднання",
"userEmail": "E-mail",
"userPassword": "Пароль",
"userAdmin": "Адмiнiстратор",
+ "userRemember": "Remember",
"loginTitle": "Логiн",
"loginLanguage": "Мова",
"loginRegister": "Реєстрація",
@@ -118,6 +120,16 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault 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..55d356751 100644
--- a/web/l10n/vi.json
+++ b/web/l10n/vi.json
@@ -7,7 +7,7 @@
"sharedRemove": "Xóa",
"sharedRemoveConfirm": "Xóa lựa chọn?",
"sharedKm": "km",
- "sharedMi": "mi",
+ "sharedMi": "dặm",
"sharedKn": "kn",
"sharedKmh": "km/h",
"sharedMph": "mph",
@@ -15,38 +15,40 @@
"sharedMinute": "Phút",
"sharedSecond": "Giây",
"sharedName": "Tên",
- "sharedDescription": "Description",
+ "sharedDescription": "Mô tả",
"sharedSearch": "Tìm kiếm",
- "sharedGeofence": "Geofence",
- "sharedGeofences": "Geofences",
- "sharedNotifications": "Notifications",
- "sharedAttributes": "Attributes",
- "sharedAttribute": "Attribute",
- "sharedArea": "Area",
+ "sharedGeofence": "Giới hạn địa lý",
+ "sharedGeofences": "Giới hạn địa lý",
+ "sharedNotifications": "Thông báo",
+ "sharedAttributes": "Thuộc tính",
+ "sharedAttribute": "Thuộc tính",
+ "sharedArea": "Khu vực",
+ "sharedMute": "Mute",
"errorTitle": "Lỗi",
- "errorUnknown": "Không xác định được lỗi",
+ "errorUnknown": "Lỗi không xác định",
"errorConnection": "Lỗi kết nối",
"userEmail": "Email",
"userPassword": "Mật khẩu",
"userAdmin": "Quản trị",
+ "userRemember": "Remember",
"loginTitle": "Đăng nhập",
"loginLanguage": "Ngôn ngữ",
"loginRegister": "Đăng ký",
"loginLogin": "Đăng nhập",
"loginFailed": "Sai mật khẩu hoặc địa chỉ email",
- "loginCreated": "Đăng ký mới thành công",
+ "loginCreated": "Người dùng mới đã được đăng ký",
"loginLogout": "Đăng xuất",
"devicesAndState": "Các thiết bị và trạng thái",
"deviceDialog": "Thiết bị",
"deviceTitle": "Các thiết bị",
- "deviceIdentifier": "Mã nhận diện",
- "deviceLastUpdate": "Cập nhật cuối",
+ "deviceIdentifier": "Định danh",
+ "deviceLastUpdate": "Cập nhật lần cuối",
"deviceCommand": "Lệnh",
"deviceFollow": "Theo dõi",
"groupDialog": "Nhóm",
"groupParent": "Nhóm",
- "groupNoGroup": "No Group",
- "settingsTitle": "Thiết lập",
+ "groupNoGroup": "Không có nhóm",
+ "settingsTitle": "Cài đặt",
"settingsUser": "Tài khoản",
"settingsGroups": "Nhóm",
"settingsServer": "Máy chủ",
@@ -54,7 +56,7 @@
"settingsDistanceUnit": "Khoảng cách",
"settingsSpeedUnit": "Tốc độ",
"settingsTwelveHourFormat": "Định dạng 12h",
- "reportTitle": "Các báo cáo",
+ "reportTitle": "Báo cáo",
"reportDevice": "Thiết bị",
"reportFrom": "Từ",
"reportTo": "Đến",
@@ -69,56 +71,66 @@
"positionCourse": "Hướng",
"positionAddress": "Địa chỉ",
"positionProtocol": "Giao thức",
- "serverTitle": "Thiết lập máy chủ",
- "serverZoom": "Zoom",
+ "serverTitle": "Cài đặt máy chủ",
+ "serverZoom": "Phóng to",
"serverRegistration": "Đăng ký",
- "serverReadonly": "Chỉ được xem",
+ "serverReadonly": "Chỉ đọc",
"mapTitle": "Bản đồ",
- "mapLayer": "Loại bản đồ",
+ "mapLayer": "Lớp bản đồ",
"mapCustom": "Bản đồ tùy chỉnh",
"mapOsm": "Open Street Map",
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
- "mapShapePolygon": "Polygon",
- "mapShapeCircle": "Circle",
+ "mapShapePolygon": "Đa giác",
+ "mapShapeCircle": "Vòng tròn",
"stateTitle": "Trạng thái",
"stateName": "Thuộc tính",
"stateValue": "Giá trị",
"commandTitle": "Lệnh",
"commandSend": "Gửi",
- "commandType": "Kiểu",
+ "commandType": "Loại",
"commandSent": "Lệnh đã được gửi",
"commandPositionPeriodic": "Báo cáo định kỳ",
- "commandPositionStop": "Báo cáo dừng đỗ",
+ "commandPositionStop": "Dừng báo cáo",
"commandEngineStop": "Tắt máy",
"commandEngineResume": "Bật máy",
- "commandFrequency": "Chu kỳ",
- "commandUnit": "Thiết bị",
- "commandCustom": "Custom command",
- "commandPositionSingle": "Single Reporting",
- "commandAlarmArm": "Arm Alarm",
- "commandAlarmDisarm": "Disarm Alarm",
- "commandSetTimezone": "Set Timezone",
- "commandRequestPhoto": "Request Photo",
- "commandRebootDevice": "Reboot Device",
- "commandSendSms": "Send SMS",
- "commandSosNumber": "Set SOS Number",
- "commandSilenceTime": "Set Silence Time",
- "commandSetPhonebook": "Set Phonebook",
- "commandVoiceMessage": "Voice Message",
- "commandOutputControl": "Output Control",
- "commandAlarmSpeed": "Overspeed Alarm",
- "commandDeviceIdentification": "Device Identification",
- "eventDeviceOnline": "Device is online",
- "eventDeviceOffline": "Device is offline",
- "eventDeviceMoving": "Device is moving",
- "eventDeviceStopped": "Device is stopped",
- "eventDeviceOverspeed": "Device exceeds the speed",
- "eventCommandResult": "Command result",
- "eventGeofenceEnter": "Device has entered geofence",
- "eventGeofenceExit": "Device has exited geofence",
- "notificationType": "Type of Notification",
- "notificationWeb": "Send via Web",
- "notificationMail": "Send via Mail"
+ "commandFrequency": "Tần suất",
+ "commandUnit": "Đơn vị",
+ "commandCustom": "Lệnh tùy chỉnh",
+ "commandPositionSingle": "Báo cáo đơn",
+ "commandAlarmArm": "Báo động cho phép",
+ "commandAlarmDisarm": "Báo động không cho phép",
+ "commandSetTimezone": "Thiết lập múi giờ",
+ "commandRequestPhoto": "Yêu cầu ảnh",
+ "commandRebootDevice": "Khởi động lại thiết bị",
+ "commandSendSms": "Gửi tin nhắn",
+ "commandSosNumber": "Thiết lập số khẩn cấp",
+ "commandSilenceTime": "Thiêt lập giờ im lặng",
+ "commandSetPhonebook": "Thiết lập danh bạ điện thoại",
+ "commandVoiceMessage": "Tin nhắn thoại",
+ "commandOutputControl": "Điều khiển đầu ra",
+ "commandAlarmSpeed": "Báo động quá tốc độ",
+ "commandDeviceIdentification": "Định danh thiết bị",
+ "eventDeviceOnline": "Thiết bị trực tuyến",
+ "eventDeviceOffline": "Thiết bị ngoại tuyến",
+ "eventDeviceMoving": "Thiết bị đang di chuyển",
+ "eventDeviceStopped": "Thiết bị đã dừng",
+ "eventDeviceOverspeed": "Thiết bị vượt quá tốc độ",
+ "eventCommandResult": "Kết quả lệnh",
+ "eventGeofenceEnter": "Thiết bị đã đi vào giới hạn địa lý",
+ "eventGeofenceExit": "Thiết bị đã thoát khỏi giới hạn địa lý",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault Alarm",
+ "notificationType": "Loại thông báo",
+ "notificationWeb": "Gửi từ web",
+ "notificationMail": "Gửi từ mail"
} \ No newline at end of file
diff --git a/web/l10n/zh.json b/web/l10n/zh.json
index 6d32fae23..bb9761d43 100644
--- a/web/l10n/zh.json
+++ b/web/l10n/zh.json
@@ -23,12 +23,14 @@
"sharedAttributes": "Attributes",
"sharedAttribute": "Attribute",
"sharedArea": "Area",
+ "sharedMute": "Mute",
"errorTitle": "错误",
"errorUnknown": "未知错误",
"errorConnection": "连接错误",
"userEmail": "邮箱",
"userPassword": "密码",
"userAdmin": "管理员",
+ "userRemember": "Remember",
"loginTitle": "登录",
"loginLanguage": "语言",
"loginRegister": "注册",
@@ -118,6 +120,16 @@
"eventCommandResult": "Command result",
"eventGeofenceEnter": "Device has entered geofence",
"eventGeofenceExit": "Device has exited geofence",
+ "eventAlarm": "Alarms",
+ "alarm": "Alarm",
+ "alarmSos": "SOS Alarm",
+ "alarmVibration": "Vibration Alarm",
+ "alarmMovement": "Movement Alarm",
+ "alarmOverspeed": "Overspeed Alarm",
+ "alarmFallDown": "FallDown Alarm",
+ "alarmLowBattery": "LowBattery Alarm",
+ "alarmMotion": "Motion Alarm",
+ "alarmFault": "Fault Alarm",
"notificationType": "Type of Notification",
"notificationWeb": "Send via Web",
"notificationMail": "Send via Mail"