aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--debug.xml7
-rw-r--r--pom.xml29
-rwxr-xr-xsetup/package.sh34
-rw-r--r--setup/unix/traccar.xml8
-rw-r--r--setup/windows/traccar.iss6
-rw-r--r--setup/windows/traccar.xml8
-rw-r--r--src/org/traccar/BaseProtocol.java12
-rw-r--r--src/org/traccar/database/DataManager.java6
-rw-r--r--src/org/traccar/database/GeofenceManager.java17
-rw-r--r--src/org/traccar/database/NotificationManager.java2
-rw-r--r--src/org/traccar/events/GeofenceEventHandler.java4
-rw-r--r--src/org/traccar/geocode/GeocodeFarmReverseGeocoder.java6
-rw-r--r--src/org/traccar/helper/Checksum.java38
-rw-r--r--src/org/traccar/protocol/GatorProtocolDecoder.java1
-rw-r--r--src/org/traccar/protocol/Gt06ProtocolDecoder.java4
-rw-r--r--src/org/traccar/protocol/HuaShengFrameDecoder.java1
-rw-r--r--src/org/traccar/protocol/HuaShengProtocol.java1
-rw-r--r--src/org/traccar/protocol/HuaShengProtocolDecoder.java15
-rw-r--r--src/org/traccar/protocol/SuntechProtocol.java2
-rw-r--r--src/org/traccar/protocol/TeltonikaProtocol.java5
-rw-r--r--src/org/traccar/protocol/TeltonikaProtocolDecoder.java6
-rw-r--r--src/org/traccar/protocol/TeltonikaProtocolEncoder.java62
-rw-r--r--test/org/traccar/protocol/TeltonikaProtocolEncoderTest.java23
-rwxr-xr-xtools/test-commands.py12
-rw-r--r--web/app/GeofenceConverter.js16
-rw-r--r--web/app/controller/Root.js10
-rw-r--r--web/app/store/CommandTypes.js15
-rw-r--r--web/app/view/AttributesController.js25
-rw-r--r--web/app/view/BaseMap.js2
-rw-r--r--web/app/view/BasePermissionsController.js6
-rw-r--r--web/app/view/DevicesController.js20
-rw-r--r--web/app/view/GeofenceMap.js4
-rw-r--r--web/app/view/GroupsController.js7
-rw-r--r--web/app/view/Notifications.js11
-rw-r--r--web/app/view/NotificationsController.js9
-rw-r--r--web/app/view/UserDialog.js13
-rw-r--r--web/arrowstyle.js14
-rw-r--r--web/debug.html6
-rw-r--r--web/l10n/ar.json47
-rw-r--r--web/l10n/bg.json57
-rw-r--r--web/l10n/cs.json51
-rw-r--r--web/l10n/da.json57
-rw-r--r--web/l10n/de.json37
-rw-r--r--web/l10n/el.json37
-rw-r--r--web/l10n/es.json41
-rw-r--r--web/l10n/fa.json135
-rw-r--r--web/l10n/fi.json37
-rw-r--r--web/l10n/fr.json59
-rw-r--r--web/l10n/he.json37
-rw-r--r--web/l10n/hu.json37
-rw-r--r--web/l10n/id.json37
-rw-r--r--web/l10n/it.json39
-rw-r--r--web/l10n/ka.json37
-rw-r--r--web/l10n/lo.json37
-rw-r--r--web/l10n/lt.json71
-rw-r--r--web/l10n/ml.json59
-rw-r--r--web/l10n/ms.json37
-rw-r--r--web/l10n/nb.json37
-rw-r--r--web/l10n/ne.json37
-rw-r--r--web/l10n/nl.json37
-rw-r--r--web/l10n/nn.json37
-rw-r--r--web/l10n/pl.json37
-rw-r--r--web/l10n/pt.json37
-rw-r--r--web/l10n/pt_BR.json39
-rw-r--r--web/l10n/ro.json57
-rw-r--r--web/l10n/ru.json41
-rw-r--r--web/l10n/si.json37
-rw-r--r--web/l10n/sk.json37
-rw-r--r--web/l10n/sl.json37
-rw-r--r--web/l10n/sr.json37
-rw-r--r--web/l10n/ta.json75
-rw-r--r--web/l10n/th.json37
-rw-r--r--web/l10n/tr.json41
-rw-r--r--web/l10n/uk.json37
-rw-r--r--web/l10n/vi.json37
-rw-r--r--web/l10n/zh.json37
-rw-r--r--web/release.html6
78 files changed, 1840 insertions, 354 deletions
diff --git a/.gitignore b/.gitignore
index 5f48fe133..4bb6eefb9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@ nbactions.xml
.settings
.idea
*.iml
+.DS_Store
diff --git a/debug.xml b/debug.xml
index e3d23d5d1..227ba7b73 100644
--- a/debug.xml
+++ b/debug.xml
@@ -42,17 +42,12 @@
<entry key='logger.file'>target/tracker-server.log</entry>
<entry key='event.enable'>true</entry>
-
<entry key='event.suppressRepeated'>60</entry>
-
<entry key='event.overspeedHandler'>true</entry>
<entry key='event.globalSpeedLimit'>90</entry>
-
<entry key='event.motionHandler'>true</entry>
-
<entry key='event.geofenceHandler'>true</entry>
-
<!--<entry key='mail.smtp.host'>smtp.example.com</entry>
for STARTTLS
<entry key='mail.smtp.port'>587</entry>
@@ -75,6 +70,8 @@
<entry key='database.user'>sa</entry>
<entry key='database.password'></entry>
+ <entry key='database.ignoreUnknown'>true</entry>
+
<entry key='database.xml'>false</entry>
<entry key='database.saveOriginal'>false</entry>
diff --git a/pom.xml b/pom.xml
index 0df84a4aa..4d6e944a4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,15 +4,15 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.traccar</groupId>
<artifactId>traccar</artifactId>
- <version>3.5-SNAPSHOT</version>
+ <version>3.6-SNAPSHOT</version>
<name>traccar</name>
<url>https://www.traccar.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <jetty.version>9.2.15.v20160210</jetty.version> <!-- Jetty 9.3+ requires Java 8 -->
- <jersey.version>2.22.2</jersey.version>
+ <jetty.version>9.2.17.v20160517</jetty.version> <!-- Jetty 9.3+ requires Java 8 -->
+ <jersey.version>2.23.1</jersey.version>
</properties>
<dependencies>
@@ -30,17 +30,17 @@
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
- <version>2.9.3</version>
+ <version>2.9.4</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
- <version>1.4.191</version>
+ <version>1.4.192</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
- <version>5.1.38</version>
+ <version>5.1.39</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
@@ -50,12 +50,12 @@
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
- <version>2.4.5</version>
+ <version>2.4.7</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty</artifactId>
- <version>3.10.5.Final</version>
+ <version>3.10.6.Final</version>
</dependency>
<dependency>
<groupId>com.ning</groupId> <!-- org.asynchttpclient starting from version 2.0 -->
@@ -110,7 +110,7 @@
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>
- <version>3.4.2</version>
+ <version>3.5.1</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
@@ -152,9 +152,8 @@
</executions>
</plugin>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
- <version>2.6</version>
+ <version>3.0.2</version>
<configuration>
<archive>
<manifest>
@@ -168,7 +167,6 @@
</configuration>
</plugin>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
@@ -177,7 +175,6 @@
</configuration>
</plugin>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
@@ -206,7 +203,6 @@
<reporting>
<plugins>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.9</version>
<configuration>
@@ -214,12 +210,10 @@
</configuration>
</plugin>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>2.5</version>
</plugin>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.17</version>
<configuration>
@@ -229,10 +223,9 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
- <version>3.0.3</version>
+ <version>3.0.4</version>
</plugin>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.6</version>
</plugin>
diff --git a/setup/package.sh b/setup/package.sh
index a7b58b599..928a6e5b1 100755
--- a/setup/package.sh
+++ b/setup/package.sh
@@ -94,7 +94,7 @@ package_windows () {
wine app/ISCC.exe windows/traccar.iss
- zip -j traccar-$1-$VERSION.zip windows/Output/setup.exe README.txt
+ zip -j traccar-$1-$VERSION.zip windows/Output/traccar-setup.exe README.txt
rm -rf windows/Output/
rm -rf tmp/
@@ -108,26 +108,32 @@ package_unix () {
cp wrapper/lib/wrapper.jar out/lib
cp wrapper/src/conf/wrapper.conf.in out/conf/wrapper.conf
- sed -i 's/tail -1/tail -n 1/g' out/bin/traccar
+ sed -i.bak 's/tail -1/tail -n 1/g' out/bin/traccar
chmod +x out/bin/traccar
cp ../target/tracker-server.jar out
cp ../target/lib/* out/lib
-cp ../schema/* out/schema
+ cp ../schema/* out/schema
cp -r ../web/* out/web
cp unix/traccar.xml out/conf
- sed -i 's/@app.name@/traccar/g' out/bin/traccar
- sed -i 's/@app.long.name@/traccar/g' out/bin/traccar
-
- sed -i '/wrapper.java.classpath.1/i\wrapper.java.classpath.2=../tracker-server.jar' out/conf/wrapper.conf
- sed -i '/wrapper.app.parameter.1/i\wrapper.app.parameter.2=../conf/traccar.xml' out/conf/wrapper.conf
- sed -i 's/wrapper.java.additional.1=/wrapper.java.additional.1=-Dfile.encoding=UTF-8/g' out/conf/wrapper.conf
- sed -i 's/<YourMainClass>/org.traccar.Main/g' out/conf/wrapper.conf
- sed -i 's/@app.name@/traccar/g' out/conf/wrapper.conf
- sed -i 's/@app.long.name@/traccar/g' out/conf/wrapper.conf
- sed -i 's/@app.description@/traccar/g' out/conf/wrapper.conf
- sed -i 's/wrapper.logfile=..\/logs\/wrapper.log/wrapper.logfile=..\/logs\/wrapper.log.YYYYMMDD\nwrapper.logfile.rollmode=DATE/g' out/conf/wrapper.conf
+ sed -i.bak 's/@app.name@/traccar/g' out/bin/traccar
+ sed -i.bak 's/@app.long.name@/traccar/g' out/bin/traccar
+
+ sed -i.bak '/wrapper.java.classpath.1/a\
+wrapper.java.classpath.2=../tracker-server.jar' out/conf/wrapper.conf
+ sed -i.bak '/wrapper.app.parameter.1/a\
+wrapper.app.parameter.2=../conf/traccar.xml' out/conf/wrapper.conf
+ sed -i.bak 's/wrapper.java.additional.1=/wrapper.java.additional.1=-Dfile.encoding=UTF-8/g' out/conf/wrapper.conf
+ sed -i.bak 's/<YourMainClass>/org.traccar.Main/g' out/conf/wrapper.conf
+ sed -i.bak 's/@app.name@/traccar/g' out/conf/wrapper.conf
+ sed -i.bak 's/@app.long.name@/traccar/g' out/conf/wrapper.conf
+ sed -i.bak 's/@app.description@/traccar/g' out/conf/wrapper.conf
+ sed -i.bak 's/wrapper.logfile=..\/logs\/wrapper.log/wrapper.logfile=..\/logs\/wrapper.log.YYYYMMDD\
+wrapper.logfile.rollmode=DATE/g' out/conf/wrapper.conf
+
+ rm out/bin/traccar.bak
+ rm out/conf/wrapper.conf.bak
eval $2
diff --git a/setup/unix/traccar.xml b/setup/unix/traccar.xml
index cad96982e..767d53d8b 100644
--- a/setup/unix/traccar.xml
+++ b/setup/unix/traccar.xml
@@ -18,14 +18,10 @@
<entry key='logger.file'>/opt/traccar/logs/tracker-server.log</entry>
<entry key='event.enable'>true</entry>
-
<entry key='event.suppressRepeated'>60</entry>
-
<entry key='event.overspeedHandler'>true</entry>
<entry key='event.globalSpeedLimit'>90</entry>
-
<entry key='event.motionHandler'>true</entry>
-
<entry key='event.geofenceHandler'>true</entry>
<!-- DATABASE CONFIG -->
@@ -35,6 +31,8 @@
<entry key='database.user'>sa</entry>
<entry key='database.password'></entry>
+ <entry key='database.ignoreUnknown'>true</entry>
+
<entry key='database.changelog'>/opt/traccar/schema/changelog-master.xml</entry>
<entry key='database.selectServers'>
@@ -386,6 +384,8 @@
<entry key='supermate.port'>5108</entry>
<entry key='appello.port'>5109</entry>
<entry key='idpl.port'>5110</entry>
+ <entry key='huasheng.port'>5111</entry>
+ <entry key='l100.port'>5112</entry>
<entry key='granit.port'>5113</entry>
</properties>
diff --git a/setup/windows/traccar.iss b/setup/windows/traccar.iss
index 56de5c1a6..f5d41c6b0 100644
--- a/setup/windows/traccar.iss
+++ b/setup/windows/traccar.iss
@@ -1,8 +1,9 @@
[Setup]
AppName=Traccar
-AppVersion=3.5
+AppVersion=3.6
DefaultDirName={pf}\Traccar
AlwaysRestart=yes
+OutputBaseFilename=traccar-setup
[Dirs]
Name: "{app}\bin"
@@ -11,6 +12,7 @@ Name: "{app}\data"
Name: "{app}\lib"
Name: "{app}\logs"
Name: "{app}\web"
+Name: "{app}\schema"
[Files]
Source: "..\wrapper\bin\wrapper-windows-x86-32.exe"; DestDir: "{app}\bin"; DestName: "wrapper.exe"
@@ -23,7 +25,7 @@ Source: "..\wrapper\src\conf\wrapper.conf.in"; DestDir: "{app}\conf"; DestName:
Source: "..\..\target\tracker-server.jar"; DestDir: "{app}"
Source: "..\..\target\lib\*"; DestDir: "{app}\lib"
-Source: "..\..\database\*"; DestDir: "{app}\data"
+Source: "..\..\schema\*"; DestDir: "{app}\schema"
Source: "..\..\web\*"; DestDir: "{app}\web"; Flags: recursesubdirs
Source: "traccar.xml"; DestDir: "{app}\conf"; AfterInstall: ConfigureApplication
diff --git a/setup/windows/traccar.xml b/setup/windows/traccar.xml
index fcefd1daa..8499bda67 100644
--- a/setup/windows/traccar.xml
+++ b/setup/windows/traccar.xml
@@ -18,14 +18,10 @@
<entry key='logger.file'>[LOG]</entry>
<entry key='event.enable'>true</entry>
-
<entry key='event.suppressRepeated'>60</entry>
-
<entry key='event.overspeedHandler'>true</entry>
<entry key='event.globalSpeedLimit'>90</entry>
-
<entry key='event.motionHandler'>true</entry>
-
<entry key='event.geofenceHandler'>true</entry>
<!-- DATABASE CONFIG -->
@@ -35,6 +31,8 @@
<entry key='database.user'>sa</entry>
<entry key='database.password'></entry>
+ <entry key='database.ignoreUnknown'>true</entry>
+
<entry key='database.changelog'>[CHANGELOG]</entry>
<entry key='database.selectServers'>
@@ -386,6 +384,8 @@
<entry key='supermate.port'>5108</entry>
<entry key='appello.port'>5109</entry>
<entry key='idpl.port'>5110</entry>
+ <entry key='huasheng.port'>5111</entry>
+ <entry key='l100.port'>5112</entry>
<entry key='granit.port'>5113</entry>
</properties>
diff --git a/src/org/traccar/BaseProtocol.java b/src/org/traccar/BaseProtocol.java
index f968e81cc..352895629 100644
--- a/src/org/traccar/BaseProtocol.java
+++ b/src/org/traccar/BaseProtocol.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.
@@ -52,7 +52,9 @@ public abstract class BaseProtocol implements Protocol {
@Override
public void sendCommand(ActiveDevice activeDevice, Command command) {
- if (command.getType().equals(Command.TYPE_CUSTOM)) {
+ if (supportedCommands.contains(command.getType())) {
+ activeDevice.write(command);
+ } else if (command.getType().equals(Command.TYPE_CUSTOM)) {
String data = (String) command.getAttributes().get(Command.KEY_DATA);
if (activeDevice.getChannel().getPipeline().get(StringEncoder.class) != null) {
activeDevice.write(data);
@@ -60,11 +62,7 @@ public abstract class BaseProtocol implements Protocol {
activeDevice.write(ChannelBuffers.wrappedBuffer(DatatypeConverter.parseHexBinary(data)));
}
} else {
- if (!supportedCommands.contains(command.getType())) {
- throw new RuntimeException("Command "
- + command.getType() + " is not supported in protocol " + getName());
- }
- activeDevice.write(command);
+ throw new RuntimeException("Command " + command.getType() + " is not supported in protocol " + getName());
}
}
diff --git a/src/org/traccar/database/DataManager.java b/src/org/traccar/database/DataManager.java
index 031703023..2d3b75db7 100644
--- a/src/org/traccar/database/DataManager.java
+++ b/src/org/traccar/database/DataManager.java
@@ -241,7 +241,7 @@ public class DataManager implements IdentityManager {
}
public Group getGroupById(long id) {
- boolean forceUpdate;
+ /*boolean forceUpdate;
groupsLock.readLock().lock();
try {
forceUpdate = !groupsById.containsKey(id);
@@ -253,7 +253,7 @@ public class DataManager implements IdentityManager {
updateGroupCache(forceUpdate);
} catch (SQLException e) {
Log.warning(e);
- }
+ }*/
groupsLock.readLock().lock();
try {
@@ -356,7 +356,7 @@ public class DataManager implements IdentityManager {
boolean forceUpdate;
devicesLock.readLock().lock();
try {
- forceUpdate = devicesById.values().isEmpty();
+ forceUpdate = devicesById.isEmpty();
} finally {
devicesLock.readLock().unlock();
}
diff --git a/src/org/traccar/database/GeofenceManager.java b/src/org/traccar/database/GeofenceManager.java
index cc9f82879..d3cf2ad1f 100644
--- a/src/org/traccar/database/GeofenceManager.java
+++ b/src/org/traccar/database/GeofenceManager.java
@@ -30,11 +30,12 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
import org.traccar.Context;
import org.traccar.helper.Log;
import org.traccar.model.Device;
+import org.traccar.model.DeviceGeofence;
import org.traccar.model.Geofence;
+import org.traccar.model.GeofencePermission;
+import org.traccar.model.Group;
import org.traccar.model.GroupGeofence;
import org.traccar.model.Position;
-import org.traccar.model.DeviceGeofence;
-import org.traccar.model.GeofencePermission;
public class GeofenceManager {
@@ -137,15 +138,15 @@ public class GeofenceManager {
}
for (Device device : dataManager.getAllDevicesCached()) {
- long groupId = device.getGroupId();
- while (groupId != 0) {
+ Group group = dataManager.getGroupById(device.getGroupId());
+ while (group != null) {
getDeviceGeofences(deviceGeofencesWithGroups,
- device.getId()).addAll(getGroupGeofences(groupId));
- groupId = dataManager.getGroupById(groupId).getGroupId();
+ device.getId()).addAll(getGroupGeofences(group.getGroupId()));
+ group = dataManager.getGroupById(group.getGroupId());
}
List<Long> deviceGeofenceIds = device.getGeofenceIds();
if (deviceGeofenceIds == null) {
- deviceGeofenceIds = new ArrayList<Long>();
+ deviceGeofenceIds = new ArrayList<>();
} else {
deviceGeofenceIds.clear();
}
@@ -232,7 +233,7 @@ public class GeofenceManager {
}
public List<Long> getCurrentDeviceGeofences(Position position) {
- List<Long> result = new ArrayList<Long>();
+ List<Long> result = new ArrayList<>();
for (Long geofenceId : getAllDeviceGeofences(position.getDeviceId())) {
if (getGeofence(geofenceId).getGeometry().containsPoint(position.getLatitude(), position.getLongitude())) {
result.add(geofenceId);
diff --git a/src/org/traccar/database/NotificationManager.java b/src/org/traccar/database/NotificationManager.java
index ae91d81cc..d263e160f 100644
--- a/src/org/traccar/database/NotificationManager.java
+++ b/src/org/traccar/database/NotificationManager.java
@@ -87,7 +87,7 @@ public class NotificationManager {
public Set<Notification> getUserNotifications(long userId) {
notificationsLock.readLock().lock();
try {
- return getUserNotificationsUnsafe(userId);
+ return getUserNotificationsUnsafe(userId);
} finally {
notificationsLock.readLock().unlock();
}
diff --git a/src/org/traccar/events/GeofenceEventHandler.java b/src/org/traccar/events/GeofenceEventHandler.java
index e9a4a640f..a3d8aa375 100644
--- a/src/org/traccar/events/GeofenceEventHandler.java
+++ b/src/org/traccar/events/GeofenceEventHandler.java
@@ -52,11 +52,11 @@ public class GeofenceEventHandler extends BaseEventHandler {
}
List<Long> currentGeofences = geofenceManager.getCurrentDeviceGeofences(position);
- List<Long> oldGeofences = new ArrayList<Long>();
+ List<Long> oldGeofences = new ArrayList<>();
if (device.getGeofenceIds() != null) {
oldGeofences.addAll(device.getGeofenceIds());
}
- List<Long> newGeofences = new ArrayList<Long>(currentGeofences);
+ List<Long> newGeofences = new ArrayList<>(currentGeofences);
newGeofences.removeAll(oldGeofences);
oldGeofences.removeAll(currentGeofences);
diff --git a/src/org/traccar/geocode/GeocodeFarmReverseGeocoder.java b/src/org/traccar/geocode/GeocodeFarmReverseGeocoder.java
index e100d3081..306fc25b8 100644
--- a/src/org/traccar/geocode/GeocodeFarmReverseGeocoder.java
+++ b/src/org/traccar/geocode/GeocodeFarmReverseGeocoder.java
@@ -19,12 +19,14 @@ import javax.json.JsonObject;
public class GeocodeFarmReverseGeocoder extends JsonReverseGeocoder {
+ private static final String URL = "https://www.geocode.farm/v3/json/reverse/";
+
public GeocodeFarmReverseGeocoder(int cacheSize) {
- super("https://www.geocode.farm/v3/json/reverse/?lat=%f&lon=%f&country=us&lang=en&count=1", cacheSize);
+ super(URL + "?lat=%f&lon=%f&country=us&lang=en&count=1", cacheSize);
}
public GeocodeFarmReverseGeocoder(String key, int cacheSize) {
- super("https://www.geocode.farm/v3/json/reverse/?lat=%f&lon=%f&country=us&lang=en&count=1&key=" + key, cacheSize);
+ super(URL + "?lat=%f&lon=%f&country=us&lang=en&count=1&key=" + key, cacheSize);
}
@Override
diff --git a/src/org/traccar/helper/Checksum.java b/src/org/traccar/helper/Checksum.java
index 6a0a35b16..2a4b1191d 100644
--- a/src/org/traccar/helper/Checksum.java
+++ b/src/org/traccar/helper/Checksum.java
@@ -94,7 +94,43 @@ public final class Checksum {
0x6E17, 0x7E36, 0x4E55, 0x5E74, 0x2E93, 0x3EB2, 0x0ED1, 0x1EF0
};
+ private static final int[] CRC16_IBM_TABLE = {
+ 0x0000, 0xc0c1, 0xc181, 0x0140, 0xc301, 0x03c0, 0x0280, 0xc241,
+ 0xc601, 0x06c0, 0x0780, 0xc741, 0x0500, 0xc5c1, 0xc481, 0x0440,
+ 0xcc01, 0x0cc0, 0x0d80, 0xcd41, 0x0f00, 0xcfc1, 0xce81, 0x0e40,
+ 0x0a00, 0xcac1, 0xcb81, 0x0b40, 0xc901, 0x09c0, 0x0880, 0xc841,
+ 0xd801, 0x18c0, 0x1980, 0xd941, 0x1b00, 0xdbc1, 0xda81, 0x1a40,
+ 0x1e00, 0xdec1, 0xdf81, 0x1f40, 0xdd01, 0x1dc0, 0x1c80, 0xdc41,
+ 0x1400, 0xd4c1, 0xd581, 0x1540, 0xd701, 0x17c0, 0x1680, 0xd641,
+ 0xd201, 0x12c0, 0x1380, 0xd341, 0x1100, 0xd1c1, 0xd081, 0x1040,
+ 0xf001, 0x30c0, 0x3180, 0xf141, 0x3300, 0xf3c1, 0xf281, 0x3240,
+ 0x3600, 0xf6c1, 0xf781, 0x3740, 0xf501, 0x35c0, 0x3480, 0xf441,
+ 0x3c00, 0xfcc1, 0xfd81, 0x3d40, 0xff01, 0x3fc0, 0x3e80, 0xfe41,
+ 0xfa01, 0x3ac0, 0x3b80, 0xfb41, 0x3900, 0xf9c1, 0xf881, 0x3840,
+ 0x2800, 0xe8c1, 0xe981, 0x2940, 0xeb01, 0x2bc0, 0x2a80, 0xea41,
+ 0xee01, 0x2ec0, 0x2f80, 0xef41, 0x2d00, 0xedc1, 0xec81, 0x2c40,
+ 0xe401, 0x24c0, 0x2580, 0xe541, 0x2700, 0xe7c1, 0xe681, 0x2640,
+ 0x2200, 0xe2c1, 0xe381, 0x2340, 0xe101, 0x21c0, 0x2080, 0xe041,
+ 0xa001, 0x60c0, 0x6180, 0xa141, 0x6300, 0xa3c1, 0xa281, 0x6240,
+ 0x6600, 0xa6c1, 0xa781, 0x6740, 0xa501, 0x65c0, 0x6480, 0xa441,
+ 0x6c00, 0xacc1, 0xad81, 0x6d40, 0xaf01, 0x6fc0, 0x6e80, 0xae41,
+ 0xaa01, 0x6ac0, 0x6b80, 0xab41, 0x6900, 0xa9c1, 0xa881, 0x6840,
+ 0x7800, 0xb8c1, 0xb981, 0x7940, 0xbb01, 0x7bc0, 0x7a80, 0xba41,
+ 0xbe01, 0x7ec0, 0x7f80, 0xbf41, 0x7d00, 0xbdc1, 0xbc81, 0x7c40,
+ 0xb401, 0x74c0, 0x7580, 0xb541, 0x7700, 0xb7c1, 0xb681, 0x7640,
+ 0x7200, 0xb2c1, 0xb381, 0x7340, 0xb101, 0x71c0, 0x7080, 0xb041,
+ 0x5000, 0x90c1, 0x9181, 0x5140, 0x9301, 0x53c0, 0x5280, 0x9241,
+ 0x9601, 0x56c0, 0x5780, 0x9741, 0x5500, 0x95c1, 0x9481, 0x5440,
+ 0x9c01, 0x5cc0, 0x5d80, 0x9d41, 0x5f00, 0x9fc1, 0x9e81, 0x5e40,
+ 0x5a00, 0x9ac1, 0x9b81, 0x5b40, 0x9901, 0x59c0, 0x5880, 0x9841,
+ 0x8801, 0x48c0, 0x4980, 0x8941, 0x4b00, 0x8bc1, 0x8a81, 0x4a40,
+ 0x4e00, 0x8ec1, 0x8f81, 0x4f40, 0x8d01, 0x4dc0, 0x4c80, 0x8c41,
+ 0x4400, 0x84c1, 0x8581, 0x4540, 0x8701, 0x47c0, 0x4680, 0x8641,
+ 0x8201, 0x42c0, 0x4380, 0x8341, 0x4100, 0x81c1, 0x8081, 0x4040,
+ };
+
// More info: http://reveng.sourceforge.net/crc-catalogue/16.htm
+ public static final String CRC16_IBM = "IBM";
public static final String CRC16_X25 = "X-25";
public static final String CRC16_CCITT_FALSE = "CCITT-FALSE";
public static final String CRC16_KERMIT = "KERMIT";
@@ -121,6 +157,8 @@ public final class Checksum {
public static int crc16(String type, ByteBuffer buf) {
switch (type) {
+ case CRC16_IBM:
+ return crc16Reflected(buf, 0, CRC16_IBM_TABLE);
case CRC16_X25:
return crc16Reflected(buf, 0xFFFF, CRC16_CCITT_TABLE_REVERSE) ^ 0xFFFF;
case CRC16_CCITT_FALSE:
diff --git a/src/org/traccar/protocol/GatorProtocolDecoder.java b/src/org/traccar/protocol/GatorProtocolDecoder.java
index 94ca1fc3c..ade27a56a 100644
--- a/src/org/traccar/protocol/GatorProtocolDecoder.java
+++ b/src/org/traccar/protocol/GatorProtocolDecoder.java
@@ -20,7 +20,6 @@ import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.channel.Channel;
import org.traccar.BaseProtocolDecoder;
import org.traccar.helper.BcdUtil;
-import org.traccar.helper.Checksum;
import org.traccar.helper.DateBuilder;
import org.traccar.helper.UnitsConverter;
import org.traccar.model.Position;
diff --git a/src/org/traccar/protocol/Gt06ProtocolDecoder.java b/src/org/traccar/protocol/Gt06ProtocolDecoder.java
index 12c9d20b5..ce915fde8 100644
--- a/src/org/traccar/protocol/Gt06ProtocolDecoder.java
+++ b/src/org/traccar/protocol/Gt06ProtocolDecoder.java
@@ -271,9 +271,7 @@ public class Gt06ProtocolDecoder extends BaseProtocolDecoder {
} else if (header == 0x7979) {
- int length = buf.readUnsignedShort();
- int dataLength = length - 6;
-
+ buf.readUnsignedShort(); // length
int type = buf.readUnsignedByte();
if (type == MSG_INFO) {
diff --git a/src/org/traccar/protocol/HuaShengFrameDecoder.java b/src/org/traccar/protocol/HuaShengFrameDecoder.java
index 922bc3979..5d68fef9e 100644
--- a/src/org/traccar/protocol/HuaShengFrameDecoder.java
+++ b/src/org/traccar/protocol/HuaShengFrameDecoder.java
@@ -16,7 +16,6 @@
package org.traccar.protocol;
import org.jboss.netty.buffer.ChannelBuffer;
-import org.jboss.netty.buffer.ChannelBuffers;
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.handler.codec.frame.FrameDecoder;
diff --git a/src/org/traccar/protocol/HuaShengProtocol.java b/src/org/traccar/protocol/HuaShengProtocol.java
index 351f886db..53a77c603 100644
--- a/src/org/traccar/protocol/HuaShengProtocol.java
+++ b/src/org/traccar/protocol/HuaShengProtocol.java
@@ -17,7 +17,6 @@ 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;
diff --git a/src/org/traccar/protocol/HuaShengProtocolDecoder.java b/src/org/traccar/protocol/HuaShengProtocolDecoder.java
index 6743db47d..50517045b 100644
--- a/src/org/traccar/protocol/HuaShengProtocolDecoder.java
+++ b/src/org/traccar/protocol/HuaShengProtocolDecoder.java
@@ -19,7 +19,8 @@ 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.helper.*;
+import org.traccar.helper.DateBuilder;
+import org.traccar.helper.UnitsConverter;
import org.traccar.model.Position;
import java.net.SocketAddress;
@@ -96,12 +97,12 @@ public class HuaShengProtocolDecoder extends BaseProtocolDecoder {
String time = buf.readBytes(12).toString(StandardCharsets.US_ASCII);
DateBuilder dateBuilder = new DateBuilder()
- .setYear(Integer.valueOf(time.substring(0, 2)))
- .setMonth(Integer.valueOf(time.substring(2, 4)))
- .setDay(Integer.valueOf(time.substring(4, 6)))
- .setHour(Integer.valueOf(time.substring(6, 8)))
- .setMinute(Integer.valueOf(time.substring(8, 10)))
- .setSecond(Integer.valueOf(time.substring(10, 12)));
+ .setYear(Integer.parseInt(time.substring(0, 2)))
+ .setMonth(Integer.parseInt(time.substring(2, 4)))
+ .setDay(Integer.parseInt(time.substring(4, 6)))
+ .setHour(Integer.parseInt(time.substring(6, 8)))
+ .setMinute(Integer.parseInt(time.substring(8, 10)))
+ .setSecond(Integer.parseInt(time.substring(10, 12)));
position.setTime(dateBuilder.getDate());
position.setLongitude(buf.readInt() * 0.00001);
diff --git a/src/org/traccar/protocol/SuntechProtocol.java b/src/org/traccar/protocol/SuntechProtocol.java
index e06ed2aac..ce0e73280 100644
--- a/src/org/traccar/protocol/SuntechProtocol.java
+++ b/src/org/traccar/protocol/SuntechProtocol.java
@@ -32,7 +32,7 @@ public class SuntechProtocol extends BaseProtocol {
super("suntech");
setSupportedCommands(
Command.TYPE_ENGINE_STOP,
- Command.TYPE_ENGINE_STOP);
+ Command.TYPE_ENGINE_RESUME);
}
@Override
diff --git a/src/org/traccar/protocol/TeltonikaProtocol.java b/src/org/traccar/protocol/TeltonikaProtocol.java
index f944c3003..5a550d4c0 100644
--- a/src/org/traccar/protocol/TeltonikaProtocol.java
+++ b/src/org/traccar/protocol/TeltonikaProtocol.java
@@ -20,6 +20,7 @@ import org.jboss.netty.bootstrap.ServerBootstrap;
import org.jboss.netty.channel.ChannelPipeline;
import org.traccar.BaseProtocol;
import org.traccar.TrackerServer;
+import org.traccar.model.Command;
import java.util.List;
@@ -27,6 +28,8 @@ public class TeltonikaProtocol extends BaseProtocol {
public TeltonikaProtocol() {
super("teltonika");
+ setSupportedCommands(
+ Command.TYPE_CUSTOM);
}
@Override
@@ -35,12 +38,14 @@ public class TeltonikaProtocol extends BaseProtocol {
@Override
protected void addSpecificHandlers(ChannelPipeline pipeline) {
pipeline.addLast("frameDecoder", new TeltonikaFrameDecoder());
+ pipeline.addLast("objectEncoder", new TeltonikaProtocolEncoder());
pipeline.addLast("objectDecoder", new TeltonikaProtocolDecoder(TeltonikaProtocol.this));
}
});
serverList.add(new TrackerServer(new ConnectionlessBootstrap(), this.getName()) {
@Override
protected void addSpecificHandlers(ChannelPipeline pipeline) {
+ pipeline.addLast("objectEncoder", new TeltonikaProtocolEncoder());
pipeline.addLast("objectDecoder", new TeltonikaProtocolDecoder(TeltonikaProtocol.this));
}
});
diff --git a/src/org/traccar/protocol/TeltonikaProtocolDecoder.java b/src/org/traccar/protocol/TeltonikaProtocolDecoder.java
index 1706a34a5..eb77cf350 100644
--- a/src/org/traccar/protocol/TeltonikaProtocolDecoder.java
+++ b/src/org/traccar/protocol/TeltonikaProtocolDecoder.java
@@ -52,9 +52,9 @@ public class TeltonikaProtocolDecoder extends BaseProtocolDecoder {
}
}
- private static final int CODEC_GH3000 = 0x07;
- private static final int CODEC_FM4X00 = 0x08;
- private static final int CODEC_12 = 0x0C;
+ public static final int CODEC_GH3000 = 0x07;
+ public static final int CODEC_FM4X00 = 0x08;
+ public static final int CODEC_12 = 0x0C;
private void decodeSerial(Position position, ChannelBuffer buf) {
diff --git a/src/org/traccar/protocol/TeltonikaProtocolEncoder.java b/src/org/traccar/protocol/TeltonikaProtocolEncoder.java
new file mode 100644
index 000000000..d91f7f7bf
--- /dev/null
+++ b/src/org/traccar/protocol/TeltonikaProtocolEncoder.java
@@ -0,0 +1,62 @@
+/*
+ * 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.traccar.BaseProtocolEncoder;
+import org.traccar.helper.Checksum;
+import org.traccar.helper.Log;
+import org.traccar.model.Command;
+
+import java.nio.charset.StandardCharsets;
+
+public class TeltonikaProtocolEncoder extends BaseProtocolEncoder {
+
+ private ChannelBuffer encodeContent(String content) {
+
+ ChannelBuffer buf = ChannelBuffers.dynamicBuffer();
+
+ buf.writeInt(0);
+ buf.writeInt(content.length() + 10);
+ buf.writeByte(TeltonikaProtocolDecoder.CODEC_12);
+ buf.writeByte(1); // quantity
+ buf.writeByte(5); // type
+ buf.writeInt(content.length() + 2);
+ buf.writeBytes(content.getBytes(StandardCharsets.US_ASCII));
+ buf.writeByte('\r');
+ buf.writeByte('\n');
+ buf.writeByte(1); // quantity
+ buf.writeInt(Checksum.crc16(Checksum.CRC16_IBM, buf.toByteBuffer(8, buf.writerIndex() - 8)));
+
+ return buf;
+ }
+
+ @Override
+ protected Object encodeCommand(Command command) {
+
+ switch (command.getType()) {
+ case Command.TYPE_CUSTOM:
+ return encodeContent((String) command.getAttributes().get(Command.KEY_DATA));
+ default:
+ Log.warning(new UnsupportedOperationException(command.getType()));
+ break;
+ }
+
+ return null;
+ }
+
+}
diff --git a/test/org/traccar/protocol/TeltonikaProtocolEncoderTest.java b/test/org/traccar/protocol/TeltonikaProtocolEncoderTest.java
new file mode 100644
index 000000000..83ea961b4
--- /dev/null
+++ b/test/org/traccar/protocol/TeltonikaProtocolEncoderTest.java
@@ -0,0 +1,23 @@
+package org.traccar.protocol;
+
+import org.junit.Test;
+import org.traccar.ProtocolTest;
+import org.traccar.model.Command;
+
+public class TeltonikaProtocolEncoderTest extends ProtocolTest {
+
+ @Test
+ public void testEncode() throws Exception {
+
+ TeltonikaProtocolEncoder encoder = new TeltonikaProtocolEncoder();
+
+ Command command = new Command();
+ command.setDeviceId(1);
+ command.setType(Command.TYPE_CUSTOM);
+ command.set(Command.KEY_DATA, "setdigout 11");
+
+ verifyCommand(encoder, command, binary("00000000000000160C01050000000E7365746469676F75742031310D0A010000E258"));
+
+ }
+
+}
diff --git a/tools/test-commands.py b/tools/test-commands.py
new file mode 100755
index 000000000..6c4896a46
--- /dev/null
+++ b/tools/test-commands.py
@@ -0,0 +1,12 @@
+#!/usr/bin/python
+
+import socket
+
+s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+s.connect(("localhost", 5001))
+s.send("imei:123456789012345,tracker,151030080103,,F,000101.000,A,5443.3834,N,02512.9071,E,0.00,0;")
+
+while True:
+ print s.recv(1024)
+
+s.close()
diff --git a/web/app/GeofenceConverter.js b/web/app/GeofenceConverter.js
index d104ef127..ebe121385 100644
--- a/web/app/GeofenceConverter.js
+++ b/web/app/GeofenceConverter.js
@@ -20,7 +20,7 @@ Ext.define('Traccar.GeofenceConverter', {
wktToGeometry: function (mapView, wkt) {
var geometry, projection, resolutionAtEquator, pointResolution, resolutionFactor, points = [], center, radius,
content, i, lat, lon, coordinates;
- if (wkt.startsWith("POLYGON")) {
+ if (wkt.startsWith('POLYGON')) {
content = wkt.match(/\([^\(\)]+\)/);
if (content !== null) {
coordinates = content[0].match(/-?\d+\.?\d*/g);
@@ -34,7 +34,7 @@ Ext.define('Traccar.GeofenceConverter', {
geometry = new ol.geom.Polygon([points]);
}
}
- } else if (wkt.startsWith("CIRCLE")) {
+ } else if (wkt.startsWith('CIRCLE')) {
content = wkt.match(/\([^\(\)]+\)/);
if (content !== null) {
coordinates = content[0].match(/-?\d+\.?\d*/g);
@@ -62,17 +62,17 @@ Ext.define('Traccar.GeofenceConverter', {
earthSphere = new ol.Sphere(6378137);
groundRadius = earthSphere.haversineDistance(center,
ol.proj.transform(edgeCoordinate, projection, 'EPSG:4326'));
- result = "CIRCLE (";
- result += center[1] + " " + center[0] + ", ";
- result += Number((groundRadius).toFixed(1)) + ")";
+ result = 'CIRCLE (';
+ result += center[1] + ' ' + center[0] + ', ';
+ result += Number((groundRadius).toFixed(1)) + ')';
} else if (geometry instanceof ol.geom.Polygon) {
geometry.transform(projection, 'EPSG:4326');
points = geometry.getCoordinates();
- result = "POLYGON((";
+ result = 'POLYGON((';
for (i = 0; i < points[0].length; i += 1) {
- result += points[0][i][1] + " " + points[0][i][0] + ", ";
+ result += points[0][i][1] + ' ' + points[0][i][0] + ', ';
}
- result = result.substring(0, result.length - 2) + "))";
+ result = result.substring(0, result.length - 2) + '))';
}
return result;
}
diff --git a/web/app/controller/Root.js b/web/app/controller/Root.js
index ba23b90bf..98ded9c47 100644
--- a/web/app/controller/Root.js
+++ b/web/app/controller/Root.js
@@ -139,27 +139,27 @@ Ext.define('Traccar.controller.Root', {
store.add(array[i]);
if (array[i].type === 'commandResult' && data.positions) {
for (j = 0; j < data.positions.length; j++) {
- if (data.positions[j].id == array[i].positionId) {
+ if (data.positions[j].id === array[i].positionId) {
text = data.positions[j].attributes.result;
break;
}
}
- text = Strings.eventCommandResult + ": " + text;
+ text = Strings.eventCommandResult + ': ' + text;
} else {
typeKey = 'event' + array[i].type.charAt(0).toUpperCase() + array[i].type.slice(1);
text = Strings[typeKey];
- if (typeof text == "undefined") {
+ if (typeof text === 'undefined') {
text = typeKey;
}
}
if (array[i].geofenceId !== 0) {
geofence = Ext.getStore('Geofences').getById(array[i].geofenceId);
- if (typeof geofence != "undefined") {
+ if (typeof geofence !== 'undefined') {
text += ' \"' + geofence.getData().name + '"';
}
}
device = Ext.getStore('Devices').getById(array[i].deviceId);
- if (typeof device != "undefined") {
+ if (typeof device !== 'undefined') {
Ext.toast(text, device.getData().name);
}
}
diff --git a/web/app/store/CommandTypes.js b/web/app/store/CommandTypes.js
index 2ef190edc..d3825fb95 100644
--- a/web/app/store/CommandTypes.js
+++ b/web/app/store/CommandTypes.js
@@ -19,7 +19,7 @@ Ext.define('Traccar.store.CommandTypes', {
fields: ['type', 'name'],
listeners: {
- 'beforeload' : function(store) {
+ 'beforeload' : function (store) {
var proxy;
proxy = store.getProxy();
proxy.setUrl('/api/commandtypes?deviceId' + proxy.extraParams.deviceId);
@@ -31,13 +31,14 @@ Ext.define('Traccar.store.CommandTypes', {
url: '',
reader: {
type: 'json',
- getData: function(data) {
- Ext.each(data, function(entry) {
+ getData: function (data) {
+ Ext.each(data, function (entry) {
+ var nameKey, name;
entry.name = entry.type;
- if (typeof entry.type !== "undefined") {
- var nameKey = 'command' + entry.type.charAt(0).toUpperCase() + entry.type.slice(1);
- var name = Strings[nameKey];
- if (typeof name !== "undefined") {
+ if (typeof entry.type !== 'undefined') {
+ nameKey = 'command' + entry.type.charAt(0).toUpperCase() + entry.type.slice(1);
+ name = Strings[nameKey];
+ if (typeof name !== 'undefined') {
entry.name = name;
}
}
diff --git a/web/app/view/AttributesController.js b/web/app/view/AttributesController.js
index 3959c5a5c..2a9e71849 100644
--- a/web/app/view/AttributesController.js
+++ b/web/app/view/AttributesController.js
@@ -24,23 +24,26 @@ Ext.define('Traccar.view.AttributesController', {
],
init: function () {
- var store, propertyName, i = 0;
+ var store, propertyName, i = 0, attributes;
store = Ext.create('Traccar.store.Attributes');
store.setProxy(Ext.create('Ext.data.proxy.Memory'));
- for (propertyName in this.getView().record.get('attributes')) {
- store.add(Ext.create('Traccar.model.Attribute', {
- priority: i++,
- name: propertyName,
- value:this.getView().record.get('attributes')[propertyName]
- }));
+ attributes = this.getView().record.get('attributes');
+ for (propertyName in attributes) {
+ if (attributes.hasOwnProperty(propertyName)) {
+ store.add(Ext.create('Traccar.model.Attribute', {
+ priority: i++,
+ name: propertyName,
+ value: this.getView().record.get('attributes')[propertyName]
+ }));
+ }
}
- store.addListener('add', function (store , records , index , eOpts) {
- for (var i = 0; i < records.length; i++) {
+ store.addListener('add', function (store, records, index, eOpts) {
+ for (i = 0; i < records.length; i++) {
this.getView().record.get('attributes')[records[i].get('name')] = records[i].get('value');
}
this.getView().record.dirty = true;
}, this);
- store.addListener('update', function (store, record, operation , modifiedFieldNames , details , eOpts) {
+ store.addListener('update', function (store, record, operation, modifiedFieldNames, details, eOpts) {
if (operation === Ext.data.Model.EDIT) {
if (record.modified.name !== record.get('name')) {
delete this.getView().record.get('attributes')[record.modified.name];
@@ -49,7 +52,7 @@ Ext.define('Traccar.view.AttributesController', {
this.getView().record.dirty = true;
}
}, this);
- store.addListener('remove', function (store , records , index , isMove , eOpts) {
+ store.addListener('remove', function (store, records, index, isMove, eOpts) {
for (var i = 0; i < records.length; i++) {
delete this.getView().record.get('attributes')[records[i].get('name')];
}
diff --git a/web/app/view/BaseMap.js b/web/app/view/BaseMap.js
index 7f508cbe8..77646cbef 100644
--- a/web/app/view/BaseMap.js
+++ b/web/app/view/BaseMap.js
@@ -28,7 +28,7 @@ Ext.define('Traccar.view.BaseMap', {
return this.mapView;
},
- initMap: function() {
+ initMap: function () {
var user, server, layer, type, bingKey, lat, lon, zoom, target;
user = Traccar.app.getUser();
diff --git a/web/app/view/BasePermissionsController.js b/web/app/view/BasePermissionsController.js
index 713d91770..3cdc2e4dc 100644
--- a/web/app/view/BasePermissionsController.js
+++ b/web/app/view/BasePermissionsController.js
@@ -19,10 +19,10 @@ Ext.define('Traccar.view.BasePermissionsController', {
alias: 'controller.basePermissionsController',
init: function () {
- var params = {};
+ var params = {}, linkStoreName, storeName;
params[this.getView().baseObjectName] = this.getView().baseObject;
- var linkStoreName = this.getView().linkStoreName;
- var storeName = this.getView().storeName;
+ linkStoreName = this.getView().linkStoreName;
+ storeName = this.getView().storeName;
linkStoreName = (typeof linkStoreName === 'undefined') ? storeName : linkStoreName;
this.getView().setStore(Ext.getStore(storeName));
this.getView().getStore().load({
diff --git a/web/app/view/DevicesController.js b/web/app/view/DevicesController.js
index cf31dd7bb..ca3e24661 100644
--- a/web/app/view/DevicesController.js
+++ b/web/app/view/DevicesController.js
@@ -86,15 +86,16 @@ Ext.define('Traccar.view.DevicesController', {
},
onGeofencesClick: function () {
- var admin = Traccar.app.getUser().get('admin');
- var device = this.getView().getSelectionModel().getSelection()[0];
+ var admin, device;
+ admin = Traccar.app.getUser().get('admin');
+ device = this.getView().getSelectionModel().getSelection()[0];
Ext.create('Traccar.view.BaseWindow', {
title: Strings.sharedGeofences,
items: {
xtype: 'deviceGeofencesView',
baseObjectName: 'deviceId',
linkObjectName: 'geofenceId',
- storeName: (admin) ? 'AllGeofences' : 'Geofences',
+ storeName: 'Geofences',
urlApi: '/api/devices/geofences',
baseObject: device.getData().id
}
@@ -115,19 +116,24 @@ Ext.define('Traccar.view.DevicesController', {
},
onFollowClick: function (button, pressed) {
+ var device;
if (pressed) {
- var device = this.getView().getSelectionModel().getSelection()[0];
+ device = this.getView().getSelectionModel().getSelection()[0];
this.fireEvent('selectDevice', device, true);
}
},
- onSelectionChange: function (selected) {
+ updateButtons: function (selected) {
var empty = selected.getCount() === 0;
this.lookupReference('toolbarEditButton').setDisabled(empty);
this.lookupReference('toolbarRemoveButton').setDisabled(empty);
this.lookupReference('toolbarGeofencesButton').setDisabled(empty);
this.lookupReference('deviceCommandButton').setDisabled(empty || (selected.getLastSelected().get('status') !== 'online'));
- if (!empty) {
+ },
+
+ onSelectionChange: function (selected) {
+ this.updateButtons(selected);
+ if (selected.getCount() > 0) {
this.fireEvent('selectDevice', selected.getLastSelected(), true);
}
},
@@ -143,6 +149,6 @@ Ext.define('Traccar.view.DevicesController', {
},
onUpdateDevice: function (store, data) {
- this.onSelectionChange(this.getView().getSelectionModel());
+ this.updateButtons(this.getView().getSelectionModel());
}
});
diff --git a/web/app/view/GeofenceMap.js b/web/app/view/GeofenceMap.js
index 165daf40d..573836bc9 100644
--- a/web/app/view/GeofenceMap.js
+++ b/web/app/view/GeofenceMap.js
@@ -57,7 +57,7 @@ Ext.define('Traccar.view.GeofenceMap', {
map = this.map;
this.features = new ol.Collection();
- if (this.area !== "") {
+ if (this.area !== '') {
geometry = Traccar.GeofenceConverter.wktToGeometry(this.mapView, this.area);
this.features.push(new ol.Feature(geometry));
if (geometry instanceof ol.geom.Circle) {
@@ -90,7 +90,7 @@ Ext.define('Traccar.view.GeofenceMap', {
map.addInteraction(new ol.interaction.Modify({
features: this.features,
- deleteCondition: function(event) {
+ deleteCondition: function (event) {
return ol.events.condition.shiftKeyOnly(event) && ol.events.condition.singleClick(event);
}
}));
diff --git a/web/app/view/GroupsController.js b/web/app/view/GroupsController.js
index bc713bb6d..1764423d7 100644
--- a/web/app/view/GroupsController.js
+++ b/web/app/view/GroupsController.js
@@ -60,15 +60,16 @@ Ext.define('Traccar.view.GroupsController', {
},
onGeofencesClick: function () {
- var admin = Traccar.app.getUser().get('admin');
- var group = this.getView().getSelectionModel().getSelection()[0];
+ var admin, group;
+ admin = Traccar.app.getUser().get('admin');
+ group = this.getView().getSelectionModel().getSelection()[0];
Ext.create('Traccar.view.BaseWindow', {
title: Strings.sharedGeofences,
items: {
xtype: 'groupGeofencesView',
baseObjectName: 'groupId',
linkObjectName: 'geofenceId',
- storeName: (admin) ? 'AllGeofences' : 'Geofences',
+ storeName: admin ? 'AllGeofences' : 'Geofences',
urlApi: '/api/groups/geofences',
baseObject: group.getData().id
}
diff --git a/web/app/view/Notifications.js b/web/app/view/Notifications.js
index ae4e459b1..996ce3748 100644
--- a/web/app/view/Notifications.js
+++ b/web/app/view/Notifications.js
@@ -26,10 +26,10 @@ Ext.define('Traccar.view.Notifications', {
store: 'AllNotifications',
selModel: {
- selType: 'cellmodel',
+ selType: 'cellmodel'
},
- viewConfig:{
+ viewConfig: {
markDirty:false
},
@@ -51,7 +51,7 @@ Ext.define('Traccar.view.Notifications', {
checkChange: 'onCheckChange'
},
renderer: function (value, metaData, record) {
- var fields = this.dataIndex.split('\.',2);
+ var fields = this.dataIndex.split('\.', 2);
return (new Ext.ux.CheckColumn()).renderer(record.get(fields[0])[fields[1]], metaData);
}
}, {
@@ -64,9 +64,8 @@ Ext.define('Traccar.view.Notifications', {
checkChange: 'onCheckChange'
},
renderer: function (value, metaData, record) {
- var fields = this.dataIndex.split('\.',2);
+ var fields = this.dataIndex.split('\.', 2);
return (new Ext.ux.CheckColumn()).renderer(record.get(fields[0])[fields[1]], metaData);
}
- }],
-
+ }]
});
diff --git a/web/app/view/NotificationsController.js b/web/app/view/NotificationsController.js
index a7c4290ca..90479fe07 100644
--- a/web/app/view/NotificationsController.js
+++ b/web/app/view/NotificationsController.js
@@ -47,11 +47,12 @@ Ext.define('Traccar.view.NotificationsController', {
},
onBeforeCheckChange: function (column, rowIndex, checked, eOpts) {
- var fields = column.dataIndex.split('\.',2);
- var record = this.getView().getStore().getAt(rowIndex);
- var data = record.get(fields[0]);
+ var fields, record, data;
+ fields = column.dataIndex.split('\.', 2);
+ record = this.getView().getStore().getAt(rowIndex);
+ data = record.get(fields[0]);
if (!data[fields[1]]) {
- data[fields[1]] = "true";
+ data[fields[1]] = 'true';
} else {
delete data[fields[1]];
}
diff --git a/web/app/view/UserDialog.js b/web/app/view/UserDialog.js
index b51997262..378cc0681 100644
--- a/web/app/view/UserDialog.js
+++ b/web/app/view/UserDialog.js
@@ -89,9 +89,18 @@ Ext.define('Traccar.view.UserDialog', {
fieldLabel: Strings.settingsTwelveHourFormat,
allowBlank: false
}]
- }, {
- xtype: 'button',
+ }],
+
+ buttons: [{
text : Strings.sharedAttributes,
handler: 'showAttributesView'
+ }, {
+ xtype: 'tbfill'
+ }, {
+ text: Strings.sharedSave,
+ handler: 'onSaveClick'
+ }, {
+ text: Strings.sharedCancel,
+ handler: 'closeView'
}]
});
diff --git a/web/arrowstyle.js b/web/arrowstyle.js
index a39e04cdf..1fd2b3c00 100644
--- a/web/arrowstyle.js
+++ b/web/arrowstyle.js
@@ -123,7 +123,7 @@ ol.style.Arrow = function(options) {
var rotateWithView = options.rotateWithView !== undefined ?
options.rotateWithView : false;
- goog.base(this, {
+ ol.style.Image.call(this, {
opacity: 1,
rotateWithView: rotateWithView,
rotation: options.rotation !== undefined ? options.rotation : 0,
@@ -132,7 +132,7 @@ ol.style.Arrow = function(options) {
});
};
-goog.inherits(ol.style.Arrow, ol.style.Image);
+ol.inherits(ol.style.Arrow, ol.style.Image);
/**
@@ -282,7 +282,7 @@ ol.style.Arrow.prototype.unlistenImageChange = ol.nullFunction;
* miterLimit: number
* }}
*/
-ol.style.Arrow.RenderOptions;
+ol.ArrowRenderOptions;
/**
@@ -324,7 +324,7 @@ ol.style.Arrow.prototype.render_ = function(atlasManager) {
var size = 2 * (this.radius_ + strokeWidth) + 1;
- /** @type {ol.style.Arrow.RenderOptions} */
+ /** @type {ol.ArrowRenderOptions} */
var renderOptions = {
strokeStyle: strokeStyle,
strokeWidth: strokeWidth,
@@ -387,7 +387,7 @@ ol.style.Arrow.prototype.render_ = function(atlasManager) {
/**
* @private
- * @param {ol.style.Arrow.RenderOptions} renderOptions Render options.
+ * @param {ol.ArrowRenderOptions} renderOptions Render options.
* @param {CanvasRenderingContext2D} context The rendering context.
* @param {number} x The origin for the symbol (x).
* @param {number} y The origin for the symbol (y).
@@ -438,7 +438,7 @@ ol.style.Arrow.prototype.draw_ = function(renderOptions, context, x, y) {
/**
* @private
- * @param {ol.style.Arrow.RenderOptions} renderOptions Render options.
+ * @param {ol.ArrowRenderOptions} renderOptions Render options.
*/
ol.style.Arrow.prototype.createHitDetectionCanvas_ = function(renderOptions) {
this.hitDetectionImageSize_ = [renderOptions.size, renderOptions.size];
@@ -458,7 +458,7 @@ ol.style.Arrow.prototype.createHitDetectionCanvas_ = function(renderOptions) {
/**
* @private
- * @param {ol.style.Arrow.RenderOptions} renderOptions Render options.
+ * @param {ol.ArrowRenderOptions} renderOptions Render options.
* @param {CanvasRenderingContext2D} context The context.
* @param {number} x The origin for the symbol (x).
* @param {number} y The origin for the symbol (y).
diff --git a/web/debug.html b/web/debug.html
index 4331a5e9a..0e9576323 100644
--- a/web/debug.html
+++ b/web/debug.html
@@ -5,8 +5,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>Traccar</title>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/extjs/6.0.1/classic/theme-neptune/resources/theme-neptune-all.css">
-<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/ol3/3.15.1/ol.css">
-<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.1/css/font-awesome.min.css">
+<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/ol3/3.17.1/ol.css">
+<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css">
<link rel="stylesheet" href="app.css">
</head>
<body>
@@ -14,7 +14,7 @@
<div id="attribution">Powered by <a href="https://www.traccar.org/">Traccar GPS Tracking System</a></div>
<script src="//cdnjs.cloudflare.com/ajax/libs/extjs/6.0.1/ext-all-debug.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/extjs/6.0.1/classic/theme-neptune/theme-neptune.js"></script>
-<script src="//cdnjs.cloudflare.com/ajax/libs/ol3/3.15.1/ol-debug.js"></script>
+<script src="//cdnjs.cloudflare.com/ajax/libs/ol3/3.17.1/ol-debug.js"></script>
<script src="arrowstyle.js"></script>
<script type="text/javascript">
Ext.Loader.setConfig({ disableCaching: false });
diff --git a/web/l10n/ar.json b/web/l10n/ar.json
index 578566db4..515b75510 100644
--- a/web/l10n/ar.json
+++ b/web/l10n/ar.json
@@ -1,5 +1,5 @@
{
- "sharedLoading": "جاري التحميل",
+ "sharedLoading": "جاري التحميل...",
"sharedSave": "حفظ",
"sharedCancel": "إلغاء",
"sharedAdd": "إضافة",
@@ -14,8 +14,15 @@
"sharedHour": "ساعه",
"sharedMinute": "دقيقة",
"sharedSecond": "ثانية",
- "sharedName": "Name",
- "sharedSearch": "Search",
+ "sharedName": "الاسم",
+ "sharedDescription": "الوصف",
+ "sharedSearch": "بحث",
+ "sharedGeofence": "السياج الغرافي",
+ "sharedGeofences": "السياجات الجغرافية",
+ "sharedNotifications": "التنبيهات",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "منطقة",
"errorTitle": "خطأ",
"errorUnknown": "خطأ غير معروف",
"errorConnection": "خطأ في الاتصال",
@@ -41,12 +48,12 @@
"groupNoGroup": "No Group",
"settingsTitle": "إعدادات",
"settingsUser": "حساب",
- "settingsGroups": "Groups",
+ "settingsGroups": "المجموعات",
"settingsServer": "خادم",
"settingsUsers": "مستخدم",
"settingsDistanceUnit": "مسافة",
"settingsSpeedUnit": "سرعة",
- "settingsTwelveHourFormat": "12-hour Format",
+ "settingsTwelveHourFormat": "هيئة 12-ساعة",
"reportTitle": "تقارير",
"reportDevice": "جهاز",
"reportFrom": "من",
@@ -73,6 +80,8 @@
"mapBingKey": "مفتاح خرائط Bing",
"mapBingRoad": " خرائط الطرق Bing",
"mapBingAerial": "خرائط جوية Bing",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "حالة",
"stateName": "عنصر",
"stateValue": "قيمة",
@@ -85,5 +94,31 @@
"commandEngineStop": "ايقاف المحرك",
"commandEngineResume": "تشغيل المحرك",
"commandFrequency": "معدل",
- "commandUnit": "وحدة"
+ "commandUnit": "وحدة",
+ "commandCustom": "أمر خاص",
+ "commandPositionSingle": "Single Reporting",
+ "commandAlarmArm": "Arm Alarm",
+ "commandAlarmDisarm": "تعطيل المنبه",
+ "commandSetTimezone": "حدد التوقيت الزمني",
+ "commandRequestPhoto": "اطلب صورة",
+ "commandRebootDevice": "أعد تشغيل الجهاز",
+ "commandSendSms": "Send SMS",
+ "commandSosNumber": "Set SOS Number",
+ "commandSilenceTime": "حدد توقيت الصامت",
+ "commandSetPhonebook": "Set Phonebook",
+ "commandVoiceMessage": "رسالة صوتية",
+ "commandOutputControl": "Output Control",
+ "commandAlarmSpeed": "منبه تعدي السرعة",
+ "commandDeviceIdentification": "تعريف الجهاز",
+ "eventDeviceOnline": "الجهاز متصل",
+ "eventDeviceOffline": "الجهاز غير متصل",
+ "eventDeviceMoving": "الجهاز يتحرك",
+ "eventDeviceStopped": "الجهاز متوقف",
+ "eventDeviceOverspeed": "الجهاز متعدٍّ للسرعة",
+ "eventCommandResult": "نتيجة الأمر",
+ "eventGeofenceEnter": "Device has entered geofence",
+ "eventGeofenceExit": "Device has exited geofence",
+ "notificationType": "نوع الملاحظة",
+ "notificationWeb": "أرسل عن طريق صفحة الويب",
+ "notificationMail": "أرسل عن طريق البريد الإلكتروني"
} \ No newline at end of file
diff --git a/web/l10n/bg.json b/web/l10n/bg.json
index 2c8f51286..ac739a6ec 100644
--- a/web/l10n/bg.json
+++ b/web/l10n/bg.json
@@ -14,34 +14,41 @@
"sharedHour": "Час",
"sharedMinute": "Минута",
"sharedSecond": "Секунда",
- "sharedName": "Name",
- "sharedSearch": "Search",
+ "sharedName": "Име",
+ "sharedDescription": "Description",
+ "sharedSearch": "Търси",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "Грешка",
"errorUnknown": "Непозната Грешка",
"errorConnection": "Грешка във връзката",
"userEmail": "Пощенска кутия",
"userPassword": "Парола",
"userAdmin": "Admin",
- "loginTitle": "Идентификация",
+ "loginTitle": "Вход",
"loginLanguage": "Език",
"loginRegister": "Регистрация",
"loginLogin": "Вход",
"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",
+ "deviceFollow": "Следвай",
+ "groupDialog": "Група",
+ "groupParent": "Група",
+ "groupNoGroup": "Без група",
"settingsTitle": "Настройки",
"settingsUser": "Профил",
- "settingsGroups": "Groups",
+ "settingsGroups": "Групи",
"settingsServer": "Сървър",
"settingsUsers": "Потребител",
"settingsDistanceUnit": "Разстояние",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "Състояние",
"stateName": "Параметър",
"stateValue": "Стойност",
@@ -85,5 +94,31 @@
"commandEngineStop": "Спри Двигател",
"commandEngineResume": "Стартирай Двигател",
"commandFrequency": "Честота",
- "commandUnit": "Обект"
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/cs.json b/web/l10n/cs.json
index dc2cf4462..71448bfb4 100644
--- a/web/l10n/cs.json
+++ b/web/l10n/cs.json
@@ -14,8 +14,15 @@
"sharedHour": "Hodina",
"sharedMinute": "Minuta",
"sharedSecond": "Sekunda",
- "sharedName": "Name",
- "sharedSearch": "Search",
+ "sharedName": "Jméno",
+ "sharedDescription": "Popis",
+ "sharedSearch": "Hledat",
+ "sharedGeofence": "Geografická hranice",
+ "sharedGeofences": "Geografické hranice",
+ "sharedNotifications": "Upozornění",
+ "sharedAttributes": "Atributy",
+ "sharedAttribute": "Atribut",
+ "sharedArea": "Oblast",
"errorTitle": "Chyba",
"errorUnknown": "Neznámá chyba",
"errorConnection": "Chyba spojení",
@@ -36,17 +43,17 @@
"deviceLastUpdate": "Poslední změna",
"deviceCommand": "Příkaz",
"deviceFollow": "Sledovat",
- "groupDialog": "Group",
- "groupParent": "Group",
- "groupNoGroup": "No Group",
+ "groupDialog": "Skupina",
+ "groupParent": "Skupina",
+ "groupNoGroup": "Žádná skupina",
"settingsTitle": "Nastavení",
"settingsUser": "Účet",
- "settingsGroups": "Groups",
+ "settingsGroups": "Skupiny",
"settingsServer": "Server",
"settingsUsers": "Uživatelé",
"settingsDistanceUnit": "Vzdálenost",
"settingsSpeedUnit": "Rychlost",
- "settingsTwelveHourFormat": "12-hour Format",
+ "settingsTwelveHourFormat": "12-hodinový formát",
"reportTitle": "Zpráva",
"reportDevice": "Zařízení",
"reportFrom": "Od",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps klíč",
"mapBingRoad": "Bing Maps cesta",
"mapBingAerial": "Bing Maps anténa",
+ "mapShapePolygon": "Mnohoúhelník",
+ "mapShapeCircle": "Kruh",
"stateTitle": "Stav",
"stateName": "Atribut",
"stateValue": "Hodnota",
@@ -85,5 +94,31 @@
"commandEngineStop": "Zastavit motor",
"commandEngineResume": "Nastartovat motor",
"commandFrequency": "Frekvence",
- "commandUnit": "Jednotka"
+ "commandUnit": "Jednotka",
+ "commandCustom": "Volitelný příkaz",
+ "commandPositionSingle": "Jednotné hlášení",
+ "commandAlarmArm": "Aktivovat alarm",
+ "commandAlarmDisarm": "Deaktivovat alarm",
+ "commandSetTimezone": "Nastavit časovou zónu",
+ "commandRequestPhoto": "Vyžádat fotku",
+ "commandRebootDevice": "Restartovat zařízení",
+ "commandSendSms": "Odeslat SMS",
+ "commandSosNumber": "Nastavit SOS číslo",
+ "commandSilenceTime": "Nastavit čas tichého módu",
+ "commandSetPhonebook": "Nastavit telefonní seznam",
+ "commandVoiceMessage": "Hlasová zpráva",
+ "commandOutputControl": "Ovládání výstupu",
+ "commandAlarmSpeed": "Překročení rychlosti alarmu",
+ "commandDeviceIdentification": "Identifikace zařízení",
+ "eventDeviceOnline": "Zařízení je online",
+ "eventDeviceOffline": "Zařízení je offline",
+ "eventDeviceMoving": "Zařízení s pohybuje",
+ "eventDeviceStopped": "Zařízení se zastavilo",
+ "eventDeviceOverspeed": "Zařízení překračuje rychlost",
+ "eventCommandResult": "Výsledek příkazu",
+ "eventGeofenceEnter": "Zařízení vstoupilo do geografické hranice",
+ "eventGeofenceExit": "Zařízení opustilo geografickou hranici",
+ "notificationType": "Typ oznámení",
+ "notificationWeb": "Odeslat přes web",
+ "notificationMail": "Odeslat přes mail"
} \ No newline at end of file
diff --git a/web/l10n/da.json b/web/l10n/da.json
index c0788fc95..c24aae9c1 100644
--- a/web/l10n/da.json
+++ b/web/l10n/da.json
@@ -8,14 +8,21 @@
"sharedRemoveConfirm": "Fjern enhed?",
"sharedKm": "km",
"sharedMi": "mi",
- "sharedKn": "kn",
+ "sharedKn": "knob",
"sharedKmh": "km/t",
"sharedMph": "mph",
"sharedHour": "Time",
"sharedMinute": "Minut",
"sharedSecond": "Sekund",
- "sharedName": "Name",
- "sharedSearch": "Search",
+ "sharedName": "Navn",
+ "sharedDescription": "Description",
+ "sharedSearch": "Søg",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "Fejl",
"errorUnknown": "Ukendt Fejl",
"errorConnection": "Tilslutning fejl",
@@ -29,24 +36,24 @@
"loginFailed": "Fejl i email adresse eller kodeord",
"loginCreated": "Ny bruger er registreret",
"loginLogout": "Log af",
- "devicesAndState": "Devices and State",
+ "devicesAndState": "Enheder og status",
"deviceDialog": "Enhed",
"deviceTitle": "Enheder",
"deviceIdentifier": "Imei nr",
"deviceLastUpdate": "Seneste opdatering",
"deviceCommand": "Kommando",
"deviceFollow": "Følg",
- "groupDialog": "Group",
- "groupParent": "Group",
- "groupNoGroup": "No Group",
+ "groupDialog": "Gruppe",
+ "groupParent": "Gruppe",
+ "groupNoGroup": "Ingen gruppe",
"settingsTitle": "Indstillinger",
"settingsUser": "Konto",
- "settingsGroups": "Groups",
+ "settingsGroups": "Grupper",
"settingsServer": "Server",
"settingsUsers": "Brugere",
"settingsDistanceUnit": "Distance",
"settingsSpeedUnit": "Hastighed",
- "settingsTwelveHourFormat": "12-hour Format",
+ "settingsTwelveHourFormat": "12 timers format",
"reportTitle": "Rapporter",
"reportDevice": "Enhed",
"reportFrom": "Fra",
@@ -65,7 +72,7 @@
"serverTitle": "Server indstillinger",
"serverZoom": "Zoom",
"serverRegistration": "Registrering",
- "serverReadonly": "Readonly",
+ "serverReadonly": "Læs",
"mapTitle": "Kort",
"mapLayer": "Kort opsætning",
"mapCustom": "Brugerdefineret Kort",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "Status",
"stateName": "Parameter",
"stateValue": "Værdi",
@@ -85,5 +94,31 @@
"commandEngineStop": "Stop motor",
"commandEngineResume": "Genstart motor",
"commandFrequency": "Frekvens",
- "commandUnit": "Enhed"
+ "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",
+ "notificationWeb": "Send via Web",
+ "notificationMail": "Send via Mail"
} \ No newline at end of file
diff --git a/web/l10n/de.json b/web/l10n/de.json
index 5b7da4cd6..d76bf0824 100644
--- a/web/l10n/de.json
+++ b/web/l10n/de.json
@@ -15,7 +15,14 @@
"sharedMinute": "Minute",
"sharedSecond": "Sekunde",
"sharedName": "Name",
+ "sharedDescription": "Beschreibung",
"sharedSearch": "Suchen",
+ "sharedGeofence": "Geo-Zaun",
+ "sharedGeofences": "Geo-Zäune",
+ "sharedNotifications": "Benachrichtigungen",
+ "sharedAttributes": "Eigenschaften",
+ "sharedAttribute": "Eigenschaft",
+ "sharedArea": "Gebiet",
"errorTitle": "Fehler",
"errorUnknown": "Unbekannter Fehler",
"errorConnection": "Verbindungsfehler",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Strassenkarte",
"mapBingAerial": "Bing Luftbilder",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Kreis",
"stateTitle": "Status",
"stateName": "Parameter",
"stateValue": "Wert",
@@ -85,5 +94,31 @@
"commandEngineStop": "Motor Stop",
"commandEngineResume": "Motor Start",
"commandFrequency": "Frequenz",
- "commandUnit": "Einheit"
+ "commandUnit": "Einheit",
+ "commandCustom": "Benutzerdefinierter Befehl",
+ "commandPositionSingle": "Einzelner Bericht",
+ "commandAlarmArm": "Scharf schalten",
+ "commandAlarmDisarm": "Unscharf schalten",
+ "commandSetTimezone": "Zeitzone festlegen",
+ "commandRequestPhoto": "Foto anfordern",
+ "commandRebootDevice": "Gerät neustarten",
+ "commandSendSms": "SMS senden",
+ "commandSosNumber": "SOS-Nummer festlegen",
+ "commandSilenceTime": "Ruhezeit festlegen",
+ "commandSetPhonebook": "Telefonbuch festlegen",
+ "commandVoiceMessage": "Sprachnachricht",
+ "commandOutputControl": "Berichtsteuerung",
+ "commandAlarmSpeed": "Geschwindigkeitsalarm",
+ "commandDeviceIdentification": "Gerätekennung",
+ "eventDeviceOnline": "Gerät ist online",
+ "eventDeviceOffline": "Gerät ist offline",
+ "eventDeviceMoving": "Gerät ist in Bewegung",
+ "eventDeviceStopped": "Gerät hat gestoppt",
+ "eventDeviceOverspeed": "Gerät überschreitet Tempolimit",
+ "eventCommandResult": "Ergrbnis des Befehls",
+ "eventGeofenceEnter": "Gerät hat Geo-Zaun betreten",
+ "eventGeofenceExit": "Gerät hat Geo-Zaun verlassen",
+ "notificationType": "Art der Benachrichtigung ",
+ "notificationWeb": "Per Web senden",
+ "notificationMail": "Per E-Mail senden"
} \ No newline at end of file
diff --git a/web/l10n/el.json b/web/l10n/el.json
index 8a8b6c573..d9dbfcdf0 100644
--- a/web/l10n/el.json
+++ b/web/l10n/el.json
@@ -15,7 +15,14 @@
"sharedMinute": "Λεπτά",
"sharedSecond": "Δευτερόλεπτα",
"sharedName": "Όνομα",
+ "sharedDescription": "Περιγραφή",
"sharedSearch": "Αναζήτηση",
+ "sharedGeofence": "Γεωφράχτης",
+ "sharedGeofences": "Γεωφράχτες",
+ "sharedNotifications": "Ειδοποιήσεις",
+ "sharedAttributes": "Παράμετροι",
+ "sharedAttribute": "Παράμετρος",
+ "sharedArea": "Περιοχή",
"errorTitle": "Σφάλμα",
"errorUnknown": "Άγνωστο σφάλμα",
"errorConnection": "Σφάλμα σύνδεσης",
@@ -73,6 +80,8 @@
"mapBingKey": "Κλειδί Bing Maps",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
+ "mapShapePolygon": "Πολύγωνο",
+ "mapShapeCircle": "Κύκλος",
"stateTitle": "Κατάσταση",
"stateName": "Παράμετρος",
"stateValue": "Τιμή",
@@ -85,5 +94,31 @@
"commandEngineStop": "Κλείσιμο",
"commandEngineResume": "Επανεκκίνηση",
"commandFrequency": "Συχνότητα",
- "commandUnit": "Μονάδα"
+ "commandUnit": "Μονάδα",
+ "commandCustom": "Προσαρμοσμένη εντολή",
+ "commandPositionSingle": "Ενιαία αναφορά",
+ "commandAlarmArm": "Ενεργοποίηση συναγερμού",
+ "commandAlarmDisarm": "Απενεργοποίηση συναγερμού",
+ "commandSetTimezone": "Καθορισμός ζώνης ώρας",
+ "commandRequestPhoto": "Αίτημα για φωτογραφία",
+ "commandRebootDevice": "Επανεκκίνηση συσκευής",
+ "commandSendSms": "Αποστολή γραπτού μηνύματος (SMS)",
+ "commandSosNumber": "Καθορισμός αριθμού SOS",
+ "commandSilenceTime": "Καθορισμός χρόνου σιωπής",
+ "commandSetPhonebook": "Καθορισμός τηλεφωνικού καταλόγου",
+ "commandVoiceMessage": "Φωνητικό μήνυμα",
+ "commandOutputControl": "Output Control",
+ "commandAlarmSpeed": "Υπέρβαση ορίου ταχύτητας",
+ "commandDeviceIdentification": "Αναγνωριστικό συσκευής",
+ "eventDeviceOnline": "Η συσκευή είναι συνδεδεμένη",
+ "eventDeviceOffline": "Η συσκευή είναι αποσυνδεδεμένη",
+ "eventDeviceMoving": "Η συσκευή βρίσκεται σε κίνηση",
+ "eventDeviceStopped": "Η συσκευή έχει σταματήσει",
+ "eventDeviceOverspeed": "Η συσκευή υπερέβει την ταχύτητα",
+ "eventCommandResult": "Αποτέλεσμα εντολής",
+ "eventGeofenceEnter": "Η συσσκευή εισήλθε του γεωφράχτη",
+ "eventGeofenceExit": "Η συσκευή εξήλθε του γεωφράχτη",
+ "notificationType": "Τύπος ειδοποίησης",
+ "notificationWeb": "Αποστολή μέσω διαδικτύου",
+ "notificationMail": "Αποστολή μέσω ηλ. ταχυδρομείου"
} \ No newline at end of file
diff --git a/web/l10n/es.json b/web/l10n/es.json
index e87662239..68cbeae88 100644
--- a/web/l10n/es.json
+++ b/web/l10n/es.json
@@ -8,14 +8,21 @@
"sharedRemoveConfirm": "Borrar Elemento?",
"sharedKm": "KM",
"sharedMi": "MI",
- "sharedKn": "kn",
+ "sharedKn": "Nudo",
"sharedKmh": "KM/H",
"sharedMph": "MPH",
"sharedHour": "Hora",
"sharedMinute": "Minuto",
"sharedSecond": "Segundo",
"sharedName": "Nombre",
+ "sharedDescription": "Description",
"sharedSearch": "Buscar",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "Error",
"errorUnknown": "Error Desconocido",
"errorConnection": "Error de Conexión",
@@ -38,7 +45,7 @@
"deviceFollow": "Seguir",
"groupDialog": "Grupo",
"groupParent": "Grupo",
- "groupNoGroup": "No Group",
+ "groupNoGroup": "Sin grupo",
"settingsTitle": "Preferencias",
"settingsUser": "Cuenta",
"settingsGroups": "Grupos",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps - Carretera",
"mapBingAerial": "Bing Maps - Aéreo",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "Estado",
"stateName": "Parámetro",
"stateValue": "Valor",
@@ -85,5 +94,31 @@
"commandEngineStop": "Apagar motor",
"commandEngineResume": "Desbloquear Encendido de Motor",
"commandFrequency": "Frequencia",
- "commandUnit": "Unidad"
+ "commandUnit": "Unidad",
+ "commandCustom": "Comando personalizado",
+ "commandPositionSingle": "Un report",
+ "commandAlarmArm": "Armar Alarma",
+ "commandAlarmDisarm": "Desarmar Alarma",
+ "commandSetTimezone": "Establecer zona horaria",
+ "commandRequestPhoto": "Solicitar Foto",
+ "commandRebootDevice": "Reiniciar dispositivo",
+ "commandSendSms": "Enviar SMS",
+ "commandSosNumber": "Establecer el número SOS",
+ "commandSilenceTime": "Set Silence Time",
+ "commandSetPhonebook": "Establecer contacto",
+ "commandVoiceMessage": "Mensaje de voz",
+ "commandOutputControl": "Output Control",
+ "commandAlarmSpeed": "Overspeed Alarm",
+ "commandDeviceIdentification": "Device Identification",
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/fa.json b/web/l10n/fa.json
index 3f25c7ea1..66a517f0a 100644
--- a/web/l10n/fa.json
+++ b/web/l10n/fa.json
@@ -1,27 +1,34 @@
{
"sharedLoading": "در حال بارگزارى ...",
"sharedSave": "ذخيره",
- "sharedCancel": "Cancel",
+ "sharedCancel": "انصراف",
"sharedAdd": "اضافه كردن",
- "sharedEdit": "Edit",
- "sharedRemove": "Remove",
- "sharedRemoveConfirm": "Remove item?",
- "sharedKm": "km",
- "sharedMi": "mi",
+ "sharedEdit": "ویرایش",
+ "sharedRemove": "پاک کردن",
+ "sharedRemoveConfirm": "پاک کردن آیتم",
+ "sharedKm": "کیلومتر",
+ "sharedMi": "مایل",
"sharedKn": "kn",
- "sharedKmh": "km/h",
- "sharedMph": "mph",
- "sharedHour": "Hour",
+ "sharedKmh": "کیلومتر بر ساعت",
+ "sharedMph": "مایل بر ساعت",
+ "sharedHour": "ساعت",
"sharedMinute": "دقيقه",
"sharedSecond": "ثانيه",
- "sharedName": "Name",
- "sharedSearch": "Search",
- "errorTitle": "Error",
- "errorUnknown": "Unknown error",
- "errorConnection": "Connection error",
+ "sharedName": "نام",
+ "sharedDescription": "توضیحات",
+ "sharedSearch": "جستجو",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
+ "errorTitle": "خطا",
+ "errorUnknown": "خطا ناشناخته",
+ "errorConnection": "خطا در اتصال",
"userEmail": "نام كاربرى ( ايميل )",
"userPassword": "گذرواژه",
- "userAdmin": "Admin",
+ "userAdmin": "مدیر",
"loginTitle": "ورود",
"loginLanguage": "انتخاب زبان",
"loginRegister": "ثبت نام",
@@ -29,61 +36,89 @@
"loginFailed": "نام كاربرى ( ايميل ) يا گذرواژه اشتباه است",
"loginCreated": "ثبت نام با موفقيت انجام شد",
"loginLogout": "خروج",
- "devicesAndState": "Devices and State",
+ "devicesAndState": "دستگاه ها و وضعیت",
"deviceDialog": "دستگاه",
"deviceTitle": "دستگاه ها",
"deviceIdentifier": "سريال دستگاه",
"deviceLastUpdate": "آخرين بروزرسانى",
- "deviceCommand": "Command",
- "deviceFollow": "Follow",
- "groupDialog": "Group",
- "groupParent": "Group",
- "groupNoGroup": "No Group",
+ "deviceCommand": "فرمان",
+ "deviceFollow": "تعقیب",
+ "groupDialog": "گروه",
+ "groupParent": "گروه",
+ "groupNoGroup": "بدون گروه",
"settingsTitle": "تنظيمات",
"settingsUser": "حساب كاربرى",
- "settingsGroups": "Groups",
- "settingsServer": "Server",
- "settingsUsers": "Users",
- "settingsDistanceUnit": "Distance",
+ "settingsGroups": "گروه ها",
+ "settingsServer": "سرور",
+ "settingsUsers": "کاربر",
+ "settingsDistanceUnit": "فاصله",
"settingsSpeedUnit": "سرعت",
- "settingsTwelveHourFormat": "12-hour Format",
+ "settingsTwelveHourFormat": "فرمت 12 ساعتی",
"reportTitle": "گزارشات ",
"reportDevice": "دستگاه",
"reportFrom": "از",
- "reportTo": "To",
- "reportShow": "Show",
- "reportClear": "Clear",
- "positionFixTime": "Time",
- "positionValid": "Valid",
+ "reportTo": "تا",
+ "reportShow": "نمایش",
+ "reportClear": "خالی کردن",
+ "positionFixTime": "زمان",
+ "positionValid": "معتبر",
"positionLatitude": "عرض جغرافيايى",
"positionLongitude": "طول جغرافيايى",
- "positionAltitude": "Altitude",
+ "positionAltitude": "ارتفاع",
"positionSpeed": "سرعت",
- "positionCourse": "Course",
- "positionAddress": "Address",
- "positionProtocol": "Protocol",
- "serverTitle": "Server Settings",
- "serverZoom": "Zoom",
- "serverRegistration": "Registration",
- "serverReadonly": "Readonly",
- "mapTitle": "Map",
- "mapLayer": "Map Layer",
- "mapCustom": "Custom Map",
+ "positionCourse": "دوره",
+ "positionAddress": "آدرس",
+ "positionProtocol": "پروتوکل",
+ "serverTitle": "تنظیمات سرور",
+ "serverZoom": "بزرگنمایی",
+ "serverRegistration": "ثبت نام",
+ "serverReadonly": "فقط خواندنی",
+ "mapTitle": "نقشه",
+ "mapLayer": "لایه های نقشه",
+ "mapCustom": "نقشه سفارشی",
"mapOsm": "Open Street Map",
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
- "stateTitle": "State",
- "stateName": "Attribute",
- "stateValue": "Value",
- "commandTitle": "Command",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
+ "stateTitle": "وضعیت",
+ "stateName": "ویژگی",
+ "stateValue": "مقدار",
+ "commandTitle": "فرمان",
"commandSend": "ارسال",
- "commandType": "Type",
- "commandSent": "Command has been sent",
+ "commandType": "نوع",
+ "commandSent": "دستور ارسال گردید",
"commandPositionPeriodic": "Periodic Reporting",
"commandPositionStop": "Stop Reporting",
"commandEngineStop": "Engine Stop",
"commandEngineResume": "Engine Resume",
- "commandFrequency": "Frequency",
- "commandUnit": "Unit"
+ "commandFrequency": "فرکانس",
+ "commandUnit": "واحد",
+ "commandCustom": "Custom command",
+ "commandPositionSingle": "Single Reporting",
+ "commandAlarmArm": "Arm Alarm",
+ "commandAlarmDisarm": "Disarm Alarm",
+ "commandSetTimezone": "Set Timezone",
+ "commandRequestPhoto": "Request Photo",
+ "commandRebootDevice": "Reboot Device",
+ "commandSendSms": "ارسال پیام کوتاه",
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/fi.json b/web/l10n/fi.json
index 907f6f2df..2c02e0cf5 100644
--- a/web/l10n/fi.json
+++ b/web/l10n/fi.json
@@ -15,7 +15,14 @@
"sharedMinute": "Minuutti",
"sharedSecond": "Sekunti",
"sharedName": "Name",
+ "sharedDescription": "Description",
"sharedSearch": "Search",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "Virhe",
"errorUnknown": "Tuntematon virhe",
"errorConnection": "Yhteysvirhe",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps avain",
"mapBingRoad": "Bign Maps tiet",
"mapBingAerial": "Bing Maps ilmakuva",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "Tila",
"stateName": "Ominaisuus",
"stateValue": "Arvo",
@@ -85,5 +94,31 @@
"commandEngineStop": "Sammuta moottori",
"commandEngineResume": "Palauta moottori",
"commandFrequency": "Taajuus",
- "commandUnit": "Yksikkö"
+ "commandUnit": "Yksikkö",
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/fr.json b/web/l10n/fr.json
index 706982396..5111fb952 100644
--- a/web/l10n/fr.json
+++ b/web/l10n/fr.json
@@ -5,20 +5,27 @@
"sharedAdd": "Ajouter",
"sharedEdit": "Editer",
"sharedRemove": "Effacer",
- "sharedRemoveConfirm": "Effacer item?",
+ "sharedRemoveConfirm": "Effacer objet?",
"sharedKm": "km",
"sharedMi": "mi",
- "sharedKn": "kn",
+ "sharedKn": "nd",
"sharedKmh": "km/h",
"sharedMph": "mph",
"sharedHour": "Heure",
"sharedMinute": "Minute",
"sharedSecond": "Seconde",
"sharedName": "Nom",
+ "sharedDescription": "Description",
"sharedSearch": "Recherche",
+ "sharedGeofence": "Périmètre virtuel",
+ "sharedGeofences": "Périmètres virtuels",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributs",
+ "sharedAttribute": "Attribut",
+ "sharedArea": "Aire",
"errorTitle": "Erreur",
"errorUnknown": "Erreur inconnue",
- "errorConnection": "erreur de connection",
+ "errorConnection": "Erreur de connexion",
"userEmail": "Email",
"userPassword": "Mot de Passe",
"userAdmin": "Admin",
@@ -28,7 +35,7 @@
"loginLogin": "Se connecter",
"loginFailed": "Adresse email ou mot de passe incorrect",
"loginCreated": "Nouvel utilisateur enregistré",
- "loginLogout": "Déconnection",
+ "loginLogout": "Déconnexion",
"devicesAndState": "Dispositifs et Etat",
"deviceDialog": "Dispositif",
"deviceTitle": "Dispositifs",
@@ -38,8 +45,8 @@
"deviceFollow": "Suivre",
"groupDialog": "Groupe",
"groupParent": "Groupe",
- "groupNoGroup": "No Group",
- "settingsTitle": "Configurations",
+ "groupNoGroup": "Sans groupe",
+ "settingsTitle": "Paramètres",
"settingsUser": "Compte",
"settingsGroups": "Groupes",
"settingsServer": "Serveur",
@@ -59,20 +66,22 @@
"positionLongitude": "Longitude",
"positionAltitude": "Altitude",
"positionSpeed": "Vitesse",
- "positionCourse": "Cap",
+ "positionCourse": "Orientation",
"positionAddress": "Adresse",
"positionProtocol": "Protocole",
- "serverTitle": "Configurations du serveur",
+ "serverTitle": "Paramètres de serveur",
"serverZoom": "Zoom",
"serverRegistration": "Inscription",
"serverReadonly": "Lecture seule",
"mapTitle": "Carte",
- "mapLayer": "Cartes",
+ "mapLayer": "Couche cartographique",
"mapCustom": "Carte personnalisée",
"mapOsm": "Open Street Map",
"mapBingKey": "Bing Map Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
+ "mapShapePolygon": "Polygone",
+ "mapShapeCircle": "Cercle",
"stateTitle": "Etat",
"stateName": "Paramètre",
"stateValue": "Valeur",
@@ -82,8 +91,34 @@
"commandSent": "Commande envoyée",
"commandPositionPeriodic": "Périodicité du rapport de position",
"commandPositionStop": "Arrêt du rapport de position",
- "commandEngineStop": "Moteur arrêter",
- "commandEngineResume": "Moteur démarrer",
+ "commandEngineStop": "Arrêt moteur",
+ "commandEngineResume": "Démarrage moteur",
"commandFrequency": "Fréquence",
- "commandUnit": "Unité"
+ "commandUnit": "Unité",
+ "commandCustom": "Commande personnalisée",
+ "commandPositionSingle": "Rapport de position unique",
+ "commandAlarmArm": "Activer l'alarme",
+ "commandAlarmDisarm": "Désactiver l'alarme",
+ "commandSetTimezone": "Régler le fuseau horaire",
+ "commandRequestPhoto": "Demander une photo",
+ "commandRebootDevice": "Redémarrer l'appareil",
+ "commandSendSms": "Envoyer un SMS",
+ "commandSosNumber": "Régler le n° SOS",
+ "commandSilenceTime": "Set Silence Time",
+ "commandSetPhonebook": "Set Phonebook",
+ "commandVoiceMessage": "Message vocal",
+ "commandOutputControl": "Output Control",
+ "commandAlarmSpeed": "Overspeed Alarm",
+ "commandDeviceIdentification": "Device Identification",
+ "eventDeviceOnline": "L'appareil est en ligne",
+ "eventDeviceOffline": "L'appareil est hors-ligne",
+ "eventDeviceMoving": "L'appareil est en mouvement",
+ "eventDeviceStopped": "L'appareil est arrêté",
+ "eventDeviceOverspeed": "L'appareil dépasse la vitesse",
+ "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",
+ "notificationType": "Type de notification",
+ "notificationWeb": "Envoyer par internet",
+ "notificationMail": "Envoyer par E-mail"
} \ No newline at end of file
diff --git a/web/l10n/he.json b/web/l10n/he.json
index 54bf95a41..175848af1 100644
--- a/web/l10n/he.json
+++ b/web/l10n/he.json
@@ -15,7 +15,14 @@
"sharedMinute": "דקה",
"sharedSecond": "שנייה",
"sharedName": "שם",
+ "sharedDescription": "Description",
"sharedSearch": "חיפוש",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "שגיאה",
"errorUnknown": "שגיאה לא ידועה",
"errorConnection": "בעייה בחיבור",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "מצב",
"stateName": "תכונה",
"stateValue": "ערך",
@@ -85,5 +94,31 @@
"commandEngineStop": "דומם מנוע",
"commandEngineResume": "הפעל מנוע",
"commandFrequency": "תדירות",
- "commandUnit": "יחידה"
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/hu.json b/web/l10n/hu.json
index d407920f1..2d8ba9976 100644
--- a/web/l10n/hu.json
+++ b/web/l10n/hu.json
@@ -15,7 +15,14 @@
"sharedMinute": "Perc",
"sharedSecond": "Másodperc",
"sharedName": "Név",
+ "sharedDescription": "Leírás",
"sharedSearch": "Keresés",
+ "sharedGeofence": "Geokerítés",
+ "sharedGeofences": "Geokerítések",
+ "sharedNotifications": "Értesítések",
+ "sharedAttributes": "Tulajdonságok",
+ "sharedAttribute": "Tulajdonság",
+ "sharedArea": "Terület",
"errorTitle": "Hiba",
"errorUnknown": "Ismeretlen hiba",
"errorConnection": "Kapcsolódási hiba",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps kulcs",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
+ "mapShapePolygon": "Poligon",
+ "mapShapeCircle": "Kör",
"stateTitle": "Helyzet",
"stateName": "Paraméter",
"stateValue": "Érték",
@@ -85,5 +94,31 @@
"commandEngineStop": "Motor letiltás",
"commandEngineResume": "Motor engedélyezés",
"commandFrequency": "Frekvencia",
- "commandUnit": "Egység"
+ "commandUnit": "Egység",
+ "commandCustom": "Egyedi parancs",
+ "commandPositionSingle": "Egyszeri jelentés",
+ "commandAlarmArm": "Riasztó élesítés",
+ "commandAlarmDisarm": "Riasztó kikapcsolás",
+ "commandSetTimezone": "Időzóna beállítás",
+ "commandRequestPhoto": "Kép lekérés",
+ "commandRebootDevice": "Eszköz újraindítása",
+ "commandSendSms": "SMS küldés",
+ "commandSosNumber": "SOS szám beállítás",
+ "commandSilenceTime": "Csendes idő beállítás",
+ "commandSetPhonebook": "Telefonkönyv beállítás",
+ "commandVoiceMessage": "Hangüzenet",
+ "commandOutputControl": "Kimenet Ellenőrzés",
+ "commandAlarmSpeed": "Riasztás Gyorshajtásról",
+ "commandDeviceIdentification": "Eszköz azonosító",
+ "eventDeviceOnline": "Eszköz online",
+ "eventDeviceOffline": "Eszköz offline",
+ "eventDeviceMoving": "Eszköz mozog",
+ "eventDeviceStopped": "Eszköz megállt",
+ "eventDeviceOverspeed": "Eszköz túllépte a sebességkorlátot",
+ "eventCommandResult": "Parancs eredmény",
+ "eventGeofenceEnter": "Eszköz belépett a geokerítésbe",
+ "eventGeofenceExit": "Eszköz kilépett a geokerítésből",
+ "notificationType": "Értesítés Típusa",
+ "notificationWeb": "Küldés Weben",
+ "notificationMail": "Küldés E-mailben"
} \ No newline at end of file
diff --git a/web/l10n/id.json b/web/l10n/id.json
index 06f93f15b..d0f03009e 100644
--- a/web/l10n/id.json
+++ b/web/l10n/id.json
@@ -15,7 +15,14 @@
"sharedMinute": "Menit",
"sharedSecond": "Detik",
"sharedName": "Nama",
+ "sharedDescription": "Description",
"sharedSearch": "Cari",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "Error",
"errorUnknown": "Error tidak diketahui",
"errorConnection": "Koneksi error",
@@ -73,6 +80,8 @@
"mapBingKey": "Key untuk Peta Bing",
"mapBingRoad": "Peta Jalan Bing",
"mapBingAerial": "Peta Udara Bing",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "Status",
"stateName": "atribut",
"stateValue": "Nilai",
@@ -85,5 +94,31 @@
"commandEngineStop": "Stop Mesin",
"commandEngineResume": "Mulai Mesin",
"commandFrequency": "Frekuensi",
- "commandUnit": "unit"
+ "commandUnit": "unit",
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/it.json b/web/l10n/it.json
index 12a9784ae..b2d9104c7 100644
--- a/web/l10n/it.json
+++ b/web/l10n/it.json
@@ -15,7 +15,14 @@
"sharedMinute": "Minuto",
"sharedSecond": "Secondo",
"sharedName": "Nome",
+ "sharedDescription": "Descrizione",
"sharedSearch": "Cerca",
+ "sharedGeofence": "GeoRecinto",
+ "sharedGeofences": "GeoRecinto",
+ "sharedNotifications": "Notifiche",
+ "sharedAttributes": "Attributi",
+ "sharedAttribute": "Attributo",
+ "sharedArea": "Area",
"errorTitle": "Errore",
"errorUnknown": "Errore sconosciuto",
"errorConnection": "Errore di connessione",
@@ -38,7 +45,7 @@
"deviceFollow": "Segui",
"groupDialog": "Gruppo",
"groupParent": "Gruppo",
- "groupNoGroup": "No Group",
+ "groupNoGroup": "Nessun Gruppo",
"settingsTitle": "Impostazioni",
"settingsUser": "Account",
"settingsGroups": "Gruppi",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
+ "mapShapePolygon": "Poligono",
+ "mapShapeCircle": "Cerchio",
"stateTitle": "Stato",
"stateName": "Attributo",
"stateValue": "Valore",
@@ -85,5 +94,31 @@
"commandEngineStop": "Ferma Engine",
"commandEngineResume": "Riavvio Engine",
"commandFrequency": "Frequenza",
- "commandUnit": "Unità "
+ "commandUnit": "Unità ",
+ "commandCustom": "Comando personalizzato",
+ "commandPositionSingle": "Report singolo",
+ "commandAlarmArm": "Attiva allarme",
+ "commandAlarmDisarm": "Disattiva Allarme",
+ "commandSetTimezone": "Imposta Timezone",
+ "commandRequestPhoto": "Richiedi foto",
+ "commandRebootDevice": "Riavvia dispositivo",
+ "commandSendSms": "Invia SMS",
+ "commandSosNumber": "Imposta Numero SOS",
+ "commandSilenceTime": "Imposta Orario Silenzione",
+ "commandSetPhonebook": "Imposta rubrica",
+ "commandVoiceMessage": "Messaggio vocale",
+ "commandOutputControl": "Output Control",
+ "commandAlarmSpeed": "Overspeed Alarm",
+ "commandDeviceIdentification": "Device Identification",
+ "eventDeviceOnline": "Dispositivo online",
+ "eventDeviceOffline": "Dispositivo offline",
+ "eventDeviceMoving": "Dispositivo in movimento",
+ "eventDeviceStopped": "Dispositivo fermo",
+ "eventDeviceOverspeed": "Dispostivo troppo veloce",
+ "eventCommandResult": "Risultato comando",
+ "eventGeofenceEnter": "Il dipositivo e` entrato nel GeoRecinto",
+ "eventGeofenceExit": "Il dipositivo e` uscito dal GeoRecinto",
+ "notificationType": "Tipo notica",
+ "notificationWeb": "Invia tramite Web",
+ "notificationMail": "Invia tramite Mail"
} \ No newline at end of file
diff --git a/web/l10n/ka.json b/web/l10n/ka.json
index a4c5f41b3..0c789b582 100644
--- a/web/l10n/ka.json
+++ b/web/l10n/ka.json
@@ -15,7 +15,14 @@
"sharedMinute": "წუთი",
"sharedSecond": "წამი",
"sharedName": "დასახელება",
+ "sharedDescription": "Description",
"sharedSearch": "ძებნა",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "შეცდომა",
"errorUnknown": "უცნობი შეცდომა",
"errorConnection": "კავშირის შეცდომა",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "სტატუსი",
"stateName": "ატრიბუტი",
"stateValue": "მნიშვნელობა",
@@ -85,5 +94,31 @@
"commandEngineStop": "ძრავის გამორთვა",
"commandEngineResume": "ძრავის ჩართვა",
"commandFrequency": "სიხშირე",
- "commandUnit": "ერთეული"
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/lo.json b/web/l10n/lo.json
index 7f7cc0019..10e9bf226 100644
--- a/web/l10n/lo.json
+++ b/web/l10n/lo.json
@@ -15,7 +15,14 @@
"sharedMinute": "ນາທີ",
"sharedSecond": "ວິນາທີ",
"sharedName": "ຊື່",
+ "sharedDescription": "Description",
"sharedSearch": "ຄົ້ນຫາ",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "ຂໍ້ຜິດພາດ",
"errorUnknown": "ຂໍ້ຜິດພາດທີ່ບໍ່ຮູ້ຈັກ",
"errorConnection": "ການເຊື່ອມຕໍ່ຜິດພາດ",
@@ -73,6 +80,8 @@
"mapBingKey": "ບິງສະຕຣີດແມັບ",
"mapBingRoad": "ບິງແມັບໂຣດ",
"mapBingAerial": "ບິງແມັບອາຣີໂອ",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "ແຂວງ",
"stateName": "ຄຸນລັກສະນະ",
"stateValue": "ຄ່າ",
@@ -85,5 +94,31 @@
"commandEngineStop": "ເຄື່ອງຍົນຢຸດ",
"commandEngineResume": "ເຄື່ອງຍົນເລີ່ມກັບຄືນໃຊ້ງານ",
"commandFrequency": "ຄວາມຖີ່",
- "commandUnit": "ຫນ່ວຍ"
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/lt.json b/web/l10n/lt.json
index 904e33827..7e35f2f63 100644
--- a/web/l10n/lt.json
+++ b/web/l10n/lt.json
@@ -8,14 +8,21 @@
"sharedRemoveConfirm": "Ar tikrais norite ištrinti?",
"sharedKm": "km",
"sharedMi": "mi",
- "sharedKn": "kn",
+ "sharedKn": "mazgai",
"sharedKmh": "km/h",
"sharedMph": "mph",
"sharedHour": "Valanda(-os)",
"sharedMinute": "Minutė(-es)",
"sharedSecond": "Sekundė(-es)",
- "sharedName": "Name",
- "sharedSearch": "Search",
+ "sharedName": "Pavadinimas",
+ "sharedDescription": "Description",
+ "sharedSearch": "Paieška",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "Klaida",
"errorUnknown": "Nenumatyta klaida",
"errorConnection": "Ryšio klaida",
@@ -27,7 +34,7 @@
"loginRegister": "Registruotis",
"loginLogin": "Prisijungti",
"loginFailed": "Neteisingas el.paštas ir/ar slaptažodis",
- "loginCreated": "Registracija sėmkinga",
+ "loginCreated": "Registracija sėkminga",
"loginLogout": "Atsijungti",
"devicesAndState": "Prietaisai ir Statusas",
"deviceDialog": "Prietaisas",
@@ -36,17 +43,17 @@
"deviceLastUpdate": "Naujausias atnaujinimas",
"deviceCommand": "Komanda",
"deviceFollow": "Sekti",
- "groupDialog": "Group",
- "groupParent": "Group",
- "groupNoGroup": "No Group",
+ "groupDialog": "Grupė",
+ "groupParent": "Grupė",
+ "groupNoGroup": "Nenurodyta grupė",
"settingsTitle": "Nustatymai",
"settingsUser": "Paskyra",
- "settingsGroups": "Groups",
+ "settingsGroups": "Grupės",
"settingsServer": "Serveris",
"settingsUsers": "Vartotojai",
"settingsDistanceUnit": "Atstumas",
"settingsSpeedUnit": "Greitis",
- "settingsTwelveHourFormat": "12-hour Format",
+ "settingsTwelveHourFormat": "12-val formatas",
"reportTitle": "Ataskaita",
"reportDevice": "Prietaisas",
"reportFrom": "Nuo",
@@ -54,7 +61,7 @@
"reportShow": "Rodyti",
"reportClear": "Valyti",
"positionFixTime": "Laikas",
- "positionValid": "Galimas",
+ "positionValid": "Galiojantis",
"positionLatitude": "Platuma",
"positionLongitude": "Ilguma",
"positionAltitude": "Aukštis",
@@ -65,25 +72,53 @@
"serverTitle": "Serverio nustatymai",
"serverZoom": "Priartinimas",
"serverRegistration": "Registracija",
- "serverReadonly": "Tik skaityti",
+ "serverReadonly": "Skaitymo",
"mapTitle": "Žemėlapis",
"mapLayer": "Žemėlapio sluoksnis",
"mapCustom": "Pasirinktinis Žemėlapis",
- "mapOsm": "Open Street Map",
+ "mapOsm": "Open Street žemėlapis",
"mapBingKey": "Bing Maps raktas",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
- "stateTitle": "Statusas",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
+ "stateTitle": "Būklė",
"stateName": "Parametras",
"stateValue": "Reikšmė",
"commandTitle": "Komanda",
- "commandSend": "Siūsti",
+ "commandSend": "Siųsti",
"commandType": "Tipas",
- "commandSent": "Komanda buvo išsiųstas",
- "commandPositionPeriodic": "Periodinis reportavimas",
- "commandPositionStop": "Stabdyti reportavimą",
+ "commandSent": "Komanda buvo išsiųsta",
+ "commandPositionPeriodic": "Periodinės ataskaitos",
+ "commandPositionStop": "Stabdyti ataskaitas",
"commandEngineStop": "Stabdyti variklį",
"commandEngineResume": "Paleisti variklį",
"commandFrequency": "Dažnis",
- "commandUnit": "Vienetai"
+ "commandUnit": "Vienetai",
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/ml.json b/web/l10n/ml.json
index d7566cf82..ad2689210 100644
--- a/web/l10n/ml.json
+++ b/web/l10n/ml.json
@@ -1,38 +1,45 @@
{
"sharedLoading": "ലോഡുചെയ്യുന്നു ..",
- "sharedSave": "Save",
+ "sharedSave": "രക്ഷിക്കും",
"sharedCancel": "റദ്ദാക്കുക",
"sharedAdd": "ചേര്‍ക്കുക",
"sharedEdit": "തിരുത്തുക",
"sharedRemove": "നീക്കം ചെയ്യുക",
"sharedRemoveConfirm": "വിഷയം നീക്കം ചെയ്യുക",
"sharedKm": "കിലോമീറ്റർ",
- "sharedMi": "mi",
- "sharedKn": "kn",
+ "sharedMi": "നാഴിക",
+ "sharedKn": "കുരുക്ക്",
"sharedKmh": "കിലോമീറ്റർ / മണിക്കൂർ",
- "sharedMph": "mph",
+ "sharedMph": "മണിക്കൂറിൽ മൈൽ",
"sharedHour": "മണിക്കൂര്",
"sharedMinute": "മിനിറ്റ്",
"sharedSecond": "സെക്കന്റ്",
- "sharedName": "Name",
- "sharedSearch": "Search",
+ "sharedName": "പേര്\n",
+ "sharedDescription": "വിവരണം",
+ "sharedSearch": "തിരയൽ",
+ "sharedGeofence": "എർത്ത് വേലി",
+ "sharedGeofences": "ശില്പ്പശാല എർത്ത്",
+ "sharedNotifications": "അറിയിപ്പുകൾ",
+ "sharedAttributes": "ഗുണവിശേഷങ്ങൾ",
+ "sharedAttribute": "ഗുണവിശേഷങ്ങ",
+ "sharedArea": "പ്രദേശം",
"errorTitle": "പിശക്‌",
"errorUnknown": "അജ്ഞാത പിശക്",
"errorConnection": "കണക്ഷൻ പിശക്",
"userEmail": "ഇമെയിൽ",
"userPassword": "രഹസ്യ കോഡ്‌",
- "userAdmin": "Admin",
+ "userAdmin": "നിർവാജി ",
"loginTitle": "അകത്തു പ്രവേശിക്കുക",
"loginLanguage": "ഭാഷ",
- "loginRegister": "Register",
+ "loginRegister": "രെജിസ്റ്റർ ",
"loginLogin": "അകത്തു പ്രവേശിക്കുക",
"loginFailed": "തെറ്റായ ഇമെയിൽ വിലാസവും പാസ്വേഡും",
"loginCreated": "പുതിയ ഉപയോക്താവ് രജിസ്റ്റർ ചെയ്തു",
"loginLogout": "പുറത്തുകടക്കുക",
- "devicesAndState": "Devices and State",
+ "devicesAndState": "സാധനങ്ങളിന് നില ",
"deviceDialog": "ഉപകരണം",
- "deviceTitle": "Devices",
- "deviceIdentifier": "Identifier",
+ "deviceTitle": "സാധനങ്ങളിന് ",
+ "deviceIdentifier": "ഐഡന്റിഫയർ",
"deviceLastUpdate": "Last Update",
"deviceCommand": "Command",
"deviceFollow": "Follow",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "State",
"stateName": "Attribute",
"stateValue": "Value",
@@ -85,5 +94,31 @@
"commandEngineStop": "Engine Stop",
"commandEngineResume": "Engine Resume",
"commandFrequency": "Frequency",
- "commandUnit": "Unit"
+ "commandUnit": "Unit",
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/ms.json b/web/l10n/ms.json
index f68ebc019..c241deee7 100644
--- a/web/l10n/ms.json
+++ b/web/l10n/ms.json
@@ -15,7 +15,14 @@
"sharedMinute": "Minit",
"sharedSecond": "Saat",
"sharedName": "Name",
+ "sharedDescription": "Description",
"sharedSearch": "Search",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "Ralat",
"errorUnknown": "Ralat tidak diketahui",
"errorConnection": "Ralat penyambungan",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "Negeri",
"stateName": "Atribut",
"stateValue": "Nilai",
@@ -85,5 +94,31 @@
"commandEngineStop": "Matikan Enjin",
"commandEngineResume": "Hidupkan Enjin",
"commandFrequency": "Frekuensi",
- "commandUnit": "Unit"
+ "commandUnit": "Unit",
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/nb.json b/web/l10n/nb.json
index b82cd44bf..d5ff90186 100644
--- a/web/l10n/nb.json
+++ b/web/l10n/nb.json
@@ -15,7 +15,14 @@
"sharedMinute": "Minutt",
"sharedSecond": "Sekund",
"sharedName": "Navn",
+ "sharedDescription": "Description",
"sharedSearch": "Søk",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "Feil",
"errorUnknown": "Ukjent feil",
"errorConnection": "Forbindelse feilet",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps-nøkkel",
"mapBingRoad": "Bing Maps-veg",
"mapBingAerial": "Bing Maps-flyfoto",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "Status",
"stateName": "Egenskap",
"stateValue": "Verdi",
@@ -85,5 +94,31 @@
"commandEngineStop": "Stopp motor",
"commandEngineResume": "Fortsett motor",
"commandFrequency": "Frekvens",
- "commandUnit": "Enhet"
+ "commandUnit": "Enhet",
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/ne.json b/web/l10n/ne.json
index 64794d424..7e3211949 100644
--- a/web/l10n/ne.json
+++ b/web/l10n/ne.json
@@ -15,7 +15,14 @@
"sharedMinute": "मिनेट ",
"sharedSecond": "सेकेन्ड ",
"sharedName": "Name",
+ "sharedDescription": "Description",
"sharedSearch": "Search",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "त्रुटी",
"errorUnknown": "अज्ञात त्रुटी ",
"errorConnection": "जडान मा त्रुटी भयो ",
@@ -73,6 +80,8 @@
"mapBingKey": "बिंग नक्शाको चाबी (कि) ",
"mapBingRoad": "बिंग नक्शा (सडक)",
"mapBingAerial": "बिंग नक्शा (एरियल)",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "अवस्था ",
"stateName": "गुण ",
"stateValue": "मूल्य ",
@@ -85,5 +94,31 @@
"commandEngineStop": "इन्जिन बन्द गर्ने ",
"commandEngineResume": "इन्जिन खोल्ने ",
"commandFrequency": "आव्रती ",
- "commandUnit": "इकाई "
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/nl.json b/web/l10n/nl.json
index 6ef791821..1b23b288a 100644
--- a/web/l10n/nl.json
+++ b/web/l10n/nl.json
@@ -15,7 +15,14 @@
"sharedMinute": "Minuut",
"sharedSecond": "Seconde",
"sharedName": "Naam",
+ "sharedDescription": "Omschrijving",
"sharedSearch": "Zoeken",
+ "sharedGeofence": "Geografisch gebied",
+ "sharedGeofences": "Gegrafische gebieden",
+ "sharedNotifications": "Melding",
+ "sharedAttributes": "Attributen",
+ "sharedAttribute": "Attribuut",
+ "sharedArea": "Gebied",
"errorTitle": "Fout",
"errorUnknown": "Onbekende fout",
"errorConnection": "Verbindingsfout",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps sleutel",
"mapBingRoad": "Bing Maps Wegen",
"mapBingAerial": "Bing Maps Luchtfoto",
+ "mapShapePolygon": "Polygoon",
+ "mapShapeCircle": "Cirkel",
"stateTitle": "Status",
"stateName": "Parameter",
"stateValue": "Waarde",
@@ -85,5 +94,31 @@
"commandEngineStop": "Motor Stoppen",
"commandEngineResume": "Motor Hervatten",
"commandFrequency": "Frequentie",
- "commandUnit": "Eenheid"
+ "commandUnit": "Eenheid",
+ "commandCustom": "Custom commando",
+ "commandPositionSingle": "Enkel commando",
+ "commandAlarmArm": "Schakel alarm in",
+ "commandAlarmDisarm": "Schakel alarm uit",
+ "commandSetTimezone": "Stel tijdzone in",
+ "commandRequestPhoto": "Vraag foto",
+ "commandRebootDevice": "Herstart apparaat",
+ "commandSendSms": "Stuur SMS",
+ "commandSosNumber": "Bewerk SOS nummer in",
+ "commandSilenceTime": "Bewerk stille tijd",
+ "commandSetPhonebook": "Bewerk telefoonboek",
+ "commandVoiceMessage": "Spraak bericht",
+ "commandOutputControl": "Output control",
+ "commandAlarmSpeed": "Hoge snelheid alarm",
+ "commandDeviceIdentification": "Apparaat indentificeren",
+ "eventDeviceOnline": "Apparaat is online",
+ "eventDeviceOffline": "Apparaat is offline",
+ "eventDeviceMoving": "Apparaat beweegt",
+ "eventDeviceStopped": "Apparaat is gestopt",
+ "eventDeviceOverspeed": "Apparaat overschrijdt snelheid",
+ "eventCommandResult": "Commando resultaat",
+ "eventGeofenceEnter": "Appraat is binnen geografisch gebied",
+ "eventGeofenceExit": "Apparaat verlaat geografisch gebied",
+ "notificationType": "Type notificatie",
+ "notificationWeb": "Stuur via web",
+ "notificationMail": "Stuur via mail"
} \ No newline at end of file
diff --git a/web/l10n/nn.json b/web/l10n/nn.json
index 7444538c1..2fe357e3d 100644
--- a/web/l10n/nn.json
+++ b/web/l10n/nn.json
@@ -15,7 +15,14 @@
"sharedMinute": "Minutt",
"sharedSecond": "Sekund",
"sharedName": "Namn",
+ "sharedDescription": "Description",
"sharedSearch": "Søk",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "Feil",
"errorUnknown": "Ukjent feil",
"errorConnection": "Forbindelse feila",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps-nøkkel",
"mapBingRoad": "Bing Maps-veg",
"mapBingAerial": "Bing Maps-flyfoto",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "Status",
"stateName": "Eigenskap",
"stateValue": "Verdi",
@@ -85,5 +94,31 @@
"commandEngineStop": "Stopp motor",
"commandEngineResume": "Fortsett motor",
"commandFrequency": "Frekvens",
- "commandUnit": "Eining"
+ "commandUnit": "Eining",
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/pl.json b/web/l10n/pl.json
index 6139f2d9b..7ac5bcba3 100644
--- a/web/l10n/pl.json
+++ b/web/l10n/pl.json
@@ -15,7 +15,14 @@
"sharedMinute": "Minuta",
"sharedSecond": "Sekunda",
"sharedName": "Name",
+ "sharedDescription": "Description",
"sharedSearch": "Search",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "Bląd",
"errorUnknown": "Nieznany błąd",
"errorConnection": "Błąd przy połączeniu",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "Lokalizacja",
"stateName": "Właściwości",
"stateValue": "Wartość",
@@ -85,5 +94,31 @@
"commandEngineStop": "Silnik - Stop",
"commandEngineResume": "Silnik - Praca",
"commandFrequency": "Częstotliwość",
- "commandUnit": "Jednostka"
+ "commandUnit": "Jednostka",
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/pt.json b/web/l10n/pt.json
index d76d942bb..0feb253d9 100644
--- a/web/l10n/pt.json
+++ b/web/l10n/pt.json
@@ -15,7 +15,14 @@
"sharedMinute": "Minuto",
"sharedSecond": "Segundo",
"sharedName": "Name",
+ "sharedDescription": "Description",
"sharedSearch": "Search",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "Erro",
"errorUnknown": "Erro desconhecido",
"errorConnection": "Erro de conexão",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Mapas Estrada",
"mapBingAerial": "Bing Mapas Aérea",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "Estado",
"stateName": "Parâmetro",
"stateValue": "Valor",
@@ -85,5 +94,31 @@
"commandEngineStop": "Bloqueio Veículo",
"commandEngineResume": "Desbloqueio Veículo",
"commandFrequency": "Frequência",
- "commandUnit": "Unidade"
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/pt_BR.json b/web/l10n/pt_BR.json
index 6c62e6287..c536d5239 100644
--- a/web/l10n/pt_BR.json
+++ b/web/l10n/pt_BR.json
@@ -15,7 +15,14 @@
"sharedMinute": "Minuto",
"sharedSecond": "Segundo",
"sharedName": "Nome",
+ "sharedDescription": "Description",
"sharedSearch": "Busca",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "Erro",
"errorUnknown": "Erro desconhecido",
"errorConnection": "Erro de conexão",
@@ -38,7 +45,7 @@
"deviceFollow": "Seguir",
"groupDialog": "Grupo",
"groupParent": "Grupo",
- "groupNoGroup": "No Group",
+ "groupNoGroup": "Sem Grupo",
"settingsTitle": "Configurações",
"settingsUser": "Conta",
"settingsGroups": "Grupos",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Estradas",
"mapBingAerial": "Bing Maps Aéreo",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "Estado",
"stateName": "Atributo",
"stateValue": "Valor",
@@ -85,5 +94,31 @@
"commandEngineStop": "Desligar Motor",
"commandEngineResume": "Religar Motor",
"commandFrequency": "Frequencia",
- "commandUnit": "Unidade"
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/ro.json b/web/l10n/ro.json
index db2a37f94..cdfec868d 100644
--- a/web/l10n/ro.json
+++ b/web/l10n/ro.json
@@ -1,11 +1,11 @@
{
- "sharedLoading": "Încărcare...",
- "sharedSave": "Salvare",
- "sharedCancel": "Anulare",
- "sharedAdd": "Adăuga",
- "sharedEdit": "Editeaza",
- "sharedRemove": "Elimina",
- "sharedRemoveConfirm": "Ștergeți echipamentul?",
+ "sharedLoading": "Se încarcă",
+ "sharedSave": "Salvează",
+ "sharedCancel": "Anulează",
+ "sharedAdd": "Adaugă",
+ "sharedEdit": "Modifică",
+ "sharedRemove": "Elimină",
+ "sharedRemoveConfirm": "Ștergeți obiectul?",
"sharedKm": "km",
"sharedMi": "mi",
"sharedKn": "kn",
@@ -15,17 +15,24 @@
"sharedMinute": "Minut",
"sharedSecond": "Secundă",
"sharedName": "Nume",
+ "sharedDescription": "Descriere",
"sharedSearch": "Căutare",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notificările",
+ "sharedAttributes": "Atribute",
+ "sharedAttribute": "Atribute",
+ "sharedArea": "Area",
"errorTitle": "Eroare",
"errorUnknown": "Eroare necunoscută",
"errorConnection": "Eroare de conexiune",
"userEmail": "Email",
"userPassword": "Parolă",
"userAdmin": "Admin",
- "loginTitle": "Intră in cont",
+ "loginTitle": "Autentificare",
"loginLanguage": "Limbă",
"loginRegister": "Înregistrare",
- "loginLogin": "Intră in cont",
+ "loginLogin": "Intră în cont",
"loginFailed": "E-mail sau parolă incorectă",
"loginCreated": "Un utilizator nou a fost înregistrat",
"loginLogout": "Deconectare",
@@ -38,7 +45,7 @@
"deviceFollow": "Urmareste",
"groupDialog": "Grup",
"groupParent": "Grup",
- "groupNoGroup": "No Group",
+ "groupNoGroup": "Nici-un grup",
"settingsTitle": "Setări",
"settingsUser": "Cont",
"settingsGroups": "Grupuri",
@@ -73,6 +80,8 @@
"mapBingKey": "Cheie Hărți Bing",
"mapBingRoad": "Bing Hartă Drumuri",
"mapBingAerial": "Bing Hartă Aeriană",
+ "mapShapePolygon": "Poligon",
+ "mapShapeCircle": "Cerc",
"stateTitle": "Stare",
"stateName": "Atribut",
"stateValue": "Valoare",
@@ -85,5 +94,31 @@
"commandEngineStop": "Blocare Motor",
"commandEngineResume": "Deblocare Motor",
"commandFrequency": "Frecvenţă",
- "commandUnit": "Unitate"
+ "commandUnit": "Unitate",
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/ru.json b/web/l10n/ru.json
index 4ec4a606c..23314d64d 100644
--- a/web/l10n/ru.json
+++ b/web/l10n/ru.json
@@ -8,14 +8,21 @@
"sharedRemoveConfirm": "Удалить элемент?",
"sharedKm": "км",
"sharedMi": "мили",
- "sharedKn": "kn",
+ "sharedKn": "уз",
"sharedKmh": "км/ч",
"sharedMph": "миль/ч",
"sharedHour": "Часы",
"sharedMinute": "Минуты",
"sharedSecond": "Секунды",
"sharedName": "Имя",
+ "sharedDescription": "Описание",
"sharedSearch": "Поиск",
+ "sharedGeofence": "Геозона",
+ "sharedGeofences": "Геозоны",
+ "sharedNotifications": "Уведомления",
+ "sharedAttributes": "Атрибуты",
+ "sharedAttribute": "Атрибут",
+ "sharedArea": "Область",
"errorTitle": "Ошибка",
"errorUnknown": "Неизвестная ошибка",
"errorConnection": "Ошибка соединения",
@@ -38,7 +45,7 @@
"deviceFollow": "Следовать",
"groupDialog": "Группа",
"groupParent": "Группа",
- "groupNoGroup": "No Group",
+ "groupNoGroup": "Без Группы",
"settingsTitle": "Настройки",
"settingsUser": "Аккаунт",
"settingsGroups": "Группы",
@@ -73,6 +80,8 @@
"mapBingKey": "Ключ Bing Maps",
"mapBingRoad": "Bing Maps Дороги",
"mapBingAerial": "Bing Maps Спутник",
+ "mapShapePolygon": "Многоугольник",
+ "mapShapeCircle": "Круг",
"stateTitle": "Состояние",
"stateName": "Параметр",
"stateValue": "Значение",
@@ -85,5 +94,31 @@
"commandEngineStop": "Заблокировать Двигатель",
"commandEngineResume": "Разблокировать Двигатель",
"commandFrequency": "Частота",
- "commandUnit": "Единицы"
+ "commandUnit": "Единицы",
+ "commandCustom": "Пользовательская команда",
+ "commandPositionSingle": "Разовое Отслеживание",
+ "commandAlarmArm": "Активировать Сигнализацию",
+ "commandAlarmDisarm": "Деактивировать Сигнализацию",
+ "commandSetTimezone": "Настроить Часовой пояс",
+ "commandRequestPhoto": "Запросить Фото",
+ "commandRebootDevice": "Перезагрузить Устройство",
+ "commandSendSms": "Отправить СМС",
+ "commandSosNumber": "Настроить Экстренный Номер",
+ "commandSilenceTime": "Настроить Время Тишины",
+ "commandSetPhonebook": "Настроить Телефонную книгу",
+ "commandVoiceMessage": "Голосовое Сообщение",
+ "commandOutputControl": "Контроль Выхода",
+ "commandAlarmSpeed": "Превышение Скорости",
+ "commandDeviceIdentification": "Идентификация Устройства",
+ "eventDeviceOnline": "Устройство в сети",
+ "eventDeviceOffline": "Устройство не в сети",
+ "eventDeviceMoving": "Устройство движется",
+ "eventDeviceStopped": "Устройство остановилось",
+ "eventDeviceOverspeed": "Устройство превышает скорость",
+ "eventCommandResult": "Результат команды",
+ "eventGeofenceEnter": "Устройство вошло в геозону",
+ "eventGeofenceExit": "Устройство покинуло геозону",
+ "notificationType": "Тип уведомления",
+ "notificationWeb": "Отправлять через Веб",
+ "notificationMail": "Отправлять через Почту"
} \ No newline at end of file
diff --git a/web/l10n/si.json b/web/l10n/si.json
index 59386b866..00c5a5bc9 100644
--- a/web/l10n/si.json
+++ b/web/l10n/si.json
@@ -15,7 +15,14 @@
"sharedMinute": "මිනිත්තු",
"sharedSecond": "තත්පර",
"sharedName": "Name",
+ "sharedDescription": "Description",
"sharedSearch": "Search",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "දෝෂයක් ",
"errorUnknown": "නොදන්නා දෝෂයක් !",
"errorConnection": "සම්බන්ධතා දෝෂයක් !",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "තත්වය",
"stateName": "පරාමිතිය",
"stateValue": "අගය",
@@ -85,5 +94,31 @@
"commandEngineStop": "එන්ජිම නවත්වන්න",
"commandEngineResume": "එන්ජිම නැවත ආරම්භ කරන්න",
"commandFrequency": "සංඛ්යාතය",
- "commandUnit": "ඒකකය"
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/sk.json b/web/l10n/sk.json
index 38a551f47..bd54ed0a7 100644
--- a/web/l10n/sk.json
+++ b/web/l10n/sk.json
@@ -15,7 +15,14 @@
"sharedMinute": "Minúta",
"sharedSecond": "Sekunda",
"sharedName": "Meno",
+ "sharedDescription": "Description",
"sharedSearch": "Hľadať",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "Chyba",
"errorUnknown": "Neznáma chyba",
"errorConnection": "Chyba pripojenia",
@@ -73,6 +80,8 @@
"mapBingKey": "Klúč Bing Maps",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Arial",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "Štát",
"stateName": "Parameter",
"stateValue": "Hodnota",
@@ -85,5 +94,31 @@
"commandEngineStop": "Zastavenie motora",
"commandEngineResume": "Spustenie motora",
"commandFrequency": "Frekvencia",
- "commandUnit": "Jednotka"
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/sl.json b/web/l10n/sl.json
index 506cfff43..fc81f6500 100644
--- a/web/l10n/sl.json
+++ b/web/l10n/sl.json
@@ -15,7 +15,14 @@
"sharedMinute": "Minuta",
"sharedSecond": "Sekunda",
"sharedName": "Name",
+ "sharedDescription": "Description",
"sharedSearch": "Search",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "Napaka",
"errorUnknown": "Neznana napaka",
"errorConnection": "Napaka v povezavi",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Mapk Ključ",
"mapBingRoad": "Bing Maps Ceste",
"mapBingAerial": "Bing Maps Satelit",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "Stanje",
"stateName": "Parameter",
"stateValue": "Vrednost",
@@ -85,5 +94,31 @@
"commandEngineStop": "Ugasni motor",
"commandEngineResume": "Prižgi motor",
"commandFrequency": "Frekvenca",
- "commandUnit": "Naprava"
+ "commandUnit": "Naprava",
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/sr.json b/web/l10n/sr.json
index 4992164f9..2170cc444 100644
--- a/web/l10n/sr.json
+++ b/web/l10n/sr.json
@@ -15,7 +15,14 @@
"sharedMinute": "Minut",
"sharedSecond": "Sekunda",
"sharedName": "Ime",
+ "sharedDescription": "Opis",
"sharedSearch": "Traži",
+ "sharedGeofence": "Geoograda",
+ "sharedGeofences": "Geoograde",
+ "sharedNotifications": "Obaveštenja",
+ "sharedAttributes": "Osobine",
+ "sharedAttribute": "Osobina",
+ "sharedArea": "Oblast",
"errorTitle": "Greška",
"errorUnknown": "Nepoznata greška",
"errorConnection": "Greška u konekciji",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
+ "mapShapePolygon": "Višeugao",
+ "mapShapeCircle": "Krug",
"stateTitle": "Stanje",
"stateName": "Parametar",
"stateValue": "Vrednost",
@@ -85,5 +94,31 @@
"commandEngineStop": "Zaustavi motor",
"commandEngineResume": "Pokreni motor",
"commandFrequency": "Frekvencija",
- "commandUnit": "Jedinica"
+ "commandUnit": "Jedinica",
+ "commandCustom": "Prilagođena komanda",
+ "commandPositionSingle": "Izveštaj za jednog",
+ "commandAlarmArm": "Omogući alarm",
+ "commandAlarmDisarm": "Onemogući alarm",
+ "commandSetTimezone": "Podesi vremensku zonu",
+ "commandRequestPhoto": "Zahtevaj fotografiju",
+ "commandRebootDevice": "Ponovo pokreni uređaj",
+ "commandSendSms": "Pošalji SMS",
+ "commandSosNumber": "Podesi SOS broj",
+ "commandSilenceTime": "Podesi nečujno vreme ",
+ "commandSetPhonebook": "Podesi kontakte",
+ "commandVoiceMessage": "Glasovna poruka",
+ "commandOutputControl": "Kontrola izlaza",
+ "commandAlarmSpeed": "Alarm prekoračenja brzine",
+ "commandDeviceIdentification": "Identifikacija uređaja",
+ "eventDeviceOnline": "Uređaj je na mreži",
+ "eventDeviceOffline": "Uređaj je van mreže",
+ "eventDeviceMoving": "Uređaj se kreće",
+ "eventDeviceStopped": "Uređaj je zaustavljen",
+ "eventDeviceOverspeed": "Uređaj prelazi brzinu",
+ "eventCommandResult": "Stanje komande",
+ "eventGeofenceEnter": "Uređaj je ušao u geoogradu",
+ "eventGeofenceExit": "Uređaj je izašao iz geoograde",
+ "notificationType": "Tip obaveštenja",
+ "notificationWeb": "Pošalji preko Web-a",
+ "notificationMail": "Pošalji putem Email-a"
} \ No newline at end of file
diff --git a/web/l10n/ta.json b/web/l10n/ta.json
index 628772705..5d47face5 100644
--- a/web/l10n/ta.json
+++ b/web/l10n/ta.json
@@ -1,52 +1,59 @@
{
- "sharedLoading": "ஏற்றுதல்",
+ "sharedLoading": "பதிவு செய்",
"sharedSave": "சேமி",
- "sharedCancel": "ரத்து",
- "sharedAdd": "இணை",
- "sharedEdit": "திருத்த",
- "sharedRemove": "நீக்கு",
- "sharedRemoveConfirm": "நீக்க விரும்பினால்?",
+ "sharedCancel": "ரத்து செய்",
+ "sharedAdd": "சேர்க்க",
+ "sharedEdit": "தொகுக்க",
+ "sharedRemove": "நீக்குக",
+ "sharedRemoveConfirm": "நீக்கம் உறுதி செய்?",
"sharedKm": "கிமீ",
"sharedMi": "மைல்",
- "sharedKn": "kn",
+ "sharedKn": "கடல் மைல்",
"sharedKmh": "கிமீ/மணிக்கு",
"sharedMph": "மைல்/மணிக்கு",
"sharedHour": "மணி நேரம்",
"sharedMinute": "நிமிடம்",
"sharedSecond": "விநாடி",
- "sharedName": "Name",
- "sharedSearch": "Search",
+ "sharedName": "பெயர்",
+ "sharedDescription": "விளக்கம்",
+ "sharedSearch": "தேடுக",
+ "sharedGeofence": "பூகோள வேலி",
+ "sharedGeofences": "பூகோள வேலிகள்",
+ "sharedNotifications": "அறிவிப்புகள்",
+ "sharedAttributes": "பண்புகள்",
+ "sharedAttribute": "பண்பு",
+ "sharedArea": "பகுதி",
"errorTitle": "பிழை",
- "errorUnknown": "தெரியாத பிழை",
- "errorConnection": "இணைப்பு பிழை",
+ "errorUnknown": "அறியப்படாத பிழை",
+ "errorConnection": "இணைப்புப் பிழை",
"userEmail": "மின்னஞ்சல்",
"userPassword": "கடவுச்சொல்",
"userAdmin": "நிர்வாகி",
- "loginTitle": "உள்நுழைய",
+ "loginTitle": "உள் நுழை",
"loginLanguage": "மொழி",
"loginRegister": "பதிவு செய்ய",
"loginLogin": "உள்நுழைய",
"loginFailed": "தவறான மின்னஞ்சல் முகவரி அல்லது கடவுச்சொல்",
- "loginCreated": "புதிய உறுப்பினர் பதிவு",
+ "loginCreated": "புதிய பயனர் பதிவு செய்யப்பட்டுள்ளது",
"loginLogout": "வெளியேறு",
- "devicesAndState": "சாதனம் மற்றும் நிலை",
+ "devicesAndState": "கருவிகள் மற்றும் அதன் நிலை",
"deviceDialog": "சாதனம்",
"deviceTitle": "சாதனம்",
"deviceIdentifier": "அடையாளங்காட்டி",
"deviceLastUpdate": "கடைசியாக புதுப்பிக்கப்பட்டது",
"deviceCommand": "கட்டளை",
"deviceFollow": "பின்தொடர்",
- "groupDialog": "Group",
- "groupParent": "Group",
- "groupNoGroup": "No Group",
+ "groupDialog": "குழு",
+ "groupParent": "குழு",
+ "groupNoGroup": "குழு இல்லை",
"settingsTitle": "அமைப்பு",
"settingsUser": "கணக்கு",
- "settingsGroups": "Groups",
+ "settingsGroups": "குழுக்கள்",
"settingsServer": "சர்வர்",
"settingsUsers": "உறுப்பினர்கள்",
"settingsDistanceUnit": "தூரம்",
"settingsSpeedUnit": "வேகம்",
- "settingsTwelveHourFormat": "12-hour Format",
+ "settingsTwelveHourFormat": "12 மணி நேர வடிவம்",
"reportTitle": "அறிக்கை",
"reportDevice": "சாதனம்",
"reportFrom": "இருந்து",
@@ -73,6 +80,8 @@
"mapBingKey": "பிங் வரைபட கீ",
"mapBingRoad": "பிங் சாலை வரைபடம்",
"mapBingAerial": "பிங் வான்வழி வரைபடம்",
+ "mapShapePolygon": "பலகோணம்",
+ "mapShapeCircle": "வட்டம்",
"stateTitle": "நிலை",
"stateName": "சாட்டு",
"stateValue": "மதிப்பு",
@@ -85,5 +94,31 @@
"commandEngineStop": "எஞ்சின் நிறுத்து",
"commandEngineResume": "எஞ்சின் தொடங்க",
"commandFrequency": "காலஇடைவெளி",
- "commandUnit": "அலகு"
+ "commandUnit": "அலகு",
+ "commandCustom": "விருப்பமான கட்டளை",
+ "commandPositionSingle": "ஒற்றை அறிக்கை",
+ "commandAlarmArm": "அலறிமணி துவக்கம்",
+ "commandAlarmDisarm": "அலறிமணி நிறுத்தம்",
+ "commandSetTimezone": "நேர மண்டலம்",
+ "commandRequestPhoto": "புகைப்படம் வேண்டு",
+ "commandRebootDevice": "சாதன மறுதுவக்கம்",
+ "commandSendSms": "குருஞ்செதி அனுப்பு",
+ "commandSosNumber": "அவசர அழைப்பு எண்(SOS)",
+ "commandSilenceTime": "அமைதி நேரம் அமைக்க",
+ "commandSetPhonebook": "தொலைபேசிப்புத்தகம் அமை",
+ "commandVoiceMessage": "குரல் செய்தி",
+ "commandOutputControl": "வெளியீட்டு கட்டுப்பாடு",
+ "commandAlarmSpeed": "அதி வேக அலறி ",
+ "commandDeviceIdentification": "\nசாதன அடையாளம்",
+ "eventDeviceOnline": "சாதனம் இணைப்பில் உள்ளது",
+ "eventDeviceOffline": "சாதன இணைப்பு துண்டிக்கபட்டது",
+ "eventDeviceMoving": "சாதனம் நகருகிறது",
+ "eventDeviceStopped": "சாதனம் நின்றுவிட்டது",
+ "eventDeviceOverspeed": "சாதனம் நிர்ணயித்த வேகத் திற்கு மேல்",
+ "eventCommandResult": "கட்டளை விளைவு",
+ "eventGeofenceEnter": "சாதனம் பூகோள வேலியினுள் நுழைந்துள்ளது",
+ "eventGeofenceExit": "சாதனம் பூகோள வேலியை விட்டு வெளியேறியது",
+ "notificationType": "type of notification",
+ "notificationWeb": "வலைதளம் வழி அனுப்புக ",
+ "notificationMail": "மின்னஞ்சல் வழி அனுப்புக"
} \ No newline at end of file
diff --git a/web/l10n/th.json b/web/l10n/th.json
index 3864d6870..e1b2b3867 100644
--- a/web/l10n/th.json
+++ b/web/l10n/th.json
@@ -15,7 +15,14 @@
"sharedMinute": "นาที",
"sharedSecond": "วินาที",
"sharedName": "ชื่อ",
+ "sharedDescription": "Description",
"sharedSearch": "ค้นหา",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "ผิดพลาด",
"errorUnknown": "ข้อผิดพลาดที่ไม่รู้จัก",
"errorConnection": "การเชื่อมต่อผิดพลาด",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps สำคัญ",
"mapBingRoad": "Bing Maps ถนน",
"mapBingAerial": "Bing Maps ทางอากาศ",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "สถานะ",
"stateName": "พารามิเตอร์",
"stateValue": "มูลค่า",
@@ -85,5 +94,31 @@
"commandEngineStop": "ดับเครื่องยนต์",
"commandEngineResume": "ติดครื่องยนต์ใหม่",
"commandFrequency": "ความถี่",
- "commandUnit": "หน่วย"
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/tr.json b/web/l10n/tr.json
index 20e39ce24..bcce758d6 100644
--- a/web/l10n/tr.json
+++ b/web/l10n/tr.json
@@ -8,14 +8,21 @@
"sharedRemoveConfirm": "Öğeyi kaldır",
"sharedKm": "km",
"sharedMi": "mil",
- "sharedKn": "kn",
+ "sharedKn": "Knot",
"sharedKmh": "km/s",
"sharedMph": "mil/s",
"sharedHour": "Saat",
"sharedMinute": "Dakika",
"sharedSecond": "Saniye",
"sharedName": "İsim",
+ "sharedDescription": "Açıklama",
"sharedSearch": "Arama",
+ "sharedGeofence": "Güvenli Bölge",
+ "sharedGeofences": "Güvenli Bölgeler",
+ "sharedNotifications": "Bildirimler",
+ "sharedAttributes": "Nitelikler",
+ "sharedAttribute": "Nitelik",
+ "sharedArea": "Bölge",
"errorTitle": "Hata",
"errorUnknown": "Bilinmeyen hata ",
"errorConnection": "Bağlantı Hatası",
@@ -38,7 +45,7 @@
"deviceFollow": "Takip",
"groupDialog": "Grup",
"groupParent": "Grup",
- "groupNoGroup": "No Group",
+ "groupNoGroup": "Grupsuz",
"settingsTitle": "Ayarlar",
"settingsUser": "Hesap",
"settingsGroups": "Gruplar",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
+ "mapShapePolygon": "Çokgen",
+ "mapShapeCircle": "Çember",
"stateTitle": "Bölge",
"stateName": "Özellik",
"stateValue": "Değer",
@@ -85,5 +94,31 @@
"commandEngineStop": "Motoru Durdur",
"commandEngineResume": "Motoru Çalıştır",
"commandFrequency": "Frekans",
- "commandUnit": "Ünite"
+ "commandUnit": "Ünite",
+ "commandCustom": "Özel komut",
+ "commandPositionSingle": "Tekil Raporlama",
+ "commandAlarmArm": "Alarm Kur",
+ "commandAlarmDisarm": "Alarmı Kapat",
+ "commandSetTimezone": "Zaman Dilimini Belirle",
+ "commandRequestPhoto": "Fotoğraf İste",
+ "commandRebootDevice": "Aygıtı Yeniden Başlat",
+ "commandSendSms": "SMS Gönder",
+ "commandSosNumber": "Acil Durum Numarasını Belirle",
+ "commandSilenceTime": "Sessiz Zamanı Belirle",
+ "commandSetPhonebook": "Telefon Defterini Belirle",
+ "commandVoiceMessage": "Ses Mesajı",
+ "commandOutputControl": "Output Control",
+ "commandAlarmSpeed": "Overspeed Alarm",
+ "commandDeviceIdentification": "Device Identification",
+ "eventDeviceOnline": "Cihaz çevrimiçi",
+ "eventDeviceOffline": "Cihaz çevrimdışı",
+ "eventDeviceMoving": "Cihaz hareket halinde",
+ "eventDeviceStopped": "Cihaz durdu",
+ "eventDeviceOverspeed": "Cihaz hızı aştı",
+ "eventCommandResult": "Komut sonucu",
+ "eventGeofenceEnter": "Cihaz güvenli bölgede",
+ "eventGeofenceExit": "Cihaz güvenli bölgeden çıktı",
+ "notificationType": "Bildirim tipi",
+ "notificationWeb": "Wed ile gönder",
+ "notificationMail": "E-posta ile gönder"
} \ No newline at end of file
diff --git a/web/l10n/uk.json b/web/l10n/uk.json
index d2ac620c1..7cb40e174 100644
--- a/web/l10n/uk.json
+++ b/web/l10n/uk.json
@@ -15,7 +15,14 @@
"sharedMinute": "Хвилини",
"sharedSecond": "Секунди",
"sharedName": "Name",
+ "sharedDescription": "Description",
"sharedSearch": "Search",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "Помилка",
"errorUnknown": "Невiдома помилка",
"errorConnection": "Помилка з'єднання",
@@ -73,6 +80,8 @@
"mapBingKey": "Ключ Bing Maps ",
"mapBingRoad": "Bing Maps Дороги",
"mapBingAerial": "Bing Maps Супутник",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "Стан",
"stateName": "Атрибут",
"stateValue": "Значення ",
@@ -85,5 +94,31 @@
"commandEngineStop": "Заблокувати двигун ",
"commandEngineResume": "Розблокувати двигун",
"commandFrequency": "Частота",
- "commandUnit": "Одиниці"
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/vi.json b/web/l10n/vi.json
index 42b946fe4..676b07318 100644
--- a/web/l10n/vi.json
+++ b/web/l10n/vi.json
@@ -15,7 +15,14 @@
"sharedMinute": "Phút",
"sharedSecond": "Giây",
"sharedName": "Tên",
+ "sharedDescription": "Description",
"sharedSearch": "Tìm kiếm",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "Lỗi",
"errorUnknown": "Không xác định được lỗi",
"errorConnection": "Lỗi kết nối",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing Maps Key",
"mapBingRoad": "Bing Maps Road",
"mapBingAerial": "Bing Maps Aerial",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "Trạng thái",
"stateName": "Thuộc tính",
"stateValue": "Giá trị",
@@ -85,5 +94,31 @@
"commandEngineStop": "Tắt máy",
"commandEngineResume": "Bật máy",
"commandFrequency": "Chu kỳ",
- "commandUnit": "Thiết bị"
+ "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"
} \ No newline at end of file
diff --git a/web/l10n/zh.json b/web/l10n/zh.json
index 2d4d92e06..6d32fae23 100644
--- a/web/l10n/zh.json
+++ b/web/l10n/zh.json
@@ -15,7 +15,14 @@
"sharedMinute": "分钟",
"sharedSecond": "秒",
"sharedName": "Name",
+ "sharedDescription": "Description",
"sharedSearch": "Search",
+ "sharedGeofence": "Geofence",
+ "sharedGeofences": "Geofences",
+ "sharedNotifications": "Notifications",
+ "sharedAttributes": "Attributes",
+ "sharedAttribute": "Attribute",
+ "sharedArea": "Area",
"errorTitle": "错误",
"errorUnknown": "未知错误",
"errorConnection": "连接错误",
@@ -73,6 +80,8 @@
"mapBingKey": "Bing 旅游重点",
"mapBingRoad": "Bing 公路线路地图",
"mapBingAerial": "Bing 航测地图",
+ "mapShapePolygon": "Polygon",
+ "mapShapeCircle": "Circle",
"stateTitle": "状态",
"stateName": "参数",
"stateValue": "数值",
@@ -85,5 +94,31 @@
"commandEngineStop": "引擎熄火",
"commandEngineResume": "引擎启动",
"commandFrequency": "频率",
- "commandUnit": "单位"
+ "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"
} \ No newline at end of file
diff --git a/web/release.html b/web/release.html
index bcf6f9bad..4e087922a 100644
--- a/web/release.html
+++ b/web/release.html
@@ -5,8 +5,8 @@
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title>Traccar</title>
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/extjs/6.0.1/classic/theme-neptune/resources/theme-neptune-all.css">
-<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/ol3/3.15.1/ol.css">
-<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.1/css/font-awesome.min.css">
+<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/ol3/3.17.1/ol.css">
+<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css">
<link rel="stylesheet" href="app.css">
</head>
<body>
@@ -14,7 +14,7 @@
<div id="attribution">Powered by <a href="https://www.traccar.org/">Traccar GPS Tracking System</a></div>
<script src="//cdnjs.cloudflare.com/ajax/libs/extjs/6.0.1/ext-all.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/extjs/6.0.1/classic/theme-neptune/theme-neptune.js"></script>
-<script src="//cdnjs.cloudflare.com/ajax/libs/ol3/3.15.1/ol-debug.js"></script>
+<script src="//cdnjs.cloudflare.com/ajax/libs/ol3/3.17.1/ol-debug.js"></script>
<script src="arrowstyle.js"></script>
<script src="locale.js"></script>
<script type="text/javascript">