From b7403aaadd130bf1496b97c07667842813d99550 Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Mon, 5 Sep 2016 14:27:30 +0500 Subject: Implement retrieving map center from current map --- web/app/Style.js | 4 +++- web/app/view/MapController.js | 11 ++++++++- web/app/view/ServerDialog.js | 39 +++++++++++++++++++------------ web/app/view/ServerDialogController.js | 42 ++++++++++++++++++++++++++++++++++ web/app/view/UserDialog.js | 35 +++++++++++++++++----------- web/app/view/UserDialogController.js | 2 +- web/l10n/en.json | 2 ++ 7 files changed, 104 insertions(+), 31 deletions(-) create mode 100644 web/app/view/ServerDialogController.js diff --git a/web/app/Style.js b/web/app/Style.js index b3b296b75..034d2fb0b 100644 --- a/web/app/Style.js +++ b/web/app/Style.js @@ -75,5 +75,7 @@ Ext.define('Traccar.Style', { coordinatePrecision: 6, numberPrecision: 2, - reportTagfieldWidth: 375 + reportTagfieldWidth: 375, + + inFormButtonMargin: '0 0 9 0' }); diff --git a/web/app/view/MapController.js b/web/app/view/MapController.js index bc6a5d404..288593dab 100644 --- a/web/app/view/MapController.js +++ b/web/app/view/MapController.js @@ -23,7 +23,8 @@ Ext.define('Traccar.view.MapController', { controller: { '*': { selectDevice: 'selectDevice', - selectReport: 'selectReport' + selectReport: 'selectReport', + getMapCenter: 'getMapCenter' } }, store: { @@ -304,5 +305,13 @@ Ext.define('Traccar.view.MapController', { this.fireEvent('selectReport', record, false); } } + }, + + getMapCenter: function () { + var zoom, center, projection; + projection = this.getView().getMapView().getProjection(); + center = ol.proj.transform(this.getView().getMapView().getCenter(), projection, 'EPSG:4326'); + zoom = this.getView().getMapView().getZoom(); + this.fireEvent('setCenterFromMap', center[1], center[0], zoom); } }); diff --git a/web/app/view/ServerDialog.js b/web/app/view/ServerDialog.js index dd4579168..0f8dbd2eb 100644 --- a/web/app/view/ServerDialog.js +++ b/web/app/view/ServerDialog.js @@ -18,10 +18,10 @@ Ext.define('Traccar.view.ServerDialog', { extend: 'Traccar.view.BaseEditDialog', requires: [ - 'Traccar.view.BaseEditDialogController' + 'Traccar.view.ServerDialogController' ], - controller: 'baseEditDialog', + controller: 'serverEditDialog', title: Strings.serverTitle, items: { @@ -66,19 +66,28 @@ Ext.define('Traccar.view.ServerDialog', { displayField: 'name', valueField: 'key' }, { - xtype: 'numberfield', - name: 'latitude', - fieldLabel: Strings.positionLatitude, - decimalPrecision: Traccar.Style.coordinatePrecision - }, { - xtype: 'numberfield', - name: 'longitude', - fieldLabel: Strings.positionLongitude, - decimalPrecision: Traccar.Style.coordinatePrecision - }, { - xtype: 'numberfield', - name: 'zoom', - fieldLabel: Strings.serverZoom + xtype: 'fieldset', + reference: 'mapCenter', + title: Strings.sharedMapCenter, + defaultType: 'numberfield', + items: [{ + name: 'latitude', + fieldLabel: Strings.positionLatitude, + decimalPrecision: Traccar.Style.coordinatePrecision + }, { + name: 'longitude', + fieldLabel: Strings.positionLongitude, + decimalPrecision: Traccar.Style.coordinatePrecision + }, { + name: 'zoom', + fieldLabel: Strings.serverZoom + }, { + xtype: 'button', + margin: Traccar.Style.inFormButtonMargin, + enableToggle: false, + text: Strings.sharedGetFromMap, + handler: 'getFromMap' + }] }, { xtype: 'checkboxfield', name: 'twelveHourFormat', diff --git a/web/app/view/ServerDialogController.js b/web/app/view/ServerDialogController.js new file mode 100644 index 000000000..42760ca58 --- /dev/null +++ b/web/app/view/ServerDialogController.js @@ -0,0 +1,42 @@ +/* + * Copyright 2016 Anton Tananaev (anton.tananaev@gmail.com) + * Copyright 2016 Andrey Kunitsyn (abyss@fox5.ru) + * + * 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. + */ + +Ext.define('Traccar.view.ServerDialogController', { + extend: 'Traccar.view.BaseEditDialogController', + alias: 'controller.serverEditDialog', + + config: { + listen: { + controller: { + '*': { + setCenterFromMap: 'setCenterFromMap' + } + } + } + }, + + getFromMap: function (button) { + this.fireEvent('getMapCenter'); + }, + + setCenterFromMap: function (lat, lon, zoom) { + var mapCenter = this.lookupReference('mapCenter'); + mapCenter.down('numberfield[name="latitude"]').setValue(lat); + mapCenter.down('numberfield[name="longitude"]').setValue(lon); + mapCenter.down('numberfield[name="zoom"]').setValue(zoom); + } +}); diff --git a/web/app/view/UserDialog.js b/web/app/view/UserDialog.js index 07fc1431f..c6b732513 100644 --- a/web/app/view/UserDialog.js +++ b/web/app/view/UserDialog.js @@ -70,19 +70,28 @@ Ext.define('Traccar.view.UserDialog', { displayField: 'name', valueField: 'key' }, { - xtype: 'numberfield', - name: 'latitude', - fieldLabel: Strings.positionLatitude, - decimalPrecision: Traccar.Style.coordinatePrecision - }, { - xtype: 'numberfield', - name: 'longitude', - fieldLabel: Strings.positionLongitude, - decimalPrecision: Traccar.Style.coordinatePrecision - }, { - xtype: 'numberfield', - name: 'zoom', - fieldLabel: Strings.serverZoom + xtype: 'fieldset', + reference: 'mapCenter', + title: Strings.sharedMapCenter, + defaultType: 'numberfield', + items: [{ + name: 'latitude', + fieldLabel: Strings.positionLatitude, + decimalPrecision: Traccar.Style.coordinatePrecision + }, { + name: 'longitude', + fieldLabel: Strings.positionLongitude, + decimalPrecision: Traccar.Style.coordinatePrecision + }, { + name: 'zoom', + fieldLabel: Strings.serverZoom + }, { + xtype: 'button', + margin: Traccar.Style.inFormButtonMargin, + enableToggle: false, + text: Strings.sharedGetFromMap, + handler: 'getFromMap' + }] }, { xtype: 'checkboxfield', name: 'twelveHourFormat', diff --git a/web/app/view/UserDialogController.js b/web/app/view/UserDialogController.js index c3a4ca62d..5e541c870 100644 --- a/web/app/view/UserDialogController.js +++ b/web/app/view/UserDialogController.js @@ -15,7 +15,7 @@ */ Ext.define('Traccar.view.UserDialogController', { - extend: 'Traccar.view.BaseEditDialogController', + extend: 'Traccar.view.ServerDialogController', alias: 'controller.userDialog', init: function () { diff --git a/web/l10n/en.json b/web/l10n/en.json index 563a37b18..e06daad93 100644 --- a/web/l10n/en.json +++ b/web/l10n/en.json @@ -28,6 +28,8 @@ "sharedDistance": "Distance", "sharedHourAbbreviation": "h", "sharedMinuteAbbreviation": "m", + "sharedMapCenter": "Map Center", + "sharedGetFromMap": "Get from Map", "errorTitle": "Error", "errorUnknown": "Unknown error", "errorConnection": "Connection error", -- cgit v1.2.3 From 0affb8110de3c53942c85a220babc859e2a7727d Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Tue, 6 Sep 2016 09:24:33 +0500 Subject: Move button to bottom bar --- web/app/Style.js | 4 +--- web/app/view/ServerDialog.js | 30 +++++++++++++++++++++--------- web/app/view/UserDialog.js | 30 +++++++++++++++++++++--------- web/l10n/en.json | 1 - 4 files changed, 43 insertions(+), 22 deletions(-) diff --git a/web/app/Style.js b/web/app/Style.js index 034d2fb0b..b3b296b75 100644 --- a/web/app/Style.js +++ b/web/app/Style.js @@ -75,7 +75,5 @@ Ext.define('Traccar.Style', { coordinatePrecision: 6, numberPrecision: 2, - reportTagfieldWidth: 375, - - inFormButtonMargin: '0 0 9 0' + reportTagfieldWidth: 375 }); diff --git a/web/app/view/ServerDialog.js b/web/app/view/ServerDialog.js index 0f8dbd2eb..83f9c47f2 100644 --- a/web/app/view/ServerDialog.js +++ b/web/app/view/ServerDialog.js @@ -66,9 +66,8 @@ Ext.define('Traccar.view.ServerDialog', { displayField: 'name', valueField: 'key' }, { - xtype: 'fieldset', + xtype: 'fieldcontainer', reference: 'mapCenter', - title: Strings.sharedMapCenter, defaultType: 'numberfield', items: [{ name: 'latitude', @@ -81,12 +80,6 @@ Ext.define('Traccar.view.ServerDialog', { }, { name: 'zoom', fieldLabel: Strings.serverZoom - }, { - xtype: 'button', - margin: Traccar.Style.inFormButtonMargin, - enableToggle: false, - text: Strings.sharedGetFromMap, - handler: 'getFromMap' }] }, { xtype: 'checkboxfield', @@ -94,5 +87,24 @@ Ext.define('Traccar.view.ServerDialog', { fieldLabel: Strings.settingsTwelveHourFormat, allowBlank: false }] - } + }, + + buttons: [{ + text: Strings.sharedAttributes, + handler: 'showAttributesView' + }, { + glyph: 'xf276@FontAwesome', + minWidth: 0, + handler: 'getFromMap', + tooltip: Strings.sharedGetFromMap, + tooltipType: 'title' + }, { + xtype: 'tbfill' + }, { + text: Strings.sharedSave, + handler: 'onSaveClick' + }, { + text: Strings.sharedCancel, + handler: 'closeView' + }] }); diff --git a/web/app/view/UserDialog.js b/web/app/view/UserDialog.js index c6b732513..46b86dd5d 100644 --- a/web/app/view/UserDialog.js +++ b/web/app/view/UserDialog.js @@ -24,7 +24,7 @@ Ext.define('Traccar.view.UserDialog', { controller: 'userDialog', title: Strings.settingsUser, - items: [{ + items: { xtype: 'form', items: [{ xtype: 'textfield', @@ -70,9 +70,8 @@ Ext.define('Traccar.view.UserDialog', { displayField: 'name', valueField: 'key' }, { - xtype: 'fieldset', + xtype: 'fieldcontainer', reference: 'mapCenter', - title: Strings.sharedMapCenter, defaultType: 'numberfield', items: [{ name: 'latitude', @@ -85,12 +84,6 @@ Ext.define('Traccar.view.UserDialog', { }, { name: 'zoom', fieldLabel: Strings.serverZoom - }, { - xtype: 'button', - margin: Traccar.Style.inFormButtonMargin, - enableToggle: false, - text: Strings.sharedGetFromMap, - handler: 'getFromMap' }] }, { xtype: 'checkboxfield', @@ -98,5 +91,24 @@ Ext.define('Traccar.view.UserDialog', { fieldLabel: Strings.settingsTwelveHourFormat, allowBlank: false }] + }, + + buttons: [{ + text: Strings.sharedAttributes, + handler: 'showAttributesView' + }, { + glyph: 'xf276@FontAwesome', + minWidth: 0, + handler: 'getFromMap', + tooltip: Strings.sharedGetFromMap, + tooltipType: 'title' + }, { + xtype: 'tbfill' + }, { + text: Strings.sharedSave, + handler: 'onSaveClick' + }, { + text: Strings.sharedCancel, + handler: 'closeView' }] }); diff --git a/web/l10n/en.json b/web/l10n/en.json index e06daad93..88f572e33 100644 --- a/web/l10n/en.json +++ b/web/l10n/en.json @@ -28,7 +28,6 @@ "sharedDistance": "Distance", "sharedHourAbbreviation": "h", "sharedMinuteAbbreviation": "m", - "sharedMapCenter": "Map Center", "sharedGetFromMap": "Get from Map", "errorTitle": "Error", "errorUnknown": "Unknown error", -- cgit v1.2.3 From 97e80ec49fddec3d56880bae47bd070474fa8fa3 Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Tue, 6 Sep 2016 15:58:03 +0500 Subject: - Remove field container - Renamed functions and strings --- web/app/view/MapController.js | 6 +++--- web/app/view/ServerDialog.js | 37 +++++++++++++++++----------------- web/app/view/ServerDialogController.js | 15 +++++++------- web/app/view/UserDialog.js | 37 +++++++++++++++++----------------- web/l10n/en.json | 2 +- 5 files changed, 49 insertions(+), 48 deletions(-) diff --git a/web/app/view/MapController.js b/web/app/view/MapController.js index 288593dab..c0ac2c534 100644 --- a/web/app/view/MapController.js +++ b/web/app/view/MapController.js @@ -24,7 +24,7 @@ Ext.define('Traccar.view.MapController', { '*': { selectDevice: 'selectDevice', selectReport: 'selectReport', - getMapCenter: 'getMapCenter' + mapstaterequest: 'getMapState' } }, store: { @@ -307,11 +307,11 @@ Ext.define('Traccar.view.MapController', { } }, - getMapCenter: function () { + getMapState: function () { var zoom, center, projection; projection = this.getView().getMapView().getProjection(); center = ol.proj.transform(this.getView().getMapView().getCenter(), projection, 'EPSG:4326'); zoom = this.getView().getMapView().getZoom(); - this.fireEvent('setCenterFromMap', center[1], center[0], zoom); + this.fireEvent('mapstate', center[1], center[0], zoom); } }); diff --git a/web/app/view/ServerDialog.js b/web/app/view/ServerDialog.js index 83f9c47f2..40afa4ec3 100644 --- a/web/app/view/ServerDialog.js +++ b/web/app/view/ServerDialog.js @@ -66,21 +66,22 @@ Ext.define('Traccar.view.ServerDialog', { displayField: 'name', valueField: 'key' }, { - xtype: 'fieldcontainer', - reference: 'mapCenter', - defaultType: 'numberfield', - items: [{ - name: 'latitude', - fieldLabel: Strings.positionLatitude, - decimalPrecision: Traccar.Style.coordinatePrecision - }, { - name: 'longitude', - fieldLabel: Strings.positionLongitude, - decimalPrecision: Traccar.Style.coordinatePrecision - }, { - name: 'zoom', - fieldLabel: Strings.serverZoom - }] + xtype: 'numberfield', + reference: 'latitude', + name: 'latitude', + fieldLabel: Strings.positionLatitude, + decimalPrecision: Traccar.Style.coordinatePrecision + }, { + xtype: 'numberfield', + reference: 'longitude', + name: 'longitude', + fieldLabel: Strings.positionLongitude, + decimalPrecision: Traccar.Style.coordinatePrecision + }, { + xtype: 'numberfield', + reference: 'zoom', + name: 'zoom', + fieldLabel: Strings.serverZoom }, { xtype: 'checkboxfield', name: 'twelveHourFormat', @@ -93,10 +94,10 @@ Ext.define('Traccar.view.ServerDialog', { text: Strings.sharedAttributes, handler: 'showAttributesView' }, { - glyph: 'xf276@FontAwesome', + glyph: 'xf041@FontAwesome', minWidth: 0, - handler: 'getFromMap', - tooltip: Strings.sharedGetFromMap, + handler: 'getMapState', + tooltip: Strings.sharedGetMapState, tooltipType: 'title' }, { xtype: 'tbfill' diff --git a/web/app/view/ServerDialogController.js b/web/app/view/ServerDialogController.js index 42760ca58..55f49f676 100644 --- a/web/app/view/ServerDialogController.js +++ b/web/app/view/ServerDialogController.js @@ -23,20 +23,19 @@ Ext.define('Traccar.view.ServerDialogController', { listen: { controller: { '*': { - setCenterFromMap: 'setCenterFromMap' + mapstate: 'setMapState' } } } }, - getFromMap: function (button) { - this.fireEvent('getMapCenter'); + getMapState: function (button) { + this.fireEvent('mapstaterequest'); }, - setCenterFromMap: function (lat, lon, zoom) { - var mapCenter = this.lookupReference('mapCenter'); - mapCenter.down('numberfield[name="latitude"]').setValue(lat); - mapCenter.down('numberfield[name="longitude"]').setValue(lon); - mapCenter.down('numberfield[name="zoom"]').setValue(zoom); + setMapState: function (lat, lon, zoom) { + this.getView().lookupReference('latitude').setValue(lat); + this.getView().lookupReference('longitude').setValue(lon); + this.getView().lookupReference('zoom').setValue(zoom); } }); diff --git a/web/app/view/UserDialog.js b/web/app/view/UserDialog.js index 46b86dd5d..f9e704ee5 100644 --- a/web/app/view/UserDialog.js +++ b/web/app/view/UserDialog.js @@ -70,21 +70,22 @@ Ext.define('Traccar.view.UserDialog', { displayField: 'name', valueField: 'key' }, { - xtype: 'fieldcontainer', - reference: 'mapCenter', - defaultType: 'numberfield', - items: [{ - name: 'latitude', - fieldLabel: Strings.positionLatitude, - decimalPrecision: Traccar.Style.coordinatePrecision - }, { - name: 'longitude', - fieldLabel: Strings.positionLongitude, - decimalPrecision: Traccar.Style.coordinatePrecision - }, { - name: 'zoom', - fieldLabel: Strings.serverZoom - }] + xtype: 'numberfield', + reference: 'latitude', + name: 'latitude', + fieldLabel: Strings.positionLatitude, + decimalPrecision: Traccar.Style.coordinatePrecision + }, { + xtype: 'numberfield', + reference: 'longitude', + name: 'longitude', + fieldLabel: Strings.positionLongitude, + decimalPrecision: Traccar.Style.coordinatePrecision + }, { + xtype: 'numberfield', + reference: 'zoom', + name: 'zoom', + fieldLabel: Strings.serverZoom }, { xtype: 'checkboxfield', name: 'twelveHourFormat', @@ -97,10 +98,10 @@ Ext.define('Traccar.view.UserDialog', { text: Strings.sharedAttributes, handler: 'showAttributesView' }, { - glyph: 'xf276@FontAwesome', + glyph: 'xf041@FontAwesome', minWidth: 0, - handler: 'getFromMap', - tooltip: Strings.sharedGetFromMap, + handler: 'getMapState', + tooltip: Strings.sharedGetMapState, tooltipType: 'title' }, { xtype: 'tbfill' diff --git a/web/l10n/en.json b/web/l10n/en.json index 88f572e33..e61710523 100644 --- a/web/l10n/en.json +++ b/web/l10n/en.json @@ -28,7 +28,7 @@ "sharedDistance": "Distance", "sharedHourAbbreviation": "h", "sharedMinuteAbbreviation": "m", - "sharedGetFromMap": "Get from Map", + "sharedGetMapState": "Get Map State", "errorTitle": "Error", "errorUnknown": "Unknown error", "errorConnection": "Connection error", -- cgit v1.2.3 From 68d284f3023d49c0c3ae9879c5c75c9b152eda3b Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Tue, 6 Sep 2016 16:09:11 +0500 Subject: Rename other events to lowercase --- web/app/view/BaseMap.js | 2 +- web/app/view/DevicesController.js | 8 ++++---- web/app/view/GeofenceDialogController.js | 2 +- web/app/view/GeofenceMapController.js | 2 +- web/app/view/MapController.js | 10 +++++----- web/app/view/ReportController.js | 6 +++--- 6 files changed, 15 insertions(+), 15 deletions(-) diff --git a/web/app/view/BaseMap.js b/web/app/view/BaseMap.js index 77646cbef..62b2c5735 100644 --- a/web/app/view/BaseMap.js +++ b/web/app/view/BaseMap.js @@ -100,7 +100,7 @@ Ext.define('Traccar.view.BaseMap', { this.map.on('click', function (e) { this.map.forEachFeatureAtPixel(e.pixel, function (feature, layer) { - this.fireEvent('selectFeature', feature); + this.fireEvent('selectfeature', feature); }, this); }, this); }, diff --git a/web/app/view/DevicesController.js b/web/app/view/DevicesController.js index 6dcc45448..68dd16025 100644 --- a/web/app/view/DevicesController.js +++ b/web/app/view/DevicesController.js @@ -31,8 +31,8 @@ Ext.define('Traccar.view.DevicesController', { listen: { controller: { '*': { - selectDevice: 'selectDevice', - selectReport: 'selectReport' + selectdevice: 'selectDevice', + selectreport: 'selectReport' } }, store: { @@ -121,7 +121,7 @@ Ext.define('Traccar.view.DevicesController', { var device; if (pressed) { device = this.getView().getSelectionModel().getSelection()[0]; - this.fireEvent('selectDevice', device, true); + this.fireEvent('selectdevice', device, true); } }, @@ -136,7 +136,7 @@ Ext.define('Traccar.view.DevicesController', { onSelectionChange: function (selected) { this.updateButtons(selected); if (selected.getCount() > 0) { - this.fireEvent('selectDevice', selected.getLastSelected(), true); + this.fireEvent('selectdevice', selected.getLastSelected(), true); } }, diff --git a/web/app/view/GeofenceDialogController.js b/web/app/view/GeofenceDialogController.js index b04935b9c..5638db362 100644 --- a/web/app/view/GeofenceDialogController.js +++ b/web/app/view/GeofenceDialogController.js @@ -26,7 +26,7 @@ Ext.define('Traccar.view.GeofenceDialogController', { listen: { controller: { '*': { - saveArea: 'saveArea' + savearea: 'saveArea' } } } diff --git a/web/app/view/GeofenceMapController.js b/web/app/view/GeofenceMapController.js index d643c89e4..c508127d7 100644 --- a/web/app/view/GeofenceMapController.js +++ b/web/app/view/GeofenceMapController.js @@ -27,7 +27,7 @@ Ext.define('Traccar.view.GeofenceMapController', { if (this.getView().getFeatures().getLength() > 0) { geometry = this.getView().getFeatures().pop().getGeometry(); projection = this.getView().getMapView().getProjection(); - this.fireEvent('saveArea', Traccar.GeofenceConverter.geometryToWkt(projection, geometry)); + this.fireEvent('savearea', Traccar.GeofenceConverter.geometryToWkt(projection, geometry)); button.up('window').close(); } }, diff --git a/web/app/view/MapController.js b/web/app/view/MapController.js index c0ac2c534..3b0db6b07 100644 --- a/web/app/view/MapController.js +++ b/web/app/view/MapController.js @@ -22,8 +22,8 @@ Ext.define('Traccar.view.MapController', { listen: { controller: { '*': { - selectDevice: 'selectDevice', - selectReport: 'selectReport', + selectdevice: 'selectDevice', + selectreport: 'selectReport', mapstaterequest: 'getMapState' } }, @@ -43,7 +43,7 @@ Ext.define('Traccar.view.MapController', { }, component: { '#': { - selectFeature: 'selectFeature' + selectfeature: 'selectFeature' } } } @@ -300,9 +300,9 @@ Ext.define('Traccar.view.MapController', { var record = feature.get('record'); if (record) { if (record instanceof Traccar.model.Device) { - this.fireEvent('selectDevice', record, false); + this.fireEvent('selectdevice', record, false); } else { - this.fireEvent('selectReport', record, false); + this.fireEvent('selectreport', record, false); } } }, diff --git a/web/app/view/ReportController.js b/web/app/view/ReportController.js index 3a3345d83..a6253952a 100644 --- a/web/app/view/ReportController.js +++ b/web/app/view/ReportController.js @@ -29,8 +29,8 @@ Ext.define('Traccar.view.ReportController', { listen: { controller: { '*': { - selectDevice: 'selectDevice', - selectReport: 'selectReport' + selectdevice: 'selectDevice', + selectreport: 'selectReport' } } } @@ -116,7 +116,7 @@ Ext.define('Traccar.view.ReportController', { onSelectionChange: function (selected) { if (selected.getCount() > 0) { - this.fireEvent('selectReport', selected.getLastSelected(), true); + this.fireEvent('selectreport', selected.getLastSelected(), true); } }, -- cgit v1.2.3 From d7afbb815c7d185df9143f886a7494cb73a69ac1 Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Tue, 6 Sep 2016 16:31:13 +0500 Subject: - Rename ServerDialogController to MapPickerDialogController - removed getView() --- web/app/view/MapPickerDialogController.js | 41 +++++++++++++++++++++++++++++++ web/app/view/ServerDialog.js | 4 +-- web/app/view/ServerDialogController.js | 41 ------------------------------- web/app/view/UserDialogController.js | 2 +- 4 files changed, 44 insertions(+), 44 deletions(-) create mode 100644 web/app/view/MapPickerDialogController.js delete mode 100644 web/app/view/ServerDialogController.js diff --git a/web/app/view/MapPickerDialogController.js b/web/app/view/MapPickerDialogController.js new file mode 100644 index 000000000..4f202d195 --- /dev/null +++ b/web/app/view/MapPickerDialogController.js @@ -0,0 +1,41 @@ +/* + * Copyright 2016 Anton Tananaev (anton.tananaev@gmail.com) + * Copyright 2016 Andrey Kunitsyn (abyss@fox5.ru) + * + * 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. + */ + +Ext.define('Traccar.view.MapPickerDialogController', { + extend: 'Traccar.view.BaseEditDialogController', + alias: 'controller.mapPickerDialog', + + config: { + listen: { + controller: { + '*': { + mapstate: 'setMapState' + } + } + } + }, + + getMapState: function (button) { + this.fireEvent('mapstaterequest'); + }, + + setMapState: function (lat, lon, zoom) { + this.lookupReference('latitude').setValue(lat); + this.lookupReference('longitude').setValue(lon); + this.lookupReference('zoom').setValue(zoom); + } +}); diff --git a/web/app/view/ServerDialog.js b/web/app/view/ServerDialog.js index 40afa4ec3..46c76ffa8 100644 --- a/web/app/view/ServerDialog.js +++ b/web/app/view/ServerDialog.js @@ -18,10 +18,10 @@ Ext.define('Traccar.view.ServerDialog', { extend: 'Traccar.view.BaseEditDialog', requires: [ - 'Traccar.view.ServerDialogController' + 'Traccar.view.MapPickerDialogController' ], - controller: 'serverEditDialog', + controller: 'mapPickerDialog', title: Strings.serverTitle, items: { diff --git a/web/app/view/ServerDialogController.js b/web/app/view/ServerDialogController.js deleted file mode 100644 index 55f49f676..000000000 --- a/web/app/view/ServerDialogController.js +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2016 Anton Tananaev (anton.tananaev@gmail.com) - * Copyright 2016 Andrey Kunitsyn (abyss@fox5.ru) - * - * 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. - */ - -Ext.define('Traccar.view.ServerDialogController', { - extend: 'Traccar.view.BaseEditDialogController', - alias: 'controller.serverEditDialog', - - config: { - listen: { - controller: { - '*': { - mapstate: 'setMapState' - } - } - } - }, - - getMapState: function (button) { - this.fireEvent('mapstaterequest'); - }, - - setMapState: function (lat, lon, zoom) { - this.getView().lookupReference('latitude').setValue(lat); - this.getView().lookupReference('longitude').setValue(lon); - this.getView().lookupReference('zoom').setValue(zoom); - } -}); diff --git a/web/app/view/UserDialogController.js b/web/app/view/UserDialogController.js index 5e541c870..52d649b9c 100644 --- a/web/app/view/UserDialogController.js +++ b/web/app/view/UserDialogController.js @@ -15,7 +15,7 @@ */ Ext.define('Traccar.view.UserDialogController', { - extend: 'Traccar.view.ServerDialogController', + extend: 'Traccar.view.MapPickerDialogController', alias: 'controller.userDialog', init: function () { -- cgit v1.2.3 From abe051d297b445f8fb76d4069918b79e9e74d0c9 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Wed, 7 Sep 2016 20:09:30 +1200 Subject: Implement OBD support for Meiligao --- .../traccar/protocol/MeiligaoProtocolDecoder.java | 241 ++++++++++++--------- .../protocol/MeiligaoProtocolDecoderTest.java | 3 + 2 files changed, 139 insertions(+), 105 deletions(-) diff --git a/src/org/traccar/protocol/MeiligaoProtocolDecoder.java b/src/org/traccar/protocol/MeiligaoProtocolDecoder.java index 41e248791..8b559beec 100644 --- a/src/org/traccar/protocol/MeiligaoProtocolDecoder.java +++ b/src/org/traccar/protocol/MeiligaoProtocolDecoder.java @@ -80,6 +80,24 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder { .expression("([EW])") .compile(); + private static final Pattern PATTERN_OBD = new PatternBuilder() + .number("(d+.d+),") // battery + .number("(d+),") // rpm + .number("(d+),") // speed + .number("(d+.d+),") // throttle + .number("d+.d+,") // engine load + .number("(-?d+),") // coolant temp + .number("d+.d+,") // instantaneous fuel + .number("(d+.d+),") // average fuel + .number("d+.d+,") // driving range + .number("(d+.?d*),") // odometer + .number("d+.d+,") + .number("d+.d+,") + .number("(d+),") // error code count + .number("d+,") // harsh acceleration count + .number("d+") // harsh break count + .compile(); + public static final int MSG_HEARTBEAT = 0x0001; public static final int MSG_SERVER = 0x0002; public static final int MSG_LOGIN = 0x5000; @@ -91,6 +109,8 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder { public static final int MSG_RFID = 0x9966; + public static final int MSG_OBD_RT = 0x9901; + private DeviceSession identify(ChannelBuffer buf, Channel channel, SocketAddress remoteAddress) { StringBuilder builder = new StringBuilder(); @@ -142,7 +162,7 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder { } } - private String getMeiligaoServer(Channel channel) { + private String getServer(Channel channel) { String server = Context.getConfig().getString(getProtocolName() + ".server"); if (server == null) { InetSocketAddress address = (InetSocketAddress) channel.getLocalAddress(); @@ -172,6 +192,102 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder { } } + private Position decodeRegular(Position position, String sentence) { + Parser parser = new Parser(PATTERN, sentence); + if (!parser.matches()) { + return null; + } + + DateBuilder dateBuilder = new DateBuilder() + .setTime(parser.nextInt(), parser.nextInt(), parser.nextInt()); + if (parser.hasNext()) { + dateBuilder.setMillis(parser.nextInt()); + } + + position.setValid(parser.next().equals("A")); + position.setLatitude(parser.nextCoordinate()); + position.setLongitude(parser.nextCoordinate()); + + if (parser.hasNext()) { + position.setSpeed(parser.nextDouble()); + } + + if (parser.hasNext()) { + position.setCourse(parser.nextDouble()); + } + + dateBuilder.setDateReverse(parser.nextInt(), parser.nextInt(), parser.nextInt()); + position.setTime(dateBuilder.getDate()); + + position.set(Position.KEY_HDOP, parser.next()); + + if (parser.hasNext()) { + position.setAltitude(parser.nextDouble()); + } + + position.set(Position.KEY_STATUS, parser.next()); + + for (int i = 1; i <= 8; i++) { + if (parser.hasNext()) { + position.set(Position.PREFIX_ADC + i, parser.nextInt(16)); + } + } + + if (parser.hasNext()) { + position.set(Position.KEY_GSM, parser.nextInt(16)); + } + + if (parser.hasNext()) { + position.set(Position.KEY_ODOMETER, parser.nextLong(16)); + } + if (parser.hasNext()) { + position.set(Position.KEY_ODOMETER, parser.nextLong(16)); + } + + if (parser.hasNext()) { + position.set(Position.KEY_RFID, parser.nextInt(16)); + } + + return position; + } + + private Position decodeRfid(Position position, String sentence) { + Parser parser = new Parser(PATTERN_RFID, sentence); + if (!parser.matches()) { + return null; + } + + DateBuilder dateBuilder = new DateBuilder() + .setTime(parser.nextInt(), parser.nextInt(), parser.nextInt()) + .setDateReverse(parser.nextInt(), parser.nextInt(), parser.nextInt()); + position.setTime(dateBuilder.getDate()); + + position.setValid(true); + position.setLatitude(parser.nextCoordinate()); + position.setLongitude(parser.nextCoordinate()); + + return position; + } + + private Position decodeObd(Position position, String sentence) { + Parser parser = new Parser(PATTERN_OBD, sentence); + if (!parser.matches()) { + return null; + } + + getLastLocation(position, null); + + position.set(Position.KEY_BATTERY, parser.nextDouble()); + position.set(Position.KEY_RPM, parser.nextInt()); + position.set(Position.KEY_OBD_SPEED, parser.nextInt()); + position.set(Position.KEY_THROTTLE, parser.nextDouble()); + position.set(Position.PREFIX_TEMP + 1, parser.nextInt()); + position.set(Position.KEY_FUEL_CONSUMPTION, parser.nextDouble()); + position.set(Position.KEY_ODOMETER, parser.nextDouble()); + + return position; + } + @Override protected Object decode( Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { @@ -183,39 +299,22 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder { int command = buf.readUnsignedShort(); ChannelBuffer response; - switch (command) { - case MSG_LOGIN: - if (channel != null) { - response = ChannelBuffers.wrappedBuffer(new byte[] {0x01}); - sendResponse(channel, remoteAddress, id, MSG_LOGIN_RESPONSE, response); - } - return null; - case MSG_HEARTBEAT: - if (channel != null) { - response = ChannelBuffers.wrappedBuffer(new byte[] {0x01}); - sendResponse(channel, remoteAddress, id, MSG_HEARTBEAT, response); - } - return null; - case MSG_SERVER: - if (channel != null) { - response = ChannelBuffers.copiedBuffer( - getMeiligaoServer(channel), StandardCharsets.US_ASCII); - sendResponse(channel, remoteAddress, id, MSG_SERVER, response); - } - return null; - case MSG_POSITION: - case MSG_POSITION_LOGGED: - case MSG_ALARM: - case MSG_RFID: - break; - default: - return null; + if (channel != null) { + if (command == MSG_LOGIN) { + response = ChannelBuffers.wrappedBuffer(new byte[] {0x01}); + sendResponse(channel, remoteAddress, id, MSG_LOGIN_RESPONSE, response); + } else if (command == MSG_HEARTBEAT) { + response = ChannelBuffers.wrappedBuffer(new byte[] {0x01}); + sendResponse(channel, remoteAddress, id, MSG_HEARTBEAT, response); + } else if (command == MSG_SERVER) { + response = ChannelBuffers.copiedBuffer(getServer(channel), StandardCharsets.US_ASCII); + sendResponse(channel, remoteAddress, id, MSG_SERVER, response); + } } Position position = new Position(); position.setProtocol(getProtocolName()); - // Custom data if (command == MSG_ALARM) { position.set(Position.KEY_ALARM, decodeAlarm(buf.readUnsignedByte())); } else if (command == MSG_POSITION_LOGGED) { @@ -239,85 +338,17 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder { } } - Pattern pattern; - if (command == MSG_RFID) { - pattern = PATTERN_RFID; - } else { - pattern = PATTERN; - } - - Parser parser = new Parser( - pattern, buf.toString(buf.readerIndex(), buf.readableBytes() - 4, StandardCharsets.US_ASCII)); - if (!parser.matches()) { - return null; - } - - if (command == MSG_RFID) { - - DateBuilder dateBuilder = new DateBuilder() - .setTime(parser.nextInt(), parser.nextInt(), parser.nextInt()) - .setDateReverse(parser.nextInt(), parser.nextInt(), parser.nextInt()); - position.setTime(dateBuilder.getDate()); - - position.setValid(true); - position.setLatitude(parser.nextCoordinate()); - position.setLongitude(parser.nextCoordinate()); - - } else { - - DateBuilder dateBuilder = new DateBuilder() - .setTime(parser.nextInt(), parser.nextInt(), parser.nextInt()); - if (parser.hasNext()) { - dateBuilder.setMillis(parser.nextInt()); - } - - position.setValid(parser.next().equals("A")); - position.setLatitude(parser.nextCoordinate()); - position.setLongitude(parser.nextCoordinate()); - - if (parser.hasNext()) { - position.setSpeed(parser.nextDouble()); - } - - if (parser.hasNext()) { - position.setCourse(parser.nextDouble()); - } - - dateBuilder.setDateReverse(parser.nextInt(), parser.nextInt(), parser.nextInt()); - position.setTime(dateBuilder.getDate()); - - position.set(Position.KEY_HDOP, parser.next()); - - if (parser.hasNext()) { - position.setAltitude(parser.nextDouble()); - } - - position.set(Position.KEY_STATUS, parser.next()); - - for (int i = 1; i <= 8; i++) { - if (parser.hasNext()) { - position.set(Position.PREFIX_ADC + i, parser.nextInt(16)); - } - } - - if (parser.hasNext()) { - position.set(Position.KEY_GSM, parser.nextInt(16)); - } - - if (parser.hasNext()) { - position.set(Position.KEY_ODOMETER, parser.nextLong(16)); - } - if (parser.hasNext()) { - position.set(Position.KEY_ODOMETER, parser.nextLong(16)); - } - - if (parser.hasNext()) { - position.set(Position.KEY_RFID, parser.nextInt(16)); - } + String sentence = buf.toString(buf.readerIndex(), buf.readableBytes() - 4, StandardCharsets.US_ASCII); + if (command == MSG_POSITION || command == MSG_POSITION_LOGGED || command == MSG_ALARM) { + return decodeRegular(position, sentence); + } else if (command == MSG_RFID) { + return decodeRfid(position, sentence); + } else if (command == MSG_OBD_RT) { + return decodeObd(position, sentence); } - return position; + return null; } } diff --git a/test/org/traccar/protocol/MeiligaoProtocolDecoderTest.java b/test/org/traccar/protocol/MeiligaoProtocolDecoderTest.java index 76f62d0f5..58d761ed8 100644 --- a/test/org/traccar/protocol/MeiligaoProtocolDecoderTest.java +++ b/test/org/traccar/protocol/MeiligaoProtocolDecoderTest.java @@ -10,6 +10,9 @@ public class MeiligaoProtocolDecoderTest extends ProtocolTest { MeiligaoProtocolDecoder decoder = new MeiligaoProtocolDecoder(new MeiligaoProtocol()); + verifyAttributes(decoder, binary( + "4040005066104020094432990131302E312C302C3135362C302E30302C31392E36312C2D33342C33342E32362C32312E38332C372E39312C313033332C322E36392C362E35352C302C302C309DBF0D0A")); + verifyPosition(decoder, binary( "242400746251103044ffff99553033353033392e3939392c412c323832332e373632312c4e2c31303635322e303730342c572c3030302e302c3030302e302c3136303631362c2c2c412a37357c302e397c323038332e327c303030307c303030302c303030307c31303034333736333265780d0a")); -- cgit v1.2.3 From 26760bedcb7c66da2d64d75e88e4030136f3e970 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Wed, 7 Sep 2016 22:43:54 +1200 Subject: Fix an issue in Meiligao decoder --- src/org/traccar/protocol/MeiligaoProtocolDecoder.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/org/traccar/protocol/MeiligaoProtocolDecoder.java b/src/org/traccar/protocol/MeiligaoProtocolDecoder.java index 8b559beec..3510b56a3 100644 --- a/src/org/traccar/protocol/MeiligaoProtocolDecoder.java +++ b/src/org/traccar/protocol/MeiligaoProtocolDecoder.java @@ -303,12 +303,15 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder { if (command == MSG_LOGIN) { response = ChannelBuffers.wrappedBuffer(new byte[] {0x01}); sendResponse(channel, remoteAddress, id, MSG_LOGIN_RESPONSE, response); + return null; } else if (command == MSG_HEARTBEAT) { response = ChannelBuffers.wrappedBuffer(new byte[] {0x01}); sendResponse(channel, remoteAddress, id, MSG_HEARTBEAT, response); + return null; } else if (command == MSG_SERVER) { response = ChannelBuffers.copiedBuffer(getServer(channel), StandardCharsets.US_ASCII); sendResponse(channel, remoteAddress, id, MSG_SERVER, response); + return null; } } -- cgit v1.2.3 From 0edf8b90483691d77438748f203d3d03f034781e Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Thu, 8 Sep 2016 17:08:56 +1200 Subject: Add a few Castel unit tests --- test/org/traccar/protocol/CastelProtocolDecoderTest.java | 12 ++++++++++++ test/org/traccar/protocol/TramigoProtocolDecoderTest.java | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/test/org/traccar/protocol/CastelProtocolDecoderTest.java b/test/org/traccar/protocol/CastelProtocolDecoderTest.java index feba9386e..a5b477ea5 100644 --- a/test/org/traccar/protocol/CastelProtocolDecoderTest.java +++ b/test/org/traccar/protocol/CastelProtocolDecoderTest.java @@ -12,6 +12,18 @@ public class CastelProtocolDecoderTest extends ProtocolTest { CastelProtocolDecoder decoder = new CastelProtocolDecoder(new CastelProtocol()); + verifyNothing(decoder, binary(ByteOrder.LITTLE_ENDIAN, + "40405700043231334e583230313630303131373700000000004002c458ce572159ce57a9e2020082030000500c00000f0000000400036401240e0403023c000505210c210d210f21102101075b14030121330269430d0a")); + + verifyNothing(decoder, binary(ByteOrder.LITTLE_ENDIAN, + "40407800043231334e583230313630303131373700000000004004fa52ce574b53ce57cad1020041020000050c00000d0000000400036401240b0503001b042105210c210d210f211021112113211c211f212121232124212c212d213021312133213e2141214221452149214a214c214f215021384e0d0a")); + + verifyNothing(decoder, binary(ByteOrder.LITTLE_ENDIAN, + "4040a600043231334e583230313630303131373700000000004005fa52ce575053ce57cad102006b020000050c00000d0000000400036401240b050300001b042105210c210d210f211021112113211c211f212121232124212c212d213021312133213e2141214221452149214a214c214f215021015bd604301f500600000653000000bc0bffff78250000ff2d98642401000f8080e038000f0f0000000000000077b10d0a")); + + verifyNothing(decoder, binary(ByteOrder.LITTLE_ENDIAN, + "40404300043231334e583230313630303131373700000000004006fa52ce574e53ce57cad1020053020000050c00000d0000000400036401240b0503000000feec0d0a")); + verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN, "40403600043231334e583230313630303033343600000000004009ad31a457050810061a35b29bf80ae6da83180300320bbe32580d0a40403600043231334e583230313630303033343600000000004009ad31a457050810061a35b29bf80ae6da83180300320bbe32580d0a")); diff --git a/test/org/traccar/protocol/TramigoProtocolDecoderTest.java b/test/org/traccar/protocol/TramigoProtocolDecoderTest.java index 8532dd6c9..dd5213400 100644 --- a/test/org/traccar/protocol/TramigoProtocolDecoderTest.java +++ b/test/org/traccar/protocol/TramigoProtocolDecoderTest.java @@ -30,8 +30,8 @@ public class TramigoProtocolDecoderTest extends ProtocolTest { verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN, "8000bc3eb000ba000101622c032f1466bacce2564176656e7369732053797353657276653a2049676e6974696f6e206f66662064657465637465642c2049676e4f6e506572696f643a2030303a30343a30302c206d6f76696e672c20617420416b6572656c6520526f61642d4f67756e6c616e612044726976652c20537572756c6572652c204c61676f7320436974792c204e472c20362e35303630332c20332e33353232382c2031343a3438204d6172203131202020454f46")); - verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN, - "80001d3cb000b3000101160f032f1466b475e0564176656e7369732053797353657276653a205374617475732c204750533a203931252c2047534d3a203737252c20475052533a20436f6e6e65637465642c20626174746572793a20313030252c207265706f7274733a2049676e6974696f6e20286f6666292c205374617475732028352c322e302c3732302c3330292c20362e34393239382c20332e33343836352c2031393a3038204d6172203920454f46")); + //verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN, + // "80001d3cb000b3000101160f032f1466b475e0564176656e7369732053797353657276653a205374617475732c204750533a203931252c2047534d3a203737252c20475052533a20436f6e6e65637465642c20626174746572793a20313030252c207265706f7274733a2049676e6974696f6e20286f6666292c205374617475732028352c322e302c3732302c3330292c20362e34393239382c20332e33343836352c2031393a3038204d6172203920454f46")); //verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN, // "80005408b000af000101b23903677f00c8436d3842616c697365204f6e653a20416c6c756d616765206d61726368652064e974656374e92c20676172e92c20302e3735206b6d20452064652045636f6c65204175746f726f757465206465204b696e73686173612c2056696c6c65206465204b696e73686173612c204b696e73686173612c2043442c202d342e33343130362c2031352e33343931352c2030313a3030204a616e2031202020454f46")); -- cgit v1.2.3 From b425f82d2a17ce7a4ddbab5abfecf493998d6618 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Fri, 9 Sep 2016 21:49:42 +1200 Subject: Disable some Tramigo unit tests --- .../traccar/protocol/TramigoProtocolDecoderTest.java | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/test/org/traccar/protocol/TramigoProtocolDecoderTest.java b/test/org/traccar/protocol/TramigoProtocolDecoderTest.java index dd5213400..3818fd7e6 100644 --- a/test/org/traccar/protocol/TramigoProtocolDecoderTest.java +++ b/test/org/traccar/protocol/TramigoProtocolDecoderTest.java @@ -12,16 +12,16 @@ public class TramigoProtocolDecoderTest extends ProtocolTest { TramigoProtocolDecoder decoder = new TramigoProtocolDecoder(new TramigoProtocol()); - verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN, + verifyAttributes(decoder, binary(ByteOrder.LITTLE_ENDIAN, "8000853eb000b8000101fcff032f14665a89e2564176656e7369732053797353657276653a2049676e6974696f6e206f6e2064657465637465642c206d6f76696e672c20302e3135206b6d205357206f66204261626120416e696d61736861756e205374726565742d426f64652054686f6d61732053742e2c20537572756c6572652c204c61676f7320436974792c204e472c20362e34383736352c20332e33343735352c2031303a3031204d6172203131202020454f46")); - verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN, + verifyAttributes(decoder, binary(ByteOrder.LITTLE_ENDIAN, "8000973eb000b90001012128032f14667794e2564176656e7369732053797353657276653a2049676e6974696f6e206f6e2064657465637465642c2073746f707065642c20302e3134206b6d205357206f66204261626120416e696d61736861756e205374726565742d426f64652054686f6d61732053742e2c20537572756c6572652c204c61676f7320436974792c204e472c20362e34383736372c20332e33343737332c2031303a3438204d6172203131202020454f46")); verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN, "8000b73eb000ad000101fdd2032f1466c9cbe2564176656e7369732053797353657276653a2049676e6974696f6e206f6e2064657465637465642c206d6f76696e672c20302e3131206b6d2045206f6620416c68616a69204d6173686120526f616420466f6f746272696467652c20537572756c6572652c204c61676f7320436974792c204e472c20362e35303031342c20332e33353434332c2031343a3434204d6172203131202020454f46")); - verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN, + verifyAttributes(decoder, binary(ByteOrder.LITTLE_ENDIAN, "8000883eb000d3000101b223032f1466fc89e2564176656e7369732053797353657276653a2049676e6974696f6e206f66662064657465637465642c2049676e4f6e506572696f643a2030303a30323a34312c2073746f707065642c20302e3039206b6d205345206f66204a696e616475205072696d617279205363686f6f6c20416465204f6e6974696d6572696e2053742e2c20537572756c6572652c204c61676f7320436974792c204e472c20362e34383639332c20332e33343636302c2031303a3033204d6172203131202020454f46")); verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN, @@ -30,14 +30,14 @@ public class TramigoProtocolDecoderTest extends ProtocolTest { verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN, "8000bc3eb000ba000101622c032f1466bacce2564176656e7369732053797353657276653a2049676e6974696f6e206f66662064657465637465642c2049676e4f6e506572696f643a2030303a30343a30302c206d6f76696e672c20617420416b6572656c6520526f61642d4f67756e6c616e612044726976652c20537572756c6572652c204c61676f7320436974792c204e472c20362e35303630332c20332e33353232382c2031343a3438204d6172203131202020454f46")); - //verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN, - // "80001d3cb000b3000101160f032f1466b475e0564176656e7369732053797353657276653a205374617475732c204750533a203931252c2047534d3a203737252c20475052533a20436f6e6e65637465642c20626174746572793a20313030252c207265706f7274733a2049676e6974696f6e20286f6666292c205374617475732028352c322e302c3732302c3330292c20362e34393239382c20332e33343836352c2031393a3038204d6172203920454f46")); + verifyAttributes(decoder, binary(ByteOrder.LITTLE_ENDIAN, + "80001d3cb000b3000101160f032f1466b475e0564176656e7369732053797353657276653a205374617475732c204750533a203931252c2047534d3a203737252c20475052533a20436f6e6e65637465642c20626174746572793a20313030252c207265706f7274733a2049676e6974696f6e20286f6666292c205374617475732028352c322e302c3732302c3330292c20362e34393239382c20332e33343836352c2031393a3038204d6172203920454f46")); - //verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN, - // "80005408b000af000101b23903677f00c8436d3842616c697365204f6e653a20416c6c756d616765206d61726368652064e974656374e92c20676172e92c20302e3735206b6d20452064652045636f6c65204175746f726f757465206465204b696e73686173612c2056696c6c65206465204b696e73686173612c204b696e73686173612c2043442c202d342e33343130362c2031352e33343931352c2030313a3030204a616e2031202020454f46")); + verifyAttributes(decoder, binary(ByteOrder.LITTLE_ENDIAN, + "80005408b000af000101b23903677f00c8436d3842616c697365204f6e653a20416c6c756d616765206d61726368652064e974656374e92c20676172e92c20302e3735206b6d20452064652045636f6c65204175746f726f757465206465204b696e73686173612c2056696c6c65206465204b696e73686173612c204b696e73686173612c2043442c202d342e33343130362c2031352e33343931352c2030313a3030204a616e2031202020454f46")); - //verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN, - // "8000011bb0009e0001015b93032ef6f35994a9545472616d69676f3a204d6f76696e672c20302e3930206b6d205345206f66204372616e6562726f6f6b20466972652053746174696f6e2c2050656e726974682c205379646e65792c2041552c202d33332e37303732322c203135302e37313735392c2053452077697468207370656564203337206b6d2f682c2031393a3438204a616e20342020454f46")); + verifyAttributes(decoder, binary(ByteOrder.LITTLE_ENDIAN, + "8000011bb0009e0001015b93032ef6f35994a9545472616d69676f3a204d6f76696e672c20302e3930206b6d205345206f66204372616e6562726f6f6b20466972652053746174696f6e2c2050656e726974682c205379646e65792c2041552c202d33332e37303732322c203135302e37313735392c2053452077697468207370656564203337206b6d2f682c2031393a3438204a616e20342020454f46")); // Tramigo: Parked, 0.12 km E of McDonald's H.V. dela Costa, Makati, 11:07 Mar 27 // Tramigo: Moving, 0.90 km SE of Cranebrook Fire Station, Penrith, Sydney, AU, -33.70722, 150.71759, SE with speed 37 km/h, 19:48 Jan 4 EOF -- cgit v1.2.3 From 9bbb70a0eb76bd81c494c410772a31f19d6fd584 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Fri, 9 Sep 2016 21:50:58 +1200 Subject: Add more Meiligao parameters --- src/org/traccar/protocol/MeiligaoProtocolDecoder.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/org/traccar/protocol/MeiligaoProtocolDecoder.java b/src/org/traccar/protocol/MeiligaoProtocolDecoder.java index 3510b56a3..f1a87f4b7 100644 --- a/src/org/traccar/protocol/MeiligaoProtocolDecoder.java +++ b/src/org/traccar/protocol/MeiligaoProtocolDecoder.java @@ -85,14 +85,14 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder { .number("(d+),") // rpm .number("(d+),") // speed .number("(d+.d+),") // throttle - .number("d+.d+,") // engine load + .number("(d+.d+),") // engine load .number("(-?d+),") // coolant temp .number("d+.d+,") // instantaneous fuel .number("(d+.d+),") // average fuel - .number("d+.d+,") // driving range + .number("(d+.d+),") // driving range .number("(d+.?d*),") // odometer - .number("d+.d+,") - .number("d+.d+,") + .number("(d+.d+),") + .number("(d+.d+),") .number("(d+),") // error code count .number("d+,") // harsh acceleration count .number("d+") // harsh break count @@ -281,9 +281,13 @@ public class MeiligaoProtocolDecoder extends BaseProtocolDecoder { position.set(Position.KEY_RPM, parser.nextInt()); position.set(Position.KEY_OBD_SPEED, parser.nextInt()); position.set(Position.KEY_THROTTLE, parser.nextDouble()); + position.set("engineLoad", parser.nextDouble()); position.set(Position.PREFIX_TEMP + 1, parser.nextInt()); position.set(Position.KEY_FUEL_CONSUMPTION, parser.nextDouble()); - position.set(Position.KEY_ODOMETER, parser.nextDouble()); + position.set("drivingRange", parser.nextDouble() * 1000); + position.set(Position.KEY_ODOMETER, parser.nextDouble() * 1000); + position.set("singleFuelConsumption", parser.nextDouble()); + position.set("totalFuelConsumption", parser.nextDouble()); return position; } -- cgit v1.2.3 From b4185cbf84bdff2927f7d9a8b0cde9f4ea889353 Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Fri, 9 Sep 2016 15:32:20 +0500 Subject: Store pulse for watch protocol --- src/org/traccar/protocol/WatchProtocolDecoder.java | 11 +++++++++++ test/org/traccar/protocol/WatchProtocolDecoderTest.java | 3 +++ 2 files changed, 14 insertions(+) diff --git a/src/org/traccar/protocol/WatchProtocolDecoder.java b/src/org/traccar/protocol/WatchProtocolDecoder.java index 326552e7f..488d05a3c 100644 --- a/src/org/traccar/protocol/WatchProtocolDecoder.java +++ b/src/org/traccar/protocol/WatchProtocolDecoder.java @@ -25,6 +25,7 @@ import org.traccar.helper.UnitsConverter; import org.traccar.model.Position; import java.net.SocketAddress; +import java.util.Date; import java.util.regex.Pattern; public class WatchProtocolDecoder extends BaseProtocolDecoder { @@ -146,6 +147,16 @@ public class WatchProtocolDecoder extends BaseProtocolDecoder { sendResponse(channel, manufacturer, id, "TKQ"); + } else if (type.equals("PULSE")) { + + Position position = new Position(); + position.setProtocol(getProtocolName()); + position.setDeviceId(deviceSession.getDeviceId()); + getLastLocation(position, new Date()); + position.setValid(false); + position.set("pulse", content.split(",")[1]); + return position; + } return null; diff --git a/test/org/traccar/protocol/WatchProtocolDecoderTest.java b/test/org/traccar/protocol/WatchProtocolDecoderTest.java index a8f7b12bc..6116c2c2b 100644 --- a/test/org/traccar/protocol/WatchProtocolDecoderTest.java +++ b/test/org/traccar/protocol/WatchProtocolDecoderTest.java @@ -54,6 +54,9 @@ public class WatchProtocolDecoderTest extends ProtocolTest { verifyPosition(decoder, text( "[SG*8800000015*0087*AL,220414,134652,A,22.571707,N,113.8613968,E,0.1,0.0,100,7,60,90,1000,50,0001,4,1,460,0,9360,4082,131,9360,4092,148,9360,4091,143,9360,4153,141")); + verifyAttributes(decoder, text( + "[CS*8800000015*0008*PULSE,72")); + } } -- cgit v1.2.3 From 91cc83f8d09f7ee591c9109e61cee6492226a612 Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Fri, 9 Sep 2016 16:37:24 +0500 Subject: Also store "result" --- src/org/traccar/protocol/WatchProtocolDecoder.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/org/traccar/protocol/WatchProtocolDecoder.java b/src/org/traccar/protocol/WatchProtocolDecoder.java index 488d05a3c..d74fdbe81 100644 --- a/src/org/traccar/protocol/WatchProtocolDecoder.java +++ b/src/org/traccar/protocol/WatchProtocolDecoder.java @@ -154,7 +154,9 @@ public class WatchProtocolDecoder extends BaseProtocolDecoder { position.setDeviceId(deviceSession.getDeviceId()); getLastLocation(position, new Date()); position.setValid(false); - position.set("pulse", content.split(",")[1]); + String pulse = content.substring(1); + position.set("pulse", pulse); + position.set(Position.KEY_RESULT, pulse); return position; } -- cgit v1.2.3 From 746b3b34a6ff8b28d8ce43c6257ad458a13dde52 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 10 Sep 2016 11:31:18 +1200 Subject: Disable rest of Tramigo unit tests --- test/org/traccar/protocol/TramigoProtocolDecoderTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/org/traccar/protocol/TramigoProtocolDecoderTest.java b/test/org/traccar/protocol/TramigoProtocolDecoderTest.java index 3818fd7e6..9cf7b9006 100644 --- a/test/org/traccar/protocol/TramigoProtocolDecoderTest.java +++ b/test/org/traccar/protocol/TramigoProtocolDecoderTest.java @@ -18,16 +18,16 @@ public class TramigoProtocolDecoderTest extends ProtocolTest { verifyAttributes(decoder, binary(ByteOrder.LITTLE_ENDIAN, "8000973eb000b90001012128032f14667794e2564176656e7369732053797353657276653a2049676e6974696f6e206f6e2064657465637465642c2073746f707065642c20302e3134206b6d205357206f66204261626120416e696d61736861756e205374726565742d426f64652054686f6d61732053742e2c20537572756c6572652c204c61676f7320436974792c204e472c20362e34383736372c20332e33343737332c2031303a3438204d6172203131202020454f46")); - verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN, + verifyAttributes(decoder, binary(ByteOrder.LITTLE_ENDIAN, "8000b73eb000ad000101fdd2032f1466c9cbe2564176656e7369732053797353657276653a2049676e6974696f6e206f6e2064657465637465642c206d6f76696e672c20302e3131206b6d2045206f6620416c68616a69204d6173686120526f616420466f6f746272696467652c20537572756c6572652c204c61676f7320436974792c204e472c20362e35303031342c20332e33353434332c2031343a3434204d6172203131202020454f46")); verifyAttributes(decoder, binary(ByteOrder.LITTLE_ENDIAN, "8000883eb000d3000101b223032f1466fc89e2564176656e7369732053797353657276653a2049676e6974696f6e206f66662064657465637465642c2049676e4f6e506572696f643a2030303a30323a34312c2073746f707065642c20302e3039206b6d205345206f66204a696e616475205072696d617279205363686f6f6c20416465204f6e6974696d6572696e2053742e2c20537572756c6572652c204c61676f7320436974792c204e472c20362e34383639332c20332e33343636302c2031303a3033204d6172203131202020454f46")); - verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN, + verifyAttributes(decoder, binary(ByteOrder.LITTLE_ENDIAN, "80009a3eb000d300010109ff032f1466b195e2564176656e7369732053797353657276653a2049676e6974696f6e206f66662064657465637465642c2049676e4f6e506572696f643a2030303a30353a31342c2073746f707065642c20302e3039206b6d205345206f66204a696e616475205072696d617279205363686f6f6c20416465204f6e6974696d6572696e2053742e2c20537572756c6572652c204c61676f7320436974792c204e472c20362e34383639312c20332e33343636322c2031303a3533204d6172203131202020454f46")); - verifyPosition(decoder, binary(ByteOrder.LITTLE_ENDIAN, + verifyAttributes(decoder, binary(ByteOrder.LITTLE_ENDIAN, "8000bc3eb000ba000101622c032f1466bacce2564176656e7369732053797353657276653a2049676e6974696f6e206f66662064657465637465642c2049676e4f6e506572696f643a2030303a30343a30302c206d6f76696e672c20617420416b6572656c6520526f61642d4f67756e6c616e612044726976652c20537572756c6572652c204c61676f7320436974792c204e472c20362e35303630332c20332e33353232382c2031343a3438204d6172203131202020454f46")); verifyAttributes(decoder, binary(ByteOrder.LITTLE_ENDIAN, -- cgit v1.2.3 From 1fa0849db4a18ee8a81159e87c6a4e616e9150a8 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 10 Sep 2016 11:32:05 +1200 Subject: Mark Astra messages as valid (fix #2300) --- src/org/traccar/protocol/AstraProtocolDecoder.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/org/traccar/protocol/AstraProtocolDecoder.java b/src/org/traccar/protocol/AstraProtocolDecoder.java index 1889fd3b9..d89a21082 100644 --- a/src/org/traccar/protocol/AstraProtocolDecoder.java +++ b/src/org/traccar/protocol/AstraProtocolDecoder.java @@ -68,6 +68,7 @@ public class AstraProtocolDecoder extends BaseProtocolDecoder { buf.readUnsignedByte(); // index + position.setValid(true); position.setLatitude(buf.readInt() * 0.000001); position.setLongitude(buf.readInt() * 0.000001); -- cgit v1.2.3 From eb02779c29c6a7590ada7ee8d28505e4efe1d8ce Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 10 Sep 2016 16:22:24 +1200 Subject: Update Java libraries --- pom.xml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/pom.xml b/pom.xml index 22000da3d..902a0642e 100644 --- a/pom.xml +++ b/pom.xml @@ -11,8 +11,8 @@ UTF-8 - 9.2.17.v20160517 - 2.23.1 + 9.2.19.v20160908 + 2.23.2 @@ -45,12 +45,12 @@ org.postgresql postgresql - 9.4.1208.jre7 + 9.4.1210.jre7 com.zaxxer HikariCP - 2.4.7 + 2.5.0 io.netty @@ -60,7 +60,7 @@ com.ning async-http-client - 1.9.38 + 1.9.39 org.slf4j @@ -136,7 +136,6 @@ - org.apache.maven.plugins maven-checkstyle-plugin 2.17 -- cgit v1.2.3 From da07079d89c0b030ed0f7a978caa6c68644ab2e1 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 10 Sep 2016 16:25:07 +1200 Subject: Update existing localizations --- web/l10n/ar.json | 36 +++++++++-- web/l10n/bg.json | 54 +++++++++++++---- web/l10n/cs.json | 56 +++++++++++++----- web/l10n/da.json | 56 +++++++++++++----- web/l10n/de.json | 44 +++++++++++--- web/l10n/el.json | 58 +++++++++++++----- web/l10n/es.json | 38 ++++++++++-- web/l10n/fa.json | 126 ++++++++++++++++++++++++--------------- web/l10n/fi.json | 36 +++++++++-- web/l10n/fr.json | 58 +++++++++++++----- web/l10n/he.json | 36 +++++++++-- web/l10n/hu.json | 36 +++++++++-- web/l10n/id.json | 36 +++++++++-- web/l10n/it.json | 64 ++++++++++++++------ web/l10n/ka.json | 36 +++++++++-- web/l10n/lo.json | 36 +++++++++-- web/l10n/lt.json | 36 +++++++++-- web/l10n/ml.json | 36 +++++++++-- web/l10n/ms.json | 36 +++++++++-- web/l10n/nb.json | 56 +++++++++++++----- web/l10n/ne.json | 36 +++++++++-- web/l10n/nl.json | 120 +++++++++++++++++++++++-------------- web/l10n/nn.json | 56 +++++++++++++----- web/l10n/pl.json | 168 ++++++++++++++++++++++++++++++---------------------- web/l10n/pt.json | 36 +++++++++-- web/l10n/pt_BR.json | 38 ++++++++++-- web/l10n/ro.json | 100 ++++++++++++++++++++----------- web/l10n/ru.json | 60 ++++++++++++++----- web/l10n/si.json | 36 +++++++++-- web/l10n/sk.json | 40 +++++++++++-- web/l10n/sl.json | 36 +++++++++-- web/l10n/sr.json | 36 +++++++++-- web/l10n/ta.json | 40 +++++++++++-- web/l10n/th.json | 58 +++++++++++++----- web/l10n/tr.json | 62 +++++++++++++------ web/l10n/uk.json | 158 ++++++++++++++++++++++++++++-------------------- web/l10n/vi.json | 36 +++++++++-- web/l10n/zh.json | 36 +++++++++-- 38 files changed, 1593 insertions(+), 529 deletions(-) diff --git a/web/l10n/ar.json b/web/l10n/ar.json index ac40da9ee..c22bdbc40 100644 --- a/web/l10n/ar.json +++ b/web/l10n/ar.json @@ -24,6 +24,11 @@ "sharedAttribute": "خاصية", "sharedArea": "منطقة", "sharedMute": "Mute", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "خطأ", "errorUnknown": "خطأ غير معروف", "errorConnection": "خطأ في الاتصال", @@ -53,11 +58,11 @@ "settingsGroups": "المجموعات", "settingsServer": "خادم", "settingsUsers": "المستخدمون", - "settingsDistanceUnit": "مسافة", "settingsSpeedUnit": "سرعة", "settingsTwelveHourFormat": "صيغة 12-ساعة", "reportTitle": "تقارير", "reportDevice": "جهاز", + "reportGroup": "Group", "reportFrom": "من", "reportTo": "الي", "reportShow": "اظهار", @@ -89,7 +94,6 @@ "stateValue": "قيمة", "commandTitle": "أمر", "commandSend": "ارسال", - "commandType": "النوع", "commandSent": "تم ارسال الأمر", "commandPositionPeriodic": "تقارير دورية", "commandPositionStop": "ايقاف الارسال", @@ -105,6 +109,7 @@ "commandRequestPhoto": "اطلب صورة", "commandRebootDevice": "أعد تشغيل الجهاز", "commandSendSms": "إرسال رسالة قصيرة", + "commandSendUssd": "Send USSD", "commandSosNumber": "ظبط رقم الطوارئ", "commandSilenceTime": "حدد توقيت الصامت", "commandSetPhonebook": "ضبط سجل الهاتف", @@ -112,6 +117,11 @@ "commandOutputControl": "التحكم بالإخراج", "commandAlarmSpeed": "منبه تعدي السرعة", "commandDeviceIdentification": "تعريف الجهاز", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", "eventDeviceOnline": "الجهاز متصل", "eventDeviceOffline": "الجهاز غير متصل", "eventDeviceMoving": "الجهاز يتحرك", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "الجهاز قد دخل السياج الجغرافي", "eventGeofenceExit": "الجهاز قد خرج من السياج الجغرافي", "eventAlarm": "Alarms", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", "alarm": "Alarm", "alarmSos": "SOS Alarm", "alarmVibration": "Vibration Alarm", @@ -128,9 +140,25 @@ "alarmOverspeed": "Overspeed Alarm", "alarmFallDown": "FallDown Alarm", "alarmLowBattery": "LowBattery Alarm", - "alarmMotion": "Motion Alarm", "alarmFault": "Fault Alarm", "notificationType": "نوع الملاحظة", "notificationWeb": "أرسل عن طريق صفحة الويب", - "notificationMail": "أرسل عن طريق البريد الإلكتروني" + "notificationMail": "أرسل عن طريق البريد الإلكتروني", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/bg.json b/web/l10n/bg.json index 68d631ec8..0dc67dc02 100644 --- a/web/l10n/bg.json +++ b/web/l10n/bg.json @@ -24,13 +24,18 @@ "sharedAttribute": "Атрибут", "sharedArea": "Район", "sharedMute": "Изкл. звук", + "sharedType": "Тип", + "sharedDistance": "Разстояние", + "sharedHourAbbreviation": "час", + "sharedMinuteAbbreviation": "м", + "sharedGetMapState": "Get Map State", "errorTitle": "Грешка", "errorUnknown": "Непозната Грешка", "errorConnection": "Грешка във връзката", "userEmail": "Пощенска кутия", "userPassword": "Парола", "userAdmin": "Admin", - "userRemember": "Remember", + "userRemember": "Запомни", "loginTitle": "Вход", "loginLanguage": "Език", "loginRegister": "Регистрация", @@ -53,11 +58,11 @@ "settingsGroups": "Групи", "settingsServer": "Сървър", "settingsUsers": "Потребител", - "settingsDistanceUnit": "Разстояние", "settingsSpeedUnit": "Скорост", "settingsTwelveHourFormat": "12-hour Format", "reportTitle": "Доклад", "reportDevice": "Устройство", + "reportGroup": "Група", "reportFrom": "От", "reportTo": "До", "reportShow": "Покажи", @@ -89,7 +94,6 @@ "stateValue": "Стойност", "commandTitle": "Команда", "commandSend": "Изпрати", - "commandType": "Тип", "commandSent": "Съобщението е изпратено", "commandPositionPeriodic": "Периодичен Доклад", "commandPositionStop": "Спри Доклада", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Изпрати Снимка", "commandRebootDevice": "Рестартирай Устройство", "commandSendSms": "Изпрати СМС", + "commandSendUssd": "Изпрати USSD", "commandSosNumber": "Задай SOS номер", "commandSilenceTime": "Задай Тих Час", "commandSetPhonebook": "Задай Тел. Указател", @@ -112,6 +117,11 @@ "commandOutputControl": "Output Control", "commandAlarmSpeed": "Аларма за Превишена Скорост", "commandDeviceIdentification": "Идентификация на Устройство", + "commandIndex": "Индекс", + "commandData": "Данни", + "commandPhone": "Телефонен номер", + "commandMessage": "Съобщение", + "eventAll": "Всички събития", "eventDeviceOnline": "Устройството е онлайн", "eventDeviceOffline": "Устройството е офлайн", "eventDeviceMoving": "Устройството е в движение", @@ -120,17 +130,35 @@ "eventCommandResult": "Резултат от командата", "eventGeofenceEnter": "Устройството влезе в зоната", "eventGeofenceExit": "Устройството излезе от зоната", - "eventAlarm": "Alarms", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", + "eventAlarm": "Аларми", + "eventIgnitionOn": "Запалването е включено", + "eventIgnitionOff": "Запалването е изключено", + "alarm": "Аларма", + "alarmSos": "SOS Аларма", + "alarmVibration": "Аларма Вибрация", + "alarmMovement": "Аларма движение", + "alarmOverspeed": "Аларма за Превишена Скорост", "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmMotion": "Motion Alarm", - "alarmFault": "Fault Alarm", + "alarmLowBattery": "Аларма за слаб заряд", + "alarmFault": "Аларма за повреда", "notificationType": "Тип на известието", "notificationWeb": "Изпрати през Web", - "notificationMail": "Изпрати през Mail" + "notificationMail": "Изпрати през Mail", + "reportRoute": "Маршрут", + "reportEvents": "Събития", + "reportTrips": "Пътувания", + "reportSummary": "Общо", + "reportConfigure": "Конфигуриране", + "reportEventTypes": "Тип Събития", + "reportCsv": "CSV", + "reportDeviceName": "Име на Обект", + "reportAverageSpeed": "Средна скорост", + "reportMaximumSpeed": "Максимална скорост", + "reportEngineHours": "Машиночас", + "reportDuration": "Продължителност", + "reportStartTime": "Начален час", + "reportStartAddress": "Стартов Адрес", + "reportEndTime": "Краен час", + "reportEndAddress": "Краен Адрес", + "reportSpentFuel": "Отработено Гориво" } \ No newline at end of file diff --git a/web/l10n/cs.json b/web/l10n/cs.json index e27f767be..c7b3b7921 100644 --- a/web/l10n/cs.json +++ b/web/l10n/cs.json @@ -23,14 +23,19 @@ "sharedAttributes": "Atributy", "sharedAttribute": "Atribut", "sharedArea": "Oblast", - "sharedMute": "Mute", + "sharedMute": "Ztišit", + "sharedType": "Typ", + "sharedDistance": "Vzdálenost", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Získat stav mapy", "errorTitle": "Chyba", "errorUnknown": "Neznámá chyba", "errorConnection": "Chyba spojení", "userEmail": "Email", "userPassword": "Heslo", "userAdmin": "Admin", - "userRemember": "Remember", + "userRemember": "Zapamatovat", "loginTitle": "Přihlášení", "loginLanguage": "Jazyk", "loginRegister": "Registrace", @@ -53,11 +58,11 @@ "settingsGroups": "Skupiny", "settingsServer": "Server", "settingsUsers": "Uživatelé", - "settingsDistanceUnit": "Vzdálenost", "settingsSpeedUnit": "Rychlost", "settingsTwelveHourFormat": "12-hodinový formát", "reportTitle": "Zpráva", "reportDevice": "Zařízení", + "reportGroup": "Skupina", "reportFrom": "Od", "reportTo": "Komu", "reportShow": "Zobrazit", @@ -89,7 +94,6 @@ "stateValue": "Hodnota", "commandTitle": "Příkaz", "commandSend": "Odeslat", - "commandType": "Napsat", "commandSent": "Příkaz byl odeslán", "commandPositionPeriodic": "Pravidelný report", "commandPositionStop": "Zastavit report", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Vyžádat fotku", "commandRebootDevice": "Restartovat zařízení", "commandSendSms": "Odeslat SMS", + "commandSendUssd": "Odeslat USSD", "commandSosNumber": "Nastavit SOS číslo", "commandSilenceTime": "Nastavit čas tichého módu", "commandSetPhonebook": "Nastavit telefonní seznam", @@ -112,6 +117,11 @@ "commandOutputControl": "Ovládání výstupu", "commandAlarmSpeed": "Překročení rychlosti alarmu", "commandDeviceIdentification": "Identifikace zařízení", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Číslo telefonu", + "commandMessage": "Zpráva", + "eventAll": "Všechny události", "eventDeviceOnline": "Zařízení je online", "eventDeviceOffline": "Zařízení je offline", "eventDeviceMoving": "Zařízení s pohybuje", @@ -120,17 +130,35 @@ "eventCommandResult": "Výsledek příkazu", "eventGeofenceEnter": "Zařízení vstoupilo do geografické hranice", "eventGeofenceExit": "Zařízení opustilo geografickou hranici", - "eventAlarm": "Alarms", + "eventAlarm": "Alarmy", + "eventIgnitionOn": "Zažehnutí je ZAPNUTO", + "eventIgnitionOff": "Zažehnutí je VYPNUTO", "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", + "alarmSos": "SOS alarm", + "alarmVibration": "Vibrační alarm", + "alarmMovement": "Pohybový alarm", + "alarmOverspeed": "Alarm překročení rychlosti", + "alarmFallDown": "Pádový alarm", + "alarmLowBattery": "Alarm vybité baterie", + "alarmFault": "Chybový alarm", "notificationType": "Typ oznámení", "notificationWeb": "Odeslat přes web", - "notificationMail": "Odeslat přes mail" + "notificationMail": "Odeslat přes mail", + "reportRoute": "Trasa", + "reportEvents": "Události", + "reportTrips": "Výlety", + "reportSummary": "Souhrn", + "reportConfigure": "Nastavit", + "reportEventTypes": "Typy událostí", + "reportCsv": "CSV", + "reportDeviceName": "Jméno zařízení", + "reportAverageSpeed": "Průměrná rychlost", + "reportMaximumSpeed": "Maximální rychlost", + "reportEngineHours": "Hodiny motoru", + "reportDuration": "Trvání", + "reportStartTime": "Čas startu", + "reportStartAddress": "Adresa startu", + "reportEndTime": "Čas konce", + "reportEndAddress": "Adresa konce", + "reportSpentFuel": "Vyčerpané palivo" } \ No newline at end of file diff --git a/web/l10n/da.json b/web/l10n/da.json index ec8f02816..4d2359cec 100644 --- a/web/l10n/da.json +++ b/web/l10n/da.json @@ -23,14 +23,19 @@ "sharedAttributes": "Egenskaber", "sharedAttribute": "Egenskab", "sharedArea": "Område", - "sharedMute": "Mute", + "sharedMute": "Lydløs", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "t", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Kort status", "errorTitle": "Fejl", "errorUnknown": "Ukendt Fejl", "errorConnection": "Tilslutning fejl", "userEmail": "Email", "userPassword": "Kodeord", "userAdmin": "Admin", - "userRemember": "Remember", + "userRemember": "Husk", "loginTitle": "Log på", "loginLanguage": "Sprog", "loginRegister": "Registrer", @@ -53,11 +58,11 @@ "settingsGroups": "Grupper", "settingsServer": "Server", "settingsUsers": "Brugere", - "settingsDistanceUnit": "Distance", "settingsSpeedUnit": "Hastighed", "settingsTwelveHourFormat": "12 timers format", "reportTitle": "Rapporter", "reportDevice": "Enhed", + "reportGroup": "Gruppe", "reportFrom": "Fra", "reportTo": "Til", "reportShow": "Vis", @@ -89,7 +94,6 @@ "stateValue": "Værdi", "commandTitle": "Kommando", "commandSend": "Send", - "commandType": "Type", "commandSent": "Kommando er blevet sendt", "commandPositionPeriodic": "Periodisk Rapportering", "commandPositionStop": "Stop Rapportering", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Tag billede", "commandRebootDevice": "Genstart enhed", "commandSendSms": "send SMS", + "commandSendUssd": "Send USSD", "commandSosNumber": "Angiv SOS nummer", "commandSilenceTime": "Angiv lydløs tid", "commandSetPhonebook": "Angiv telefonbog", @@ -112,6 +117,11 @@ "commandOutputControl": "Output kontrol", "commandAlarmSpeed": "Hastigheds alarm", "commandDeviceIdentification": "Enheds id", + "commandIndex": "Indeks", + "commandData": "Data", + "commandPhone": "Telefon nummer", + "commandMessage": "Meddelelse", + "eventAll": "Alle begivenheder", "eventDeviceOnline": "Enhed online", "eventDeviceOffline": "Enhed offline", "eventDeviceMoving": "Enhed i bevægelse", @@ -120,17 +130,35 @@ "eventCommandResult": "Resultat af kommando", "eventGeofenceEnter": "Enhed kom indenfor geofence", "eventGeofenceExit": "Enhed kom udenfor geofence", - "eventAlarm": "Alarms", + "eventAlarm": "Alarmer", + "eventIgnitionOn": "Tænding slået til", + "eventIgnitionOff": "Tænding slået fra", "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", + "alarmSos": "SOS alarm", + "alarmVibration": "Vibrations alarm", + "alarmMovement": "Bevægelses alarm", + "alarmOverspeed": "Hastigheds alarm", + "alarmFallDown": "Fald alarm", + "alarmLowBattery": "Lavt batteri alarm", + "alarmFault": "Fejl alarm", "notificationType": "Type af notifikation", "notificationWeb": "Send via Web", - "notificationMail": "Send via mail" + "notificationMail": "Send via mail", + "reportRoute": "Rute", + "reportEvents": "Begivenheder", + "reportTrips": "Ture", + "reportSummary": "Resume", + "reportConfigure": "Konfigurer", + "reportEventTypes": "Begivenheds typer", + "reportCsv": "CSV", + "reportDeviceName": "Enheds navn", + "reportAverageSpeed": "Gennemsnits hastighed", + "reportMaximumSpeed": "Maximum hastighed", + "reportEngineHours": "Motor aktiv timer", + "reportDuration": "Varighed", + "reportStartTime": "Start tidspunkt", + "reportStartAddress": "Start adresse", + "reportEndTime": "Slut tidspunkt", + "reportEndAddress": "Slut adresse", + "reportSpentFuel": "Brændstof forbrug" } \ No newline at end of file diff --git a/web/l10n/de.json b/web/l10n/de.json index 61a4567b1..d20e711c6 100644 --- a/web/l10n/de.json +++ b/web/l10n/de.json @@ -24,13 +24,18 @@ "sharedAttribute": "Eigenschaft", "sharedArea": "Gebiet", "sharedMute": "Stummschalten", + "sharedType": "Typ", + "sharedDistance": "Abstand", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "Fehler", "errorUnknown": "Unbekannter Fehler", "errorConnection": "Verbindungsfehler", "userEmail": "Email", "userPassword": "Passwort", "userAdmin": "Admin", - "userRemember": "Remember", + "userRemember": "Erinnern", "loginTitle": "Anmeldung", "loginLanguage": "Sprache", "loginRegister": "Registrieren", @@ -53,19 +58,19 @@ "settingsGroups": "Gruppen", "settingsServer": "Server", "settingsUsers": "Benutzer", - "settingsDistanceUnit": "Entfernung", "settingsSpeedUnit": "Geschwindigkeit", "settingsTwelveHourFormat": "12 Stunden Format", "reportTitle": "Berichte", "reportDevice": "Gerät", + "reportGroup": "Gruppe", "reportFrom": "Von", "reportTo": "Bis", "reportShow": "Anzeigen", "reportClear": "Leeren", "positionFixTime": "Zeit", "positionValid": "Gültig", - "positionLatitude": "Latitude", - "positionLongitude": "Longitude", + "positionLatitude": "Breitengrad", + "positionLongitude": "Längengrad", "positionAltitude": "Altitude", "positionSpeed": "Geschwindigkeit", "positionCourse": "Richtung", @@ -89,7 +94,6 @@ "stateValue": "Wert", "commandTitle": "Befehl", "commandSend": "Senden", - "commandType": "Typ", "commandSent": "Befehl wurde gesendet", "commandPositionPeriodic": "Periodische Berichte", "commandPositionStop": "Bericht stoppen", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Foto anfordern", "commandRebootDevice": "Gerät neustarten", "commandSendSms": "SMS senden", + "commandSendUssd": "USSD senden", "commandSosNumber": "SOS-Nummer festlegen", "commandSilenceTime": "Ruhezeit festlegen", "commandSetPhonebook": "Telefonbuch festlegen", @@ -112,15 +117,22 @@ "commandOutputControl": "Berichtsteuerung", "commandAlarmSpeed": "Geschwindigkeitsalarm", "commandDeviceIdentification": "Gerätekennung", + "commandIndex": "Index", + "commandData": "Daten", + "commandPhone": "Rufnummer", + "commandMessage": "Nachricht", + "eventAll": "Alle Ereignisse", "eventDeviceOnline": "Gerät ist online", "eventDeviceOffline": "Gerät ist offline", "eventDeviceMoving": "Gerät ist in Bewegung", "eventDeviceStopped": "Gerät hat gestoppt", "eventDeviceOverspeed": "Gerät überschreitet Tempolimit", - "eventCommandResult": "Ergrbnis des Befehls", + "eventCommandResult": "Ergebnis des Befehls", "eventGeofenceEnter": "Gerät hat Geo-Zaun betreten", "eventGeofenceExit": "Gerät hat Geo-Zaun verlassen", "eventAlarm": "Alarme", + "eventIgnitionOn": "Zünding an", + "eventIgnitionOff": "Zündung aus", "alarm": "Alarm", "alarmSos": "SOS Alarm", "alarmVibration": "Erschütterungsalarm", @@ -128,9 +140,25 @@ "alarmOverspeed": "Geschwindigkeitsalarm", "alarmFallDown": "Sturzalarm", "alarmLowBattery": "Batteriealarm", - "alarmMotion": "Bewegungsalarm", "alarmFault": "Fehleralarm", "notificationType": "Art der Benachrichtigung ", "notificationWeb": "Per Web senden", - "notificationMail": "Per E-Mail senden" + "notificationMail": "Per E-Mail senden", + "reportRoute": "Route", + "reportEvents": "Ereignis", + "reportTrips": "Trips", + "reportSummary": "Zusammenfassung", + "reportConfigure": "Konfigurieren", + "reportEventTypes": "Ereignisarten", + "reportCsv": "CSV", + "reportDeviceName": "Gerätename", + "reportAverageSpeed": "Durchschnittsgeschwindigkeit", + "reportMaximumSpeed": "Höchstgeschwindigkeit", + "reportEngineHours": "Betriebsstunden", + "reportDuration": "Dauer", + "reportStartTime": "Startzeit", + "reportStartAddress": "Startort", + "reportEndTime": "Zielzeit", + "reportEndAddress": "Zielort", + "reportSpentFuel": "Kraftstoffverbrauch" } \ No newline at end of file diff --git a/web/l10n/el.json b/web/l10n/el.json index cbadf67ef..49dceda3d 100644 --- a/web/l10n/el.json +++ b/web/l10n/el.json @@ -23,14 +23,19 @@ "sharedAttributes": "Παράμετροι", "sharedAttribute": "Παράμετρος", "sharedArea": "Περιοχή", - "sharedMute": "Mute", + "sharedMute": "Σίγαση", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "Σφάλμα", "errorUnknown": "Άγνωστο σφάλμα", "errorConnection": "Σφάλμα σύνδεσης", "userEmail": "Ηλ. διεύθυνση", "userPassword": "Συνθηματικό", "userAdmin": "Admin", - "userRemember": "Remember", + "userRemember": "Απομνημόνευση", "loginTitle": "Σύνδεση", "loginLanguage": "Γλώσσα", "loginRegister": "Εγγραφή", @@ -53,11 +58,11 @@ "settingsGroups": "Ομάδες", "settingsServer": "Εξυπηρετητής", "settingsUsers": "Χρήστες", - "settingsDistanceUnit": "Απόσταση", "settingsSpeedUnit": "Ταχύτητα", "settingsTwelveHourFormat": "12ώρη μορφή", "reportTitle": "Αναφορές", "reportDevice": "Συσκευή", + "reportGroup": "Group", "reportFrom": "Από", "reportTo": "Έως", "reportShow": "Προβολή", @@ -89,7 +94,6 @@ "stateValue": "Τιμή", "commandTitle": "Εντολή", "commandSend": "Αποστολή", - "commandType": "Τύπος", "commandSent": "Η εντολή έχει σταλεί.", "commandPositionPeriodic": "Περιοδικές αναφορές", "commandPositionStop": "Λήξη αναφορών", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Αίτημα για φωτογραφία", "commandRebootDevice": "Επανεκκίνηση συσκευής", "commandSendSms": "Αποστολή γραπτού μηνύματος (SMS)", + "commandSendUssd": "Send USSD", "commandSosNumber": "Καθορισμός αριθμού SOS", "commandSilenceTime": "Καθορισμός χρόνου σιωπής", "commandSetPhonebook": "Καθορισμός τηλεφωνικού καταλόγου", @@ -112,6 +117,11 @@ "commandOutputControl": "Έλεγχος αποτελεσμάτων", "commandAlarmSpeed": "Υπέρβαση ορίου ταχύτητας", "commandDeviceIdentification": "Αναγνωριστικό συσκευής", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", "eventDeviceOnline": "Η συσκευή είναι συνδεδεμένη", "eventDeviceOffline": "Η συσκευή είναι αποσυνδεδεμένη", "eventDeviceMoving": "Η συσκευή βρίσκεται σε κίνηση", @@ -120,17 +130,35 @@ "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", + "eventAlarm": "Προειδοποιήσεις", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", + "alarm": "Προειδοποίηση", + "alarmSos": "Προειδοποίηση SOS", + "alarmVibration": "Προειδοποίηση δόνησης", + "alarmMovement": "Προειδοποίηση κίνησης", + "alarmOverspeed": "Προειδοποίηση υπέρβασης ορίου ταχύτητας", + "alarmFallDown": "Προειδοποίηση πτώσης", + "alarmLowBattery": "Προειδοποίηση χαμηλής μπαταρίας", + "alarmFault": "Προειδοποίηση σφάλματος", "notificationType": "Τύπος ειδοποίησης", "notificationWeb": "Αποστολή μέσω διαδικτύου", - "notificationMail": "Αποστολή μέσω ηλ. ταχυδρομείου" + "notificationMail": "Αποστολή μέσω ηλ. ταχυδρομείου", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/es.json b/web/l10n/es.json index f8ae21bfc..cadd9b7ec 100644 --- a/web/l10n/es.json +++ b/web/l10n/es.json @@ -24,13 +24,18 @@ "sharedAttribute": "Atributo", "sharedArea": "Área", "sharedMute": "Silenciar", + "sharedType": "Tipo", + "sharedDistance": "Distancia", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Obtener Estado del Mapa", "errorTitle": "Error", "errorUnknown": "Error Desconocido", "errorConnection": "Error de Conexión", "userEmail": "Email", "userPassword": "Contraseña", "userAdmin": "Administrador", - "userRemember": "Remember", + "userRemember": "Recordar", "loginTitle": "Ingresar", "loginLanguage": "Idioma", "loginRegister": "Registrar", @@ -53,11 +58,11 @@ "settingsGroups": "Grupos", "settingsServer": "Servidor", "settingsUsers": "Usuarios", - "settingsDistanceUnit": "Distancia", "settingsSpeedUnit": "Velocidad", "settingsTwelveHourFormat": "Formato de 12 Hrs", "reportTitle": "Reportes", "reportDevice": "Dispositivos", + "reportGroup": "Grupo", "reportFrom": "Desde", "reportTo": "Hasta", "reportShow": "Mostrar", @@ -89,7 +94,6 @@ "stateValue": "Valor", "commandTitle": "Comando", "commandSend": "Enviar", - "commandType": "Tipo", "commandSent": "El Comando ha sido enviado", "commandPositionPeriodic": "Frecuencia de Posiciones", "commandPositionStop": "Detener Reporte de Posiciones", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Solicitar Foto", "commandRebootDevice": "Reiniciar dispositivo", "commandSendSms": "Enviar SMS", + "commandSendUssd": "Enviar USSD", "commandSosNumber": "Establecer el número SOS", "commandSilenceTime": "Setear horario de silencio", "commandSetPhonebook": "Establecer contacto", @@ -112,6 +117,11 @@ "commandOutputControl": "Control de Salidas", "commandAlarmSpeed": "Alerta de Velocidad", "commandDeviceIdentification": "Identificación de Dispositivo", + "commandIndex": "Índice", + "commandData": "Datos", + "commandPhone": "Número de Teléfono", + "commandMessage": "Mensaje", + "eventAll": "Todos los Eventos", "eventDeviceOnline": "El dispositivo está en linea", "eventDeviceOffline": "El dispositivo está fuera de linea", "eventDeviceMoving": "El dispositivo se está moviendo", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "El dispositivo ha ingresado a la geocerca", "eventGeofenceExit": "El dispositivo ha salido de la geocerca", "eventAlarm": "Alarmas", + "eventIgnitionOn": "Encendido ON", + "eventIgnitionOff": "Encendido OFF", "alarm": "Alarma", "alarmSos": "Alarma de SOS", "alarmVibration": "Alarma de vibración", @@ -128,9 +140,25 @@ "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" + "notificationMail": "Envíar vía Email", + "reportRoute": "Ruta", + "reportEvents": "Eventos", + "reportTrips": "Viajes", + "reportSummary": "Sumario", + "reportConfigure": "Configurar", + "reportEventTypes": "Tipos de Evento", + "reportCsv": "CSV", + "reportDeviceName": "Nombre de Dispositivo", + "reportAverageSpeed": "Velocidad promedio", + "reportMaximumSpeed": "Velocidad Máxima", + "reportEngineHours": "Horas Motor", + "reportDuration": "Duración", + "reportStartTime": "Hora de Inicio", + "reportStartAddress": "Dirección de Inicio", + "reportEndTime": "Hora de Fin", + "reportEndAddress": "Dirección de Fin", + "reportSpentFuel": "Combustible utilizado" } \ No newline at end of file diff --git a/web/l10n/fa.json b/web/l10n/fa.json index 5bfec4bb1..1bb66af48 100644 --- a/web/l10n/fa.json +++ b/web/l10n/fa.json @@ -17,25 +17,30 @@ "sharedName": "نام", "sharedDescription": "توضیحات", "sharedSearch": "جستجو", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "Notifications", - "sharedAttributes": "Attributes", - "sharedAttribute": "Attribute", - "sharedArea": "Area", - "sharedMute": "Mute", + "sharedGeofence": "حصار جغرافیایی", + "sharedGeofences": "حصارهای جغرافیایی", + "sharedNotifications": "رویدادها", + "sharedAttributes": "ویژگی ها", + "sharedAttribute": "ویژگی", + "sharedArea": "محدوده", + "sharedMute": "بی صدا", + "sharedType": "نوع خط", + "sharedDistance": "طول مسیر", + "sharedHourAbbreviation": "ساعت", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "خطا", "errorUnknown": "خطا ناشناخته", "errorConnection": "خطا در اتصال", - "userEmail": "نام كاربرى ( ايميل )", - "userPassword": "گذرواژه", + "userEmail": "نام كاربرى ", + "userPassword": "رمز عبور", "userAdmin": "مدیر", - "userRemember": "Remember", + "userRemember": "مرا به خاطر داشته باش", "loginTitle": "ورود", "loginLanguage": "انتخاب زبان", "loginRegister": "ثبت نام", "loginLogin": "ورود", - "loginFailed": "نام كاربرى ( ايميل ) يا گذرواژه اشتباه است", + "loginFailed": "نام كاربرى يا گذرواژه اشتباه است", "loginCreated": "ثبت نام با موفقيت انجام شد", "loginLogout": "خروج", "devicesAndState": "دستگاه ها و وضعیت", @@ -53,11 +58,11 @@ "settingsGroups": "گروه ها", "settingsServer": "سرور", "settingsUsers": "کاربر", - "settingsDistanceUnit": "فاصله", "settingsSpeedUnit": "سرعت", "settingsTwelveHourFormat": "فرمت 12 ساعتی", "reportTitle": "گزارشات ", "reportDevice": "دستگاه", + "reportGroup": "Group", "reportFrom": "از", "reportTo": "تا", "reportShow": "نمایش", @@ -77,60 +82,83 @@ "serverReadonly": "فقط خواندنی", "mapTitle": "نقشه", "mapLayer": "لایه های نقشه", - "mapCustom": "نقشه سفارشی", + "mapCustom": "Custom Map", "mapOsm": "Open Street Map", "mapBingKey": "Bing Maps Key", "mapBingRoad": "Bing Maps Road", "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Circle", + "mapShapePolygon": "چند ضلعی", + "mapShapeCircle": "دایره ", "stateTitle": "وضعیت", "stateName": "ویژگی", "stateValue": "مقدار", - "commandTitle": "فرمان", + "commandTitle": "ارسال دستور به دستگاه", "commandSend": "ارسال", - "commandType": "نوع", "commandSent": "دستور ارسال گردید", "commandPositionPeriodic": "Periodic Reporting", "commandPositionStop": "Stop Reporting", "commandEngineStop": "Engine Stop", "commandEngineResume": "Engine Resume", - "commandFrequency": "فرکانس", + "commandFrequency": "Frequency", "commandUnit": "واحد", "commandCustom": "Custom command", "commandPositionSingle": "Single Reporting", "commandAlarmArm": "Arm Alarm", "commandAlarmDisarm": "Disarm Alarm", - "commandSetTimezone": "Set Timezone", - "commandRequestPhoto": "Request Photo", - "commandRebootDevice": "Reboot Device", + "commandSetTimezone": "تنظیم ساعت محلی", + "commandRequestPhoto": "درخواست عکس", + "commandRebootDevice": "ریست کردن دستگاه", "commandSendSms": "ارسال پیام کوتاه", - "commandSosNumber": "Set SOS Number", - "commandSilenceTime": "Set Silence Time", - "commandSetPhonebook": "Set Phonebook", - "commandVoiceMessage": "Voice Message", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", - "eventDeviceOnline": "Device is online", - "eventDeviceOffline": "Device is offline", - "eventDeviceMoving": "Device is moving", - "eventDeviceStopped": "Device is stopped", - "eventDeviceOverspeed": "Device exceeds the speed", - "eventCommandResult": "Command result", - "eventGeofenceEnter": "Device has entered geofence", - "eventGeofenceExit": "Device has exited geofence", - "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" + "commandSendUssd": "Send USSD", + "commandSosNumber": "انتخاب شماره مدیر ", + "commandSilenceTime": "تنظیم زمان سکوت", + "commandSetPhonebook": "تنظیم دفترچه تلفن", + "commandVoiceMessage": "پیام صوتی", + "commandOutputControl": "تنظیمات خروجی ", + "commandAlarmSpeed": "هشدار سرعت غیرمجاز", + "commandDeviceIdentification": "شناسایی دستگاه", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", + "eventDeviceOnline": "دستگاه آنلاین است ", + "eventDeviceOffline": "دستگاه آفلاین است ", + "eventDeviceMoving": "خودرو در حال حرکت است", + "eventDeviceStopped": "خودرو متوقف است", + "eventDeviceOverspeed": "خودرو از سرعت تعیین شده تجاوز کرده است ", + "eventCommandResult": "نتیجه ارسال دستور", + "eventGeofenceEnter": "خودرو وارد حصار جغرافیایی شد ", + "eventGeofenceExit": "خودرو از حصار جغرافیایی خارج شد", + "eventAlarm": "هشدار ها", + "eventIgnitionOn": "خودرو روشن هست ", + "eventIgnitionOff": "خودرو خاموش است ", + "alarm": "هشدار", + "alarmSos": "هشدار کمک اضطراری", + "alarmVibration": "هشدار ضربه", + "alarmMovement": "هشدار حرکت", + "alarmOverspeed": "هشدار سرعت غیر مجاز", + "alarmFallDown": "هشدار سقوط خودرو", + "alarmLowBattery": "هشدار کم شدن باتری", + "alarmFault": "هشدار خطا در دستگاه", + "notificationType": "تعیین نوع رویداد ", + "notificationWeb": "ارسال از طریق وب", + "notificationMail": "ارسال با ایمیل", + "reportRoute": "مسیر های پیموده شده ", + "reportEvents": "رویداد ها", + "reportTrips": "Trips", + "reportSummary": "خلاصه وضعیت ", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "نام دستگاه ", + "reportAverageSpeed": "سرعت میانگین", + "reportMaximumSpeed": "حداکثر سرعت", + "reportEngineHours": "مدت زمان روشن بودن خودرو", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/fi.json b/web/l10n/fi.json index 9309ab1a1..8df2d7e80 100644 --- a/web/l10n/fi.json +++ b/web/l10n/fi.json @@ -24,6 +24,11 @@ "sharedAttribute": "Attribute", "sharedArea": "Area", "sharedMute": "Mute", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "Virhe", "errorUnknown": "Tuntematon virhe", "errorConnection": "Yhteysvirhe", @@ -53,11 +58,11 @@ "settingsGroups": "Groups", "settingsServer": "Palvelin", "settingsUsers": "Käyttäjät", - "settingsDistanceUnit": "Etäisyys", "settingsSpeedUnit": "Nopeus", "settingsTwelveHourFormat": "12-hour Format", "reportTitle": "Raportit", "reportDevice": "Laite", + "reportGroup": "Group", "reportFrom": "Mistä", "reportTo": "Mihin", "reportShow": "Näytä", @@ -89,7 +94,6 @@ "stateValue": "Arvo", "commandTitle": "Komento", "commandSend": "Lähetä", - "commandType": "Tyyppi", "commandSent": "Komento on lähetetty", "commandPositionPeriodic": "Määräaikaisraportointi", "commandPositionStop": "Lopeta raportointi", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Request Photo", "commandRebootDevice": "Reboot Device", "commandSendSms": "Send SMS", + "commandSendUssd": "Send USSD", "commandSosNumber": "Set SOS Number", "commandSilenceTime": "Set Silence Time", "commandSetPhonebook": "Set Phonebook", @@ -112,6 +117,11 @@ "commandOutputControl": "Output Control", "commandAlarmSpeed": "Overspeed Alarm", "commandDeviceIdentification": "Device Identification", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", "eventDeviceOnline": "Device is online", "eventDeviceOffline": "Device is offline", "eventDeviceMoving": "Device is moving", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", "eventAlarm": "Alarms", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", "alarm": "Alarm", "alarmSos": "SOS Alarm", "alarmVibration": "Vibration Alarm", @@ -128,9 +140,25 @@ "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" + "notificationMail": "Send via Mail", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/fr.json b/web/l10n/fr.json index 487dd7acd..afcc87372 100644 --- a/web/l10n/fr.json +++ b/web/l10n/fr.json @@ -23,14 +23,19 @@ "sharedAttributes": "Attributs", "sharedAttribute": "Attribut", "sharedArea": "Aire", - "sharedMute": "Mute", + "sharedMute": "Muet", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Etat de la carte", "errorTitle": "Erreur", "errorUnknown": "Erreur inconnue", "errorConnection": "Erreur de connexion", "userEmail": "Email", "userPassword": "Mot de Passe", "userAdmin": "Admin", - "userRemember": "Remember", + "userRemember": "Rappel", "loginTitle": "Identification", "loginLanguage": "Langue", "loginRegister": "Inscription", @@ -53,11 +58,11 @@ "settingsGroups": "Groupes", "settingsServer": "Serveur", "settingsUsers": "Utilisateurs", - "settingsDistanceUnit": "Distance", "settingsSpeedUnit": "Vitesse", "settingsTwelveHourFormat": "Format d'heure - 12 heures", "reportTitle": "Rapports", "reportDevice": "Dispositif", + "reportGroup": "Groupe", "reportFrom": "De", "reportTo": "A", "reportShow": "Afficher", @@ -89,7 +94,6 @@ "stateValue": "Valeur", "commandTitle": "Commande", "commandSend": "Envoyer", - "commandType": "Type", "commandSent": "Commande envoyée", "commandPositionPeriodic": "Périodicité du rapport de position", "commandPositionStop": "Arrêt du rapport de position", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Demander une photo", "commandRebootDevice": "Redémarrer l'appareil", "commandSendSms": "Envoyer un SMS", + "commandSendUssd": "Envoyer un USSD", "commandSosNumber": "Régler le n° SOS", "commandSilenceTime": "Définir le temps de silence", "commandSetPhonebook": "Définir l'annuaire", @@ -112,6 +117,11 @@ "commandOutputControl": "Contrôle de la sortie", "commandAlarmSpeed": "Alarme de dépassement de vitesse", "commandDeviceIdentification": "Identification de l'appareil", + "commandIndex": "Index", + "commandData": "Données", + "commandPhone": "Numéro de téléphone", + "commandMessage": "Message", + "eventAll": "Tous les événements", "eventDeviceOnline": "L'appareil est en ligne", "eventDeviceOffline": "L'appareil est hors-ligne", "eventDeviceMoving": "L'appareil est en mouvement", @@ -120,17 +130,35 @@ "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", + "eventAlarm": "Alarmes", + "eventIgnitionOn": "Contact mis", + "eventIgnitionOff": "Contact coupé", + "alarm": "Alarme", + "alarmSos": "Alarme SOS", + "alarmVibration": "Alarme vibration", + "alarmMovement": "Alarme mouvement", + "alarmOverspeed": "Alarme de survitesse", + "alarmFallDown": "Alarme de chute", + "alarmLowBattery": "Alarme de batterie faible", + "alarmFault": "Alarme de problème", "notificationType": "Type de notification", "notificationWeb": "Envoyer par internet", - "notificationMail": "Envoyer par E-mail" + "notificationMail": "Envoyer par E-mail", + "reportRoute": "Route", + "reportEvents": "Evénements", + "reportTrips": "Trajets", + "reportSummary": "Résumé", + "reportConfigure": "Configurer", + "reportEventTypes": "Types d'événements", + "reportCsv": "CSV", + "reportDeviceName": "Nom du dispositif", + "reportAverageSpeed": "Vitesse moyenne", + "reportMaximumSpeed": "Vitesse maximum", + "reportEngineHours": "Heures du moteur", + "reportDuration": "Durée", + "reportStartTime": "Date de départ", + "reportStartAddress": "Adresse de départ", + "reportEndTime": "Date de fin", + "reportEndAddress": "Adresse de fin", + "reportSpentFuel": "Consommation de carburant" } \ No newline at end of file diff --git a/web/l10n/he.json b/web/l10n/he.json index a2bb338bb..d7f4edd84 100644 --- a/web/l10n/he.json +++ b/web/l10n/he.json @@ -24,6 +24,11 @@ "sharedAttribute": "מאפיין", "sharedArea": "איזור", "sharedMute": "Mute", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "שגיאה", "errorUnknown": "שגיאה לא ידועה", "errorConnection": "בעייה בחיבור", @@ -53,11 +58,11 @@ "settingsGroups": "קבוצות", "settingsServer": "שרת", "settingsUsers": "משתמשים", - "settingsDistanceUnit": "מרחק", "settingsSpeedUnit": "מהירות", "settingsTwelveHourFormat": "פורמט של 12 שעות", "reportTitle": "דו\"חות", "reportDevice": "מכשיר", + "reportGroup": "Group", "reportFrom": "מ-", "reportTo": "עד", "reportShow": "הצג", @@ -89,7 +94,6 @@ "stateValue": "ערך", "commandTitle": "פקודה", "commandSend": "שליחה", - "commandType": "סוג", "commandSent": "הפקודה נשלחה", "commandPositionPeriodic": "דיווח תקופתי", "commandPositionStop": "עצור דיווח", @@ -105,6 +109,7 @@ "commandRequestPhoto": "בקשה לתמונה", "commandRebootDevice": "איתחול המכשיר", "commandSendSms": "שלח סמס", + "commandSendUssd": "Send USSD", "commandSosNumber": "קבע מספר חירום", "commandSilenceTime": "קבע משך זמן הדממה", "commandSetPhonebook": "הגדר ספר טלפונים", @@ -112,6 +117,11 @@ "commandOutputControl": "בקרת פלט", "commandAlarmSpeed": "התראת מהירות", "commandDeviceIdentification": "זיהוי מכשיר", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", "eventDeviceOnline": "המכשיר און לין", "eventDeviceOffline": "המכשיר מנותק", "eventDeviceMoving": "המכשיר בתזוזה", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "המכשיר נכנס לתחום המוגדר", "eventGeofenceExit": "המכשיר יצא מהתחום המוגדר", "eventAlarm": "אזעקות", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", "alarm": "אזעקה", "alarmSos": "אתרעת SOS", "alarmVibration": "אזעקת רטט", @@ -128,9 +140,25 @@ "alarmOverspeed": "אזעקת מהירות יתר", "alarmFallDown": "אזעקת נפילה", "alarmLowBattery": "אזעקת סוללה חלשה", - "alarmMotion": "אזעקת תזוזה", "alarmFault": "אזעקת שווא", "notificationType": "סוג ההתראה", "notificationWeb": "שלח דרך ווב", - "notificationMail": "שלח באימייל" + "notificationMail": "שלח באימייל", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/hu.json b/web/l10n/hu.json index bc9604a39..151dccb2f 100644 --- a/web/l10n/hu.json +++ b/web/l10n/hu.json @@ -24,6 +24,11 @@ "sharedAttribute": "Tulajdonság", "sharedArea": "Terület", "sharedMute": "Mute", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "Hiba", "errorUnknown": "Ismeretlen hiba", "errorConnection": "Kapcsolódási hiba", @@ -53,11 +58,11 @@ "settingsGroups": "Csoportok", "settingsServer": "Szerver", "settingsUsers": "Felhasználók", - "settingsDistanceUnit": "Távolság", "settingsSpeedUnit": "Sebesség", "settingsTwelveHourFormat": "12-órás formátum", "reportTitle": "Jelentések", "reportDevice": "Eszköz", + "reportGroup": "Group", "reportFrom": "Kezdő dátum:", "reportTo": "Végső dátum:", "reportShow": "Mutat", @@ -89,7 +94,6 @@ "stateValue": "Érték", "commandTitle": "Parancs", "commandSend": "Küld", - "commandType": "Típus", "commandSent": "A parancs elküldve", "commandPositionPeriodic": "Pozició küldés", "commandPositionStop": "Pozició küldés vége", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Kép lekérés", "commandRebootDevice": "Eszköz újraindítása", "commandSendSms": "SMS küldés", + "commandSendUssd": "Send USSD", "commandSosNumber": "SOS szám beállítás", "commandSilenceTime": "Csendes idő beállítás", "commandSetPhonebook": "Telefonkönyv beállítás", @@ -112,6 +117,11 @@ "commandOutputControl": "Kimenet Ellenőrzés", "commandAlarmSpeed": "Riasztás Gyorshajtásról", "commandDeviceIdentification": "Eszköz azonosító", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", "eventDeviceOnline": "Eszköz online", "eventDeviceOffline": "Eszköz offline", "eventDeviceMoving": "Eszköz mozog", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "Eszköz belépett a geokerítésbe", "eventGeofenceExit": "Eszköz kilépett a geokerítésből", "eventAlarm": "Alarms", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", "alarm": "Alarm", "alarmSos": "SOS Alarm", "alarmVibration": "Vibration Alarm", @@ -128,9 +140,25 @@ "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" + "notificationMail": "Küldés E-mailben", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/id.json b/web/l10n/id.json index 1fed27962..10405748f 100644 --- a/web/l10n/id.json +++ b/web/l10n/id.json @@ -24,6 +24,11 @@ "sharedAttribute": "Attribute", "sharedArea": "Area", "sharedMute": "Mute", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "Error", "errorUnknown": "Error tidak diketahui", "errorConnection": "Koneksi error", @@ -53,11 +58,11 @@ "settingsGroups": "Grup", "settingsServer": "Server", "settingsUsers": "Pengguna", - "settingsDistanceUnit": "Jarak", "settingsSpeedUnit": "Kecepatan", "settingsTwelveHourFormat": "Format 12 Jam", "reportTitle": "Laporan", "reportDevice": "Perangkat", + "reportGroup": "Group", "reportFrom": "Dari", "reportTo": "Ke", "reportShow": "Tampil", @@ -89,7 +94,6 @@ "stateValue": "Nilai", "commandTitle": "Perintah", "commandSend": "Kirim", - "commandType": "Tipe", "commandSent": "Perintah terkirim", "commandPositionPeriodic": "Laporan berkala", "commandPositionStop": "Stop Laporan", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Request Photo", "commandRebootDevice": "Reboot Device", "commandSendSms": "Send SMS", + "commandSendUssd": "Send USSD", "commandSosNumber": "Set SOS Number", "commandSilenceTime": "Set Silence Time", "commandSetPhonebook": "Set Phonebook", @@ -112,6 +117,11 @@ "commandOutputControl": "Output Control", "commandAlarmSpeed": "Overspeed Alarm", "commandDeviceIdentification": "Device Identification", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", "eventDeviceOnline": "Device is online", "eventDeviceOffline": "Device is offline", "eventDeviceMoving": "Device is moving", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", "eventAlarm": "Alarms", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", "alarm": "Alarm", "alarmSos": "SOS Alarm", "alarmVibration": "Vibration Alarm", @@ -128,9 +140,25 @@ "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" + "notificationMail": "Send via Mail", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/it.json b/web/l10n/it.json index ae9184a83..51ba44815 100644 --- a/web/l10n/it.json +++ b/web/l10n/it.json @@ -23,14 +23,19 @@ "sharedAttributes": "Attributi", "sharedAttribute": "Attributo", "sharedArea": "Area", - "sharedMute": "Mute", + "sharedMute": "Muto", + "sharedType": "Tipo", + "sharedDistance": "Distanza", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Ottieni Stato Mappa", "errorTitle": "Errore", "errorUnknown": "Errore sconosciuto", "errorConnection": "Errore di connessione", "userEmail": "Email", "userPassword": "Password", "userAdmin": "Admin", - "userRemember": "Remember", + "userRemember": "Ricorda", "loginTitle": "Login", "loginLanguage": "Lingua", "loginRegister": "Registrazione", @@ -53,11 +58,11 @@ "settingsGroups": "Gruppi", "settingsServer": "Server", "settingsUsers": "Utenti", - "settingsDistanceUnit": "Distanza", "settingsSpeedUnit": "Velocità", "settingsTwelveHourFormat": "Formato 12 ore", "reportTitle": "Reports", "reportDevice": "Dispositivo", + "reportGroup": "Gruppo", "reportFrom": "Da", "reportTo": "A", "reportShow": "Visualizza", @@ -89,7 +94,6 @@ "stateValue": "Valore", "commandTitle": "Commando", "commandSend": "Invia", - "commandType": "Tipo", "commandSent": "Commando inviato", "commandPositionPeriodic": "Report periodici", "commandPositionStop": "Ferma i report", @@ -105,13 +109,19 @@ "commandRequestPhoto": "Richiedi foto", "commandRebootDevice": "Riavvia dispositivo", "commandSendSms": "Invia SMS", + "commandSendUssd": "Invia USSD", "commandSosNumber": "Imposta Numero SOS", "commandSilenceTime": "Imposta Orario Silenzione", "commandSetPhonebook": "Imposta rubrica", "commandVoiceMessage": "Messaggio vocale", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", + "commandOutputControl": "Controllo Output", + "commandAlarmSpeed": "Allarme Velocità Elevata", + "commandDeviceIdentification": "Identificativo dispositivo", + "commandIndex": "Indice", + "commandData": "Dati", + "commandPhone": "Numero Telefonico", + "commandMessage": "Messaggio", + "eventAll": "Tutti gli Eventi", "eventDeviceOnline": "Dispositivo online", "eventDeviceOffline": "Dispositivo offline", "eventDeviceMoving": "Dispositivo in movimento", @@ -120,17 +130,35 @@ "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", + "eventAlarm": "Allarmi", + "eventIgnitionOn": "Accensione è inserita", + "eventIgnitionOff": "Accensione è disinserita", + "alarm": "Allarme", + "alarmSos": "Allarme SOS", + "alarmVibration": "Allarme Vibrazione", + "alarmMovement": "Allarme Movimento", + "alarmOverspeed": "Allarme Velocità Elevata", + "alarmFallDown": "Allarme Caduta", + "alarmLowBattery": "Allarme Livello Batteria Basso", + "alarmFault": "Allarme Guasto", "notificationType": "Tipo notica", "notificationWeb": "Invia tramite Web", - "notificationMail": "Invia tramite Mail" + "notificationMail": "Invia tramite Mail", + "reportRoute": "Percorso", + "reportEvents": "Eventi", + "reportTrips": "Viaggi", + "reportSummary": "Sommario", + "reportConfigure": "Configura", + "reportEventTypes": "Tipi Evento", + "reportCsv": "CSV", + "reportDeviceName": "Nome Dispositivo", + "reportAverageSpeed": "Velocità Media", + "reportMaximumSpeed": "Velocità Massima", + "reportEngineHours": "Ore del Engine", + "reportDuration": "Durata", + "reportStartTime": "Ora di inizio", + "reportStartAddress": "Indirizzo iniziale", + "reportEndTime": "Tempo finale", + "reportEndAddress": "Indirizzo finale", + "reportSpentFuel": "Carburante Consumato" } \ No newline at end of file diff --git a/web/l10n/ka.json b/web/l10n/ka.json index f8f8d50a5..5460a6d72 100644 --- a/web/l10n/ka.json +++ b/web/l10n/ka.json @@ -24,6 +24,11 @@ "sharedAttribute": "Attribute", "sharedArea": "Area", "sharedMute": "Mute", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "შეცდომა", "errorUnknown": "უცნობი შეცდომა", "errorConnection": "კავშირის შეცდომა", @@ -53,11 +58,11 @@ "settingsGroups": "ჯგუფები", "settingsServer": "სერვერი", "settingsUsers": "მომხამრებლები", - "settingsDistanceUnit": "მანძილი", "settingsSpeedUnit": "სიჩქარე", "settingsTwelveHourFormat": "12-საათიანი ფორმატი", "reportTitle": "რეპორტები", "reportDevice": "მოწყობილობა", + "reportGroup": "Group", "reportFrom": "დან", "reportTo": "მდე", "reportShow": "ჩვენება", @@ -89,7 +94,6 @@ "stateValue": "მნიშვნელობა", "commandTitle": "ბრძანება", "commandSend": "გაგზავნა", - "commandType": "ტიპი", "commandSent": "ბრძანება გაიგზავნა", "commandPositionPeriodic": "პერიოდული რეპორტი", "commandPositionStop": "რეპორტის შეჩერება", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Request Photo", "commandRebootDevice": "Reboot Device", "commandSendSms": "Send SMS", + "commandSendUssd": "Send USSD", "commandSosNumber": "Set SOS Number", "commandSilenceTime": "Set Silence Time", "commandSetPhonebook": "Set Phonebook", @@ -112,6 +117,11 @@ "commandOutputControl": "Output Control", "commandAlarmSpeed": "Overspeed Alarm", "commandDeviceIdentification": "Device Identification", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", "eventDeviceOnline": "Device is online", "eventDeviceOffline": "Device is offline", "eventDeviceMoving": "Device is moving", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", "eventAlarm": "Alarms", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", "alarm": "Alarm", "alarmSos": "SOS Alarm", "alarmVibration": "Vibration Alarm", @@ -128,9 +140,25 @@ "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" + "notificationMail": "Send via Mail", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/lo.json b/web/l10n/lo.json index bfd641ac9..7c52a3f71 100644 --- a/web/l10n/lo.json +++ b/web/l10n/lo.json @@ -24,6 +24,11 @@ "sharedAttribute": "ຄຸນລັກສະນະ", "sharedArea": "ພື້ນທີ່", "sharedMute": "ປິດສຽງ", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "ຜິດພາດ", "errorUnknown": "ຂໍ້ຜິດພາດທີ່ບໍ່ຮູ້ຈັກ", "errorConnection": "ການເຊື່ອມຕໍ່ຜິດພາດ", @@ -53,11 +58,11 @@ "settingsGroups": "ຕັ້ງຄ່າກຸ່ມ", "settingsServer": "ຕັ້ງຄ່າລະບົບ", "settingsUsers": "ຕັ້ງຄ່າຜູ້ໃຊ້ງານ", - "settingsDistanceUnit": "ຫນ່ວຍໄລຍະທາງ", "settingsSpeedUnit": "ຫນ່ວຍຄວາມໄວ", "settingsTwelveHourFormat": "ຮູບແບບເວລາ 12 ຊົ່ວໂມງ", "reportTitle": "ລາຍງານ", "reportDevice": "ລາຍງານເຄື່ອງ/ອຸປະກອນ", + "reportGroup": "Group", "reportFrom": "ຈາກ", "reportTo": "ໄປເຖິງ", "reportShow": "ສະແດງ", @@ -89,7 +94,6 @@ "stateValue": "ມູນຄ່າ", "commandTitle": "ຄຳສັ່ງ", "commandSend": "ສົ່ງ", - "commandType": "ຊະນິດ", "commandSent": "ຄຳສັ່ງໄດ້ຖືກສົ່ງແລ້ວ", "commandPositionPeriodic": "ແກ້ໄຂຕ່ຳແຫນ່ງ", "commandPositionStop": "ຕ່ຳແຫນ່ງ ຢຸດ", @@ -105,6 +109,7 @@ "commandRequestPhoto": "ສັ່ງຖ່າຍຮູບ", "commandRebootDevice": "ຣີບູດ", "commandSendSms": "ສົ່ງ SMS", + "commandSendUssd": "Send USSD", "commandSosNumber": "ຕັ້ງຄ່າເລກໝາຍໂທສຸກເສີນ SOS", "commandSilenceTime": "ຕັ້ງຄ່າຊ່ວງເວລາຢຸດນິ່ງ", "commandSetPhonebook": "ຕັ້ງຄ່າສະໝຸດໂທລະສັບ", @@ -112,6 +117,11 @@ "commandOutputControl": "ຄວບຄຸມຂໍ້ມູນທີ່ສົ່ງອອກ", "commandAlarmSpeed": "ແຈ້ງເຕືອນຄວາມໄວເກີນກຳນົດ", "commandDeviceIdentification": "ໝາຍເລກອຸປະກອນ", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", "eventDeviceOnline": "ອຸປະກອນເຊື່ອມຕໍ່ແລ້ວ", "eventDeviceOffline": "ອຸປະກອນບໍ່ໄດ້ເຊື່ອມຕໍ່", "eventDeviceMoving": "ອຸປະກອນກຳລັງເຄື່ອນທີ່", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "ອຸປະກອນເຂົ້າໃນເຂດພື້ນທີ່", "eventGeofenceExit": "ອຸປະກອນອອກນອກເຂດພື້ນທີ່", "eventAlarm": "ລາຍການແຈ້ງເຕືອນ", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", "alarm": "ແຈ້ງເຕືອນ", "alarmSos": "ແຈ້ງເຕືອນ SOS", "alarmVibration": "ແຈ້ງເຕືອນແບບສັ່ນ", @@ -128,9 +140,25 @@ "alarmOverspeed": "ແຈ້ງເຕືອນຄວາມໄວສູງເກີນກຳນົດ", "alarmFallDown": "ແຈ້ງເຕືອນການຕົກ", "alarmLowBattery": "ແຈ້ງເຕືອນແບັດເຕີລີ້ອ່ອນ", - "alarmMotion": "ແຈ້ງເຕື່ອນການເຄື່ອນທີ່", "alarmFault": "ແຈ້ງເຕື່ອນຜິດພາດ", "notificationType": "ຊະນິດການແຈ້ງເຕືອນ", "notificationWeb": "ສົ່ງທາງເວັບ", - "notificationMail": "ສົ່ງທາງເມວ" + "notificationMail": "ສົ່ງທາງເມວ", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/lt.json b/web/l10n/lt.json index 4ea7b5847..adfb51b95 100644 --- a/web/l10n/lt.json +++ b/web/l10n/lt.json @@ -24,6 +24,11 @@ "sharedAttribute": "Attribute", "sharedArea": "Area", "sharedMute": "Mute", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "Klaida", "errorUnknown": "Nenumatyta klaida", "errorConnection": "Ryšio klaida", @@ -53,11 +58,11 @@ "settingsGroups": "Grupės", "settingsServer": "Serveris", "settingsUsers": "Vartotojai", - "settingsDistanceUnit": "Atstumas", "settingsSpeedUnit": "Greitis", "settingsTwelveHourFormat": "12-val formatas", "reportTitle": "Ataskaita", "reportDevice": "Prietaisas", + "reportGroup": "Group", "reportFrom": "Nuo", "reportTo": "Iki", "reportShow": "Rodyti", @@ -89,7 +94,6 @@ "stateValue": "Reikšmė", "commandTitle": "Komanda", "commandSend": "Siųsti", - "commandType": "Tipas", "commandSent": "Komanda buvo išsiųsta", "commandPositionPeriodic": "Periodinės ataskaitos", "commandPositionStop": "Stabdyti ataskaitas", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Request Photo", "commandRebootDevice": "Reboot Device", "commandSendSms": "Send SMS", + "commandSendUssd": "Send USSD", "commandSosNumber": "Set SOS Number", "commandSilenceTime": "Set Silence Time", "commandSetPhonebook": "Set Phonebook", @@ -112,6 +117,11 @@ "commandOutputControl": "Output Control", "commandAlarmSpeed": "Overspeed Alarm", "commandDeviceIdentification": "Device Identification", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", "eventDeviceOnline": "Device is online", "eventDeviceOffline": "Device is offline", "eventDeviceMoving": "Device is moving", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", "eventAlarm": "Alarms", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", "alarm": "Alarm", "alarmSos": "SOS Alarm", "alarmVibration": "Vibration Alarm", @@ -128,9 +140,25 @@ "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" + "notificationMail": "Send via Mail", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/ml.json b/web/l10n/ml.json index eaf288e9f..42a0c497b 100644 --- a/web/l10n/ml.json +++ b/web/l10n/ml.json @@ -24,6 +24,11 @@ "sharedAttribute": "ഗുണവിശേഷങ്ങ", "sharedArea": "പ്രദേശം", "sharedMute": "Mute", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "പിശക്‌", "errorUnknown": "അജ്ഞാത പിശക്", "errorConnection": "കണക്ഷൻ പിശക്", @@ -53,11 +58,11 @@ "settingsGroups": "Groups", "settingsServer": "Server", "settingsUsers": "Users", - "settingsDistanceUnit": "Distance", "settingsSpeedUnit": "വേഗം", "settingsTwelveHourFormat": "12-hour Format", "reportTitle": "Reports", "reportDevice": "ഉപകരണം", + "reportGroup": "Group", "reportFrom": "From", "reportTo": "To", "reportShow": "Show", @@ -89,7 +94,6 @@ "stateValue": "Value", "commandTitle": "Command", "commandSend": "Send", - "commandType": "Type", "commandSent": "Command has been sent", "commandPositionPeriodic": "Periodic Reporting", "commandPositionStop": "Stop Reporting", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Request Photo", "commandRebootDevice": "Reboot Device", "commandSendSms": "Send SMS", + "commandSendUssd": "Send USSD", "commandSosNumber": "Set SOS Number", "commandSilenceTime": "Set Silence Time", "commandSetPhonebook": "Set Phonebook", @@ -112,6 +117,11 @@ "commandOutputControl": "Output Control", "commandAlarmSpeed": "Overspeed Alarm", "commandDeviceIdentification": "Device Identification", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", "eventDeviceOnline": "Device is online", "eventDeviceOffline": "Device is offline", "eventDeviceMoving": "Device is moving", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", "eventAlarm": "Alarms", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", "alarm": "Alarm", "alarmSos": "SOS Alarm", "alarmVibration": "Vibration Alarm", @@ -128,9 +140,25 @@ "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" + "notificationMail": "Send via Mail", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/ms.json b/web/l10n/ms.json index ecb769e9a..4b6525661 100644 --- a/web/l10n/ms.json +++ b/web/l10n/ms.json @@ -24,6 +24,11 @@ "sharedAttribute": "Attribute", "sharedArea": "Area", "sharedMute": "Mute", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "Ralat", "errorUnknown": "Ralat tidak diketahui", "errorConnection": "Ralat penyambungan", @@ -53,11 +58,11 @@ "settingsGroups": "Groups", "settingsServer": "Server", "settingsUsers": "Pengguna", - "settingsDistanceUnit": "Jarak", "settingsSpeedUnit": "Kelajuan", "settingsTwelveHourFormat": "12-hour Format", "reportTitle": "Laporan", "reportDevice": "Peranti", + "reportGroup": "Group", "reportFrom": "Daripada", "reportTo": "Ke", "reportShow": "Papar", @@ -89,7 +94,6 @@ "stateValue": "Nilai", "commandTitle": "Arahan", "commandSend": "Hantar", - "commandType": "Jenis", "commandSent": "Arahan telah dihantar", "commandPositionPeriodic": "Laporan Berkala", "commandPositionStop": "Hentikan Laporan", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Request Photo", "commandRebootDevice": "Reboot Device", "commandSendSms": "Send SMS", + "commandSendUssd": "Send USSD", "commandSosNumber": "Set SOS Number", "commandSilenceTime": "Set Silence Time", "commandSetPhonebook": "Set Phonebook", @@ -112,6 +117,11 @@ "commandOutputControl": "Output Control", "commandAlarmSpeed": "Overspeed Alarm", "commandDeviceIdentification": "Device Identification", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", "eventDeviceOnline": "Device is online", "eventDeviceOffline": "Device is offline", "eventDeviceMoving": "Device is moving", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", "eventAlarm": "Alarms", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", "alarm": "Alarm", "alarmSos": "SOS Alarm", "alarmVibration": "Vibration Alarm", @@ -128,9 +140,25 @@ "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" + "notificationMail": "Send via Mail", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/nb.json b/web/l10n/nb.json index db6273d96..57b3cf2eb 100644 --- a/web/l10n/nb.json +++ b/web/l10n/nb.json @@ -23,14 +23,19 @@ "sharedAttributes": "Egenskaper", "sharedAttribute": "Egenskap", "sharedArea": "Område", - "sharedMute": "Mute", + "sharedMute": "Demp", + "sharedType": "Type", + "sharedDistance": "Avstand", + "sharedHourAbbreviation": "t", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Få karttilstand", "errorTitle": "Feil", "errorUnknown": "Ukjent feil", "errorConnection": "Forbindelse feilet", "userEmail": "E-post", "userPassword": "Passord", "userAdmin": "Admin", - "userRemember": "Remember", + "userRemember": "Husk", "loginTitle": "Logg inn", "loginLanguage": "Språk", "loginRegister": "Registrer", @@ -53,11 +58,11 @@ "settingsGroups": "Grupper", "settingsServer": "Server", "settingsUsers": "Brukere", - "settingsDistanceUnit": "Avstand", "settingsSpeedUnit": "Hastighet", "settingsTwelveHourFormat": "Tolvtimersformat", "reportTitle": "Rapporter", "reportDevice": "Enhet", + "reportGroup": "Gruppe", "reportFrom": "Fra", "reportTo": "Til", "reportShow": "Vis", @@ -89,7 +94,6 @@ "stateValue": "Verdi", "commandTitle": "Kommando", "commandSend": "Send", - "commandType": "Type", "commandSent": "Kommando har blitt sendt", "commandPositionPeriodic": "Periodisk rapportering", "commandPositionStop": "Stopp rapportering", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Be om foto", "commandRebootDevice": "Omstart enhet", "commandSendSms": "Send SMS", + "commandSendUssd": "Send USSD", "commandSosNumber": "Sett SOS-nummer", "commandSilenceTime": "Sett stilletid", "commandSetPhonebook": "Sett telefonbok", @@ -112,6 +117,11 @@ "commandOutputControl": "Utgangkontroll", "commandAlarmSpeed": "Fartsgrensealarm", "commandDeviceIdentification": "Enhetsidentifikasjon", + "commandIndex": "Register", + "commandData": "Data", + "commandPhone": "Telefonnummer", + "commandMessage": "Melding", + "eventAll": "Alle hendelser", "eventDeviceOnline": "Enhet er tilkoblet", "eventDeviceOffline": "Enhet er frakoblet", "eventDeviceMoving": "Enheten beveger seg", @@ -120,17 +130,35 @@ "eventCommandResult": "Kommandoresultat", "eventGeofenceEnter": "Enheten har kommet inn i geo-gjerde", "eventGeofenceExit": "Enheten har forlatt geo-gjerde", - "eventAlarm": "Alarms", + "eventAlarm": "Alarmer", + "eventIgnitionOn": "Tenning er PÅ", + "eventIgnitionOff": "Tenning er AV", "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", + "alarmSos": "SOS-alarm", + "alarmVibration": "Vibrasjonsalarm", + "alarmMovement": "Bevegelsesalarm", + "alarmOverspeed": "Fartsgrensealarm", + "alarmFallDown": "Fallalarm", + "alarmLowBattery": "Lavt-batteri-alarm", + "alarmFault": "Feilalarm", "notificationType": "Varseltype", "notificationWeb": "Send via web", - "notificationMail": "Send via e-post" + "notificationMail": "Send via e-post", + "reportRoute": "Rute", + "reportEvents": "Hendelser", + "reportTrips": "Turer", + "reportSummary": "Oppsumering", + "reportConfigure": "Sett opp", + "reportEventTypes": "Hendelsestyper", + "reportCsv": "CSV", + "reportDeviceName": "Enhetsnavn", + "reportAverageSpeed": "Gjennomsnittshastighet ", + "reportMaximumSpeed": "Maksimumshastighet", + "reportEngineHours": "Motortimer", + "reportDuration": "Varighet", + "reportStartTime": "Starttidspunkt", + "reportStartAddress": "Startadresse", + "reportEndTime": "Sluttidspunkt", + "reportEndAddress": "Sluttadresse", + "reportSpentFuel": "Brukt drivstoff" } \ No newline at end of file diff --git a/web/l10n/ne.json b/web/l10n/ne.json index c36b9a6fb..895db575e 100644 --- a/web/l10n/ne.json +++ b/web/l10n/ne.json @@ -24,6 +24,11 @@ "sharedAttribute": "Attribute", "sharedArea": "Area", "sharedMute": "Mute", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "त्रुटी", "errorUnknown": "अज्ञात त्रुटी ", "errorConnection": "जडान मा त्रुटी भयो ", @@ -53,11 +58,11 @@ "settingsGroups": "Groups", "settingsServer": "सर्भर ", "settingsUsers": "प्रयोगकर्ताहरु ", - "settingsDistanceUnit": "दुरी ", "settingsSpeedUnit": "गति ", "settingsTwelveHourFormat": "12-hour Format", "reportTitle": "प्रतिबेदनहरु ", "reportDevice": "यन्त्र ", + "reportGroup": "Group", "reportFrom": "बाट ", "reportTo": "सम्म ", "reportShow": "देखाउने ", @@ -89,7 +94,6 @@ "stateValue": "मूल्य ", "commandTitle": "आदेश ", "commandSend": "पठाउने ", - "commandType": "प्रकार ", "commandSent": "आदेश पठाईएको छ ", "commandPositionPeriodic": "आवधिक प्रतिबेदन ", "commandPositionStop": "प्रतिबेदन बन्द गर्ने ", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Request Photo", "commandRebootDevice": "Reboot Device", "commandSendSms": "Send SMS", + "commandSendUssd": "Send USSD", "commandSosNumber": "Set SOS Number", "commandSilenceTime": "Set Silence Time", "commandSetPhonebook": "Set Phonebook", @@ -112,6 +117,11 @@ "commandOutputControl": "Output Control", "commandAlarmSpeed": "Overspeed Alarm", "commandDeviceIdentification": "Device Identification", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", "eventDeviceOnline": "Device is online", "eventDeviceOffline": "Device is offline", "eventDeviceMoving": "Device is moving", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", "eventAlarm": "Alarms", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", "alarm": "Alarm", "alarmSos": "SOS Alarm", "alarmVibration": "Vibration Alarm", @@ -128,9 +140,25 @@ "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" + "notificationMail": "Send via Mail", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/nl.json b/web/l10n/nl.json index 85e2071ff..0c1f25f5e 100644 --- a/web/l10n/nl.json +++ b/web/l10n/nl.json @@ -1,16 +1,16 @@ { "sharedLoading": "Laden...", - "sharedSave": "Bewaren", + "sharedSave": "Opslaan", "sharedCancel": "Annuleren", "sharedAdd": "Toevoegen", "sharedEdit": "Bewerken", "sharedRemove": "Verwijderen", - "sharedRemoveConfirm": "Item Verwijderen?", + "sharedRemoveConfirm": "Item verwijderen?", "sharedKm": "km", - "sharedMi": "mijlen", + "sharedMi": "mijl", "sharedKn": "knopen", "sharedKmh": "km/h", - "sharedMph": "mijlen per uur", + "sharedMph": "mijl per uur", "sharedHour": "Uur", "sharedMinute": "Minuut", "sharedSecond": "Seconde", @@ -18,33 +18,38 @@ "sharedDescription": "Omschrijving", "sharedSearch": "Zoeken", "sharedGeofence": "Geografisch gebied", - "sharedGeofences": "Gegrafische gebieden", + "sharedGeofences": "Geografische gebieden", "sharedNotifications": "Melding", "sharedAttributes": "Attributen", "sharedAttribute": "Attribuut", "sharedArea": "Gebied", - "sharedMute": "Mute", + "sharedMute": "Stil", + "sharedType": "Type", + "sharedDistance": "Afstand", + "sharedHourAbbreviation": "u", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Haal kaartstatus op", "errorTitle": "Fout", "errorUnknown": "Onbekende fout", "errorConnection": "Verbindingsfout", - "userEmail": "Email", + "userEmail": "E-mail", "userPassword": "Wachtwoord", "userAdmin": "Administrator", - "userRemember": "Remember", + "userRemember": "Onthouden", "loginTitle": "Inloggen", "loginLanguage": "Taal", "loginRegister": "Registreren", "loginLogin": "Inloggen", - "loginFailed": "Onjuiste emailadres of wachtwoord", - "loginCreated": "Nieuwe gebruiker werd geregistreerd", - "loginLogout": "Uitloggen", - "devicesAndState": "Apparaat en Status", + "loginFailed": "Onjuist e-mailadres of wachtwoord", + "loginCreated": "De nieuwe gebruiker is geregistreerd", + "loginLogout": "Afmelden", + "devicesAndState": "Apparaten en status", "deviceDialog": "Apparaat", "deviceTitle": "Apparaten", "deviceIdentifier": "Identifier", - "deviceLastUpdate": "Laatste Update", + "deviceLastUpdate": "Laatste update", "deviceCommand": "Commando", - "deviceFollow": "Volg", + "deviceFollow": "Volgen", "groupDialog": "Groep", "groupParent": "Groep", "groupNoGroup": "Geen groep", @@ -53,11 +58,11 @@ "settingsGroups": "Groepen", "settingsServer": "Server", "settingsUsers": "Gebruikers", - "settingsDistanceUnit": "Afstand", "settingsSpeedUnit": "Snelheid", - "settingsTwelveHourFormat": "12-uur indeling", + "settingsTwelveHourFormat": "12-uurs indeling", "reportTitle": "Rapportages", "reportDevice": "Apparaat", + "reportGroup": "Groep", "reportFrom": "Van", "reportTo": "Naar", "reportShow": "Laat zien", @@ -66,18 +71,18 @@ "positionValid": "Geldig", "positionLatitude": "Breedtegraad", "positionLongitude": "Lengtegraad", - "positionAltitude": "hoogte", + "positionAltitude": "Hoogte", "positionSpeed": "Snelheid", "positionCourse": "Koers", "positionAddress": "Adres", "positionProtocol": "Protocol", - "serverTitle": "Server Instellingen", + "serverTitle": "Serverinstellingen", "serverZoom": "Zoom", "serverRegistration": "Registratie", "serverReadonly": "Alleen lezen", "mapTitle": "Kaart", "mapLayer": "Kaart laag", - "mapCustom": "Aangepaste Map", + "mapCustom": "Aangepaste kaart", "mapOsm": "OpenStreetMap", "mapBingKey": "Bing Maps sleutel", "mapBingRoad": "Bing Maps Wegen", @@ -89,29 +94,34 @@ "stateValue": "Waarde", "commandTitle": "Commando", "commandSend": "Verstuur", - "commandType": "Type", - "commandSent": "Commando Verstuurd", - "commandPositionPeriodic": "Periodiek Rapporteren", - "commandPositionStop": "Stop Rapporteren", - "commandEngineStop": "Motor Stoppen", - "commandEngineResume": "Motor Hervatten", + "commandSent": "Commando verstuurd", + "commandPositionPeriodic": "Periodiek rapporteren", + "commandPositionStop": "Stop rapporteren", + "commandEngineStop": "Motor stoppen", + "commandEngineResume": "Motor hervatten", "commandFrequency": "Frequentie", "commandUnit": "Eenheid", - "commandCustom": "Custom commando", + "commandCustom": "Aangepast commando", "commandPositionSingle": "Enkel commando", - "commandAlarmArm": "Schakel alarm in", - "commandAlarmDisarm": "Schakel alarm uit", - "commandSetTimezone": "Stel tijdzone in", + "commandAlarmArm": "Alarm aan", + "commandAlarmDisarm": "Alarm uit", + "commandSetTimezone": "Tijdzone instellen", "commandRequestPhoto": "Vraag foto", "commandRebootDevice": "Herstart apparaat", "commandSendSms": "Stuur SMS", - "commandSosNumber": "Bewerk SOS nummer in", - "commandSilenceTime": "Bewerk stille tijd", + "commandSendUssd": "Stuur USDD", + "commandSosNumber": "Stel SOS-nummer in", + "commandSilenceTime": "Stel 'Stille tijd' in", "commandSetPhonebook": "Bewerk telefoonboek", - "commandVoiceMessage": "Spraak bericht", - "commandOutputControl": "Output control", - "commandAlarmSpeed": "Hoge snelheid alarm", - "commandDeviceIdentification": "Apparaat indentificeren", + "commandVoiceMessage": "Spraakbericht", + "commandOutputControl": "Stel output in", + "commandAlarmSpeed": "Snelheidsalarm", + "commandDeviceIdentification": "Apparaatidentificatie", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Telefoonnummer", + "commandMessage": "Bericht", + "eventAll": "Alle gebeurtenissen", "eventDeviceOnline": "Apparaat is online", "eventDeviceOffline": "Apparaat is offline", "eventDeviceMoving": "Apparaat beweegt", @@ -120,17 +130,35 @@ "eventCommandResult": "Commando resultaat", "eventGeofenceEnter": "Appraat is binnen geografisch gebied", "eventGeofenceExit": "Apparaat verlaat geografisch gebied", - "eventAlarm": "Alarms", + "eventAlarm": "Alarmen", + "eventIgnitionOn": "Contact aan", + "eventIgnitionOff": "Contact uit", "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", + "alarmSos": "SOS alarm", + "alarmVibration": "Vibratiealarm", + "alarmMovement": "Bewegingsalarm", + "alarmOverspeed": "Snelheidsalarm", + "alarmFallDown": "Valalarm", + "alarmLowBattery": "Lege batterij alarm", + "alarmFault": "Foutalarm", + "notificationType": "Notificatietype", "notificationWeb": "Stuur via web", - "notificationMail": "Stuur via mail" + "notificationMail": "Stuur via mail", + "reportRoute": "Route", + "reportEvents": "Gebeurtenissen", + "reportTrips": "Ritten", + "reportSummary": "Samenvatting", + "reportConfigure": "Configureer", + "reportEventTypes": "Gebeurtenistypen", + "reportCsv": "CSV", + "reportDeviceName": "Apparaatnaam", + "reportAverageSpeed": "Gemiddelde snelheid", + "reportMaximumSpeed": "Maximale snelheid", + "reportEngineHours": "Draaiuren motor", + "reportDuration": "Duur", + "reportStartTime": "Starttijd", + "reportStartAddress": "Beginadres", + "reportEndTime": "Eindtijd", + "reportEndAddress": "Eindadres", + "reportSpentFuel": "Verbruikte brandstof" } \ No newline at end of file diff --git a/web/l10n/nn.json b/web/l10n/nn.json index c79ed1546..6b6d18073 100644 --- a/web/l10n/nn.json +++ b/web/l10n/nn.json @@ -23,14 +23,19 @@ "sharedAttributes": "Eigenskapar", "sharedAttribute": "Eigenskap", "sharedArea": "Område", - "sharedMute": "Mute", + "sharedMute": "Demp", + "sharedType": "Type", + "sharedDistance": "Avstand", + "sharedHourAbbreviation": "t", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Få karttilstand", "errorTitle": "Feil", "errorUnknown": "Ukjent feil", "errorConnection": "Forbindelse feila", "userEmail": "E-post", "userPassword": "Passord", "userAdmin": "Admin", - "userRemember": "Remember", + "userRemember": "Hugs", "loginTitle": "Logg inn", "loginLanguage": "Språk", "loginRegister": "Registrer", @@ -53,11 +58,11 @@ "settingsGroups": "Gruppar", "settingsServer": "Tenar", "settingsUsers": "Brukarar", - "settingsDistanceUnit": "Avstand", "settingsSpeedUnit": "Hastigheit", "settingsTwelveHourFormat": "Tolvtimersformat", "reportTitle": "Rapportar", "reportDevice": "Eining", + "reportGroup": "Gruppe", "reportFrom": "Frå", "reportTo": "Til", "reportShow": "Syn", @@ -89,7 +94,6 @@ "stateValue": "Verdi", "commandTitle": "Kommando", "commandSend": "Send", - "commandType": "Type", "commandSent": "Kommando har blitt send", "commandPositionPeriodic": "Periodisk rapportering", "commandPositionStop": "Stopp rapportering", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Be om foto", "commandRebootDevice": "Omstart eining", "commandSendSms": "Send SMS", + "commandSendUssd": "Send USSD", "commandSosNumber": "Set SMS-nummer", "commandSilenceTime": "Sett stilletid", "commandSetPhonebook": "Sett telefonkatalog", @@ -112,6 +117,11 @@ "commandOutputControl": "Utgangkontroll", "commandAlarmSpeed": "Fartsgrensealarm", "commandDeviceIdentification": "Einingsidentifikasjon", + "commandIndex": "Register", + "commandData": "Data", + "commandPhone": "Telefonnummer", + "commandMessage": "Melding", + "eventAll": "Alle hendingar", "eventDeviceOnline": "Eining er tilkopla", "eventDeviceOffline": "Eininga er fråkopla", "eventDeviceMoving": "Eininga rører seg", @@ -120,17 +130,35 @@ "eventCommandResult": "Kommandoresultat", "eventGeofenceEnter": "Eininga har komme inn i geo-gjerde", "eventGeofenceExit": "Eininga har forlatt geo-gjerde", - "eventAlarm": "Alarms", + "eventAlarm": "Alarmar", + "eventIgnitionOn": "Tenninga er PÅ", + "eventIgnitionOff": "Tenninga er AV", "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", + "alarmSos": "SOS-alarm", + "alarmVibration": "Vibrasjonsalarm", + "alarmMovement": "Rørslealarm", + "alarmOverspeed": "Fartsgrensealarm", + "alarmFallDown": "Fallalarm", + "alarmLowBattery": "Lavt-batteri-alarm", + "alarmFault": "Feilalarm", "notificationType": "Varseltype", "notificationWeb": "Send via web", - "notificationMail": "Send via e-post" + "notificationMail": "Send via e-post", + "reportRoute": "Rute", + "reportEvents": "Hendingar", + "reportTrips": "Turar", + "reportSummary": "Oppsumering", + "reportConfigure": "Set opp", + "reportEventTypes": "Hendingstypar", + "reportCsv": "CSV", + "reportDeviceName": "Einingsnamn", + "reportAverageSpeed": "Gjennomsnittshastighet", + "reportMaximumSpeed": "Maksimumshastighet", + "reportEngineHours": "Motortimar", + "reportDuration": "Varigheit", + "reportStartTime": "Starttidspunkt", + "reportStartAddress": "Startadresse", + "reportEndTime": "Sluttidspunkt", + "reportEndAddress": "Sluttadresse", + "reportSpentFuel": "Brukt drivstoff" } \ No newline at end of file diff --git a/web/l10n/pl.json b/web/l10n/pl.json index 742103c4f..1bb48aed0 100644 --- a/web/l10n/pl.json +++ b/web/l10n/pl.json @@ -5,7 +5,7 @@ "sharedAdd": "Dodaj", "sharedEdit": "Edytuj", "sharedRemove": "Usuń", - "sharedRemoveConfirm": "Usuń obiekt?", + "sharedRemoveConfirm": "Usunąć obiekt?", "sharedKm": "km", "sharedMi": "mi", "sharedKn": "kn", @@ -14,53 +14,58 @@ "sharedHour": "Godzina", "sharedMinute": "Minuta", "sharedSecond": "Sekunda", - "sharedName": "Name", - "sharedDescription": "Description", - "sharedSearch": "Search", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "Notifications", - "sharedAttributes": "Attributes", - "sharedAttribute": "Attribute", - "sharedArea": "Area", - "sharedMute": "Mute", + "sharedName": "Nazwa", + "sharedDescription": "Opis", + "sharedSearch": "Szukaj", + "sharedGeofence": "Nadzór", + "sharedGeofences": "Nadzory", + "sharedNotifications": "Powiadomienia", + "sharedAttributes": "Atrybuty", + "sharedAttribute": "Atrybut", + "sharedArea": "Strefa", + "sharedMute": "Wycisz", + "sharedType": "Typ", + "sharedDistance": "Odległość", + "sharedHourAbbreviation": "g", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Pobierz stan mapy", "errorTitle": "Bląd", "errorUnknown": "Nieznany błąd", "errorConnection": "Błąd przy połączeniu", "userEmail": "Email", "userPassword": "Hasło", "userAdmin": "Administrator", - "userRemember": "Remember", - "loginTitle": "Logowanie", + "userRemember": "Zapamiętaj", + "loginTitle": "Login", "loginLanguage": "Język", "loginRegister": "Rejestracja", "loginLogin": "Zaloguj", "loginFailed": "Nieprawidłowy adres e-mail lub hasło", "loginCreated": "Nowy użytkownik został zarejestrowany", "loginLogout": "Wyloguj", - "devicesAndState": "Devices and State", + "devicesAndState": "Urządzenia i stan", "deviceDialog": "Urządzenie", "deviceTitle": "Urządzenia", "deviceIdentifier": "Identyfikator", - "deviceLastUpdate": "Last Update", - "deviceCommand": "Zdarzenie", - "deviceFollow": "Follow", - "groupDialog": "Group", - "groupParent": "Group", - "groupNoGroup": "No Group", + "deviceLastUpdate": "Ostatnia aktualizacja", + "deviceCommand": "Polecenie", + "deviceFollow": "Podążaj", + "groupDialog": "Grupa", + "groupParent": "Grupa", + "groupNoGroup": "Brak grupy", "settingsTitle": "Ustawienia", "settingsUser": "Konto", - "settingsGroups": "Groups", + "settingsGroups": "Grupy", "settingsServer": "Serwer", "settingsUsers": "Użytkownicy", - "settingsDistanceUnit": "Dystans", "settingsSpeedUnit": "Prędkość", - "settingsTwelveHourFormat": "12-hour Format", + "settingsTwelveHourFormat": "Format 12-godz.", "reportTitle": "Raporty", "reportDevice": "Urządzenie", + "reportGroup": "Grupa", "reportFrom": "Z", "reportTo": "Do", - "reportShow": "Wczytaj", + "reportShow": "Pokaż", "reportClear": "Wyczyść", "positionFixTime": "Czas", "positionValid": "Aktywny", @@ -74,63 +79,86 @@ "serverTitle": "Ustawienia serwera", "serverZoom": "Powiększenie", "serverRegistration": "Rejestracja", - "serverReadonly": "Readonly", + "serverReadonly": "Tylko do odczytu", "mapTitle": "Mapa", - "mapLayer": "Mapa", + "mapLayer": "Warstwa mapy", "mapCustom": "Własna mapa", "mapOsm": "Open Street Map", "mapBingKey": "Bing Maps Key", "mapBingRoad": "Bing Maps Road", "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Circle", - "stateTitle": "Lokalizacja", - "stateName": "Właściwości", + "mapShapePolygon": "Wielokąt", + "mapShapeCircle": "Okrąg", + "stateTitle": "Stan i lokalizacja", + "stateName": "Właściwość", "stateValue": "Wartość", - "commandTitle": "Zdarzenie", + "commandTitle": "Komenda", "commandSend": "Wyślij", - "commandType": "Typ", "commandSent": "Komenda została wysłana", - "commandPositionPeriodic": "Pozycja - Fix", - "commandPositionStop": "Pozycja - Stop", + "commandPositionPeriodic": "Okresowy raport", + "commandPositionStop": "Zatrzymaj raportowanie", "commandEngineStop": "Silnik - Stop", - "commandEngineResume": "Silnik - Praca", + "commandEngineResume": "Silnik - Wznów", "commandFrequency": "Częstotliwość", "commandUnit": "Jednostka", - "commandCustom": "Custom command", - "commandPositionSingle": "Single Reporting", - "commandAlarmArm": "Arm Alarm", - "commandAlarmDisarm": "Disarm Alarm", - "commandSetTimezone": "Set Timezone", - "commandRequestPhoto": "Request Photo", - "commandRebootDevice": "Reboot Device", - "commandSendSms": "Send SMS", - "commandSosNumber": "Set SOS Number", - "commandSilenceTime": "Set Silence Time", - "commandSetPhonebook": "Set Phonebook", - "commandVoiceMessage": "Voice Message", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", - "eventDeviceOnline": "Device is online", - "eventDeviceOffline": "Device is offline", - "eventDeviceMoving": "Device is moving", - "eventDeviceStopped": "Device is stopped", - "eventDeviceOverspeed": "Device exceeds the speed", - "eventCommandResult": "Command result", - "eventGeofenceEnter": "Device has entered geofence", - "eventGeofenceExit": "Device has exited geofence", - "eventAlarm": "Alarms", + "commandCustom": "Własna komenda", + "commandPositionSingle": "Pojedyncze raportowanie", + "commandAlarmArm": "Włączanie alarmu", + "commandAlarmDisarm": "Wyłączanie alarmu", + "commandSetTimezone": "Ustaw strefę czasową", + "commandRequestPhoto": "Żądanie zdjęcia\n", + "commandRebootDevice": "Zresetuj urządzenie", + "commandSendSms": "Wyślij SMS", + "commandSendUssd": "Wyślij USSD", + "commandSosNumber": "Ustaw numer SOS", + "commandSilenceTime": "Ustaw czas milczenia", + "commandSetPhonebook": "Ustaw książkę adresową", + "commandVoiceMessage": "Wiadomość głosowa", + "commandOutputControl": "Kontrola wyjścia", + "commandAlarmSpeed": "Alarm przekrocznie prędkości", + "commandDeviceIdentification": "Identyfikacja urządzenia", + "commandIndex": "Index", + "commandData": "Dane", + "commandPhone": "Numer telefonu", + "commandMessage": "Wiadomość", + "eventAll": "Wszystkie zdarzenia", + "eventDeviceOnline": "Urządzenie jest online", + "eventDeviceOffline": "Urządzenie jest offline", + "eventDeviceMoving": "Urządzenie przemieszcza się", + "eventDeviceStopped": "Urządzenia zatrzymane", + "eventDeviceOverspeed": "Urządzenie przekroczyło prędkość", + "eventCommandResult": "Rezultat polecenia", + "eventGeofenceEnter": "Urządzenie wkroczyło w strefę nadzoru", + "eventGeofenceExit": "Urządzenie wykroczyło po za strefę nadzoru", + "eventAlarm": "Alarmy", + "eventIgnitionOn": "Zapłon włączony", + "eventIgnitionOff": "Zapłon wyłączony", "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" + "alarmSos": "Alarm SOS", + "alarmVibration": "Alarm wibracyjny", + "alarmMovement": "Alarm ruchu", + "alarmOverspeed": "Alarm przekroczenia prędkości", + "alarmFallDown": "Alarm upadku", + "alarmLowBattery": "Alarm niskiego stanu baterii", + "alarmFault": "Alarm usterki", + "notificationType": "Rodzaj powiadomienia", + "notificationWeb": "Wyślij przez sieć", + "notificationMail": "Wyślij przez Email", + "reportRoute": "Trasa", + "reportEvents": "Zdarzenia", + "reportTrips": "Trips", + "reportSummary": "Podsumowanie", + "reportConfigure": "Konfiguracja", + "reportEventTypes": "Rodzaje zdarzeń", + "reportCsv": "CSV", + "reportDeviceName": "Nazwa urządzenia", + "reportAverageSpeed": "Średnia prędkość", + "reportMaximumSpeed": "Maksymalna prędkość", + "reportEngineHours": "Czas pracy silnika", + "reportDuration": "Czas trwania", + "reportStartTime": "Czas uruchomienia", + "reportStartAddress": "Adres początkowy", + "reportEndTime": "Czas końowy", + "reportEndAddress": "Adres końcowy", + "reportSpentFuel": "Zużyte paliwo" } \ No newline at end of file diff --git a/web/l10n/pt.json b/web/l10n/pt.json index 3492bdc5c..fe7c6aca1 100644 --- a/web/l10n/pt.json +++ b/web/l10n/pt.json @@ -24,6 +24,11 @@ "sharedAttribute": "Attribute", "sharedArea": "Area", "sharedMute": "Mute", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "Erro", "errorUnknown": "Erro desconhecido", "errorConnection": "Erro de conexão", @@ -53,11 +58,11 @@ "settingsGroups": "Groups", "settingsServer": "Servidor", "settingsUsers": "Usuário", - "settingsDistanceUnit": "Distância", "settingsSpeedUnit": "Velocidade", "settingsTwelveHourFormat": "12-hour Format", "reportTitle": "Relatórios", "reportDevice": "Dispositivo", + "reportGroup": "Group", "reportFrom": "De", "reportTo": "Para", "reportShow": "Mostrar", @@ -89,7 +94,6 @@ "stateValue": "Valor", "commandTitle": "Comando", "commandSend": "Enviar", - "commandType": "Tipo", "commandSent": "Comando foi enviado", "commandPositionPeriodic": "Posição Tempo", "commandPositionStop": "Parar Posição", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Request Photo", "commandRebootDevice": "Reboot Device", "commandSendSms": "Send SMS", + "commandSendUssd": "Send USSD", "commandSosNumber": "Set SOS Number", "commandSilenceTime": "Set Silence Time", "commandSetPhonebook": "Set Phonebook", @@ -112,6 +117,11 @@ "commandOutputControl": "Output Control", "commandAlarmSpeed": "Overspeed Alarm", "commandDeviceIdentification": "Device Identification", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", "eventDeviceOnline": "Device is online", "eventDeviceOffline": "Device is offline", "eventDeviceMoving": "Device is moving", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", "eventAlarm": "Alarms", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", "alarm": "Alarm", "alarmSos": "SOS Alarm", "alarmVibration": "Vibration Alarm", @@ -128,9 +140,25 @@ "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" + "notificationMail": "Send via Mail", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/pt_BR.json b/web/l10n/pt_BR.json index 9d613dd1c..0731fddbb 100644 --- a/web/l10n/pt_BR.json +++ b/web/l10n/pt_BR.json @@ -24,13 +24,18 @@ "sharedAttribute": "Atributo", "sharedArea": "Área", "sharedMute": "Mudo", + "sharedType": "Tipo", + "sharedDistance": "Distância", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "Erro", "errorUnknown": "Erro desconhecido", "errorConnection": "Erro de conexão", "userEmail": "Email", "userPassword": "Senha", "userAdmin": "Admin", - "userRemember": "Remember", + "userRemember": "Lembrar", "loginTitle": "Entrar", "loginLanguage": "Idioma", "loginRegister": "Registrar", @@ -53,11 +58,11 @@ "settingsGroups": "Grupos", "settingsServer": "Servidor", "settingsUsers": "Usuários", - "settingsDistanceUnit": "Distância", "settingsSpeedUnit": "Velocidade", "settingsTwelveHourFormat": "Formato de 12 Horas", "reportTitle": "Relatórios", "reportDevice": "Dispositivo", + "reportGroup": "Group", "reportFrom": "De", "reportTo": "Para", "reportShow": "Mostrar", @@ -89,7 +94,6 @@ "stateValue": "Valor", "commandTitle": "Comando", "commandSend": "Enviar", - "commandType": "Tipo", "commandSent": "Comando foi enviado", "commandPositionPeriodic": "Atualização Periódica", "commandPositionStop": "Parar Atualizaçao", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Pegar foto", "commandRebootDevice": "Reiniciar dispositivo", "commandSendSms": "Enviar SMS", + "commandSendUssd": "Enviar USSD", "commandSosNumber": "Definir numero SOS", "commandSilenceTime": "Silencioso", "commandSetPhonebook": "Definir lista telefônica", @@ -112,6 +117,11 @@ "commandOutputControl": "Controle de saída", "commandAlarmSpeed": "Alarme de excesso de velocidade", "commandDeviceIdentification": "Identificação do dispositivo", + "commandIndex": "Indice", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Mensagem", + "eventAll": "All Events", "eventDeviceOnline": "Dispositivo está on-line", "eventDeviceOffline": "Dispositivo está offline", "eventDeviceMoving": "Dispositivo está se movendo", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "Dispositivo entrou geocerca", "eventGeofenceExit": "Dispositivo saiu geocerca", "eventAlarm": "Alarmes", + "eventIgnitionOn": "Ignição está ON", + "eventIgnitionOff": "Ignição está OFF", "alarm": "Alarme", "alarmSos": "Alarme SOS", "alarmVibration": "Alarme de Vibração", @@ -128,9 +140,25 @@ "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" + "notificationMail": "Enviar via Email", + "reportRoute": "Rota", + "reportEvents": "Eventos", + "reportTrips": "Viagens", + "reportSummary": "Resumo", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Nome do Dispositivo ", + "reportAverageSpeed": "Velocidade Média", + "reportMaximumSpeed": "Velocidade Máxima", + "reportEngineHours": "Horas ligado", + "reportDuration": "Duração", + "reportStartTime": "Hora inicial", + "reportStartAddress": "Endereço inicial", + "reportEndTime": "Hora final", + "reportEndAddress": "Endereço final", + "reportSpentFuel": "Gasto de Combustível" } \ No newline at end of file diff --git a/web/l10n/ro.json b/web/l10n/ro.json index 950eb2845..79f3c6a5d 100644 --- a/web/l10n/ro.json +++ b/web/l10n/ro.json @@ -23,14 +23,19 @@ "sharedAttributes": "Atribute", "sharedAttribute": "Atribute", "sharedArea": "Area", - "sharedMute": "Mute", + "sharedMute": "Mut", + "sharedType": "Tip", + "sharedDistance": "Distanţă", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "Eroare", "errorUnknown": "Eroare necunoscută", "errorConnection": "Eroare de conexiune", "userEmail": "Email", "userPassword": "Parolă", "userAdmin": "Admin", - "userRemember": "Remember", + "userRemember": "Ţine minte", "loginTitle": "Autentificare", "loginLanguage": "Limbă", "loginRegister": "Înregistrare", @@ -53,11 +58,11 @@ "settingsGroups": "Grupuri", "settingsServer": "Server", "settingsUsers": "Utilizatori", - "settingsDistanceUnit": "Distanţă", "settingsSpeedUnit": "Viteză", "settingsTwelveHourFormat": "12-oră", "reportTitle": "Rapoarte", "reportDevice": "Dispozitiv", + "reportGroup": "Group", "reportFrom": "De la ", "reportTo": "Până la", "reportShow": "Arată", @@ -89,7 +94,6 @@ "stateValue": "Valoare", "commandTitle": "Comandă", "commandSend": "Trimite", - "commandType": "Tip", "commandSent": "Comandă a fost trimisa", "commandPositionPeriodic": "Raportarea Periodică", "commandPositionStop": "Oprire Raportare", @@ -97,40 +101,64 @@ "commandEngineResume": "Deblocare Motor", "commandFrequency": "Frecvenţă", "commandUnit": "Unitate", - "commandCustom": "Custom command", - "commandPositionSingle": "Single Reporting", - "commandAlarmArm": "Arm Alarm", - "commandAlarmDisarm": "Disarm Alarm", - "commandSetTimezone": "Set Timezone", - "commandRequestPhoto": "Request Photo", - "commandRebootDevice": "Reboot Device", + "commandCustom": "Comandă personalizată", + "commandPositionSingle": "Raportarea unică", + "commandAlarmArm": "Activare Alarmă", + "commandAlarmDisarm": "Dezactivare alarmă", + "commandSetTimezone": "Setare Fus Orar", + "commandRequestPhoto": "Cere Foto", + "commandRebootDevice": "Repornire Dispozitiv", "commandSendSms": "Trimite SMS", + "commandSendUssd": "Send USSD", "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", - "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", - "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" + "commandVoiceMessage": "Mesaj Vocal", + "commandOutputControl": "Controlul de ieșire", + "commandAlarmSpeed": "Alarmă depăşire viteză", + "commandDeviceIdentification": "Identificare dispozitiv", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", + "eventDeviceOnline": "Dispozitivul este pornit", + "eventDeviceOffline": "Dispozitivul este oprit", + "eventDeviceMoving": "Dispozitivul este în mişcare", + "eventDeviceStopped": "Dispozitivul este staţionar", + "eventDeviceOverspeed": "Dispozitivul a depăşit limita de viteză", + "eventCommandResult": "Rezultat comandă", + "eventGeofenceEnter": "Dispozitivul a intrat in zona geofence", + "eventGeofenceExit": "Dispozitivul a ieşit din zona geofence", + "eventAlarm": "Alarme", + "eventIgnitionOn": "Contact pornit", + "eventIgnitionOff": "Contact oprit", + "alarm": "Alarmă", + "alarmSos": "Alarmă SOS", + "alarmVibration": "Alarmă vibraţii", + "alarmMovement": "Alarmă Mişcare", + "alarmOverspeed": "Alarmă depăsire viteză", + "alarmFallDown": "Alarmă cădere", + "alarmLowBattery": "Alarmă nivel baterie scăzută", + "alarmFault": "Alarmă Defect", + "notificationType": "Tip de notificare", + "notificationWeb": "Trimite din Web", + "notificationMail": "Trimite din Mail", + "reportRoute": "Rute", + "reportEvents": "Evenimente", + "reportTrips": "Trips", + "reportSummary": "Sumar", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Nume dispozitiv", + "reportAverageSpeed": "Viteză medie", + "reportMaximumSpeed": "Viteză Maximă", + "reportEngineHours": "Ore motor", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/ru.json b/web/l10n/ru.json index 412443f15..9438ea8fc 100644 --- a/web/l10n/ru.json +++ b/web/l10n/ru.json @@ -23,14 +23,19 @@ "sharedAttributes": "Атрибуты", "sharedAttribute": "Атрибут", "sharedArea": "Область", - "sharedMute": "Mute", + "sharedMute": "Выкл. звук", + "sharedType": "Тип", + "sharedDistance": "Расстояние", + "sharedHourAbbreviation": "ч", + "sharedMinuteAbbreviation": "м", + "sharedGetMapState": "Получить состояние карты", "errorTitle": "Ошибка", "errorUnknown": "Неизвестная ошибка", "errorConnection": "Ошибка соединения", "userEmail": "Email", "userPassword": "Пароль", "userAdmin": "Администратор", - "userRemember": "Remember", + "userRemember": "Запомнить", "loginTitle": "Вход", "loginLanguage": "Язык", "loginRegister": "Регистрация", @@ -53,11 +58,11 @@ "settingsGroups": "Группы", "settingsServer": "Сервер", "settingsUsers": "Пользователи", - "settingsDistanceUnit": "Расстояние", "settingsSpeedUnit": "Скорость", "settingsTwelveHourFormat": "12-часовой формат", "reportTitle": "Отчеты", "reportDevice": "Устройство", + "reportGroup": "Группа", "reportFrom": "С", "reportTo": "По", "reportShow": "Показать", @@ -68,7 +73,7 @@ "positionLongitude": "Долгота", "positionAltitude": "Высота", "positionSpeed": "Скорость", - "positionCourse": "Курс", + "positionCourse": "Направление", "positionAddress": "Адрес", "positionProtocol": "Протокол", "serverTitle": "Настройки Сервера", @@ -89,7 +94,6 @@ "stateValue": "Значение", "commandTitle": "Команда", "commandSend": "Отправить", - "commandType": "Тип", "commandSent": "Команда отправлена", "commandPositionPeriodic": "Начать Отслеживание", "commandPositionStop": "Отменить Отслеживание", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Запросить Фото", "commandRebootDevice": "Перезагрузить Устройство", "commandSendSms": "Отправить СМС", + "commandSendUssd": "Отправить USSD", "commandSosNumber": "Настроить Экстренный Номер", "commandSilenceTime": "Настроить Время Тишины", "commandSetPhonebook": "Настроить Телефонную книгу", @@ -112,6 +117,11 @@ "commandOutputControl": "Контроль Выхода", "commandAlarmSpeed": "Превышение Скорости", "commandDeviceIdentification": "Идентификация Устройства", + "commandIndex": "Индекс", + "commandData": "Данные", + "commandPhone": "Номер Телефона", + "commandMessage": "Сообщение", + "eventAll": "Все События", "eventDeviceOnline": "Устройство в сети", "eventDeviceOffline": "Устройство не в сети", "eventDeviceMoving": "Устройство движется", @@ -120,17 +130,35 @@ "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", + "eventAlarm": "Тревоги", + "eventIgnitionOn": "Зажигание ВКЛ", + "eventIgnitionOff": "Зажигание ВЫКЛ", + "alarm": "Тревога", + "alarmSos": "Тревога SOS", + "alarmVibration": "Тревога Вибрации", + "alarmMovement": "Тревога Сигнализации", + "alarmOverspeed": "Тревога Превышения скорости", + "alarmFallDown": "Тревога Падения", + "alarmLowBattery": "Тревога Батарея разряжена", + "alarmFault": "Тревога Неисправность", "notificationType": "Тип уведомления", "notificationWeb": "Отправлять через Веб", - "notificationMail": "Отправлять через Почту" + "notificationMail": "Отправлять через Почту", + "reportRoute": "Маршрут", + "reportEvents": "События", + "reportTrips": "Поездки", + "reportSummary": "Сводка", + "reportConfigure": "Конфигурировать", + "reportEventTypes": "Тип События", + "reportCsv": "CSV", + "reportDeviceName": "Имя Устройства", + "reportAverageSpeed": "Средняя Скорость", + "reportMaximumSpeed": "Максимальная Скорость", + "reportEngineHours": "Моточасы", + "reportDuration": "Длительность", + "reportStartTime": "Начальное Время", + "reportStartAddress": "Начальный Адрес", + "reportEndTime": "Конечное Время", + "reportEndAddress": "Конечный Адрес", + "reportSpentFuel": "Использовано Топлива" } \ No newline at end of file diff --git a/web/l10n/si.json b/web/l10n/si.json index 8a76ca968..461948687 100644 --- a/web/l10n/si.json +++ b/web/l10n/si.json @@ -24,6 +24,11 @@ "sharedAttribute": "Attribute", "sharedArea": "ප්‍රදේශය", "sharedMute": "Mute", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "දෝෂයක් ", "errorUnknown": "නොදන්නා දෝෂයක් !", "errorConnection": "සම්බන්ධතා දෝෂයක් !", @@ -53,11 +58,11 @@ "settingsGroups": "සමූහ", "settingsServer": "සේවාදායකය", "settingsUsers": "පරිශීලකයන්", - "settingsDistanceUnit": "දුර", "settingsSpeedUnit": "වේගය", "settingsTwelveHourFormat": "12-hour Format", "reportTitle": "වාර්තා", "reportDevice": "උපාංගය", + "reportGroup": "Group", "reportFrom": "සිට", "reportTo": "දක්වා", "reportShow": "පෙන්වන්න", @@ -89,7 +94,6 @@ "stateValue": "අගය", "commandTitle": "විධානය", "commandSend": "යවන්න", - "commandType": "වර්ගය", "commandSent": "විධානය යවා ඇත", "commandPositionPeriodic": "ආවර්තිතව වාර්තා කරන්න", "commandPositionStop": "වාර්තා කිරීම නවත්වන්න", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Request Photo", "commandRebootDevice": "Reboot Device", "commandSendSms": "Send SMS", + "commandSendUssd": "Send USSD", "commandSosNumber": "Set SOS Number", "commandSilenceTime": "Set Silence Time", "commandSetPhonebook": "Set Phonebook", @@ -112,6 +117,11 @@ "commandOutputControl": "Output Control", "commandAlarmSpeed": "Overspeed Alarm", "commandDeviceIdentification": "Device Identification", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", "eventDeviceOnline": "Device is online", "eventDeviceOffline": "Device is offline", "eventDeviceMoving": "Device is moving", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", "eventAlarm": "Alarms", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", "alarm": "Alarm", "alarmSos": "SOS Alarm", "alarmVibration": "Vibration Alarm", @@ -128,9 +140,25 @@ "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" + "notificationMail": "Send via Mail", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/sk.json b/web/l10n/sk.json index 6d36c3dd6..9e807c6f2 100644 --- a/web/l10n/sk.json +++ b/web/l10n/sk.json @@ -23,14 +23,19 @@ "sharedAttributes": "Atribúty", "sharedAttribute": "Atribút", "sharedArea": "Oblasť", - "sharedMute": "Mute", + "sharedMute": "Stlmiť zvuk", + "sharedType": "Typ", + "sharedDistance": "Vzdialenosť", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Získať mapu štát", "errorTitle": "Chyba", "errorUnknown": "Neznáma chyba", "errorConnection": "Chyba pripojenia", "userEmail": "E-mail", "userPassword": "Heslo", "userAdmin": "Admin", - "userRemember": "Remember", + "userRemember": "Zapamätať", "loginTitle": "Prihlásenie", "loginLanguage": "Jazyk", "loginRegister": "Registrovať", @@ -53,11 +58,11 @@ "settingsGroups": "Skupiny", "settingsServer": "Server", "settingsUsers": "Užívatelia", - "settingsDistanceUnit": "Vzdialenosť", "settingsSpeedUnit": "Rýchlosť jazdy", "settingsTwelveHourFormat": "12-hodinový formát", "reportTitle": "Správy", "reportDevice": "Zariadenie", + "reportGroup": "Skupina", "reportFrom": "Od", "reportTo": "Do", "reportShow": "Zobraziť", @@ -89,7 +94,6 @@ "stateValue": "Hodnota", "commandTitle": "Príkaz", "commandSend": "Odoslať", - "commandType": "Typ", "commandSent": "Príkaz bol odoslaný", "commandPositionPeriodic": "Pravidelné podávanie správ", "commandPositionStop": "Zastavte podávanie správ", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Poslať fotku", "commandRebootDevice": "Rebootovať zariadenie", "commandSendSms": "Postať SMS", + "commandSendUssd": "Postať USSD", "commandSosNumber": "Nastaviť čislo SOS", "commandSilenceTime": "Nastav tichý čas", "commandSetPhonebook": "Nastav telefónny zoznam", @@ -112,6 +117,11 @@ "commandOutputControl": "Výstupná kontrola", "commandAlarmSpeed": "Upozornenie na prekročenie rýchlosti", "commandDeviceIdentification": "Identifikácia zariadenia", + "commandIndex": "Index", + "commandData": "Dáta", + "commandPhone": "Telefónne číslo", + "commandMessage": "Správa", + "eventAll": "Všetky akcie", "eventDeviceOnline": "Zariadenie je online", "eventDeviceOffline": "Zariadenie je offline", "eventDeviceMoving": "Zariadenie je v pohybe", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "Zariadenie vstúpilo geofence zóny", "eventGeofenceExit": "Zariadenie opustilo geofence zónu", "eventAlarm": "Upozornenia", + "eventIgnitionOn": "Zapaľovanie je ZAPNUTÉ", + "eventIgnitionOff": "Zapaľovanie je VYPNUTÉ", "alarm": "Upozornenie", "alarmSos": "SOS upozornenie", "alarmVibration": "Vibračné upozornenie", @@ -128,9 +140,25 @@ "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" + "notificationMail": "Poslať e-mailom", + "reportRoute": "Cesta", + "reportEvents": "Udalosti", + "reportTrips": "Cesty", + "reportSummary": "Zhrnutie", + "reportConfigure": "Konfigurácia", + "reportEventTypes": "Typy udalstí", + "reportCsv": "CSV", + "reportDeviceName": "Meno zariadenia", + "reportAverageSpeed": "Priemerná rýchlosť", + "reportMaximumSpeed": "Maximálna rýchlosť", + "reportEngineHours": "Prevádzkové hodiny motora", + "reportDuration": "Trvanie", + "reportStartTime": "Čas spustenia", + "reportStartAddress": "Počiatočná adresa", + "reportEndTime": "Čas ukončenia", + "reportEndAddress": "Koncová adresa", + "reportSpentFuel": "Spotrebované palivo" } \ No newline at end of file diff --git a/web/l10n/sl.json b/web/l10n/sl.json index fc5e5e309..2f3eab05b 100644 --- a/web/l10n/sl.json +++ b/web/l10n/sl.json @@ -24,6 +24,11 @@ "sharedAttribute": "Attribute", "sharedArea": "Area", "sharedMute": "Mute", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "Napaka", "errorUnknown": "Neznana napaka", "errorConnection": "Napaka v povezavi", @@ -53,11 +58,11 @@ "settingsGroups": "Groups", "settingsServer": "Strežnik", "settingsUsers": "Uporabniki", - "settingsDistanceUnit": "Razdalja", "settingsSpeedUnit": "Hitrost", "settingsTwelveHourFormat": "12-hour Format", "reportTitle": "Poročila", "reportDevice": "Naprava", + "reportGroup": "Group", "reportFrom": "Od", "reportTo": "Do", "reportShow": "Prikaži", @@ -89,7 +94,6 @@ "stateValue": "Vrednost", "commandTitle": "Ukaz", "commandSend": "Pošlji", - "commandType": "Tip", "commandSent": "Ukaz poslan", "commandPositionPeriodic": "Periodično poročanje", "commandPositionStop": "Ustavi poročanje", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Request Photo", "commandRebootDevice": "Reboot Device", "commandSendSms": "Send SMS", + "commandSendUssd": "Send USSD", "commandSosNumber": "Set SOS Number", "commandSilenceTime": "Set Silence Time", "commandSetPhonebook": "Set Phonebook", @@ -112,6 +117,11 @@ "commandOutputControl": "Output Control", "commandAlarmSpeed": "Overspeed Alarm", "commandDeviceIdentification": "Device Identification", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", "eventDeviceOnline": "Device is online", "eventDeviceOffline": "Device is offline", "eventDeviceMoving": "Device is moving", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", "eventAlarm": "Alarms", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", "alarm": "Alarm", "alarmSos": "SOS Alarm", "alarmVibration": "Vibration Alarm", @@ -128,9 +140,25 @@ "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" + "notificationMail": "Send via Mail", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/sr.json b/web/l10n/sr.json index 1b36e514e..abab9409d 100644 --- a/web/l10n/sr.json +++ b/web/l10n/sr.json @@ -24,6 +24,11 @@ "sharedAttribute": "Osobina", "sharedArea": "Oblast", "sharedMute": "Nečujno", + "sharedType": "Tip", + "sharedDistance": "Razdaljina", + "sharedHourAbbreviation": "č", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Stanje mape", "errorTitle": "Greška", "errorUnknown": "Nepoznata greška", "errorConnection": "Greška u konekciji", @@ -53,11 +58,11 @@ "settingsGroups": "Grupe", "settingsServer": "Server", "settingsUsers": "Korisnici", - "settingsDistanceUnit": "Udaljenost", "settingsSpeedUnit": "Brzina", "settingsTwelveHourFormat": "12-časovni format", "reportTitle": "Izveštaji", "reportDevice": "Uređaj", + "reportGroup": "Grupa", "reportFrom": "Od", "reportTo": "Do", "reportShow": "Prikaži", @@ -89,7 +94,6 @@ "stateValue": "Vrednost", "commandTitle": "Komanda", "commandSend": "Pošalji", - "commandType": "Tip", "commandSent": "Komanda je poslata", "commandPositionPeriodic": "Periodično izveštavanje", "commandPositionStop": "Prekini izveštavanja", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Zahtevaj fotografiju", "commandRebootDevice": "Ponovo pokreni uređaj", "commandSendSms": "Pošalji SMS", + "commandSendUssd": "Pošalji USSD", "commandSosNumber": "Podesi SOS broj", "commandSilenceTime": "Podesi nečujno vreme ", "commandSetPhonebook": "Podesi kontakte", @@ -112,6 +117,11 @@ "commandOutputControl": "Kontrola izlaza", "commandAlarmSpeed": "Alarm prekoračenja brzine", "commandDeviceIdentification": "Identifikacija uređaja", + "commandIndex": "Lista", + "commandData": "Podaci", + "commandPhone": "Broj telefona", + "commandMessage": "Poruka", + "eventAll": "Svi događaji", "eventDeviceOnline": "Uređaj je na mreži", "eventDeviceOffline": "Uređaj je van mreže", "eventDeviceMoving": "Uređaj se kreće", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "Uređaj je ušao u geoogradu", "eventGeofenceExit": "Uređaj je izašao iz geoograde", "eventAlarm": "Alarmi", + "eventIgnitionOn": "Kontakt uklj.", + "eventIgnitionOff": "Kontakt isklj.", "alarm": "Alarm", "alarmSos": "SOS alarm", "alarmVibration": "Alarm vibracija", @@ -128,9 +140,25 @@ "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" + "notificationMail": "Pošalji putem Email-a", + "reportRoute": "Ruta", + "reportEvents": "Događaji", + "reportTrips": "Vožnje", + "reportSummary": "Izveštaj", + "reportConfigure": "Konfiguracija", + "reportEventTypes": "Tip događaja", + "reportCsv": "CSV", + "reportDeviceName": "Ime uređaja", + "reportAverageSpeed": "Prosečna brzina", + "reportMaximumSpeed": "Maksimalna brzina", + "reportEngineHours": "Radni sati", + "reportDuration": "Trajanje", + "reportStartTime": "Startno vreme", + "reportStartAddress": "Početna adresa", + "reportEndTime": "Završno vreme", + "reportEndAddress": "Krajnja adresa", + "reportSpentFuel": "Potrošeno goriva" } \ No newline at end of file diff --git a/web/l10n/ta.json b/web/l10n/ta.json index f328fcaf1..71882b917 100644 --- a/web/l10n/ta.json +++ b/web/l10n/ta.json @@ -24,13 +24,18 @@ "sharedAttribute": "பண்பு", "sharedArea": "பகுதி", "sharedMute": "Mute", + "sharedType": "வகை", + "sharedDistance": "தொலைவு", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "பிழை", "errorUnknown": "அறியப்படாத பிழை", "errorConnection": "இணைப்புப் பிழை", "userEmail": "மின்னஞ்சல்", "userPassword": "கடவுச்சொல்", "userAdmin": "நிர்வாகி", - "userRemember": "Remember", + "userRemember": "நினைவில் கொள்", "loginTitle": "உள் நுழை", "loginLanguage": "மொழி", "loginRegister": "பதிவு செய்ய", @@ -53,11 +58,11 @@ "settingsGroups": "குழுக்கள்", "settingsServer": "சர்வர்", "settingsUsers": "உறுப்பினர்கள்", - "settingsDistanceUnit": "தூரம்", "settingsSpeedUnit": "வேகம்", "settingsTwelveHourFormat": "12 மணி நேர வடிவம்", "reportTitle": "அறிக்கை", "reportDevice": "சாதனம்", + "reportGroup": "Group", "reportFrom": "இருந்து", "reportTo": "வரை", "reportShow": "காண்பி", @@ -89,7 +94,6 @@ "stateValue": "மதிப்பு", "commandTitle": "கட்டளை", "commandSend": "அனுப்பு", - "commandType": "டைப்", "commandSent": "கட்டளை அனுப்பப்பட்டது", "commandPositionPeriodic": "காலமுறை அறிக்கையிடல்", "commandPositionStop": "அறிக்கையிடுதல் நிறுத்து ", @@ -104,7 +108,8 @@ "commandSetTimezone": "நேர மண்டலம்", "commandRequestPhoto": "புகைப்படம் வேண்டு", "commandRebootDevice": "சாதன மறுதுவக்கம்", - "commandSendSms": "குருஞ்செதி அனுப்பு", + "commandSendSms": "குருஞ்செய்தி அனுப்பு", + "commandSendUssd": "Send USSD", "commandSosNumber": "அவசர அழைப்பு எண்(SOS)", "commandSilenceTime": "அமைதி நேரம் அமைக்க", "commandSetPhonebook": "தொலைபேசிப்புத்தகம் அமை", @@ -112,6 +117,11 @@ "commandOutputControl": "வெளியீட்டு கட்டுப்பாடு", "commandAlarmSpeed": "அதி வேக அலறி ", "commandDeviceIdentification": "\nசாதன அடையாளம்", + "commandIndex": "Index", + "commandData": "தரவு", + "commandPhone": "தொலைபேசி எண்", + "commandMessage": "குறுஞ்செய்தி", + "eventAll": "All Events", "eventDeviceOnline": "சாதனம் இணைப்பில் உள்ளது", "eventDeviceOffline": "சாதன இணைப்பு துண்டிக்கபட்டது", "eventDeviceMoving": "சாதனம் நகருகிறது", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "சாதனம் பூகோள வேலியினுள் நுழைந்துள்ளது", "eventGeofenceExit": "சாதனம் பூகோள வேலியை விட்டு வெளியேறியது", "eventAlarm": "Alarms", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", "alarm": "Alarm", "alarmSos": "SOS Alarm", "alarmVibration": "Vibration Alarm", @@ -128,9 +140,25 @@ "alarmOverspeed": "Overspeed Alarm", "alarmFallDown": "FallDown Alarm", "alarmLowBattery": "LowBattery Alarm", - "alarmMotion": "Motion Alarm", "alarmFault": "Fault Alarm", "notificationType": "type of notification", "notificationWeb": "வலைதளம் வழி அனுப்புக ", - "notificationMail": "மின்னஞ்சல் வழி அனுப்புக" + "notificationMail": "மின்னஞ்சல் வழி அனுப்புக", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/th.json b/web/l10n/th.json index 63373804e..80f71c0f2 100644 --- a/web/l10n/th.json +++ b/web/l10n/th.json @@ -23,14 +23,19 @@ "sharedAttributes": "คุณลักษณะ", "sharedAttribute": "คุณลักษณะ", "sharedArea": "พื้นที่", - "sharedMute": "Mute", + "sharedMute": "ปิดเสียง", + "sharedType": "ชนิด", + "sharedDistance": "ระยะทาง", + "sharedHourAbbreviation": "ชม.", + "sharedMinuteAbbreviation": "นาที", + "sharedGetMapState": "ได้รับสถานะแผนที่", "errorTitle": "ผิดพลาด", "errorUnknown": "ข้อผิดพลาดที่ไม่รู้จัก", "errorConnection": "การเชื่อมต่อผิดพลาด", "userEmail": "อีเมล์", "userPassword": "รหัสผ่าน", "userAdmin": "ผู้ดูแลระบบ", - "userRemember": "Remember", + "userRemember": "จำไว้", "loginTitle": "เข้าสู่ระบบ", "loginLanguage": "ภาษา", "loginRegister": "ลงทะเบียน", @@ -53,11 +58,11 @@ "settingsGroups": "ตั้งค่ากลุ่ม", "settingsServer": "ตั้งค่าระบบ", "settingsUsers": "ตั้งค่าผู้ใช้งาน", - "settingsDistanceUnit": "หน่วยระยะทาง", "settingsSpeedUnit": "หน่วยความเร็ว", "settingsTwelveHourFormat": "รูปแบบเวลา 12 ชั่วโมง", "reportTitle": "รายงาน", "reportDevice": "รายงานเครื่อง/อุปกรณ์", + "reportGroup": "กลุ่ม", "reportFrom": "จาก", "reportTo": "ไปถึง", "reportShow": "แสดง", @@ -89,7 +94,6 @@ "stateValue": "มูลค่า", "commandTitle": "คำสั่ง", "commandSend": "ส่ง", - "commandType": "ชนิด", "commandSent": "คำสั่งถูกส่งไปแล้ว", "commandPositionPeriodic": "แก้ไขตำแหน่ง", "commandPositionStop": "ตำแหน่ง หยุด", @@ -105,6 +109,7 @@ "commandRequestPhoto": "สั่งถ่ายภาพ", "commandRebootDevice": "รีบูต", "commandSendSms": "ส่ง SMS", + "commandSendUssd": "ส่ง USSD", "commandSosNumber": "ตั้งค่าเลขหมายโทรฉุกเฉิน SOS", "commandSilenceTime": "ตั้งค่าช่วงเาลาหยุดนิ่ง", "commandSetPhonebook": "ตั้งค่าสมุดโทรศัพท์", @@ -112,6 +117,11 @@ "commandOutputControl": "ควบคุมข้อมูลที่ส่งออก", "commandAlarmSpeed": "แจ้งเตือนความเร็วเกินกำหนด", "commandDeviceIdentification": "หมายเลขอุปกรณ์", + "commandIndex": "ดัชนี", + "commandData": "ข้อมูล", + "commandPhone": "หมายเลขโทรศัพท์", + "commandMessage": "ข้อความ", + "eventAll": "เหตุการณ์ทั้งหมด", "eventDeviceOnline": "อุปกรณ์เชื่อมต่อแล้ว", "eventDeviceOffline": "อุปกรณ์ไม่ได้เชื่อมต่อ", "eventDeviceMoving": "อุปกรณ์กำลังเคลื่อนที่", @@ -120,17 +130,35 @@ "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", + "eventAlarm": "แจ้งเตือน", + "eventIgnitionOn": "สวิทย์กุญแจ เปิด", + "eventIgnitionOff": "สวิทย์กุญแจ ปิด", + "alarm": "แจ้งเตือน", + "alarmSos": "แจ้งเตือนฉุกเฉิน SOS", + "alarmVibration": "แจ้งเตือนการสั่นสะเทือน", + "alarmMovement": "แจ้งเตือนการเคลื่อนไหว", + "alarmOverspeed": "แจ้งเตือนความเร็วเกินกำหนด", + "alarmFallDown": "แจ้งเตือนการล้ม", + "alarmLowBattery": "แจ้งเตือนแบตเตอรี่เหลือน้อย", + "alarmFault": "แจ้งเตือนข้อผิดพลาด", "notificationType": "ชนิดการแจ้งเตือน", "notificationWeb": "ส่งทางเว็บ", - "notificationMail": "ส่งทางเมล์" + "notificationMail": "ส่งทางเมล์", + "reportRoute": "เส้นทาง", + "reportEvents": "เหตุการณ์", + "reportTrips": "การเดินทาง", + "reportSummary": "ผลรวม", + "reportConfigure": "ตั้งค่า", + "reportEventTypes": "ประเภทเหตุการณ์", + "reportCsv": "CSV", + "reportDeviceName": "ชื่ออุปกรณ์", + "reportAverageSpeed": "ความเร็วเฉลี่ย", + "reportMaximumSpeed": "ความเร็วสูงสุด", + "reportEngineHours": "เวลาการทำงานเครื่องยนต์", + "reportDuration": "ช่วงเวลา", + "reportStartTime": "เวลาเริ่มต้น", + "reportStartAddress": "จุดเริ่มต้น", + "reportEndTime": "เวลาสิ้นสุด", + "reportEndAddress": "จุดสิ้นสุด", + "reportSpentFuel": "เชื้อเพลิงที่ใช้" } \ No newline at end of file diff --git a/web/l10n/tr.json b/web/l10n/tr.json index 7a00586c2..326d1ad36 100644 --- a/web/l10n/tr.json +++ b/web/l10n/tr.json @@ -23,14 +23,19 @@ "sharedAttributes": "Nitelikler", "sharedAttribute": "Nitelik", "sharedArea": "Bölge", - "sharedMute": "Mute", + "sharedMute": "Sessiz", + "sharedType": "Tip", + "sharedDistance": "Mesafe", + "sharedHourAbbreviation": "s", + "sharedMinuteAbbreviation": "d", + "sharedGetMapState": "Harita Durumunu Getir", "errorTitle": "Hata", "errorUnknown": "Bilinmeyen hata ", "errorConnection": "Bağlantı Hatası", "userEmail": "Eposta", "userPassword": "Şifre", "userAdmin": "Yönetici", - "userRemember": "Remember", + "userRemember": "Hatırla", "loginTitle": "Oturum aç", "loginLanguage": "Lisan", "loginRegister": "Kayıt", @@ -53,11 +58,11 @@ "settingsGroups": "Gruplar", "settingsServer": "Sunucu", "settingsUsers": "Kullanıcı", - "settingsDistanceUnit": "Mesafe", "settingsSpeedUnit": "Hız", "settingsTwelveHourFormat": "12 saat formatı", "reportTitle": "Raporlar", "reportDevice": "Aygıt", + "reportGroup": "Grup", "reportFrom": "Başlangıç", "reportTo": "Varış", "reportShow": "Göster", @@ -89,7 +94,6 @@ "stateValue": "Değer", "commandTitle": "Komut", "commandSend": "Gönder", - "commandType": "Tip", "commandSent": "Komut gönderildi", "commandPositionPeriodic": "Periyodik Rapor", "commandPositionStop": "Raporlamayı Durdur", @@ -105,13 +109,19 @@ "commandRequestPhoto": "Fotoğraf İste", "commandRebootDevice": "Aygıtı Yeniden Başlat", "commandSendSms": "SMS Gönder", + "commandSendUssd": "USSD Gönder", "commandSosNumber": "Acil Durum Numarasını Belirle", "commandSilenceTime": "Sessiz Zamanı Belirle", "commandSetPhonebook": "Telefon Defterini Belirle", "commandVoiceMessage": "Ses Mesajı", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", + "commandOutputControl": "Çıkış Kontrolü", + "commandAlarmSpeed": "Hız Alarmı", + "commandDeviceIdentification": "Cihaz Tanımı", + "commandIndex": "Fihrist", + "commandData": "Veri", + "commandPhone": "Telefon Numarası", + "commandMessage": "Mesaj", + "eventAll": "Tüm Olaylar", "eventDeviceOnline": "Cihaz çevrimiçi", "eventDeviceOffline": "Cihaz çevrimdışı", "eventDeviceMoving": "Cihaz hareket halinde", @@ -120,17 +130,35 @@ "eventCommandResult": "Komut sonucu", "eventGeofenceEnter": "Cihaz güvenli bölgede", "eventGeofenceExit": "Cihaz güvenli bölgeden çıktı", - "eventAlarm": "Alarms", + "eventAlarm": "Alarmlar", + "eventIgnitionOn": "Kontak Açık", + "eventIgnitionOff": "Kontak Kapalı", "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", + "alarmSos": "İmdat Alarmı", + "alarmVibration": "Darbe Alarmı", + "alarmMovement": "Hareket Alarmı", + "alarmOverspeed": "Hız Alarmı", + "alarmFallDown": "Düşme Alarmı", + "alarmLowBattery": "Batarya Düşük Alarmı", + "alarmFault": "Arıza Alarmı", "notificationType": "Bildirim tipi", "notificationWeb": "Wed ile gönder", - "notificationMail": "E-posta ile gönder" + "notificationMail": "E-posta ile gönder", + "reportRoute": "Rota", + "reportEvents": "Olaylar", + "reportTrips": "Turlar", + "reportSummary": "Özet", + "reportConfigure": "Ayarlar", + "reportEventTypes": "Olay Tipleri", + "reportCsv": "CVS", + "reportDeviceName": "Cihaz İsmi", + "reportAverageSpeed": "Ortalama Hız", + "reportMaximumSpeed": "En Fazla Hız", + "reportEngineHours": "Motor Saatleri", + "reportDuration": "Süre", + "reportStartTime": "Başlama Zamanı", + "reportStartAddress": "Başlama Adresi", + "reportEndTime": "Bittiği Zaman", + "reportEndAddress": "Bittiği Adres", + "reportSpentFuel": "Tüketilen Yakıt" } \ No newline at end of file diff --git a/web/l10n/uk.json b/web/l10n/uk.json index 02096ec5d..444b1923b 100644 --- a/web/l10n/uk.json +++ b/web/l10n/uk.json @@ -8,29 +8,34 @@ "sharedRemoveConfirm": "Видалити пункт?", "sharedKm": "км", "sharedMi": "Милi", - "sharedKn": "kn", + "sharedKn": "Вузли", "sharedKmh": "км/год", "sharedMph": "Миль/год", "sharedHour": "Години", "sharedMinute": "Хвилини", "sharedSecond": "Секунди", - "sharedName": "Name", - "sharedDescription": "Description", - "sharedSearch": "Search", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "Notifications", - "sharedAttributes": "Attributes", - "sharedAttribute": "Attribute", - "sharedArea": "Area", - "sharedMute": "Mute", + "sharedName": "Назва пристрою", + "sharedDescription": "Опис", + "sharedSearch": "Пошук", + "sharedGeofence": "Геозон", + "sharedGeofences": "Геозони", + "sharedNotifications": "Повідомлення", + "sharedAttributes": "Атрибути", + "sharedAttribute": "Атрибут", + "sharedArea": "Площа", + "sharedMute": "Без звуку", + "sharedType": "Тип", + "sharedDistance": "Відстань", + "sharedHourAbbreviation": "г", + "sharedMinuteAbbreviation": "хв", + "sharedGetMapState": "Get Map State", "errorTitle": "Помилка", "errorUnknown": "Невiдома помилка", "errorConnection": "Помилка з'єднання", "userEmail": "E-mail", "userPassword": "Пароль", "userAdmin": "Адмiнiстратор", - "userRemember": "Remember", + "userRemember": "Запам'ятати", "loginTitle": "Логiн", "loginLanguage": "Мова", "loginRegister": "Реєстрація", @@ -38,26 +43,26 @@ "loginFailed": "Неправильне адреса електронної пошти або пароль", "loginCreated": "Новий користувач був зареєстрований", "loginLogout": "Вийти", - "devicesAndState": "Devices and State", + "devicesAndState": "Пристрої та стан", "deviceDialog": "Пристрій", "deviceTitle": " Прилади", "deviceIdentifier": "Iдентифікатор", - "deviceLastUpdate": "Last Update", + "deviceLastUpdate": "Останнє оновлення", "deviceCommand": "Команда", - "deviceFollow": "Follow", - "groupDialog": "Group", - "groupParent": "Group", - "groupNoGroup": "No Group", + "deviceFollow": "Слідувати", + "groupDialog": "Група", + "groupParent": "Група", + "groupNoGroup": "Група відсутня", "settingsTitle": "Налаштування", "settingsUser": "Аккаунт", - "settingsGroups": "Groups", + "settingsGroups": "Групи", "settingsServer": "Сервер", - "settingsUsers": "Користувач", - "settingsDistanceUnit": "Відстань", + "settingsUsers": "Користувачі", "settingsSpeedUnit": "Швидкість", - "settingsTwelveHourFormat": "12-hour Format", + "settingsTwelveHourFormat": "12-годинний формат", "reportTitle": "Звіти", "reportDevice": "Пристрій ", + "reportGroup": "Group", "reportFrom": "З", "reportTo": "До", "reportShow": "Показати", @@ -68,28 +73,27 @@ "positionLongitude": "Довгота ", "positionAltitude": "Висота", "positionSpeed": "Швидкість ", - "positionCourse": "Курс", + "positionCourse": "Напрямок", "positionAddress": "Адреса", "positionProtocol": "Протокол", "serverTitle": "Налаштування сервера", "serverZoom": "Наближення", "serverRegistration": "Реєстрація", - "serverReadonly": "Readonly", + "serverReadonly": "Лише для читання", "mapTitle": "Карта", - "mapLayer": "Шар карти", - "mapCustom": "Користувальницька карта", + "mapLayer": "Використання мап", + "mapCustom": "Користувацька мапа", "mapOsm": "Open Street Map", "mapBingKey": "Ключ Bing Maps ", "mapBingRoad": "Bing Maps Дороги", "mapBingAerial": "Bing Maps Супутник", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Circle", + "mapShapePolygon": "Багатокутник", + "mapShapeCircle": "Коло", "stateTitle": "Стан", "stateName": "Атрибут", "stateValue": "Значення ", "commandTitle": "Команда ", "commandSend": "Послати. ", - "commandType": "Тип", "commandSent": "Команда була відправлена", "commandPositionPeriodic": "Періодична звітність", "commandPositionStop": "Скасувати відстеження. ", @@ -97,40 +101,64 @@ "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", - "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" + "commandCustom": "Користувацька команда", + "commandPositionSingle": "Разове відстеження", + "commandAlarmArm": "Активувати сигналізацію", + "commandAlarmDisarm": "Вимкнути сигналізацію", + "commandSetTimezone": "Часовий пояс", + "commandRequestPhoto": "Запит фото", + "commandRebootDevice": "Перезавантаження пристрою", + "commandSendSms": "Надсилання SMS", + "commandSendUssd": "Надсилання USSD", + "commandSosNumber": "Номер SOS", + "commandSilenceTime": "Встановити час пиші", + "commandSetPhonebook": "Телефонна книга", + "commandVoiceMessage": "Голосове повідомлення", + "commandOutputControl": "Контроль виходу", + "commandAlarmSpeed": "Перевищення швидкості", + "commandDeviceIdentification": "Ідентифікація пристрою", + "commandIndex": "Індекс", + "commandData": "Дані", + "commandPhone": "Phone Number", + "commandMessage": "Повідомлення", + "eventAll": "All Events", + "eventDeviceOnline": "Пристрій з'єднався", + "eventDeviceOffline": "Пристрій від'єднався", + "eventDeviceMoving": "Пристрій в русі", + "eventDeviceStopped": "Пристрій зупинився", + "eventDeviceOverspeed": "Пристрій перевищує швидкість", + "eventCommandResult": "Результат команди", + "eventGeofenceEnter": "Пристрій в геозоні", + "eventGeofenceExit": "Пристрій залишив геозону", + "eventAlarm": "Тревоги", + "eventIgnitionOn": "Запалення УВІМК", + "eventIgnitionOff": "Запалення ВИМК", + "alarm": "Тревога", + "alarmSos": "Тривога SOS", + "alarmVibration": "Тривога вібрації", + "alarmMovement": "Тривога сигналізації", + "alarmOverspeed": "Тривога перевищення швидкості", + "alarmFallDown": "Тривога падіння", + "alarmLowBattery": "Тривога низького заряду", + "alarmFault": "Тривога несправності", + "notificationType": "Тип повідомлення", + "notificationWeb": "Повідомляти у Web", + "notificationMail": "Надсилати на Пошту", + "reportRoute": "Маршрут", + "reportEvents": "Події", + "reportTrips": "Подорожі", + "reportSummary": "Звіт", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Ім'я пристрою", + "reportAverageSpeed": "Середня швидкість", + "reportMaximumSpeed": "Максимальна швидкість", + "reportEngineHours": "Мотогодинник", + "reportDuration": "Тривалість", + "reportStartTime": "Початковий час", + "reportStartAddress": "Початкова адреса", + "reportEndTime": "Кінцевий час", + "reportEndAddress": "Кінцева адреса", + "reportSpentFuel": "Використано палива" } \ No newline at end of file diff --git a/web/l10n/vi.json b/web/l10n/vi.json index 55d356751..f344d7a0b 100644 --- a/web/l10n/vi.json +++ b/web/l10n/vi.json @@ -24,6 +24,11 @@ "sharedAttribute": "Thuộc tính", "sharedArea": "Khu vực", "sharedMute": "Mute", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "Lỗi", "errorUnknown": "Lỗi không xác định", "errorConnection": "Lỗi kết nối", @@ -53,11 +58,11 @@ "settingsGroups": "Nhóm", "settingsServer": "Máy chủ", "settingsUsers": "Người dùng", - "settingsDistanceUnit": "Khoảng cách", "settingsSpeedUnit": "Tốc độ", "settingsTwelveHourFormat": "Định dạng 12h", "reportTitle": "Báo cáo", "reportDevice": "Thiết bị", + "reportGroup": "Group", "reportFrom": "Từ", "reportTo": "Đến", "reportShow": "Hiển thị", @@ -89,7 +94,6 @@ "stateValue": "Giá trị", "commandTitle": "Lệnh", "commandSend": "Gửi", - "commandType": "Loại", "commandSent": "Lệnh đã được gửi", "commandPositionPeriodic": "Báo cáo định kỳ", "commandPositionStop": "Dừng báo cáo", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Yêu cầu ảnh", "commandRebootDevice": "Khởi động lại thiết bị", "commandSendSms": "Gửi tin nhắn", + "commandSendUssd": "Send USSD", "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", @@ -112,6 +117,11 @@ "commandOutputControl": "Điều khiển đầu ra", "commandAlarmSpeed": "Báo động quá tốc độ", "commandDeviceIdentification": "Định danh thiết bị", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", "eventDeviceOnline": "Thiết bị trực tuyến", "eventDeviceOffline": "Thiết bị ngoại tuyến", "eventDeviceMoving": "Thiết bị đang di chuyển", @@ -121,6 +131,8 @@ "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", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", "alarm": "Alarm", "alarmSos": "SOS Alarm", "alarmVibration": "Vibration Alarm", @@ -128,9 +140,25 @@ "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" + "notificationMail": "Gửi từ mail", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file diff --git a/web/l10n/zh.json b/web/l10n/zh.json index bb9761d43..d1838771c 100644 --- a/web/l10n/zh.json +++ b/web/l10n/zh.json @@ -24,6 +24,11 @@ "sharedAttribute": "Attribute", "sharedArea": "Area", "sharedMute": "Mute", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", "errorTitle": "错误", "errorUnknown": "未知错误", "errorConnection": "连接错误", @@ -53,11 +58,11 @@ "settingsGroups": "Groups", "settingsServer": "服务器", "settingsUsers": "用户", - "settingsDistanceUnit": "距离", "settingsSpeedUnit": "速度", "settingsTwelveHourFormat": "12-hour Format", "reportTitle": "报表", "reportDevice": "设备", + "reportGroup": "Group", "reportFrom": "开始", "reportTo": "结束", "reportShow": "显示", @@ -89,7 +94,6 @@ "stateValue": "数值", "commandTitle": "命令", "commandSend": "发送", - "commandType": "类型", "commandSent": "命令已发送", "commandPositionPeriodic": "位置获取", "commandPositionStop": "位置停止", @@ -105,6 +109,7 @@ "commandRequestPhoto": "Request Photo", "commandRebootDevice": "Reboot Device", "commandSendSms": "Send SMS", + "commandSendUssd": "Send USSD", "commandSosNumber": "Set SOS Number", "commandSilenceTime": "Set Silence Time", "commandSetPhonebook": "Set Phonebook", @@ -112,6 +117,11 @@ "commandOutputControl": "Output Control", "commandAlarmSpeed": "Overspeed Alarm", "commandDeviceIdentification": "Device Identification", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", "eventDeviceOnline": "Device is online", "eventDeviceOffline": "Device is offline", "eventDeviceMoving": "Device is moving", @@ -121,6 +131,8 @@ "eventGeofenceEnter": "Device has entered geofence", "eventGeofenceExit": "Device has exited geofence", "eventAlarm": "Alarms", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", "alarm": "Alarm", "alarmSos": "SOS Alarm", "alarmVibration": "Vibration Alarm", @@ -128,9 +140,25 @@ "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" + "notificationMail": "Send via Mail", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" } \ No newline at end of file -- cgit v1.2.3 From d93b9c02042f269d0854752b761115cdaf605ef7 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 10 Sep 2016 16:32:30 +1200 Subject: Add new web translations --- web/l10n/hi.json | 164 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ web/l10n/sq.json | 164 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ web/locale.js | 2 + 3 files changed, 330 insertions(+) create mode 100644 web/l10n/hi.json create mode 100644 web/l10n/sq.json diff --git a/web/l10n/hi.json b/web/l10n/hi.json new file mode 100644 index 000000000..a4ff7f0ac --- /dev/null +++ b/web/l10n/hi.json @@ -0,0 +1,164 @@ +{ + "sharedLoading": "लोड हो रहा है...", + "sharedSave": "सुरक्षित करें", + "sharedCancel": "रद्द करें ", + "sharedAdd": "जोड़ें ", + "sharedEdit": "संपादित करें", + "sharedRemove": "हटाएं ", + "sharedRemoveConfirm": "आइटम हटाएं ?", + "sharedKm": "किमी ( किलोमीटर )", + "sharedMi": "एम आई ", + "sharedKn": "के.एन.", + "sharedKmh": "किमी / घंटा", + "sharedMph": "मील प्रति घंटा", + "sharedHour": "घंटा", + "sharedMinute": "मिनट", + "sharedSecond": "सैकंड ", + "sharedName": "नाम", + "sharedDescription": "विवरण", + "sharedSearch": "खोजें", + "sharedGeofence": "जिओफेंस / भूगौलिक परिधि", + "sharedGeofences": "जिओफेंसस / भूगौलिक परिधियां", + "sharedNotifications": "सूचनाएं", + "sharedAttributes": "गुण", + "sharedAttribute": "गुण", + "sharedArea": "क्षेत्र", + "sharedMute": "Mute", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", + "errorTitle": "त्रुटि", + "errorUnknown": "अज्ञात त्रुटि", + "errorConnection": "कनेक्शन त्रुटि", + "userEmail": "ईमेल", + "userPassword": "पासवर्ड / गोपनीय शब्द ", + "userAdmin": "एडमिन / व्यवस्थापक", + "userRemember": "Remember", + "loginTitle": "लॉगिन / प्रवेश करें ", + "loginLanguage": "भाषा", + "loginRegister": "रजिस्टर / पंजीकृत करें", + "loginLogin": "लॉगिन / प्रवेश करें ", + "loginFailed": "ई-मेल पता या पासवर्ड गलत है", + "loginCreated": "New user has been registered", + "loginLogout": "लॉगआउट / निष्कासन करें", + "devicesAndState": "Devices and State", + "deviceDialog": "उपकरण", + "deviceTitle": "उपकरण", + "deviceIdentifier": "पहचानकर्ता", + "deviceLastUpdate": "Last Update", + "deviceCommand": "आदेश", + "deviceFollow": "Follow", + "groupDialog": "Group", + "groupParent": "Group", + "groupNoGroup": "No Group", + "settingsTitle": "सेटिंग्स", + "settingsUser": "Account", + "settingsGroups": "Groups", + "settingsServer": "सर्वर", + "settingsUsers": "Users", + "settingsSpeedUnit": "गति", + "settingsTwelveHourFormat": "12-hour Format", + "reportTitle": "Reports", + "reportDevice": "उपकरण", + "reportGroup": "Group", + "reportFrom": "From", + "reportTo": "To", + "reportShow": "Show", + "reportClear": "Clear", + "positionFixTime": "समय", + "positionValid": "Valid", + "positionLatitude": "अक्षांश / अक्षरेखा", + "positionLongitude": "देशान्तर", + "positionAltitude": "ऊंचाई", + "positionSpeed": "गति", + "positionCourse": "मार्ग", + "positionAddress": "Address", + "positionProtocol": "Protocol", + "serverTitle": "Server Settings", + "serverZoom": "Zoom", + "serverRegistration": "Registration", + "serverReadonly": "Readonly", + "mapTitle": "Map", + "mapLayer": "Map Layer", + "mapCustom": "Custom Map", + "mapOsm": "Open Street Map", + "mapBingKey": "Bing Maps Key", + "mapBingRoad": "Bing Maps Road", + "mapBingAerial": "Bing Maps Aerial", + "mapShapePolygon": "Polygon", + "mapShapeCircle": "Circle", + "stateTitle": "State", + "stateName": "Attribute", + "stateValue": "Value", + "commandTitle": "आदेश", + "commandSend": "भेजें / प्रेषित करें", + "commandSent": "कमांड / आदेश भेज दी गयी है ", + "commandPositionPeriodic": "Periodic Reporting", + "commandPositionStop": "Stop Reporting", + "commandEngineStop": "Engine Stop", + "commandEngineResume": "Engine Resume", + "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", + "commandSendUssd": "Send USSD", + "commandSosNumber": "Set SOS Number", + "commandSilenceTime": "Set Silence Time", + "commandSetPhonebook": "Set Phonebook", + "commandVoiceMessage": "Voice Message", + "commandOutputControl": "Output Control", + "commandAlarmSpeed": "Overspeed Alarm", + "commandDeviceIdentification": "Device Identification", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", + "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", + "eventAlarm": "Alarms", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", + "alarm": "Alarm", + "alarmSos": "SOS Alarm", + "alarmVibration": "Vibration Alarm", + "alarmMovement": "Movement Alarm", + "alarmOverspeed": "Overspeed Alarm", + "alarmFallDown": "FallDown Alarm", + "alarmLowBattery": "LowBattery Alarm", + "alarmFault": "Fault Alarm", + "notificationType": "Type of Notification", + "notificationWeb": "Send via Web", + "notificationMail": "Send via Mail", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" +} \ No newline at end of file diff --git a/web/l10n/sq.json b/web/l10n/sq.json new file mode 100644 index 000000000..285752ee8 --- /dev/null +++ b/web/l10n/sq.json @@ -0,0 +1,164 @@ +{ + "sharedLoading": "Ngarkim…", + "sharedSave": "Ruaj", + "sharedCancel": "Anullim", + "sharedAdd": "Shto", + "sharedEdit": "Ndrysho", + "sharedRemove": "Hiq", + "sharedRemoveConfirm": "Hiq skedarin", + "sharedKm": "km", + "sharedMi": "Milje", + "sharedKn": "Nyje", + "sharedKmh": "km/h", + "sharedMph": "mph", + "sharedHour": "Orë", + "sharedMinute": "Minuta", + "sharedSecond": "Sekonda", + "sharedName": "Emri", + "sharedDescription": "Description", + "sharedSearch": "Kërkim", + "sharedGeofence": "Geofence", + "sharedGeofences": "Geofences", + "sharedNotifications": "Notifications", + "sharedAttributes": "Attributes", + "sharedAttribute": "Attribute", + "sharedArea": "Area", + "sharedMute": "Mute", + "sharedType": "Type", + "sharedDistance": "Distance", + "sharedHourAbbreviation": "h", + "sharedMinuteAbbreviation": "m", + "sharedGetMapState": "Get Map State", + "errorTitle": "Gabim", + "errorUnknown": "Gabim i panjohur", + "errorConnection": "Gabim lidhjeje", + "userEmail": "Email", + "userPassword": "Fjalëkalimi", + "userAdmin": "Administratori", + "userRemember": "Remember", + "loginTitle": "Hyrje", + "loginLanguage": "Gjuha", + "loginRegister": "Regjistrim", + "loginLogin": "Lidhu", + "loginFailed": "Adresë Email-i ose fjalëkalim i gabuar", + "loginCreated": "Përdoruesi i ri u regjistrua", + "loginLogout": "Shkëputu", + "devicesAndState": "Gjendja e pajisjeve", + "deviceDialog": "Pajisje", + "deviceTitle": "Pajisjet", + "deviceIdentifier": "Identifikues", + "deviceLastUpdate": "Përditësimi i fundit", + "deviceCommand": "Komandë", + "deviceFollow": "Ndjek", + "groupDialog": "Grup", + "groupParent": "Grup", + "groupNoGroup": "Pa Grup", + "settingsTitle": "Parametra", + "settingsUser": "Llogari", + "settingsGroups": "Grupe", + "settingsServer": "Rrjeti", + "settingsUsers": "Përdorues", + "settingsSpeedUnit": "Shpejtësi", + "settingsTwelveHourFormat": "Formë 12-orëshe", + "reportTitle": "Raporte", + "reportDevice": "Pajisje", + "reportGroup": "Group", + "reportFrom": "Nga", + "reportTo": "Tek", + "reportShow": "Shfaqje", + "reportClear": "Pastrim", + "positionFixTime": "Koha", + "positionValid": "I vlefshëm", + "positionLatitude": "Gjerësi Gjeografike", + "positionLongitude": "Gjatësi Gjeografike", + "positionAltitude": "Lartësia", + "positionSpeed": "Shpejtësia", + "positionCourse": "Itinerari (Rruga)", + "positionAddress": "Adresa", + "positionProtocol": "Protokolli", + "serverTitle": "Server-Parametrat", + "serverZoom": "Fokus", + "serverRegistration": "Regjistrim", + "serverReadonly": "Vetëm për lexim", + "mapTitle": "Harta", + "mapLayer": "Zgjedhje harte", + "mapCustom": "Hartë e përshtatur", + "mapOsm": "Open Street Map", + "mapBingKey": "Bing Maps Key", + "mapBingRoad": "Bing Maps Road", + "mapBingAerial": "Bing Maps Aerial", + "mapShapePolygon": "Polygon", + "mapShapeCircle": "Circle", + "stateTitle": "Gjëndja", + "stateName": "Atribut", + "stateValue": "Vlera", + "commandTitle": "Komandë", + "commandSend": "Dërgo", + "commandSent": "Komanda u dërgua", + "commandPositionPeriodic": "Raporte periodike", + "commandPositionStop": "Ndalo raportin", + "commandEngineStop": "Ndalo punën", + "commandEngineResume": "Rinis", + "commandFrequency": "Frekuenca", + "commandUnit": "Njësi", + "commandCustom": "Custom command", + "commandPositionSingle": "Single Reporting", + "commandAlarmArm": "Arm Alarm", + "commandAlarmDisarm": "Disarm Alarm", + "commandSetTimezone": "Set Timezone", + "commandRequestPhoto": "Request Photo", + "commandRebootDevice": "Reboot Device", + "commandSendSms": "Send SMS", + "commandSendUssd": "Send USSD", + "commandSosNumber": "Set SOS Number", + "commandSilenceTime": "Set Silence Time", + "commandSetPhonebook": "Set Phonebook", + "commandVoiceMessage": "Voice Message", + "commandOutputControl": "Output Control", + "commandAlarmSpeed": "Overspeed Alarm", + "commandDeviceIdentification": "Device Identification", + "commandIndex": "Index", + "commandData": "Data", + "commandPhone": "Phone Number", + "commandMessage": "Message", + "eventAll": "All Events", + "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", + "eventAlarm": "Alarms", + "eventIgnitionOn": "Ignition is ON", + "eventIgnitionOff": "Ignition is OFF", + "alarm": "Alarm", + "alarmSos": "SOS Alarm", + "alarmVibration": "Vibration Alarm", + "alarmMovement": "Movement Alarm", + "alarmOverspeed": "Overspeed Alarm", + "alarmFallDown": "FallDown Alarm", + "alarmLowBattery": "LowBattery Alarm", + "alarmFault": "Fault Alarm", + "notificationType": "Type of Notification", + "notificationWeb": "Send via Web", + "notificationMail": "Send via Mail", + "reportRoute": "Route", + "reportEvents": "Events", + "reportTrips": "Trips", + "reportSummary": "Summary", + "reportConfigure": "Configure", + "reportEventTypes": "Event Types", + "reportCsv": "CSV", + "reportDeviceName": "Device Name", + "reportAverageSpeed": "Average Speed", + "reportMaximumSpeed": "Maximum Speed", + "reportEngineHours": "Engine Hours", + "reportDuration": "Duration", + "reportStartTime": "Start Time", + "reportStartAddress": "Start Address", + "reportEndTime": "End Time", + "reportEndAddress": "End Address", + "reportSpentFuel": "Spent Fuel" +} \ No newline at end of file diff --git a/web/locale.js b/web/locale.js index 4de476c90..456b40bb5 100644 --- a/web/locale.js +++ b/web/locale.js @@ -29,6 +29,7 @@ Locale.languages = { 'fi': { name: 'Suomi', code: 'fi' }, 'fr': { name: 'Français', code: 'fr' }, 'he': { name: 'עברית', code: 'he' }, + 'hi': { name: 'हिन्दी', code: 'en' }, 'hu': { name: 'Magyar', code: 'hu' }, 'id': { name: 'Bahasa Indonesia', code: 'id' }, 'it': { name: 'Italiano', code: 'it' }, @@ -49,6 +50,7 @@ Locale.languages = { 'si': { name: 'සිංහල', code: 'en' }, 'sk': { name: 'Slovenčina', code: 'sk' }, 'sl': { name: 'Slovenščina', code: 'sl' }, + 'sq': { name: 'Shqipëria', code: 'en' }, 'sr': { name: 'Srpski', code: 'sr' }, 'ta': { name: 'தமிழ்', code: 'en' }, 'th': { name: 'ไทย', code: 'th' }, -- cgit v1.2.3 From 43a221eba65973cac3737aa6853ed8ba11592f96 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 10 Sep 2016 16:39:47 +1200 Subject: Rename arrow style to match official repo --- web/.jshintignore | 2 +- web/arrow.js | 530 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ web/arrowstyle.js | 530 ------------------------------------------------------ web/debug.html | 2 +- web/release.html | 2 +- 5 files changed, 533 insertions(+), 533 deletions(-) create mode 100644 web/arrow.js delete mode 100644 web/arrowstyle.js diff --git a/web/.jshintignore b/web/.jshintignore index 1c48d68e2..6a7e8b21a 100644 --- a/web/.jshintignore +++ b/web/.jshintignore @@ -1,4 +1,4 @@ l10n/** tests/** locale.js -arrowstyle.js +arrow.js diff --git a/web/arrow.js b/web/arrow.js new file mode 100644 index 000000000..1fd2b3c00 --- /dev/null +++ b/web/arrow.js @@ -0,0 +1,530 @@ +goog.provide('ol.style.Arrow'); + +goog.require('goog.asserts'); +goog.require('ol'); +goog.require('ol.color'); +goog.require('ol.dom'); +goog.require('ol.has'); +goog.require('ol.render.canvas'); +goog.require('ol.style.AtlasManager'); +goog.require('ol.style.Fill'); +goog.require('ol.style.Image'); +goog.require('ol.style.ImageState'); +goog.require('ol.style.Stroke'); + + + +/** + * @classdesc + * Set arrow style for vector features. + * + * @constructor + * @param {olx.style.ArrowOptions} options Options. + * @extends {ol.style.Image} + * @api + */ +ol.style.Arrow = function(options) { + + goog.asserts.assert(options.radius !== undefined, + 'must provide "radius"'); + + /** + * @private + * @type {Array.} + */ + this.checksums_ = null; + + /** + * @private + * @type {HTMLCanvasElement} + */ + this.canvas_ = null; + + /** + * @private + * @type {HTMLCanvasElement} + */ + this.hitDetectionCanvas_ = null; + + /** + * @private + * @type {ol.style.Fill} + */ + this.fill_ = options.fill !== undefined ? options.fill : null; + + /** + * @private + * @type {Array.} + */ + this.origin_ = [0, 0]; + + /** + * @private + * @type {number} + */ + this.radius_ = /** @type {number} */ (options.radius !== undefined ? + options.radius : options.radius1); + + /** + * @private + * @type {number} + */ + this.frontAngle_ = options.frontAngle !== undefined ? + options.frontAngle : Math.PI / 5; + + /** + * @private + * @type {number} + */ + this.backAngle_ = options.backAngle !== undefined ? + options.backAngle : 4 * Math.PI / 5; + + /** + * @private + * @type {ol.style.Stroke} + */ + this.stroke_ = options.stroke !== undefined ? options.stroke : null; + + /** + * @private + * @type {Array.} + */ + this.anchor_ = null; + + /** + * @private + * @type {ol.Size} + */ + this.size_ = null; + + /** + * @private + * @type {ol.Size} + */ + this.imageSize_ = null; + + /** + * @private + * @type {ol.Size} + */ + this.hitDetectionImageSize_ = null; + + this.render_(options.atlasManager); + + /** + * @type {boolean} + */ + var snapToPixel = options.snapToPixel !== undefined ? + options.snapToPixel : true; + + /** + * @type {boolean} + */ + var rotateWithView = options.rotateWithView !== undefined ? + options.rotateWithView : false; + + ol.style.Image.call(this, { + opacity: 1, + rotateWithView: rotateWithView, + rotation: options.rotation !== undefined ? options.rotation : 0, + scale: 1, + snapToPixel: snapToPixel + }); + +}; +ol.inherits(ol.style.Arrow, ol.style.Image); + + +/** + * @inheritDoc + * @api + */ +ol.style.Arrow.prototype.getAnchor = function() { + return this.anchor_; +}; + + +/** + * Get front angle of the arrow. + * @return {number} Angle in radians. + * @api + */ +ol.style.Arrow.prototype.getFrontAngle = function() { + return this.frontAngle_; +}; + + +/** + * Get back angle of the arrow. + * @return {number} Angle in radians. + * @api + */ +ol.style.Arrow.prototype.getBackAngle = function() { + return this.backAngle_; +}; + + +/** + * Get the fill style for the arrow. + * @return {ol.style.Fill} Fill style. + * @api + */ +ol.style.Arrow.prototype.getFill = function() { + return this.fill_; +}; + + +/** + * @inheritDoc + */ +ol.style.Arrow.prototype.getHitDetectionImage = function(pixelRatio) { + return this.hitDetectionCanvas_; +}; + + +/** + * @inheritDoc + * @api + */ +ol.style.Arrow.prototype.getImage = function(pixelRatio) { + return this.canvas_; +}; + + +/** + * @inheritDoc + */ +ol.style.Arrow.prototype.getImageSize = function() { + return this.imageSize_; +}; + + +/** + * @inheritDoc + */ +ol.style.Arrow.prototype.getHitDetectionImageSize = function() { + return this.hitDetectionImageSize_; +}; + + +/** + * @inheritDoc + */ +ol.style.Arrow.prototype.getImageState = function() { + return ol.style.ImageState.LOADED; +}; + + +/** + * @inheritDoc + * @api + */ +ol.style.Arrow.prototype.getOrigin = function() { + return this.origin_; +}; + + +/** + * Get the (primary) radius for the arrow. + * @return {number} Radius. + * @api + */ +ol.style.Arrow.prototype.getRadius = function() { + return this.radius_; +}; + + +/** + * @inheritDoc + * @api + */ +ol.style.Arrow.prototype.getSize = function() { + return this.size_; +}; + + +/** + * Get the stroke style for the arrow. + * @return {ol.style.Stroke} Stroke style. + * @api + */ +ol.style.Arrow.prototype.getStroke = function() { + return this.stroke_; +}; + + +/** + * @inheritDoc + */ +ol.style.Arrow.prototype.listenImageChange = ol.nullFunction; + + +/** + * @inheritDoc + */ +ol.style.Arrow.prototype.load = ol.nullFunction; + + +/** + * @inheritDoc + */ +ol.style.Arrow.prototype.unlistenImageChange = ol.nullFunction; + + +/** + * @typedef {{ + * strokeStyle: (string|undefined), + * strokeWidth: number, + * size: number, + * lineCap: string, + * lineDash: Array., + * lineJoin: string, + * miterLimit: number + * }} + */ +ol.ArrowRenderOptions; + + +/** + * @private + * @param {ol.style.AtlasManager|undefined} atlasManager An atlas manager. + */ +ol.style.Arrow.prototype.render_ = function(atlasManager) { + var imageSize; + var lineCap = ''; + var lineJoin = ''; + var miterLimit = 0; + var lineDash = null; + var strokeStyle; + var strokeWidth = 0; + + if (this.stroke_) { + strokeStyle = ol.color.asString(this.stroke_.getColor()); + strokeWidth = this.stroke_.getWidth(); + if (strokeWidth === undefined) { + strokeWidth = ol.render.canvas.defaultLineWidth; + } + lineDash = this.stroke_.getLineDash(); + if (!ol.has.CANVAS_LINE_DASH) { + lineDash = null; + } + lineJoin = this.stroke_.getLineJoin(); + if (lineJoin === undefined) { + lineJoin = ol.render.canvas.defaultLineJoin; + } + lineCap = this.stroke_.getLineCap(); + if (lineCap === undefined) { + lineCap = ol.render.canvas.defaultLineCap; + } + miterLimit = this.stroke_.getMiterLimit(); + if (miterLimit === undefined) { + miterLimit = ol.render.canvas.defaultMiterLimit; + } + } + + var size = 2 * (this.radius_ + strokeWidth) + 1; + + /** @type {ol.ArrowRenderOptions} */ + var renderOptions = { + strokeStyle: strokeStyle, + strokeWidth: strokeWidth, + size: size, + lineCap: lineCap, + lineDash: lineDash, + lineJoin: lineJoin, + miterLimit: miterLimit + }; + + if (atlasManager === undefined) { + // no atlas manager is used, create a new canvas + var context = ol.dom.createCanvasContext2D(size, size); + this.canvas_ = context.canvas; + + // canvas.width and height are rounded to the closest integer + size = this.canvas_.width; + imageSize = size; + + this.draw_(renderOptions, context, 0, 0); + + this.createHitDetectionCanvas_(renderOptions); + } else { + // an atlas manager is used, add the symbol to an atlas + size = Math.round(size); + + var hasCustomHitDetectionImage = !this.fill_; + var renderHitDetectionCallback; + if (hasCustomHitDetectionImage) { + // render the hit-detection image into a separate atlas image + renderHitDetectionCallback = + this.drawHitDetectionCanvas_.bind(this, renderOptions); + } + + var id = this.getChecksum(); + var info = atlasManager.add( + id, size, size, this.draw_.bind(this, renderOptions), + renderHitDetectionCallback); + goog.asserts.assert(info, 'arrow size is too large'); + + this.canvas_ = info.image; + this.origin_ = [info.offsetX, info.offsetY]; + imageSize = info.image.width; + + if (hasCustomHitDetectionImage) { + this.hitDetectionCanvas_ = info.hitImage; + this.hitDetectionImageSize_ = + [info.hitImage.width, info.hitImage.height]; + } else { + this.hitDetectionCanvas_ = this.canvas_; + this.hitDetectionImageSize_ = [imageSize, imageSize]; + } + } + + this.anchor_ = [size / 2, size / 2]; + this.size_ = [size, size]; + this.imageSize_ = [imageSize, imageSize]; +}; + + +/** + * @private + * @param {ol.ArrowRenderOptions} renderOptions Render options. + * @param {CanvasRenderingContext2D} context The rendering context. + * @param {number} x The origin for the symbol (x). + * @param {number} y The origin for the symbol (y). + */ +ol.style.Arrow.prototype.draw_ = function(renderOptions, context, x, y) { + var innerRadius = this.radius_ / Math.sin(Math.PI - this.backAngle_ / 2) * + Math.sin(this.backAngle_ / 2 - this.frontAngle_); + + // reset transform + context.setTransform(1, 0, 0, 1, 0, 0); + + // then move to (x, y) + context.translate(x, y); + + + context.beginPath(); + + function lineTo(radius, angle) { + context.lineTo( + renderOptions.size / 2 + radius * Math.cos(angle + Math.PI / 2), + renderOptions.size / 2 - radius * Math.sin(angle + Math.PI / 2)); + } + + lineTo(this.radius_, 0); + lineTo(this.radius_, Math.PI - this.frontAngle_); + lineTo(innerRadius, Math.PI); + lineTo(this.radius_, this.frontAngle_ - Math.PI); + lineTo(this.radius_, 0); + + if (this.fill_) { + context.fillStyle = ol.colorlike.asColorLike(this.fill_.getColor()); + context.fill(); + } + if (this.stroke_) { + context.strokeStyle = renderOptions.strokeStyle; + context.lineWidth = renderOptions.strokeWidth; + if (renderOptions.lineDash) { + context.setLineDash(renderOptions.lineDash); + } + context.lineCap = renderOptions.lineCap; + context.lineJoin = renderOptions.lineJoin; + context.miterLimit = renderOptions.miterLimit; + context.stroke(); + } + context.closePath(); +}; + + +/** + * @private + * @param {ol.ArrowRenderOptions} renderOptions Render options. + */ +ol.style.Arrow.prototype.createHitDetectionCanvas_ = function(renderOptions) { + this.hitDetectionImageSize_ = [renderOptions.size, renderOptions.size]; + if (this.fill_) { + this.hitDetectionCanvas_ = this.canvas_; + return; + } + + // if no fill style is set, create an extra hit-detection image with a + // default fill style + var context = ol.dom.createCanvasContext2D(renderOptions.size, renderOptions.size); + this.hitDetectionCanvas_ = context.canvas; + + this.drawHitDetectionCanvas_(renderOptions, context, 0, 0); +}; + + +/** + * @private + * @param {ol.ArrowRenderOptions} renderOptions Render options. + * @param {CanvasRenderingContext2D} context The context. + * @param {number} x The origin for the symbol (x). + * @param {number} y The origin for the symbol (y). + */ +ol.style.Arrow.prototype.drawHitDetectionCanvas_ = function(renderOptions, context, x, y) { + var innerRadius = this.radius_ / Math.sin(Math.PI - this.backAngle_ / 2) * + Math.sin(this.backAngle_ / 2 - this.frontAngle_); + + // reset transform + context.setTransform(1, 0, 0, 1, 0, 0); + + // then move to (x, y) + context.translate(x, y); + + context.beginPath(); + + function lineTo(radius, angle) { + context.lineTo( + renderOptions.size / 2 + radius * Math.cos(angle + Math.PI / 2), + renderOptions.size / 2 - radius * Math.sin(angle + Math.PI / 2)); + } + + lineTo(this.radius_, 0); + lineTo(this.radius_, Math.PI - this.frontAngle_); + lineTo(innerRadius / 2, Math.PI); + lineTo(this.radius_, this.frontAngle_ - Math.PI); + lineTo(this.radius_, 0); + + context.fillStyle = ol.render.canvas.defaultFillStyle; + context.fill(); + if (this.stroke_) { + context.strokeStyle = renderOptions.strokeStyle; + context.lineWidth = renderOptions.strokeWidth; + if (renderOptions.lineDash) { + context.setLineDash(renderOptions.lineDash); + } + context.stroke(); + } + context.closePath(); +}; + + +/** + * @return {string} The checksum. + */ +ol.style.Arrow.prototype.getChecksum = function() { + var strokeChecksum = this.stroke_ ? + this.stroke_.getChecksum() : '-'; + var fillChecksum = this.fill_ ? + this.fill_.getChecksum() : '-'; + + var recalculate = !this.checksums_ || + (strokeChecksum != this.checksums_[1] || + fillChecksum != this.checksums_[2] || + this.radius_ != this.checksums_[3] || + this.frontAngle_ != this.checksums_[4] || + this.backAngle_ != this.checksums_[5]); + + if (recalculate) { + var checksum = 'r' + strokeChecksum + fillChecksum + + (this.radius_ !== undefined ? this.radius_.toString() : '-') + + (this.frontAngle_ !== undefined ? this.frontAngle_.toString() : '-') + + (this.backAngle_ !== undefined ? this.backAngle_.toString() : '-'); + this.checksums_ = [checksum, strokeChecksum, fillChecksum, + this.radius_, this.frontAngle_, this.backAngle_]; + } + + return this.checksums_[0]; +}; diff --git a/web/arrowstyle.js b/web/arrowstyle.js deleted file mode 100644 index 1fd2b3c00..000000000 --- a/web/arrowstyle.js +++ /dev/null @@ -1,530 +0,0 @@ -goog.provide('ol.style.Arrow'); - -goog.require('goog.asserts'); -goog.require('ol'); -goog.require('ol.color'); -goog.require('ol.dom'); -goog.require('ol.has'); -goog.require('ol.render.canvas'); -goog.require('ol.style.AtlasManager'); -goog.require('ol.style.Fill'); -goog.require('ol.style.Image'); -goog.require('ol.style.ImageState'); -goog.require('ol.style.Stroke'); - - - -/** - * @classdesc - * Set arrow style for vector features. - * - * @constructor - * @param {olx.style.ArrowOptions} options Options. - * @extends {ol.style.Image} - * @api - */ -ol.style.Arrow = function(options) { - - goog.asserts.assert(options.radius !== undefined, - 'must provide "radius"'); - - /** - * @private - * @type {Array.} - */ - this.checksums_ = null; - - /** - * @private - * @type {HTMLCanvasElement} - */ - this.canvas_ = null; - - /** - * @private - * @type {HTMLCanvasElement} - */ - this.hitDetectionCanvas_ = null; - - /** - * @private - * @type {ol.style.Fill} - */ - this.fill_ = options.fill !== undefined ? options.fill : null; - - /** - * @private - * @type {Array.} - */ - this.origin_ = [0, 0]; - - /** - * @private - * @type {number} - */ - this.radius_ = /** @type {number} */ (options.radius !== undefined ? - options.radius : options.radius1); - - /** - * @private - * @type {number} - */ - this.frontAngle_ = options.frontAngle !== undefined ? - options.frontAngle : Math.PI / 5; - - /** - * @private - * @type {number} - */ - this.backAngle_ = options.backAngle !== undefined ? - options.backAngle : 4 * Math.PI / 5; - - /** - * @private - * @type {ol.style.Stroke} - */ - this.stroke_ = options.stroke !== undefined ? options.stroke : null; - - /** - * @private - * @type {Array.} - */ - this.anchor_ = null; - - /** - * @private - * @type {ol.Size} - */ - this.size_ = null; - - /** - * @private - * @type {ol.Size} - */ - this.imageSize_ = null; - - /** - * @private - * @type {ol.Size} - */ - this.hitDetectionImageSize_ = null; - - this.render_(options.atlasManager); - - /** - * @type {boolean} - */ - var snapToPixel = options.snapToPixel !== undefined ? - options.snapToPixel : true; - - /** - * @type {boolean} - */ - var rotateWithView = options.rotateWithView !== undefined ? - options.rotateWithView : false; - - ol.style.Image.call(this, { - opacity: 1, - rotateWithView: rotateWithView, - rotation: options.rotation !== undefined ? options.rotation : 0, - scale: 1, - snapToPixel: snapToPixel - }); - -}; -ol.inherits(ol.style.Arrow, ol.style.Image); - - -/** - * @inheritDoc - * @api - */ -ol.style.Arrow.prototype.getAnchor = function() { - return this.anchor_; -}; - - -/** - * Get front angle of the arrow. - * @return {number} Angle in radians. - * @api - */ -ol.style.Arrow.prototype.getFrontAngle = function() { - return this.frontAngle_; -}; - - -/** - * Get back angle of the arrow. - * @return {number} Angle in radians. - * @api - */ -ol.style.Arrow.prototype.getBackAngle = function() { - return this.backAngle_; -}; - - -/** - * Get the fill style for the arrow. - * @return {ol.style.Fill} Fill style. - * @api - */ -ol.style.Arrow.prototype.getFill = function() { - return this.fill_; -}; - - -/** - * @inheritDoc - */ -ol.style.Arrow.prototype.getHitDetectionImage = function(pixelRatio) { - return this.hitDetectionCanvas_; -}; - - -/** - * @inheritDoc - * @api - */ -ol.style.Arrow.prototype.getImage = function(pixelRatio) { - return this.canvas_; -}; - - -/** - * @inheritDoc - */ -ol.style.Arrow.prototype.getImageSize = function() { - return this.imageSize_; -}; - - -/** - * @inheritDoc - */ -ol.style.Arrow.prototype.getHitDetectionImageSize = function() { - return this.hitDetectionImageSize_; -}; - - -/** - * @inheritDoc - */ -ol.style.Arrow.prototype.getImageState = function() { - return ol.style.ImageState.LOADED; -}; - - -/** - * @inheritDoc - * @api - */ -ol.style.Arrow.prototype.getOrigin = function() { - return this.origin_; -}; - - -/** - * Get the (primary) radius for the arrow. - * @return {number} Radius. - * @api - */ -ol.style.Arrow.prototype.getRadius = function() { - return this.radius_; -}; - - -/** - * @inheritDoc - * @api - */ -ol.style.Arrow.prototype.getSize = function() { - return this.size_; -}; - - -/** - * Get the stroke style for the arrow. - * @return {ol.style.Stroke} Stroke style. - * @api - */ -ol.style.Arrow.prototype.getStroke = function() { - return this.stroke_; -}; - - -/** - * @inheritDoc - */ -ol.style.Arrow.prototype.listenImageChange = ol.nullFunction; - - -/** - * @inheritDoc - */ -ol.style.Arrow.prototype.load = ol.nullFunction; - - -/** - * @inheritDoc - */ -ol.style.Arrow.prototype.unlistenImageChange = ol.nullFunction; - - -/** - * @typedef {{ - * strokeStyle: (string|undefined), - * strokeWidth: number, - * size: number, - * lineCap: string, - * lineDash: Array., - * lineJoin: string, - * miterLimit: number - * }} - */ -ol.ArrowRenderOptions; - - -/** - * @private - * @param {ol.style.AtlasManager|undefined} atlasManager An atlas manager. - */ -ol.style.Arrow.prototype.render_ = function(atlasManager) { - var imageSize; - var lineCap = ''; - var lineJoin = ''; - var miterLimit = 0; - var lineDash = null; - var strokeStyle; - var strokeWidth = 0; - - if (this.stroke_) { - strokeStyle = ol.color.asString(this.stroke_.getColor()); - strokeWidth = this.stroke_.getWidth(); - if (strokeWidth === undefined) { - strokeWidth = ol.render.canvas.defaultLineWidth; - } - lineDash = this.stroke_.getLineDash(); - if (!ol.has.CANVAS_LINE_DASH) { - lineDash = null; - } - lineJoin = this.stroke_.getLineJoin(); - if (lineJoin === undefined) { - lineJoin = ol.render.canvas.defaultLineJoin; - } - lineCap = this.stroke_.getLineCap(); - if (lineCap === undefined) { - lineCap = ol.render.canvas.defaultLineCap; - } - miterLimit = this.stroke_.getMiterLimit(); - if (miterLimit === undefined) { - miterLimit = ol.render.canvas.defaultMiterLimit; - } - } - - var size = 2 * (this.radius_ + strokeWidth) + 1; - - /** @type {ol.ArrowRenderOptions} */ - var renderOptions = { - strokeStyle: strokeStyle, - strokeWidth: strokeWidth, - size: size, - lineCap: lineCap, - lineDash: lineDash, - lineJoin: lineJoin, - miterLimit: miterLimit - }; - - if (atlasManager === undefined) { - // no atlas manager is used, create a new canvas - var context = ol.dom.createCanvasContext2D(size, size); - this.canvas_ = context.canvas; - - // canvas.width and height are rounded to the closest integer - size = this.canvas_.width; - imageSize = size; - - this.draw_(renderOptions, context, 0, 0); - - this.createHitDetectionCanvas_(renderOptions); - } else { - // an atlas manager is used, add the symbol to an atlas - size = Math.round(size); - - var hasCustomHitDetectionImage = !this.fill_; - var renderHitDetectionCallback; - if (hasCustomHitDetectionImage) { - // render the hit-detection image into a separate atlas image - renderHitDetectionCallback = - this.drawHitDetectionCanvas_.bind(this, renderOptions); - } - - var id = this.getChecksum(); - var info = atlasManager.add( - id, size, size, this.draw_.bind(this, renderOptions), - renderHitDetectionCallback); - goog.asserts.assert(info, 'arrow size is too large'); - - this.canvas_ = info.image; - this.origin_ = [info.offsetX, info.offsetY]; - imageSize = info.image.width; - - if (hasCustomHitDetectionImage) { - this.hitDetectionCanvas_ = info.hitImage; - this.hitDetectionImageSize_ = - [info.hitImage.width, info.hitImage.height]; - } else { - this.hitDetectionCanvas_ = this.canvas_; - this.hitDetectionImageSize_ = [imageSize, imageSize]; - } - } - - this.anchor_ = [size / 2, size / 2]; - this.size_ = [size, size]; - this.imageSize_ = [imageSize, imageSize]; -}; - - -/** - * @private - * @param {ol.ArrowRenderOptions} renderOptions Render options. - * @param {CanvasRenderingContext2D} context The rendering context. - * @param {number} x The origin for the symbol (x). - * @param {number} y The origin for the symbol (y). - */ -ol.style.Arrow.prototype.draw_ = function(renderOptions, context, x, y) { - var innerRadius = this.radius_ / Math.sin(Math.PI - this.backAngle_ / 2) * - Math.sin(this.backAngle_ / 2 - this.frontAngle_); - - // reset transform - context.setTransform(1, 0, 0, 1, 0, 0); - - // then move to (x, y) - context.translate(x, y); - - - context.beginPath(); - - function lineTo(radius, angle) { - context.lineTo( - renderOptions.size / 2 + radius * Math.cos(angle + Math.PI / 2), - renderOptions.size / 2 - radius * Math.sin(angle + Math.PI / 2)); - } - - lineTo(this.radius_, 0); - lineTo(this.radius_, Math.PI - this.frontAngle_); - lineTo(innerRadius, Math.PI); - lineTo(this.radius_, this.frontAngle_ - Math.PI); - lineTo(this.radius_, 0); - - if (this.fill_) { - context.fillStyle = ol.colorlike.asColorLike(this.fill_.getColor()); - context.fill(); - } - if (this.stroke_) { - context.strokeStyle = renderOptions.strokeStyle; - context.lineWidth = renderOptions.strokeWidth; - if (renderOptions.lineDash) { - context.setLineDash(renderOptions.lineDash); - } - context.lineCap = renderOptions.lineCap; - context.lineJoin = renderOptions.lineJoin; - context.miterLimit = renderOptions.miterLimit; - context.stroke(); - } - context.closePath(); -}; - - -/** - * @private - * @param {ol.ArrowRenderOptions} renderOptions Render options. - */ -ol.style.Arrow.prototype.createHitDetectionCanvas_ = function(renderOptions) { - this.hitDetectionImageSize_ = [renderOptions.size, renderOptions.size]; - if (this.fill_) { - this.hitDetectionCanvas_ = this.canvas_; - return; - } - - // if no fill style is set, create an extra hit-detection image with a - // default fill style - var context = ol.dom.createCanvasContext2D(renderOptions.size, renderOptions.size); - this.hitDetectionCanvas_ = context.canvas; - - this.drawHitDetectionCanvas_(renderOptions, context, 0, 0); -}; - - -/** - * @private - * @param {ol.ArrowRenderOptions} renderOptions Render options. - * @param {CanvasRenderingContext2D} context The context. - * @param {number} x The origin for the symbol (x). - * @param {number} y The origin for the symbol (y). - */ -ol.style.Arrow.prototype.drawHitDetectionCanvas_ = function(renderOptions, context, x, y) { - var innerRadius = this.radius_ / Math.sin(Math.PI - this.backAngle_ / 2) * - Math.sin(this.backAngle_ / 2 - this.frontAngle_); - - // reset transform - context.setTransform(1, 0, 0, 1, 0, 0); - - // then move to (x, y) - context.translate(x, y); - - context.beginPath(); - - function lineTo(radius, angle) { - context.lineTo( - renderOptions.size / 2 + radius * Math.cos(angle + Math.PI / 2), - renderOptions.size / 2 - radius * Math.sin(angle + Math.PI / 2)); - } - - lineTo(this.radius_, 0); - lineTo(this.radius_, Math.PI - this.frontAngle_); - lineTo(innerRadius / 2, Math.PI); - lineTo(this.radius_, this.frontAngle_ - Math.PI); - lineTo(this.radius_, 0); - - context.fillStyle = ol.render.canvas.defaultFillStyle; - context.fill(); - if (this.stroke_) { - context.strokeStyle = renderOptions.strokeStyle; - context.lineWidth = renderOptions.strokeWidth; - if (renderOptions.lineDash) { - context.setLineDash(renderOptions.lineDash); - } - context.stroke(); - } - context.closePath(); -}; - - -/** - * @return {string} The checksum. - */ -ol.style.Arrow.prototype.getChecksum = function() { - var strokeChecksum = this.stroke_ ? - this.stroke_.getChecksum() : '-'; - var fillChecksum = this.fill_ ? - this.fill_.getChecksum() : '-'; - - var recalculate = !this.checksums_ || - (strokeChecksum != this.checksums_[1] || - fillChecksum != this.checksums_[2] || - this.radius_ != this.checksums_[3] || - this.frontAngle_ != this.checksums_[4] || - this.backAngle_ != this.checksums_[5]); - - if (recalculate) { - var checksum = 'r' + strokeChecksum + fillChecksum + - (this.radius_ !== undefined ? this.radius_.toString() : '-') + - (this.frontAngle_ !== undefined ? this.frontAngle_.toString() : '-') + - (this.backAngle_ !== undefined ? this.backAngle_.toString() : '-'); - this.checksums_ = [checksum, strokeChecksum, fillChecksum, - this.radius_, this.frontAngle_, this.backAngle_]; - } - - return this.checksums_[0]; -}; diff --git a/web/debug.html b/web/debug.html index 0e9576323..319e813cc 100644 --- a/web/debug.html +++ b/web/debug.html @@ -15,7 +15,7 @@ - + diff --git a/web/release.html b/web/release.html index 4e087922a..9f396609e 100644 --- a/web/release.html +++ b/web/release.html @@ -15,7 +15,7 @@ - + - + - + - - - - - - - - diff --git a/web/favicon.ico b/web/favicon.ico deleted file mode 100644 index 1918dfffb..000000000 Binary files a/web/favicon.ico and /dev/null differ diff --git a/web/l10n/ar.json b/web/l10n/ar.json deleted file mode 100644 index c22bdbc40..000000000 --- a/web/l10n/ar.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "جاري التحميل...", - "sharedSave": "حفظ", - "sharedCancel": "إلغاء", - "sharedAdd": "إضافة", - "sharedEdit": "تعديل", - "sharedRemove": "حذف", - "sharedRemoveConfirm": "حذف العنصر؟", - "sharedKm": "كم", - "sharedMi": "ميل", - "sharedKn": "عقدة", - "sharedKmh": "كم/ساعه", - "sharedMph": "ميل/ساعة", - "sharedHour": "ساعه", - "sharedMinute": "دقيقة", - "sharedSecond": "ثانية", - "sharedName": "الاسم", - "sharedDescription": "الوصف", - "sharedSearch": "بحث", - "sharedGeofence": "السياج الجغرافي", - "sharedGeofences": "السياجات الجغرافية", - "sharedNotifications": "التنبيهات", - "sharedAttributes": "الخصائص", - "sharedAttribute": "خاصية", - "sharedArea": "منطقة", - "sharedMute": "Mute", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "خطأ", - "errorUnknown": "خطأ غير معروف", - "errorConnection": "خطأ في الاتصال", - "userEmail": "بريد إلكتروني", - "userPassword": "كلمة المرور", - "userAdmin": "مدير النظام", - "userRemember": "Remember", - "loginTitle": "تسجيل الدخول", - "loginLanguage": "اللغة", - "loginRegister": "تسجيل جديد", - "loginLogin": "تسجيل الدخول", - "loginFailed": "كلمة مرور او بريد خاطئ", - "loginCreated": "تم تسجيل مستخدم جديد", - "loginLogout": "خروج", - "devicesAndState": "الأجهزة والحالة", - "deviceDialog": "جهاز", - "deviceTitle": "أجهزة", - "deviceIdentifier": "المعرف", - "deviceLastUpdate": "آخر تحديث", - "deviceCommand": "أمر ", - "deviceFollow": "متابعة", - "groupDialog": "مجموعة", - "groupParent": "مجموعة", - "groupNoGroup": "لا توجد مجموعة", - "settingsTitle": "إعدادات", - "settingsUser": "حساب", - "settingsGroups": "المجموعات", - "settingsServer": "خادم", - "settingsUsers": "المستخدمون", - "settingsSpeedUnit": "سرعة", - "settingsTwelveHourFormat": "صيغة 12-ساعة", - "reportTitle": "تقارير", - "reportDevice": "جهاز", - "reportGroup": "Group", - "reportFrom": "من", - "reportTo": "الي", - "reportShow": "اظهار", - "reportClear": "تفريغ الحقول", - "positionFixTime": "وقت", - "positionValid": "صالح", - "positionLatitude": "خط العرض", - "positionLongitude": "خط الطول", - "positionAltitude": "ارتفاع عن سطح البحر", - "positionSpeed": "السرعة", - "positionCourse": "دورة", - "positionAddress": "العنوان", - "positionProtocol": "بروتوكول", - "serverTitle": "اعدادت الخادم", - "serverZoom": "تقريب", - "serverRegistration": "تسجيل", - "serverReadonly": "قراءة فقط", - "mapTitle": "خريطة", - "mapLayer": "طبقة الخريطة", - "mapCustom": "خريطة محددة", - "mapOsm": "خرائط اوبن ستريت", - "mapBingKey": "مفتاح خرائط Bing", - "mapBingRoad": " خرائط الطرق Bing", - "mapBingAerial": "خرائط جوية Bing", - "mapShapePolygon": "مضلع", - "mapShapeCircle": "دائرة", - "stateTitle": "حالة", - "stateName": "عنصر", - "stateValue": "قيمة", - "commandTitle": "أمر", - "commandSend": "ارسال", - "commandSent": "تم ارسال الأمر", - "commandPositionPeriodic": "تقارير دورية", - "commandPositionStop": "ايقاف الارسال", - "commandEngineStop": "ايقاف المحرك", - "commandEngineResume": "تشغيل المحرك", - "commandFrequency": "تردد", - "commandUnit": "وحدة", - "commandCustom": "أمر خاص", - "commandPositionSingle": "تقرير مفرد", - "commandAlarmArm": "بدء تشغيل المنبه", - "commandAlarmDisarm": "تعطيل المنبه", - "commandSetTimezone": "حدد التوقيت الزمني", - "commandRequestPhoto": "اطلب صورة", - "commandRebootDevice": "أعد تشغيل الجهاز", - "commandSendSms": "إرسال رسالة قصيرة", - "commandSendUssd": "Send USSD", - "commandSosNumber": "ظبط رقم الطوارئ", - "commandSilenceTime": "حدد توقيت الصامت", - "commandSetPhonebook": "ضبط سجل الهاتف", - "commandVoiceMessage": "رسالة صوتية", - "commandOutputControl": "التحكم بالإخراج", - "commandAlarmSpeed": "منبه تعدي السرعة", - "commandDeviceIdentification": "تعريف الجهاز", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "eventDeviceOnline": "الجهاز متصل", - "eventDeviceOffline": "الجهاز غير متصل", - "eventDeviceMoving": "الجهاز يتحرك", - "eventDeviceStopped": "الجهاز متوقف", - "eventDeviceOverspeed": "الجهاز متعدٍّ للسرعة", - "eventCommandResult": "نتيجة الأمر", - "eventGeofenceEnter": "الجهاز قد دخل السياج الجغرافي", - "eventGeofenceExit": "الجهاز قد خرج من السياج الجغرافي", - "eventAlarm": "Alarms", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "نوع الملاحظة", - "notificationWeb": "أرسل عن طريق صفحة الويب", - "notificationMail": "أرسل عن طريق البريد الإلكتروني", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/bg.json b/web/l10n/bg.json deleted file mode 100644 index 0dc67dc02..000000000 --- a/web/l10n/bg.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Зареждане...", - "sharedSave": "Запази", - "sharedCancel": "Отказ", - "sharedAdd": "Добави", - "sharedEdit": "Редактирай", - "sharedRemove": "Премахни", - "sharedRemoveConfirm": "Премахване на Устройство?", - "sharedKm": "км", - "sharedMi": "мл", - "sharedKn": "kn", - "sharedKmh": "км/ч", - "sharedMph": "мл/ч", - "sharedHour": "Час", - "sharedMinute": "Минута", - "sharedSecond": "Секунда", - "sharedName": "Име", - "sharedDescription": "Описание", - "sharedSearch": "Търси", - "sharedGeofence": "Зона", - "sharedGeofences": "Зони", - "sharedNotifications": "Известия", - "sharedAttributes": "Атрибути", - "sharedAttribute": "Атрибут", - "sharedArea": "Район", - "sharedMute": "Изкл. звук", - "sharedType": "Тип", - "sharedDistance": "Разстояние", - "sharedHourAbbreviation": "час", - "sharedMinuteAbbreviation": "м", - "sharedGetMapState": "Get Map State", - "errorTitle": "Грешка", - "errorUnknown": "Непозната Грешка", - "errorConnection": "Грешка във връзката", - "userEmail": "Пощенска кутия", - "userPassword": "Парола", - "userAdmin": "Admin", - "userRemember": "Запомни", - "loginTitle": "Вход", - "loginLanguage": "Език", - "loginRegister": "Регистрация", - "loginLogin": "Вход", - "loginFailed": "Грешен потребител или парола", - "loginCreated": "Регистриран Нов Потребител", - "loginLogout": "Изход", - "devicesAndState": "Устройства и състояние", - "deviceDialog": "Обекти", - "deviceTitle": "Устройства", - "deviceIdentifier": "Идентификатор", - "deviceLastUpdate": "Последно обновяване", - "deviceCommand": "Команда", - "deviceFollow": "Следвай", - "groupDialog": "Група", - "groupParent": "Група", - "groupNoGroup": "Без група", - "settingsTitle": "Настройки", - "settingsUser": "Профил", - "settingsGroups": "Групи", - "settingsServer": "Сървър", - "settingsUsers": "Потребител", - "settingsSpeedUnit": "Скорост", - "settingsTwelveHourFormat": "12-hour Format", - "reportTitle": "Доклад", - "reportDevice": "Устройство", - "reportGroup": "Група", - "reportFrom": "От", - "reportTo": "До", - "reportShow": "Покажи", - "reportClear": "Изчисти", - "positionFixTime": "Време", - "positionValid": "Валидност", - "positionLatitude": "Географска Ширина", - "positionLongitude": "Географска Дължина", - "positionAltitude": "Надморска височина", - "positionSpeed": "Скорост", - "positionCourse": "Посока", - "positionAddress": "Адрес", - "positionProtocol": "Протокол", - "serverTitle": "Настройки на Сървъра", - "serverZoom": "Приближение", - "serverRegistration": "Регистрация", - "serverReadonly": "Readonly", - "mapTitle": "Карта", - "mapLayer": "Слой", - "mapCustom": "Потребителска Карта", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Многоъгълник", - "mapShapeCircle": "Кръг", - "stateTitle": "Състояние", - "stateName": "Параметър", - "stateValue": "Стойност", - "commandTitle": "Команда", - "commandSend": "Изпрати", - "commandSent": "Съобщението е изпратено", - "commandPositionPeriodic": "Периодичен Доклад", - "commandPositionStop": "Спри Доклада", - "commandEngineStop": "Спри Двигател", - "commandEngineResume": "Стартирай Двигател", - "commandFrequency": "Честота", - "commandUnit": "Обект", - "commandCustom": "Персонализирана Команда", - "commandPositionSingle": "Единичен доклад", - "commandAlarmArm": "Активирай Аларма", - "commandAlarmDisarm": "Деактивирай Аларма", - "commandSetTimezone": "Задайте Часова Зона", - "commandRequestPhoto": "Изпрати Снимка", - "commandRebootDevice": "Рестартирай Устройство", - "commandSendSms": "Изпрати СМС", - "commandSendUssd": "Изпрати USSD", - "commandSosNumber": "Задай SOS номер", - "commandSilenceTime": "Задай Тих Час", - "commandSetPhonebook": "Задай Тел. Указател", - "commandVoiceMessage": "Гласово Съобщение", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Аларма за Превишена Скорост", - "commandDeviceIdentification": "Идентификация на Устройство", - "commandIndex": "Индекс", - "commandData": "Данни", - "commandPhone": "Телефонен номер", - "commandMessage": "Съобщение", - "eventAll": "Всички събития", - "eventDeviceOnline": "Устройството е онлайн", - "eventDeviceOffline": "Устройството е офлайн", - "eventDeviceMoving": "Устройството е в движение", - "eventDeviceStopped": "Устройството е спряло", - "eventDeviceOverspeed": "Устройството превишава скоростта", - "eventCommandResult": "Резултат от командата", - "eventGeofenceEnter": "Устройството влезе в зоната", - "eventGeofenceExit": "Устройството излезе от зоната", - "eventAlarm": "Аларми", - "eventIgnitionOn": "Запалването е включено", - "eventIgnitionOff": "Запалването е изключено", - "alarm": "Аларма", - "alarmSos": "SOS Аларма", - "alarmVibration": "Аларма Вибрация", - "alarmMovement": "Аларма движение", - "alarmOverspeed": "Аларма за Превишена Скорост", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "Аларма за слаб заряд", - "alarmFault": "Аларма за повреда", - "notificationType": "Тип на известието", - "notificationWeb": "Изпрати през Web", - "notificationMail": "Изпрати през Mail", - "reportRoute": "Маршрут", - "reportEvents": "Събития", - "reportTrips": "Пътувания", - "reportSummary": "Общо", - "reportConfigure": "Конфигуриране", - "reportEventTypes": "Тип Събития", - "reportCsv": "CSV", - "reportDeviceName": "Име на Обект", - "reportAverageSpeed": "Средна скорост", - "reportMaximumSpeed": "Максимална скорост", - "reportEngineHours": "Машиночас", - "reportDuration": "Продължителност", - "reportStartTime": "Начален час", - "reportStartAddress": "Стартов Адрес", - "reportEndTime": "Краен час", - "reportEndAddress": "Краен Адрес", - "reportSpentFuel": "Отработено Гориво" -} \ No newline at end of file diff --git a/web/l10n/cs.json b/web/l10n/cs.json deleted file mode 100644 index c7b3b7921..000000000 --- a/web/l10n/cs.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Načítání...", - "sharedSave": "Uložit", - "sharedCancel": "Zrušit", - "sharedAdd": "Přidat", - "sharedEdit": "Změnit", - "sharedRemove": "Odstranit", - "sharedRemoveConfirm": "Odstranit položku?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "kn", - "sharedKmh": "km/h", - "sharedMph": "mph", - "sharedHour": "Hodina", - "sharedMinute": "Minuta", - "sharedSecond": "Sekunda", - "sharedName": "Jméno", - "sharedDescription": "Popis", - "sharedSearch": "Hledat", - "sharedGeofence": "Geografická hranice", - "sharedGeofences": "Geografické hranice", - "sharedNotifications": "Upozornění", - "sharedAttributes": "Atributy", - "sharedAttribute": "Atribut", - "sharedArea": "Oblast", - "sharedMute": "Ztišit", - "sharedType": "Typ", - "sharedDistance": "Vzdálenost", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Získat stav mapy", - "errorTitle": "Chyba", - "errorUnknown": "Neznámá chyba", - "errorConnection": "Chyba spojení", - "userEmail": "Email", - "userPassword": "Heslo", - "userAdmin": "Admin", - "userRemember": "Zapamatovat", - "loginTitle": "Přihlášení", - "loginLanguage": "Jazyk", - "loginRegister": "Registrace", - "loginLogin": "Přihlášení", - "loginFailed": "Nesprávný email nebo heslo", - "loginCreated": "Nový uživatel byl zaregistrován", - "loginLogout": "Odhlášení", - "devicesAndState": "Zařízení a stav", - "deviceDialog": "Zařízení", - "deviceTitle": "Zařízení", - "deviceIdentifier": "Identifikace", - "deviceLastUpdate": "Poslední změna", - "deviceCommand": "Příkaz", - "deviceFollow": "Sledovat", - "groupDialog": "Skupina", - "groupParent": "Skupina", - "groupNoGroup": "Žádná skupina", - "settingsTitle": "Nastavení", - "settingsUser": "Účet", - "settingsGroups": "Skupiny", - "settingsServer": "Server", - "settingsUsers": "Uživatelé", - "settingsSpeedUnit": "Rychlost", - "settingsTwelveHourFormat": "12-hodinový formát", - "reportTitle": "Zpráva", - "reportDevice": "Zařízení", - "reportGroup": "Skupina", - "reportFrom": "Od", - "reportTo": "Komu", - "reportShow": "Zobrazit", - "reportClear": "Vyčistit", - "positionFixTime": "Čas", - "positionValid": "Správný", - "positionLatitude": "Šířka", - "positionLongitude": "Délka", - "positionAltitude": "Výška", - "positionSpeed": "Rychlost", - "positionCourse": "Směr", - "positionAddress": "Adresa", - "positionProtocol": "Protokol", - "serverTitle": "Nastavení serveru", - "serverZoom": "Přiblížení", - "serverRegistration": "Registrace", - "serverReadonly": "Pouze pro čtení", - "mapTitle": "Mapa", - "mapLayer": "Vrstva mapy", - "mapCustom": "Upravená mapa", - "mapOsm": "Open Street mapa", - "mapBingKey": "Bing Maps klíč", - "mapBingRoad": "Bing Maps cesta", - "mapBingAerial": "Bing Maps anténa", - "mapShapePolygon": "Mnohoúhelník", - "mapShapeCircle": "Kruh", - "stateTitle": "Stav", - "stateName": "Atribut", - "stateValue": "Hodnota", - "commandTitle": "Příkaz", - "commandSend": "Odeslat", - "commandSent": "Příkaz byl odeslán", - "commandPositionPeriodic": "Pravidelný report", - "commandPositionStop": "Zastavit report", - "commandEngineStop": "Zastavit motor", - "commandEngineResume": "Nastartovat motor", - "commandFrequency": "Frekvence", - "commandUnit": "Jednotka", - "commandCustom": "Volitelný příkaz", - "commandPositionSingle": "Jednotné hlášení", - "commandAlarmArm": "Aktivovat alarm", - "commandAlarmDisarm": "Deaktivovat alarm", - "commandSetTimezone": "Nastavit časovou zónu", - "commandRequestPhoto": "Vyžádat fotku", - "commandRebootDevice": "Restartovat zařízení", - "commandSendSms": "Odeslat SMS", - "commandSendUssd": "Odeslat USSD", - "commandSosNumber": "Nastavit SOS číslo", - "commandSilenceTime": "Nastavit čas tichého módu", - "commandSetPhonebook": "Nastavit telefonní seznam", - "commandVoiceMessage": "Hlasová zpráva", - "commandOutputControl": "Ovládání výstupu", - "commandAlarmSpeed": "Překročení rychlosti alarmu", - "commandDeviceIdentification": "Identifikace zařízení", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Číslo telefonu", - "commandMessage": "Zpráva", - "eventAll": "Všechny události", - "eventDeviceOnline": "Zařízení je online", - "eventDeviceOffline": "Zařízení je offline", - "eventDeviceMoving": "Zařízení s pohybuje", - "eventDeviceStopped": "Zařízení se zastavilo", - "eventDeviceOverspeed": "Zařízení překračuje rychlost", - "eventCommandResult": "Výsledek příkazu", - "eventGeofenceEnter": "Zařízení vstoupilo do geografické hranice", - "eventGeofenceExit": "Zařízení opustilo geografickou hranici", - "eventAlarm": "Alarmy", - "eventIgnitionOn": "Zažehnutí je ZAPNUTO", - "eventIgnitionOff": "Zažehnutí je VYPNUTO", - "alarm": "Alarm", - "alarmSos": "SOS alarm", - "alarmVibration": "Vibrační alarm", - "alarmMovement": "Pohybový alarm", - "alarmOverspeed": "Alarm překročení rychlosti", - "alarmFallDown": "Pádový alarm", - "alarmLowBattery": "Alarm vybité baterie", - "alarmFault": "Chybový alarm", - "notificationType": "Typ oznámení", - "notificationWeb": "Odeslat přes web", - "notificationMail": "Odeslat přes mail", - "reportRoute": "Trasa", - "reportEvents": "Události", - "reportTrips": "Výlety", - "reportSummary": "Souhrn", - "reportConfigure": "Nastavit", - "reportEventTypes": "Typy událostí", - "reportCsv": "CSV", - "reportDeviceName": "Jméno zařízení", - "reportAverageSpeed": "Průměrná rychlost", - "reportMaximumSpeed": "Maximální rychlost", - "reportEngineHours": "Hodiny motoru", - "reportDuration": "Trvání", - "reportStartTime": "Čas startu", - "reportStartAddress": "Adresa startu", - "reportEndTime": "Čas konce", - "reportEndAddress": "Adresa konce", - "reportSpentFuel": "Vyčerpané palivo" -} \ No newline at end of file diff --git a/web/l10n/da.json b/web/l10n/da.json deleted file mode 100644 index 4d2359cec..000000000 --- a/web/l10n/da.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Loading... ", - "sharedSave": "Gem", - "sharedCancel": "Fortryd", - "sharedAdd": "Tilføj", - "sharedEdit": "Rediger", - "sharedRemove": "Fjern", - "sharedRemoveConfirm": "Fjern enhed?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "knob", - "sharedKmh": "km/t", - "sharedMph": "mph", - "sharedHour": "Time", - "sharedMinute": "Minut", - "sharedSecond": "Sekund", - "sharedName": "Navn", - "sharedDescription": "Beskrivelse", - "sharedSearch": "Søg", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "Notifikationer", - "sharedAttributes": "Egenskaber", - "sharedAttribute": "Egenskab", - "sharedArea": "Område", - "sharedMute": "Lydløs", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "t", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Kort status", - "errorTitle": "Fejl", - "errorUnknown": "Ukendt Fejl", - "errorConnection": "Tilslutning fejl", - "userEmail": "Email", - "userPassword": "Kodeord", - "userAdmin": "Admin", - "userRemember": "Husk", - "loginTitle": "Log på", - "loginLanguage": "Sprog", - "loginRegister": "Registrer", - "loginLogin": "Log på", - "loginFailed": "Fejl i email adresse eller kodeord", - "loginCreated": "Ny bruger er registreret", - "loginLogout": "Log af", - "devicesAndState": "Enheder og status", - "deviceDialog": "Enhed", - "deviceTitle": "Enheder", - "deviceIdentifier": "Imei nr", - "deviceLastUpdate": "Seneste opdatering", - "deviceCommand": "Kommando", - "deviceFollow": "Følg", - "groupDialog": "Gruppe", - "groupParent": "Gruppe", - "groupNoGroup": "Ingen gruppe", - "settingsTitle": "Indstillinger", - "settingsUser": "Konto", - "settingsGroups": "Grupper", - "settingsServer": "Server", - "settingsUsers": "Brugere", - "settingsSpeedUnit": "Hastighed", - "settingsTwelveHourFormat": "12 timers format", - "reportTitle": "Rapporter", - "reportDevice": "Enhed", - "reportGroup": "Gruppe", - "reportFrom": "Fra", - "reportTo": "Til", - "reportShow": "Vis", - "reportClear": "Ryd", - "positionFixTime": "Tid", - "positionValid": "Valid", - "positionLatitude": "Breddegrad", - "positionLongitude": "Længdegrad", - "positionAltitude": "Højde", - "positionSpeed": "Hastighed", - "positionCourse": "Kurs", - "positionAddress": "Adresse", - "positionProtocol": "Protokol", - "serverTitle": "Server indstillinger", - "serverZoom": "Zoom", - "serverRegistration": "Registrering", - "serverReadonly": "Læs", - "mapTitle": "Kort", - "mapLayer": "Kort opsætning", - "mapCustom": "Brugerdefineret Kort", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Cirkel", - "stateTitle": "Status", - "stateName": "Parameter", - "stateValue": "Værdi", - "commandTitle": "Kommando", - "commandSend": "Send", - "commandSent": "Kommando er blevet sendt", - "commandPositionPeriodic": "Periodisk Rapportering", - "commandPositionStop": "Stop Rapportering", - "commandEngineStop": "Stop motor", - "commandEngineResume": "Genstart motor", - "commandFrequency": "Frekvens", - "commandUnit": "Enhed", - "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", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Angiv SOS nummer", - "commandSilenceTime": "Angiv lydløs tid", - "commandSetPhonebook": "Angiv telefonbog", - "commandVoiceMessage": "Tale meddelelse", - "commandOutputControl": "Output kontrol", - "commandAlarmSpeed": "Hastigheds alarm", - "commandDeviceIdentification": "Enheds id", - "commandIndex": "Indeks", - "commandData": "Data", - "commandPhone": "Telefon nummer", - "commandMessage": "Meddelelse", - "eventAll": "Alle begivenheder", - "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": "Alarmer", - "eventIgnitionOn": "Tænding slået til", - "eventIgnitionOff": "Tænding slået fra", - "alarm": "Alarm", - "alarmSos": "SOS alarm", - "alarmVibration": "Vibrations alarm", - "alarmMovement": "Bevægelses alarm", - "alarmOverspeed": "Hastigheds alarm", - "alarmFallDown": "Fald alarm", - "alarmLowBattery": "Lavt batteri alarm", - "alarmFault": "Fejl alarm", - "notificationType": "Type af notifikation", - "notificationWeb": "Send via Web", - "notificationMail": "Send via mail", - "reportRoute": "Rute", - "reportEvents": "Begivenheder", - "reportTrips": "Ture", - "reportSummary": "Resume", - "reportConfigure": "Konfigurer", - "reportEventTypes": "Begivenheds typer", - "reportCsv": "CSV", - "reportDeviceName": "Enheds navn", - "reportAverageSpeed": "Gennemsnits hastighed", - "reportMaximumSpeed": "Maximum hastighed", - "reportEngineHours": "Motor aktiv timer", - "reportDuration": "Varighed", - "reportStartTime": "Start tidspunkt", - "reportStartAddress": "Start adresse", - "reportEndTime": "Slut tidspunkt", - "reportEndAddress": "Slut adresse", - "reportSpentFuel": "Brændstof forbrug" -} \ No newline at end of file diff --git a/web/l10n/de.json b/web/l10n/de.json deleted file mode 100644 index d20e711c6..000000000 --- a/web/l10n/de.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Lade...", - "sharedSave": "Speichern", - "sharedCancel": "Abbrechen", - "sharedAdd": "Hinzufügen", - "sharedEdit": "Bearbeiten", - "sharedRemove": "Entfernen", - "sharedRemoveConfirm": "Objekt entfernen?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "kn", - "sharedKmh": "km/h", - "sharedMph": "mph", - "sharedHour": "Stunde", - "sharedMinute": "Minute", - "sharedSecond": "Sekunde", - "sharedName": "Name", - "sharedDescription": "Beschreibung", - "sharedSearch": "Suchen", - "sharedGeofence": "Geo-Zaun", - "sharedGeofences": "Geo-Zäune", - "sharedNotifications": "Benachrichtigungen", - "sharedAttributes": "Eigenschaften", - "sharedAttribute": "Eigenschaft", - "sharedArea": "Gebiet", - "sharedMute": "Stummschalten", - "sharedType": "Typ", - "sharedDistance": "Abstand", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "Fehler", - "errorUnknown": "Unbekannter Fehler", - "errorConnection": "Verbindungsfehler", - "userEmail": "Email", - "userPassword": "Passwort", - "userAdmin": "Admin", - "userRemember": "Erinnern", - "loginTitle": "Anmeldung", - "loginLanguage": "Sprache", - "loginRegister": "Registrieren", - "loginLogin": "Anmelden", - "loginFailed": "Falsche Emailadresse oder Passwort", - "loginCreated": "Neuer Benutzer wurde registriert", - "loginLogout": "Abmelden", - "devicesAndState": "Geräte und Status", - "deviceDialog": "Gerät", - "deviceTitle": "Geräte", - "deviceIdentifier": "Kennung", - "deviceLastUpdate": "Letzte Aktualisierung", - "deviceCommand": "Befehl", - "deviceFollow": "Folgen", - "groupDialog": "Gruppe", - "groupParent": "Gruppe", - "groupNoGroup": "Keine Gruppe", - "settingsTitle": "Einstellungen", - "settingsUser": "Benutzerkonto", - "settingsGroups": "Gruppen", - "settingsServer": "Server", - "settingsUsers": "Benutzer", - "settingsSpeedUnit": "Geschwindigkeit", - "settingsTwelveHourFormat": "12 Stunden Format", - "reportTitle": "Berichte", - "reportDevice": "Gerät", - "reportGroup": "Gruppe", - "reportFrom": "Von", - "reportTo": "Bis", - "reportShow": "Anzeigen", - "reportClear": "Leeren", - "positionFixTime": "Zeit", - "positionValid": "Gültig", - "positionLatitude": "Breitengrad", - "positionLongitude": "Längengrad", - "positionAltitude": "Altitude", - "positionSpeed": "Geschwindigkeit", - "positionCourse": "Richtung", - "positionAddress": "Adresse", - "positionProtocol": "Protokoll", - "serverTitle": "Server Einstellungen", - "serverZoom": "Zoomen", - "serverRegistration": "Registrierung zulassen", - "serverReadonly": "Nur Lesen", - "mapTitle": "Karte", - "mapLayer": "Karten Layer", - "mapCustom": "Benutzerspezifische Karte", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Strassenkarte", - "mapBingAerial": "Bing Luftbilder", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Kreis", - "stateTitle": "Status", - "stateName": "Parameter", - "stateValue": "Wert", - "commandTitle": "Befehl", - "commandSend": "Senden", - "commandSent": "Befehl wurde gesendet", - "commandPositionPeriodic": "Periodische Berichte", - "commandPositionStop": "Bericht stoppen", - "commandEngineStop": "Motor Stop", - "commandEngineResume": "Motor Start", - "commandFrequency": "Frequenz", - "commandUnit": "Einheit", - "commandCustom": "Benutzerdefinierter Befehl", - "commandPositionSingle": "Einzelner Bericht", - "commandAlarmArm": "Scharf schalten", - "commandAlarmDisarm": "Unscharf schalten", - "commandSetTimezone": "Zeitzone festlegen", - "commandRequestPhoto": "Foto anfordern", - "commandRebootDevice": "Gerät neustarten", - "commandSendSms": "SMS senden", - "commandSendUssd": "USSD senden", - "commandSosNumber": "SOS-Nummer festlegen", - "commandSilenceTime": "Ruhezeit festlegen", - "commandSetPhonebook": "Telefonbuch festlegen", - "commandVoiceMessage": "Sprachnachricht", - "commandOutputControl": "Berichtsteuerung", - "commandAlarmSpeed": "Geschwindigkeitsalarm", - "commandDeviceIdentification": "Gerätekennung", - "commandIndex": "Index", - "commandData": "Daten", - "commandPhone": "Rufnummer", - "commandMessage": "Nachricht", - "eventAll": "Alle Ereignisse", - "eventDeviceOnline": "Gerät ist online", - "eventDeviceOffline": "Gerät ist offline", - "eventDeviceMoving": "Gerät ist in Bewegung", - "eventDeviceStopped": "Gerät hat gestoppt", - "eventDeviceOverspeed": "Gerät überschreitet Tempolimit", - "eventCommandResult": "Ergebnis des Befehls", - "eventGeofenceEnter": "Gerät hat Geo-Zaun betreten", - "eventGeofenceExit": "Gerät hat Geo-Zaun verlassen", - "eventAlarm": "Alarme", - "eventIgnitionOn": "Zünding an", - "eventIgnitionOff": "Zündung aus", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Erschütterungsalarm", - "alarmMovement": "Bewegungsalarm", - "alarmOverspeed": "Geschwindigkeitsalarm", - "alarmFallDown": "Sturzalarm", - "alarmLowBattery": "Batteriealarm", - "alarmFault": "Fehleralarm", - "notificationType": "Art der Benachrichtigung ", - "notificationWeb": "Per Web senden", - "notificationMail": "Per E-Mail senden", - "reportRoute": "Route", - "reportEvents": "Ereignis", - "reportTrips": "Trips", - "reportSummary": "Zusammenfassung", - "reportConfigure": "Konfigurieren", - "reportEventTypes": "Ereignisarten", - "reportCsv": "CSV", - "reportDeviceName": "Gerätename", - "reportAverageSpeed": "Durchschnittsgeschwindigkeit", - "reportMaximumSpeed": "Höchstgeschwindigkeit", - "reportEngineHours": "Betriebsstunden", - "reportDuration": "Dauer", - "reportStartTime": "Startzeit", - "reportStartAddress": "Startort", - "reportEndTime": "Zielzeit", - "reportEndAddress": "Zielort", - "reportSpentFuel": "Kraftstoffverbrauch" -} \ No newline at end of file diff --git a/web/l10n/el.json b/web/l10n/el.json deleted file mode 100644 index 49dceda3d..000000000 --- a/web/l10n/el.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Φόρτωση...", - "sharedSave": "Αποθήκευση", - "sharedCancel": "Άκυρον", - "sharedAdd": "Προσθήκη", - "sharedEdit": "Επεξεργασία", - "sharedRemove": "Διαγραφή", - "sharedRemoveConfirm": "Διαγραφη στοιχείου;", - "sharedKm": "χλμ", - "sharedMi": "μίλια", - "sharedKn": "κόμβοι", - "sharedKmh": "χλμ/ώρα", - "sharedMph": "μίλια/ώρα", - "sharedHour": "Ώρα", - "sharedMinute": "Λεπτά", - "sharedSecond": "Δευτερόλεπτα", - "sharedName": "Όνομα", - "sharedDescription": "Περιγραφή", - "sharedSearch": "Αναζήτηση", - "sharedGeofence": "Γεωφράχτης", - "sharedGeofences": "Γεωφράχτες", - "sharedNotifications": "Ειδοποιήσεις", - "sharedAttributes": "Παράμετροι", - "sharedAttribute": "Παράμετρος", - "sharedArea": "Περιοχή", - "sharedMute": "Σίγαση", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "Σφάλμα", - "errorUnknown": "Άγνωστο σφάλμα", - "errorConnection": "Σφάλμα σύνδεσης", - "userEmail": "Ηλ. διεύθυνση", - "userPassword": "Συνθηματικό", - "userAdmin": "Admin", - "userRemember": "Απομνημόνευση", - "loginTitle": "Σύνδεση", - "loginLanguage": "Γλώσσα", - "loginRegister": "Εγγραφή", - "loginLogin": "Σύνδεση", - "loginFailed": "Εσφαλμένη διεύθυνση ή εσφαλμένο συνθηματικό", - "loginCreated": "Ο νέος χρήστης καταχωρήθηκε.", - "loginLogout": "Αποσύνδεση", - "devicesAndState": "Κατάσταση συσκευών", - "deviceDialog": "Συσκευή", - "deviceTitle": "Συσκευές", - "deviceIdentifier": "Αναγνωριστικό", - "deviceLastUpdate": "Τελευταία ενημέρωση", - "deviceCommand": "Εντολή", - "deviceFollow": "Ακολουθώ", - "groupDialog": "Ομάδα", - "groupParent": "Ομάδα", - "groupNoGroup": "Χωρίς Ομάδα", - "settingsTitle": "Ρυθμίσεις", - "settingsUser": "Λογαριασμός", - "settingsGroups": "Ομάδες", - "settingsServer": "Εξυπηρετητής", - "settingsUsers": "Χρήστες", - "settingsSpeedUnit": "Ταχύτητα", - "settingsTwelveHourFormat": "12ώρη μορφή", - "reportTitle": "Αναφορές", - "reportDevice": "Συσκευή", - "reportGroup": "Group", - "reportFrom": "Από", - "reportTo": "Έως", - "reportShow": "Προβολή", - "reportClear": "Καθαρισμός", - "positionFixTime": "Χρόνος", - "positionValid": "Έγκυρο", - "positionLatitude": "Γ. πλάτος", - "positionLongitude": "Γ. μήκος", - "positionAltitude": "Υψόμετρο", - "positionSpeed": "Ταχύτητα", - "positionCourse": "Πορεία", - "positionAddress": "Διεύθυνση", - "positionProtocol": "Πρωτόκολλο", - "serverTitle": "Ρυθμίσεις εξυπηρετητή", - "serverZoom": "Εστίαση", - "serverRegistration": "Εγγραφή", - "serverReadonly": "Μόνο για ανάγνωση", - "mapTitle": "Χάρτης", - "mapLayer": "Επιλογή χάρτη", - "mapCustom": "Προσαρμοσμένος χάρτης", - "mapOsm": "Open Street Map", - "mapBingKey": "Κλειδί Bing Maps", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Πολύγωνο", - "mapShapeCircle": "Κύκλος", - "stateTitle": "Κατάσταση", - "stateName": "Παράμετρος", - "stateValue": "Τιμή", - "commandTitle": "Εντολή", - "commandSend": "Αποστολή", - "commandSent": "Η εντολή έχει σταλεί.", - "commandPositionPeriodic": "Περιοδικές αναφορές", - "commandPositionStop": "Λήξη αναφορών", - "commandEngineStop": "Κλείσιμο", - "commandEngineResume": "Επανεκκίνηση", - "commandFrequency": "Συχνότητα", - "commandUnit": "Μονάδα", - "commandCustom": "Προσαρμοσμένη εντολή", - "commandPositionSingle": "Ενιαία αναφορά", - "commandAlarmArm": "Ενεργοποίηση συναγερμού", - "commandAlarmDisarm": "Απενεργοποίηση συναγερμού", - "commandSetTimezone": "Καθορισμός ζώνης ώρας", - "commandRequestPhoto": "Αίτημα για φωτογραφία", - "commandRebootDevice": "Επανεκκίνηση συσκευής", - "commandSendSms": "Αποστολή γραπτού μηνύματος (SMS)", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Καθορισμός αριθμού SOS", - "commandSilenceTime": "Καθορισμός χρόνου σιωπής", - "commandSetPhonebook": "Καθορισμός τηλεφωνικού καταλόγου", - "commandVoiceMessage": "Φωνητικό μήνυμα", - "commandOutputControl": "Έλεγχος αποτελεσμάτων", - "commandAlarmSpeed": "Υπέρβαση ορίου ταχύτητας", - "commandDeviceIdentification": "Αναγνωριστικό συσκευής", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "eventDeviceOnline": "Η συσκευή είναι συνδεδεμένη", - "eventDeviceOffline": "Η συσκευή είναι αποσυνδεδεμένη", - "eventDeviceMoving": "Η συσκευή βρίσκεται σε κίνηση", - "eventDeviceStopped": "Η συσκευή έχει σταματήσει", - "eventDeviceOverspeed": "Η συσκευή υπερέβει την ταχύτητα", - "eventCommandResult": "Αποτέλεσμα εντολής", - "eventGeofenceEnter": "Η συσσκευή εισήλθε του γεωφράχτη", - "eventGeofenceExit": "Η συσκευή εξήλθε του γεωφράχτη", - "eventAlarm": "Προειδοποιήσεις", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Προειδοποίηση", - "alarmSos": "Προειδοποίηση SOS", - "alarmVibration": "Προειδοποίηση δόνησης", - "alarmMovement": "Προειδοποίηση κίνησης", - "alarmOverspeed": "Προειδοποίηση υπέρβασης ορίου ταχύτητας", - "alarmFallDown": "Προειδοποίηση πτώσης", - "alarmLowBattery": "Προειδοποίηση χαμηλής μπαταρίας", - "alarmFault": "Προειδοποίηση σφάλματος", - "notificationType": "Τύπος ειδοποίησης", - "notificationWeb": "Αποστολή μέσω διαδικτύου", - "notificationMail": "Αποστολή μέσω ηλ. ταχυδρομείου", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/en.json b/web/l10n/en.json deleted file mode 100644 index a1fc97c8d..000000000 --- a/web/l10n/en.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Loading...", - "sharedSave": "Save", - "sharedCancel": "Cancel", - "sharedAdd": "Add", - "sharedEdit": "Edit", - "sharedRemove": "Remove", - "sharedRemoveConfirm": "Remove item?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "kn", - "sharedKmh": "km/h", - "sharedMph": "mph", - "sharedHour": "Hour", - "sharedMinute": "Minute", - "sharedSecond": "Second", - "sharedName": "Name", - "sharedDescription": "Description", - "sharedSearch": "Search", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "Notifications", - "sharedAttributes": "Attributes", - "sharedAttribute": "Attribute", - "sharedArea": "Area", - "sharedMute": "Mute", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "Error", - "errorUnknown": "Unknown error", - "errorConnection": "Connection error", - "userEmail": "Email", - "userPassword": "Password", - "userAdmin": "Admin", - "userRemember": "Remember", - "loginTitle": "Login", - "loginLanguage": "Language", - "loginRegister": "Register", - "loginLogin": "Login", - "loginFailed": "Incorrect email address or password", - "loginCreated": "New user has been registered", - "loginLogout": "Logout", - "devicesAndState": "Devices and State", - "deviceDialog": "Device", - "deviceTitle": "Devices", - "deviceIdentifier": "Identifier", - "deviceLastUpdate": "Last Update", - "deviceCommand": "Command", - "deviceFollow": "Follow", - "groupDialog": "Group", - "groupParent": "Group", - "groupNoGroup": "No Group", - "settingsTitle": "Settings", - "settingsUser": "Account", - "settingsGroups": "Groups", - "settingsServer": "Server", - "settingsUsers": "Users", - "settingsSpeedUnit": "Speed", - "settingsTwelveHourFormat": "12-hour Format", - "reportTitle": "Reports", - "reportDevice": "Device", - "reportGroup": "Group", - "reportFrom": "From", - "reportTo": "To", - "reportShow": "Show", - "reportClear": "Clear", - "positionFixTime": "Time", - "positionValid": "Valid", - "positionLatitude": "Latitude", - "positionLongitude": "Longitude", - "positionAltitude": "Altitude", - "positionSpeed": "Speed", - "positionCourse": "Course", - "positionAddress": "Address", - "positionProtocol": "Protocol", - "serverTitle": "Server Settings", - "serverZoom": "Zoom", - "serverRegistration": "Registration", - "serverReadonly": "Readonly", - "mapTitle": "Map", - "mapLayer": "Map Layer", - "mapCustom": "Custom Map", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Circle", - "stateTitle": "State", - "stateName": "Attribute", - "stateValue": "Value", - "commandTitle": "Command", - "commandSend": "Send", - "commandSent": "Command has been sent", - "commandPositionPeriodic": "Periodic Reporting", - "commandPositionStop": "Stop Reporting", - "commandEngineStop": "Engine Stop", - "commandEngineResume": "Engine Resume", - "commandFrequency": "Frequency", - "commandUnit": "Unit", - "commandCustom": "Custom command", - "commandPositionSingle": "Single Reporting", - "commandAlarmArm": "Arm Alarm", - "commandAlarmDisarm": "Disarm Alarm", - "commandSetTimezone": "Set Timezone", - "commandRequestPhoto": "Request Photo", - "commandRebootDevice": "Reboot Device", - "commandSendSms": "Send SMS", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Set SOS Number", - "commandSilenceTime": "Set Silence Time", - "commandSetPhonebook": "Set Phonebook", - "commandVoiceMessage": "Voice Message", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "eventDeviceOnline": "Device is online", - "eventDeviceOffline": "Device is offline", - "eventDeviceMoving": "Device is moving", - "eventDeviceStopped": "Device has stopped", - "eventDeviceOverspeed": "Device exceeds the speed", - "eventCommandResult": "Command result", - "eventGeofenceEnter": "Device has entered geofence", - "eventGeofenceExit": "Device has exited geofence", - "eventAlarm": "Alarms", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "Type of Notification", - "notificationWeb": "Send via Web", - "notificationMail": "Send via Mail", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/es.json b/web/l10n/es.json deleted file mode 100644 index cadd9b7ec..000000000 --- a/web/l10n/es.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Cargando...", - "sharedSave": "Guardar", - "sharedCancel": "Cancelar", - "sharedAdd": "Agregar", - "sharedEdit": "Editar", - "sharedRemove": "Borrar", - "sharedRemoveConfirm": "Borrar Elemento?", - "sharedKm": "KM", - "sharedMi": "MI", - "sharedKn": "Nudo", - "sharedKmh": "KM/H", - "sharedMph": "MPH", - "sharedHour": "Hora", - "sharedMinute": "Minuto", - "sharedSecond": "Segundo", - "sharedName": "Nombre", - "sharedDescription": "Descripción", - "sharedSearch": "Buscar", - "sharedGeofence": "Geocerca", - "sharedGeofences": "Geocercas", - "sharedNotifications": "Notificaciones", - "sharedAttributes": "Atributos", - "sharedAttribute": "Atributo", - "sharedArea": "Área", - "sharedMute": "Silenciar", - "sharedType": "Tipo", - "sharedDistance": "Distancia", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Obtener Estado del Mapa", - "errorTitle": "Error", - "errorUnknown": "Error Desconocido", - "errorConnection": "Error de Conexión", - "userEmail": "Email", - "userPassword": "Contraseña", - "userAdmin": "Administrador", - "userRemember": "Recordar", - "loginTitle": "Ingresar", - "loginLanguage": "Idioma", - "loginRegister": "Registrar", - "loginLogin": "Ingresar", - "loginFailed": "Dirección de Correo o Contraseña Incorrecta", - "loginCreated": "Nuevo Usuario ha sido registrado", - "loginLogout": "Salir", - "devicesAndState": "Dispositivos y Estado", - "deviceDialog": "Dispositivo", - "deviceTitle": "Dispositivos", - "deviceIdentifier": "Identificador", - "deviceLastUpdate": "Última Actualización", - "deviceCommand": "Comando", - "deviceFollow": "Seguir", - "groupDialog": "Grupo", - "groupParent": "Grupo", - "groupNoGroup": "Sin grupo", - "settingsTitle": "Preferencias", - "settingsUser": "Cuenta", - "settingsGroups": "Grupos", - "settingsServer": "Servidor", - "settingsUsers": "Usuarios", - "settingsSpeedUnit": "Velocidad", - "settingsTwelveHourFormat": "Formato de 12 Hrs", - "reportTitle": "Reportes", - "reportDevice": "Dispositivos", - "reportGroup": "Grupo", - "reportFrom": "Desde", - "reportTo": "Hasta", - "reportShow": "Mostrar", - "reportClear": "Limpiar", - "positionFixTime": "Hora", - "positionValid": "Válida", - "positionLatitude": "Latitud", - "positionLongitude": "Longitud", - "positionAltitude": "Altitud", - "positionSpeed": "Velocidad", - "positionCourse": "Curso", - "positionAddress": "Dirección", - "positionProtocol": "Protocolo", - "serverTitle": "Preferencias Servidor", - "serverZoom": "Zoom", - "serverRegistration": "Registrar", - "serverReadonly": "Sólo Lectura", - "mapTitle": "Mapa", - "mapLayer": "Capa de Mapa", - "mapCustom": "Mapa Personalizado", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Maps - Carretera", - "mapBingAerial": "Bing Maps - Aéreo", - "mapShapePolygon": "Polígono", - "mapShapeCircle": "Círculo", - "stateTitle": "Estado", - "stateName": "Parámetro", - "stateValue": "Valor", - "commandTitle": "Comando", - "commandSend": "Enviar", - "commandSent": "El Comando ha sido enviado", - "commandPositionPeriodic": "Frecuencia de Posiciones", - "commandPositionStop": "Detener Reporte de Posiciones", - "commandEngineStop": "Apagar motor", - "commandEngineResume": "Desbloquear Encendido de Motor", - "commandFrequency": "Frequencia", - "commandUnit": "Unidad", - "commandCustom": "Comando personalizado", - "commandPositionSingle": "Un report", - "commandAlarmArm": "Armar Alarma", - "commandAlarmDisarm": "Desarmar Alarma", - "commandSetTimezone": "Establecer zona horaria", - "commandRequestPhoto": "Solicitar Foto", - "commandRebootDevice": "Reiniciar dispositivo", - "commandSendSms": "Enviar SMS", - "commandSendUssd": "Enviar USSD", - "commandSosNumber": "Establecer el número SOS", - "commandSilenceTime": "Setear horario de silencio", - "commandSetPhonebook": "Establecer contacto", - "commandVoiceMessage": "Mensaje de voz", - "commandOutputControl": "Control de Salidas", - "commandAlarmSpeed": "Alerta de Velocidad", - "commandDeviceIdentification": "Identificación de Dispositivo", - "commandIndex": "Índice", - "commandData": "Datos", - "commandPhone": "Número de Teléfono", - "commandMessage": "Mensaje", - "eventAll": "Todos los Eventos", - "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": "Resultado de comando", - "eventGeofenceEnter": "El dispositivo ha ingresado a la geocerca", - "eventGeofenceExit": "El dispositivo ha salido de la geocerca", - "eventAlarm": "Alarmas", - "eventIgnitionOn": "Encendido ON", - "eventIgnitionOff": "Encendido OFF", - "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", - "alarmFault": "Alarma de fallo", - "notificationType": "Tipo de Notificación", - "notificationWeb": "Envíar vía Web", - "notificationMail": "Envíar vía Email", - "reportRoute": "Ruta", - "reportEvents": "Eventos", - "reportTrips": "Viajes", - "reportSummary": "Sumario", - "reportConfigure": "Configurar", - "reportEventTypes": "Tipos de Evento", - "reportCsv": "CSV", - "reportDeviceName": "Nombre de Dispositivo", - "reportAverageSpeed": "Velocidad promedio", - "reportMaximumSpeed": "Velocidad Máxima", - "reportEngineHours": "Horas Motor", - "reportDuration": "Duración", - "reportStartTime": "Hora de Inicio", - "reportStartAddress": "Dirección de Inicio", - "reportEndTime": "Hora de Fin", - "reportEndAddress": "Dirección de Fin", - "reportSpentFuel": "Combustible utilizado" -} \ No newline at end of file diff --git a/web/l10n/fa.json b/web/l10n/fa.json deleted file mode 100644 index 1bb66af48..000000000 --- a/web/l10n/fa.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "در حال بارگزارى ...", - "sharedSave": "ذخيره", - "sharedCancel": "انصراف", - "sharedAdd": "اضافه كردن", - "sharedEdit": "ویرایش", - "sharedRemove": "پاک کردن", - "sharedRemoveConfirm": "پاک کردن آیتم", - "sharedKm": "کیلومتر", - "sharedMi": "مایل", - "sharedKn": "kn", - "sharedKmh": "کیلومتر بر ساعت", - "sharedMph": "مایل بر ساعت", - "sharedHour": "ساعت", - "sharedMinute": "دقيقه", - "sharedSecond": "ثانيه", - "sharedName": "نام", - "sharedDescription": "توضیحات", - "sharedSearch": "جستجو", - "sharedGeofence": "حصار جغرافیایی", - "sharedGeofences": "حصارهای جغرافیایی", - "sharedNotifications": "رویدادها", - "sharedAttributes": "ویژگی ها", - "sharedAttribute": "ویژگی", - "sharedArea": "محدوده", - "sharedMute": "بی صدا", - "sharedType": "نوع خط", - "sharedDistance": "طول مسیر", - "sharedHourAbbreviation": "ساعت", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "خطا", - "errorUnknown": "خطا ناشناخته", - "errorConnection": "خطا در اتصال", - "userEmail": "نام كاربرى ", - "userPassword": "رمز عبور", - "userAdmin": "مدیر", - "userRemember": "مرا به خاطر داشته باش", - "loginTitle": "ورود", - "loginLanguage": "انتخاب زبان", - "loginRegister": "ثبت نام", - "loginLogin": "ورود", - "loginFailed": "نام كاربرى يا گذرواژه اشتباه است", - "loginCreated": "ثبت نام با موفقيت انجام شد", - "loginLogout": "خروج", - "devicesAndState": "دستگاه ها و وضعیت", - "deviceDialog": "دستگاه", - "deviceTitle": "دستگاه ها", - "deviceIdentifier": "سريال دستگاه", - "deviceLastUpdate": "آخرين بروزرسانى", - "deviceCommand": "فرمان", - "deviceFollow": "تعقیب", - "groupDialog": "گروه", - "groupParent": "گروه", - "groupNoGroup": "بدون گروه", - "settingsTitle": "تنظيمات", - "settingsUser": "حساب كاربرى", - "settingsGroups": "گروه ها", - "settingsServer": "سرور", - "settingsUsers": "کاربر", - "settingsSpeedUnit": "سرعت", - "settingsTwelveHourFormat": "فرمت 12 ساعتی", - "reportTitle": "گزارشات ", - "reportDevice": "دستگاه", - "reportGroup": "Group", - "reportFrom": "از", - "reportTo": "تا", - "reportShow": "نمایش", - "reportClear": "خالی کردن", - "positionFixTime": "زمان", - "positionValid": "معتبر", - "positionLatitude": "عرض جغرافيايى", - "positionLongitude": "طول جغرافيايى", - "positionAltitude": "ارتفاع", - "positionSpeed": "سرعت", - "positionCourse": "دوره", - "positionAddress": "آدرس", - "positionProtocol": "پروتوکل", - "serverTitle": "تنظیمات سرور", - "serverZoom": "بزرگنمایی", - "serverRegistration": "ثبت نام", - "serverReadonly": "فقط خواندنی", - "mapTitle": "نقشه", - "mapLayer": "لایه های نقشه", - "mapCustom": "Custom Map", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "چند ضلعی", - "mapShapeCircle": "دایره ", - "stateTitle": "وضعیت", - "stateName": "ویژگی", - "stateValue": "مقدار", - "commandTitle": "ارسال دستور به دستگاه", - "commandSend": "ارسال", - "commandSent": "دستور ارسال گردید", - "commandPositionPeriodic": "Periodic Reporting", - "commandPositionStop": "Stop Reporting", - "commandEngineStop": "Engine Stop", - "commandEngineResume": "Engine Resume", - "commandFrequency": "Frequency", - "commandUnit": "واحد", - "commandCustom": "Custom command", - "commandPositionSingle": "Single Reporting", - "commandAlarmArm": "Arm Alarm", - "commandAlarmDisarm": "Disarm Alarm", - "commandSetTimezone": "تنظیم ساعت محلی", - "commandRequestPhoto": "درخواست عکس", - "commandRebootDevice": "ریست کردن دستگاه", - "commandSendSms": "ارسال پیام کوتاه", - "commandSendUssd": "Send USSD", - "commandSosNumber": "انتخاب شماره مدیر ", - "commandSilenceTime": "تنظیم زمان سکوت", - "commandSetPhonebook": "تنظیم دفترچه تلفن", - "commandVoiceMessage": "پیام صوتی", - "commandOutputControl": "تنظیمات خروجی ", - "commandAlarmSpeed": "هشدار سرعت غیرمجاز", - "commandDeviceIdentification": "شناسایی دستگاه", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "eventDeviceOnline": "دستگاه آنلاین است ", - "eventDeviceOffline": "دستگاه آفلاین است ", - "eventDeviceMoving": "خودرو در حال حرکت است", - "eventDeviceStopped": "خودرو متوقف است", - "eventDeviceOverspeed": "خودرو از سرعت تعیین شده تجاوز کرده است ", - "eventCommandResult": "نتیجه ارسال دستور", - "eventGeofenceEnter": "خودرو وارد حصار جغرافیایی شد ", - "eventGeofenceExit": "خودرو از حصار جغرافیایی خارج شد", - "eventAlarm": "هشدار ها", - "eventIgnitionOn": "خودرو روشن هست ", - "eventIgnitionOff": "خودرو خاموش است ", - "alarm": "هشدار", - "alarmSos": "هشدار کمک اضطراری", - "alarmVibration": "هشدار ضربه", - "alarmMovement": "هشدار حرکت", - "alarmOverspeed": "هشدار سرعت غیر مجاز", - "alarmFallDown": "هشدار سقوط خودرو", - "alarmLowBattery": "هشدار کم شدن باتری", - "alarmFault": "هشدار خطا در دستگاه", - "notificationType": "تعیین نوع رویداد ", - "notificationWeb": "ارسال از طریق وب", - "notificationMail": "ارسال با ایمیل", - "reportRoute": "مسیر های پیموده شده ", - "reportEvents": "رویداد ها", - "reportTrips": "Trips", - "reportSummary": "خلاصه وضعیت ", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "نام دستگاه ", - "reportAverageSpeed": "سرعت میانگین", - "reportMaximumSpeed": "حداکثر سرعت", - "reportEngineHours": "مدت زمان روشن بودن خودرو", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/fi.json b/web/l10n/fi.json deleted file mode 100644 index 8df2d7e80..000000000 --- a/web/l10n/fi.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Ladataan...", - "sharedSave": "Tallenna", - "sharedCancel": "Peruuta", - "sharedAdd": "Lisää", - "sharedEdit": "Muokkaa", - "sharedRemove": "Poista", - "sharedRemoveConfirm": "Poista kohde?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "kn", - "sharedKmh": "km/h", - "sharedMph": "mph", - "sharedHour": "Tunti", - "sharedMinute": "Minuutti", - "sharedSecond": "Sekunti", - "sharedName": "Name", - "sharedDescription": "Description", - "sharedSearch": "Search", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "Notifications", - "sharedAttributes": "Attributes", - "sharedAttribute": "Attribute", - "sharedArea": "Area", - "sharedMute": "Mute", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "Virhe", - "errorUnknown": "Tuntematon virhe", - "errorConnection": "Yhteysvirhe", - "userEmail": "Email", - "userPassword": "Salasana", - "userAdmin": "Ylläpito", - "userRemember": "Remember", - "loginTitle": "Kirjaudu", - "loginLanguage": "Kieli", - "loginRegister": "Rekisteröidy", - "loginLogin": "Kirjaudu", - "loginFailed": "Virheellinen email tai salasana", - "loginCreated": "Uusi käyttäjä on rekisteröitynyt", - "loginLogout": "Kirjaudu ulos", - "devicesAndState": "Laitteet ja Tilat", - "deviceDialog": "Laite", - "deviceTitle": "Laitteet", - "deviceIdentifier": "Tunniste", - "deviceLastUpdate": "Viimeisin päivitys", - "deviceCommand": "Komento", - "deviceFollow": "Seuraa", - "groupDialog": "Group", - "groupParent": "Group", - "groupNoGroup": "No Group", - "settingsTitle": "Asetukset", - "settingsUser": "Tili", - "settingsGroups": "Groups", - "settingsServer": "Palvelin", - "settingsUsers": "Käyttäjät", - "settingsSpeedUnit": "Nopeus", - "settingsTwelveHourFormat": "12-hour Format", - "reportTitle": "Raportit", - "reportDevice": "Laite", - "reportGroup": "Group", - "reportFrom": "Mistä", - "reportTo": "Mihin", - "reportShow": "Näytä", - "reportClear": "Tyhjennä", - "positionFixTime": "Aika", - "positionValid": "Kelvollinen", - "positionLatitude": "Latitude", - "positionLongitude": "Longitude", - "positionAltitude": "Korkeus", - "positionSpeed": "Nopeus", - "positionCourse": "Suunta", - "positionAddress": "Osoite", - "positionProtocol": "Protokolla", - "serverTitle": "Palvelinasetukset", - "serverZoom": "Lähennä", - "serverRegistration": "Rekisteröinti", - "serverReadonly": "Vain luku", - "mapTitle": "Kartta", - "mapLayer": "Karttataso", - "mapCustom": "Oma kartta", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps avain", - "mapBingRoad": "Bign Maps tiet", - "mapBingAerial": "Bing Maps ilmakuva", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Circle", - "stateTitle": "Tila", - "stateName": "Ominaisuus", - "stateValue": "Arvo", - "commandTitle": "Komento", - "commandSend": "Lähetä", - "commandSent": "Komento on lähetetty", - "commandPositionPeriodic": "Määräaikaisraportointi", - "commandPositionStop": "Lopeta raportointi", - "commandEngineStop": "Sammuta moottori", - "commandEngineResume": "Palauta moottori", - "commandFrequency": "Taajuus", - "commandUnit": "Yksikkö", - "commandCustom": "Custom command", - "commandPositionSingle": "Single Reporting", - "commandAlarmArm": "Arm Alarm", - "commandAlarmDisarm": "Disarm Alarm", - "commandSetTimezone": "Set Timezone", - "commandRequestPhoto": "Request Photo", - "commandRebootDevice": "Reboot Device", - "commandSendSms": "Send SMS", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Set SOS Number", - "commandSilenceTime": "Set Silence Time", - "commandSetPhonebook": "Set Phonebook", - "commandVoiceMessage": "Voice Message", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "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", - "eventAlarm": "Alarms", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "Type of Notification", - "notificationWeb": "Send via Web", - "notificationMail": "Send via Mail", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/fr.json b/web/l10n/fr.json deleted file mode 100644 index afcc87372..000000000 --- a/web/l10n/fr.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Chargement...", - "sharedSave": "Enregistrer", - "sharedCancel": "Annuler", - "sharedAdd": "Ajouter", - "sharedEdit": "Editer", - "sharedRemove": "Effacer", - "sharedRemoveConfirm": "Effacer objet?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "nd", - "sharedKmh": "km/h", - "sharedMph": "mph", - "sharedHour": "Heure", - "sharedMinute": "Minute", - "sharedSecond": "Seconde", - "sharedName": "Nom", - "sharedDescription": "Description", - "sharedSearch": "Recherche", - "sharedGeofence": "Périmètre virtuel", - "sharedGeofences": "Périmètres virtuels", - "sharedNotifications": "Notifications", - "sharedAttributes": "Attributs", - "sharedAttribute": "Attribut", - "sharedArea": "Aire", - "sharedMute": "Muet", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Etat de la carte", - "errorTitle": "Erreur", - "errorUnknown": "Erreur inconnue", - "errorConnection": "Erreur de connexion", - "userEmail": "Email", - "userPassword": "Mot de Passe", - "userAdmin": "Admin", - "userRemember": "Rappel", - "loginTitle": "Identification", - "loginLanguage": "Langue", - "loginRegister": "Inscription", - "loginLogin": "Se connecter", - "loginFailed": "Adresse email ou mot de passe incorrect", - "loginCreated": "Nouvel utilisateur enregistré", - "loginLogout": "Déconnexion", - "devicesAndState": "Dispositifs et Etat", - "deviceDialog": "Dispositif", - "deviceTitle": "Dispositifs", - "deviceIdentifier": "Identifiant", - "deviceLastUpdate": "Dernière mise à jour", - "deviceCommand": "Commande", - "deviceFollow": "Suivre", - "groupDialog": "Groupe", - "groupParent": "Groupe", - "groupNoGroup": "Sans groupe", - "settingsTitle": "Paramètres", - "settingsUser": "Compte", - "settingsGroups": "Groupes", - "settingsServer": "Serveur", - "settingsUsers": "Utilisateurs", - "settingsSpeedUnit": "Vitesse", - "settingsTwelveHourFormat": "Format d'heure - 12 heures", - "reportTitle": "Rapports", - "reportDevice": "Dispositif", - "reportGroup": "Groupe", - "reportFrom": "De", - "reportTo": "A", - "reportShow": "Afficher", - "reportClear": "Effacer", - "positionFixTime": "Heure", - "positionValid": "Valide", - "positionLatitude": "Latitude", - "positionLongitude": "Longitude", - "positionAltitude": "Altitude", - "positionSpeed": "Vitesse", - "positionCourse": "Orientation", - "positionAddress": "Adresse", - "positionProtocol": "Protocole", - "serverTitle": "Paramètres de serveur", - "serverZoom": "Zoom", - "serverRegistration": "Inscription", - "serverReadonly": "Lecture seule", - "mapTitle": "Carte", - "mapLayer": "Couche cartographique", - "mapCustom": "Carte personnalisée", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Map Key", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Polygone", - "mapShapeCircle": "Cercle", - "stateTitle": "Etat", - "stateName": "Paramètre", - "stateValue": "Valeur", - "commandTitle": "Commande", - "commandSend": "Envoyer", - "commandSent": "Commande envoyée", - "commandPositionPeriodic": "Périodicité du rapport de position", - "commandPositionStop": "Arrêt du rapport de position", - "commandEngineStop": "Arrêt moteur", - "commandEngineResume": "Démarrage moteur", - "commandFrequency": "Fréquence", - "commandUnit": "Unité", - "commandCustom": "Commande personnalisée", - "commandPositionSingle": "Rapport de position unique", - "commandAlarmArm": "Activer l'alarme", - "commandAlarmDisarm": "Désactiver l'alarme", - "commandSetTimezone": "Régler le fuseau horaire", - "commandRequestPhoto": "Demander une photo", - "commandRebootDevice": "Redémarrer l'appareil", - "commandSendSms": "Envoyer un SMS", - "commandSendUssd": "Envoyer un USSD", - "commandSosNumber": "Régler le n° SOS", - "commandSilenceTime": "Définir le temps de silence", - "commandSetPhonebook": "Définir l'annuaire", - "commandVoiceMessage": "Message vocal", - "commandOutputControl": "Contrôle de la sortie", - "commandAlarmSpeed": "Alarme de dépassement de vitesse", - "commandDeviceIdentification": "Identification de l'appareil", - "commandIndex": "Index", - "commandData": "Données", - "commandPhone": "Numéro de téléphone", - "commandMessage": "Message", - "eventAll": "Tous les événements", - "eventDeviceOnline": "L'appareil est en ligne", - "eventDeviceOffline": "L'appareil est hors-ligne", - "eventDeviceMoving": "L'appareil est en mouvement", - "eventDeviceStopped": "L'appareil est arrêté", - "eventDeviceOverspeed": "L'appareil dépasse la vitesse", - "eventCommandResult": "Résultat de la commande", - "eventGeofenceEnter": "L'appareil est entré dans un périmètre virtuel", - "eventGeofenceExit": "L'appareil est sorti d'un périmètre virtuel", - "eventAlarm": "Alarmes", - "eventIgnitionOn": "Contact mis", - "eventIgnitionOff": "Contact coupé", - "alarm": "Alarme", - "alarmSos": "Alarme SOS", - "alarmVibration": "Alarme vibration", - "alarmMovement": "Alarme mouvement", - "alarmOverspeed": "Alarme de survitesse", - "alarmFallDown": "Alarme de chute", - "alarmLowBattery": "Alarme de batterie faible", - "alarmFault": "Alarme de problème", - "notificationType": "Type de notification", - "notificationWeb": "Envoyer par internet", - "notificationMail": "Envoyer par E-mail", - "reportRoute": "Route", - "reportEvents": "Evénements", - "reportTrips": "Trajets", - "reportSummary": "Résumé", - "reportConfigure": "Configurer", - "reportEventTypes": "Types d'événements", - "reportCsv": "CSV", - "reportDeviceName": "Nom du dispositif", - "reportAverageSpeed": "Vitesse moyenne", - "reportMaximumSpeed": "Vitesse maximum", - "reportEngineHours": "Heures du moteur", - "reportDuration": "Durée", - "reportStartTime": "Date de départ", - "reportStartAddress": "Adresse de départ", - "reportEndTime": "Date de fin", - "reportEndAddress": "Adresse de fin", - "reportSpentFuel": "Consommation de carburant" -} \ No newline at end of file diff --git a/web/l10n/he.json b/web/l10n/he.json deleted file mode 100644 index d7f4edd84..000000000 --- a/web/l10n/he.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "בטעינה...", - "sharedSave": "שמור", - "sharedCancel": "ביטול", - "sharedAdd": "הוסף", - "sharedEdit": "ערוך", - "sharedRemove": "הסר", - "sharedRemoveConfirm": "הסר פריט", - "sharedKm": "ק\"מ", - "sharedMi": "מייל", - "sharedKn": "kn", - "sharedKmh": "ק\"מ/שעה", - "sharedMph": "מייל/שעה", - "sharedHour": "שעה", - "sharedMinute": "דקה", - "sharedSecond": "שנייה", - "sharedName": "שם", - "sharedDescription": "תיאור", - "sharedSearch": "חיפוש", - "sharedGeofence": "גדר וירטואלית", - "sharedGeofences": "גדרות וירטואליות", - "sharedNotifications": "התראות", - "sharedAttributes": "מאפיינים", - "sharedAttribute": "מאפיין", - "sharedArea": "איזור", - "sharedMute": "Mute", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "שגיאה", - "errorUnknown": "שגיאה לא ידועה", - "errorConnection": "בעייה בחיבור", - "userEmail": "אימייל", - "userPassword": "סיסמה", - "userAdmin": "אדמין", - "userRemember": "זכור אותי", - "loginTitle": "כניסה", - "loginLanguage": "שפה", - "loginRegister": "הרשם", - "loginLogin": "כניסה", - "loginFailed": "אימייל או סיסמה שגויים", - "loginCreated": "משתמש חדש נרשם", - "loginLogout": "יציאה", - "devicesAndState": "מכשירים וסטטוס", - "deviceDialog": "מכשיר", - "deviceTitle": "מכשירים", - "deviceIdentifier": "מזהה", - "deviceLastUpdate": "עודכן לאחרונה", - "deviceCommand": "פקודה", - "deviceFollow": "עקוב", - "groupDialog": "קבוצה", - "groupParent": "קבוצה", - "groupNoGroup": "ללא קבוצה", - "settingsTitle": "הגדרות", - "settingsUser": "חשבון", - "settingsGroups": "קבוצות", - "settingsServer": "שרת", - "settingsUsers": "משתמשים", - "settingsSpeedUnit": "מהירות", - "settingsTwelveHourFormat": "פורמט של 12 שעות", - "reportTitle": "דו\"חות", - "reportDevice": "מכשיר", - "reportGroup": "Group", - "reportFrom": "מ-", - "reportTo": "עד", - "reportShow": "הצג", - "reportClear": "נקה", - "positionFixTime": "זמן", - "positionValid": "תקין", - "positionLatitude": "Latitude", - "positionLongitude": "Longitude", - "positionAltitude": "Altitude", - "positionSpeed": "מהירות", - "positionCourse": "מסלול", - "positionAddress": "כתובת", - "positionProtocol": "פרוטוקול", - "serverTitle": "הגדרות שרת", - "serverZoom": "זום", - "serverRegistration": "הרשמה", - "serverReadonly": "לקריאה בלבד", - "mapTitle": "מפה", - "mapLayer": "שכבת מפה", - "mapCustom": "מפה בהתאמה", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "פוליגון", - "mapShapeCircle": "מעגל", - "stateTitle": "מצב", - "stateName": "תכונה", - "stateValue": "ערך", - "commandTitle": "פקודה", - "commandSend": "שליחה", - "commandSent": "הפקודה נשלחה", - "commandPositionPeriodic": "דיווח תקופתי", - "commandPositionStop": "עצור דיווח", - "commandEngineStop": "דומם מנוע", - "commandEngineResume": "הפעל מנוע", - "commandFrequency": "תדירות", - "commandUnit": "יחידה", - "commandCustom": "פקודה בהתאמה אישית", - "commandPositionSingle": "דו\"ח יחיד", - "commandAlarmArm": "הפעלת אזעקה", - "commandAlarmDisarm": "נטרול אזעקה", - "commandSetTimezone": "קבע איזור זמן", - "commandRequestPhoto": "בקשה לתמונה", - "commandRebootDevice": "איתחול המכשיר", - "commandSendSms": "שלח סמס", - "commandSendUssd": "Send USSD", - "commandSosNumber": "קבע מספר חירום", - "commandSilenceTime": "קבע משך זמן הדממה", - "commandSetPhonebook": "הגדר ספר טלפונים", - "commandVoiceMessage": "הודעה קולית", - "commandOutputControl": "בקרת פלט", - "commandAlarmSpeed": "התראת מהירות", - "commandDeviceIdentification": "זיהוי מכשיר", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "eventDeviceOnline": "המכשיר און לין", - "eventDeviceOffline": "המכשיר מנותק", - "eventDeviceMoving": "המכשיר בתזוזה", - "eventDeviceStopped": "המכשיר עצר", - "eventDeviceOverspeed": "המכשיר עבר את המהירות המותרת", - "eventCommandResult": "תוצאות הפקודה", - "eventGeofenceEnter": "המכשיר נכנס לתחום המוגדר", - "eventGeofenceExit": "המכשיר יצא מהתחום המוגדר", - "eventAlarm": "אזעקות", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "אזעקה", - "alarmSos": "אתרעת SOS", - "alarmVibration": "אזעקת רטט", - "alarmMovement": "אזעקת תנועה", - "alarmOverspeed": "אזעקת מהירות יתר", - "alarmFallDown": "אזעקת נפילה", - "alarmLowBattery": "אזעקת סוללה חלשה", - "alarmFault": "אזעקת שווא", - "notificationType": "סוג ההתראה", - "notificationWeb": "שלח דרך ווב", - "notificationMail": "שלח באימייל", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/hi.json b/web/l10n/hi.json deleted file mode 100644 index a4ff7f0ac..000000000 --- a/web/l10n/hi.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "लोड हो रहा है...", - "sharedSave": "सुरक्षित करें", - "sharedCancel": "रद्द करें ", - "sharedAdd": "जोड़ें ", - "sharedEdit": "संपादित करें", - "sharedRemove": "हटाएं ", - "sharedRemoveConfirm": "आइटम हटाएं ?", - "sharedKm": "किमी ( किलोमीटर )", - "sharedMi": "एम आई ", - "sharedKn": "के.एन.", - "sharedKmh": "किमी / घंटा", - "sharedMph": "मील प्रति घंटा", - "sharedHour": "घंटा", - "sharedMinute": "मिनट", - "sharedSecond": "सैकंड ", - "sharedName": "नाम", - "sharedDescription": "विवरण", - "sharedSearch": "खोजें", - "sharedGeofence": "जिओफेंस / भूगौलिक परिधि", - "sharedGeofences": "जिओफेंसस / भूगौलिक परिधियां", - "sharedNotifications": "सूचनाएं", - "sharedAttributes": "गुण", - "sharedAttribute": "गुण", - "sharedArea": "क्षेत्र", - "sharedMute": "Mute", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "त्रुटि", - "errorUnknown": "अज्ञात त्रुटि", - "errorConnection": "कनेक्शन त्रुटि", - "userEmail": "ईमेल", - "userPassword": "पासवर्ड / गोपनीय शब्द ", - "userAdmin": "एडमिन / व्यवस्थापक", - "userRemember": "Remember", - "loginTitle": "लॉगिन / प्रवेश करें ", - "loginLanguage": "भाषा", - "loginRegister": "रजिस्टर / पंजीकृत करें", - "loginLogin": "लॉगिन / प्रवेश करें ", - "loginFailed": "ई-मेल पता या पासवर्ड गलत है", - "loginCreated": "New user has been registered", - "loginLogout": "लॉगआउट / निष्कासन करें", - "devicesAndState": "Devices and State", - "deviceDialog": "उपकरण", - "deviceTitle": "उपकरण", - "deviceIdentifier": "पहचानकर्ता", - "deviceLastUpdate": "Last Update", - "deviceCommand": "आदेश", - "deviceFollow": "Follow", - "groupDialog": "Group", - "groupParent": "Group", - "groupNoGroup": "No Group", - "settingsTitle": "सेटिंग्स", - "settingsUser": "Account", - "settingsGroups": "Groups", - "settingsServer": "सर्वर", - "settingsUsers": "Users", - "settingsSpeedUnit": "गति", - "settingsTwelveHourFormat": "12-hour Format", - "reportTitle": "Reports", - "reportDevice": "उपकरण", - "reportGroup": "Group", - "reportFrom": "From", - "reportTo": "To", - "reportShow": "Show", - "reportClear": "Clear", - "positionFixTime": "समय", - "positionValid": "Valid", - "positionLatitude": "अक्षांश / अक्षरेखा", - "positionLongitude": "देशान्तर", - "positionAltitude": "ऊंचाई", - "positionSpeed": "गति", - "positionCourse": "मार्ग", - "positionAddress": "Address", - "positionProtocol": "Protocol", - "serverTitle": "Server Settings", - "serverZoom": "Zoom", - "serverRegistration": "Registration", - "serverReadonly": "Readonly", - "mapTitle": "Map", - "mapLayer": "Map Layer", - "mapCustom": "Custom Map", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Circle", - "stateTitle": "State", - "stateName": "Attribute", - "stateValue": "Value", - "commandTitle": "आदेश", - "commandSend": "भेजें / प्रेषित करें", - "commandSent": "कमांड / आदेश भेज दी गयी है ", - "commandPositionPeriodic": "Periodic Reporting", - "commandPositionStop": "Stop Reporting", - "commandEngineStop": "Engine Stop", - "commandEngineResume": "Engine Resume", - "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", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Set SOS Number", - "commandSilenceTime": "Set Silence Time", - "commandSetPhonebook": "Set Phonebook", - "commandVoiceMessage": "Voice Message", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "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", - "eventAlarm": "Alarms", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "Type of Notification", - "notificationWeb": "Send via Web", - "notificationMail": "Send via Mail", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/hu.json b/web/l10n/hu.json deleted file mode 100644 index 151dccb2f..000000000 --- a/web/l10n/hu.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Betöltés...", - "sharedSave": "Mentés", - "sharedCancel": "Mégse", - "sharedAdd": "Hozzáadás", - "sharedEdit": "Szerkesztés", - "sharedRemove": "Törlés", - "sharedRemoveConfirm": "Biztosan törli?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "csomó", - "sharedKmh": "km/h", - "sharedMph": "mph", - "sharedHour": "Óra", - "sharedMinute": "Perc", - "sharedSecond": "Másodperc", - "sharedName": "Név", - "sharedDescription": "Leírás", - "sharedSearch": "Keresés", - "sharedGeofence": "Geokerítés", - "sharedGeofences": "Geokerítések", - "sharedNotifications": "Értesítések", - "sharedAttributes": "Tulajdonságok", - "sharedAttribute": "Tulajdonság", - "sharedArea": "Terület", - "sharedMute": "Mute", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "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ó", - "loginLogin": "Bejelentkezés", - "loginFailed": "Hibás email vagy jelszó", - "loginCreated": "Az új felhasználó sikeresen létrehozva", - "loginLogout": "Kilépés", - "devicesAndState": "Eszközök és állapotuk", - "deviceDialog": "Eszköz", - "deviceTitle": "Eszközök", - "deviceIdentifier": "Azonosító", - "deviceLastUpdate": "Utolsó frissítés", - "deviceCommand": "Parancs", - "deviceFollow": "Követ", - "groupDialog": "Csoport", - "groupParent": "Csoport", - "groupNoGroup": "Nincs Csoport", - "settingsTitle": "Beállítások", - "settingsUser": "Fiók", - "settingsGroups": "Csoportok", - "settingsServer": "Szerver", - "settingsUsers": "Felhasználók", - "settingsSpeedUnit": "Sebesség", - "settingsTwelveHourFormat": "12-órás formátum", - "reportTitle": "Jelentések", - "reportDevice": "Eszköz", - "reportGroup": "Group", - "reportFrom": "Kezdő dátum:", - "reportTo": "Végső dátum:", - "reportShow": "Mutat", - "reportClear": "Töröl", - "positionFixTime": "Idő", - "positionValid": "Valós", - "positionLatitude": "Szélességi fok", - "positionLongitude": "Hosszúsági fok", - "positionAltitude": "Magasság", - "positionSpeed": "Sebesség", - "positionCourse": "Irány", - "positionAddress": "Cím", - "positionProtocol": "Protokoll", - "serverTitle": "Szerver beállítások", - "serverZoom": "Nagyítás", - "serverRegistration": "Regisztráció", - "serverReadonly": "Csak olvasható", - "mapTitle": "Térkép", - "mapLayer": "Térkép réteg", - "mapCustom": "Egyéni térkép", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps kulcs", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Poligon", - "mapShapeCircle": "Kör", - "stateTitle": "Helyzet", - "stateName": "Paraméter", - "stateValue": "Érték", - "commandTitle": "Parancs", - "commandSend": "Küld", - "commandSent": "A parancs elküldve", - "commandPositionPeriodic": "Pozició küldés", - "commandPositionStop": "Pozició küldés vége", - "commandEngineStop": "Motor letiltás", - "commandEngineResume": "Motor engedélyezés", - "commandFrequency": "Frekvencia", - "commandUnit": "Egység", - "commandCustom": "Egyedi parancs", - "commandPositionSingle": "Egyszeri jelentés", - "commandAlarmArm": "Riasztó élesítés", - "commandAlarmDisarm": "Riasztó kikapcsolás", - "commandSetTimezone": "Időzóna beállítás", - "commandRequestPhoto": "Kép lekérés", - "commandRebootDevice": "Eszköz újraindítása", - "commandSendSms": "SMS küldés", - "commandSendUssd": "Send USSD", - "commandSosNumber": "SOS szám beállítás", - "commandSilenceTime": "Csendes idő beállítás", - "commandSetPhonebook": "Telefonkönyv beállítás", - "commandVoiceMessage": "Hangüzenet", - "commandOutputControl": "Kimenet Ellenőrzés", - "commandAlarmSpeed": "Riasztás Gyorshajtásról", - "commandDeviceIdentification": "Eszköz azonosító", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "eventDeviceOnline": "Eszköz online", - "eventDeviceOffline": "Eszköz offline", - "eventDeviceMoving": "Eszköz mozog", - "eventDeviceStopped": "Eszköz megállt", - "eventDeviceOverspeed": "Eszköz túllépte a sebességkorlátot", - "eventCommandResult": "Parancs eredmény", - "eventGeofenceEnter": "Eszköz belépett a geokerítésbe", - "eventGeofenceExit": "Eszköz kilépett a geokerítésből", - "eventAlarm": "Alarms", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "Értesítés Típusa", - "notificationWeb": "Küldés Weben", - "notificationMail": "Küldés E-mailben", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/id.json b/web/l10n/id.json deleted file mode 100644 index 10405748f..000000000 --- a/web/l10n/id.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Memuat...", - "sharedSave": "Simpan", - "sharedCancel": "Batal", - "sharedAdd": "Tambah", - "sharedEdit": "Ubah", - "sharedRemove": "Hapus", - "sharedRemoveConfirm": "Hapus item?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "kn", - "sharedKmh": "km/h", - "sharedMph": "mp/h", - "sharedHour": "Jam", - "sharedMinute": "Menit", - "sharedSecond": "Detik", - "sharedName": "Nama", - "sharedDescription": "Description", - "sharedSearch": "Cari", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "Notifications", - "sharedAttributes": "Attributes", - "sharedAttribute": "Attribute", - "sharedArea": "Area", - "sharedMute": "Mute", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "Error", - "errorUnknown": "Error tidak diketahui", - "errorConnection": "Koneksi error", - "userEmail": "Email", - "userPassword": "Sandi", - "userAdmin": "Admin", - "userRemember": "Remember", - "loginTitle": "Masuk", - "loginLanguage": "Bahasa", - "loginRegister": "Daftar", - "loginLogin": "Masuk", - "loginFailed": "Email atau password salah", - "loginCreated": "Pengguna baru telah terdaftar", - "loginLogout": "Keluar", - "devicesAndState": "Perangkat dan Status", - "deviceDialog": "Perangkat", - "deviceTitle": "Perangkat", - "deviceIdentifier": "Identifikasi", - "deviceLastUpdate": "Terbaru", - "deviceCommand": "Perintah", - "deviceFollow": "Ikuti", - "groupDialog": "Grup", - "groupParent": "Grup", - "groupNoGroup": "No Group", - "settingsTitle": "Pengaturan", - "settingsUser": "Akun", - "settingsGroups": "Grup", - "settingsServer": "Server", - "settingsUsers": "Pengguna", - "settingsSpeedUnit": "Kecepatan", - "settingsTwelveHourFormat": "Format 12 Jam", - "reportTitle": "Laporan", - "reportDevice": "Perangkat", - "reportGroup": "Group", - "reportFrom": "Dari", - "reportTo": "Ke", - "reportShow": "Tampil", - "reportClear": "Bersihkan", - "positionFixTime": "Waktu", - "positionValid": "Benar", - "positionLatitude": "Latitude", - "positionLongitude": "Longitude", - "positionAltitude": "Ketinggian", - "positionSpeed": "Kecepatan", - "positionCourse": "Arah", - "positionAddress": "Alamat", - "positionProtocol": "Protokol", - "serverTitle": "Pengaturan Server", - "serverZoom": "Perbesar", - "serverRegistration": "Pendaftaran", - "serverReadonly": "Hanya Dilihat", - "mapTitle": "Peta", - "mapLayer": "Layer Peta", - "mapCustom": "Peta Buatan", - "mapOsm": "Peta Open Street", - "mapBingKey": "Key untuk Peta Bing", - "mapBingRoad": "Peta Jalan Bing", - "mapBingAerial": "Peta Udara Bing", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Circle", - "stateTitle": "Status", - "stateName": "atribut", - "stateValue": "Nilai", - "commandTitle": "Perintah", - "commandSend": "Kirim", - "commandSent": "Perintah terkirim", - "commandPositionPeriodic": "Laporan berkala", - "commandPositionStop": "Stop Laporan", - "commandEngineStop": "Stop Mesin", - "commandEngineResume": "Mulai Mesin", - "commandFrequency": "Frekuensi", - "commandUnit": "unit", - "commandCustom": "Custom command", - "commandPositionSingle": "Single Reporting", - "commandAlarmArm": "Arm Alarm", - "commandAlarmDisarm": "Disarm Alarm", - "commandSetTimezone": "Set Timezone", - "commandRequestPhoto": "Request Photo", - "commandRebootDevice": "Reboot Device", - "commandSendSms": "Send SMS", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Set SOS Number", - "commandSilenceTime": "Set Silence Time", - "commandSetPhonebook": "Set Phonebook", - "commandVoiceMessage": "Voice Message", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "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", - "eventAlarm": "Alarms", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "Type of Notification", - "notificationWeb": "Send via Web", - "notificationMail": "Send via Mail", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/it.json b/web/l10n/it.json deleted file mode 100644 index 51ba44815..000000000 --- a/web/l10n/it.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Loading...", - "sharedSave": "Salva", - "sharedCancel": "Cancella", - "sharedAdd": "Aggiungi", - "sharedEdit": "Modifica", - "sharedRemove": "Rimuovi", - "sharedRemoveConfirm": "Rimuovere oggetto?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "kn", - "sharedKmh": "km/h", - "sharedMph": "mph", - "sharedHour": "Ora", - "sharedMinute": "Minuto", - "sharedSecond": "Secondo", - "sharedName": "Nome", - "sharedDescription": "Descrizione", - "sharedSearch": "Cerca", - "sharedGeofence": "GeoRecinto", - "sharedGeofences": "GeoRecinto", - "sharedNotifications": "Notifiche", - "sharedAttributes": "Attributi", - "sharedAttribute": "Attributo", - "sharedArea": "Area", - "sharedMute": "Muto", - "sharedType": "Tipo", - "sharedDistance": "Distanza", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Ottieni Stato Mappa", - "errorTitle": "Errore", - "errorUnknown": "Errore sconosciuto", - "errorConnection": "Errore di connessione", - "userEmail": "Email", - "userPassword": "Password", - "userAdmin": "Admin", - "userRemember": "Ricorda", - "loginTitle": "Login", - "loginLanguage": "Lingua", - "loginRegister": "Registrazione", - "loginLogin": "Login", - "loginFailed": "Indirizzo email o password errati", - "loginCreated": "Un nuovo utente si e` registrato", - "loginLogout": "Logout", - "devicesAndState": "Dispositivi e stato", - "deviceDialog": "Dispositivo", - "deviceTitle": "Dispositivi", - "deviceIdentifier": "Identificativo", - "deviceLastUpdate": "Ultimo aggiornamento", - "deviceCommand": "Comando", - "deviceFollow": "Segui", - "groupDialog": "Gruppo", - "groupParent": "Gruppo", - "groupNoGroup": "Nessun Gruppo", - "settingsTitle": "Impostazioni", - "settingsUser": "Account", - "settingsGroups": "Gruppi", - "settingsServer": "Server", - "settingsUsers": "Utenti", - "settingsSpeedUnit": "Velocità", - "settingsTwelveHourFormat": "Formato 12 ore", - "reportTitle": "Reports", - "reportDevice": "Dispositivo", - "reportGroup": "Gruppo", - "reportFrom": "Da", - "reportTo": "A", - "reportShow": "Visualizza", - "reportClear": "Pulisci", - "positionFixTime": "Tempo", - "positionValid": "Valido", - "positionLatitude": "Latitudine", - "positionLongitude": "Longitudine", - "positionAltitude": "Altitudine", - "positionSpeed": "Velocità", - "positionCourse": "Percorso", - "positionAddress": "Indirizzo", - "positionProtocol": "Protocollo", - "serverTitle": "Impostazioni Server", - "serverZoom": "Zoom", - "serverRegistration": "Registrazione", - "serverReadonly": "Sola lettura", - "mapTitle": "Mappa", - "mapLayer": "Livelli Mappa", - "mapCustom": "Mappa Personalizzata", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Poligono", - "mapShapeCircle": "Cerchio", - "stateTitle": "Stato", - "stateName": "Attributo", - "stateValue": "Valore", - "commandTitle": "Commando", - "commandSend": "Invia", - "commandSent": "Commando inviato", - "commandPositionPeriodic": "Report periodici", - "commandPositionStop": "Ferma i report", - "commandEngineStop": "Ferma Engine", - "commandEngineResume": "Riavvio Engine", - "commandFrequency": "Frequenza", - "commandUnit": "Unità ", - "commandCustom": "Comando personalizzato", - "commandPositionSingle": "Report singolo", - "commandAlarmArm": "Attiva allarme", - "commandAlarmDisarm": "Disattiva Allarme", - "commandSetTimezone": "Imposta Timezone", - "commandRequestPhoto": "Richiedi foto", - "commandRebootDevice": "Riavvia dispositivo", - "commandSendSms": "Invia SMS", - "commandSendUssd": "Invia USSD", - "commandSosNumber": "Imposta Numero SOS", - "commandSilenceTime": "Imposta Orario Silenzione", - "commandSetPhonebook": "Imposta rubrica", - "commandVoiceMessage": "Messaggio vocale", - "commandOutputControl": "Controllo Output", - "commandAlarmSpeed": "Allarme Velocità Elevata", - "commandDeviceIdentification": "Identificativo dispositivo", - "commandIndex": "Indice", - "commandData": "Dati", - "commandPhone": "Numero Telefonico", - "commandMessage": "Messaggio", - "eventAll": "Tutti gli Eventi", - "eventDeviceOnline": "Dispositivo online", - "eventDeviceOffline": "Dispositivo offline", - "eventDeviceMoving": "Dispositivo in movimento", - "eventDeviceStopped": "Dispositivo fermo", - "eventDeviceOverspeed": "Dispostivo troppo veloce", - "eventCommandResult": "Risultato comando", - "eventGeofenceEnter": "Il dipositivo e` entrato nel GeoRecinto", - "eventGeofenceExit": "Il dipositivo e` uscito dal GeoRecinto", - "eventAlarm": "Allarmi", - "eventIgnitionOn": "Accensione è inserita", - "eventIgnitionOff": "Accensione è disinserita", - "alarm": "Allarme", - "alarmSos": "Allarme SOS", - "alarmVibration": "Allarme Vibrazione", - "alarmMovement": "Allarme Movimento", - "alarmOverspeed": "Allarme Velocità Elevata", - "alarmFallDown": "Allarme Caduta", - "alarmLowBattery": "Allarme Livello Batteria Basso", - "alarmFault": "Allarme Guasto", - "notificationType": "Tipo notica", - "notificationWeb": "Invia tramite Web", - "notificationMail": "Invia tramite Mail", - "reportRoute": "Percorso", - "reportEvents": "Eventi", - "reportTrips": "Viaggi", - "reportSummary": "Sommario", - "reportConfigure": "Configura", - "reportEventTypes": "Tipi Evento", - "reportCsv": "CSV", - "reportDeviceName": "Nome Dispositivo", - "reportAverageSpeed": "Velocità Media", - "reportMaximumSpeed": "Velocità Massima", - "reportEngineHours": "Ore del Engine", - "reportDuration": "Durata", - "reportStartTime": "Ora di inizio", - "reportStartAddress": "Indirizzo iniziale", - "reportEndTime": "Tempo finale", - "reportEndAddress": "Indirizzo finale", - "reportSpentFuel": "Carburante Consumato" -} \ No newline at end of file diff --git a/web/l10n/ka.json b/web/l10n/ka.json deleted file mode 100644 index 5460a6d72..000000000 --- a/web/l10n/ka.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "იტვირთება...", - "sharedSave": "შენახვა", - "sharedCancel": "უარყოფა", - "sharedAdd": "დამატება", - "sharedEdit": "შეცვლა", - "sharedRemove": "წაშლა", - "sharedRemoveConfirm": "გსურთ წაშლა ?", - "sharedKm": "კმ", - "sharedMi": "მლ", - "sharedKn": "kn", - "sharedKmh": "კმ/სთ", - "sharedMph": "მლ/სთ", - "sharedHour": "საათი", - "sharedMinute": "წუთი", - "sharedSecond": "წამი", - "sharedName": "დასახელება", - "sharedDescription": "Description", - "sharedSearch": "ძებნა", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "Notifications", - "sharedAttributes": "Attributes", - "sharedAttribute": "Attribute", - "sharedArea": "Area", - "sharedMute": "Mute", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "შეცდომა", - "errorUnknown": "უცნობი შეცდომა", - "errorConnection": "კავშირის შეცდომა", - "userEmail": "ელ-ფოსტა", - "userPassword": "პაროლი", - "userAdmin": "ადმინი", - "userRemember": "Remember", - "loginTitle": "ავტორიზაცია", - "loginLanguage": "ენა", - "loginRegister": "რეგისტრაცია", - "loginLogin": "შესვლა", - "loginFailed": "არასწორი ელ-ფოსტა ან პაროლი", - "loginCreated": "ახალი მომხარებელი დარეგისტრირდა", - "loginLogout": "გამოსვლა", - "devicesAndState": "მოწყობილობები და სტატუსი", - "deviceDialog": "მოწყობილობა", - "deviceTitle": "მოწყობილობები", - "deviceIdentifier": "იდენტიფიკატორი", - "deviceLastUpdate": "ბოლო განახლება", - "deviceCommand": "ბრძანება", - "deviceFollow": "გაყოლა", - "groupDialog": "ჯგუფი", - "groupParent": "ჯგუფი", - "groupNoGroup": "No Group", - "settingsTitle": "პარამეტრები", - "settingsUser": "პროფილი", - "settingsGroups": "ჯგუფები", - "settingsServer": "სერვერი", - "settingsUsers": "მომხამრებლები", - "settingsSpeedUnit": "სიჩქარე", - "settingsTwelveHourFormat": "12-საათიანი ფორმატი", - "reportTitle": "რეპორტები", - "reportDevice": "მოწყობილობა", - "reportGroup": "Group", - "reportFrom": "დან", - "reportTo": "მდე", - "reportShow": "ჩვენება", - "reportClear": "გასუფთავება", - "positionFixTime": "დრო", - "positionValid": "ვარგისი", - "positionLatitude": "განედი", - "positionLongitude": "გრძედი", - "positionAltitude": "სიმაღლე", - "positionSpeed": "სიჩქარე", - "positionCourse": "კურსი", - "positionAddress": "მისამართი", - "positionProtocol": "პროტოკოლი", - "serverTitle": "სერვერის პარამეტრები", - "serverZoom": "ზუმი", - "serverRegistration": "რეგისტრაცია", - "serverReadonly": "მხოლოდ ნახვის", - "mapTitle": "რუკა", - "mapLayer": "რუკის ფენა", - "mapCustom": "მომხმარებლის რუკა", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Circle", - "stateTitle": "სტატუსი", - "stateName": "ატრიბუტი", - "stateValue": "მნიშვნელობა", - "commandTitle": "ბრძანება", - "commandSend": "გაგზავნა", - "commandSent": "ბრძანება გაიგზავნა", - "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", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Set SOS Number", - "commandSilenceTime": "Set Silence Time", - "commandSetPhonebook": "Set Phonebook", - "commandVoiceMessage": "Voice Message", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "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", - "eventAlarm": "Alarms", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "Type of Notification", - "notificationWeb": "Send via Web", - "notificationMail": "Send via Mail", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/lo.json b/web/l10n/lo.json deleted file mode 100644 index 7c52a3f71..000000000 --- a/web/l10n/lo.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "ກຳລັງໂຫລດ...", - "sharedSave": "ບັນທຶກ", - "sharedCancel": "ຍົກເລີກ", - "sharedAdd": "ເພີ່ມ", - "sharedEdit": "ແກ້ໄຂ", - "sharedRemove": "ລົບອອກ", - "sharedRemoveConfirm": "ລົບລາຍການນີ້ບໍ່?", - "sharedKm": "ກມ.", - "sharedMi": "ໄມລ໌", - "sharedKn": "ນ໊ອດ", - "sharedKmh": "ກມ. /ຊມ.", - "sharedMph": "ໄມລ໌ຕໍ່ຊົ່ວໂມງ", - "sharedHour": "ຊົ່ວໂມງ", - "sharedMinute": "ນາທີ", - "sharedSecond": "ວິນາທີ", - "sharedName": "ຊື່", - "sharedDescription": "ລັກສະນະ", - "sharedSearch": "ຄົ້ນຫາ", - "sharedGeofence": "ເຂດພື້ນທີ່", - "sharedGeofences": "ເຂດພື້ນທີ່", - "sharedNotifications": "ການແຈ້ງເຕືອນ", - "sharedAttributes": "ຄຸນລັກສະນະ", - "sharedAttribute": "ຄຸນລັກສະນະ", - "sharedArea": "ພື້ນທີ່", - "sharedMute": "ປິດສຽງ", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "ຜິດພາດ", - "errorUnknown": "ຂໍ້ຜິດພາດທີ່ບໍ່ຮູ້ຈັກ", - "errorConnection": "ການເຊື່ອມຕໍ່ຜິດພາດ", - "userEmail": "ອີເມວ", - "userPassword": "ລະຫັດຜ່ານ", - "userAdmin": "ຜູ້ເບິ່ງແຍງລະບົບ", - "userRemember": "ຈື່ໄວ້", - "loginTitle": "ເຂົ້າສູ່ລະບົບ", - "loginLanguage": "ພາສາ", - "loginRegister": "ລົງທະບຽນ", - "loginLogin": "ເຂົ້າສູ່ລະບົບ", - "loginFailed": "ທີ່ຢູ່ອີເມວຫລືລະຫັດຜ່ານບໍ່ຖືກຕ້ອງ", - "loginCreated": "ຜູ້ໃຊ້ໃຫມ່ ໄດ້ຮັບການລົງທະບຽນ", - "loginLogout": "ອອກຈາກລະບົບ", - "devicesAndState": "ອຸປະກອນແລະສະຖານະ", - "deviceDialog": "ເຄື່ອງ/ອຸປະກອນ", - "deviceTitle": "ເຄື່ອງ/ອຸປະກອນ", - "deviceIdentifier": "ລະບຸເລກອຸປະກອນ", - "deviceLastUpdate": "ແກ້ໄຂລ່າສຸດ", - "deviceCommand": "ຄຳສັ່ງ", - "deviceFollow": "ຕິດຕາມ", - "groupDialog": "ກຸ່ມ", - "groupParent": "ກຸ່ມ", - "groupNoGroup": "ບໍ່ຈັດໃນກຸ່ມ", - "settingsTitle": "ການຕັ້ງຄ່າ", - "settingsUser": "ບັນຊີຜູ້ໃຊ້", - "settingsGroups": "ຕັ້ງຄ່າກຸ່ມ", - "settingsServer": "ຕັ້ງຄ່າລະບົບ", - "settingsUsers": "ຕັ້ງຄ່າຜູ້ໃຊ້ງານ", - "settingsSpeedUnit": "ຫນ່ວຍຄວາມໄວ", - "settingsTwelveHourFormat": "ຮູບແບບເວລາ 12 ຊົ່ວໂມງ", - "reportTitle": "ລາຍງານ", - "reportDevice": "ລາຍງານເຄື່ອງ/ອຸປະກອນ", - "reportGroup": "Group", - "reportFrom": "ຈາກ", - "reportTo": "ໄປເຖິງ", - "reportShow": "ສະແດງ", - "reportClear": "ລົບລ້າງລາຍງານ", - "positionFixTime": "ເວລາ", - "positionValid": "ຖືກຕ້ອງ", - "positionLatitude": "ລາຕິຈູດ", - "positionLongitude": "ລອງຈິຈູດ", - "positionAltitude": "ລະດັບຄວາມສູງ", - "positionSpeed": "ຄວາມໄວ", - "positionCourse": "ທິດທາງ", - "positionAddress": "ທີ່ຢູ່", - "positionProtocol": "ໂປຣໂຕຄໍລ໌", - "serverTitle": "ການຕັ້ງຄ່າເຊີເວີ້", - "serverZoom": "ຂະຫຍາຍ +/-", - "serverRegistration": "ລົງທະບຽນ", - "serverReadonly": "ອ່ານໄດ້ຢ່າງດຽວ", - "mapTitle": "ແຜ່ນທີ", - "mapLayer": "ຊັ້ນແຜ່ນທີ", - "mapCustom": "ແຜ່ນທີ່ທີ່ກຳຫນົດເອງ", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps ສຳຄັນ", - "mapBingRoad": "Bing Maps ຖະຫນົນ", - "mapBingAerial": "Bing Maps ທາງອາກາດ", - "mapShapePolygon": "ໂພລີກອນ", - "mapShapeCircle": "ວົງກົມ", - "stateTitle": "ສະຖານະ", - "stateName": "ຄຸນລັກສະນະ", - "stateValue": "ມູນຄ່າ", - "commandTitle": "ຄຳສັ່ງ", - "commandSend": "ສົ່ງ", - "commandSent": "ຄຳສັ່ງໄດ້ຖືກສົ່ງແລ້ວ", - "commandPositionPeriodic": "ແກ້ໄຂຕ່ຳແຫນ່ງ", - "commandPositionStop": "ຕ່ຳແຫນ່ງ ຢຸດ", - "commandEngineStop": "ດັບເຄື່ອງຈັກ", - "commandEngineResume": "ຕິດເຄື່ອງຈັກຄືນໃຫມ່", - "commandFrequency": "ຄວາມຖີ່", - "commandUnit": "ຫນ່ວຍ", - "commandCustom": "ຄຳສັ່ງກຳຫນົດເອງ", - "commandPositionSingle": "ລາຍງານຕ່ຳແຫນ່ງດຽວ", - "commandAlarmArm": "ແຈ້ງເຕືອນຕິດຕໍ່ສາຂາ", - "commandAlarmDisarm": "ແຈ້ງເຕືອນຍົກເລີກຕິດຕໍ່ສາຂາ", - "commandSetTimezone": "ຕັ້ງຄ່າເຂດເວລາ", - "commandRequestPhoto": "ສັ່ງຖ່າຍຮູບ", - "commandRebootDevice": "ຣີບູດ", - "commandSendSms": "ສົ່ງ SMS", - "commandSendUssd": "Send USSD", - "commandSosNumber": "ຕັ້ງຄ່າເລກໝາຍໂທສຸກເສີນ SOS", - "commandSilenceTime": "ຕັ້ງຄ່າຊ່ວງເວລາຢຸດນິ່ງ", - "commandSetPhonebook": "ຕັ້ງຄ່າສະໝຸດໂທລະສັບ", - "commandVoiceMessage": "ຂໍ້ຄວາມສຽງ", - "commandOutputControl": "ຄວບຄຸມຂໍ້ມູນທີ່ສົ່ງອອກ", - "commandAlarmSpeed": "ແຈ້ງເຕືອນຄວາມໄວເກີນກຳນົດ", - "commandDeviceIdentification": "ໝາຍເລກອຸປະກອນ", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "eventDeviceOnline": "ອຸປະກອນເຊື່ອມຕໍ່ແລ້ວ", - "eventDeviceOffline": "ອຸປະກອນບໍ່ໄດ້ເຊື່ອມຕໍ່", - "eventDeviceMoving": "ອຸປະກອນກຳລັງເຄື່ອນທີ່", - "eventDeviceStopped": "ອຸປະກອນບໍ່ເຄື່ອນໄຫວ", - "eventDeviceOverspeed": "ອຸປະກອນເກີນກຳນົດຄວາມໄວ", - "eventCommandResult": "ຜົນຮັບຈາກຄຳສັ່ງ", - "eventGeofenceEnter": "ອຸປະກອນເຂົ້າໃນເຂດພື້ນທີ່", - "eventGeofenceExit": "ອຸປະກອນອອກນອກເຂດພື້ນທີ່", - "eventAlarm": "ລາຍການແຈ້ງເຕືອນ", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "ແຈ້ງເຕືອນ", - "alarmSos": "ແຈ້ງເຕືອນ SOS", - "alarmVibration": "ແຈ້ງເຕືອນແບບສັ່ນ", - "alarmMovement": "ແຈ້ງເຕືອນມີການເຄື່ອນທີ່", - "alarmOverspeed": "ແຈ້ງເຕືອນຄວາມໄວສູງເກີນກຳນົດ", - "alarmFallDown": "ແຈ້ງເຕືອນການຕົກ", - "alarmLowBattery": "ແຈ້ງເຕືອນແບັດເຕີລີ້ອ່ອນ", - "alarmFault": "ແຈ້ງເຕື່ອນຜິດພາດ", - "notificationType": "ຊະນິດການແຈ້ງເຕືອນ", - "notificationWeb": "ສົ່ງທາງເວັບ", - "notificationMail": "ສົ່ງທາງເມວ", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/lt.json b/web/l10n/lt.json deleted file mode 100644 index adfb51b95..000000000 --- a/web/l10n/lt.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Kraunasi..", - "sharedSave": "Išsaugoti", - "sharedCancel": "Atšaukti", - "sharedAdd": "Pridėti", - "sharedEdit": "Redaguoti", - "sharedRemove": "Ištrinti", - "sharedRemoveConfirm": "Ar tikrais norite ištrinti?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "mazgai", - "sharedKmh": "km/h", - "sharedMph": "mph", - "sharedHour": "Valanda(-os)", - "sharedMinute": "Minutė(-es)", - "sharedSecond": "Sekundė(-es)", - "sharedName": "Pavadinimas", - "sharedDescription": "Description", - "sharedSearch": "Paieška", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "Notifications", - "sharedAttributes": "Attributes", - "sharedAttribute": "Attribute", - "sharedArea": "Area", - "sharedMute": "Mute", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "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", - "loginLogin": "Prisijungti", - "loginFailed": "Neteisingas el.paštas ir/ar slaptažodis", - "loginCreated": "Registracija sėkminga", - "loginLogout": "Atsijungti", - "devicesAndState": "Prietaisai ir Statusas", - "deviceDialog": "Prietaisas", - "deviceTitle": "Prietaisai", - "deviceIdentifier": "Identifikacinis kodas", - "deviceLastUpdate": "Naujausias atnaujinimas", - "deviceCommand": "Komanda", - "deviceFollow": "Sekti", - "groupDialog": "Grupė", - "groupParent": "Grupė", - "groupNoGroup": "Nenurodyta grupė", - "settingsTitle": "Nustatymai", - "settingsUser": "Paskyra", - "settingsGroups": "Grupės", - "settingsServer": "Serveris", - "settingsUsers": "Vartotojai", - "settingsSpeedUnit": "Greitis", - "settingsTwelveHourFormat": "12-val formatas", - "reportTitle": "Ataskaita", - "reportDevice": "Prietaisas", - "reportGroup": "Group", - "reportFrom": "Nuo", - "reportTo": "Iki", - "reportShow": "Rodyti", - "reportClear": "Valyti", - "positionFixTime": "Laikas", - "positionValid": "Galiojantis", - "positionLatitude": "Platuma", - "positionLongitude": "Ilguma", - "positionAltitude": "Aukštis", - "positionSpeed": "Greitis", - "positionCourse": "Eiga", - "positionAddress": "Adresas", - "positionProtocol": "Protokolas", - "serverTitle": "Serverio nustatymai", - "serverZoom": "Priartinimas", - "serverRegistration": "Registracija", - "serverReadonly": "Skaitymo", - "mapTitle": "Žemėlapis", - "mapLayer": "Žemėlapio sluoksnis", - "mapCustom": "Pasirinktinis Žemėlapis", - "mapOsm": "Open Street žemėlapis", - "mapBingKey": "Bing Maps raktas", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Circle", - "stateTitle": "Būklė", - "stateName": "Parametras", - "stateValue": "Reikšmė", - "commandTitle": "Komanda", - "commandSend": "Siųsti", - "commandSent": "Komanda buvo išsiųsta", - "commandPositionPeriodic": "Periodinės ataskaitos", - "commandPositionStop": "Stabdyti ataskaitas", - "commandEngineStop": "Stabdyti variklį", - "commandEngineResume": "Paleisti variklį", - "commandFrequency": "Dažnis", - "commandUnit": "Vienetai", - "commandCustom": "Custom command", - "commandPositionSingle": "Single Reporting", - "commandAlarmArm": "Arm Alarm", - "commandAlarmDisarm": "Disarm Alarm", - "commandSetTimezone": "Set Timezone", - "commandRequestPhoto": "Request Photo", - "commandRebootDevice": "Reboot Device", - "commandSendSms": "Send SMS", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Set SOS Number", - "commandSilenceTime": "Set Silence Time", - "commandSetPhonebook": "Set Phonebook", - "commandVoiceMessage": "Voice Message", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "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", - "eventAlarm": "Alarms", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "Type of Notification", - "notificationWeb": "Send via Web", - "notificationMail": "Send via Mail", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/ml.json b/web/l10n/ml.json deleted file mode 100644 index 42a0c497b..000000000 --- a/web/l10n/ml.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "ലോഡുചെയ്യുന്നു ..", - "sharedSave": "രക്ഷിക്കും", - "sharedCancel": "റദ്ദാക്കുക", - "sharedAdd": "ചേര്‍ക്കുക", - "sharedEdit": "തിരുത്തുക", - "sharedRemove": "നീക്കം ചെയ്യുക", - "sharedRemoveConfirm": "വിഷയം നീക്കം ചെയ്യുക", - "sharedKm": "കിലോമീറ്റർ", - "sharedMi": "നാഴിക", - "sharedKn": "കുരുക്ക്", - "sharedKmh": "കിലോമീറ്റർ / മണിക്കൂർ", - "sharedMph": "മണിക്കൂറിൽ മൈൽ", - "sharedHour": "മണിക്കൂര്", - "sharedMinute": "മിനിറ്റ്", - "sharedSecond": "സെക്കന്റ്", - "sharedName": "പേര്\n", - "sharedDescription": "വിവരണം", - "sharedSearch": "തിരയൽ", - "sharedGeofence": "എർത്ത് വേലി", - "sharedGeofences": "ശില്പ്പശാല എർത്ത്", - "sharedNotifications": "അറിയിപ്പുകൾ", - "sharedAttributes": "ഗുണവിശേഷങ്ങൾ", - "sharedAttribute": "ഗുണവിശേഷങ്ങ", - "sharedArea": "പ്രദേശം", - "sharedMute": "Mute", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "പിശക്‌", - "errorUnknown": "അജ്ഞാത പിശക്", - "errorConnection": "കണക്ഷൻ പിശക്", - "userEmail": "ഇമെയിൽ", - "userPassword": "രഹസ്യ കോഡ്‌", - "userAdmin": "നിർവാജി ", - "userRemember": "Remember", - "loginTitle": "അകത്തു പ്രവേശിക്കുക", - "loginLanguage": "ഭാഷ", - "loginRegister": "രെജിസ്റ്റർ ", - "loginLogin": "അകത്തു പ്രവേശിക്കുക", - "loginFailed": "തെറ്റായ ഇമെയിൽ വിലാസവും പാസ്വേഡും", - "loginCreated": "പുതിയ ഉപയോക്താവ് രജിസ്റ്റർ ചെയ്തു", - "loginLogout": "പുറത്തുകടക്കുക", - "devicesAndState": "സാധനങ്ങളിന് നില ", - "deviceDialog": "ഉപകരണം", - "deviceTitle": "സാധനങ്ങളിന് ", - "deviceIdentifier": "ഐഡന്റിഫയർ", - "deviceLastUpdate": "Last Update", - "deviceCommand": "Command", - "deviceFollow": "Follow", - "groupDialog": "Group", - "groupParent": "Group", - "groupNoGroup": "No Group", - "settingsTitle": "Settings", - "settingsUser": "Account", - "settingsGroups": "Groups", - "settingsServer": "Server", - "settingsUsers": "Users", - "settingsSpeedUnit": "വേഗം", - "settingsTwelveHourFormat": "12-hour Format", - "reportTitle": "Reports", - "reportDevice": "ഉപകരണം", - "reportGroup": "Group", - "reportFrom": "From", - "reportTo": "To", - "reportShow": "Show", - "reportClear": "Clear", - "positionFixTime": "സമയം", - "positionValid": "Valid", - "positionLatitude": "അക്ഷാംശം", - "positionLongitude": "രേഖാംശം", - "positionAltitude": "Altitude", - "positionSpeed": "വേഗം", - "positionCourse": "Course", - "positionAddress": "Address", - "positionProtocol": "Protocol", - "serverTitle": "Server Settings", - "serverZoom": "വലുതാക്കിയോ ചെറുതാക്കിയോ കാണിക്കുക", - "serverRegistration": "രജിസ്ട്രേഷൻ", - "serverReadonly": "Readonly", - "mapTitle": "ഭൂപടം", - "mapLayer": "Map Layer", - "mapCustom": "Custom Map", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Circle", - "stateTitle": "State", - "stateName": "Attribute", - "stateValue": "Value", - "commandTitle": "Command", - "commandSend": "Send", - "commandSent": "Command has been sent", - "commandPositionPeriodic": "Periodic Reporting", - "commandPositionStop": "Stop Reporting", - "commandEngineStop": "Engine Stop", - "commandEngineResume": "Engine Resume", - "commandFrequency": "Frequency", - "commandUnit": "Unit", - "commandCustom": "Custom command", - "commandPositionSingle": "Single Reporting", - "commandAlarmArm": "Arm Alarm", - "commandAlarmDisarm": "Disarm Alarm", - "commandSetTimezone": "Set Timezone", - "commandRequestPhoto": "Request Photo", - "commandRebootDevice": "Reboot Device", - "commandSendSms": "Send SMS", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Set SOS Number", - "commandSilenceTime": "Set Silence Time", - "commandSetPhonebook": "Set Phonebook", - "commandVoiceMessage": "Voice Message", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "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", - "eventAlarm": "Alarms", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "Type of Notification", - "notificationWeb": "Send via Web", - "notificationMail": "Send via Mail", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/ms.json b/web/l10n/ms.json deleted file mode 100644 index 4b6525661..000000000 --- a/web/l10n/ms.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Memuatkan...", - "sharedSave": "Simpan", - "sharedCancel": "Batal", - "sharedAdd": "Tambah", - "sharedEdit": "Ubah", - "sharedRemove": "Hapus", - "sharedRemoveConfirm": "Hapuskan item?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "kn", - "sharedKmh": "km/h", - "sharedMph": "mph", - "sharedHour": "Jam", - "sharedMinute": "Minit", - "sharedSecond": "Saat", - "sharedName": "Name", - "sharedDescription": "Description", - "sharedSearch": "Search", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "Notifications", - "sharedAttributes": "Attributes", - "sharedAttribute": "Attribute", - "sharedArea": "Area", - "sharedMute": "Mute", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "Ralat", - "errorUnknown": "Ralat tidak diketahui", - "errorConnection": "Ralat penyambungan", - "userEmail": "Emel", - "userPassword": "Katalaluan", - "userAdmin": "Admin", - "userRemember": "Remember", - "loginTitle": "Log masuk", - "loginLanguage": "Bahasa", - "loginRegister": "Daftar", - "loginLogin": "Log masuk", - "loginFailed": "Kesalahan emel atau katalaluan", - "loginCreated": "Pengguna baru telah didaftarkan", - "loginLogout": "Keluar", - "devicesAndState": "Peranti dan State", - "deviceDialog": "Peranti", - "deviceTitle": "Peranti", - "deviceIdentifier": "IMEI/ID", - "deviceLastUpdate": "Kemaskini Terakhir", - "deviceCommand": "Arahan", - "deviceFollow": "Ikut", - "groupDialog": "Group", - "groupParent": "Group", - "groupNoGroup": "No Group", - "settingsTitle": "Tetapan", - "settingsUser": "Akaun", - "settingsGroups": "Groups", - "settingsServer": "Server", - "settingsUsers": "Pengguna", - "settingsSpeedUnit": "Kelajuan", - "settingsTwelveHourFormat": "12-hour Format", - "reportTitle": "Laporan", - "reportDevice": "Peranti", - "reportGroup": "Group", - "reportFrom": "Daripada", - "reportTo": "Ke", - "reportShow": "Papar", - "reportClear": "Kosongkan", - "positionFixTime": "Masa", - "positionValid": "Sah", - "positionLatitude": "Latitud", - "positionLongitude": "Longitud", - "positionAltitude": "Altitud", - "positionSpeed": "Kelajuan", - "positionCourse": "Course", - "positionAddress": "Alamat", - "positionProtocol": "Protokol", - "serverTitle": "Tetapan Server", - "serverZoom": "Besarkan", - "serverRegistration": "Pendaftaran", - "serverReadonly": "Baca Sahaja", - "mapTitle": "Peta", - "mapLayer": "Map Layer", - "mapCustom": "Peta Lain", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Circle", - "stateTitle": "Negeri", - "stateName": "Atribut", - "stateValue": "Nilai", - "commandTitle": "Arahan", - "commandSend": "Hantar", - "commandSent": "Arahan telah dihantar", - "commandPositionPeriodic": "Laporan Berkala", - "commandPositionStop": "Hentikan Laporan", - "commandEngineStop": "Matikan Enjin", - "commandEngineResume": "Hidupkan Enjin", - "commandFrequency": "Frekuensi", - "commandUnit": "Unit", - "commandCustom": "Custom command", - "commandPositionSingle": "Single Reporting", - "commandAlarmArm": "Arm Alarm", - "commandAlarmDisarm": "Disarm Alarm", - "commandSetTimezone": "Set Timezone", - "commandRequestPhoto": "Request Photo", - "commandRebootDevice": "Reboot Device", - "commandSendSms": "Send SMS", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Set SOS Number", - "commandSilenceTime": "Set Silence Time", - "commandSetPhonebook": "Set Phonebook", - "commandVoiceMessage": "Voice Message", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "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", - "eventAlarm": "Alarms", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "Type of Notification", - "notificationWeb": "Send via Web", - "notificationMail": "Send via Mail", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/nb.json b/web/l10n/nb.json deleted file mode 100644 index 57b3cf2eb..000000000 --- a/web/l10n/nb.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Laster...", - "sharedSave": "Lagre", - "sharedCancel": "Avbryt", - "sharedAdd": "Legg til", - "sharedEdit": "Endre", - "sharedRemove": "Fjern", - "sharedRemoveConfirm": "Fjern element?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "kn", - "sharedKmh": "km/t", - "sharedMph": "mph", - "sharedHour": "Time", - "sharedMinute": "Minutt", - "sharedSecond": "Sekund", - "sharedName": "Navn", - "sharedDescription": "Beskrivelse", - "sharedSearch": "Søk", - "sharedGeofence": "geo-gjerde", - "sharedGeofences": "Geo-gjerder", - "sharedNotifications": "Varsel", - "sharedAttributes": "Egenskaper", - "sharedAttribute": "Egenskap", - "sharedArea": "Område", - "sharedMute": "Demp", - "sharedType": "Type", - "sharedDistance": "Avstand", - "sharedHourAbbreviation": "t", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Få karttilstand", - "errorTitle": "Feil", - "errorUnknown": "Ukjent feil", - "errorConnection": "Forbindelse feilet", - "userEmail": "E-post", - "userPassword": "Passord", - "userAdmin": "Admin", - "userRemember": "Husk", - "loginTitle": "Logg inn", - "loginLanguage": "Språk", - "loginRegister": "Registrer", - "loginLogin": "Logg inn", - "loginFailed": "Feil e-post eller passord", - "loginCreated": "Ny bruker har blitt registrert", - "loginLogout": "Logg ut", - "devicesAndState": "Enheter og status", - "deviceDialog": "Enhet", - "deviceTitle": "Enheter", - "deviceIdentifier": "Identifikator", - "deviceLastUpdate": "Sist oppdatert", - "deviceCommand": "Kommando", - "deviceFollow": "Følg", - "groupDialog": "Gruppe", - "groupParent": "Gruppe", - "groupNoGroup": "Ingen gruppe", - "settingsTitle": "Innstillinger", - "settingsUser": "Konto", - "settingsGroups": "Grupper", - "settingsServer": "Server", - "settingsUsers": "Brukere", - "settingsSpeedUnit": "Hastighet", - "settingsTwelveHourFormat": "Tolvtimersformat", - "reportTitle": "Rapporter", - "reportDevice": "Enhet", - "reportGroup": "Gruppe", - "reportFrom": "Fra", - "reportTo": "Til", - "reportShow": "Vis", - "reportClear": "Nullstill", - "positionFixTime": "Tid", - "positionValid": "Gyldig", - "positionLatitude": "Breddegrad", - "positionLongitude": "Lengdegrad", - "positionAltitude": "Høyde", - "positionSpeed": "Hastighet", - "positionCourse": "Retning", - "positionAddress": "Adresse", - "positionProtocol": "Protokoll", - "serverTitle": "Serverinnstillinger", - "serverZoom": "Zoom", - "serverRegistration": "Registering", - "serverReadonly": "Skrivebeskyttet", - "mapTitle": "Kart", - "mapLayer": "Kartlag", - "mapCustom": "Egendefinert kart", - "mapOsm": "Open Street-kart", - "mapBingKey": "Bing Maps-nøkkel", - "mapBingRoad": "Bing Maps-veg", - "mapBingAerial": "Bing Maps-flyfoto", - "mapShapePolygon": "Mangekant", - "mapShapeCircle": "Sirkel", - "stateTitle": "Status", - "stateName": "Egenskap", - "stateValue": "Verdi", - "commandTitle": "Kommando", - "commandSend": "Send", - "commandSent": "Kommando har blitt sendt", - "commandPositionPeriodic": "Periodisk rapportering", - "commandPositionStop": "Stopp rapportering", - "commandEngineStop": "Stopp motor", - "commandEngineResume": "Fortsett motor", - "commandFrequency": "Frekvens", - "commandUnit": "Enhet", - "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", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Sett SOS-nummer", - "commandSilenceTime": "Sett stilletid", - "commandSetPhonebook": "Sett telefonbok", - "commandVoiceMessage": "Talemelding", - "commandOutputControl": "Utgangkontroll", - "commandAlarmSpeed": "Fartsgrensealarm", - "commandDeviceIdentification": "Enhetsidentifikasjon", - "commandIndex": "Register", - "commandData": "Data", - "commandPhone": "Telefonnummer", - "commandMessage": "Melding", - "eventAll": "Alle hendelser", - "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": "Alarmer", - "eventIgnitionOn": "Tenning er PÅ", - "eventIgnitionOff": "Tenning er AV", - "alarm": "Alarm", - "alarmSos": "SOS-alarm", - "alarmVibration": "Vibrasjonsalarm", - "alarmMovement": "Bevegelsesalarm", - "alarmOverspeed": "Fartsgrensealarm", - "alarmFallDown": "Fallalarm", - "alarmLowBattery": "Lavt-batteri-alarm", - "alarmFault": "Feilalarm", - "notificationType": "Varseltype", - "notificationWeb": "Send via web", - "notificationMail": "Send via e-post", - "reportRoute": "Rute", - "reportEvents": "Hendelser", - "reportTrips": "Turer", - "reportSummary": "Oppsumering", - "reportConfigure": "Sett opp", - "reportEventTypes": "Hendelsestyper", - "reportCsv": "CSV", - "reportDeviceName": "Enhetsnavn", - "reportAverageSpeed": "Gjennomsnittshastighet ", - "reportMaximumSpeed": "Maksimumshastighet", - "reportEngineHours": "Motortimer", - "reportDuration": "Varighet", - "reportStartTime": "Starttidspunkt", - "reportStartAddress": "Startadresse", - "reportEndTime": "Sluttidspunkt", - "reportEndAddress": "Sluttadresse", - "reportSpentFuel": "Brukt drivstoff" -} \ No newline at end of file diff --git a/web/l10n/ne.json b/web/l10n/ne.json deleted file mode 100644 index 895db575e..000000000 --- a/web/l10n/ne.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "लोड हुँदै ", - "sharedSave": "सुरक्षित गर्ने ", - "sharedCancel": "रद्ध गर्ने ", - "sharedAdd": "थप्ने", - "sharedEdit": "सच्याउने", - "sharedRemove": "हटाउने ", - "sharedRemoveConfirm": "हटाउने हो?", - "sharedKm": "कि मि ", - "sharedMi": "माइल", - "sharedKn": "kn", - "sharedKmh": "कि मि /घण्टा ", - "sharedMph": "माइल /घण्टा ", - "sharedHour": "घण्टा ", - "sharedMinute": "मिनेट ", - "sharedSecond": "सेकेन्ड ", - "sharedName": "Name", - "sharedDescription": "Description", - "sharedSearch": "Search", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "Notifications", - "sharedAttributes": "Attributes", - "sharedAttribute": "Attribute", - "sharedArea": "Area", - "sharedMute": "Mute", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "त्रुटी", - "errorUnknown": "अज्ञात त्रुटी ", - "errorConnection": "जडान मा त्रुटी भयो ", - "userEmail": "इ मेल ", - "userPassword": "गोप्य शब्द ", - "userAdmin": "ब्यबस्थापक", - "userRemember": "Remember", - "loginTitle": "लगिन गर्ने ", - "loginLanguage": "भाषा ", - "loginRegister": "दर्ता गर्ने", - "loginLogin": "भित्रिने ", - "loginFailed": "इ मेल वा गोप्य शब्द गलत भयो ", - "loginCreated": "नया प्रयोगकर्ता दर्ता भयो ", - "loginLogout": "बाहिरिने ", - "devicesAndState": "यन्त्रहरू तथा अवस्था ", - "deviceDialog": "यन्त्र", - "deviceTitle": "यन्त्रहरू ", - "deviceIdentifier": "परिचायक ", - "deviceLastUpdate": "अन्तिम अपडेट ", - "deviceCommand": "आदेश ", - "deviceFollow": "पिछा गर्ने ", - "groupDialog": "Group", - "groupParent": "Group", - "groupNoGroup": "No Group", - "settingsTitle": "सेटिंग ", - "settingsUser": "खाता ", - "settingsGroups": "Groups", - "settingsServer": "सर्भर ", - "settingsUsers": "प्रयोगकर्ताहरु ", - "settingsSpeedUnit": "गति ", - "settingsTwelveHourFormat": "12-hour Format", - "reportTitle": "प्रतिबेदनहरु ", - "reportDevice": "यन्त्र ", - "reportGroup": "Group", - "reportFrom": "बाट ", - "reportTo": "सम्म ", - "reportShow": "देखाउने ", - "reportClear": "सफा गर्ने ", - "positionFixTime": "समय ", - "positionValid": "ठिक", - "positionLatitude": "अक्षांश", - "positionLongitude": "देशान्तर ", - "positionAltitude": "उचाई ", - "positionSpeed": "गति ", - "positionCourse": "दिशा ", - "positionAddress": "ठेगाना ", - "positionProtocol": "प्रोटोकल ", - "serverTitle": "सर्भर सेटिंग", - "serverZoom": "ठुलो बनाउने ", - "serverRegistration": "दर्ता ", - "serverReadonly": "पढ्ने मात्रै ", - "mapTitle": "नक्शा ", - "mapLayer": "नक्शा को तह ", - "mapCustom": "अनुकुल नक्शा ", - "mapOsm": "ओपन स्ट्रिट नक्शा ", - "mapBingKey": "बिंग नक्शाको चाबी (कि) ", - "mapBingRoad": "बिंग नक्शा (सडक)", - "mapBingAerial": "बिंग नक्शा (एरियल)", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Circle", - "stateTitle": "अवस्था ", - "stateName": "गुण ", - "stateValue": "मूल्य ", - "commandTitle": "आदेश ", - "commandSend": "पठाउने ", - "commandSent": "आदेश पठाईएको छ ", - "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", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Set SOS Number", - "commandSilenceTime": "Set Silence Time", - "commandSetPhonebook": "Set Phonebook", - "commandVoiceMessage": "Voice Message", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "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", - "eventAlarm": "Alarms", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "Type of Notification", - "notificationWeb": "Send via Web", - "notificationMail": "Send via Mail", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/nl.json b/web/l10n/nl.json deleted file mode 100644 index 0c1f25f5e..000000000 --- a/web/l10n/nl.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Laden...", - "sharedSave": "Opslaan", - "sharedCancel": "Annuleren", - "sharedAdd": "Toevoegen", - "sharedEdit": "Bewerken", - "sharedRemove": "Verwijderen", - "sharedRemoveConfirm": "Item verwijderen?", - "sharedKm": "km", - "sharedMi": "mijl", - "sharedKn": "knopen", - "sharedKmh": "km/h", - "sharedMph": "mijl per uur", - "sharedHour": "Uur", - "sharedMinute": "Minuut", - "sharedSecond": "Seconde", - "sharedName": "Naam", - "sharedDescription": "Omschrijving", - "sharedSearch": "Zoeken", - "sharedGeofence": "Geografisch gebied", - "sharedGeofences": "Geografische gebieden", - "sharedNotifications": "Melding", - "sharedAttributes": "Attributen", - "sharedAttribute": "Attribuut", - "sharedArea": "Gebied", - "sharedMute": "Stil", - "sharedType": "Type", - "sharedDistance": "Afstand", - "sharedHourAbbreviation": "u", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Haal kaartstatus op", - "errorTitle": "Fout", - "errorUnknown": "Onbekende fout", - "errorConnection": "Verbindingsfout", - "userEmail": "E-mail", - "userPassword": "Wachtwoord", - "userAdmin": "Administrator", - "userRemember": "Onthouden", - "loginTitle": "Inloggen", - "loginLanguage": "Taal", - "loginRegister": "Registreren", - "loginLogin": "Inloggen", - "loginFailed": "Onjuist e-mailadres of wachtwoord", - "loginCreated": "De nieuwe gebruiker is geregistreerd", - "loginLogout": "Afmelden", - "devicesAndState": "Apparaten en status", - "deviceDialog": "Apparaat", - "deviceTitle": "Apparaten", - "deviceIdentifier": "Identifier", - "deviceLastUpdate": "Laatste update", - "deviceCommand": "Commando", - "deviceFollow": "Volgen", - "groupDialog": "Groep", - "groupParent": "Groep", - "groupNoGroup": "Geen groep", - "settingsTitle": "Instellingen", - "settingsUser": "Account", - "settingsGroups": "Groepen", - "settingsServer": "Server", - "settingsUsers": "Gebruikers", - "settingsSpeedUnit": "Snelheid", - "settingsTwelveHourFormat": "12-uurs indeling", - "reportTitle": "Rapportages", - "reportDevice": "Apparaat", - "reportGroup": "Groep", - "reportFrom": "Van", - "reportTo": "Naar", - "reportShow": "Laat zien", - "reportClear": "Leegmaken", - "positionFixTime": "Tijd", - "positionValid": "Geldig", - "positionLatitude": "Breedtegraad", - "positionLongitude": "Lengtegraad", - "positionAltitude": "Hoogte", - "positionSpeed": "Snelheid", - "positionCourse": "Koers", - "positionAddress": "Adres", - "positionProtocol": "Protocol", - "serverTitle": "Serverinstellingen", - "serverZoom": "Zoom", - "serverRegistration": "Registratie", - "serverReadonly": "Alleen lezen", - "mapTitle": "Kaart", - "mapLayer": "Kaart laag", - "mapCustom": "Aangepaste kaart", - "mapOsm": "OpenStreetMap", - "mapBingKey": "Bing Maps sleutel", - "mapBingRoad": "Bing Maps Wegen", - "mapBingAerial": "Bing Maps Luchtfoto", - "mapShapePolygon": "Polygoon", - "mapShapeCircle": "Cirkel", - "stateTitle": "Status", - "stateName": "Parameter", - "stateValue": "Waarde", - "commandTitle": "Commando", - "commandSend": "Verstuur", - "commandSent": "Commando verstuurd", - "commandPositionPeriodic": "Periodiek rapporteren", - "commandPositionStop": "Stop rapporteren", - "commandEngineStop": "Motor stoppen", - "commandEngineResume": "Motor hervatten", - "commandFrequency": "Frequentie", - "commandUnit": "Eenheid", - "commandCustom": "Aangepast commando", - "commandPositionSingle": "Enkel commando", - "commandAlarmArm": "Alarm aan", - "commandAlarmDisarm": "Alarm uit", - "commandSetTimezone": "Tijdzone instellen", - "commandRequestPhoto": "Vraag foto", - "commandRebootDevice": "Herstart apparaat", - "commandSendSms": "Stuur SMS", - "commandSendUssd": "Stuur USDD", - "commandSosNumber": "Stel SOS-nummer in", - "commandSilenceTime": "Stel 'Stille tijd' in", - "commandSetPhonebook": "Bewerk telefoonboek", - "commandVoiceMessage": "Spraakbericht", - "commandOutputControl": "Stel output in", - "commandAlarmSpeed": "Snelheidsalarm", - "commandDeviceIdentification": "Apparaatidentificatie", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Telefoonnummer", - "commandMessage": "Bericht", - "eventAll": "Alle gebeurtenissen", - "eventDeviceOnline": "Apparaat is online", - "eventDeviceOffline": "Apparaat is offline", - "eventDeviceMoving": "Apparaat beweegt", - "eventDeviceStopped": "Apparaat is gestopt", - "eventDeviceOverspeed": "Apparaat overschrijdt snelheid", - "eventCommandResult": "Commando resultaat", - "eventGeofenceEnter": "Appraat is binnen geografisch gebied", - "eventGeofenceExit": "Apparaat verlaat geografisch gebied", - "eventAlarm": "Alarmen", - "eventIgnitionOn": "Contact aan", - "eventIgnitionOff": "Contact uit", - "alarm": "Alarm", - "alarmSos": "SOS alarm", - "alarmVibration": "Vibratiealarm", - "alarmMovement": "Bewegingsalarm", - "alarmOverspeed": "Snelheidsalarm", - "alarmFallDown": "Valalarm", - "alarmLowBattery": "Lege batterij alarm", - "alarmFault": "Foutalarm", - "notificationType": "Notificatietype", - "notificationWeb": "Stuur via web", - "notificationMail": "Stuur via mail", - "reportRoute": "Route", - "reportEvents": "Gebeurtenissen", - "reportTrips": "Ritten", - "reportSummary": "Samenvatting", - "reportConfigure": "Configureer", - "reportEventTypes": "Gebeurtenistypen", - "reportCsv": "CSV", - "reportDeviceName": "Apparaatnaam", - "reportAverageSpeed": "Gemiddelde snelheid", - "reportMaximumSpeed": "Maximale snelheid", - "reportEngineHours": "Draaiuren motor", - "reportDuration": "Duur", - "reportStartTime": "Starttijd", - "reportStartAddress": "Beginadres", - "reportEndTime": "Eindtijd", - "reportEndAddress": "Eindadres", - "reportSpentFuel": "Verbruikte brandstof" -} \ No newline at end of file diff --git a/web/l10n/nn.json b/web/l10n/nn.json deleted file mode 100644 index 6b6d18073..000000000 --- a/web/l10n/nn.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Lastar...", - "sharedSave": "Lagre", - "sharedCancel": "Avbryt", - "sharedAdd": "Legg til", - "sharedEdit": "Endre", - "sharedRemove": "Fjern", - "sharedRemoveConfirm": "Fjern element?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "kn", - "sharedKmh": "km/t", - "sharedMph": "mph", - "sharedHour": "Time", - "sharedMinute": "Minutt", - "sharedSecond": "Sekund", - "sharedName": "Namn", - "sharedDescription": "Beskriving", - "sharedSearch": "Søk", - "sharedGeofence": "Geo-gjerde", - "sharedGeofences": "Geo-gjerde", - "sharedNotifications": "Varsel", - "sharedAttributes": "Eigenskapar", - "sharedAttribute": "Eigenskap", - "sharedArea": "Område", - "sharedMute": "Demp", - "sharedType": "Type", - "sharedDistance": "Avstand", - "sharedHourAbbreviation": "t", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Få karttilstand", - "errorTitle": "Feil", - "errorUnknown": "Ukjent feil", - "errorConnection": "Forbindelse feila", - "userEmail": "E-post", - "userPassword": "Passord", - "userAdmin": "Admin", - "userRemember": "Hugs", - "loginTitle": "Logg inn", - "loginLanguage": "Språk", - "loginRegister": "Registrer", - "loginLogin": "Logg inn", - "loginFailed": "Feil e-post eller passord", - "loginCreated": "Ny brukar har blitt registrert", - "loginLogout": "Logg ut", - "devicesAndState": "Einingar og status", - "deviceDialog": "Eining", - "deviceTitle": "Einingar", - "deviceIdentifier": "Identifikator", - "deviceLastUpdate": "Sist oppdatert", - "deviceCommand": "Kommando", - "deviceFollow": "Følj", - "groupDialog": "Gruppe", - "groupParent": "Gruppe", - "groupNoGroup": "Inga gruppe", - "settingsTitle": "Innstillingar", - "settingsUser": "Konto", - "settingsGroups": "Gruppar", - "settingsServer": "Tenar", - "settingsUsers": "Brukarar", - "settingsSpeedUnit": "Hastigheit", - "settingsTwelveHourFormat": "Tolvtimersformat", - "reportTitle": "Rapportar", - "reportDevice": "Eining", - "reportGroup": "Gruppe", - "reportFrom": "Frå", - "reportTo": "Til", - "reportShow": "Syn", - "reportClear": "Nullstill", - "positionFixTime": "Tid", - "positionValid": "Gyldig", - "positionLatitude": "Breddegrad", - "positionLongitude": "Lengdegrad", - "positionAltitude": "Høgde", - "positionSpeed": "Hastigheit", - "positionCourse": "Retning", - "positionAddress": "Adresse", - "positionProtocol": "Protokoll", - "serverTitle": "Tenarinnstillingar", - "serverZoom": "Zoom", - "serverRegistration": "Registering", - "serverReadonly": "Skrivebeskytta", - "mapTitle": "Kart", - "mapLayer": "Kartlag", - "mapCustom": "Eigedefinert kart", - "mapOsm": "Open Street-kart", - "mapBingKey": "Bing Maps-nøkkel", - "mapBingRoad": "Bing Maps-veg", - "mapBingAerial": "Bing Maps-flyfoto", - "mapShapePolygon": "Mangekant", - "mapShapeCircle": "Sirkel", - "stateTitle": "Status", - "stateName": "Eigenskap", - "stateValue": "Verdi", - "commandTitle": "Kommando", - "commandSend": "Send", - "commandSent": "Kommando har blitt send", - "commandPositionPeriodic": "Periodisk rapportering", - "commandPositionStop": "Stopp rapportering", - "commandEngineStop": "Stopp motor", - "commandEngineResume": "Fortsett motor", - "commandFrequency": "Frekvens", - "commandUnit": "Eining", - "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", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Set SMS-nummer", - "commandSilenceTime": "Sett stilletid", - "commandSetPhonebook": "Sett telefonkatalog", - "commandVoiceMessage": "Talemelding", - "commandOutputControl": "Utgangkontroll", - "commandAlarmSpeed": "Fartsgrensealarm", - "commandDeviceIdentification": "Einingsidentifikasjon", - "commandIndex": "Register", - "commandData": "Data", - "commandPhone": "Telefonnummer", - "commandMessage": "Melding", - "eventAll": "Alle hendingar", - "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": "Alarmar", - "eventIgnitionOn": "Tenninga er PÅ", - "eventIgnitionOff": "Tenninga er AV", - "alarm": "Alarm", - "alarmSos": "SOS-alarm", - "alarmVibration": "Vibrasjonsalarm", - "alarmMovement": "Rørslealarm", - "alarmOverspeed": "Fartsgrensealarm", - "alarmFallDown": "Fallalarm", - "alarmLowBattery": "Lavt-batteri-alarm", - "alarmFault": "Feilalarm", - "notificationType": "Varseltype", - "notificationWeb": "Send via web", - "notificationMail": "Send via e-post", - "reportRoute": "Rute", - "reportEvents": "Hendingar", - "reportTrips": "Turar", - "reportSummary": "Oppsumering", - "reportConfigure": "Set opp", - "reportEventTypes": "Hendingstypar", - "reportCsv": "CSV", - "reportDeviceName": "Einingsnamn", - "reportAverageSpeed": "Gjennomsnittshastighet", - "reportMaximumSpeed": "Maksimumshastighet", - "reportEngineHours": "Motortimar", - "reportDuration": "Varigheit", - "reportStartTime": "Starttidspunkt", - "reportStartAddress": "Startadresse", - "reportEndTime": "Sluttidspunkt", - "reportEndAddress": "Sluttadresse", - "reportSpentFuel": "Brukt drivstoff" -} \ No newline at end of file diff --git a/web/l10n/pl.json b/web/l10n/pl.json deleted file mode 100644 index 1bb48aed0..000000000 --- a/web/l10n/pl.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Wczytywanie...", - "sharedSave": "Zapisz", - "sharedCancel": "Anuluj", - "sharedAdd": "Dodaj", - "sharedEdit": "Edytuj", - "sharedRemove": "Usuń", - "sharedRemoveConfirm": "Usunąć obiekt?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "kn", - "sharedKmh": "km/h", - "sharedMph": "mph", - "sharedHour": "Godzina", - "sharedMinute": "Minuta", - "sharedSecond": "Sekunda", - "sharedName": "Nazwa", - "sharedDescription": "Opis", - "sharedSearch": "Szukaj", - "sharedGeofence": "Nadzór", - "sharedGeofences": "Nadzory", - "sharedNotifications": "Powiadomienia", - "sharedAttributes": "Atrybuty", - "sharedAttribute": "Atrybut", - "sharedArea": "Strefa", - "sharedMute": "Wycisz", - "sharedType": "Typ", - "sharedDistance": "Odległość", - "sharedHourAbbreviation": "g", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Pobierz stan mapy", - "errorTitle": "Bląd", - "errorUnknown": "Nieznany błąd", - "errorConnection": "Błąd przy połączeniu", - "userEmail": "Email", - "userPassword": "Hasło", - "userAdmin": "Administrator", - "userRemember": "Zapamiętaj", - "loginTitle": "Login", - "loginLanguage": "Język", - "loginRegister": "Rejestracja", - "loginLogin": "Zaloguj", - "loginFailed": "Nieprawidłowy adres e-mail lub hasło", - "loginCreated": "Nowy użytkownik został zarejestrowany", - "loginLogout": "Wyloguj", - "devicesAndState": "Urządzenia i stan", - "deviceDialog": "Urządzenie", - "deviceTitle": "Urządzenia", - "deviceIdentifier": "Identyfikator", - "deviceLastUpdate": "Ostatnia aktualizacja", - "deviceCommand": "Polecenie", - "deviceFollow": "Podążaj", - "groupDialog": "Grupa", - "groupParent": "Grupa", - "groupNoGroup": "Brak grupy", - "settingsTitle": "Ustawienia", - "settingsUser": "Konto", - "settingsGroups": "Grupy", - "settingsServer": "Serwer", - "settingsUsers": "Użytkownicy", - "settingsSpeedUnit": "Prędkość", - "settingsTwelveHourFormat": "Format 12-godz.", - "reportTitle": "Raporty", - "reportDevice": "Urządzenie", - "reportGroup": "Grupa", - "reportFrom": "Z", - "reportTo": "Do", - "reportShow": "Pokaż", - "reportClear": "Wyczyść", - "positionFixTime": "Czas", - "positionValid": "Aktywny", - "positionLatitude": "Szerokość", - "positionLongitude": "Długość", - "positionAltitude": "Wysokość", - "positionSpeed": "Prędkość", - "positionCourse": "Kurs", - "positionAddress": "Adres", - "positionProtocol": "Protokół", - "serverTitle": "Ustawienia serwera", - "serverZoom": "Powiększenie", - "serverRegistration": "Rejestracja", - "serverReadonly": "Tylko do odczytu", - "mapTitle": "Mapa", - "mapLayer": "Warstwa mapy", - "mapCustom": "Własna mapa", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Wielokąt", - "mapShapeCircle": "Okrąg", - "stateTitle": "Stan i lokalizacja", - "stateName": "Właściwość", - "stateValue": "Wartość", - "commandTitle": "Komenda", - "commandSend": "Wyślij", - "commandSent": "Komenda została wysłana", - "commandPositionPeriodic": "Okresowy raport", - "commandPositionStop": "Zatrzymaj raportowanie", - "commandEngineStop": "Silnik - Stop", - "commandEngineResume": "Silnik - Wznów", - "commandFrequency": "Częstotliwość", - "commandUnit": "Jednostka", - "commandCustom": "Własna komenda", - "commandPositionSingle": "Pojedyncze raportowanie", - "commandAlarmArm": "Włączanie alarmu", - "commandAlarmDisarm": "Wyłączanie alarmu", - "commandSetTimezone": "Ustaw strefę czasową", - "commandRequestPhoto": "Żądanie zdjęcia\n", - "commandRebootDevice": "Zresetuj urządzenie", - "commandSendSms": "Wyślij SMS", - "commandSendUssd": "Wyślij USSD", - "commandSosNumber": "Ustaw numer SOS", - "commandSilenceTime": "Ustaw czas milczenia", - "commandSetPhonebook": "Ustaw książkę adresową", - "commandVoiceMessage": "Wiadomość głosowa", - "commandOutputControl": "Kontrola wyjścia", - "commandAlarmSpeed": "Alarm przekrocznie prędkości", - "commandDeviceIdentification": "Identyfikacja urządzenia", - "commandIndex": "Index", - "commandData": "Dane", - "commandPhone": "Numer telefonu", - "commandMessage": "Wiadomość", - "eventAll": "Wszystkie zdarzenia", - "eventDeviceOnline": "Urządzenie jest online", - "eventDeviceOffline": "Urządzenie jest offline", - "eventDeviceMoving": "Urządzenie przemieszcza się", - "eventDeviceStopped": "Urządzenia zatrzymane", - "eventDeviceOverspeed": "Urządzenie przekroczyło prędkość", - "eventCommandResult": "Rezultat polecenia", - "eventGeofenceEnter": "Urządzenie wkroczyło w strefę nadzoru", - "eventGeofenceExit": "Urządzenie wykroczyło po za strefę nadzoru", - "eventAlarm": "Alarmy", - "eventIgnitionOn": "Zapłon włączony", - "eventIgnitionOff": "Zapłon wyłączony", - "alarm": "Alarm", - "alarmSos": "Alarm SOS", - "alarmVibration": "Alarm wibracyjny", - "alarmMovement": "Alarm ruchu", - "alarmOverspeed": "Alarm przekroczenia prędkości", - "alarmFallDown": "Alarm upadku", - "alarmLowBattery": "Alarm niskiego stanu baterii", - "alarmFault": "Alarm usterki", - "notificationType": "Rodzaj powiadomienia", - "notificationWeb": "Wyślij przez sieć", - "notificationMail": "Wyślij przez Email", - "reportRoute": "Trasa", - "reportEvents": "Zdarzenia", - "reportTrips": "Trips", - "reportSummary": "Podsumowanie", - "reportConfigure": "Konfiguracja", - "reportEventTypes": "Rodzaje zdarzeń", - "reportCsv": "CSV", - "reportDeviceName": "Nazwa urządzenia", - "reportAverageSpeed": "Średnia prędkość", - "reportMaximumSpeed": "Maksymalna prędkość", - "reportEngineHours": "Czas pracy silnika", - "reportDuration": "Czas trwania", - "reportStartTime": "Czas uruchomienia", - "reportStartAddress": "Adres początkowy", - "reportEndTime": "Czas końowy", - "reportEndAddress": "Adres końcowy", - "reportSpentFuel": "Zużyte paliwo" -} \ No newline at end of file diff --git a/web/l10n/pt.json b/web/l10n/pt.json deleted file mode 100644 index fe7c6aca1..000000000 --- a/web/l10n/pt.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Carregando...", - "sharedSave": "Salvar", - "sharedCancel": "Cancelar", - "sharedAdd": "Adicionar", - "sharedEdit": "Editar", - "sharedRemove": "Remover", - "sharedRemoveConfirm": "Remover item?", - "sharedKm": "Km", - "sharedMi": "mi", - "sharedKn": "kn", - "sharedKmh": "Km/h", - "sharedMph": "Mph", - "sharedHour": "Hora", - "sharedMinute": "Minuto", - "sharedSecond": "Segundo", - "sharedName": "Name", - "sharedDescription": "Description", - "sharedSearch": "Search", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "Notifications", - "sharedAttributes": "Attributes", - "sharedAttribute": "Attribute", - "sharedArea": "Area", - "sharedMute": "Mute", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "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", - "loginLogin": "Entrar", - "loginFailed": "Endereço de e-mail ou senha incorreta", - "loginCreated": "Novo usuário foi registrado", - "loginLogout": "Sair", - "devicesAndState": "Devices and State", - "deviceDialog": "Dispositivo", - "deviceTitle": "Devices", - "deviceIdentifier": "Identificador", - "deviceLastUpdate": "Last Update", - "deviceCommand": "Comando", - "deviceFollow": "Follow", - "groupDialog": "Group", - "groupParent": "Group", - "groupNoGroup": "No Group", - "settingsTitle": "Configurações", - "settingsUser": "Conta", - "settingsGroups": "Groups", - "settingsServer": "Servidor", - "settingsUsers": "Usuário", - "settingsSpeedUnit": "Velocidade", - "settingsTwelveHourFormat": "12-hour Format", - "reportTitle": "Relatórios", - "reportDevice": "Dispositivo", - "reportGroup": "Group", - "reportFrom": "De", - "reportTo": "Para", - "reportShow": "Mostrar", - "reportClear": "Limpar", - "positionFixTime": "Tempo", - "positionValid": "Válido", - "positionLatitude": "Latitude", - "positionLongitude": "Longitude", - "positionAltitude": "Altitude", - "positionSpeed": "Velocidade", - "positionCourse": "Curso", - "positionAddress": "Endereço", - "positionProtocol": "protocolo", - "serverTitle": "Configurações do Servidor", - "serverZoom": "Zoom", - "serverRegistration": "Registro", - "serverReadonly": "Readonly", - "mapTitle": "Mapa", - "mapLayer": "Camada Mapa", - "mapCustom": "Mapa personalizado", - "mapOsm": "Open Street Mapa", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Mapas Estrada", - "mapBingAerial": "Bing Mapas Aérea", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Circle", - "stateTitle": "Estado", - "stateName": "Parâmetro", - "stateValue": "Valor", - "commandTitle": "Comando", - "commandSend": "Enviar", - "commandSent": "Comando foi enviado", - "commandPositionPeriodic": "Posição Tempo", - "commandPositionStop": "Parar Posição", - "commandEngineStop": "Bloqueio Veículo", - "commandEngineResume": "Desbloqueio Veículo", - "commandFrequency": "Frequência", - "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", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Set SOS Number", - "commandSilenceTime": "Set Silence Time", - "commandSetPhonebook": "Set Phonebook", - "commandVoiceMessage": "Voice Message", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "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", - "eventAlarm": "Alarms", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "Type of Notification", - "notificationWeb": "Send via Web", - "notificationMail": "Send via Mail", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/pt_BR.json b/web/l10n/pt_BR.json deleted file mode 100644 index 0731fddbb..000000000 --- a/web/l10n/pt_BR.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Carregando...", - "sharedSave": "Gravar", - "sharedCancel": "Cancelar", - "sharedAdd": "Adicionar", - "sharedEdit": "Editar", - "sharedRemove": "Remover", - "sharedRemoveConfirm": "Remover item?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "kn", - "sharedKmh": "km/h", - "sharedMph": "mph", - "sharedHour": "Hora", - "sharedMinute": "Minuto", - "sharedSecond": "Segundo", - "sharedName": "Nome", - "sharedDescription": "Descrição", - "sharedSearch": "Busca", - "sharedGeofence": "Geocerca", - "sharedGeofences": "Geocercas", - "sharedNotifications": "Notificações", - "sharedAttributes": "Atributos", - "sharedAttribute": "Atributo", - "sharedArea": "Área", - "sharedMute": "Mudo", - "sharedType": "Tipo", - "sharedDistance": "Distância", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "Erro", - "errorUnknown": "Erro desconhecido", - "errorConnection": "Erro de conexão", - "userEmail": "Email", - "userPassword": "Senha", - "userAdmin": "Admin", - "userRemember": "Lembrar", - "loginTitle": "Entrar", - "loginLanguage": "Idioma", - "loginRegister": "Registrar", - "loginLogin": "Entrar", - "loginFailed": "Endereço de email ou senha incorretos", - "loginCreated": "O novo usuário foi registrado", - "loginLogout": "Sair", - "devicesAndState": "Dispositivo e Estado", - "deviceDialog": "Dispositivo", - "deviceTitle": "Dispositivos", - "deviceIdentifier": "Identificador", - "deviceLastUpdate": "Última Atualização", - "deviceCommand": "Comando", - "deviceFollow": "Seguir", - "groupDialog": "Grupo", - "groupParent": "Grupo", - "groupNoGroup": "Sem Grupo", - "settingsTitle": "Configurações", - "settingsUser": "Conta", - "settingsGroups": "Grupos", - "settingsServer": "Servidor", - "settingsUsers": "Usuários", - "settingsSpeedUnit": "Velocidade", - "settingsTwelveHourFormat": "Formato de 12 Horas", - "reportTitle": "Relatórios", - "reportDevice": "Dispositivo", - "reportGroup": "Group", - "reportFrom": "De", - "reportTo": "Para", - "reportShow": "Mostrar", - "reportClear": "Limpar", - "positionFixTime": "Tempo", - "positionValid": "Válido", - "positionLatitude": "Latitude", - "positionLongitude": "Longitude", - "positionAltitude": "Altitude", - "positionSpeed": "Velocidade", - "positionCourse": "Curso", - "positionAddress": "Endereço", - "positionProtocol": "Protocolo", - "serverTitle": "Configurações do Servidor", - "serverZoom": "Zoom", - "serverRegistration": "Registro", - "serverReadonly": "Somente leitura", - "mapTitle": "Mapa", - "mapLayer": "Camada de Mapa", - "mapCustom": "Mapa Personalizado", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Maps Estradas", - "mapBingAerial": "Bing Maps Aéreo", - "mapShapePolygon": "Polígono", - "mapShapeCircle": "Círculo", - "stateTitle": "Estado", - "stateName": "Atributo", - "stateValue": "Valor", - "commandTitle": "Comando", - "commandSend": "Enviar", - "commandSent": "Comando foi enviado", - "commandPositionPeriodic": "Atualização Periódica", - "commandPositionStop": "Parar Atualizaçao", - "commandEngineStop": "Desligar Motor", - "commandEngineResume": "Religar Motor", - "commandFrequency": "Frequencia", - "commandUnit": "Unidade", - "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", - "commandSendUssd": "Enviar USSD", - "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", - "commandIndex": "Indice", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Mensagem", - "eventAll": "All Events", - "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", - "eventIgnitionOn": "Ignição está ON", - "eventIgnitionOff": "Ignição está OFF", - "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", - "alarmFault": "Alarme de Problema", - "notificationType": "Tipo de Notificação", - "notificationWeb": "Enviar via Web", - "notificationMail": "Enviar via Email", - "reportRoute": "Rota", - "reportEvents": "Eventos", - "reportTrips": "Viagens", - "reportSummary": "Resumo", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Nome do Dispositivo ", - "reportAverageSpeed": "Velocidade Média", - "reportMaximumSpeed": "Velocidade Máxima", - "reportEngineHours": "Horas ligado", - "reportDuration": "Duração", - "reportStartTime": "Hora inicial", - "reportStartAddress": "Endereço inicial", - "reportEndTime": "Hora final", - "reportEndAddress": "Endereço final", - "reportSpentFuel": "Gasto de Combustível" -} \ No newline at end of file diff --git a/web/l10n/ro.json b/web/l10n/ro.json deleted file mode 100644 index 79f3c6a5d..000000000 --- a/web/l10n/ro.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Se încarcă", - "sharedSave": "Salvează", - "sharedCancel": "Anulează", - "sharedAdd": "Adaugă", - "sharedEdit": "Modifică", - "sharedRemove": "Elimină", - "sharedRemoveConfirm": "Ștergeți obiectul?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "kn", - "sharedKmh": "km/h", - "sharedMph": "mph", - "sharedHour": "Oră", - "sharedMinute": "Minut", - "sharedSecond": "Secundă", - "sharedName": "Nume", - "sharedDescription": "Descriere", - "sharedSearch": "Căutare", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "Notificările", - "sharedAttributes": "Atribute", - "sharedAttribute": "Atribute", - "sharedArea": "Area", - "sharedMute": "Mut", - "sharedType": "Tip", - "sharedDistance": "Distanţă", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "Eroare", - "errorUnknown": "Eroare necunoscută", - "errorConnection": "Eroare de conexiune", - "userEmail": "Email", - "userPassword": "Parolă", - "userAdmin": "Admin", - "userRemember": "Ţine minte", - "loginTitle": "Autentificare", - "loginLanguage": "Limbă", - "loginRegister": "Înregistrare", - "loginLogin": "Intră în cont", - "loginFailed": "E-mail sau parolă incorectă", - "loginCreated": "Un utilizator nou a fost înregistrat", - "loginLogout": "Deconectare", - "devicesAndState": "Stare dispozitive", - "deviceDialog": "Dispozitiv", - "deviceTitle": "Dispozitive", - "deviceIdentifier": "Identificator", - "deviceLastUpdate": "Ultima actualizare", - "deviceCommand": "Comandă", - "deviceFollow": "Urmareste", - "groupDialog": "Grup", - "groupParent": "Grup", - "groupNoGroup": "Nici-un grup", - "settingsTitle": "Setări", - "settingsUser": "Cont", - "settingsGroups": "Grupuri", - "settingsServer": "Server", - "settingsUsers": "Utilizatori", - "settingsSpeedUnit": "Viteză", - "settingsTwelveHourFormat": "12-oră", - "reportTitle": "Rapoarte", - "reportDevice": "Dispozitiv", - "reportGroup": "Group", - "reportFrom": "De la ", - "reportTo": "Până la", - "reportShow": "Arată", - "reportClear": "Sterge", - "positionFixTime": "Timp", - "positionValid": "Valabil", - "positionLatitude": "Latitudine", - "positionLongitude": "Longitudine", - "positionAltitude": "Altitudine", - "positionSpeed": "Viteză", - "positionCourse": "Curs", - "positionAddress": "Adresă", - "positionProtocol": "Protocol", - "serverTitle": "Setări server", - "serverZoom": "Zoom", - "serverRegistration": "Înregistrare", - "serverReadonly": "Doar citire", - "mapTitle": "Hartă", - "mapLayer": "Strat Hartă", - "mapCustom": "Personalizare Hartă", - "mapOsm": "Hartă Open Street", - "mapBingKey": "Cheie Hărți Bing", - "mapBingRoad": "Bing Hartă Drumuri", - "mapBingAerial": "Bing Hartă Aeriană", - "mapShapePolygon": "Poligon", - "mapShapeCircle": "Cerc", - "stateTitle": "Stare", - "stateName": "Atribut", - "stateValue": "Valoare", - "commandTitle": "Comandă", - "commandSend": "Trimite", - "commandSent": "Comandă a fost trimisa", - "commandPositionPeriodic": "Raportarea Periodică", - "commandPositionStop": "Oprire Raportare", - "commandEngineStop": "Blocare Motor", - "commandEngineResume": "Deblocare Motor", - "commandFrequency": "Frecvenţă", - "commandUnit": "Unitate", - "commandCustom": "Comandă personalizată", - "commandPositionSingle": "Raportarea unică", - "commandAlarmArm": "Activare Alarmă", - "commandAlarmDisarm": "Dezactivare alarmă", - "commandSetTimezone": "Setare Fus Orar", - "commandRequestPhoto": "Cere Foto", - "commandRebootDevice": "Repornire Dispozitiv", - "commandSendSms": "Trimite SMS", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Set număr SOS", - "commandSilenceTime": "Set Timp Silențios", - "commandSetPhonebook": "Set Agendă telefonică", - "commandVoiceMessage": "Mesaj Vocal", - "commandOutputControl": "Controlul de ieșire", - "commandAlarmSpeed": "Alarmă depăşire viteză", - "commandDeviceIdentification": "Identificare dispozitiv", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "eventDeviceOnline": "Dispozitivul este pornit", - "eventDeviceOffline": "Dispozitivul este oprit", - "eventDeviceMoving": "Dispozitivul este în mişcare", - "eventDeviceStopped": "Dispozitivul este staţionar", - "eventDeviceOverspeed": "Dispozitivul a depăşit limita de viteză", - "eventCommandResult": "Rezultat comandă", - "eventGeofenceEnter": "Dispozitivul a intrat in zona geofence", - "eventGeofenceExit": "Dispozitivul a ieşit din zona geofence", - "eventAlarm": "Alarme", - "eventIgnitionOn": "Contact pornit", - "eventIgnitionOff": "Contact oprit", - "alarm": "Alarmă", - "alarmSos": "Alarmă SOS", - "alarmVibration": "Alarmă vibraţii", - "alarmMovement": "Alarmă Mişcare", - "alarmOverspeed": "Alarmă depăsire viteză", - "alarmFallDown": "Alarmă cădere", - "alarmLowBattery": "Alarmă nivel baterie scăzută", - "alarmFault": "Alarmă Defect", - "notificationType": "Tip de notificare", - "notificationWeb": "Trimite din Web", - "notificationMail": "Trimite din Mail", - "reportRoute": "Rute", - "reportEvents": "Evenimente", - "reportTrips": "Trips", - "reportSummary": "Sumar", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Nume dispozitiv", - "reportAverageSpeed": "Viteză medie", - "reportMaximumSpeed": "Viteză Maximă", - "reportEngineHours": "Ore motor", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/ru.json b/web/l10n/ru.json deleted file mode 100644 index 9438ea8fc..000000000 --- a/web/l10n/ru.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Загрузка...", - "sharedSave": "Сохранить", - "sharedCancel": "Отмена", - "sharedAdd": "Добавить", - "sharedEdit": "Редактировать", - "sharedRemove": "Удалить", - "sharedRemoveConfirm": "Удалить элемент?", - "sharedKm": "км", - "sharedMi": "мили", - "sharedKn": "уз", - "sharedKmh": "км/ч", - "sharedMph": "миль/ч", - "sharedHour": "Часы", - "sharedMinute": "Минуты", - "sharedSecond": "Секунды", - "sharedName": "Имя", - "sharedDescription": "Описание", - "sharedSearch": "Поиск", - "sharedGeofence": "Геозона", - "sharedGeofences": "Геозоны", - "sharedNotifications": "Уведомления", - "sharedAttributes": "Атрибуты", - "sharedAttribute": "Атрибут", - "sharedArea": "Область", - "sharedMute": "Выкл. звук", - "sharedType": "Тип", - "sharedDistance": "Расстояние", - "sharedHourAbbreviation": "ч", - "sharedMinuteAbbreviation": "м", - "sharedGetMapState": "Получить состояние карты", - "errorTitle": "Ошибка", - "errorUnknown": "Неизвестная ошибка", - "errorConnection": "Ошибка соединения", - "userEmail": "Email", - "userPassword": "Пароль", - "userAdmin": "Администратор", - "userRemember": "Запомнить", - "loginTitle": "Вход", - "loginLanguage": "Язык", - "loginRegister": "Регистрация", - "loginLogin": "Вход", - "loginFailed": "Неправильный email адрес или пароль", - "loginCreated": "Новый пользователь зарегистрирован", - "loginLogout": "Выход", - "devicesAndState": "Устройства и Состояния", - "deviceDialog": "Устройство", - "deviceTitle": "Устройства", - "deviceIdentifier": "Идентификатор", - "deviceLastUpdate": "Последнее Обновление", - "deviceCommand": "Команда", - "deviceFollow": "Следовать", - "groupDialog": "Группа", - "groupParent": "Группа", - "groupNoGroup": "Без Группы", - "settingsTitle": "Настройки", - "settingsUser": "Аккаунт", - "settingsGroups": "Группы", - "settingsServer": "Сервер", - "settingsUsers": "Пользователи", - "settingsSpeedUnit": "Скорость", - "settingsTwelveHourFormat": "12-часовой формат", - "reportTitle": "Отчеты", - "reportDevice": "Устройство", - "reportGroup": "Группа", - "reportFrom": "С", - "reportTo": "По", - "reportShow": "Показать", - "reportClear": "Очистить", - "positionFixTime": "Время", - "positionValid": "Корректность", - "positionLatitude": "Широта", - "positionLongitude": "Долгота", - "positionAltitude": "Высота", - "positionSpeed": "Скорость", - "positionCourse": "Направление", - "positionAddress": "Адрес", - "positionProtocol": "Протокол", - "serverTitle": "Настройки Сервера", - "serverZoom": "Приближение", - "serverRegistration": "Регистрация", - "serverReadonly": "Только Просмотр", - "mapTitle": "Карта", - "mapLayer": "Слой Карты", - "mapCustom": "Пользовательская карта", - "mapOsm": "Open Street Map", - "mapBingKey": "Ключ Bing Maps", - "mapBingRoad": "Bing Maps Дороги", - "mapBingAerial": "Bing Maps Спутник", - "mapShapePolygon": "Многоугольник", - "mapShapeCircle": "Круг", - "stateTitle": "Состояние", - "stateName": "Параметр", - "stateValue": "Значение", - "commandTitle": "Команда", - "commandSend": "Отправить", - "commandSent": "Команда отправлена", - "commandPositionPeriodic": "Начать Отслеживание", - "commandPositionStop": "Отменить Отслеживание", - "commandEngineStop": "Заблокировать Двигатель", - "commandEngineResume": "Разблокировать Двигатель", - "commandFrequency": "Частота", - "commandUnit": "Единицы", - "commandCustom": "Пользовательская команда", - "commandPositionSingle": "Разовое Отслеживание", - "commandAlarmArm": "Активировать Сигнализацию", - "commandAlarmDisarm": "Деактивировать Сигнализацию", - "commandSetTimezone": "Настроить Часовой пояс", - "commandRequestPhoto": "Запросить Фото", - "commandRebootDevice": "Перезагрузить Устройство", - "commandSendSms": "Отправить СМС", - "commandSendUssd": "Отправить USSD", - "commandSosNumber": "Настроить Экстренный Номер", - "commandSilenceTime": "Настроить Время Тишины", - "commandSetPhonebook": "Настроить Телефонную книгу", - "commandVoiceMessage": "Голосовое Сообщение", - "commandOutputControl": "Контроль Выхода", - "commandAlarmSpeed": "Превышение Скорости", - "commandDeviceIdentification": "Идентификация Устройства", - "commandIndex": "Индекс", - "commandData": "Данные", - "commandPhone": "Номер Телефона", - "commandMessage": "Сообщение", - "eventAll": "Все События", - "eventDeviceOnline": "Устройство в сети", - "eventDeviceOffline": "Устройство не в сети", - "eventDeviceMoving": "Устройство движется", - "eventDeviceStopped": "Устройство остановилось", - "eventDeviceOverspeed": "Устройство превышает скорость", - "eventCommandResult": "Результат команды", - "eventGeofenceEnter": "Устройство вошло в геозону", - "eventGeofenceExit": "Устройство покинуло геозону", - "eventAlarm": "Тревоги", - "eventIgnitionOn": "Зажигание ВКЛ", - "eventIgnitionOff": "Зажигание ВЫКЛ", - "alarm": "Тревога", - "alarmSos": "Тревога SOS", - "alarmVibration": "Тревога Вибрации", - "alarmMovement": "Тревога Сигнализации", - "alarmOverspeed": "Тревога Превышения скорости", - "alarmFallDown": "Тревога Падения", - "alarmLowBattery": "Тревога Батарея разряжена", - "alarmFault": "Тревога Неисправность", - "notificationType": "Тип уведомления", - "notificationWeb": "Отправлять через Веб", - "notificationMail": "Отправлять через Почту", - "reportRoute": "Маршрут", - "reportEvents": "События", - "reportTrips": "Поездки", - "reportSummary": "Сводка", - "reportConfigure": "Конфигурировать", - "reportEventTypes": "Тип События", - "reportCsv": "CSV", - "reportDeviceName": "Имя Устройства", - "reportAverageSpeed": "Средняя Скорость", - "reportMaximumSpeed": "Максимальная Скорость", - "reportEngineHours": "Моточасы", - "reportDuration": "Длительность", - "reportStartTime": "Начальное Время", - "reportStartAddress": "Начальный Адрес", - "reportEndTime": "Конечное Время", - "reportEndAddress": "Конечный Адрес", - "reportSpentFuel": "Использовано Топлива" -} \ No newline at end of file diff --git a/web/l10n/si.json b/web/l10n/si.json deleted file mode 100644 index 461948687..000000000 --- a/web/l10n/si.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "පූරණය කරමින් ...", - "sharedSave": "සුරකින්න", - "sharedCancel": "අවලංගු කරන්න", - "sharedAdd": "එක් කරන්න", - "sharedEdit": "සංස්කරණය කරන්න", - "sharedRemove": "ඉවත් කරන්න", - "sharedRemoveConfirm": "අයිතමය ඉවත් කරන්න ද?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "kn", - "sharedKmh": "km/h", - "sharedMph": "mph", - "sharedHour": "පැය", - "sharedMinute": "මිනිත්තු", - "sharedSecond": "තත්පර", - "sharedName": "නම", - "sharedDescription": "විස්තරය", - "sharedSearch": "සොයන්න", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "නිවේදන", - "sharedAttributes": "Attributes", - "sharedAttribute": "Attribute", - "sharedArea": "ප්‍රදේශය", - "sharedMute": "Mute", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "දෝෂයක් ", - "errorUnknown": "නොදන්නා දෝෂයක් !", - "errorConnection": "සම්බන්ධතා දෝෂයක් !", - "userEmail": "විද්යුත් තැපෑල", - "userPassword": "මුරපදය", - "userAdmin": "පරිපාලක", - "userRemember": "Remember", - "loginTitle": "පිවිසුම් ගිණුම", - "loginLanguage": "භාෂාව", - "loginRegister": "ලියාපදිංචි කරන්න", - "loginLogin": "පිවිසුම", - "loginFailed": "ඊ-මේල් ලිපිනය හෝ මුරපදය වැරදිය !", - "loginCreated": "නව පරිශීලක ලියාපදිංචි කරන ලදි !", - "loginLogout": "ඉවත්වන්න", - "devicesAndState": "උපාංග සහ ස්වභාවය", - "deviceDialog": "උපාංගය", - "deviceTitle": "උපාංග", - "deviceIdentifier": "හඳුනාගැනීමේ කේතය", - "deviceLastUpdate": "අවසන් යාවත්කාලීනය", - "deviceCommand": "විධානය", - "deviceFollow": "Follow", - "groupDialog": "සමූහය", - "groupParent": "සමූහය", - "groupNoGroup": "සමූහ එපා", - "settingsTitle": "සැකසුම්", - "settingsUser": "ගිණුම", - "settingsGroups": "සමූහ", - "settingsServer": "සේවාදායකය", - "settingsUsers": "පරිශීලකයන්", - "settingsSpeedUnit": "වේගය", - "settingsTwelveHourFormat": "12-hour Format", - "reportTitle": "වාර්තා", - "reportDevice": "උපාංගය", - "reportGroup": "Group", - "reportFrom": "සිට", - "reportTo": "දක්වා", - "reportShow": "පෙන්වන්න", - "reportClear": "ඉවත් කරන්න", - "positionFixTime": "කාලය", - "positionValid": "වලංගු", - "positionLatitude": "අක්ෂාංශ", - "positionLongitude": "දේශාංශ", - "positionAltitude": "උන්නතාංශය", - "positionSpeed": "වේගය", - "positionCourse": "දිගංශය", - "positionAddress": "ලිපිනය", - "positionProtocol": "ප්රොටොකෝලය", - "serverTitle": "සේවාදායකයේ සැකසුම්", - "serverZoom": "විශාලනය", - "serverRegistration": "ලියාපදිංචි කිරීම", - "serverReadonly": "Readonly", - "mapTitle": "සිතියම", - "mapLayer": "සිතියම් ස්තරය", - "mapCustom": "අභිරුචි සිතියම", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "බහුඅශ්‍රය", - "mapShapeCircle": "වෘත්තය", - "stateTitle": "තත්වය", - "stateName": "පරාමිතිය", - "stateValue": "අගය", - "commandTitle": "විධානය", - "commandSend": "යවන්න", - "commandSent": "විධානය යවා ඇත", - "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", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Set SOS Number", - "commandSilenceTime": "Set Silence Time", - "commandSetPhonebook": "Set Phonebook", - "commandVoiceMessage": "Voice Message", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "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", - "eventAlarm": "Alarms", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "Type of Notification", - "notificationWeb": "Send via Web", - "notificationMail": "Send via Mail", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/sk.json b/web/l10n/sk.json deleted file mode 100644 index 9e807c6f2..000000000 --- a/web/l10n/sk.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Načítava...", - "sharedSave": "Uložiť", - "sharedCancel": "Zrušiť", - "sharedAdd": "Pridať", - "sharedEdit": "Upraviť", - "sharedRemove": "Odstrániť", - "sharedRemoveConfirm": "Odstrániť položku?", - "sharedKm": "Km", - "sharedMi": "mi", - "sharedKn": "kn", - "sharedKmh": "Km/h", - "sharedMph": "mph", - "sharedHour": "Hodina", - "sharedMinute": "Minúta", - "sharedSecond": "Sekunda", - "sharedName": "Meno", - "sharedDescription": "Popis", - "sharedSearch": "Hľadať", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "Notifikácie", - "sharedAttributes": "Atribúty", - "sharedAttribute": "Atribút", - "sharedArea": "Oblasť", - "sharedMute": "Stlmiť zvuk", - "sharedType": "Typ", - "sharedDistance": "Vzdialenosť", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Získať mapu štát", - "errorTitle": "Chyba", - "errorUnknown": "Neznáma chyba", - "errorConnection": "Chyba pripojenia", - "userEmail": "E-mail", - "userPassword": "Heslo", - "userAdmin": "Admin", - "userRemember": "Zapamätať", - "loginTitle": "Prihlásenie", - "loginLanguage": "Jazyk", - "loginRegister": "Registrovať", - "loginLogin": "Prihlásenie", - "loginFailed": "Nesprávna e-mailová adresa alebo heslo", - "loginCreated": "Nový užívateľ sa zaregistroval", - "loginLogout": "Odhlásiť", - "devicesAndState": "Zariadenia a Status", - "deviceDialog": "Zariadenie", - "deviceTitle": "Zariadena", - "deviceIdentifier": "Identifikátor", - "deviceLastUpdate": "Posledný update", - "deviceCommand": "Príkaz", - "deviceFollow": "Nasleduj", - "groupDialog": "Skupina", - "groupParent": "Skupina", - "groupNoGroup": "Žiadna skupina", - "settingsTitle": "Nastavenia", - "settingsUser": "Účet", - "settingsGroups": "Skupiny", - "settingsServer": "Server", - "settingsUsers": "Užívatelia", - "settingsSpeedUnit": "Rýchlosť jazdy", - "settingsTwelveHourFormat": "12-hodinový formát", - "reportTitle": "Správy", - "reportDevice": "Zariadenie", - "reportGroup": "Skupina", - "reportFrom": "Od", - "reportTo": "Do", - "reportShow": "Zobraziť", - "reportClear": "Vyčistiť", - "positionFixTime": "Čas", - "positionValid": "Platný", - "positionLatitude": "Šírka", - "positionLongitude": "Dĺžka", - "positionAltitude": "Výška", - "positionSpeed": "Rýchlosť jazdy", - "positionCourse": "Kurz", - "positionAddress": "Adresa", - "positionProtocol": "Protokol", - "serverTitle": "Nastavenie servera", - "serverZoom": "Zoom", - "serverRegistration": "Registrácia", - "serverReadonly": "Iba na čítanie", - "mapTitle": "Mapa", - "mapLayer": "Mapové vrstvy", - "mapCustom": "Vlastná mapa", - "mapOsm": "Open Street Map", - "mapBingKey": "Klúč Bing Maps", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Arial", - "mapShapePolygon": "Polygón", - "mapShapeCircle": "Kruh", - "stateTitle": "Štát", - "stateName": "Parameter", - "stateValue": "Hodnota", - "commandTitle": "Príkaz", - "commandSend": "Odoslať", - "commandSent": "Príkaz bol odoslaný", - "commandPositionPeriodic": "Pravidelné podávanie správ", - "commandPositionStop": "Zastavte podávanie správ", - "commandEngineStop": "Zastavenie motora", - "commandEngineResume": "Spustenie motora", - "commandFrequency": "Frekvencia", - "commandUnit": "Jednotka", - "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", - "commandSendUssd": "Postať USSD", - "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", - "commandIndex": "Index", - "commandData": "Dáta", - "commandPhone": "Telefónne číslo", - "commandMessage": "Správa", - "eventAll": "Všetky akcie", - "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", - "eventIgnitionOn": "Zapaľovanie je ZAPNUTÉ", - "eventIgnitionOff": "Zapaľovanie je VYPNUTÉ", - "alarm": "Upozornenie", - "alarmSos": "SOS upozornenie", - "alarmVibration": "Vibračné upozornenie", - "alarmMovement": "Upozornenie pohnutia", - "alarmOverspeed": "Upozornenie prekročenia rýchlosti ", - "alarmFallDown": "Upozornenie FallDown ", - "alarmLowBattery": "Upozornenie LowBattery", - "alarmFault": "Upozorneie poruchy", - "notificationType": "Typ notifikácie", - "notificationWeb": "Poslať cez Web", - "notificationMail": "Poslať e-mailom", - "reportRoute": "Cesta", - "reportEvents": "Udalosti", - "reportTrips": "Cesty", - "reportSummary": "Zhrnutie", - "reportConfigure": "Konfigurácia", - "reportEventTypes": "Typy udalstí", - "reportCsv": "CSV", - "reportDeviceName": "Meno zariadenia", - "reportAverageSpeed": "Priemerná rýchlosť", - "reportMaximumSpeed": "Maximálna rýchlosť", - "reportEngineHours": "Prevádzkové hodiny motora", - "reportDuration": "Trvanie", - "reportStartTime": "Čas spustenia", - "reportStartAddress": "Počiatočná adresa", - "reportEndTime": "Čas ukončenia", - "reportEndAddress": "Koncová adresa", - "reportSpentFuel": "Spotrebované palivo" -} \ No newline at end of file diff --git a/web/l10n/sl.json b/web/l10n/sl.json deleted file mode 100644 index 2f3eab05b..000000000 --- a/web/l10n/sl.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Nalagam...", - "sharedSave": "Shrani", - "sharedCancel": "Prekini", - "sharedAdd": "Dodaj", - "sharedEdit": "Uredi", - "sharedRemove": "Odstrani", - "sharedRemoveConfirm": "Odstranim zapis?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "kn", - "sharedKmh": "km/h", - "sharedMph": "mph", - "sharedHour": "Ura", - "sharedMinute": "Minuta", - "sharedSecond": "Sekunda", - "sharedName": "Name", - "sharedDescription": "Description", - "sharedSearch": "Search", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "Notifications", - "sharedAttributes": "Attributes", - "sharedAttribute": "Attribute", - "sharedArea": "Area", - "sharedMute": "Mute", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "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", - "loginLogin": "Prijava", - "loginFailed": "Nepravilna e-pošta ali geslo", - "loginCreated": "Nov uporabnik je registriran", - "loginLogout": "Odjava", - "devicesAndState": "Devices and State", - "deviceDialog": "Naprave", - "deviceTitle": "Naprave", - "deviceIdentifier": "Identifikacija", - "deviceLastUpdate": "Last Update", - "deviceCommand": "Ukaz", - "deviceFollow": "Follow", - "groupDialog": "Group", - "groupParent": "Group", - "groupNoGroup": "No Group", - "settingsTitle": "Nastavitve", - "settingsUser": "Račun", - "settingsGroups": "Groups", - "settingsServer": "Strežnik", - "settingsUsers": "Uporabniki", - "settingsSpeedUnit": "Hitrost", - "settingsTwelveHourFormat": "12-hour Format", - "reportTitle": "Poročila", - "reportDevice": "Naprava", - "reportGroup": "Group", - "reportFrom": "Od", - "reportTo": "Do", - "reportShow": "Prikaži", - "reportClear": "Očisti", - "positionFixTime": "Čas", - "positionValid": "Veljavnost", - "positionLatitude": "Širina", - "positionLongitude": "Dolžina", - "positionAltitude": "Višina", - "positionSpeed": "Hitrost", - "positionCourse": "Smer", - "positionAddress": "Naslov", - "positionProtocol": "Protokol", - "serverTitle": "Nastavitve strežnika", - "serverZoom": "Povečava", - "serverRegistration": "Registracija", - "serverReadonly": "Readonly", - "mapTitle": "Karta", - "mapLayer": "Zemljevidi", - "mapCustom": "Poljubna karta", - "mapOsm": "Open Street Karta", - "mapBingKey": "Bing Mapk Ključ", - "mapBingRoad": "Bing Maps Ceste", - "mapBingAerial": "Bing Maps Satelit", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Circle", - "stateTitle": "Stanje", - "stateName": "Parameter", - "stateValue": "Vrednost", - "commandTitle": "Ukaz", - "commandSend": "Pošlji", - "commandSent": "Ukaz poslan", - "commandPositionPeriodic": "Periodično poročanje", - "commandPositionStop": "Ustavi poročanje", - "commandEngineStop": "Ugasni motor", - "commandEngineResume": "Prižgi motor", - "commandFrequency": "Frekvenca", - "commandUnit": "Naprava", - "commandCustom": "Custom command", - "commandPositionSingle": "Single Reporting", - "commandAlarmArm": "Arm Alarm", - "commandAlarmDisarm": "Disarm Alarm", - "commandSetTimezone": "Set Timezone", - "commandRequestPhoto": "Request Photo", - "commandRebootDevice": "Reboot Device", - "commandSendSms": "Send SMS", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Set SOS Number", - "commandSilenceTime": "Set Silence Time", - "commandSetPhonebook": "Set Phonebook", - "commandVoiceMessage": "Voice Message", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "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", - "eventAlarm": "Alarms", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "Type of Notification", - "notificationWeb": "Send via Web", - "notificationMail": "Send via Mail", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/sq.json b/web/l10n/sq.json deleted file mode 100644 index 285752ee8..000000000 --- a/web/l10n/sq.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Ngarkim…", - "sharedSave": "Ruaj", - "sharedCancel": "Anullim", - "sharedAdd": "Shto", - "sharedEdit": "Ndrysho", - "sharedRemove": "Hiq", - "sharedRemoveConfirm": "Hiq skedarin", - "sharedKm": "km", - "sharedMi": "Milje", - "sharedKn": "Nyje", - "sharedKmh": "km/h", - "sharedMph": "mph", - "sharedHour": "Orë", - "sharedMinute": "Minuta", - "sharedSecond": "Sekonda", - "sharedName": "Emri", - "sharedDescription": "Description", - "sharedSearch": "Kërkim", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "Notifications", - "sharedAttributes": "Attributes", - "sharedAttribute": "Attribute", - "sharedArea": "Area", - "sharedMute": "Mute", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "Gabim", - "errorUnknown": "Gabim i panjohur", - "errorConnection": "Gabim lidhjeje", - "userEmail": "Email", - "userPassword": "Fjalëkalimi", - "userAdmin": "Administratori", - "userRemember": "Remember", - "loginTitle": "Hyrje", - "loginLanguage": "Gjuha", - "loginRegister": "Regjistrim", - "loginLogin": "Lidhu", - "loginFailed": "Adresë Email-i ose fjalëkalim i gabuar", - "loginCreated": "Përdoruesi i ri u regjistrua", - "loginLogout": "Shkëputu", - "devicesAndState": "Gjendja e pajisjeve", - "deviceDialog": "Pajisje", - "deviceTitle": "Pajisjet", - "deviceIdentifier": "Identifikues", - "deviceLastUpdate": "Përditësimi i fundit", - "deviceCommand": "Komandë", - "deviceFollow": "Ndjek", - "groupDialog": "Grup", - "groupParent": "Grup", - "groupNoGroup": "Pa Grup", - "settingsTitle": "Parametra", - "settingsUser": "Llogari", - "settingsGroups": "Grupe", - "settingsServer": "Rrjeti", - "settingsUsers": "Përdorues", - "settingsSpeedUnit": "Shpejtësi", - "settingsTwelveHourFormat": "Formë 12-orëshe", - "reportTitle": "Raporte", - "reportDevice": "Pajisje", - "reportGroup": "Group", - "reportFrom": "Nga", - "reportTo": "Tek", - "reportShow": "Shfaqje", - "reportClear": "Pastrim", - "positionFixTime": "Koha", - "positionValid": "I vlefshëm", - "positionLatitude": "Gjerësi Gjeografike", - "positionLongitude": "Gjatësi Gjeografike", - "positionAltitude": "Lartësia", - "positionSpeed": "Shpejtësia", - "positionCourse": "Itinerari (Rruga)", - "positionAddress": "Adresa", - "positionProtocol": "Protokolli", - "serverTitle": "Server-Parametrat", - "serverZoom": "Fokus", - "serverRegistration": "Regjistrim", - "serverReadonly": "Vetëm për lexim", - "mapTitle": "Harta", - "mapLayer": "Zgjedhje harte", - "mapCustom": "Hartë e përshtatur", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Circle", - "stateTitle": "Gjëndja", - "stateName": "Atribut", - "stateValue": "Vlera", - "commandTitle": "Komandë", - "commandSend": "Dërgo", - "commandSent": "Komanda u dërgua", - "commandPositionPeriodic": "Raporte periodike", - "commandPositionStop": "Ndalo raportin", - "commandEngineStop": "Ndalo punën", - "commandEngineResume": "Rinis", - "commandFrequency": "Frekuenca", - "commandUnit": "Njësi", - "commandCustom": "Custom command", - "commandPositionSingle": "Single Reporting", - "commandAlarmArm": "Arm Alarm", - "commandAlarmDisarm": "Disarm Alarm", - "commandSetTimezone": "Set Timezone", - "commandRequestPhoto": "Request Photo", - "commandRebootDevice": "Reboot Device", - "commandSendSms": "Send SMS", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Set SOS Number", - "commandSilenceTime": "Set Silence Time", - "commandSetPhonebook": "Set Phonebook", - "commandVoiceMessage": "Voice Message", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "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", - "eventAlarm": "Alarms", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "Type of Notification", - "notificationWeb": "Send via Web", - "notificationMail": "Send via Mail", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/sr.json b/web/l10n/sr.json deleted file mode 100644 index abab9409d..000000000 --- a/web/l10n/sr.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Učitava...", - "sharedSave": "Sačuvaj", - "sharedCancel": "Odustani", - "sharedAdd": "Dodaj", - "sharedEdit": "Podesi", - "sharedRemove": "Ukloni", - "sharedRemoveConfirm": "Ukloniti jedinicu?", - "sharedKm": "km", - "sharedMi": "mi", - "sharedKn": "kn", - "sharedKmh": "km/h", - "sharedMph": "mph", - "sharedHour": "Čas", - "sharedMinute": "Minut", - "sharedSecond": "Sekunda", - "sharedName": "Ime", - "sharedDescription": "Opis", - "sharedSearch": "Traži", - "sharedGeofence": "Geoograda", - "sharedGeofences": "Geoograde", - "sharedNotifications": "Obaveštenja", - "sharedAttributes": "Osobine", - "sharedAttribute": "Osobina", - "sharedArea": "Oblast", - "sharedMute": "Nečujno", - "sharedType": "Tip", - "sharedDistance": "Razdaljina", - "sharedHourAbbreviation": "č", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Stanje mape", - "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", - "loginLogin": "Prijava", - "loginFailed": "Neispravna email adresa ili lozinka", - "loginCreated": "Novi korisnik je registrovan", - "loginLogout": "Odjava", - "devicesAndState": "Uređaji i Stanje ", - "deviceDialog": "Uređaj", - "deviceTitle": "Uređaji", - "deviceIdentifier": "Identifikator", - "deviceLastUpdate": "Poslednji kontakt", - "deviceCommand": "Komanda", - "deviceFollow": "Prati", - "groupDialog": "Grupa", - "groupParent": "Grupa", - "groupNoGroup": "Nema grupe", - "settingsTitle": "Podešavanja", - "settingsUser": "Nalog", - "settingsGroups": "Grupe", - "settingsServer": "Server", - "settingsUsers": "Korisnici", - "settingsSpeedUnit": "Brzina", - "settingsTwelveHourFormat": "12-časovni format", - "reportTitle": "Izveštaji", - "reportDevice": "Uređaj", - "reportGroup": "Grupa", - "reportFrom": "Od", - "reportTo": "Do", - "reportShow": "Prikaži", - "reportClear": "Izbriši", - "positionFixTime": "Vreme", - "positionValid": "Ispravno", - "positionLatitude": "Geografska širina", - "positionLongitude": "Geografska dužina", - "positionAltitude": "Visina", - "positionSpeed": "Brzina", - "positionCourse": "Pravac", - "positionAddress": "Adresa", - "positionProtocol": "Protokol", - "serverTitle": "Podešavanja Servera", - "serverZoom": "Zumiranje", - "serverRegistration": "Registracija", - "serverReadonly": "Readonly verzija", - "mapTitle": "Mapa", - "mapLayer": "Vrsta Mape", - "mapCustom": "Prilagođena mapa", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Višeugao", - "mapShapeCircle": "Krug", - "stateTitle": "Stanje", - "stateName": "Parametar", - "stateValue": "Vrednost", - "commandTitle": "Komanda", - "commandSend": "Pošalji", - "commandSent": "Komanda je poslata", - "commandPositionPeriodic": "Periodično izveštavanje", - "commandPositionStop": "Prekini izveštavanja", - "commandEngineStop": "Zaustavi motor", - "commandEngineResume": "Pokreni motor", - "commandFrequency": "Frekvencija", - "commandUnit": "Jedinica", - "commandCustom": "Prilagođena komanda", - "commandPositionSingle": "Izveštaj za jednog", - "commandAlarmArm": "Omogući alarm", - "commandAlarmDisarm": "Onemogući alarm", - "commandSetTimezone": "Podesi vremensku zonu", - "commandRequestPhoto": "Zahtevaj fotografiju", - "commandRebootDevice": "Ponovo pokreni uređaj", - "commandSendSms": "Pošalji SMS", - "commandSendUssd": "Pošalji USSD", - "commandSosNumber": "Podesi SOS broj", - "commandSilenceTime": "Podesi nečujno vreme ", - "commandSetPhonebook": "Podesi kontakte", - "commandVoiceMessage": "Glasovna poruka", - "commandOutputControl": "Kontrola izlaza", - "commandAlarmSpeed": "Alarm prekoračenja brzine", - "commandDeviceIdentification": "Identifikacija uređaja", - "commandIndex": "Lista", - "commandData": "Podaci", - "commandPhone": "Broj telefona", - "commandMessage": "Poruka", - "eventAll": "Svi događaji", - "eventDeviceOnline": "Uređaj je na mreži", - "eventDeviceOffline": "Uređaj je van mreže", - "eventDeviceMoving": "Uređaj se kreće", - "eventDeviceStopped": "Uređaj je zaustavljen", - "eventDeviceOverspeed": "Uređaj prelazi brzinu", - "eventCommandResult": "Stanje komande", - "eventGeofenceEnter": "Uređaj je ušao u geoogradu", - "eventGeofenceExit": "Uređaj je izašao iz geoograde", - "eventAlarm": "Alarmi", - "eventIgnitionOn": "Kontakt uklj.", - "eventIgnitionOff": "Kontakt isklj.", - "alarm": "Alarm", - "alarmSos": "SOS alarm", - "alarmVibration": "Alarm vibracija", - "alarmMovement": "Alarm Kretanja", - "alarmOverspeed": "Prekoračenje brzine alarm", - "alarmFallDown": "Padanje Alarm", - "alarmLowBattery": "Slaba baterija alarm", - "alarmFault": "Alarm greške", - "notificationType": "Tip obaveštenja", - "notificationWeb": "Pošalji preko Web-a", - "notificationMail": "Pošalji putem Email-a", - "reportRoute": "Ruta", - "reportEvents": "Događaji", - "reportTrips": "Vožnje", - "reportSummary": "Izveštaj", - "reportConfigure": "Konfiguracija", - "reportEventTypes": "Tip događaja", - "reportCsv": "CSV", - "reportDeviceName": "Ime uređaja", - "reportAverageSpeed": "Prosečna brzina", - "reportMaximumSpeed": "Maksimalna brzina", - "reportEngineHours": "Radni sati", - "reportDuration": "Trajanje", - "reportStartTime": "Startno vreme", - "reportStartAddress": "Početna adresa", - "reportEndTime": "Završno vreme", - "reportEndAddress": "Krajnja adresa", - "reportSpentFuel": "Potrošeno goriva" -} \ No newline at end of file diff --git a/web/l10n/ta.json b/web/l10n/ta.json deleted file mode 100644 index 71882b917..000000000 --- a/web/l10n/ta.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "பதிவு செய்", - "sharedSave": "சேமி", - "sharedCancel": "ரத்து செய்", - "sharedAdd": "சேர்க்க", - "sharedEdit": "தொகுக்க", - "sharedRemove": "நீக்குக", - "sharedRemoveConfirm": "நீக்கம் உறுதி செய்?", - "sharedKm": "கிமீ", - "sharedMi": "மைல்", - "sharedKn": "கடல் மைல்", - "sharedKmh": "கிமீ/மணிக்கு", - "sharedMph": "மைல்/மணிக்கு", - "sharedHour": "மணி நேரம்", - "sharedMinute": "நிமிடம்", - "sharedSecond": "விநாடி", - "sharedName": "பெயர்", - "sharedDescription": "விளக்கம்", - "sharedSearch": "தேடுக", - "sharedGeofence": "பூகோள வேலி", - "sharedGeofences": "பூகோள வேலிகள்", - "sharedNotifications": "அறிவிப்புகள்", - "sharedAttributes": "பண்புகள்", - "sharedAttribute": "பண்பு", - "sharedArea": "பகுதி", - "sharedMute": "Mute", - "sharedType": "வகை", - "sharedDistance": "தொலைவு", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "பிழை", - "errorUnknown": "அறியப்படாத பிழை", - "errorConnection": "இணைப்புப் பிழை", - "userEmail": "மின்னஞ்சல்", - "userPassword": "கடவுச்சொல்", - "userAdmin": "நிர்வாகி", - "userRemember": "நினைவில் கொள்", - "loginTitle": "உள் நுழை", - "loginLanguage": "மொழி", - "loginRegister": "பதிவு செய்ய", - "loginLogin": "உள்நுழைய", - "loginFailed": "தவறான மின்னஞ்சல் முகவரி அல்லது கடவுச்சொல்", - "loginCreated": "புதிய பயனர் பதிவு செய்யப்பட்டுள்ளது", - "loginLogout": "வெளியேறு", - "devicesAndState": "கருவிகள் மற்றும் அதன் நிலை", - "deviceDialog": "சாதனம்", - "deviceTitle": "சாதனம்", - "deviceIdentifier": "அடையாளங்காட்டி", - "deviceLastUpdate": "கடைசியாக புதுப்பிக்கப்பட்டது", - "deviceCommand": "கட்டளை", - "deviceFollow": "பின்தொடர்", - "groupDialog": "குழு", - "groupParent": "குழு", - "groupNoGroup": "குழு இல்லை", - "settingsTitle": "அமைப்பு", - "settingsUser": "கணக்கு", - "settingsGroups": "குழுக்கள்", - "settingsServer": "சர்வர்", - "settingsUsers": "உறுப்பினர்கள்", - "settingsSpeedUnit": "வேகம்", - "settingsTwelveHourFormat": "12 மணி நேர வடிவம்", - "reportTitle": "அறிக்கை", - "reportDevice": "சாதனம்", - "reportGroup": "Group", - "reportFrom": "இருந்து", - "reportTo": "வரை", - "reportShow": "காண்பி", - "reportClear": "அழி", - "positionFixTime": "நேரம்", - "positionValid": "செல்லுபடியான", - "positionLatitude": "அட்சரேகை", - "positionLongitude": "தீர்க்கரேகை", - "positionAltitude": "உயரம்", - "positionSpeed": "வேகம்", - "positionCourse": "பாடநெறி", - "positionAddress": "முகவரி", - "positionProtocol": "புரோட்டோகால்", - "serverTitle": "சர்வர் அமைப்பு", - "serverZoom": "பெரிதாக்கு", - "serverRegistration": "பதிவுசெய்ய", - "serverReadonly": "படிக்கமட்டும்", - "mapTitle": "வரைபடம்", - "mapLayer": "வரைபடம் அடுக்கு", - "mapCustom": "விருப்ப வரைபடம்", - "mapOsm": "திறமூல தெரு வரைபடம்", - "mapBingKey": "பிங் வரைபட கீ", - "mapBingRoad": "பிங் சாலை வரைபடம்", - "mapBingAerial": "பிங் வான்வழி வரைபடம்", - "mapShapePolygon": "பலகோணம்", - "mapShapeCircle": "வட்டம்", - "stateTitle": "நிலை", - "stateName": "சாட்டு", - "stateValue": "மதிப்பு", - "commandTitle": "கட்டளை", - "commandSend": "அனுப்பு", - "commandSent": "கட்டளை அனுப்பப்பட்டது", - "commandPositionPeriodic": "காலமுறை அறிக்கையிடல்", - "commandPositionStop": "அறிக்கையிடுதல் நிறுத்து ", - "commandEngineStop": "எஞ்சின் நிறுத்து", - "commandEngineResume": "எஞ்சின் தொடங்க", - "commandFrequency": "காலஇடைவெளி", - "commandUnit": "அலகு", - "commandCustom": "விருப்பமான கட்டளை", - "commandPositionSingle": "ஒற்றை அறிக்கை", - "commandAlarmArm": "அலறிமணி துவக்கம்", - "commandAlarmDisarm": "அலறிமணி நிறுத்தம்", - "commandSetTimezone": "நேர மண்டலம்", - "commandRequestPhoto": "புகைப்படம் வேண்டு", - "commandRebootDevice": "சாதன மறுதுவக்கம்", - "commandSendSms": "குருஞ்செய்தி அனுப்பு", - "commandSendUssd": "Send USSD", - "commandSosNumber": "அவசர அழைப்பு எண்(SOS)", - "commandSilenceTime": "அமைதி நேரம் அமைக்க", - "commandSetPhonebook": "தொலைபேசிப்புத்தகம் அமை", - "commandVoiceMessage": "குரல் செய்தி", - "commandOutputControl": "வெளியீட்டு கட்டுப்பாடு", - "commandAlarmSpeed": "அதி வேக அலறி ", - "commandDeviceIdentification": "\nசாதன அடையாளம்", - "commandIndex": "Index", - "commandData": "தரவு", - "commandPhone": "தொலைபேசி எண்", - "commandMessage": "குறுஞ்செய்தி", - "eventAll": "All Events", - "eventDeviceOnline": "சாதனம் இணைப்பில் உள்ளது", - "eventDeviceOffline": "சாதன இணைப்பு துண்டிக்கபட்டது", - "eventDeviceMoving": "சாதனம் நகருகிறது", - "eventDeviceStopped": "சாதனம் நின்றுவிட்டது", - "eventDeviceOverspeed": "சாதனம் நிர்ணயித்த வேகத் திற்கு மேல்", - "eventCommandResult": "கட்டளை விளைவு", - "eventGeofenceEnter": "சாதனம் பூகோள வேலியினுள் நுழைந்துள்ளது", - "eventGeofenceExit": "சாதனம் பூகோள வேலியை விட்டு வெளியேறியது", - "eventAlarm": "Alarms", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "type of notification", - "notificationWeb": "வலைதளம் வழி அனுப்புக ", - "notificationMail": "மின்னஞ்சல் வழி அனுப்புக", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/th.json b/web/l10n/th.json deleted file mode 100644 index 80f71c0f2..000000000 --- a/web/l10n/th.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "กำลังโหลด", - "sharedSave": "จัดเก็บแฟ้มข้อมูล", - "sharedCancel": "ยกเลิก", - "sharedAdd": "เพิ่ม", - "sharedEdit": "ตรวจแก้ ปรับเปลี่ยนข้อมูล", - "sharedRemove": "ลบรายการ", - "sharedRemoveConfirm": "ยืนยันลบรายการ", - "sharedKm": "กม.", - "sharedMi": "ไมล์", - "sharedKn": "น๊อต", - "sharedKmh": "กม./ชม.", - "sharedMph": "ไมล์ต่อชั่วโมง", - "sharedHour": "ชั่วโมง", - "sharedMinute": "นาที", - "sharedSecond": "วินาที", - "sharedName": "ชื่อ", - "sharedDescription": "ลักษณะ", - "sharedSearch": "ค้นหา", - "sharedGeofence": "เขตพื้นที่", - "sharedGeofences": "เขตพื้นที่", - "sharedNotifications": "การแจ้งเตือน", - "sharedAttributes": "คุณลักษณะ", - "sharedAttribute": "คุณลักษณะ", - "sharedArea": "พื้นที่", - "sharedMute": "ปิดเสียง", - "sharedType": "ชนิด", - "sharedDistance": "ระยะทาง", - "sharedHourAbbreviation": "ชม.", - "sharedMinuteAbbreviation": "นาที", - "sharedGetMapState": "ได้รับสถานะแผนที่", - "errorTitle": "ผิดพลาด", - "errorUnknown": "ข้อผิดพลาดที่ไม่รู้จัก", - "errorConnection": "การเชื่อมต่อผิดพลาด", - "userEmail": "อีเมล์", - "userPassword": "รหัสผ่าน", - "userAdmin": "ผู้ดูแลระบบ", - "userRemember": "จำไว้", - "loginTitle": "เข้าสู่ระบบ", - "loginLanguage": "ภาษา", - "loginRegister": "ลงทะเบียน", - "loginLogin": "เข้าสู่ระบบ", - "loginFailed": "ที่อยู่อีเมลหรือรหัสผ่านไม่ถูกต้อง", - "loginCreated": "ผู้ใช้ใหม่ ได้รับการลงทะเบียน", - "loginLogout": "ออกจากระบบ", - "devicesAndState": "อุปกรณ์และสถานะ", - "deviceDialog": "เครื่อง/อุปกรณ์", - "deviceTitle": "เครื่อง/อุปกรณ์", - "deviceIdentifier": "ระบุเลขอุปกรณ์", - "deviceLastUpdate": "แก้ไขล่าสุด", - "deviceCommand": "คำสั่ง", - "deviceFollow": "ติดตาม", - "groupDialog": "กลุ่ม", - "groupParent": "กลุ่ม", - "groupNoGroup": "ไม่จัดกลุ่ม", - "settingsTitle": "การตั้งค่า", - "settingsUser": "บัญชีผู้ใช้", - "settingsGroups": "ตั้งค่ากลุ่ม", - "settingsServer": "ตั้งค่าระบบ", - "settingsUsers": "ตั้งค่าผู้ใช้งาน", - "settingsSpeedUnit": "หน่วยความเร็ว", - "settingsTwelveHourFormat": "รูปแบบเวลา 12 ชั่วโมง", - "reportTitle": "รายงาน", - "reportDevice": "รายงานเครื่อง/อุปกรณ์", - "reportGroup": "กลุ่ม", - "reportFrom": "จาก", - "reportTo": "ไปถึง", - "reportShow": "แสดง", - "reportClear": "ล้างรายงาน", - "positionFixTime": "เวลา", - "positionValid": "ถูกต้อง", - "positionLatitude": "ละติจูด", - "positionLongitude": "ลองจิจูด", - "positionAltitude": "ระดับความสูง", - "positionSpeed": "ความเร็ว", - "positionCourse": "ทิศทาง", - "positionAddress": "ที่อยู่", - "positionProtocol": "โปรโตคอล", - "serverTitle": "การตั้งค่าเซิร์ฟเวอ", - "serverZoom": "ชยาย +/-", - "serverRegistration": "ลงทะเบียน", - "serverReadonly": "อ่านได้อย่างเดียว", - "mapTitle": "แผนที่", - "mapLayer": "ชั้นแผนที่", - "mapCustom": "แผนที่ที่กำหนดเอง", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps สำคัญ", - "mapBingRoad": "Bing Maps ถนน", - "mapBingAerial": "Bing Maps ทางอากาศ", - "mapShapePolygon": "โพลิกอน", - "mapShapeCircle": "วงกลม", - "stateTitle": "สถานะ", - "stateName": "พารามิเตอร์", - "stateValue": "มูลค่า", - "commandTitle": "คำสั่ง", - "commandSend": "ส่ง", - "commandSent": "คำสั่งถูกส่งไปแล้ว", - "commandPositionPeriodic": "แก้ไขตำแหน่ง", - "commandPositionStop": "ตำแหน่ง หยุด", - "commandEngineStop": "ดับเครื่องยนต์", - "commandEngineResume": "ติดครื่องยนต์ใหม่", - "commandFrequency": "ความถี่", - "commandUnit": "หน่วย", - "commandCustom": "คำสั่งกำหนดเอง", - "commandPositionSingle": "รายงานตำแหน่งเดียว", - "commandAlarmArm": "แจ้งเตือนติดต่อสาขา", - "commandAlarmDisarm": "แจ้งเตือนยกเลิกติดต่อสาขา", - "commandSetTimezone": "ตั้งค่าเขตเวลา", - "commandRequestPhoto": "สั่งถ่ายภาพ", - "commandRebootDevice": "รีบูต", - "commandSendSms": "ส่ง SMS", - "commandSendUssd": "ส่ง USSD", - "commandSosNumber": "ตั้งค่าเลขหมายโทรฉุกเฉิน SOS", - "commandSilenceTime": "ตั้งค่าช่วงเาลาหยุดนิ่ง", - "commandSetPhonebook": "ตั้งค่าสมุดโทรศัพท์", - "commandVoiceMessage": "ข้อความเสียง", - "commandOutputControl": "ควบคุมข้อมูลที่ส่งออก", - "commandAlarmSpeed": "แจ้งเตือนความเร็วเกินกำหนด", - "commandDeviceIdentification": "หมายเลขอุปกรณ์", - "commandIndex": "ดัชนี", - "commandData": "ข้อมูล", - "commandPhone": "หมายเลขโทรศัพท์", - "commandMessage": "ข้อความ", - "eventAll": "เหตุการณ์ทั้งหมด", - "eventDeviceOnline": "อุปกรณ์เชื่อมต่อแล้ว", - "eventDeviceOffline": "อุปกรณ์ไม่ได้เชื่อมต่อ", - "eventDeviceMoving": "อุปกรณ์กำลังเคลื่อนที่", - "eventDeviceStopped": "อุปกรณ์ไม่เคลื่อนไหว", - "eventDeviceOverspeed": "อุปกรณ์เกินกำหนดความเร็ว", - "eventCommandResult": "ผลลัพธ์จากคำสั่ง", - "eventGeofenceEnter": "อุปกรณ์เข้าในเขตพื้นที่", - "eventGeofenceExit": "อุปกรณ์ออกนอกเขตพื้นที่", - "eventAlarm": "แจ้งเตือน", - "eventIgnitionOn": "สวิทย์กุญแจ เปิด", - "eventIgnitionOff": "สวิทย์กุญแจ ปิด", - "alarm": "แจ้งเตือน", - "alarmSos": "แจ้งเตือนฉุกเฉิน SOS", - "alarmVibration": "แจ้งเตือนการสั่นสะเทือน", - "alarmMovement": "แจ้งเตือนการเคลื่อนไหว", - "alarmOverspeed": "แจ้งเตือนความเร็วเกินกำหนด", - "alarmFallDown": "แจ้งเตือนการล้ม", - "alarmLowBattery": "แจ้งเตือนแบตเตอรี่เหลือน้อย", - "alarmFault": "แจ้งเตือนข้อผิดพลาด", - "notificationType": "ชนิดการแจ้งเตือน", - "notificationWeb": "ส่งทางเว็บ", - "notificationMail": "ส่งทางเมล์", - "reportRoute": "เส้นทาง", - "reportEvents": "เหตุการณ์", - "reportTrips": "การเดินทาง", - "reportSummary": "ผลรวม", - "reportConfigure": "ตั้งค่า", - "reportEventTypes": "ประเภทเหตุการณ์", - "reportCsv": "CSV", - "reportDeviceName": "ชื่ออุปกรณ์", - "reportAverageSpeed": "ความเร็วเฉลี่ย", - "reportMaximumSpeed": "ความเร็วสูงสุด", - "reportEngineHours": "เวลาการทำงานเครื่องยนต์", - "reportDuration": "ช่วงเวลา", - "reportStartTime": "เวลาเริ่มต้น", - "reportStartAddress": "จุดเริ่มต้น", - "reportEndTime": "เวลาสิ้นสุด", - "reportEndAddress": "จุดสิ้นสุด", - "reportSpentFuel": "เชื้อเพลิงที่ใช้" -} \ No newline at end of file diff --git a/web/l10n/tr.json b/web/l10n/tr.json deleted file mode 100644 index 326d1ad36..000000000 --- a/web/l10n/tr.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Yükleniyor...", - "sharedSave": "Kaydet", - "sharedCancel": "İptal", - "sharedAdd": "Ekle", - "sharedEdit": "Düzenle", - "sharedRemove": "Kaldır", - "sharedRemoveConfirm": "Öğeyi kaldır", - "sharedKm": "km", - "sharedMi": "mil", - "sharedKn": "Knot", - "sharedKmh": "km/s", - "sharedMph": "mil/s", - "sharedHour": "Saat", - "sharedMinute": "Dakika", - "sharedSecond": "Saniye", - "sharedName": "İsim", - "sharedDescription": "Açıklama", - "sharedSearch": "Arama", - "sharedGeofence": "Güvenli Bölge", - "sharedGeofences": "Güvenli Bölgeler", - "sharedNotifications": "Bildirimler", - "sharedAttributes": "Nitelikler", - "sharedAttribute": "Nitelik", - "sharedArea": "Bölge", - "sharedMute": "Sessiz", - "sharedType": "Tip", - "sharedDistance": "Mesafe", - "sharedHourAbbreviation": "s", - "sharedMinuteAbbreviation": "d", - "sharedGetMapState": "Harita Durumunu Getir", - "errorTitle": "Hata", - "errorUnknown": "Bilinmeyen hata ", - "errorConnection": "Bağlantı Hatası", - "userEmail": "Eposta", - "userPassword": "Şifre", - "userAdmin": "Yönetici", - "userRemember": "Hatırla", - "loginTitle": "Oturum aç", - "loginLanguage": "Lisan", - "loginRegister": "Kayıt", - "loginLogin": "Oturumu aç", - "loginFailed": "Geçersiz eposta veya şifre", - "loginCreated": "Yeni kullanıcı kaydedildi", - "loginLogout": "Oturumu sonlandır", - "devicesAndState": "Cihazlar ve Bölge", - "deviceDialog": "Cihaz", - "deviceTitle": "Cihazlar", - "deviceIdentifier": "Kimlik", - "deviceLastUpdate": "Son Güncelleme", - "deviceCommand": "Komut", - "deviceFollow": "Takip", - "groupDialog": "Grup", - "groupParent": "Grup", - "groupNoGroup": "Grupsuz", - "settingsTitle": "Ayarlar", - "settingsUser": "Hesap", - "settingsGroups": "Gruplar", - "settingsServer": "Sunucu", - "settingsUsers": "Kullanıcı", - "settingsSpeedUnit": "Hız", - "settingsTwelveHourFormat": "12 saat formatı", - "reportTitle": "Raporlar", - "reportDevice": "Aygıt", - "reportGroup": "Grup", - "reportFrom": "Başlangıç", - "reportTo": "Varış", - "reportShow": "Göster", - "reportClear": "Temizle", - "positionFixTime": "Süre", - "positionValid": "Geçerli", - "positionLatitude": "Enlem", - "positionLongitude": "Boylam", - "positionAltitude": "Rakım", - "positionSpeed": "Sürat", - "positionCourse": "Yön", - "positionAddress": "Adres", - "positionProtocol": "Protokol", - "serverTitle": "Sunucu Ayarları", - "serverZoom": "Yakınlaştırma", - "serverRegistration": "Kayıt", - "serverReadonly": "Saltokunur", - "mapTitle": "Harita", - "mapLayer": "Harita Katmanı", - "mapCustom": "Özelleştirilmiş Harita", - "mapOsm": "Open Street Map", - "mapBingKey": "Bing Maps Key", - "mapBingRoad": "Bing Maps Road", - "mapBingAerial": "Bing Maps Aerial", - "mapShapePolygon": "Çokgen", - "mapShapeCircle": "Çember", - "stateTitle": "Bölge", - "stateName": "Özellik", - "stateValue": "Değer", - "commandTitle": "Komut", - "commandSend": "Gönder", - "commandSent": "Komut gönderildi", - "commandPositionPeriodic": "Periyodik Rapor", - "commandPositionStop": "Raporlamayı Durdur", - "commandEngineStop": "Motoru Durdur", - "commandEngineResume": "Motoru Çalıştır", - "commandFrequency": "Frekans", - "commandUnit": "Ünite", - "commandCustom": "Özel komut", - "commandPositionSingle": "Tekil Raporlama", - "commandAlarmArm": "Alarm Kur", - "commandAlarmDisarm": "Alarmı Kapat", - "commandSetTimezone": "Zaman Dilimini Belirle", - "commandRequestPhoto": "Fotoğraf İste", - "commandRebootDevice": "Aygıtı Yeniden Başlat", - "commandSendSms": "SMS Gönder", - "commandSendUssd": "USSD Gönder", - "commandSosNumber": "Acil Durum Numarasını Belirle", - "commandSilenceTime": "Sessiz Zamanı Belirle", - "commandSetPhonebook": "Telefon Defterini Belirle", - "commandVoiceMessage": "Ses Mesajı", - "commandOutputControl": "Çıkış Kontrolü", - "commandAlarmSpeed": "Hız Alarmı", - "commandDeviceIdentification": "Cihaz Tanımı", - "commandIndex": "Fihrist", - "commandData": "Veri", - "commandPhone": "Telefon Numarası", - "commandMessage": "Mesaj", - "eventAll": "Tüm Olaylar", - "eventDeviceOnline": "Cihaz çevrimiçi", - "eventDeviceOffline": "Cihaz çevrimdışı", - "eventDeviceMoving": "Cihaz hareket halinde", - "eventDeviceStopped": "Cihaz durdu", - "eventDeviceOverspeed": "Cihaz hızı aştı", - "eventCommandResult": "Komut sonucu", - "eventGeofenceEnter": "Cihaz güvenli bölgede", - "eventGeofenceExit": "Cihaz güvenli bölgeden çıktı", - "eventAlarm": "Alarmlar", - "eventIgnitionOn": "Kontak Açık", - "eventIgnitionOff": "Kontak Kapalı", - "alarm": "Alarm", - "alarmSos": "İmdat Alarmı", - "alarmVibration": "Darbe Alarmı", - "alarmMovement": "Hareket Alarmı", - "alarmOverspeed": "Hız Alarmı", - "alarmFallDown": "Düşme Alarmı", - "alarmLowBattery": "Batarya Düşük Alarmı", - "alarmFault": "Arıza Alarmı", - "notificationType": "Bildirim tipi", - "notificationWeb": "Wed ile gönder", - "notificationMail": "E-posta ile gönder", - "reportRoute": "Rota", - "reportEvents": "Olaylar", - "reportTrips": "Turlar", - "reportSummary": "Özet", - "reportConfigure": "Ayarlar", - "reportEventTypes": "Olay Tipleri", - "reportCsv": "CVS", - "reportDeviceName": "Cihaz İsmi", - "reportAverageSpeed": "Ortalama Hız", - "reportMaximumSpeed": "En Fazla Hız", - "reportEngineHours": "Motor Saatleri", - "reportDuration": "Süre", - "reportStartTime": "Başlama Zamanı", - "reportStartAddress": "Başlama Adresi", - "reportEndTime": "Bittiği Zaman", - "reportEndAddress": "Bittiği Adres", - "reportSpentFuel": "Tüketilen Yakıt" -} \ No newline at end of file diff --git a/web/l10n/uk.json b/web/l10n/uk.json deleted file mode 100644 index 444b1923b..000000000 --- a/web/l10n/uk.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Завантаження... ", - "sharedSave": "Зберегти", - "sharedCancel": "Відміна", - "sharedAdd": "Додати", - "sharedEdit": "Редагувати", - "sharedRemove": "Видалити", - "sharedRemoveConfirm": "Видалити пункт?", - "sharedKm": "км", - "sharedMi": "Милi", - "sharedKn": "Вузли", - "sharedKmh": "км/год", - "sharedMph": "Миль/год", - "sharedHour": "Години", - "sharedMinute": "Хвилини", - "sharedSecond": "Секунди", - "sharedName": "Назва пристрою", - "sharedDescription": "Опис", - "sharedSearch": "Пошук", - "sharedGeofence": "Геозон", - "sharedGeofences": "Геозони", - "sharedNotifications": "Повідомлення", - "sharedAttributes": "Атрибути", - "sharedAttribute": "Атрибут", - "sharedArea": "Площа", - "sharedMute": "Без звуку", - "sharedType": "Тип", - "sharedDistance": "Відстань", - "sharedHourAbbreviation": "г", - "sharedMinuteAbbreviation": "хв", - "sharedGetMapState": "Get Map State", - "errorTitle": "Помилка", - "errorUnknown": "Невiдома помилка", - "errorConnection": "Помилка з'єднання", - "userEmail": "E-mail", - "userPassword": "Пароль", - "userAdmin": "Адмiнiстратор", - "userRemember": "Запам'ятати", - "loginTitle": "Логiн", - "loginLanguage": "Мова", - "loginRegister": "Реєстрація", - "loginLogin": "Ввійти", - "loginFailed": "Неправильне адреса електронної пошти або пароль", - "loginCreated": "Новий користувач був зареєстрований", - "loginLogout": "Вийти", - "devicesAndState": "Пристрої та стан", - "deviceDialog": "Пристрій", - "deviceTitle": " Прилади", - "deviceIdentifier": "Iдентифікатор", - "deviceLastUpdate": "Останнє оновлення", - "deviceCommand": "Команда", - "deviceFollow": "Слідувати", - "groupDialog": "Група", - "groupParent": "Група", - "groupNoGroup": "Група відсутня", - "settingsTitle": "Налаштування", - "settingsUser": "Аккаунт", - "settingsGroups": "Групи", - "settingsServer": "Сервер", - "settingsUsers": "Користувачі", - "settingsSpeedUnit": "Швидкість", - "settingsTwelveHourFormat": "12-годинний формат", - "reportTitle": "Звіти", - "reportDevice": "Пристрій ", - "reportGroup": "Group", - "reportFrom": "З", - "reportTo": "До", - "reportShow": "Показати", - "reportClear": "Очистити", - "positionFixTime": "Час ", - "positionValid": "Дійсний", - "positionLatitude": "Широта", - "positionLongitude": "Довгота ", - "positionAltitude": "Висота", - "positionSpeed": "Швидкість ", - "positionCourse": "Напрямок", - "positionAddress": "Адреса", - "positionProtocol": "Протокол", - "serverTitle": "Налаштування сервера", - "serverZoom": "Наближення", - "serverRegistration": "Реєстрація", - "serverReadonly": "Лише для читання", - "mapTitle": "Карта", - "mapLayer": "Використання мап", - "mapCustom": "Користувацька мапа", - "mapOsm": "Open Street Map", - "mapBingKey": "Ключ Bing Maps ", - "mapBingRoad": "Bing Maps Дороги", - "mapBingAerial": "Bing Maps Супутник", - "mapShapePolygon": "Багатокутник", - "mapShapeCircle": "Коло", - "stateTitle": "Стан", - "stateName": "Атрибут", - "stateValue": "Значення ", - "commandTitle": "Команда ", - "commandSend": "Послати. ", - "commandSent": "Команда була відправлена", - "commandPositionPeriodic": "Періодична звітність", - "commandPositionStop": "Скасувати відстеження. ", - "commandEngineStop": "Заблокувати двигун ", - "commandEngineResume": "Розблокувати двигун", - "commandFrequency": "Частота", - "commandUnit": "Одиниці", - "commandCustom": "Користувацька команда", - "commandPositionSingle": "Разове відстеження", - "commandAlarmArm": "Активувати сигналізацію", - "commandAlarmDisarm": "Вимкнути сигналізацію", - "commandSetTimezone": "Часовий пояс", - "commandRequestPhoto": "Запит фото", - "commandRebootDevice": "Перезавантаження пристрою", - "commandSendSms": "Надсилання SMS", - "commandSendUssd": "Надсилання USSD", - "commandSosNumber": "Номер SOS", - "commandSilenceTime": "Встановити час пиші", - "commandSetPhonebook": "Телефонна книга", - "commandVoiceMessage": "Голосове повідомлення", - "commandOutputControl": "Контроль виходу", - "commandAlarmSpeed": "Перевищення швидкості", - "commandDeviceIdentification": "Ідентифікація пристрою", - "commandIndex": "Індекс", - "commandData": "Дані", - "commandPhone": "Phone Number", - "commandMessage": "Повідомлення", - "eventAll": "All Events", - "eventDeviceOnline": "Пристрій з'єднався", - "eventDeviceOffline": "Пристрій від'єднався", - "eventDeviceMoving": "Пристрій в русі", - "eventDeviceStopped": "Пристрій зупинився", - "eventDeviceOverspeed": "Пристрій перевищує швидкість", - "eventCommandResult": "Результат команди", - "eventGeofenceEnter": "Пристрій в геозоні", - "eventGeofenceExit": "Пристрій залишив геозону", - "eventAlarm": "Тревоги", - "eventIgnitionOn": "Запалення УВІМК", - "eventIgnitionOff": "Запалення ВИМК", - "alarm": "Тревога", - "alarmSos": "Тривога SOS", - "alarmVibration": "Тривога вібрації", - "alarmMovement": "Тривога сигналізації", - "alarmOverspeed": "Тривога перевищення швидкості", - "alarmFallDown": "Тривога падіння", - "alarmLowBattery": "Тривога низького заряду", - "alarmFault": "Тривога несправності", - "notificationType": "Тип повідомлення", - "notificationWeb": "Повідомляти у Web", - "notificationMail": "Надсилати на Пошту", - "reportRoute": "Маршрут", - "reportEvents": "Події", - "reportTrips": "Подорожі", - "reportSummary": "Звіт", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Ім'я пристрою", - "reportAverageSpeed": "Середня швидкість", - "reportMaximumSpeed": "Максимальна швидкість", - "reportEngineHours": "Мотогодинник", - "reportDuration": "Тривалість", - "reportStartTime": "Початковий час", - "reportStartAddress": "Початкова адреса", - "reportEndTime": "Кінцевий час", - "reportEndAddress": "Кінцева адреса", - "reportSpentFuel": "Використано палива" -} \ No newline at end of file diff --git a/web/l10n/vi.json b/web/l10n/vi.json deleted file mode 100644 index f344d7a0b..000000000 --- a/web/l10n/vi.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "Đang tải...", - "sharedSave": "Lưu", - "sharedCancel": "Hủy", - "sharedAdd": "Thêm mới", - "sharedEdit": "Chỉnh sửa", - "sharedRemove": "Xóa", - "sharedRemoveConfirm": "Xóa lựa chọn?", - "sharedKm": "km", - "sharedMi": "dặm", - "sharedKn": "kn", - "sharedKmh": "km/h", - "sharedMph": "mph", - "sharedHour": "Giờ", - "sharedMinute": "Phút", - "sharedSecond": "Giây", - "sharedName": "Tên", - "sharedDescription": "Mô tả", - "sharedSearch": "Tìm kiếm", - "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", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "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ườ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": "Đị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": "Không có nhóm", - "settingsTitle": "Cài đặt", - "settingsUser": "Tài khoản", - "settingsGroups": "Nhóm", - "settingsServer": "Máy chủ", - "settingsUsers": "Người dùng", - "settingsSpeedUnit": "Tốc độ", - "settingsTwelveHourFormat": "Định dạng 12h", - "reportTitle": "Báo cáo", - "reportDevice": "Thiết bị", - "reportGroup": "Group", - "reportFrom": "Từ", - "reportTo": "Đến", - "reportShow": "Hiển thị", - "reportClear": "Xóa", - "positionFixTime": "Thời gian", - "positionValid": "Có hiệu lực", - "positionLatitude": "Vĩ độ", - "positionLongitude": "Kinh độ", - "positionAltitude": "Độ cao", - "positionSpeed": "Tốc độ", - "positionCourse": "Hướng", - "positionAddress": "Địa chỉ", - "positionProtocol": "Giao thức", - "serverTitle": "Cài đặt máy chủ", - "serverZoom": "Phóng to", - "serverRegistration": "Đăng ký", - "serverReadonly": "Chỉ đọc", - "mapTitle": "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": "Đ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", - "commandSent": "Lệnh đã được gửi", - "commandPositionPeriodic": "Báo cáo định kỳ", - "commandPositionStop": "Dừng báo cáo", - "commandEngineStop": "Tắt máy", - "commandEngineResume": "Bật máy", - "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", - "commandSendUssd": "Send USSD", - "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ị", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "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", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "Loại thông báo", - "notificationWeb": "Gửi từ web", - "notificationMail": "Gửi từ mail", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/l10n/zh.json b/web/l10n/zh.json deleted file mode 100644 index d1838771c..000000000 --- a/web/l10n/zh.json +++ /dev/null @@ -1,164 +0,0 @@ -{ - "sharedLoading": "加载", - "sharedSave": "保存", - "sharedCancel": "取消", - "sharedAdd": "新建", - "sharedEdit": "编辑", - "sharedRemove": "移除", - "sharedRemoveConfirm": "要移除选项吗?", - "sharedKm": "千米", - "sharedMi": "海里", - "sharedKn": "kn", - "sharedKmh": "千米/小时", - "sharedMph": "每小时英里数", - "sharedHour": "小时", - "sharedMinute": "分钟", - "sharedSecond": "秒", - "sharedName": "Name", - "sharedDescription": "Description", - "sharedSearch": "Search", - "sharedGeofence": "Geofence", - "sharedGeofences": "Geofences", - "sharedNotifications": "Notifications", - "sharedAttributes": "Attributes", - "sharedAttribute": "Attribute", - "sharedArea": "Area", - "sharedMute": "Mute", - "sharedType": "Type", - "sharedDistance": "Distance", - "sharedHourAbbreviation": "h", - "sharedMinuteAbbreviation": "m", - "sharedGetMapState": "Get Map State", - "errorTitle": "错误", - "errorUnknown": "未知错误", - "errorConnection": "连接错误", - "userEmail": "邮箱", - "userPassword": "密码", - "userAdmin": "管理员", - "userRemember": "Remember", - "loginTitle": "登录", - "loginLanguage": "语言", - "loginRegister": "注册", - "loginLogin": "登录", - "loginFailed": "邮箱地址或密码不对", - "loginCreated": "新用户已经被注册了", - "loginLogout": "登出", - "devicesAndState": "设备和状态", - "deviceDialog": "设备", - "deviceTitle": "设备", - "deviceIdentifier": "标识符", - "deviceLastUpdate": "最后更新", - "deviceCommand": "指令", - "deviceFollow": "遵循", - "groupDialog": "Group", - "groupParent": "Group", - "groupNoGroup": "No Group", - "settingsTitle": "设置", - "settingsUser": "账户", - "settingsGroups": "Groups", - "settingsServer": "服务器", - "settingsUsers": "用户", - "settingsSpeedUnit": "速度", - "settingsTwelveHourFormat": "12-hour Format", - "reportTitle": "报表", - "reportDevice": "设备", - "reportGroup": "Group", - "reportFrom": "开始", - "reportTo": "结束", - "reportShow": "显示", - "reportClear": "清空", - "positionFixTime": "时间", - "positionValid": "有效", - "positionLatitude": "纬度", - "positionLongitude": "经度", - "positionAltitude": "海拔", - "positionSpeed": "速度", - "positionCourse": "航向", - "positionAddress": "地址", - "positionProtocol": "协议", - "serverTitle": "服务器设置", - "serverZoom": "缩放", - "serverRegistration": "注册", - "serverReadonly": "只读", - "mapTitle": "地图", - "mapLayer": "地图图层", - "mapCustom": "自定义地图", - "mapOsm": "OpenStreetMap 地图", - "mapBingKey": "Bing 旅游重点", - "mapBingRoad": "Bing 公路线路地图", - "mapBingAerial": "Bing 航测地图", - "mapShapePolygon": "Polygon", - "mapShapeCircle": "Circle", - "stateTitle": "状态", - "stateName": "参数", - "stateValue": "数值", - "commandTitle": "命令", - "commandSend": "发送", - "commandSent": "命令已发送", - "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", - "commandSendUssd": "Send USSD", - "commandSosNumber": "Set SOS Number", - "commandSilenceTime": "Set Silence Time", - "commandSetPhonebook": "Set Phonebook", - "commandVoiceMessage": "Voice Message", - "commandOutputControl": "Output Control", - "commandAlarmSpeed": "Overspeed Alarm", - "commandDeviceIdentification": "Device Identification", - "commandIndex": "Index", - "commandData": "Data", - "commandPhone": "Phone Number", - "commandMessage": "Message", - "eventAll": "All Events", - "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", - "eventAlarm": "Alarms", - "eventIgnitionOn": "Ignition is ON", - "eventIgnitionOff": "Ignition is OFF", - "alarm": "Alarm", - "alarmSos": "SOS Alarm", - "alarmVibration": "Vibration Alarm", - "alarmMovement": "Movement Alarm", - "alarmOverspeed": "Overspeed Alarm", - "alarmFallDown": "FallDown Alarm", - "alarmLowBattery": "LowBattery Alarm", - "alarmFault": "Fault Alarm", - "notificationType": "Type of Notification", - "notificationWeb": "Send via Web", - "notificationMail": "Send via Mail", - "reportRoute": "Route", - "reportEvents": "Events", - "reportTrips": "Trips", - "reportSummary": "Summary", - "reportConfigure": "Configure", - "reportEventTypes": "Event Types", - "reportCsv": "CSV", - "reportDeviceName": "Device Name", - "reportAverageSpeed": "Average Speed", - "reportMaximumSpeed": "Maximum Speed", - "reportEngineHours": "Engine Hours", - "reportDuration": "Duration", - "reportStartTime": "Start Time", - "reportStartAddress": "Start Address", - "reportEndTime": "End Time", - "reportEndAddress": "End Address", - "reportSpentFuel": "Spent Fuel" -} \ No newline at end of file diff --git a/web/locale.js b/web/locale.js deleted file mode 100644 index 456b40bb5..000000000 --- a/web/locale.js +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright 2015 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. - */ - -var Locale = {}; - -Locale.languages = { - 'ar': { name: 'العربية', code: 'en' }, - 'bg': { name: 'Български', code: 'bg' }, - 'cs': { name: 'Čeština', code: 'cs' }, - 'de': { name: 'Deutsch', code: 'de' }, - 'da': { name: 'Dansk', code: 'da' }, - 'el': { name: 'Ελληνικά', code: 'el' }, - 'en': { name: 'English', code: 'en' }, - 'es': { name: 'Español', code: 'es' }, - 'fa': { name: 'فارسی', code: 'fa' }, - 'fi': { name: 'Suomi', code: 'fi' }, - 'fr': { name: 'Français', code: 'fr' }, - 'he': { name: 'עברית', code: 'he' }, - 'hi': { name: 'हिन्दी', code: 'en' }, - 'hu': { name: 'Magyar', code: 'hu' }, - 'id': { name: 'Bahasa Indonesia', code: 'id' }, - 'it': { name: 'Italiano', code: 'it' }, - 'ka': { name: 'ქართული', code: 'en' }, - 'lo': { name: 'ລາວ', code: 'en' }, - 'lt': { name: 'Lietuvių', code: 'lt' }, - 'ml': { name: 'മലയാളം', code: 'en' }, - 'ms': { name: 'بهاس ملايو', code: 'en' }, - 'nb': { name: 'Norsk bokmål', code: 'no_NB' }, - 'ne': { name: 'नेपाली', code: 'en' }, - 'nl': { name: 'Nederlands', code: 'nl' }, - 'nn': { name: 'Norsk nynorsk', code: 'no_NN' }, - 'pl': { name: 'Polski', code: 'pl' }, - 'pt': { name: 'Português', code: 'pt' }, - 'pt_BR': { name: 'Português (Brasil)', code: 'pt_BR' }, - 'ro': { name: 'Română', code: 'ro' }, - 'ru': { name: 'Русский', code: 'ru' }, - 'si': { name: 'සිංහල', code: 'en' }, - 'sk': { name: 'Slovenčina', code: 'sk' }, - 'sl': { name: 'Slovenščina', code: 'sl' }, - 'sq': { name: 'Shqipëria', code: 'en' }, - 'sr': { name: 'Srpski', code: 'sr' }, - 'ta': { name: 'தமிழ்', code: 'en' }, - 'th': { name: 'ไทย', code: 'th' }, - 'tr': { name: 'Türkçe', code: 'tr' }, - 'uk': { name: 'Українська', code: 'ukr' }, - 'vi': { name: 'Tiếng Việt', code: 'en' }, - 'zh': { name: '中文', code: 'zh_CN' } -}; - -Locale.language = Ext.Object.fromQueryString(window.location.search.substring(1)).locale; -if (Locale.language === undefined) { - Locale.language = window.navigator.userLanguage || window.navigator.language; - Locale.language = Locale.language.substr(0, 2); -} - -if (!(Locale.language in Locale.languages)) { - Locale.language = 'en'; // default -} - -Ext.Ajax.request({ - url: 'l10n/' + Locale.language + '.json', - callback: function (options, success, response) { - Strings = Ext.decode(response.responseText); - } -}); - -Ext.Loader.loadScript('//cdnjs.cloudflare.com/ajax/libs/extjs/6.0.0/classic/locale/locale-' + Locale.languages[Locale.language].code + '.js'); diff --git a/web/release.html b/web/release.html deleted file mode 100644 index 3c9d9e111..000000000 --- a/web/release.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - -Traccar - - - - - - -
- - - - - - - - - -- cgit v1.2.3 From c6464493a3f91151cd7bd39b0e64807ec321c78c Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 18 Sep 2016 11:50:06 +1200 Subject: Add a symbolic link to web interface --- web | 1 + 1 file changed, 1 insertion(+) create mode 120000 web diff --git a/web b/web new file mode 120000 index 000000000..1649d3676 --- /dev/null +++ b/web @@ -0,0 +1 @@ +../traccar-web/web \ No newline at end of file -- cgit v1.2.3 From c60bdb519aa24c24dc5df9fab98103d072f8a4db Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 18 Sep 2016 13:39:14 +1200 Subject: Clear default user account configuration --- schema/changelog-3.8.xml | 25 +++++++++++++++++++++++++ schema/changelog-master.xml | 1 + 2 files changed, 26 insertions(+) create mode 100644 schema/changelog-3.8.xml diff --git a/schema/changelog-3.8.xml b/schema/changelog-3.8.xml new file mode 100644 index 000000000..97bc1c9a3 --- /dev/null +++ b/schema/changelog-3.8.xml @@ -0,0 +1,25 @@ + + + + + + + + map = 'osm' + + + + distanceunit = 'km' + + + + speedunit = 'kmh' + + + + diff --git a/schema/changelog-master.xml b/schema/changelog-master.xml index 3b62537d0..341714ca8 100644 --- a/schema/changelog-master.xml +++ b/schema/changelog-master.xml @@ -9,4 +9,5 @@ + -- cgit v1.2.3 From 989956915085944d6d5ac550020a7a854c68b541 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 18 Sep 2016 19:09:28 +1200 Subject: Allow to switch GT06 command format --- src/org/traccar/protocol/Gt06ProtocolEncoder.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/org/traccar/protocol/Gt06ProtocolEncoder.java b/src/org/traccar/protocol/Gt06ProtocolEncoder.java index 3ef9b1313..e478424f9 100644 --- a/src/org/traccar/protocol/Gt06ProtocolEncoder.java +++ b/src/org/traccar/protocol/Gt06ProtocolEncoder.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. @@ -18,9 +18,11 @@ package org.traccar.protocol; import org.jboss.netty.buffer.ChannelBuffer; import org.jboss.netty.buffer.ChannelBuffers; import org.traccar.BaseProtocolEncoder; +import org.traccar.Context; import org.traccar.helper.Checksum; import org.traccar.helper.Log; import org.traccar.model.Command; +import org.traccar.model.Device; import java.nio.charset.StandardCharsets; @@ -54,11 +56,19 @@ public class Gt06ProtocolEncoder extends BaseProtocolEncoder { @Override protected Object encodeCommand(Command command) { + boolean alternative; + Device device = Context.getIdentityManager().getDeviceById(command.getDeviceId()); + if (device.getAttributes().containsKey("gt06.alternative")) { + alternative = Boolean.parseBoolean((String) device.getAttributes().get("gt06.alternative")); + } else { + alternative = Context.getConfig().getBoolean("gt06.alternative"); + } + switch (command.getType()) { case Command.TYPE_ENGINE_STOP: - return encodeContent("Relay,1#"); + return encodeContent(alternative ? "DYD,123456#\r\n" : "Relay,1#"); case Command.TYPE_ENGINE_RESUME: - return encodeContent("Relay,0#"); + return encodeContent(alternative ? "HFYD,123456#\r\n" : "Relay,0#"); default: Log.warning(new UnsupportedOperationException(command.getType())); break; -- cgit v1.2.3 From d8ba1eccc5ee74bc3bf90724c726de71233a0421 Mon Sep 17 00:00:00 2001 From: nyash Date: Sun, 18 Sep 2016 14:39:10 +0200 Subject: Add jpkorjar protocol --- src/org/traccar/protocol/JpKorjarProtocol.java | 45 ++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/org/traccar/protocol/JpKorjarProtocol.java diff --git a/src/org/traccar/protocol/JpKorjarProtocol.java b/src/org/traccar/protocol/JpKorjarProtocol.java new file mode 100644 index 000000000..e48e6ea21 --- /dev/null +++ b/src/org/traccar/protocol/JpKorjarProtocol.java @@ -0,0 +1,45 @@ +/* + * Copyright 2016 nyashh (nyashh@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.string.StringDecoder; +import org.traccar.BaseProtocol; +import org.traccar.TrackerServer; + +import java.util.List; + +public class JpKorjarProtocol extends BaseProtocol { + + public JpKorjarProtocol() { + super("jpkorjar"); + } + + @Override + public void initTrackerServers(List serverList) { + serverList.add(new TrackerServer(new ServerBootstrap(), this.getName()) { + @Override + protected void addSpecificHandlers(ChannelPipeline pipeline) { + + pipeline.addLast("frameDecoder", new JpKorjarFrameDecoder()); + pipeline.addLast("stringDecoder", new StringDecoder()); + pipeline.addLast("objectDecoder", new JpKorjarProtocolDecoder(JpKorjarProtocol.this)); + } + }); + } + +} -- cgit v1.2.3 From cff3579737ae906c34670f9bf44f62473c7a7466 Mon Sep 17 00:00:00 2001 From: nyash Date: Sun, 18 Sep 2016 14:39:39 +0200 Subject: Add jpkorjar frame decoder --- src/org/traccar/protocol/JpKorjarFrameDecoder.java | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/org/traccar/protocol/JpKorjarFrameDecoder.java diff --git a/src/org/traccar/protocol/JpKorjarFrameDecoder.java b/src/org/traccar/protocol/JpKorjarFrameDecoder.java new file mode 100644 index 000000000..0b32a7f0b --- /dev/null +++ b/src/org/traccar/protocol/JpKorjarFrameDecoder.java @@ -0,0 +1,46 @@ +/* + * Copyright 2016 nyashh (nyashh@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.channel.Channel; +import org.jboss.netty.channel.ChannelHandlerContext; +import org.jboss.netty.handler.codec.frame.FrameDecoder; + +public class JpKorjarFrameDecoder extends FrameDecoder { + + @Override + protected Object decode( + ChannelHandlerContext ctx, Channel channel, ChannelBuffer buf) throws Exception { + + if (buf.readableBytes() < 80) { + return null; + } + + int spaceIndex = buf.indexOf(buf.readerIndex(), buf.writerIndex(), (byte) ' '); + if (spaceIndex == -1) { + return null; + } + + int endIndex = buf.indexOf(spaceIndex, buf.writerIndex(), (byte) ','); + if (endIndex == -1) { + return null; + } + + return buf.readBytes(endIndex + 1); + } + +} -- cgit v1.2.3 From 786a6b0b5f3777583a6c6fe6d0365bbcbf4e708b Mon Sep 17 00:00:00 2001 From: nyash Date: Sun, 18 Sep 2016 14:40:48 +0200 Subject: Add jpkorjar protocol decoder --- .../traccar/protocol/JpKorjarProtocolDecoder.java | 105 +++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 src/org/traccar/protocol/JpKorjarProtocolDecoder.java diff --git a/src/org/traccar/protocol/JpKorjarProtocolDecoder.java b/src/org/traccar/protocol/JpKorjarProtocolDecoder.java new file mode 100644 index 000000000..e5c80ee82 --- /dev/null +++ b/src/org/traccar/protocol/JpKorjarProtocolDecoder.java @@ -0,0 +1,105 @@ +/* + * Copyright 2016 nyashh (nyashh@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.channel.Channel; +import org.traccar.BaseProtocolDecoder; +import org.traccar.DeviceSession; +import org.traccar.helper.DateBuilder; +import org.traccar.model.Position; + +import java.net.SocketAddress; + +public class JpKorjarProtocolDecoder extends BaseProtocolDecoder { + + public JpKorjarProtocolDecoder(JpKorjarProtocol protocol) { + super(protocol); + } + + @Override + protected Object decode(Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { + + String line = (String) msg; + + String[] parts = line.split(","); + + if (parts.length == 0) { + return null; + } + + if (!parts[0].equals("KORJAR.PL")) { + return null; + } + + Long imei = Long.parseLong(parts[1]); + + int year = Integer.parseInt(parts[2].substring(0, 2)); + int month = Integer.parseInt(parts[2].substring(2, 4)); + int day = Integer.parseInt(parts[2].substring(4, 6)); + int hour = Integer.parseInt(parts[2].substring(6, 8)); + int minute = Integer.parseInt(parts[2].substring(8, 10)); + int second = Integer.parseInt(parts[2].substring(10, 12)); + + Double latitude = Double.parseDouble(parts[3].substring(0, + Math.max(0, parts[3].length() - 1))); + + Double longitude = Double.parseDouble(parts[4].substring(0, + Math.max(0, parts[4].length() - 1))); + + Double speed = Double.parseDouble(parts[5]); + Double course = Double.parseDouble(parts[6]); + + String[] batteryParts = parts[7].split(":"); + + String batteryLevel = batteryParts[0]; + Double batteryVoltage = Double.parseDouble(batteryParts[1].substring(0, + Math.max(0, batteryParts[1].length() - 1))); + + String[] codeParts = parts[8].split(" "); + + int gpsSignal = Integer.parseInt(codeParts[0]); //0 - low, 1 - high + int mcc = Integer.parseInt(codeParts[1]); + int mnc = Integer.parseInt(codeParts[2]); + int lac = Integer.parseInt(codeParts[3], 16); + int cid = Integer.parseInt(codeParts[4], 16); + + DateBuilder builder = new DateBuilder().setDate(year, month, day) + .setTime(hour, minute, second); + + DeviceSession deviceSession = getDeviceSession(channel, remoteAddress, parts[1]); + if (deviceSession == null) { + return null; + } + + Position position = new Position(); + position.setProtocol(getProtocolName()); + position.setDeviceId(deviceSession.getDeviceId()); + position.setLatitude(latitude); + position.setLongitude(longitude); + position.setSpeed(speed); + position.setCourse(course); + position.set("signal", gpsSignal); + position.set(Position.KEY_POWER, batteryVoltage); + position.set(Position.KEY_MNC, mnc); + position.set(Position.KEY_MCC, mcc); + position.set(Position.KEY_LAC, lac); + position.set(Position.KEY_CID, cid); + position.setTime(builder.getDate()); + position.setValid(true); + + return position; + } +} -- cgit v1.2.3 From 3a0a2ec7c2a3cd418300c90e7e44c0d86499476c Mon Sep 17 00:00:00 2001 From: nyash Date: Sun, 18 Sep 2016 14:42:13 +0200 Subject: Add jpkorjar protocol decoder test --- .../traccar/protocol/JpKorjarProtocolDecoderTest.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 test/org/traccar/protocol/JpKorjarProtocolDecoderTest.java diff --git a/test/org/traccar/protocol/JpKorjarProtocolDecoderTest.java b/test/org/traccar/protocol/JpKorjarProtocolDecoderTest.java new file mode 100644 index 000000000..d253af99c --- /dev/null +++ b/test/org/traccar/protocol/JpKorjarProtocolDecoderTest.java @@ -0,0 +1,19 @@ +package org.traccar.protocol; + + +import org.junit.Test; +import org.traccar.ProtocolTest; + +public class JpKorjarProtocolDecoderTest extends ProtocolTest { + + @Test + public void testDecode() throws Exception { + + JpKorjarProtocolDecoder decoder = new JpKorjarProtocolDecoder(new JpKorjarProtocol()); + + verifyPosition(decoder, text( + "KORJAR.PL,329587014519383,160910144240,52.247254N,021.013375E,0.00,1,F:4.18V,1 260 01 794B 3517,")); + + } + +} -- cgit v1.2.3 From aadca0b21a5210fabba0d490876ed0370aa08c8d Mon Sep 17 00:00:00 2001 From: nyash Date: Sun, 18 Sep 2016 14:43:36 +0200 Subject: Add jpkorjar protocol port --- debug.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/debug.xml b/debug.xml index 6ad830402..44f4f2c7f 100644 --- a/debug.xml +++ b/debug.xml @@ -456,5 +456,6 @@ 5119 5120 5121 + 5122 -- cgit v1.2.3 From a0c125575a4b5d400790e2290d3212799355b498 Mon Sep 17 00:00:00 2001 From: nyash Date: Mon, 19 Sep 2016 12:18:30 +0200 Subject: Add jpkorjar tests showcasing changing attributes --- test/org/traccar/protocol/JpKorjarProtocolDecoderTest.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/org/traccar/protocol/JpKorjarProtocolDecoderTest.java b/test/org/traccar/protocol/JpKorjarProtocolDecoderTest.java index d253af99c..44cdbe2f2 100644 --- a/test/org/traccar/protocol/JpKorjarProtocolDecoderTest.java +++ b/test/org/traccar/protocol/JpKorjarProtocolDecoderTest.java @@ -14,6 +14,12 @@ public class JpKorjarProtocolDecoderTest extends ProtocolTest { verifyPosition(decoder, text( "KORJAR.PL,329587014519383,160910144240,52.247254N,021.013375E,0.00,1,F:4.18V,1 260 01 794B 3517,")); + verifyPosition(decoder, text( + "KORJAR.PL,329587014519383,160910144240,52.895515N,021.949151E,6.30,212,F:3.94V,0 260 01 794B 3519,")); + + verifyPosition(decoder, text( + "KORJAR.PL,329587014519383,160910144240,52.895596N,021.949343E,12.46,087,L:2.18V,1 260 01 794B 3517,")); + } } -- cgit v1.2.3 From 24c846056fc6bdca120ce96c32d75ff6c36f3ba0 Mon Sep 17 00:00:00 2001 From: nyash Date: Mon, 19 Sep 2016 12:20:49 +0200 Subject: use primitives and remove unused variables --- src/org/traccar/protocol/JpKorjarProtocolDecoder.java | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/org/traccar/protocol/JpKorjarProtocolDecoder.java b/src/org/traccar/protocol/JpKorjarProtocolDecoder.java index e5c80ee82..0cdc958c9 100644 --- a/src/org/traccar/protocol/JpKorjarProtocolDecoder.java +++ b/src/org/traccar/protocol/JpKorjarProtocolDecoder.java @@ -44,8 +44,6 @@ public class JpKorjarProtocolDecoder extends BaseProtocolDecoder { return null; } - Long imei = Long.parseLong(parts[1]); - int year = Integer.parseInt(parts[2].substring(0, 2)); int month = Integer.parseInt(parts[2].substring(2, 4)); int day = Integer.parseInt(parts[2].substring(4, 6)); @@ -53,19 +51,18 @@ public class JpKorjarProtocolDecoder extends BaseProtocolDecoder { int minute = Integer.parseInt(parts[2].substring(8, 10)); int second = Integer.parseInt(parts[2].substring(10, 12)); - Double latitude = Double.parseDouble(parts[3].substring(0, + double latitude = Double.parseDouble(parts[3].substring(0, Math.max(0, parts[3].length() - 1))); - Double longitude = Double.parseDouble(parts[4].substring(0, + double longitude = Double.parseDouble(parts[4].substring(0, Math.max(0, parts[4].length() - 1))); - Double speed = Double.parseDouble(parts[5]); - Double course = Double.parseDouble(parts[6]); + double speed = Double.parseDouble(parts[5]); + double course = Double.parseDouble(parts[6]); String[] batteryParts = parts[7].split(":"); - String batteryLevel = batteryParts[0]; - Double batteryVoltage = Double.parseDouble(batteryParts[1].substring(0, + double batteryVoltage = Double.parseDouble(batteryParts[1].substring(0, Math.max(0, batteryParts[1].length() - 1))); String[] codeParts = parts[8].split(" "); -- cgit v1.2.3 From 920f7d9d475bd12d37c51e585ae810c2c0d596c3 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Mon, 19 Sep 2016 22:45:32 +1200 Subject: Add GPS103 ignition alarms --- src/org/traccar/protocol/Gps103ProtocolDecoder.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/org/traccar/protocol/Gps103ProtocolDecoder.java b/src/org/traccar/protocol/Gps103ProtocolDecoder.java index 1a34a6bd8..363834f89 100644 --- a/src/org/traccar/protocol/Gps103ProtocolDecoder.java +++ b/src/org/traccar/protocol/Gps103ProtocolDecoder.java @@ -216,8 +216,14 @@ public class Gps103ProtocolDecoder extends BaseProtocolDecoder { String alarm = parser.next(); position.set(Position.KEY_ALARM, decodeAlarm(alarm)); - if (channel != null && alarm.equals("help me")) { - channel.write("**,imei:" + imei + ",E;", remoteAddress); + if (alarm.equals("help me")) { + if (channel != null) { + channel.write("**,imei:" + imei + ",E;", remoteAddress); + } + } else if (alarm.equals("acc on")) { + position.set(Position.KEY_IGNITION, true); + } else if (alarm.equals("acc off")) { + position.set(Position.KEY_IGNITION, false); } DateBuilder dateBuilder = new DateBuilder() -- cgit v1.2.3 From 56a4fe28c4d72b8ec1f55fce4c8de18c1ef71f73 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Mon, 19 Sep 2016 23:04:34 +1200 Subject: Remove debug code from ArknavX8 --- src/org/traccar/protocol/ArknavX8ProtocolDecoder.java | 3 --- test/org/traccar/protocol/ArknavX8ProtocolDecoderTest.java | 6 ++++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/org/traccar/protocol/ArknavX8ProtocolDecoder.java b/src/org/traccar/protocol/ArknavX8ProtocolDecoder.java index 931cb1d14..c0a18311e 100644 --- a/src/org/traccar/protocol/ArknavX8ProtocolDecoder.java +++ b/src/org/traccar/protocol/ArknavX8ProtocolDecoder.java @@ -21,7 +21,6 @@ import org.traccar.DeviceSession; import org.traccar.helper.DateBuilder; import org.traccar.helper.Parser; import org.traccar.helper.PatternBuilder; -import org.traccar.helper.PatternUtil; import org.traccar.model.Position; import java.net.SocketAddress; @@ -57,8 +56,6 @@ public class ArknavX8ProtocolDecoder extends BaseProtocolDecoder { return null; } - PatternUtil.MatchResult r = PatternUtil.checkPattern(PATTERN.pattern(), sentence); - Parser parser = new Parser(PATTERN, sentence); if (!parser.matches()) { return null; diff --git a/test/org/traccar/protocol/ArknavX8ProtocolDecoderTest.java b/test/org/traccar/protocol/ArknavX8ProtocolDecoderTest.java index a28e71c64..c5e99f60b 100644 --- a/test/org/traccar/protocol/ArknavX8ProtocolDecoderTest.java +++ b/test/org/traccar/protocol/ArknavX8ProtocolDecoderTest.java @@ -10,6 +10,12 @@ public class ArknavX8ProtocolDecoderTest extends ProtocolTest { ArknavX8ProtocolDecoder decoder = new ArknavX8ProtocolDecoder(new ArknavX8Protocol()); + verifyNothing(decoder, text( + "351856045213782,241111")); + + verifyNothing(decoder, text( + "2R,090214235955,00,,00.04,03.76,001892024.9")); + verifyNothing(decoder, text( "351856040005407,240101")); -- cgit v1.2.3 From fd2fd71a522585ade8653618d95eb0f846f4bfbb Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Mon, 19 Sep 2016 23:33:42 +1200 Subject: Update regex pattern debugger --- src/org/traccar/helper/PatternUtil.java | 26 ++++++++++---------------- test/org/traccar/helper/PatternUtilTest.java | 2 +- 2 files changed, 11 insertions(+), 17 deletions(-) diff --git a/src/org/traccar/helper/PatternUtil.java b/src/org/traccar/helper/PatternUtil.java index 88c3f053b..f665eb30d 100644 --- a/src/org/traccar/helper/PatternUtil.java +++ b/src/org/traccar/helper/PatternUtil.java @@ -25,20 +25,13 @@ public final class PatternUtil { } public static class MatchResult { - private String pattern; - private String matched; - private String remaining; + private String patternMatch; + private String patternTail; + private String stringMatch; + private String stringTail; - public String getPattern() { - return this.pattern; - } - - public String getMatched() { - return this.matched; - } - - public String getRemaining() { - return this.remaining; + public String getPatternMatch() { + return patternMatch; } } @@ -50,9 +43,10 @@ public final class PatternUtil { try { Matcher matcher = Pattern.compile("(" + pattern.substring(0, i) + ").*").matcher(input); if (matcher.matches()) { - result.pattern = pattern.substring(0, i); - result.matched = matcher.group(1); - result.remaining = input.substring(matcher.group(1).length()); + result.patternMatch = pattern.substring(0, i); + result.patternTail = pattern.substring(i); + result.stringMatch = matcher.group(1); + result.stringTail = input.substring(matcher.group(1).length()); } } catch (PatternSyntaxException error) { Log.warning(error); diff --git a/test/org/traccar/helper/PatternUtilTest.java b/test/org/traccar/helper/PatternUtilTest.java index bb1349363..b6b05e88c 100644 --- a/test/org/traccar/helper/PatternUtilTest.java +++ b/test/org/traccar/helper/PatternUtilTest.java @@ -9,7 +9,7 @@ public class PatternUtilTest { @Test public void testCheckPattern() { - assertEquals("ab", PatternUtil.checkPattern("abc", "abd").getPattern()); + assertEquals("ab", PatternUtil.checkPattern("abc", "abd").getPatternMatch()); } -- cgit v1.2.3 From 5c32bb71b06c5f08506e9d1f49925c1d6b833faf Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Mon, 19 Sep 2016 23:33:59 +1200 Subject: Add new GoSafe format tests --- test/org/traccar/protocol/GoSafeProtocolDecoderTest.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/org/traccar/protocol/GoSafeProtocolDecoderTest.java b/test/org/traccar/protocol/GoSafeProtocolDecoderTest.java index cc710def0..fb0dec4fb 100644 --- a/test/org/traccar/protocol/GoSafeProtocolDecoderTest.java +++ b/test/org/traccar/protocol/GoSafeProtocolDecoderTest.java @@ -10,6 +10,15 @@ public class GoSafeProtocolDecoderTest extends ProtocolTest { GoSafeProtocolDecoder decoder = new GoSafeProtocolDecoder(new GoSafeProtocol()); + verifyNotNull(decoder, text( + "*GS56,356449063230915,052339180916,,SYS:G7S;V1.08;V1.2,GPS:V;4;N24.730006;E46.637816;14;0;630,GSM:;;420;4;5655;507A;-70,COT:75242;2-8-17,ADC:13.22;0.08,DTT:23004;;0;0;0;1#")); + + verifyNotNull(decoder, text( + "*GS56,356449063230915,052349180916,,SYS:G7S;V1.08;V1.2,GPS:V;6;N24.730384;E46.637620;47;56;607,GSM:;;420;4;5655;507A;-70,COT:75290;2-8-27,ADC:13.24;0.08,DTT:23004;;0;0;0;1#")); + + verifyNotNull(decoder, text( + "*GS56,356449063230915,052444180916,,SYS:G7S;V1.08;V1.2,GPS:V;6;N24.730384;E46.637620;47;56;607,GSM:;;420;4;5655;F319;-102,COT:75290;2-9-27,ADC:13.00;0.08,DTT:23004;;0;0;0;1$052449180916,,SYS:G7S;V1.08;V1.2,GPS:V;6;N24.730384;E46.637620;47;56;607,GSM:;;420;4;5655;F319;-102,COT:75290;2-9-27,ADC:13.13;0.08,DTT:23004;;0;0;0;1#")); + verifyPositions(decoder, text( "*GS16,356449062643845,141224290316,,SYS:G79;V1.13;V1.0.2,GPS:V;5;N24.694972;E46.680736;46;334;606;1.43,GSM:;;420;4;5655;4EB8;-57,COT:330034,ADC:13.31;3.83,DTT:27004;;0;0;0;1,OBD:064101000400000341057E04410304000341510104411001C203410F4B0341112904411F01AB0641010004000014490201FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03410D21,FUL:28260")); -- cgit v1.2.3 From c5ba4d655d3a0e314ab030a32057397a6a579ef0 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Tue, 20 Sep 2016 11:05:19 +1200 Subject: Update JP-KORJAR decoder with regex --- src/org/traccar/protocol/JpKorjarFrameDecoder.java | 2 +- src/org/traccar/protocol/JpKorjarProtocol.java | 2 +- .../traccar/protocol/JpKorjarProtocolDecoder.java | 103 ++++++++++----------- .../protocol/JpKorjarProtocolDecoderTest.java | 1 - 4 files changed, 49 insertions(+), 59 deletions(-) diff --git a/src/org/traccar/protocol/JpKorjarFrameDecoder.java b/src/org/traccar/protocol/JpKorjarFrameDecoder.java index 0b32a7f0b..33a1b3f36 100644 --- a/src/org/traccar/protocol/JpKorjarFrameDecoder.java +++ b/src/org/traccar/protocol/JpKorjarFrameDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 nyashh (nyashh@gmail.com) + * Copyright 2016 Nyash (nyashh@gmail.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/org/traccar/protocol/JpKorjarProtocol.java b/src/org/traccar/protocol/JpKorjarProtocol.java index e48e6ea21..c54994708 100644 --- a/src/org/traccar/protocol/JpKorjarProtocol.java +++ b/src/org/traccar/protocol/JpKorjarProtocol.java @@ -1,5 +1,5 @@ /* - * Copyright 2016 nyashh (nyashh@gmail.com) + * Copyright 2016 Nyash (nyashh@gmail.com) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/org/traccar/protocol/JpKorjarProtocolDecoder.java b/src/org/traccar/protocol/JpKorjarProtocolDecoder.java index 0cdc958c9..e0fe0678d 100644 --- a/src/org/traccar/protocol/JpKorjarProtocolDecoder.java +++ b/src/org/traccar/protocol/JpKorjarProtocolDecoder.java @@ -1,5 +1,6 @@ /* - * Copyright 2016 nyashh (nyashh@gmail.com) + * Copyright 2016 Nyash (nyashh@gmail.com) + * 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. @@ -19,9 +20,12 @@ import org.jboss.netty.channel.Channel; import org.traccar.BaseProtocolDecoder; import org.traccar.DeviceSession; import org.traccar.helper.DateBuilder; +import org.traccar.helper.Parser; +import org.traccar.helper.PatternBuilder; import org.traccar.model.Position; import java.net.SocketAddress; +import java.util.regex.Pattern; public class JpKorjarProtocolDecoder extends BaseProtocolDecoder { @@ -29,74 +33,61 @@ public class JpKorjarProtocolDecoder extends BaseProtocolDecoder { super(protocol); } - @Override - protected Object decode(Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { - - String line = (String) msg; + private static final Pattern PATTERN = new PatternBuilder() + .text("KORJAR.PL,") + .number("(d+),") // imei + .number("(dd)(dd)(dd)") // date + .number("(dd)(dd)(dd),") // time + .number("(d+.d+)([NS]),") // latitude + .number("(d+.d+)([EW]),") // longitude + .number("(d+.d+),") // speed + .number("(d+),") // course + .number("[FL]:(d+.d+)V,") // battery + .number("([01]) ") // valid + .number("(d+) ") // mcc + .number("(d+) ") // mnc + .number("(x+) ") // lac + .number("(x+),") // cid + .compile(); - String[] parts = line.split(","); + @Override + protected Object decode( + Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { - if (parts.length == 0) { + Parser parser = new Parser(PATTERN, (String) msg); + if (!parser.matches()) { return null; } - if (!parts[0].equals("KORJAR.PL")) { + Position position = new Position(); + position.setProtocol(getProtocolName()); + + DeviceSession deviceSession = getDeviceSession(channel, remoteAddress, parser.next()); + if (deviceSession == null) { return null; } + position.setDeviceId(deviceSession.getDeviceId()); - int year = Integer.parseInt(parts[2].substring(0, 2)); - int month = Integer.parseInt(parts[2].substring(2, 4)); - int day = Integer.parseInt(parts[2].substring(4, 6)); - int hour = Integer.parseInt(parts[2].substring(6, 8)); - int minute = Integer.parseInt(parts[2].substring(8, 10)); - int second = Integer.parseInt(parts[2].substring(10, 12)); - - double latitude = Double.parseDouble(parts[3].substring(0, - Math.max(0, parts[3].length() - 1))); - - double longitude = Double.parseDouble(parts[4].substring(0, - Math.max(0, parts[4].length() - 1))); - - double speed = Double.parseDouble(parts[5]); - double course = Double.parseDouble(parts[6]); - - String[] batteryParts = parts[7].split(":"); - - double batteryVoltage = Double.parseDouble(batteryParts[1].substring(0, - Math.max(0, batteryParts[1].length() - 1))); - - String[] codeParts = parts[8].split(" "); + DateBuilder dateBuilder = new DateBuilder() + .setDate(parser.nextInt(), parser.nextInt(), parser.nextInt()) + .setTime(parser.nextInt(), parser.nextInt(), parser.nextInt()); + position.setTime(dateBuilder.getDate()); - int gpsSignal = Integer.parseInt(codeParts[0]); //0 - low, 1 - high - int mcc = Integer.parseInt(codeParts[1]); - int mnc = Integer.parseInt(codeParts[2]); - int lac = Integer.parseInt(codeParts[3], 16); - int cid = Integer.parseInt(codeParts[4], 16); + position.setLatitude(parser.nextCoordinate(Parser.CoordinateFormat.DEG_HEM)); + position.setLongitude(parser.nextCoordinate(Parser.CoordinateFormat.DEG_HEM)); + position.setSpeed(parser.nextDouble()); + position.setCourse(parser.nextDouble()); - DateBuilder builder = new DateBuilder().setDate(year, month, day) - .setTime(hour, minute, second); + position.set(Position.KEY_BATTERY, parser.nextDouble()); - DeviceSession deviceSession = getDeviceSession(channel, remoteAddress, parts[1]); - if (deviceSession == null) { - return null; - } + position.setValid(parser.nextInt() == 1); - Position position = new Position(); - position.setProtocol(getProtocolName()); - position.setDeviceId(deviceSession.getDeviceId()); - position.setLatitude(latitude); - position.setLongitude(longitude); - position.setSpeed(speed); - position.setCourse(course); - position.set("signal", gpsSignal); - position.set(Position.KEY_POWER, batteryVoltage); - position.set(Position.KEY_MNC, mnc); - position.set(Position.KEY_MCC, mcc); - position.set(Position.KEY_LAC, lac); - position.set(Position.KEY_CID, cid); - position.setTime(builder.getDate()); - position.setValid(true); + position.set(Position.KEY_MCC, parser.nextInt()); + position.set(Position.KEY_MNC, parser.nextInt()); + position.set(Position.KEY_LAC, parser.nextInt(16)); + position.set(Position.KEY_CID, parser.nextInt(16)); return position; } + } diff --git a/test/org/traccar/protocol/JpKorjarProtocolDecoderTest.java b/test/org/traccar/protocol/JpKorjarProtocolDecoderTest.java index 44cdbe2f2..c64be017f 100644 --- a/test/org/traccar/protocol/JpKorjarProtocolDecoderTest.java +++ b/test/org/traccar/protocol/JpKorjarProtocolDecoderTest.java @@ -1,6 +1,5 @@ package org.traccar.protocol; - import org.junit.Test; import org.traccar.ProtocolTest; -- cgit v1.2.3 From c9d03c0d76c2e3fff489d99fa95a9a2bd6bd4641 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Tue, 20 Sep 2016 20:33:54 +1200 Subject: Update packaging script to access tools --- setup/package.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup/package.sh b/setup/package.sh index 5bbe4bbcf..438a7e6f2 100755 --- a/setup/package.sh +++ b/setup/package.sh @@ -34,7 +34,7 @@ prepare () { unzip yajsw-*.zip mv yajsw-*/ yajsw/ - ../tools/minify.sh + ../web/../tools/minify.sh innoextract innosetup-*.exe echo "If you got any errors here try isetup version 5.5.5 (or check supported versions using 'innoextract -v')" -- cgit v1.2.3 From eef6b358efce558528eb44df09bd736d48c71b62 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Tue, 20 Sep 2016 20:34:29 +1200 Subject: Change service name to lower case --- setup/package.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup/package.sh b/setup/package.sh index 438a7e6f2..582bb0849 100755 --- a/setup/package.sh +++ b/setup/package.sh @@ -67,7 +67,7 @@ copy_wrapper () { echo "wrapper.java.additional.1=-Dfile.encoding=UTF-8" >> out/conf/wrapper.conf echo "wrapper.logfile=logs/wrapper.log.YYYYMMDD" >> out/conf/wrapper.conf echo "wrapper.logfile.rollmode=DATE" >> out/conf/wrapper.conf - echo "wrapper.ntservice.name=Traccar" >> out/conf/wrapper.conf + echo "wrapper.ntservice.name=traccar" >> out/conf/wrapper.conf echo "wrapper.ntservice.displayname=Traccar" >> out/conf/wrapper.conf echo "wrapper.ntservice.description=Traccar" >> out/conf/wrapper.conf -- cgit v1.2.3 From b14c80aff0d102fa8189697ea70a53a3bd3f200e Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Tue, 20 Sep 2016 20:56:35 +1200 Subject: Remove macOS quarantine attributes --- setup/package.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/setup/package.sh b/setup/package.sh index 582bb0849..acbac434b 100755 --- a/setup/package.sh +++ b/setup/package.sh @@ -80,6 +80,11 @@ copy_wrapper () { cp yajsw/templates/* out/templates cp yajsw/wrapper*.jar out + + if which xattr &>/dev/null + then + xattr -dr com.apple.quarantine out + fi } copy_files () { -- cgit v1.2.3 From 411edf2fecc6f5d2cceba20f06958f729ebcca54 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Tue, 20 Sep 2016 21:21:06 +1200 Subject: Don't convert Castel OBD values --- src/org/traccar/helper/ObdDecoder.java | 14 +++++++------- src/org/traccar/protocol/CastelProtocolDecoder.java | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/org/traccar/helper/ObdDecoder.java b/src/org/traccar/helper/ObdDecoder.java index 8383a2b1a..3196c25e4 100644 --- a/src/org/traccar/helper/ObdDecoder.java +++ b/src/org/traccar/helper/ObdDecoder.java @@ -44,7 +44,7 @@ public final class ObdDecoder { case MODE_FREEZE_FRAME: return decodeData( Integer.parseInt(value.substring(0, 2), 16), - Integer.parseInt(value.substring(2), 16)); + Integer.parseInt(value.substring(2), 16), true); case MODE_CODES: return decodeCodes(value); default: @@ -84,22 +84,22 @@ public final class ObdDecoder { } } - public static Map.Entry decodeData(int pid, int value) { + public static Map.Entry decodeData(int pid, int value, boolean convert) { switch (pid) { case PID_ENGINE_LOAD: - return createEntry("engineLoad", value * 100 / 255); + return createEntry("engineLoad", convert ? value * 100 / 255 : value); case PID_COOLANT_TEMPERATURE: - return createEntry("coolantTemperature", value - 40); + return createEntry("coolantTemperature", convert ? value - 40 : value); case PID_ENGINE_RPM: - return createEntry(Position.KEY_RPM, value / 4); + return createEntry(Position.KEY_RPM, convert ? value / 4 : value); case PID_VEHICLE_SPEED: return createEntry(Position.KEY_OBD_SPEED, value); case PID_THROTTLE_POSITION: - return createEntry("throttle", value * 100 / 255); + return createEntry("throttle", convert ? value * 100 / 255 : value); case PID_MIL_DISTANCE: return createEntry("milDistance", value); case PID_FUEL_LEVEL: - return createEntry(Position.KEY_FUEL, value * 100 / 255); + return createEntry(Position.KEY_FUEL, convert ? value * 100 / 255 : value); case PID_DISTANCE_CLEARED: return createEntry("clearedDistance", value); default: diff --git a/src/org/traccar/protocol/CastelProtocolDecoder.java b/src/org/traccar/protocol/CastelProtocolDecoder.java index ee5fac5e6..47df3735c 100644 --- a/src/org/traccar/protocol/CastelProtocolDecoder.java +++ b/src/org/traccar/protocol/CastelProtocolDecoder.java @@ -167,7 +167,7 @@ public class CastelProtocolDecoder extends BaseProtocolDecoder { value = 0; break; } - position.add(ObdDecoder.decodeData(pids[i], value)); + position.add(ObdDecoder.decodeData(pids[i], value, false)); } } -- cgit v1.2.3 From e0a4ed2a60fd1a38a904fa7156afba6c0aee1cdb Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Tue, 20 Sep 2016 17:14:13 +0500 Subject: Add parameter "report.ignoreOdometer" --- src/org/traccar/reports/ReportUtils.java | 2 ++ src/org/traccar/reports/Summary.java | 14 ++++++++++++-- src/org/traccar/reports/Trips.java | 15 ++++++++++++--- 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/org/traccar/reports/ReportUtils.java b/src/org/traccar/reports/ReportUtils.java index 818920ad5..c973c3ff3 100644 --- a/src/org/traccar/reports/ReportUtils.java +++ b/src/org/traccar/reports/ReportUtils.java @@ -30,6 +30,8 @@ public final class ReportUtils { private ReportUtils() { } + public static final String IGNORE_ODOMETER = "report.ignoreOdometer"; + public static Collection getDeviceList(Collection deviceIds, Collection groupIds) { Collection result = new ArrayList<>(); result.addAll(deviceIds); diff --git a/src/org/traccar/reports/Summary.java b/src/org/traccar/reports/Summary.java index 44fb1dd4c..79e1a7c05 100644 --- a/src/org/traccar/reports/Summary.java +++ b/src/org/traccar/reports/Summary.java @@ -24,6 +24,7 @@ import javax.json.Json; import javax.json.JsonArrayBuilder; import org.traccar.Context; +import org.traccar.model.Device; import org.traccar.model.Position; import org.traccar.reports.model.SummaryReport; import org.traccar.web.CsvBuilder; @@ -35,9 +36,11 @@ public final class Summary { } private static SummaryReport calculateSummaryResult(long deviceId, Date from, Date to) throws SQLException { + boolean ignoreOdometerConfig = Context.getConfig().getBoolean(ReportUtils.IGNORE_ODOMETER); SummaryReport result = new SummaryReport(); + Device device = Context.getDeviceManager().getDeviceById(deviceId); result.setDeviceId(deviceId); - result.setDeviceName(Context.getDeviceManager().getDeviceById(deviceId).getName()); + result.setDeviceName(device.getName()); Collection positions = Context.getDataManager().getPositions(deviceId, from, to); if (positions != null && !positions.isEmpty()) { Position firstPosition = null; @@ -60,7 +63,14 @@ public final class Summary { speedSum += position.getSpeed(); result.setMaxSpeed(position.getSpeed()); } - result.setDistance(ReportUtils.calculateDistance(firstPosition, previousPosition)); + boolean ignoreOdometer = false; + if (device.getAttributes().containsKey(ReportUtils.IGNORE_ODOMETER)) { + ignoreOdometer = Boolean.parseBoolean(device.getAttributes() + .get(ReportUtils.IGNORE_ODOMETER).toString()); + } else { + ignoreOdometer = ignoreOdometerConfig; + } + result.setDistance(ReportUtils.calculateDistance(firstPosition, previousPosition, !ignoreOdometer)); result.setAverageSpeed(speedSum / positions.size()); } return result; diff --git a/src/org/traccar/reports/Trips.java b/src/org/traccar/reports/Trips.java index 2171d5f93..514c5d1c4 100644 --- a/src/org/traccar/reports/Trips.java +++ b/src/org/traccar/reports/Trips.java @@ -25,6 +25,7 @@ import javax.json.Json; import javax.json.JsonArrayBuilder; import org.traccar.Context; +import org.traccar.model.Device; import org.traccar.model.Position; import org.traccar.reports.model.TripReport; import org.traccar.web.CsvBuilder; @@ -36,6 +37,7 @@ public final class Trips { } private static TripReport calculateTrip(ArrayList positions, int startIndex, int endIndex) { + boolean ignoreOdometerConfig = Context.getConfig().getBoolean(ReportUtils.IGNORE_ODOMETER); Position startTrip = positions.get(startIndex); Position endTrip = positions.get(endIndex); @@ -53,15 +55,22 @@ public final class Trips { long tripDuration = endTrip.getFixTime().getTime() - positions.get(startIndex).getFixTime().getTime(); long deviceId = startTrip.getDeviceId(); trip.setDeviceId(deviceId); - String deviceName = Context.getDeviceManager().getDeviceById(deviceId).getName(); - trip.setDeviceName(deviceName); + Device device = Context.getDeviceManager().getDeviceById(deviceId); + trip.setDeviceName(device.getName()); trip.setStartPositionId(startTrip.getId()); trip.setStartTime(startTrip.getFixTime()); trip.setStartAddress(startTrip.getAddress()); trip.setEndPositionId(endTrip.getId()); trip.setEndTime(endTrip.getFixTime()); trip.setEndAddress(endTrip.getAddress()); - trip.setDistance(ReportUtils.calculateDistance(startTrip, endTrip)); + boolean ignoreOdometer = false; + if (device.getAttributes().containsKey(ReportUtils.IGNORE_ODOMETER)) { + ignoreOdometer = Boolean.parseBoolean(device.getAttributes() + .get(ReportUtils.IGNORE_ODOMETER).toString()); + } else { + ignoreOdometer = ignoreOdometerConfig; + } + trip.setDistance(ReportUtils.calculateDistance(startTrip, endTrip, !ignoreOdometer)); trip.setDuration(tripDuration); trip.setAverageSpeed(speedSum / (endIndex - startIndex)); trip.setMaxSpeed(speedMax); -- cgit v1.2.3 From 277a28cd11a60246de96bcfb7be75e177f483809 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Wed, 21 Sep 2016 05:11:01 +1200 Subject: Read event from OIGO messages --- src/org/traccar/protocol/OigoProtocolDecoder.java | 4 +++- test/org/traccar/protocol/OigoProtocolDecoderTest.java | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/org/traccar/protocol/OigoProtocolDecoder.java b/src/org/traccar/protocol/OigoProtocolDecoder.java index 799f47ea3..bbea38183 100644 --- a/src/org/traccar/protocol/OigoProtocolDecoder.java +++ b/src/org/traccar/protocol/OigoProtocolDecoder.java @@ -54,7 +54,7 @@ public class OigoProtocolDecoder extends BaseProtocolDecoder { DeviceSession deviceSession; switch (BitUtil.to(tag, 3)) { case 0: - String imei = ChannelBuffers.hexDump(buf.readBytes(9)).substring(1, 1 + 15); + String imei = ChannelBuffers.hexDump(buf.readBytes(8)).substring(1); deviceSession = getDeviceSession(channel, remoteAddress, imei); break; case 1: @@ -75,6 +75,8 @@ public class OigoProtocolDecoder extends BaseProtocolDecoder { position.setProtocol(getProtocolName()); position.setDeviceId(deviceSession.getDeviceId()); + position.set(Position.KEY_EVENT, buf.readUnsignedByte()); + int mask = buf.readInt(); if (BitUtil.check(mask, 0)) { diff --git a/test/org/traccar/protocol/OigoProtocolDecoderTest.java b/test/org/traccar/protocol/OigoProtocolDecoderTest.java index b75f3162b..14c34ae7c 100644 --- a/test/org/traccar/protocol/OigoProtocolDecoderTest.java +++ b/test/org/traccar/protocol/OigoProtocolDecoderTest.java @@ -16,6 +16,9 @@ public class OigoProtocolDecoderTest extends ProtocolTest { verifyPosition(decoder, binary( "7e004200000014631000258257000000ffff02d1690e00051f690e00051f0696dbd204bdfde31a070000b307100f35c0106305f500000000010908010402200104ffff8001")); + verifyPosition(decoder, binary( + "7e004200000014631000258257000000ffff0d82691300001669130000160696dbd804bdfdbb1a0800000007101035a2106905f500000000010908010402200104ffff8001")); + } } -- cgit v1.2.3 From de3171940f14fe6d559780027da3efd35bd4ab1c Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Wed, 21 Sep 2016 06:27:12 +1200 Subject: Implement Aplicom E protocol --- .../traccar/protocol/AplicomProtocolDecoder.java | 146 +++++++++++++++------ .../protocol/AplicomProtocolDecoderTest.java | 17 ++- 2 files changed, 125 insertions(+), 38 deletions(-) diff --git a/src/org/traccar/protocol/AplicomProtocolDecoder.java b/src/org/traccar/protocol/AplicomProtocolDecoder.java index 23397b51c..b7619b38a 100644 --- a/src/org/traccar/protocol/AplicomProtocolDecoder.java +++ b/src/org/traccar/protocol/AplicomProtocolDecoder.java @@ -1,5 +1,5 @@ /* - * Copyright 2013 - 2015 Anton Tananaev (anton.tananaev@gmail.com) + * Copyright 2013 - 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,6 +27,7 @@ import org.traccar.helper.UnitsConverter; import org.traccar.model.Position; import java.net.SocketAddress; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Date; @@ -75,7 +76,8 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder { return unitId; } - private static final int DEFAULT_SELECTOR = 0x0002FC; + private static final int DEFAULT_SELECTOR_D = 0x0002FC; + private static final int DEFAULT_SELECTOR_E = 0x007ffc; private static final int EVENT_DATA = 119; @@ -191,44 +193,12 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder { } } - @Override - protected Object decode(Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { - - ChannelBuffer buf = (ChannelBuffer) msg; - - buf.readUnsignedByte(); // marker - int version = buf.readUnsignedByte(); - - String imei; - if ((version & 0x80) != 0) { - imei = String.valueOf((buf.readUnsignedInt() << (3 * 8)) | buf.readUnsignedMedium()); - } else { - imei = String.valueOf(imeiFromUnitId(buf.readUnsignedMedium())); - } - - buf.readUnsignedShort(); // length - - int selector = DEFAULT_SELECTOR; - if ((version & 0x40) != 0) { - selector = buf.readUnsignedMedium(); - } - - Position position = new Position(); - position.setProtocol(getProtocolName()); - DeviceSession deviceSession = getDeviceSession(channel, remoteAddress, imei); - if (deviceSession == null) { - return null; - } - position.setDeviceId(deviceSession.getDeviceId()); - - int event = buf.readUnsignedByte(); - position.set(Position.KEY_EVENT, event); - position.set("eventInfo", buf.readUnsignedByte()); + private void decodeD(Position position, ChannelBuffer buf, int selector, int event) { if ((selector & 0x0008) != 0) { position.setValid((buf.readUnsignedByte() & 0x40) != 0); } else { - return null; // no location data + getLastLocation(position, null); } if ((selector & 0x0004) != 0) { @@ -318,9 +288,111 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder { if (Context.getConfig().getBoolean(getProtocolName() + ".can") && buf.readable() && (selector & 0x1000) != 0 && event == EVENT_DATA) { - decodeCanData(buf, position); } + } + + private void decodeE(Position position, ChannelBuffer buf, int selector) { + + if ((selector & 0x0008) != 0) { + position.set("tachographEvent", buf.readUnsignedShort()); + } + + if ((selector & 0x0004) != 0) { + getLastLocation(position, new Date(buf.readUnsignedInt() * 1000)); + } else { + getLastLocation(position, null); + } + + if ((selector & 0x0010) != 0) { + String time = + buf.readUnsignedByte() + "s " + buf.readUnsignedByte() + "m " + buf.readUnsignedByte() + "h " + + buf.readUnsignedByte() + "M " + buf.readUnsignedByte() + "D " + buf.readUnsignedByte() + "Y " + + buf.readByte() + "m " + buf.readByte() + "h"; + position.set("tachographTime", time); + } + + position.set("workState", buf.readUnsignedByte()); + position.set("driver1State", buf.readUnsignedByte()); + position.set("driver2State", buf.readUnsignedByte()); + + if ((selector & 0x0020) != 0) { + position.set("tachographStatus", buf.readUnsignedByte()); + } + + if ((selector & 0x0040) != 0) { + position.set(Position.KEY_OBD_SPEED, buf.readUnsignedShort() / 256.0); + } + + if ((selector & 0x0080) != 0) { + position.set(Position.KEY_OBD_ODOMETER, buf.readUnsignedInt() * 5); + } + + if ((selector & 0x0100) != 0) { + position.set(Position.KEY_TRIP_ODOMETER, buf.readUnsignedInt() * 5); + } + + if ((selector & 0x8000) != 0) { + position.set("kFactor", buf.readUnsignedShort() * 0.001 + " pulses/m"); + } + + if ((selector & 0x0200) != 0) { + position.set(Position.KEY_RPM, buf.readUnsignedShort() * 0.125); + } + + if ((selector & 0x0400) != 0) { + position.set("extraInfo", buf.readUnsignedShort()); + } + + if ((selector & 0x0800) != 0) { + position.set(Position.KEY_VIN, buf.readBytes(18).toString(StandardCharsets.US_ASCII).trim()); + } + } + + @Override + protected Object decode(Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { + + ChannelBuffer buf = (ChannelBuffer) msg; + + char protocol = (char) buf.readByte(); + int version = buf.readUnsignedByte(); + + String imei; + if ((version & 0x80) != 0) { + imei = String.valueOf((buf.readUnsignedInt() << (3 * 8)) | buf.readUnsignedMedium()); + } else { + imei = String.valueOf(imeiFromUnitId(buf.readUnsignedMedium())); + } + + buf.readUnsignedShort(); // length + + int selector = DEFAULT_SELECTOR_D; + if (protocol == 'E') { + selector = DEFAULT_SELECTOR_E; + } + if ((version & 0x40) != 0) { + selector = buf.readUnsignedMedium(); + } + + Position position = new Position(); + position.setProtocol(getProtocolName()); + DeviceSession deviceSession = getDeviceSession(channel, remoteAddress, imei); + if (deviceSession == null) { + return null; + } + position.setDeviceId(deviceSession.getDeviceId()); + + int event = buf.readUnsignedByte(); + position.set(Position.KEY_EVENT, event); + position.set("eventInfo", buf.readUnsignedByte()); + + if (protocol == 'D') { + decodeD(position, buf, selector, event); + } else if (protocol == 'E') { + decodeE(position, buf, selector); + } else { + return null; + } return position; } diff --git a/test/org/traccar/protocol/AplicomProtocolDecoderTest.java b/test/org/traccar/protocol/AplicomProtocolDecoderTest.java index 26844994e..d6a29c6dd 100644 --- a/test/org/traccar/protocol/AplicomProtocolDecoderTest.java +++ b/test/org/traccar/protocol/AplicomProtocolDecoderTest.java @@ -10,6 +10,21 @@ public class AplicomProtocolDecoderTest extends ProtocolTest { AplicomProtocolDecoder decoder = new AplicomProtocolDecoder(new AplicomProtocol()); + verifyAttributes(decoder, binary( + "45c20145931876ffb2007100ffff6d00000057c6dd1970230d087b1f7d7f0000d0c1000000003580000035801f40ffff5001574442393036363035533132333435363700014142432d333435202020202020000000000000000000000000000000000000000000000001123130343632343639373030303030303100000000")); + + verifyAttributes(decoder, binary( + "45c20145931876ffb2007100ffff6d00000057c6dd9170250d087b1f7d7f0000d0c1000000003580000035801f40ffff5001574442393036363035533132333435363700014142432d333435202020202020000000000000000000000000000000000000000000000001123130343632343639373030303030303100000000")); + + verifyAttributes(decoder, binary( + "45c20145931876ffb2007100ffff6d00000057c6de0970270d087b1f7d7f0000d0c1000000003580000035801f40ffff5001574442393036363035533132333435363700014142432d333435202020202020000000000000000000000000000000000000000000000001123130343632343639373030303030303100000000")); + + verifyNothing(decoder, binary( + "48c10144b9de54e6b2008700205f710a57d23ec957d23b8d00000000300d0106ff00000000000000000000000000000000000000000000000000000000000000010a141e28323c46505a646e7801000f020104ff000000000000000000010102000f020104ff000000000000000000010103000f020104ff000000000000000000010105000f020104ff0000000000000000000101")); + + verifyAttributes(decoder, binary( + "44c3014645e8ecff3c00ea03ffffbc00f457d68a6557d68a6303bb55fa018843da1100009881000000000000000000000000000000000000000000000000000000000000000000000000000000ff0056007600000000000000014542016d0001010095070e14014645e8ecff3c57d68a6403bb55fa018843dac0010d14ff050102030405060708090a0b0c0d0e0f10112a01010730343f3c1ff5cf01020700007d007d23010103022f2e01060c67452301efcdab8967452301010b10000000007d007d007d7dffffffffffff010a2400000000000000010000000000000000ffffffffffffffff00010001ffff00000000ffff010c02fec6")); + verifyPosition(decoder, binary( "44c3014645e8e91b66002300a21f0b01f056d3e62856d3e626031f845f00c6ee440800000000000000000017bd1cb30000")); @@ -19,7 +34,7 @@ public class AplicomProtocolDecoderTest extends ProtocolTest { verifyPosition(decoder, binary( "44c3014645e8e91b66001f00221f0b01f456ba1e0d56ba1e0b031f842200c6ef550c000000000017bd1cb30004")); - verifyNothing(decoder, binary( + verifyAttributes(decoder, binary( "44c3014645e8e9bada003e03fff7070055a4f24200000081000000000000000000000000000000000000000000000000000000000000000000000000000000ff00000001000000000000000044c3014645e8e9bada003e03fff77bff55a4f24300000081000000000000000000000000000000000000000000000000000000000000000000000000000000ff00300002000000000000000044c3014645e8e9bada003e03fff7690655a4f24500000081000000000000000000000000000000000000000000000000000000000000000000000000000000ff003000030000000000000000")); verifyPosition(decoder, binary( -- cgit v1.2.3 From 208b66427643d50d2a5fd0dd29b73abe086ce9db Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Wed, 21 Sep 2016 06:29:49 +1200 Subject: Fix some style issues --- src/org/traccar/protocol/AplicomProtocolDecoder.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/org/traccar/protocol/AplicomProtocolDecoder.java b/src/org/traccar/protocol/AplicomProtocolDecoder.java index b7619b38a..abd30ee45 100644 --- a/src/org/traccar/protocol/AplicomProtocolDecoder.java +++ b/src/org/traccar/protocol/AplicomProtocolDecoder.java @@ -76,7 +76,7 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder { return unitId; } - private static final int DEFAULT_SELECTOR_D = 0x0002FC; + private static final int DEFAULT_SELECTOR_D = 0x0002fC; private static final int DEFAULT_SELECTOR_E = 0x007ffc; private static final int EVENT_DATA = 119; @@ -305,10 +305,9 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder { } if ((selector & 0x0010) != 0) { - String time = - buf.readUnsignedByte() + "s " + buf.readUnsignedByte() + "m " + buf.readUnsignedByte() + "h " + - buf.readUnsignedByte() + "M " + buf.readUnsignedByte() + "D " + buf.readUnsignedByte() + "Y " + - buf.readByte() + "m " + buf.readByte() + "h"; + String time = buf.readUnsignedByte() + "s " + buf.readUnsignedByte() + "m " + buf.readUnsignedByte() + "h " + + buf.readUnsignedByte() + "M " + buf.readUnsignedByte() + "D " + buf.readUnsignedByte() + "Y " + + buf.readByte() + "m " + buf.readByte() + "h"; position.set("tachographTime", time); } -- cgit v1.2.3 From b298aef26f01154e84e9a00b29ff62921484a220 Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Wed, 21 Sep 2016 09:29:42 +0500 Subject: - Add two functions to lookup attributes from device to server and from device to config - Removed constant --- src/org/traccar/database/DeviceManager.java | 19 ++++++++++++++++--- src/org/traccar/events/OverspeedEventHandler.java | 3 ++- src/org/traccar/reports/ReportUtils.java | 2 -- src/org/traccar/reports/Summary.java | 14 +++++--------- src/org/traccar/reports/Trips.java | 14 +++++--------- 5 files changed, 28 insertions(+), 24 deletions(-) diff --git a/src/org/traccar/database/DeviceManager.java b/src/org/traccar/database/DeviceManager.java index 5f68df831..21e370051 100644 --- a/src/org/traccar/database/DeviceManager.java +++ b/src/org/traccar/database/DeviceManager.java @@ -316,7 +316,16 @@ public class DeviceManager implements IdentityManager { groupsById.remove(groupId); } - public String lookupAttribute(long deviceId, String attributeName) { + public String lookupServerAttribute(long deviceId, String attributeName) { + return lookupAttribute(deviceId, attributeName, true); + } + + public String lookupConfigAttribute(long deviceId, String attributeName) { + return lookupAttribute(deviceId, attributeName, false); + } + + + private String lookupAttribute(long deviceId, String attributeName, boolean lookupServer) { String result = null; Device device = getDeviceById(deviceId); if (device != null) { @@ -338,8 +347,12 @@ public class DeviceManager implements IdentityManager { } } if (result == null) { - Server server = Context.getPermissionsManager().getServer(); - result = (String) server.getAttributes().get(attributeName); + if (lookupServer) { + Server server = Context.getPermissionsManager().getServer(); + result = (String) server.getAttributes().get(attributeName); + } else { + result = Context.getConfig().getString(attributeName); + } } } return result; diff --git a/src/org/traccar/events/OverspeedEventHandler.java b/src/org/traccar/events/OverspeedEventHandler.java index 302fa87cd..a32dfae7e 100644 --- a/src/org/traccar/events/OverspeedEventHandler.java +++ b/src/org/traccar/events/OverspeedEventHandler.java @@ -48,7 +48,8 @@ public class OverspeedEventHandler extends BaseEventHandler { Collection events = new ArrayList<>(); double speed = position.getSpeed(); double speedLimit = 0; - String speedLimitAttribute = Context.getDeviceManager().lookupAttribute(device.getId(), ATTRIBUTE_SPEED_LIMIT); + String speedLimitAttribute = Context.getDeviceManager() + .lookupServerAttribute(device.getId(), ATTRIBUTE_SPEED_LIMIT); if (speedLimitAttribute != null) { speedLimit = Double.parseDouble(speedLimitAttribute); } diff --git a/src/org/traccar/reports/ReportUtils.java b/src/org/traccar/reports/ReportUtils.java index c973c3ff3..818920ad5 100644 --- a/src/org/traccar/reports/ReportUtils.java +++ b/src/org/traccar/reports/ReportUtils.java @@ -30,8 +30,6 @@ public final class ReportUtils { private ReportUtils() { } - public static final String IGNORE_ODOMETER = "report.ignoreOdometer"; - public static Collection getDeviceList(Collection deviceIds, Collection groupIds) { Collection result = new ArrayList<>(); result.addAll(deviceIds); diff --git a/src/org/traccar/reports/Summary.java b/src/org/traccar/reports/Summary.java index 79e1a7c05..763ddb600 100644 --- a/src/org/traccar/reports/Summary.java +++ b/src/org/traccar/reports/Summary.java @@ -24,7 +24,6 @@ import javax.json.Json; import javax.json.JsonArrayBuilder; import org.traccar.Context; -import org.traccar.model.Device; import org.traccar.model.Position; import org.traccar.reports.model.SummaryReport; import org.traccar.web.CsvBuilder; @@ -36,11 +35,9 @@ public final class Summary { } private static SummaryReport calculateSummaryResult(long deviceId, Date from, Date to) throws SQLException { - boolean ignoreOdometerConfig = Context.getConfig().getBoolean(ReportUtils.IGNORE_ODOMETER); SummaryReport result = new SummaryReport(); - Device device = Context.getDeviceManager().getDeviceById(deviceId); result.setDeviceId(deviceId); - result.setDeviceName(device.getName()); + result.setDeviceName(Context.getDeviceManager().getDeviceById(deviceId).getName()); Collection positions = Context.getDataManager().getPositions(deviceId, from, to); if (positions != null && !positions.isEmpty()) { Position firstPosition = null; @@ -64,11 +61,10 @@ public final class Summary { result.setMaxSpeed(position.getSpeed()); } boolean ignoreOdometer = false; - if (device.getAttributes().containsKey(ReportUtils.IGNORE_ODOMETER)) { - ignoreOdometer = Boolean.parseBoolean(device.getAttributes() - .get(ReportUtils.IGNORE_ODOMETER).toString()); - } else { - ignoreOdometer = ignoreOdometerConfig; + String ignoreOdometerAttribute = Context.getDeviceManager() + .lookupConfigAttribute(deviceId, "report.ignoreOdometer"); + if (ignoreOdometerAttribute != null) { + ignoreOdometer = Boolean.parseBoolean(ignoreOdometerAttribute); } result.setDistance(ReportUtils.calculateDistance(firstPosition, previousPosition, !ignoreOdometer)); result.setAverageSpeed(speedSum / positions.size()); diff --git a/src/org/traccar/reports/Trips.java b/src/org/traccar/reports/Trips.java index 514c5d1c4..c4a7f2c8f 100644 --- a/src/org/traccar/reports/Trips.java +++ b/src/org/traccar/reports/Trips.java @@ -25,7 +25,6 @@ import javax.json.Json; import javax.json.JsonArrayBuilder; import org.traccar.Context; -import org.traccar.model.Device; import org.traccar.model.Position; import org.traccar.reports.model.TripReport; import org.traccar.web.CsvBuilder; @@ -37,7 +36,6 @@ public final class Trips { } private static TripReport calculateTrip(ArrayList positions, int startIndex, int endIndex) { - boolean ignoreOdometerConfig = Context.getConfig().getBoolean(ReportUtils.IGNORE_ODOMETER); Position startTrip = positions.get(startIndex); Position endTrip = positions.get(endIndex); @@ -55,8 +53,7 @@ public final class Trips { long tripDuration = endTrip.getFixTime().getTime() - positions.get(startIndex).getFixTime().getTime(); long deviceId = startTrip.getDeviceId(); trip.setDeviceId(deviceId); - Device device = Context.getDeviceManager().getDeviceById(deviceId); - trip.setDeviceName(device.getName()); + trip.setDeviceName(Context.getDeviceManager().getDeviceById(deviceId).getName()); trip.setStartPositionId(startTrip.getId()); trip.setStartTime(startTrip.getFixTime()); trip.setStartAddress(startTrip.getAddress()); @@ -64,11 +61,10 @@ public final class Trips { trip.setEndTime(endTrip.getFixTime()); trip.setEndAddress(endTrip.getAddress()); boolean ignoreOdometer = false; - if (device.getAttributes().containsKey(ReportUtils.IGNORE_ODOMETER)) { - ignoreOdometer = Boolean.parseBoolean(device.getAttributes() - .get(ReportUtils.IGNORE_ODOMETER).toString()); - } else { - ignoreOdometer = ignoreOdometerConfig; + String ignoreOdometerAttribute = Context.getDeviceManager() + .lookupConfigAttribute(deviceId, "report.ignoreOdometer"); + if (ignoreOdometerAttribute != null) { + ignoreOdometer = Boolean.parseBoolean(ignoreOdometerAttribute); } trip.setDistance(ReportUtils.calculateDistance(startTrip, endTrip, !ignoreOdometer)); trip.setDuration(tripDuration); -- cgit v1.2.3 From d0ce4c7e8069fc4663e2d04f942d8f8989be2998 Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Wed, 21 Sep 2016 09:37:45 +0500 Subject: PMD fix --- src/org/traccar/web/CsvBuilder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/org/traccar/web/CsvBuilder.java b/src/org/traccar/web/CsvBuilder.java index a25b839a9..f59aabc7f 100644 --- a/src/org/traccar/web/CsvBuilder.java +++ b/src/org/traccar/web/CsvBuilder.java @@ -37,10 +37,10 @@ public class CsvBuilder { SortedSet methods = new TreeSet(new Comparator() { @Override public int compare(Method m1, Method m2) { - if (m1.getName().equals("getAttributes") & !m1.getName().equals(m2.getName())) { + if (m1.getName().equals("getAttributes") && !m1.getName().equals(m2.getName())) { return 1; } - if (m2.getName().equals("getAttributes") & !m1.getName().equals(m2.getName())) { + if (m2.getName().equals("getAttributes") && !m1.getName().equals(m2.getName())) { return -1; } return m1.getName().compareTo(m2.getName()); -- cgit v1.2.3 From 19b17695867e00861c719292aad7ae48f33a8eeb Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Wed, 21 Sep 2016 19:31:39 +1200 Subject: Implement cGuard communication protocol --- debug.xml | 1 + src/org/traccar/model/Position.java | 1 + src/org/traccar/protocol/CguardProtocol.java | 47 +++++++++++ .../traccar/protocol/CguardProtocolDecoder.java | 91 ++++++++++++++++++++++ .../protocol/CguardProtocolDecoderTest.java | 54 +++++++++++++ 5 files changed, 194 insertions(+) create mode 100644 src/org/traccar/protocol/CguardProtocol.java create mode 100644 src/org/traccar/protocol/CguardProtocolDecoder.java create mode 100644 test/org/traccar/protocol/CguardProtocolDecoderTest.java diff --git a/debug.xml b/debug.xml index 44f4f2c7f..5de42c027 100644 --- a/debug.xml +++ b/debug.xml @@ -457,5 +457,6 @@ 5120 5121 5122 + 5123 diff --git a/src/org/traccar/model/Position.java b/src/org/traccar/model/Position.java index 710dd1e83..c1058aef9 100644 --- a/src/org/traccar/model/Position.java +++ b/src/org/traccar/model/Position.java @@ -57,6 +57,7 @@ public class Position extends Message { 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_ACCURACY = "accuracy"; public static final String KEY_OBD_SPEED = "obdSpeed"; public static final String KEY_OBD_ODOMETER = "obdOdometer"; diff --git a/src/org/traccar/protocol/CguardProtocol.java b/src/org/traccar/protocol/CguardProtocol.java new file mode 100644 index 000000000..1e6d212c8 --- /dev/null +++ b/src/org/traccar/protocol/CguardProtocol.java @@ -0,0 +1,47 @@ +/* + * 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.LineBasedFrameDecoder; +import org.jboss.netty.handler.codec.string.StringDecoder; +import org.jboss.netty.handler.codec.string.StringEncoder; +import org.traccar.BaseProtocol; +import org.traccar.TrackerServer; + +import java.util.List; + +public class CguardProtocol extends BaseProtocol { + + public CguardProtocol() { + super("cguard"); + } + + @Override + public void initTrackerServers(List serverList) { + serverList.add(new TrackerServer(new ServerBootstrap(), getName()) { + @Override + protected void addSpecificHandlers(ChannelPipeline pipeline) { + pipeline.addLast("frameDecoder", new LineBasedFrameDecoder(1024)); + pipeline.addLast("stringDecoder", new StringDecoder()); + pipeline.addLast("stringEncoder", new StringEncoder()); + pipeline.addLast("objectDecoder", new CguardProtocolDecoder(CguardProtocol.this)); + } + }); + } + +} diff --git a/src/org/traccar/protocol/CguardProtocolDecoder.java b/src/org/traccar/protocol/CguardProtocolDecoder.java new file mode 100644 index 000000000..1646363e5 --- /dev/null +++ b/src/org/traccar/protocol/CguardProtocolDecoder.java @@ -0,0 +1,91 @@ +/* + * 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.channel.Channel; +import org.traccar.BaseProtocolDecoder; +import org.traccar.DeviceSession; +import org.traccar.helper.DateBuilder; +import org.traccar.helper.Parser; +import org.traccar.helper.PatternBuilder; +import org.traccar.helper.UnitsConverter; +import org.traccar.model.Position; + +import java.net.SocketAddress; +import java.util.regex.Pattern; + +public class CguardProtocolDecoder extends BaseProtocolDecoder { + + public CguardProtocolDecoder(CguardProtocol protocol) { + super(protocol); + } + + private static final Pattern PATTERN = new PatternBuilder() + .text("NV:") + .number("(dd)(dd)(dd) ") // date + .number("(dd)(dd)(dd):") // time + .number("(-?d+.d+):") // longitude + .number("(-?d+.d+):") // latitude + .number("(d+.?d*):") // speed + .number("(?:NAN|(d+.?d*)):") // accuracy + .number("(?:NAN|(d+.?d*)):") // course + .number("(?:NAN|(d+.?d*))") // altitude + .compile(); + + @Override + protected Object decode( + Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { + + String sentence = (String) msg; + + if (sentence.startsWith("ID:") || sentence.startsWith("IDRO:")) { + getDeviceSession(channel, remoteAddress, sentence.substring(sentence.indexOf(':') + 1)); + return null; + } + + DeviceSession deviceSession = getDeviceSession(channel, remoteAddress); + if (deviceSession == null) { + return null; + } + + Parser parser = new Parser(PATTERN, (String) msg); + if (!parser.matches()) { + return null; + } + + Position position = new Position(); + position.setProtocol(getProtocolName()); + position.setDeviceId(deviceSession.getDeviceId()); + + DateBuilder dateBuilder = new DateBuilder() + .setDate(parser.nextInt(), parser.nextInt(), parser.nextInt()) + .setTime(parser.nextInt(), parser.nextInt(), parser.nextInt()); + position.setTime(dateBuilder.getDate()); + + position.setValid(true); + position.setLatitude(parser.nextDouble()); + position.setLongitude(parser.nextDouble()); + position.setSpeed(UnitsConverter.knotsFromKph(parser.nextDouble())); + + position.set(Position.KEY_ACCURACY, parser.nextDouble()); + + position.setCourse(parser.nextDouble()); + position.setAltitude(parser.nextDouble()); + + return position; + } + +} diff --git a/test/org/traccar/protocol/CguardProtocolDecoderTest.java b/test/org/traccar/protocol/CguardProtocolDecoderTest.java new file mode 100644 index 000000000..49d037f8f --- /dev/null +++ b/test/org/traccar/protocol/CguardProtocolDecoderTest.java @@ -0,0 +1,54 @@ +package org.traccar.protocol; + +import org.junit.Test; +import org.traccar.ProtocolTest; + +public class CguardProtocolDecoderTest extends ProtocolTest { + + @Test + public void testDecode() throws Exception { + + CguardProtocolDecoder decoder = new CguardProtocolDecoder(new CguardProtocol()); + + verifyNothing(decoder, text( + "IDRO:354868050655283")); + + verifyPosition(decoder, text( + "NV:160711 044023:54.342907:48.582590:0:NAN:0:110.1")); + + verifyPosition(decoder, text( + "NV:160711 044023:54.342907:-148.582590:0:NAN:0:110.1")); + + verifyNothing(decoder, text( + "BC:160711 044023:CSQ1:48:NSQ1:7:NSQ2:1:BAT1:98:PWR1:11.7:CLG1:NAN")); + + verifyNothing(decoder, text( + "BC:160711 044524:CSQ1:61:NSQ1:18:BAT1:98:PWR1:11.7:CLG1:NAN")); + + verifyNothing(decoder, text( + "VERSION:3.3")); + + verifyPosition(decoder, text( + "NV:160420 101902:55.799425:37.674033:0.94:NAN:213.59:156.6")); + + verifyNothing(decoder, text( + "BC:160628 081024:CSQ1:32:NSQ1:10:BAT1:100")); + + verifyNothing(decoder, text( + "BC:160628 081033:NSQ2:0")); + + verifyPosition(decoder, text( + "NV:160630 151537:55.799913:37.674267:0.7:NAN:10.21:174.9")); + + verifyNothing(decoder, text( + "BC:160630 153316:BAT1:76")); + + verifyNothing(decoder, text( + "BC:160630 153543:NSQ2:0")); + + verifyNothing(decoder, text( + "PING")); + + } + +} -- cgit v1.2.3 From 9cc862ea2c3fed6eb69dea8e6f8a646fc7995dbe Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Wed, 21 Sep 2016 12:32:44 +0500 Subject: Fix groups cleanup request on some MySQL 5.7.x installations --- schema/changelog-3.7.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/schema/changelog-3.7.xml b/schema/changelog-3.7.xml index d82dbe91b..1bae2aaff 100644 --- a/schema/changelog-3.7.xml +++ b/schema/changelog-3.7.xml @@ -17,7 +17,7 @@ - groupid NOT IN (SELECT id FROM (SELECT id FROM groups) AS groups_ids) + groupid NOT IN (SELECT id FROM (SELECT DISTINCT id FROM groups) AS groups_ids) -- cgit v1.2.3 From fbe0190e65ee0646f6521cfca31ecfa3efa10472 Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Wed, 21 Sep 2016 14:10:58 +0500 Subject: Implement lookup attribute helpers for primitives --- src/org/traccar/database/DeviceManager.java | 79 +++++++++++++++++++++-- src/org/traccar/events/OverspeedEventHandler.java | 8 +-- src/org/traccar/reports/Summary.java | 10 +-- src/org/traccar/reports/Trips.java | 10 +-- 4 files changed, 83 insertions(+), 24 deletions(-) diff --git a/src/org/traccar/database/DeviceManager.java b/src/org/traccar/database/DeviceManager.java index 21e370051..f32c7edd2 100644 --- a/src/org/traccar/database/DeviceManager.java +++ b/src/org/traccar/database/DeviceManager.java @@ -316,14 +316,85 @@ public class DeviceManager implements IdentityManager { groupsById.remove(groupId); } - public String lookupServerAttribute(long deviceId, String attributeName) { - return lookupAttribute(deviceId, attributeName, true); + public boolean lookupServerBoolean(long deviceId, String attributeName, boolean defaultValue) { + String result = lookupAttribute(deviceId, attributeName, true); + if (result != null) { + return Boolean.parseBoolean(result); + } + return defaultValue; } - public String lookupConfigAttribute(long deviceId, String attributeName) { - return lookupAttribute(deviceId, attributeName, false); + public String lookupServerString(long deviceId, String attributeName, String defaultValue) { + String result = lookupAttribute(deviceId, attributeName, true); + if (result != null) { + return result; + } + return defaultValue; } + public int lookupServerInteger(long deviceId, String attributeName, int defaultValue) { + String result = lookupAttribute(deviceId, attributeName, true); + if (result != null) { + return Integer.parseInt(result); + } + return defaultValue; + } + + public long lookupServerLong(long deviceId, String attributeName, long defaultValue) { + String result = lookupAttribute(deviceId, attributeName, true); + if (result != null) { + return Long.parseLong(result); + } + return defaultValue; + } + + public double lookupServerDouble(long deviceId, String attributeName, double defaultValue) { + String result = lookupAttribute(deviceId, attributeName, true); + if (result != null) { + return Double.parseDouble(result); + } + return defaultValue; + } + + public boolean lookupConfigBoolean(long deviceId, String attributeName, boolean defaultValue) { + String result = lookupAttribute(deviceId, attributeName, false); + if (result != null) { + return Boolean.parseBoolean(result); + } + return defaultValue; + } + + public String lookupConfigString(long deviceId, String attributeName, String defaultValue) { + String result = lookupAttribute(deviceId, attributeName, false); + if (result != null) { + return result; + } + return defaultValue; + } + + public int lookupConfigInteger(long deviceId, String attributeName, int defaultValue) { + String result = lookupAttribute(deviceId, attributeName, false); + if (result != null) { + return Integer.parseInt(result); + } + return defaultValue; + } + + public long lookupConfigLong(long deviceId, String attributeName, long defaultValue) { + String result = lookupAttribute(deviceId, attributeName, false); + if (result != null) { + return Long.parseLong(result); + } + return defaultValue; + } + + public double lookupConfigDouble(long deviceId, String attributeName, double defaultValue) { + String result = lookupAttribute(deviceId, attributeName, false); + if (result != null) { + return Double.parseDouble(result); + } + return defaultValue; + } private String lookupAttribute(long deviceId, String attributeName, boolean lookupServer) { String result = null; diff --git a/src/org/traccar/events/OverspeedEventHandler.java b/src/org/traccar/events/OverspeedEventHandler.java index a32dfae7e..57f60d864 100644 --- a/src/org/traccar/events/OverspeedEventHandler.java +++ b/src/org/traccar/events/OverspeedEventHandler.java @@ -47,12 +47,8 @@ public class OverspeedEventHandler extends BaseEventHandler { Collection events = new ArrayList<>(); double speed = position.getSpeed(); - double speedLimit = 0; - String speedLimitAttribute = Context.getDeviceManager() - .lookupServerAttribute(device.getId(), ATTRIBUTE_SPEED_LIMIT); - if (speedLimitAttribute != null) { - speedLimit = Double.parseDouble(speedLimitAttribute); - } + double speedLimit = Context.getDeviceManager() + .lookupServerDouble(device.getId(), ATTRIBUTE_SPEED_LIMIT, 0); if (speedLimit == 0) { return null; } diff --git a/src/org/traccar/reports/Summary.java b/src/org/traccar/reports/Summary.java index 763ddb600..d4171f644 100644 --- a/src/org/traccar/reports/Summary.java +++ b/src/org/traccar/reports/Summary.java @@ -37,7 +37,7 @@ public final class Summary { private static SummaryReport calculateSummaryResult(long deviceId, Date from, Date to) throws SQLException { SummaryReport result = new SummaryReport(); result.setDeviceId(deviceId); - result.setDeviceName(Context.getDeviceManager().getDeviceById(deviceId).getName()); + result.setDeviceName(Context.getIdentityManager().getDeviceById(deviceId).getName()); Collection positions = Context.getDataManager().getPositions(deviceId, from, to); if (positions != null && !positions.isEmpty()) { Position firstPosition = null; @@ -60,12 +60,8 @@ public final class Summary { speedSum += position.getSpeed(); result.setMaxSpeed(position.getSpeed()); } - boolean ignoreOdometer = false; - String ignoreOdometerAttribute = Context.getDeviceManager() - .lookupConfigAttribute(deviceId, "report.ignoreOdometer"); - if (ignoreOdometerAttribute != null) { - ignoreOdometer = Boolean.parseBoolean(ignoreOdometerAttribute); - } + boolean ignoreOdometer = Context.getDeviceManager() + .lookupConfigBoolean(deviceId, "report.ignoreOdometer", false); result.setDistance(ReportUtils.calculateDistance(firstPosition, previousPosition, !ignoreOdometer)); result.setAverageSpeed(speedSum / positions.size()); } diff --git a/src/org/traccar/reports/Trips.java b/src/org/traccar/reports/Trips.java index c4a7f2c8f..f0a10edbd 100644 --- a/src/org/traccar/reports/Trips.java +++ b/src/org/traccar/reports/Trips.java @@ -53,19 +53,15 @@ public final class Trips { long tripDuration = endTrip.getFixTime().getTime() - positions.get(startIndex).getFixTime().getTime(); long deviceId = startTrip.getDeviceId(); trip.setDeviceId(deviceId); - trip.setDeviceName(Context.getDeviceManager().getDeviceById(deviceId).getName()); + trip.setDeviceName(Context.getIdentityManager().getDeviceById(deviceId).getName()); trip.setStartPositionId(startTrip.getId()); trip.setStartTime(startTrip.getFixTime()); trip.setStartAddress(startTrip.getAddress()); trip.setEndPositionId(endTrip.getId()); trip.setEndTime(endTrip.getFixTime()); trip.setEndAddress(endTrip.getAddress()); - boolean ignoreOdometer = false; - String ignoreOdometerAttribute = Context.getDeviceManager() - .lookupConfigAttribute(deviceId, "report.ignoreOdometer"); - if (ignoreOdometerAttribute != null) { - ignoreOdometer = Boolean.parseBoolean(ignoreOdometerAttribute); - } + boolean ignoreOdometer = Context.getDeviceManager() + .lookupConfigBoolean(deviceId, "report.ignoreOdometer", false); trip.setDistance(ReportUtils.calculateDistance(startTrip, endTrip, !ignoreOdometer)); trip.setDuration(tripDuration); trip.setAverageSpeed(speedSum / (endIndex - startIndex)); -- cgit v1.2.3 From baad910016f2f17e6bf89f9d5db17349c4a9a62a Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Wed, 21 Sep 2016 16:27:55 +0500 Subject: Add attributes aliases --- debug.xml | 21 ++++ schema/changelog-3.8.xml | 18 ++++ src/org/traccar/Context.java | 10 ++ .../api/resource/AttributeAliasResource.java | 93 ++++++++++++++++ src/org/traccar/api/resource/DeviceResource.java | 1 + src/org/traccar/database/AliasesManager.java | 119 +++++++++++++++++++++ src/org/traccar/database/DataManager.java | 24 +++++ src/org/traccar/model/AttributeAlias.java | 61 +++++++++++ src/org/traccar/web/WebServer.java | 3 +- 9 files changed, 349 insertions(+), 1 deletion(-) create mode 100644 src/org/traccar/api/resource/AttributeAliasResource.java create mode 100644 src/org/traccar/database/AliasesManager.java create mode 100644 src/org/traccar/model/AttributeAlias.java diff --git a/debug.xml b/debug.xml index 5de42c027..1823a4b28 100644 --- a/debug.xml +++ b/debug.xml @@ -331,6 +331,27 @@ DELETE FROM positions WHERE serverTime < :serverTime AND id NOT IN (SELECT positionId FROM devices); + + + SELECT * FROM device_aliases; + + + + INSERT INTO device_aliases (deviceId, attribute, alias) + VALUES (:deviceId, :attribute, :alias); + + + + UPDATE device_aliases SET + deviceId = :deviceId, + attribute = :attribute, + alias = :alias + WHERE id = :id; + + + + DELETE FROM device_aliases WHERE id = :id; + diff --git a/schema/changelog-3.8.xml b/schema/changelog-3.8.xml index 97bc1c9a3..8cb6c0e04 100644 --- a/schema/changelog-3.8.xml +++ b/schema/changelog-3.8.xml @@ -8,6 +8,24 @@ + + + + + + + + + + + + + + + + + + map = 'osm' diff --git a/src/org/traccar/Context.java b/src/org/traccar/Context.java index c7359e76c..e983ab99e 100644 --- a/src/org/traccar/Context.java +++ b/src/org/traccar/Context.java @@ -16,6 +16,8 @@ package org.traccar; import com.ning.http.client.AsyncHttpClient; + +import org.traccar.database.AliasesManager; import org.traccar.database.ConnectionManager; import org.traccar.database.DataManager; import org.traccar.database.DeviceManager; @@ -134,6 +136,12 @@ public final class Context { return eventForwarder; } + private static AliasesManager aliasesManager; + + public static AliasesManager getAliasesManager() { + return aliasesManager; + } + public static void init(String[] arguments) throws Exception { config = new Config(); @@ -233,6 +241,8 @@ public final class Context { eventForwarder = new EventForwarder(); } + aliasesManager = new AliasesManager(dataManager); + } public static void init(IdentityManager testIdentityManager) { diff --git a/src/org/traccar/api/resource/AttributeAliasResource.java b/src/org/traccar/api/resource/AttributeAliasResource.java new file mode 100644 index 000000000..827b50c38 --- /dev/null +++ b/src/org/traccar/api/resource/AttributeAliasResource.java @@ -0,0 +1,93 @@ +/* + * Copyright 2016 Anton Tananaev (anton.tananaev@gmail.com) + * Copyright 2016 Andrey Kunitsyn (abyss@fox5.ru) + * + * 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.api.resource; + +import java.sql.SQLException; +import java.util.Collection; + +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import org.traccar.Context; +import org.traccar.api.BaseResource; +import org.traccar.model.AttributeAlias; + +@Path("devices/aliases") +@Produces(MediaType.APPLICATION_JSON) +@Consumes(MediaType.APPLICATION_JSON) +public class AttributeAliasResource extends BaseResource { + + @GET + public Collection get(@QueryParam("deviceId") long deviceId) throws SQLException { + if (deviceId != 0) { + if (!Context.getPermissionsManager().isAdmin(getUserId())) { + Context.getPermissionsManager().checkDevice(getUserId(), deviceId); + } + return Context.getAliasesManager().getDeviceAttributeAliases(deviceId); + } else { + return Context.getAliasesManager().getUserDevicesAttributeAliases(getUserId()); + } + } + + @POST + public Response add(AttributeAlias entity) throws SQLException { + Context.getPermissionsManager().checkReadonly(getUserId()); + if (!Context.getPermissionsManager().isAdmin(getUserId())) { + Context.getPermissionsManager().checkDevice(getUserId(), entity.getDeviceId()); + } + Context.getAliasesManager().addAttributeAlias(entity); + return Response.ok(entity).build(); + } + + @Path("{id}") + @PUT + public Response update(@PathParam("id") long id, AttributeAlias entity) throws SQLException { + Context.getPermissionsManager().checkReadonly(getUserId()); + if (!Context.getPermissionsManager().isAdmin(getUserId())) { + AttributeAlias oldAttrbuteAlias = Context.getAliasesManager().getAttributeAliasById(entity.getId()); + if (oldAttrbuteAlias != null && oldAttrbuteAlias.getDeviceId() != entity.getDeviceId()) { + Context.getPermissionsManager().checkDevice(getUserId(), oldAttrbuteAlias.getDeviceId()); + } + Context.getPermissionsManager().checkDevice(getUserId(), entity.getDeviceId()); + } + Context.getAliasesManager().updateAttributeAlias(entity); + return Response.ok(entity).build(); + } + + @Path("{id}") + @DELETE + public Response remove(@PathParam("id") long id) throws SQLException { + Context.getPermissionsManager().checkReadonly(getUserId()); + if (!Context.getPermissionsManager().isAdmin(getUserId())) { + AttributeAlias attrbuteAlias = Context.getAliasesManager().getAttributeAliasById(id); + Context.getPermissionsManager().checkDevice(getUserId(), + attrbuteAlias != null ? attrbuteAlias.getDeviceId() : 0); + } + Context.getAliasesManager().removeArrtibuteAlias(id); + return Response.noContent().build(); + } + +} diff --git a/src/org/traccar/api/resource/DeviceResource.java b/src/org/traccar/api/resource/DeviceResource.java index b12ab8c36..56787b7bb 100644 --- a/src/org/traccar/api/resource/DeviceResource.java +++ b/src/org/traccar/api/resource/DeviceResource.java @@ -88,6 +88,7 @@ public class DeviceResource extends BaseResource { if (Context.getGeofenceManager() != null) { Context.getGeofenceManager().refresh(); } + Context.getAliasesManager().removeDevice(id); return Response.noContent().build(); } diff --git a/src/org/traccar/database/AliasesManager.java b/src/org/traccar/database/AliasesManager.java new file mode 100644 index 000000000..0a9854385 --- /dev/null +++ b/src/org/traccar/database/AliasesManager.java @@ -0,0 +1,119 @@ +/* + * Copyright 2016 Anton Tananaev (anton.tananaev@gmail.com) + * Copyright 2016 Andrey Kunitsyn (abyss@fox5.ru) + * + * 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.database; + +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +import org.traccar.Context; +import org.traccar.helper.Log; +import org.traccar.model.AttributeAlias; + +public class AliasesManager { + + private final DataManager dataManager; + + private final Map> deviceAliases = new ConcurrentHashMap<>(); + private final Map aliasesById = new ConcurrentHashMap<>(); + + + public AliasesManager(DataManager dataManager) { + this.dataManager = dataManager; + refresh(); + } + + public Set getDeviceAttributeAliases(long deviceId) { + if (!deviceAliases.containsKey(deviceId)) { + deviceAliases.put(deviceId, new HashSet()); + } + return deviceAliases.get(deviceId); + } + + public final void refresh() { + if (dataManager != null) { + try { + deviceAliases.clear(); + for (AttributeAlias attributeAlias : dataManager.getAttributeAliases()) { + getDeviceAttributeAliases(attributeAlias.getDeviceId()) + .add(attributeAlias); + aliasesById.put(attributeAlias.getId(), attributeAlias); + } + } catch (SQLException error) { + Log.warning(error); + } + } + } + + public void removeDevice(long deviceId) { + for (AttributeAlias attributeAlias : getDeviceAttributeAliases(deviceId)) { + aliasesById.remove(attributeAlias.getId()); + } + deviceAliases.remove(deviceId); + } + + public void addAttributeAlias(AttributeAlias attributeAlias) throws SQLException { + dataManager.addAttributeAlias(attributeAlias); + aliasesById.put(attributeAlias.getId(), attributeAlias); + getDeviceAttributeAliases(attributeAlias.getDeviceId()).add(attributeAlias); + } + + public void updateAttributeAlias(AttributeAlias attributeAlias) throws SQLException { + dataManager.updateAttributeAlias(attributeAlias); + AttributeAlias cachedAlias = aliasesById.get(attributeAlias.getId()); + if (cachedAlias.getDeviceId() != attributeAlias.getDeviceId()) { + getDeviceAttributeAliases(cachedAlias.getDeviceId()).remove(cachedAlias); + cachedAlias.setDeviceId(attributeAlias.getDeviceId()); + getDeviceAttributeAliases(cachedAlias.getDeviceId()).add(cachedAlias); + } + cachedAlias.setAttribute(attributeAlias.getAttribute()); + cachedAlias.setAlias(attributeAlias.getAlias()); + } + + public void removeArrtibuteAlias(long attributeAliasId) throws SQLException { + dataManager.removeAttributeAlias(attributeAliasId); + AttributeAlias cachedAlias = aliasesById.get(attributeAliasId); + getDeviceAttributeAliases(cachedAlias.getDeviceId()).remove(cachedAlias); + aliasesById.remove(attributeAliasId); + } + + public AttributeAlias getDeviceAliasByAttribute(long deviceId, String attribute) { + for (AttributeAlias alias : getDeviceAttributeAliases(deviceId)) { + if (alias.getAttribute().equals(attribute)) { + return alias; + } + } + return null; + } + + public Collection getUserDevicesAttributeAliases(long userId) { + Collection userDevicesAliases = new ArrayList<>(); + for (long deviceId : Context.getPermissionsManager().getDevicePermissions(userId)) { + userDevicesAliases.addAll(getDeviceAttributeAliases(deviceId)); + } + return userDevicesAliases; + } + + public AttributeAlias getAttributeAliasById(long id) { + return aliasesById.get(id); + } + +} diff --git a/src/org/traccar/database/DataManager.java b/src/org/traccar/database/DataManager.java index abc48f063..02adb0455 100644 --- a/src/org/traccar/database/DataManager.java +++ b/src/org/traccar/database/DataManager.java @@ -37,6 +37,7 @@ import liquibase.resource.ResourceAccessor; import org.traccar.Config; import org.traccar.helper.Log; +import org.traccar.model.AttributeAlias; import org.traccar.model.Device; import org.traccar.model.DevicePermission; import org.traccar.model.Event; @@ -460,4 +461,27 @@ public class DataManager { .setLong("id", notification.getId()) .executeUpdate(); } + + public Collection getAttributeAliases() throws SQLException { + return QueryBuilder.create(dataSource, getQuery("database.selectAttributeAliases")) + .executeQuery(AttributeAlias.class); + } + + public void addAttributeAlias(AttributeAlias attributeAlias) throws SQLException { + attributeAlias.setId(QueryBuilder.create(dataSource, getQuery("database.insertAttributeAlias"), true) + .setObject(attributeAlias) + .executeUpdate()); + } + + public void updateAttributeAlias(AttributeAlias attributeAlias) throws SQLException { + QueryBuilder.create(dataSource, getQuery("database.updateAttributeAlias")) + .setObject(attributeAlias) + .executeUpdate(); + } + + public void removeAttributeAlias(long attributeAliasId) throws SQLException { + QueryBuilder.create(dataSource, getQuery("database.deleteAttributeAlias")) + .setLong("id", attributeAliasId) + .executeUpdate(); + } } diff --git a/src/org/traccar/model/AttributeAlias.java b/src/org/traccar/model/AttributeAlias.java new file mode 100644 index 000000000..023925ac3 --- /dev/null +++ b/src/org/traccar/model/AttributeAlias.java @@ -0,0 +1,61 @@ +/* + * Copyright 2016 Anton Tananaev (anton.tananaev@gmail.com) + * Copyright 2016 Andrey Kunitsyn (abyss@fox5.ru) + * + * 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.model; + +public class AttributeAlias { + + private long id; + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + private long deviceId; + + public long getDeviceId() { + return deviceId; + } + + public void setDeviceId(long deviceId) { + this.deviceId = deviceId; + } + + private String attribute; + + public String getAttribute() { + return attribute; + } + + public void setAttribute(String attribute) { + this.attribute = attribute; + } + + private String alias; + + public String getAlias() { + return alias; + } + + public void setAlias(String alias) { + this.alias = alias; + } + +} diff --git a/src/org/traccar/web/WebServer.java b/src/org/traccar/web/WebServer.java index e022a9285..ec15ea2be 100644 --- a/src/org/traccar/web/WebServer.java +++ b/src/org/traccar/web/WebServer.java @@ -34,6 +34,7 @@ import org.traccar.api.CorsResponseFilter; import org.traccar.api.ObjectMapperProvider; import org.traccar.api.ResourceErrorHandler; import org.traccar.api.SecurityRequestFilter; +import org.traccar.api.resource.AttributeAliasResource; import org.traccar.api.resource.CommandResource; import org.traccar.api.resource.GroupPermissionResource; import org.traccar.api.resource.ServerResource; @@ -161,7 +162,7 @@ public class WebServer { GroupResource.class, DeviceResource.class, PositionResource.class, CommandTypeResource.class, EventResource.class, GeofenceResource.class, DeviceGeofenceResource.class, GeofencePermissionResource.class, GroupGeofenceResource.class, - NotificationResource.class, ReportResource.class); + NotificationResource.class, ReportResource.class, AttributeAliasResource.class); servletHandler.addServlet(new ServletHolder(new ServletContainer(resourceConfig)), "/*"); handlers.addHandler(servletHandler); -- cgit v1.2.3 From ad2f5a00a4a27f085f470d3d86c52de01ff2c766 Mon Sep 17 00:00:00 2001 From: Daniel Bastos Date: Wed, 21 Sep 2016 09:16:13 -0300 Subject: Adds support for specifying a host. If only and are given, it falls back to previous behavior: using localhost as . --- tools/hex.sh | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/tools/hex.sh b/tools/hex.sh index cfae14bb6..78cd8fa38 100755 --- a/tools/hex.sh +++ b/tools/hex.sh @@ -10,26 +10,34 @@ if [ $# -lt 2 ] then - echo "USAGE: $0 " + echo "USAGE: $0 " + echo "If only and are present, defaults to localhost." exit 1 fi +host="$1"; port="$2"; hex="$3"; + +if [ $# -eq 2 ] +then + host="localhost"; port="$1"; hex="$2"; +fi + send_hex_udp () { - echo $2 | xxd -r -p | nc -u -w 0 localhost $1 + echo "$hex" | xxd -r -p | nc -u -w 0 "$host" "$port" } send_hex_tcp () { - echo $2 | xxd -r -p | nc localhost $1 + echo "$hex" | xxd -r -p | nc "$host" "$port" } send_text_udp () { - echo -n -e $2 | nc -u -w 0 localhost $1 + echo -n -e "$hex" | nc -u -w 0 "$host" "$port" } send_text_tcp () { - echo -n -e $2 | nc localhost $1 + echo -n -e "$hex" | nc "$host" "$port" } -send_hex_tcp $1 $2 +send_hex_tcp "$host" "$port" "$hex" exit $? -- cgit v1.2.3 From 55ee0b56cd1f668711b9ffc82e7d90961435b42f Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Thu, 22 Sep 2016 16:00:29 +1200 Subject: Add project license file --- LICENSE.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 LICENSE.md diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 000000000..2c9c8d04a --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,13 @@ + Apache License, Version 2.0 + + 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. -- cgit v1.2.3 From c8816bdd85d62fb767795b2dc4d31326fdad9cd5 Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Thu, 22 Sep 2016 10:44:29 +0500 Subject: - rename table and unique constraint - rename some functions - optimization and simplification --- debug.xml | 8 ++--- schema/changelog-3.8.xml | 6 ++-- .../api/resource/AttributeAliasResource.java | 15 ++++---- src/org/traccar/database/AliasesManager.java | 42 ++++++++++------------ 4 files changed, 31 insertions(+), 40 deletions(-) diff --git a/debug.xml b/debug.xml index 1823a4b28..6f2ccc738 100644 --- a/debug.xml +++ b/debug.xml @@ -333,16 +333,16 @@ - SELECT * FROM device_aliases; + SELECT * FROM attribute_aliases; - INSERT INTO device_aliases (deviceId, attribute, alias) + INSERT INTO attribute_aliases (deviceId, attribute, alias) VALUES (:deviceId, :attribute, :alias); - UPDATE device_aliases SET + UPDATE attribute_aliases SET deviceId = :deviceId, attribute = :attribute, alias = :alias @@ -350,7 +350,7 @@ - DELETE FROM device_aliases WHERE id = :id; + DELETE FROM attribute_aliases WHERE id = :id; diff --git a/schema/changelog-3.8.xml b/schema/changelog-3.8.xml index 8cb6c0e04..304ac21d4 100644 --- a/schema/changelog-3.8.xml +++ b/schema/changelog-3.8.xml @@ -8,7 +8,7 @@ - + @@ -23,8 +23,8 @@ - - + + diff --git a/src/org/traccar/api/resource/AttributeAliasResource.java b/src/org/traccar/api/resource/AttributeAliasResource.java index 827b50c38..6dbcf6ce8 100644 --- a/src/org/traccar/api/resource/AttributeAliasResource.java +++ b/src/org/traccar/api/resource/AttributeAliasResource.java @@ -46,9 +46,9 @@ public class AttributeAliasResource extends BaseResource { if (!Context.getPermissionsManager().isAdmin(getUserId())) { Context.getPermissionsManager().checkDevice(getUserId(), deviceId); } - return Context.getAliasesManager().getDeviceAttributeAliases(deviceId); + return Context.getAliasesManager().getAttributeAliases(deviceId); } else { - return Context.getAliasesManager().getUserDevicesAttributeAliases(getUserId()); + return Context.getAliasesManager().getAllAttributeAliases(getUserId()); } } @@ -67,10 +67,8 @@ public class AttributeAliasResource extends BaseResource { public Response update(@PathParam("id") long id, AttributeAlias entity) throws SQLException { Context.getPermissionsManager().checkReadonly(getUserId()); if (!Context.getPermissionsManager().isAdmin(getUserId())) { - AttributeAlias oldAttrbuteAlias = Context.getAliasesManager().getAttributeAliasById(entity.getId()); - if (oldAttrbuteAlias != null && oldAttrbuteAlias.getDeviceId() != entity.getDeviceId()) { - Context.getPermissionsManager().checkDevice(getUserId(), oldAttrbuteAlias.getDeviceId()); - } + AttributeAlias oldEntity = Context.getAliasesManager().getAttributeAlias(entity.getId()); + Context.getPermissionsManager().checkDevice(getUserId(), oldEntity.getDeviceId()); Context.getPermissionsManager().checkDevice(getUserId(), entity.getDeviceId()); } Context.getAliasesManager().updateAttributeAlias(entity); @@ -82,9 +80,8 @@ public class AttributeAliasResource extends BaseResource { public Response remove(@PathParam("id") long id) throws SQLException { Context.getPermissionsManager().checkReadonly(getUserId()); if (!Context.getPermissionsManager().isAdmin(getUserId())) { - AttributeAlias attrbuteAlias = Context.getAliasesManager().getAttributeAliasById(id); - Context.getPermissionsManager().checkDevice(getUserId(), - attrbuteAlias != null ? attrbuteAlias.getDeviceId() : 0); + AttributeAlias entity = Context.getAliasesManager().getAttributeAlias(id); + Context.getPermissionsManager().checkDevice(getUserId(), entity.getDeviceId()); } Context.getAliasesManager().removeArrtibuteAlias(id); return Response.noContent().build(); diff --git a/src/org/traccar/database/AliasesManager.java b/src/org/traccar/database/AliasesManager.java index 0a9854385..6c09e8731 100644 --- a/src/org/traccar/database/AliasesManager.java +++ b/src/org/traccar/database/AliasesManager.java @@ -35,25 +35,12 @@ public class AliasesManager { private final Map> deviceAliases = new ConcurrentHashMap<>(); private final Map aliasesById = new ConcurrentHashMap<>(); - public AliasesManager(DataManager dataManager) { this.dataManager = dataManager; - refresh(); - } - - public Set getDeviceAttributeAliases(long deviceId) { - if (!deviceAliases.containsKey(deviceId)) { - deviceAliases.put(deviceId, new HashSet()); - } - return deviceAliases.get(deviceId); - } - - public final void refresh() { if (dataManager != null) { try { - deviceAliases.clear(); for (AttributeAlias attributeAlias : dataManager.getAttributeAliases()) { - getDeviceAttributeAliases(attributeAlias.getDeviceId()) + getAttributeAliases(attributeAlias.getDeviceId()) .add(attributeAlias); aliasesById.put(attributeAlias.getId(), attributeAlias); } @@ -63,8 +50,15 @@ public class AliasesManager { } } + public Set getAttributeAliases(long deviceId) { + if (!deviceAliases.containsKey(deviceId)) { + deviceAliases.put(deviceId, new HashSet()); + } + return deviceAliases.get(deviceId); + } + public void removeDevice(long deviceId) { - for (AttributeAlias attributeAlias : getDeviceAttributeAliases(deviceId)) { + for (AttributeAlias attributeAlias : getAttributeAliases(deviceId)) { aliasesById.remove(attributeAlias.getId()); } deviceAliases.remove(deviceId); @@ -73,16 +67,16 @@ public class AliasesManager { public void addAttributeAlias(AttributeAlias attributeAlias) throws SQLException { dataManager.addAttributeAlias(attributeAlias); aliasesById.put(attributeAlias.getId(), attributeAlias); - getDeviceAttributeAliases(attributeAlias.getDeviceId()).add(attributeAlias); + getAttributeAliases(attributeAlias.getDeviceId()).add(attributeAlias); } public void updateAttributeAlias(AttributeAlias attributeAlias) throws SQLException { dataManager.updateAttributeAlias(attributeAlias); AttributeAlias cachedAlias = aliasesById.get(attributeAlias.getId()); if (cachedAlias.getDeviceId() != attributeAlias.getDeviceId()) { - getDeviceAttributeAliases(cachedAlias.getDeviceId()).remove(cachedAlias); + getAttributeAliases(cachedAlias.getDeviceId()).remove(cachedAlias); cachedAlias.setDeviceId(attributeAlias.getDeviceId()); - getDeviceAttributeAliases(cachedAlias.getDeviceId()).add(cachedAlias); + getAttributeAliases(cachedAlias.getDeviceId()).add(cachedAlias); } cachedAlias.setAttribute(attributeAlias.getAttribute()); cachedAlias.setAlias(attributeAlias.getAlias()); @@ -91,12 +85,12 @@ public class AliasesManager { public void removeArrtibuteAlias(long attributeAliasId) throws SQLException { dataManager.removeAttributeAlias(attributeAliasId); AttributeAlias cachedAlias = aliasesById.get(attributeAliasId); - getDeviceAttributeAliases(cachedAlias.getDeviceId()).remove(cachedAlias); + getAttributeAliases(cachedAlias.getDeviceId()).remove(cachedAlias); aliasesById.remove(attributeAliasId); } - public AttributeAlias getDeviceAliasByAttribute(long deviceId, String attribute) { - for (AttributeAlias alias : getDeviceAttributeAliases(deviceId)) { + public AttributeAlias getAttributeAlias(long deviceId, String attribute) { + for (AttributeAlias alias : getAttributeAliases(deviceId)) { if (alias.getAttribute().equals(attribute)) { return alias; } @@ -104,15 +98,15 @@ public class AliasesManager { return null; } - public Collection getUserDevicesAttributeAliases(long userId) { + public Collection getAllAttributeAliases(long userId) { Collection userDevicesAliases = new ArrayList<>(); for (long deviceId : Context.getPermissionsManager().getDevicePermissions(userId)) { - userDevicesAliases.addAll(getDeviceAttributeAliases(deviceId)); + userDevicesAliases.addAll(getAttributeAliases(deviceId)); } return userDevicesAliases; } - public AttributeAlias getAttributeAliasById(long id) { + public AttributeAlias getAttributeAlias(long id) { return aliasesById.get(id); } -- cgit v1.2.3 From b24da87dca861acf83633e06b8f13773dab684bb Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Fri, 23 Sep 2016 02:43:56 +1200 Subject: Try to remove spaces from license file --- LICENSE.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index 2c9c8d04a..86e92d377 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,13 +1,13 @@ - Apache License, Version 2.0 +Apache License, Version 2.0 - 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 +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 + 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. +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. -- cgit v1.2.3 From cab3f9732fb4fe1d09b6cc3fa449ce3686edca18 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Fri, 23 Sep 2016 02:45:20 +1200 Subject: Revert changes to license file --- LICENSE.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/LICENSE.md b/LICENSE.md index 86e92d377..2c9c8d04a 100644 --- a/LICENSE.md +++ b/LICENSE.md @@ -1,13 +1,13 @@ -Apache License, Version 2.0 + Apache License, Version 2.0 -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 + 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 + 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. + 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. -- cgit v1.2.3 From 4682489dcf4e28c3899889dcf3bc46389889c90d Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Fri, 23 Sep 2016 03:07:30 +1200 Subject: Upload full license file --- LICENSE.md | 13 ---- LICENSE.txt | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 202 insertions(+), 13 deletions(-) delete mode 100644 LICENSE.md create mode 100644 LICENSE.txt diff --git a/LICENSE.md b/LICENSE.md deleted file mode 100644 index 2c9c8d04a..000000000 --- a/LICENSE.md +++ /dev/null @@ -1,13 +0,0 @@ - Apache License, Version 2.0 - - 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. diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 000000000..d64569567 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. -- cgit v1.2.3 From 1252beec948b9e320f203fedcb4c3f3ca6e2bfa1 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Fri, 23 Sep 2016 03:34:01 +1200 Subject: Remove unnecessary line break --- src/org/traccar/protocol/Gt06ProtocolEncoder.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/org/traccar/protocol/Gt06ProtocolEncoder.java b/src/org/traccar/protocol/Gt06ProtocolEncoder.java index e478424f9..e78a1b388 100644 --- a/src/org/traccar/protocol/Gt06ProtocolEncoder.java +++ b/src/org/traccar/protocol/Gt06ProtocolEncoder.java @@ -66,9 +66,9 @@ public class Gt06ProtocolEncoder extends BaseProtocolEncoder { switch (command.getType()) { case Command.TYPE_ENGINE_STOP: - return encodeContent(alternative ? "DYD,123456#\r\n" : "Relay,1#"); + return encodeContent(alternative ? "DYD,123456#" : "Relay,1#"); case Command.TYPE_ENGINE_RESUME: - return encodeContent(alternative ? "HFYD,123456#\r\n" : "Relay,0#"); + return encodeContent(alternative ? "HFYD,123456#" : "Relay,0#"); default: Log.warning(new UnsupportedOperationException(command.getType())); break; -- cgit v1.2.3 From 22a1aca01ec5feaef59ad2f56eda825a5926e24b Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Fri, 23 Sep 2016 03:41:40 +1200 Subject: Add new JT600 unit tests --- test/org/traccar/protocol/Jt600ProtocolDecoderTest.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/test/org/traccar/protocol/Jt600ProtocolDecoderTest.java b/test/org/traccar/protocol/Jt600ProtocolDecoderTest.java index b95d8ddce..ba39b1846 100644 --- a/test/org/traccar/protocol/Jt600ProtocolDecoderTest.java +++ b/test/org/traccar/protocol/Jt600ProtocolDecoderTest.java @@ -11,6 +11,16 @@ public class Jt600ProtocolDecoderTest extends ProtocolTest { Jt600ProtocolDecoder decoder = new Jt600ProtocolDecoder(new Jt600Protocol()); + verifyNothing(decoder, buffer( + "(3460311327,@JT)")); + + /*verifyPosition(decoder, buffer( + "(3460311327,U01,010100,000024,F,0.000000,N,0.000000,E,0.00,0,0,100%,00000001000000,263,1,18,0,0,33)"));*/ + + //(3460311327,U06,11,220916,135643,T,9.552553,N,13.658265,W,0.61,0,9,100%,00000001000000,11012,10,30,0,0,126,0,30) + //(3460311327,U06,10,220916,140619,T,9.552495,N,13.658227,W,0.43,0,7,0%,00101001000000,11012,10,0,0,0,126,0,30) + //(3460311327,U01,220916,135251,T,9.552607,N,13.658292,W,0.31,0,9,0%,00001001000000,11012,10,27,0,0,33) + verifyPosition(decoder, binary( "24311021600111001B16021105591022329862114046227B0598095080012327951435161F"), position("2011-02-16 05:59:10.000", true, 22.54977, -114.07705)); -- cgit v1.2.3 From e3229237eb37654dbf7818fdf92a6f487a95c770 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Fri, 23 Sep 2016 06:57:16 +1200 Subject: Extend JT600 protocol support --- src/org/traccar/protocol/Jt600ProtocolDecoder.java | 90 ++++++++++++++++++---- .../traccar/protocol/Jt600ProtocolDecoderTest.java | 38 ++++++--- 2 files changed, 106 insertions(+), 22 deletions(-) diff --git a/src/org/traccar/protocol/Jt600ProtocolDecoder.java b/src/org/traccar/protocol/Jt600ProtocolDecoder.java index b7193d24b..b30bd7b85 100644 --- a/src/org/traccar/protocol/Jt600ProtocolDecoder.java +++ b/src/org/traccar/protocol/Jt600ProtocolDecoder.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. @@ -43,7 +43,7 @@ public class Jt600ProtocolDecoder extends BaseProtocolDecoder { return degrees + minutes / 60; } - private Position decodeNormalMessage(ChannelBuffer buf, Channel channel, SocketAddress remoteAddress) { + private Position decodeBinary(ChannelBuffer buf, Channel channel, SocketAddress remoteAddress) { Position position = new Position(); position.setProtocol(getProtocolName()); @@ -120,7 +120,7 @@ public class Jt600ProtocolDecoder extends BaseProtocolDecoder { return position; } - private static final Pattern PATTERN = new PatternBuilder() + private static final Pattern PATTERN_W01 = new PatternBuilder() .text("(") .number("(d+),") // id .text("W01,") // type @@ -138,25 +138,22 @@ public class Jt600ProtocolDecoder extends BaseProtocolDecoder { .number("(d+),") // gsm signal .number("(d+),") // alert type .any() - .text(")") .compile(); - private Position decodeAlertMessage(ChannelBuffer buf, Channel channel, SocketAddress remoteAddress) { + private Position decodeW01(String sentence, Channel channel, SocketAddress remoteAddress) { - Parser parser = new Parser(PATTERN, buf.toString(StandardCharsets.US_ASCII)); + Parser parser = new Parser(PATTERN_W01, sentence); if (!parser.matches()) { return null; } - Position position = new Position(); - position.setProtocol(getProtocolName()); - - position.set(Position.KEY_ALARM, Position.ALARM_GENERAL); - DeviceSession deviceSession = getDeviceSession(channel, remoteAddress, parser.next()); if (deviceSession == null) { return null; } + + Position position = new Position(); + position.setProtocol(getProtocolName()); position.setDeviceId(deviceSession.getDeviceId()); position.setLongitude(parser.nextCoordinate()); @@ -176,6 +173,68 @@ public class Jt600ProtocolDecoder extends BaseProtocolDecoder { return position; } + private static final Pattern PATTERN_U01 = new PatternBuilder() + .text("(") + .number("(d+),") // id + .number("Udd,") // type + .number("d+,").optional() // alarm + .number("(dd)(dd)(dd),") // date (ddmmyy) + .number("(dd)(dd)(dd),") // time + .expression("([TF]),") // validity + .number("(d+.d+),([NS]),") // latitude + .number("(d+.d+),([EW]),") // longitude + .number("(d+.?d*),") // speed + .number("(d+),") // course + .number("(d+),") // satellites + .number("(d+%),") // battery + .expression("([01]+),") // status + .number("(d+),") // cid + .number("(d+),") // lac + .number("(d+),") // gsm signal + .number("(d+),") // odometer + .number("(d+)") // index + .any() + .compile(); + + private Position decodeU01(String sentence, Channel channel, SocketAddress remoteAddress) { + + Parser parser = new Parser(PATTERN_U01, sentence); + if (!parser.matches()) { + return null; + } + + DeviceSession deviceSession = getDeviceSession(channel, remoteAddress, parser.next()); + if (deviceSession == null) { + return null; + } + + Position position = new Position(); + position.setProtocol(getProtocolName()); + position.setDeviceId(deviceSession.getDeviceId()); + + DateBuilder dateBuilder = new DateBuilder() + .setDateReverse(parser.nextInt(), parser.nextInt(), parser.nextInt()) + .setTime(parser.nextInt(), parser.nextInt(), parser.nextInt()); + position.setTime(dateBuilder.getDate()); + + position.setValid(parser.next().equals("T")); + position.setLatitude(parser.nextCoordinate(Parser.CoordinateFormat.DEG_HEM)); + position.setLongitude(parser.nextCoordinate(Parser.CoordinateFormat.DEG_HEM)); + + position.setSpeed(UnitsConverter.knotsFromMph(parser.nextDouble())); + position.setCourse(parser.nextDouble()); + + position.set(Position.KEY_SATELLITES, parser.nextInt()); + position.set(Position.KEY_BATTERY, parser.next()); + position.set(Position.KEY_STATUS, parser.nextInt(2)); + position.set(Position.KEY_CID, parser.nextInt()); + position.set(Position.KEY_LAC, parser.nextInt()); + position.set(Position.KEY_GSM, parser.nextInt()); + position.set(Position.KEY_ODOMETER, parser.nextLong() * 1000); + position.set(Position.KEY_INDEX, parser.nextInt()); + + return position; + } @Override protected Object decode( Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { @@ -184,9 +243,14 @@ public class Jt600ProtocolDecoder extends BaseProtocolDecoder { char first = (char) buf.getByte(0); if (first == '$') { - return decodeNormalMessage(buf, channel, remoteAddress); + return decodeBinary(buf, channel, remoteAddress); } else if (first == '(') { - return decodeAlertMessage(buf, channel, remoteAddress); + String sentence = buf.toString(StandardCharsets.US_ASCII); + if (sentence.contains("W01")) { + return decodeW01(sentence, channel, remoteAddress); + } else { + return decodeU01(sentence, channel, remoteAddress); + } } return null; diff --git a/test/org/traccar/protocol/Jt600ProtocolDecoderTest.java b/test/org/traccar/protocol/Jt600ProtocolDecoderTest.java index ba39b1846..4bbfb5627 100644 --- a/test/org/traccar/protocol/Jt600ProtocolDecoderTest.java +++ b/test/org/traccar/protocol/Jt600ProtocolDecoderTest.java @@ -11,15 +11,35 @@ public class Jt600ProtocolDecoderTest extends ProtocolTest { Jt600ProtocolDecoder decoder = new Jt600ProtocolDecoder(new Jt600Protocol()); + verifyPosition(decoder, buffer( + "(3301210003,U01,040812,185302,T,22.564025,N,113.242329,E,5.21,152,9,32%,00000000000011,10133,5173,22,100,1)")); + + verifyPosition(decoder, buffer( + "(3301210003,U02,040812,185302,T,22.564025,N,113.242329,E,5,152,9,32%,00000000000011,10133,5173,22,100,1)")); + + verifyPosition(decoder, buffer( + "(3301210003,U03,040812,185302,T,22.564025,N,113.242329,E,5,152,9,32%,00000000000011,10133,5173,22,100,1)")); + + verifyNothing(decoder, buffer( + "(3301210003,U04)")); + + verifyPosition(decoder, buffer( + "(3301210003,U06,1,040812,185302,T,22.564025,N,113.242329,E,5,152,9,32%,0000000000011,10133,5173,22,100,1,300,100,10)")); + + verifyPosition(decoder, buffer( + "(3460311327,U01,220916,135251,T,9.552607,N,13.658292,W,0.31,0,9,0%,00001001000000,11012,10,27,0,0,33)")); + + verifyPosition(decoder, buffer( + "(3460311327,U01,010100,000024,F,0.000000,N,0.000000,E,0.00,0,0,100%,00000001000000,263,1,18,0,0,33)")); + verifyNothing(decoder, buffer( "(3460311327,@JT)")); - /*verifyPosition(decoder, buffer( - "(3460311327,U01,010100,000024,F,0.000000,N,0.000000,E,0.00,0,0,100%,00000001000000,263,1,18,0,0,33)"));*/ + verifyPosition(decoder, buffer( + "(3460311327,U06,11,220916,135643,T,9.552553,N,13.658265,W,0.61,0,9,100%,00000001000000,11012,10,30,0,0,126,0,30)")); - //(3460311327,U06,11,220916,135643,T,9.552553,N,13.658265,W,0.61,0,9,100%,00000001000000,11012,10,30,0,0,126,0,30) - //(3460311327,U06,10,220916,140619,T,9.552495,N,13.658227,W,0.43,0,7,0%,00101001000000,11012,10,0,0,0,126,0,30) - //(3460311327,U01,220916,135251,T,9.552607,N,13.658292,W,0.31,0,9,0%,00001001000000,11012,10,27,0,0,33) + verifyPosition(decoder, buffer( + "(3460311327,U06,10,220916,140619,T,9.552495,N,13.658227,W,0.43,0,7,0%,00101001000000,11012,10,0,0,0,126,0,30)")); verifyPosition(decoder, binary( "24311021600111001B16021105591022329862114046227B0598095080012327951435161F"), @@ -41,11 +61,11 @@ public class Jt600ProtocolDecoderTest extends ProtocolTest { verifyPosition(decoder, buffer( "(3120820029,W01,02553.3555,E,2438.0997,S,A,171012,053339,0,8,20,6,31,5,20,20)")); - /*verifyPosition(decoder, text( ChannelBuffers.copiedBuffer( - "(3330104377,U01,010100,010228,F,00.000000,N,000.000000,E,0,0,0,0%,00001000000000,741,14,22,0,206)", StandardCharsets.US_ASCII))); + verifyPosition(decoder, buffer( + "(3330104377,U01,010100,010228,F,00.000000,N,000.000000,E,0,0,0,0%,00001000000000,741,14,22,0,206)")); - verifyPosition(decoder, text( ChannelBuffers.copiedBuffer( - "(6221107674,2,U09,129,2,A,280513113036,E,02711.0500,S,1721.0876,A,030613171243,E,02756.7618,S,2300.0325,3491,538200,14400,1)",StandardCharsets.US_ASCII))));*/ + verifyNothing(decoder, buffer( + "(6221107674,2,U09,129,2,A,280513113036,E,02711.0500,S,1721.0876,A,030613171243,E,02756.7618,S,2300.0325,3491,538200,14400,1)")); } -- cgit v1.2.3 From 137fe973583486303deaaea592a3a5f58304fa26 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 24 Sep 2016 00:39:56 +1200 Subject: Fix a crash in base pipeline factory --- src/org/traccar/BasePipelineFactory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/org/traccar/BasePipelineFactory.java b/src/org/traccar/BasePipelineFactory.java index 615251d5f..837712e84 100644 --- a/src/org/traccar/BasePipelineFactory.java +++ b/src/org/traccar/BasePipelineFactory.java @@ -229,7 +229,7 @@ public abstract class BasePipelineFactory implements ChannelPipelineFactory { pipeline.addLast("AlertEventHandler", alertEventHandler); } - if (alertEventHandler != null) { + if (ignitionEventHandler != null) { pipeline.addLast("IgnitionEventHandler", ignitionEventHandler); } -- cgit v1.2.3 From 8ff8eca68f5fa5ed4f4ab8cca68682a5387abe32 Mon Sep 17 00:00:00 2001 From: Daniel Bastos Date: Wed, 21 Sep 2016 09:26:40 -0300 Subject: Throws a RuntimeException if no configuration file was provided. --- src/org/traccar/Context.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/org/traccar/Context.java b/src/org/traccar/Context.java index c7359e76c..9e4d4a4f4 100644 --- a/src/org/traccar/Context.java +++ b/src/org/traccar/Context.java @@ -137,10 +137,12 @@ public final class Context { public static void init(String[] arguments) throws Exception { config = new Config(); - if (arguments.length > 0) { - config.load(arguments[0]); + if (arguments.length <= 0) { + throw new RuntimeException("Configuration file is not provided"); } + config.load(arguments[0]); + loggerEnabled = config.getBoolean("logger.enable"); if (loggerEnabled) { Log.setupLogger(config); -- cgit v1.2.3 From b15c19d95e5494ad91a9370669665b0ef6930160 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 24 Sep 2016 10:30:11 +1200 Subject: Support UDP for Cellocator protocol --- src/org/traccar/protocol/CellocatorProtocol.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/org/traccar/protocol/CellocatorProtocol.java b/src/org/traccar/protocol/CellocatorProtocol.java index 6d8eea8f5..69078cca0 100644 --- a/src/org/traccar/protocol/CellocatorProtocol.java +++ b/src/org/traccar/protocol/CellocatorProtocol.java @@ -15,8 +15,11 @@ */ package org.traccar.protocol; +import org.jboss.netty.bootstrap.ConnectionlessBootstrap; import org.jboss.netty.bootstrap.ServerBootstrap; import org.jboss.netty.channel.ChannelPipeline; +import org.jboss.netty.handler.codec.string.StringDecoder; +import org.jboss.netty.handler.codec.string.StringEncoder; import org.traccar.BaseProtocol; import org.traccar.TrackerServer; @@ -40,6 +43,15 @@ public class CellocatorProtocol extends BaseProtocol { }; server.setEndianness(ByteOrder.LITTLE_ENDIAN); serverList.add(server); + + server = new TrackerServer(new ConnectionlessBootstrap(), getName()) { + @Override + protected void addSpecificHandlers(ChannelPipeline pipeline) { + pipeline.addLast("objectDecoder", new CellocatorProtocolDecoder(CellocatorProtocol.this)); + } + }; + server.setEndianness(ByteOrder.LITTLE_ENDIAN); + serverList.add(server); } } -- cgit v1.2.3 From d8dd2091c36099e5f2e5eeb00734cad54f342cbb Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sat, 24 Sep 2016 10:30:46 +1200 Subject: Remove unused class imports --- src/org/traccar/protocol/CellocatorProtocol.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/org/traccar/protocol/CellocatorProtocol.java b/src/org/traccar/protocol/CellocatorProtocol.java index 69078cca0..e5f6ac8f6 100644 --- a/src/org/traccar/protocol/CellocatorProtocol.java +++ b/src/org/traccar/protocol/CellocatorProtocol.java @@ -18,8 +18,6 @@ package org.traccar.protocol; import org.jboss.netty.bootstrap.ConnectionlessBootstrap; import org.jboss.netty.bootstrap.ServerBootstrap; import org.jboss.netty.channel.ChannelPipeline; -import org.jboss.netty.handler.codec.string.StringDecoder; -import org.jboss.netty.handler.codec.string.StringEncoder; import org.traccar.BaseProtocol; import org.traccar.TrackerServer; -- cgit v1.2.3 From 7deebcef53759e0e11702af97462b821bfad5f5d Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Mon, 26 Sep 2016 04:23:29 +1300 Subject: Implement Aplicom H protocol --- .../traccar/protocol/AplicomProtocolDecoder.java | 80 ++++++++++++++++++++++ .../protocol/AplicomProtocolDecoderTest.java | 9 ++- 2 files changed, 86 insertions(+), 3 deletions(-) diff --git a/src/org/traccar/protocol/AplicomProtocolDecoder.java b/src/org/traccar/protocol/AplicomProtocolDecoder.java index abd30ee45..fa512d8b1 100644 --- a/src/org/traccar/protocol/AplicomProtocolDecoder.java +++ b/src/org/traccar/protocol/AplicomProtocolDecoder.java @@ -348,6 +348,84 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder { } } + private void decodeH(Position position, ChannelBuffer buf, int selector) { + + if ((selector & 0x0004) != 0) { + getLastLocation(position, new Date(buf.readUnsignedInt() * 1000)); + } else { + getLastLocation(position, null); + } + + if ((selector & 0x0040) != 0) { + buf.readUnsignedInt(); // reset time + } + + if ((selector & 0x2000) != 0) { + buf.readUnsignedShort(); // snapshot counter + } + + int index = 1; + while (buf.readableBytes() > 0) { + + position.set("h" + index + "Index", buf.readUnsignedByte()); + + buf.readUnsignedShort(); // length + + int n = buf.readUnsignedByte(); + int m = buf.readUnsignedByte(); + + position.set("h" + index + "XLength", n); + position.set("h" + index + "YLength", m); + + if ((selector & 0x0008) != 0) { + position.set("h" + index + "XType", buf.readUnsignedByte()); + position.set("h" + index + "YType", buf.readUnsignedByte()); + position.set("h" + index + "Parameters", buf.readUnsignedByte()); + } + + boolean percentageFormat = (selector & 0x0020) != 0; + + StringBuilder data = new StringBuilder(); + for (int i = 0; i < n * m; i++) { + if (percentageFormat) { + data.append(buf.readUnsignedByte() * 0.5).append("%").append(" "); + } else { + data.append(buf.readUnsignedShort()).append(" "); + } + } + + position.set("h" + index + "Data", data.toString().trim()); + + position.set("h" + index + "Total", buf.readUnsignedInt()); + + if ((selector & 0x0010) != 0) { + int k = buf.readUnsignedByte(); + + data = new StringBuilder(); + for (int i = 1; i < n; i++) { + if (k == 1) { + data.append(buf.readByte()).append(" "); + } else if (k == 2) { + data.append(buf.readShort()).append(" "); + } + } + position.set("h" + index + "XLimits", data.toString().trim()); + + data = new StringBuilder(); + for (int i = 1; i < m; i++) { + if (k == 1) { + data.append(buf.readByte()).append(" "); + } else if (k == 2) { + data.append(buf.readShort()).append(" "); + } + } + position.set("h" + index + "YLimits", data.toString().trim()); + } + + index += 1; + } + } + @Override protected Object decode(Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { @@ -389,6 +467,8 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder { decodeD(position, buf, selector, event); } else if (protocol == 'E') { decodeE(position, buf, selector); + } else if (protocol == 'H') { + decodeH(position, buf, selector); } else { return null; } diff --git a/test/org/traccar/protocol/AplicomProtocolDecoderTest.java b/test/org/traccar/protocol/AplicomProtocolDecoderTest.java index d6a29c6dd..cb39b5d2e 100644 --- a/test/org/traccar/protocol/AplicomProtocolDecoderTest.java +++ b/test/org/traccar/protocol/AplicomProtocolDecoderTest.java @@ -10,6 +10,12 @@ public class AplicomProtocolDecoderTest extends ProtocolTest { AplicomProtocolDecoder decoder = new AplicomProtocolDecoder(new AplicomProtocol()); + verifyAttributes(decoder, binary( + "48C1014143B4493145004900203F6D014B5557C20003000015060110FF00C800000000000000003D01141E283C500100260404010200000000000000000000000000C8000000000000010200110019001E0064019003E8")); + + verifyAttributes(decoder, binary( + "48c10144b9de54e6b2008700205f710a57d23ec957d23b8d00000000300d0106ff00000000000000000000000000000000000000000000000000000000000000010a141e28323c46505a646e7801000f020104ff000000000000000000010102000f020104ff000000000000000000010103000f020104ff000000000000000000010105000f020104ff0000000000000000000101")); + verifyAttributes(decoder, binary( "45c20145931876ffb2007100ffff6d00000057c6dd1970230d087b1f7d7f0000d0c1000000003580000035801f40ffff5001574442393036363035533132333435363700014142432d333435202020202020000000000000000000000000000000000000000000000001123130343632343639373030303030303100000000")); @@ -19,9 +25,6 @@ public class AplicomProtocolDecoderTest extends ProtocolTest { verifyAttributes(decoder, binary( "45c20145931876ffb2007100ffff6d00000057c6de0970270d087b1f7d7f0000d0c1000000003580000035801f40ffff5001574442393036363035533132333435363700014142432d333435202020202020000000000000000000000000000000000000000000000001123130343632343639373030303030303100000000")); - verifyNothing(decoder, binary( - "48c10144b9de54e6b2008700205f710a57d23ec957d23b8d00000000300d0106ff00000000000000000000000000000000000000000000000000000000000000010a141e28323c46505a646e7801000f020104ff000000000000000000010102000f020104ff000000000000000000010103000f020104ff000000000000000000010105000f020104ff0000000000000000000101")); - verifyAttributes(decoder, binary( "44c3014645e8ecff3c00ea03ffffbc00f457d68a6557d68a6303bb55fa018843da1100009881000000000000000000000000000000000000000000000000000000000000000000000000000000ff0056007600000000000000014542016d0001010095070e14014645e8ecff3c57d68a6403bb55fa018843dac0010d14ff050102030405060708090a0b0c0d0e0f10112a01010730343f3c1ff5cf01020700007d007d23010103022f2e01060c67452301efcdab8967452301010b10000000007d007d007d7dffffffffffff010a2400000000000000010000000000000000ffffffffffffffff00010001ffff00000000ffff010c02fec6")); -- cgit v1.2.3 From 14d317b6173badced85335bf8ef2ad478006a404 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Mon, 26 Sep 2016 06:12:18 +1300 Subject: Implement Aplicom EB protocol --- .../traccar/protocol/AplicomProtocolDecoder.java | 73 +++++++++++++++++++++- 1 file changed, 71 insertions(+), 2 deletions(-) diff --git a/src/org/traccar/protocol/AplicomProtocolDecoder.java b/src/org/traccar/protocol/AplicomProtocolDecoder.java index fa512d8b1..d1f92ea0a 100644 --- a/src/org/traccar/protocol/AplicomProtocolDecoder.java +++ b/src/org/traccar/protocol/AplicomProtocolDecoder.java @@ -81,7 +81,7 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder { private static final int EVENT_DATA = 119; - private void decodeEventData(int event, ChannelBuffer buf) { + private void decodeEventData(Position position, ChannelBuffer buf, int event) { switch (event) { case 2: case 40: @@ -108,6 +108,9 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder { case 130: buf.readUnsignedInt(); // incorrect break; + case 188: + decodeEB(position, buf); + break; default: break; } @@ -283,7 +286,7 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder { } if ((selector & 0x1000) != 0) { - decodeEventData(event, buf); + decodeEventData(position, buf, event); } if (Context.getConfig().getBoolean(getProtocolName() + ".can") @@ -426,6 +429,72 @@ public class AplicomProtocolDecoder extends BaseProtocolDecoder { } } + private void decodeEB(Position position, ChannelBuffer buf) { + + if (buf.readByte() != (byte) 'E' || buf.readByte() != (byte) 'B') { + return; + } + + buf.readUnsignedByte(); // version + buf.readUnsignedShort(); // event + buf.readUnsignedByte(); // data validity + buf.readUnsignedByte(); // towed + buf.readUnsignedShort(); // length + + while (buf.readableBytes() > 0) { + buf.readUnsignedByte(); // towed position + int type = buf.readUnsignedByte(); + int length = buf.readUnsignedByte(); + + if (type == 0x01) { + position.set("brakeFlags", ChannelBuffers.hexDump(buf.readBytes(length))); + } else if (type == 0x02) { + position.set("wheelSpeed", buf.readUnsignedShort() / 256.0); + position.set("wheelSpeedDifference", buf.readUnsignedShort() / 256.0 - 125.0); + position.set("lateralAcceleration", buf.readUnsignedByte() / 10.0 - 12.5); + position.set("vehicleSpeed", buf.readUnsignedShort() / 256.0); + } else if (type == 0x03) { + position.set("axleLoadSum", buf.readUnsignedShort() * 2); + } else if (type == 0x04) { + position.set("tyrePressure", buf.readUnsignedByte() * 10); + position.set("pneumaticPressure", buf.readUnsignedByte() * 5); + } else if (type == 0x05) { + position.set("brakeLining", buf.readUnsignedByte() * 0.4); + position.set("brakeTemperature", buf.readUnsignedByte() * 10); + } else if (type == 0x06) { + position.set("totalDistance", buf.readUnsignedInt() * 5); + position.set("tripDistance", buf.readUnsignedInt() * 5); + position.set("serviceDistance", (buf.readUnsignedInt() - 2105540607) * 5); + } else if (type == 0x0A) { + position.set("brakeData", ChannelBuffers.hexDump(buf.readBytes(length))); + } else if (type == 0x0B) { + position.set("brakeMinMaxData", ChannelBuffers.hexDump(buf.readBytes(length))); + } else if (type == 0x0C) { + position.set("missingPgn", ChannelBuffers.hexDump(buf.readBytes(length))); + } else if (type == 0x0D) { + switch (buf.readUnsignedByte()) { + case 1: + position.set("brakeManufacturer", "Wabco"); + break; + case 2: + position.set("brakeManufacturer", "Knorr"); + break; + case 3: + position.set("brakeManufacturer", "Haldex"); + break; + default: + position.set("brakeManufacturer", "Unknown"); + break; + } + buf.readUnsignedByte(); + buf.readBytes(17); // vin + position.set("towedDetectionStatus", buf.readUnsignedByte()); + } else if (type == 0x0E) { + buf.skipBytes(length); + } + } + } + @Override protected Object decode(Channel channel, SocketAddress remoteAddress, Object msg) throws Exception { -- cgit v1.2.3 From 795259258c785bc1122d667048f9d6536c8105c6 Mon Sep 17 00:00:00 2001 From: Abyss777 Date: Mon, 26 Sep 2016 11:57:01 +0500 Subject: Change aliases API path --- src/org/traccar/api/resource/AttributeAliasResource.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/org/traccar/api/resource/AttributeAliasResource.java b/src/org/traccar/api/resource/AttributeAliasResource.java index 6dbcf6ce8..2417fb0ec 100644 --- a/src/org/traccar/api/resource/AttributeAliasResource.java +++ b/src/org/traccar/api/resource/AttributeAliasResource.java @@ -35,7 +35,7 @@ import org.traccar.Context; import org.traccar.api.BaseResource; import org.traccar.model.AttributeAlias; -@Path("devices/aliases") +@Path("attributes/aliases") @Produces(MediaType.APPLICATION_JSON) @Consumes(MediaType.APPLICATION_JSON) public class AttributeAliasResource extends BaseResource { -- cgit v1.2.3