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