diff options
Diffstat (limited to 'www')
| -rw-r--r-- | www/index.html | 2 | ||||
| -rw-r--r-- | www/js/DataModel.js | 6 | ||||
| -rw-r--r-- | www/js/DevOptionsCtrl.js | 10 | ||||
| -rw-r--r-- | www/js/EventCtrl.js | 6 | ||||
| -rw-r--r-- | www/js/EventModalCtrl.js | 28 | ||||
| -rw-r--r-- | www/js/EventServer.js | 8 | ||||
| -rw-r--r-- | www/js/LogCtrl.js | 4 | ||||
| -rw-r--r-- | www/js/LoginCtrl.js | 2 | ||||
| -rw-r--r-- | www/js/MontageCtrl.js | 12 | ||||
| -rw-r--r-- | www/js/MontageHistoryCtrl.js | 10 | ||||
| -rw-r--r-- | www/js/StateCtrl.js | 10 | ||||
| -rw-r--r-- | www/js/TimelineCtrl.js | 6 | ||||
| -rw-r--r-- | www/js/WizardCtrl.js | 32 | ||||
| -rw-r--r-- | www/js/app.js | 8 | ||||
| -rw-r--r-- | www/lang/locale-en.json | 41 | ||||
| -rw-r--r-- | www/lang/locale-it.json | 281 |
16 files changed, 385 insertions, 81 deletions
diff --git a/www/index.html b/www/index.html index 43ed3c7d..308b9608 100644 --- a/www/index.html +++ b/www/index.html @@ -209,7 +209,7 @@ <ion-item href="#/monitors" menu-close> <span class=" item-icon-left"> - <i class="icon ion-ios-monitor-outline"></i> + <i class="icon ion-ios-videocam-outline"></i> </span>{{'kMenuMonitors'|translate}} </ion-item> diff --git a/www/js/DataModel.js b/www/js/DataModel.js index c3c5be36..e45829af 100644 --- a/www/js/DataModel.js +++ b/www/js/DataModel.js @@ -337,7 +337,7 @@ angular.module('zmApp.controllers') { if (urls.length > 0 && $rootScope.userCancelledAuth != true) { - $ionicLoading.show({template: 'trying ' + urls[0].server}); + $ionicLoading.show({template: $translate.instant('kTrying') + urls[0].server}); zmLog ("Reachability test.." + urls[0].url); return $http.get(urls[0].url).then(function () { zmLog ("Success: reachability on "+ urls[0].url); @@ -1043,7 +1043,7 @@ angular.module('zmApp.controllers') $ionicLoading.show({ - template: 'loading monitors...', + template: $translate.instant('kLoadingMonitors'), animation: 'fade-in', showBackdrop: true, duration: zm.loadingTimeout, @@ -1248,7 +1248,7 @@ angular.module('zmApp.controllers') //console.log (">>>>>Constructed URL " + myurl); $ionicLoading.show({ - template: 'calculating events list size...', + template: $translate.instant('kCalcEventSize')+'...', animation: 'fade-in', showBackdrop: true, duration: zm.loadingTimeout, diff --git a/www/js/DevOptionsCtrl.js b/www/js/DevOptionsCtrl.js index d114f4de..580e1214 100644 --- a/www/js/DevOptionsCtrl.js +++ b/www/js/DevOptionsCtrl.js @@ -58,15 +58,7 @@ angular.module('zmApp.controllers').controller('zmApp.DevOptionsCtrl', ['$scope' { ZMDataModel.zmDebug("SaveDevOptions: called"); - /*if (parseInt($scope.loginData.maxMontage) > zm.safeMontageLimit) { - $rootScope.zmPopup= SecuredPopups.show('alert',{ - title: 'Note', - template: 'You have selected to view more than 10 monitors in the Montage screen. Note that this is very resource intensive and may load the server or cause issues in the application. If you are not sure, please consider limiting this value to 10' - }); - ZMDataModel.zmDebug("SaveDevOptions: " + $scope.loginData.maxMontage + - " monitors for montage"); - }*/ - + if ((parseInt($scope.loginData.maxFPS) < 0) || (parseInt($scope.loginData.maxFPS) > zm.maxFPS)) { $scope.loginData.maxFPS = zm.defaultFPS.toString(); diff --git a/www/js/EventCtrl.js b/www/js/EventCtrl.js index b972b33e..e0064b3b 100644 --- a/www/js/EventCtrl.js +++ b/www/js/EventCtrl.js @@ -997,7 +997,7 @@ angular.module('zmApp.controllers') //$state.go($state.current, {}, {reload: true}); $rootScope.rand = Math.floor(Math.random() * (999999 - 111111 + 1)) + 111111; $ionicLoading.show({ - template: "refreshed view", + template: $translate.instant('kRefreshedView'), noBackdrop: true, duration: 3000 }); @@ -1238,7 +1238,7 @@ angular.module('zmApp.controllers') $scope.modal = modal; $ionicLoading.show({ - template: "please wait...", + template: $translate.instant('kPleaseWait')+"...", noBackdrop: true, duration: 10000 }); @@ -1295,7 +1295,7 @@ angular.module('zmApp.controllers') enableLoadMore = false; //console.log("**** CANCELLED ****"); $ionicLoading.show({ - template: 'Search Cancelled', + template: $translate.instant('kSearchCancelled'), animation: 'fade-in', showBackdrop: true, duration: 2000, diff --git a/www/js/EventModalCtrl.js b/www/js/EventModalCtrl.js index 3783ff72..0df9dd4a 100644 --- a/www/js/EventModalCtrl.js +++ b/www/js/EventModalCtrl.js @@ -6,7 +6,7 @@ -angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$rootScope', 'zm', 'ZMDataModel', '$ionicSideMenuDelegate', '$timeout', '$interval', '$ionicModal', '$ionicLoading', '$http', '$state', '$stateParams', '$ionicHistory', '$ionicScrollDelegate', '$q', '$sce', 'carouselUtils', '$ionicPopup', function ($scope, $rootScope, zm, ZMDataModel, $ionicSideMenuDelegate, $timeout, $interval, $ionicModal, $ionicLoading, $http, $state, $stateParams, $ionicHistory, $ionicScrollDelegate, $q, $sce, carouselUtils, $ionicPopup) { +angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$rootScope', 'zm', 'ZMDataModel', '$ionicSideMenuDelegate', '$timeout', '$interval', '$ionicModal', '$ionicLoading', '$http', '$state', '$stateParams', '$ionicHistory', '$ionicScrollDelegate', '$q', '$sce', 'carouselUtils', '$ionicPopup', '$translate', function ($scope, $rootScope, zm, ZMDataModel, $ionicSideMenuDelegate, $timeout, $interval, $ionicModal, $ionicLoading, $http, $state, $stateParams, $ionicHistory, $ionicScrollDelegate, $q, $sce, carouselUtils, $ionicPopup, $translate) { // from parent scope @@ -65,7 +65,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro $rootScope.authSession = "undefined"; $ionicLoading.show({ - template: 'negotiating stream authentication...', + template: $translate.instant('kNegotiatingStreamAuth'), animation: 'fade-in', showBackdrop: true, duration: zm.loadingTimeout, @@ -378,7 +378,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro function SaveSuccess() { $ionicLoading.show({ - template: "done!", + template: $translate.instant('kDone'), noBackdrop: true, duration: 1000 }); @@ -387,7 +387,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro function SaveError(e) { $ionicLoading.show({ - template: "error - could not save", + template: $translate.instant('kErrorSave'), noBackdrop: true, duration: 2000 }); @@ -428,7 +428,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro $scope.isPaused = true; $ionicLoading.show({ - template: "please wait...", + template: $translate.instant('kPleaseWait'), noBackdrop: true, duration: zm.httpTimeout }); @@ -501,7 +501,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro ZMDataModel.zmLog("snapshot API Error: Could not get frames " + JSON.stringify(err)); $ionicLoading.show({ - template: "error retrieving frames", + template: $translate.instant('kErrorRetrievingFrames'), noBackdrop: true, duration: 4000 }); @@ -544,7 +544,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro $rootScope.zmPopup = $ionicPopup.show({ - template: '<center>Frame: {{slideIndex+1}} of {{slideLastIndex+1}}</center><br/><img src="{{selectEventUrl}}" width="100%" />', + template: '<center>Frame: {{slideIndex+1}} / {{slideLastIndex+1}}</center><br/><img src="{{selectEventUrl}}" width="100%" />', title: 'Select ' + (onlyAlarms ? 'Alarmed ' : '') + 'frame to save', subTitle: 'use left and right arrows to change', scope: $scope, @@ -621,7 +621,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro function saveNow() { $ionicLoading.show({ - template: "saving snapshot...", + template: $translate.instant('kSavingSnapshot')+"...", noBackdrop: true, duration: zm.httpTimeout }); @@ -841,7 +841,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro if ($scope.defaultVideo !== undefined && $scope.defaultVideo != '') { $ionicLoading.show({ - template: "Please use video player controls for H264 events. ZoneMinder doesn't yet support zms controls", + template: $translate.instant('kUseVideoControls'), noBackdrop: true, duration: 3000 }); @@ -873,7 +873,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro } $ionicLoading.show({ - template: "please wait...", + template: $translate.instant('kPleaseWait')+"...", noBackdrop: true, duration: zm.httpTimeout }); @@ -922,7 +922,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro ZMDataModel.zmDebug("Set playback speed to " + $scope.eventSpeed); $ionicLoading.show({ - template: 'playback interval: ' + $scope.eventSpeed.toFixed(3) + "ms", + template: $translate.instant('kPlaybackInterval')+': ' + $scope.eventSpeed.toFixed(3) + "ms", animation: 'fade-in', showBackdrop: false, duration: 1500, @@ -1059,7 +1059,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro ZMDataModel.zmLog("Event jump called with:" + eid); if (eid == "") { $ionicLoading.show({ - template: "no more events", + template: $translate.instant('kNoMoreEvents'), noBackdrop: true, duration: 2000 }); @@ -1112,7 +1112,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro if ($scope.defaultVideo !== undefined && $scope.defaultVideo != '') { $ionicLoading.show({ - template: "Event navigation is not available with video feeds. ZoneMinder doesn't yet support them", + template: $translate.instant('kEventNavVidFeeds', noBackdrop: true, duration: 3000 }); @@ -1124,7 +1124,7 @@ angular.module('zmApp.controllers').controller('EventModalCtrl', ['$scope', '$ro ZMDataModel.zmDebug("Sending " + cmd + " to " + connkey); $ionicLoading.show({ - template: "switching events..", + template: $translate.instant('kSwitchingEvents')+"...", noBackdrop: true, duration: zm.httpTimeout }); diff --git a/www/js/EventServer.js b/www/js/EventServer.js index 08e2249d..9b0103cf 100644 --- a/www/js/EventServer.js +++ b/www/js/EventServer.js @@ -11,8 +11,8 @@ angular.module('zmApp.controllers') -.factory('EventServer', ['ZMDataModel', '$rootScope', '$websocket', '$ionicPopup', '$timeout', '$q', 'zm', '$ionicPlatform', '$cordovaMedia', function - (ZMDataModel, $rootScope, $websocket, $ionicPopup, $timeout, $q, zm, $ionicPlatform, $cordovaMedia) { +.factory('EventServer', ['ZMDataModel', '$rootScope', '$websocket', '$ionicPopup', '$timeout', '$q', 'zm', '$ionicPlatform', '$cordovaMedia', '$translate', function + (ZMDataModel, $rootScope, $websocket, $ionicPopup, $timeout, $q, zm, $ionicPlatform, $cordovaMedia, $translate) { var ws; @@ -129,8 +129,8 @@ angular.module('zmApp.controllers') str.version = "0.1"; if (ZMDataModel.versionCompare(str.version, zm.minEventServerVersion) == -1) { $rootScope.zmPopup= $ionicPopup.alert({ - title: 'Event Server version not supported', - template: 'You are running version ' + str.version + ". Please upgrade to " + + title: $translate.instant('kEventServerVersionTitle'), + template: $translate.instant('kEventServerVersionBody1') + " " + str.version + ". "+ $translate.instant('kEventServerVersionBody2') + zm.minEventServerVersion }); } diff --git a/www/js/LogCtrl.js b/www/js/LogCtrl.js index 83857d75..6a366902 100644 --- a/www/js/LogCtrl.js +++ b/www/js/LogCtrl.js @@ -39,8 +39,8 @@ angular.module('zmApp.controllers').controller('zmApp.LogCtrl', ['$scope', '$roo $scope.deleteLogs = function () { $rootScope.zmPopup = $ionicPopup.confirm({ - title: 'Please Confirm', - template: 'Are you sure you want to delete logs?', + title: $translate.instant('kPleaseConfirm'), + template: $translate.instant('kDeleteLogsConfirm'), }); $rootScope.zmPopup.then(function (res) { diff --git a/www/js/LoginCtrl.js b/www/js/LoginCtrl.js index f973bf5c..3347bdb9 100644 --- a/www/js/LoginCtrl.js +++ b/www/js/LoginCtrl.js @@ -582,7 +582,7 @@ angular.module('zmApp.controllers').controller('zmApp.LoginCtrl', ['$scope', '$r if (showalert) { $rootScope.zmPopup = SecuredPopups.show('alert',{ - title: 'Login validated', + title: $translate.instant('kLoginValidatedTitle'), template: loginStatus }).then(function (res) { diff --git a/www/js/MontageCtrl.js b/www/js/MontageCtrl.js index e4ccabc8..e58af3c5 100644 --- a/www/js/MontageCtrl.js +++ b/www/js/MontageCtrl.js @@ -4,7 +4,7 @@ /* global cordova,StatusBar,angular,console,ionic,Packery, Draggabilly, imagesLoaded */ -angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', '$rootScope', 'ZMDataModel', 'message', '$ionicSideMenuDelegate', '$timeout', '$interval', '$ionicModal', '$ionicLoading', '$http', '$state', '$ionicPopup', '$stateParams', '$ionicHistory', '$ionicScrollDelegate', '$ionicPlatform', 'zm', '$ionicPopover', '$controller', 'imageLoadingDataShare', '$window', '$localstorage', function ($scope, $rootScope, ZMDataModel, message, $ionicSideMenuDelegate, $timeout, $interval, $ionicModal, $ionicLoading, $http, $state, $ionicPopup, $stateParams, $ionicHistory, $ionicScrollDelegate, $ionicPlatform, zm, $ionicPopover, $controller, imageLoadingDataShare, $window, $localstorage) { +angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', '$rootScope', 'ZMDataModel', 'message', '$ionicSideMenuDelegate', '$timeout', '$interval', '$ionicModal', '$ionicLoading', '$http', '$state', '$ionicPopup', '$stateParams', '$ionicHistory', '$ionicScrollDelegate', '$ionicPlatform', 'zm', '$ionicPopover', '$controller', 'imageLoadingDataShare', '$window', '$localstorage', '$translate', function ($scope, $rootScope, ZMDataModel, message, $ionicSideMenuDelegate, $timeout, $interval, $ionicModal, $ionicLoading, $http, $state, $ionicPopup, $stateParams, $ionicHistory, $ionicScrollDelegate, $ionicPlatform, zm, $ionicPopover, $controller, imageLoadingDataShare, $window, $localstorage, $translate) { //--------------------------------------------------------------------- // Controller main @@ -77,7 +77,7 @@ function initPackery() $ionicLoading.show({ - template: "arranging images...", + template: $translate.instant('kArrangingImages'), noBackdrop: true, duration: zm.loadingTimeout }); @@ -684,7 +684,7 @@ function initPackery() $scope.modal = modal; $ionicLoading.show({ - template: "please wait...", + template: $translate.instant('kPleaseWait'), noBackdrop: true, duration: zm.loadingTimeout }); @@ -858,8 +858,8 @@ $scope.$on('$ionicView.afterEnter', function () { if ($scope.MontageMonitors.length == 0) { $rootScope.zmPopup = $ionicPopup.alert({ - title: "No Monitors found", - template: "Please check your credentials" + title: $translate.instant('kNoMonitors'), + template: $translate.instant('kCheckCredentials') }); $ionicHistory.nextViewOptions({ disableBack: true @@ -874,7 +874,7 @@ $scope.$on('$ionicView.afterEnter', function () { $rootScope.authSession = "undefined"; $ionicLoading.show({ - template: 'negotiating stream authentication...', + template: $translate.instant('kNegotiatingStreamAuth'), animation: 'fade-in', showBackdrop: true, duration: zm.loadingTimeout, diff --git a/www/js/MontageHistoryCtrl.js b/www/js/MontageHistoryCtrl.js index 2a5cc31f..ad5d6af1 100644 --- a/www/js/MontageHistoryCtrl.js +++ b/www/js/MontageHistoryCtrl.js @@ -6,7 +6,7 @@ // FIXME: This is a copy of montageCtrl - needs a lot of code cleanup -angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$scope', '$rootScope', 'ZMDataModel', 'message', '$ionicSideMenuDelegate', '$timeout', '$interval', '$ionicModal', '$ionicLoading', '$http', '$state', '$ionicPopup', '$stateParams', '$ionicHistory', '$ionicScrollDelegate', '$ionicPlatform', 'zm', '$ionicPopover', '$controller', 'imageLoadingDataShare', '$window', function ($scope, $rootScope, ZMDataModel, message, $ionicSideMenuDelegate, $timeout, $interval, $ionicModal, $ionicLoading, $http, $state, $ionicPopup, $stateParams, $ionicHistory, $ionicScrollDelegate, $ionicPlatform, zm, $ionicPopover, $controller, imageLoadingDataShare, $window) { +angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$scope', '$rootScope', 'ZMDataModel', 'message', '$ionicSideMenuDelegate', '$timeout', '$interval', '$ionicModal', '$ionicLoading', '$http', '$state', '$ionicPopup', '$stateParams', '$ionicHistory', '$ionicScrollDelegate', '$ionicPlatform', 'zm', '$ionicPopover', '$controller', 'imageLoadingDataShare', '$window', '$translate', function ($scope, $rootScope, ZMDataModel, message, $ionicSideMenuDelegate, $timeout, $interval, $ionicModal, $ionicLoading, $http, $state, $ionicPopup, $stateParams, $ionicHistory, $ionicScrollDelegate, $ionicPlatform, zm, $ionicPopover, $controller, imageLoadingDataShare, $window, $translate) { //-------------------------------------- @@ -353,7 +353,7 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc if (disp) { $ionicLoading.hide(); $ionicLoading.show({ - template: "please wait...", + template: $translate.instant('kPleaseWait')+"...", noBackdrop: true, duration: zm.loadingTimeout, }); @@ -600,8 +600,8 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc if (tempMonitors.length == 0) { $rootScope.zmPopup= $ionicPopup.alert({ - title: "No Monitors found", - template: "Please check your credentials" + title: $translate.instant('kNoMonitors'), + template:$translate.instant('kPleaseCheckCredentials') }); $ionicHistory.nextViewOptions({ disableBack: true @@ -740,7 +740,7 @@ angular.module('zmApp.controllers').controller('zmApp.MontageHistoryCtrl', ['$sc $rootScope.authSession = "undefined"; $ionicLoading.show({ - template: 'negotiating stream authentication...', + template: $translate.instant('kNegotiatingStreamAuth'), animation: 'fade-in', showBackdrop: true, duration: zm.loadingTimeout, diff --git a/www/js/StateCtrl.js b/www/js/StateCtrl.js index 97fd234a..25e88247 100644 --- a/www/js/StateCtrl.js +++ b/www/js/StateCtrl.js @@ -4,8 +4,8 @@ // controller for State View -angular.module('zmApp.controllers').controller('zmApp.StateCtrl', ['$ionicPopup', '$scope', 'zm', 'ZMDataModel', '$ionicSideMenuDelegate', '$ionicLoading', '$ionicModal', '$state', '$http', '$rootScope', '$timeout', '$ionicHistory', function ( - $ionicPopup, $scope, zm, ZMDataModel, $ionicSideMenuDelegate, $ionicLoading, $ionicModal, $state, $http, $rootScope, $timeout,$ionicHistory) { +angular.module('zmApp.controllers').controller('zmApp.StateCtrl', ['$ionicPopup', '$scope', 'zm', 'ZMDataModel', '$ionicSideMenuDelegate', '$ionicLoading', '$ionicModal', '$state', '$http', '$rootScope', '$timeout', '$ionicHistory', '$translate', function ( + $ionicPopup, $scope, zm, ZMDataModel, $ionicSideMenuDelegate, $ionicLoading, $ionicModal, $state, $http, $rootScope, $timeout,$ionicHistory, $translate) { //---------------------------------------------------------------------- // Controller main @@ -306,15 +306,15 @@ angular.module('zmApp.controllers').controller('zmApp.StateCtrl', ['$ionicPopup' if (inProgress) { ZMDataModel.zmDebug("StateCtrl/controlZM: operation in progress"); $ionicPopup.alert({ - title: "Operation in Progress", - template: "The previous operation is still in progress. Please wait..." + title: $translate.instant('kOperationInProgressTitle'), + template: $translate.instant('kOperationInProgressBody') }); return; } var statesearch = "startstoprestart"; - var promptstring = 'Are you sure you want to ' + str + ' Zoneminder?'; + var promptstring = $translate.instant('kStateAreYouSure') + str + ' Zoneminder?'; if (statesearch.indexOf(str) == -1) { promptstring = "Are you sure you want to change state to " + str; } diff --git a/www/js/TimelineCtrl.js b/www/js/TimelineCtrl.js index 337b611b..9261130d 100644 --- a/www/js/TimelineCtrl.js +++ b/www/js/TimelineCtrl.js @@ -13,7 +13,7 @@ // FIXME: too much redundant code between EventCtrl and Timeline // Move to ModalCtrl and see if it works -angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPlatform', '$scope', 'zm', 'ZMDataModel', '$ionicSideMenuDelegate', '$rootScope', '$http', '$q', 'message', '$state', '$ionicLoading', '$ionicPopover', '$ionicScrollDelegate', '$ionicModal', '$timeout', '$ionicContentBanner', '$ionicHistory', '$sce', '$stateParams', function ($ionicPlatform, $scope, zm, ZMDataModel, $ionicSideMenuDelegate, $rootScope, $http, $q, message, $state, $ionicLoading, $ionicPopover, $ionicScrollDelegate, $ionicModal, $timeout, $ionicContentBanner, $ionicHistory, $sce, $stateParams) { +angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPlatform', '$scope', 'zm', 'ZMDataModel', '$ionicSideMenuDelegate', '$rootScope', '$http', '$q', 'message', '$state', '$ionicLoading', '$ionicPopover', '$ionicScrollDelegate', '$ionicModal', '$timeout', '$ionicContentBanner', '$ionicHistory', '$sce', '$stateParams', '$translate', function ($ionicPlatform, $scope, zm, ZMDataModel, $ionicSideMenuDelegate, $rootScope, $http, $q, message, $state, $ionicLoading, $ionicPopover, $ionicScrollDelegate, $ionicModal, $timeout, $ionicContentBanner, $ionicHistory, $sce, $stateParams, $translate) { //console.log("Inside Timeline controller"); $scope.openMenu = function () { @@ -194,7 +194,7 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla $scope.modal = modal; $ionicLoading.show({ - template: "please wait...", + template: $translate.instant('kPleaseWait')+"...", noBackdrop: true, duration: 10000, @@ -505,7 +505,7 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla curCount = count; $ionicLoading.show({ - template: "Loading graph...", + template: $translate.instant('kLoadingGraph')+"...", animation: 'fade-in', showBackdrop: true, maxWidth: 200, diff --git a/www/js/WizardCtrl.js b/www/js/WizardCtrl.js index 2e8ae18d..b241304d 100644 --- a/www/js/WizardCtrl.js +++ b/www/js/WizardCtrl.js @@ -2,7 +2,7 @@ /* jslint browser: true*/ /* global cordova,StatusBar,angular,console, Masonry, URI */ -angular.module('zmApp.controllers').controller('zmApp.WizardCtrl', ['$scope', '$rootScope', '$ionicModal', 'ZMDataModel', '$ionicSideMenuDelegate', '$ionicHistory', '$state', '$ionicPopup', 'SecuredPopups', '$http', '$q', 'zm','$ionicLoading', 'WizardHandler', function ($scope, $rootScope, $ionicModal, ZMDataModel, $ionicSideMenuDelegate, $ionicHistory, $state, $ionicPopup, SecuredPopups, $http, $q, zm, $ionicLoading, WizardHandler) { +angular.module('zmApp.controllers').controller('zmApp.WizardCtrl', ['$scope', '$rootScope', '$ionicModal', 'ZMDataModel', '$ionicSideMenuDelegate', '$ionicHistory', '$state', '$ionicPopup', 'SecuredPopups', '$http', '$q', 'zm','$ionicLoading', 'WizardHandler','$translate', function ($scope, $rootScope, $ionicModal, ZMDataModel, $ionicSideMenuDelegate, $ionicHistory, $state, $ionicPopup, SecuredPopups, $http, $q, zm, $ionicLoading, WizardHandler, $translate) { $scope.openMenu = function () { $ionicSideMenuDelegate.toggleLeft(); }; @@ -208,7 +208,7 @@ angular.module('zmApp.controllers').controller('zmApp.WizardCtrl', ['$scope', '$ function continueCgi (urls) { $ionicLoading.show({ - template: "discovering...", + template: $translate.instant('kDiscovering')+"...", noBackdrop: true, duration: zm.httpTimeout }); @@ -225,7 +225,7 @@ angular.module('zmApp.controllers').controller('zmApp.WizardCtrl', ['$scope', '$ $ionicLoading.show({ - template: "discovering...", + template: $translate.instant('kDiscovering')+"...", noBackdrop: true, duration: zm.httpTimeout }); @@ -421,7 +421,7 @@ angular.module('zmApp.controllers').controller('zmApp.WizardCtrl', ['$scope', '$ // use it even after logging in ZMDataModel.zmLog("zmWizard: logging out"); $ionicLoading.show({ - template: "cleaning up...", + template: $translate.instant('kCleaningUp')+"...", noBackdrop: true, duration: zm.httpTimeout }); @@ -434,7 +434,7 @@ angular.module('zmApp.controllers').controller('zmApp.WizardCtrl', ['$scope', '$ // The logic will be: // Login then do an api detect and cgi-detect together $ionicLoading.show({ - template: "discovering portal...", + template: $translate.instant('kDiscoveringPortal')+"...", noBackdrop: true, duration: zm.httpTimeout }); @@ -445,7 +445,7 @@ angular.module('zmApp.controllers').controller('zmApp.WizardCtrl', ['$scope', '$ // API Detection $ionicLoading.show({ - template: "discovering api...", + template: $translate.instant('kDiscoveringAPI')+"...", noBackdrop: true, duration: zm.httpTimeout }); @@ -455,7 +455,7 @@ angular.module('zmApp.controllers').controller('zmApp.WizardCtrl', ['$scope', '$ ZMDataModel.zmLog ("zmWizard: API succeeded"); $ionicLoading.show({ - template: "discovering cgi-bin...", + template: $translate.instant('kDiscoveringCGI')+"...", noBackdrop: true, duration: zm.httpTimeout }); @@ -521,10 +521,10 @@ angular.module('zmApp.controllers').controller('zmApp.WizardCtrl', ['$scope', '$ if ($scope.wizard.useauth) { if (!$scope.wizard.usezmauth && !$scope.wizard.usebasicauth) { $rootScope.zmPopup = SecuredPopups.show('show', { - title: 'Whoops!', - template: 'You need to enable at least one authentication mechanism', + title: $translate.instant('kError'), + template: $translate.instant('kOneAuth'), buttons: [{ - text: 'Ok' + text: $translate.instant('kButtonOk') }] }); @@ -533,10 +533,10 @@ angular.module('zmApp.controllers').controller('zmApp.WizardCtrl', ['$scope', '$ if ($scope.wizard.usezmauth) { if ((!$scope.wizard.zmuser) || (!$scope.wizard.zmpassword)) { $rootScope.zmPopup = SecuredPopups.show('show', { - title: 'Whoops!', - template: 'Please enter a valid username and password for ZM auth', + title: $translate.instant('kError'), + template: $translate.instant('kValidNameZMAuth'), buttons: [{ - text: 'Ok' + text: $translate.instant('kButtonOk') }] }); @@ -547,10 +547,10 @@ angular.module('zmApp.controllers').controller('zmApp.WizardCtrl', ['$scope', '$ if ($scope.wizard.usebasicauth) { if ((!$scope.wizard.basicuser) || (!$scope.wizard.basicpassword)) { $rootScope.zmPopup = SecuredPopups.show('show', { - title: 'Whoops!', - template: 'Please enter a valid username and password for basic auth', + title: $translate.instant('kError'), + template: $translate.instant('kValidNameBasicAuth'), buttons: [{ - text: 'Ok' + text: $translate.instant('kButtonOk') }] }); diff --git a/www/js/app.js b/www/js/app.js index 71015c7d..f0f99be9 100644 --- a/www/js/app.js +++ b/www/js/app.js @@ -715,7 +715,7 @@ angular.module('zmApp', [ // This service automatically logs into ZM at periodic intervals //------------------------------------------------------------------ -.factory('zmAutoLogin', function ($interval, ZMDataModel, $http, zm, $browser, $timeout, $q, $rootScope, $ionicLoading, $ionicPopup, $state, $ionicContentBanner, EventServer, $ionicHistory) { +.factory('zmAutoLogin', function ($interval, ZMDataModel, $http, zm, $browser, $timeout, $q, $rootScope, $ionicLoading, $ionicPopup, $state, $ionicContentBanner, EventServer, $ionicHistory, $translate) { var zmAutoLoginHandle; //------------------------------------------------------------------ @@ -864,7 +864,7 @@ angular.module('zmApp', [ ], "", 8000); var alertPopup = $ionicPopup.alert({ title: 'reCaptcha enabled', - template: 'Looks like you have enabled reCaptcha. It needs to be turned off for '+$rootScope.appName+' to work' + template: $translate.instant('kRecaptcha') }); @@ -1163,8 +1163,8 @@ angular.module('zmApp', [ if (requireLogin) { $ionicPopup.alert({ - title: "Credentials Required", - template: "Please provide your ZoneMinder credentials" + title: $translate.instant('kCredentialsTitle'), + template: $translate.instant('kCredentialsBody') }); // for whatever reason, .go was resulting in digest loops. // if you don't prevent, states will stack diff --git a/www/lang/locale-en.json b/www/lang/locale-en.json index 57bdb142..427ad915 100644 --- a/www/lang/locale-en.json +++ b/www/lang/locale-en.json @@ -10,6 +10,7 @@ "kAnalyze" : "Analyze", "kApiUrl" : "ZM api url", "kApplyingChanges" : "Applying changes. Please wait", + "kArrangingImages" : "arranging images", "kAt" : "at", "kAuthenticating" : "authenticating", "kAwake1" : "Keep display on", @@ -25,23 +26,32 @@ "kButtonOk" : "OK", "kButtonSave" : "Save", "kButtonYes" : "Yes", + "kCalcEventSize" : "calculating events size", "kCancellingAlarm" : "cancelling alarm", "kChangeSettingsFor" : "Change settings for", "kChangeState" : "Change State", "kCheckCredentials" : "Please check your credentials", "kChromeMax" : "max of 5 monitors - chrome limit", + "kCleaningUp" : "cleaning up", "kClear" : "Clear", "kConfiguration" : "Configuration", + "kCredentialsBody" : "Please provide your ZoneMinder credentials", + "kCredentialsTitle" : "Credentials Required", "kCustomRange" : "Custom Range", "kDay" : "Day", "kDelete" : "Delete", "kDeleteEventError1" : "could not delete event", "kDeleteEventError2" : "please check logs", "kDeleteEventSuccess" : "deleted event", + "kDeleteLogsConfirm" : "Are you sure you want to delete logs?", "kDeletingEvent" : "deleting event", "kDevOptions" : "Dev. Settings", "kDeveloperOptionsFor" : "Developer Options for", "kDisablePush" : "disable APNS/GCM", + "kDiscovering" : "discovering", + "kDiscoveringAPI" : "discovering api", + "kDiscoveringCGI" : "discovering cgi", + "kDiscoveringPortal" : "discovering portal", "kDone" : "done", "kEnable24hr" : "enable 24hr time format", "kEnableDebug" : "Enable debug logs", @@ -52,13 +62,18 @@ "kErrorChangingMonitors" : "Error changing monitors. Please check logs", "kErrorFrameBanner" : "could not retrieve frame details", "kErrorPleaseTryAgain" : "please try again", + "kErrorRetrievingFrames" : "error retrieving frames", "kErrorRetrievingState" : "error retrieving state", "kErrorSave" : "Error - could not save", "kEvent" : "event", "kEventMontage" : "Event Montage", "kEventMontageImageScale" : "Event Montage image scale", + "kEventNavVidFeeds" : "Event navigation is not available with video feeds. ZoneMinder doesn't yet support them", "kEventServer" : "Event Server", "kEventServerConfig1" : "Please make sure your ZM settings are configured and saved before you configure the event server", + "kEventServerVersionBody1" : "You are running version", + "kEventServerVersionBody2" : "Please upgrade to", + "kEventServerVersionTitle" : "Event Server version not supported", "kEventSingleImageScale" : "Event single image scale", "kEventView" : "Event View", "kEvents" : "events", @@ -93,10 +108,13 @@ "kImpMsg5" : "Reported Version", "kImpMsg6" : "Recommended Version", "kImpMsg7" : "Ok, got it", + "kLanguage" : "Language", "kLatestEvents" : "Latest Events", "kLiveView" : "Live View", "kLoad" : "load", "kLoading" : "loading", + "kLoadingGraph" : "loading graph", + "kLoadingMonitors" : "loading monitors", "kLoginStatusNoCgi" : "Login validated, but could not validate cgi-path. If live streams don't work please check your cgi-bin path or try using the discover feature", "kLoginStatusNoCgiAlt" : "The cgi-bin path you entered may be wrong. I can't make sure, but if your live views don't work, please review your cgi path or try using the discover feature.", "kLoginValidAPIFailedTitle" : "Login validated but API failed", @@ -107,7 +125,6 @@ "kMaxItemsForTimeline" : "Max. items for Timeline", "kMaxMonitorsMontage" : "Max monitors in montage", "kMenuDevSettings" : "Developer Settings", - "kMenuOptions" : "Menu", "kMenuEventMontage" : "EventMontage", "kMenuEvents" : "Events", "kMenuExit" : "Exit", @@ -116,6 +133,7 @@ "kMenuMonitors" : "Monitors", "kMenuMontage" : "Montage", "kMenuNews" : "News", + "kMenuOptions" : "Menu", "kMenuSystemStatus" : "System Status", "kMenuTimeline" : "Timeline", "kMenuTitle" : "Options", @@ -145,10 +163,14 @@ "kNext" : "Next", "kNoEvents" : "No events to display", "kNoMonitors" : "No monitors to display", + "kNoMoreEvents" : "no more events", "kOff" : "off", "kOn" : "on", "kOnTapNavigate" : "on tap, navigate to", + "kOneAuth" : "You need to enable at least one authentication mechanism", "kOnlyUseWebSocket" : "only use websockets", + "kOperationInProgressBody" : "The previous operation is still in progress. Please wait...", + "kOperationInProgressTitle" : "Operation in Progress", "kPTZNotReady" : "Not ready for PTZ", "kPTZnotConfigured" : "PTZ not configured for this monitor", "kPassword" : "password", @@ -156,7 +178,9 @@ "kPaused" : "paused", "kPersistHidden" : "Persist hidden monitors", "kPinProtect" : "PIN Protect", + "kPlaybackInterval" : "playback interval", "kPleaseCheckCredentials" : "Please check your credentials", + "kPleaseConfirm" : "Please Confirm", "kPleaseSave" : "Please Save", "kPleaseTryAgain" : "please try again", "kPleaseWait" : "please wait", @@ -166,9 +190,11 @@ "kProfileChangeNotification" : "You have changed from {{oldName}} to {{newName}}. Please save this profile first", "kProtect" : "protect", "kPullToReload" : "pull to reload data", + "kRecaptcha" : "Looks like you have enabled reCaptcha. It needs to be turned off for the app to work", "kReconfirmPin" : "Reconfirm PIN", "kRecordingProgress" : "recording in progress", "kRefresh" : "Refresh", + "kRefreshedView" : "refreshed view", "kReportEvents" : "report events", "kReportedVersion" : "Reported Version", "kReset" : "Reset", @@ -180,8 +206,10 @@ "kScore" : "score", "kScrub" : "Scrub", "kSearch" : "search", + "kSearchCancelled" : "search cancelled", "kSec" : "sec", "kSelectFallback" : "Select fallback", + "kSelectLanguage" : "Select Language", "kSendingPTZ" : "Sending PTZ", "kSensitiveBody" : "will modify the logs when creating the final output to remove sensitive data like urls and passwords. However it is eventually your responsibility to make sure there is no sensitive data in the logs. Please make sure you review and edit the logs before you send it out", "kSensitiveTitle" : "Sensitive Information", @@ -196,10 +224,12 @@ "kShowingEvent" : "showing event", "kSpeed" : "speed", "kStart" : "Start", + "kStateAreYouSure" : "Are you sure you want to ", "kStatus" : "Status", "kStop" : "Stop", "kSuccess" : "Success", "kSwipeToChangeMon" : "Swipe to change monitors", + "kSwitchingEvents" : "switching events", "kSystemStatus" : "System Status", "kThanksForUsing" : "Thanks for using", "kTimeline" : "Timeline", @@ -213,11 +243,15 @@ "kToDate" : "To Date", "kToTime" : "To Time", "kToastSearchingPage" : "searching page ", + "kTrying" : "trying", "kType" : "type", "kUnknown" : "(unknown)", "kUseSSL" : "Use SSL", + "kUseVideoControls" : "Please use video player controls for H264 events. ZoneMinder doesn't yet support zms controls", "kUseZmAuth" : "use ZM authentication", "kUserName" : "user name", + "kValidNameBasicAuth" : "Please enter a valid username and password for Mbasic auth", + "kValidNameZMAuth" : "Please enter a valid username and password for ZM auth", "kVersion" : "Version", "kVersionIncompatible" : "I am incompatible with your ZoneMinder version", "kWarningLargeTimeline" : "A large value can affect timeline performance. If you find timeline performance slow, try reducing the value to 200 and work your way up from there.", @@ -243,8 +277,5 @@ "kWizard" : "Wizard", "kWorkingOnGraph" : "working on graph data", "kZMSettingsFor" : "ZoneMinder settings for", - "kZMUpgradeNeeded" : "ZoneMinder upgrade needed", - "kLanguage": "Language", - "kSelectLanguage": "Select Language" - + "kZMUpgradeNeeded" : "ZoneMinder upgrade needed" }
\ No newline at end of file diff --git a/www/lang/locale-it.json b/www/lang/locale-it.json new file mode 100644 index 00000000..cbc472a1 --- /dev/null +++ b/www/lang/locale-it.json @@ -0,0 +1,281 @@ +{ + "k1DaySummary" : "1 DAY SUMMARY", + "k1HourSummary" : "1 HOUR SUMMARY", + "k1MonthSummary" : "1 MONTH SUMMARY", + "k1WeekSummary" : "1 WEEK SUMMARY", + "kAlarmAPIError" : "ERROR - PLEASE MAKE SURE YOUR API SUPPORTS THIS FEATURE", + "kAlarmFrameCount" : "ALARM FRAME COUNT", + "kAlarmMaxFPS" : "ALARM MAX FPS", + "kAlarms" : "ALARMS", + "kAnalyze" : "ANALYZE", + "kApiUrl" : "ZM API URL", + "kApplyingChanges" : "APPLYING CHANGES. PLEASE WAIT", + "kArrangingImages" : "ARRANGING IMAGES", + "kAt" : "AT", + "kAuthenticating" : "AUTHENTICATING", + "kAwake1" : "KEEP DISPLAY ON", + "kAwake2" : "(WHEN VIEWING FOOTAGE)", + "kBannerAPICheckFailed" : "API CHECK FAILED", + "kBannerCannotDeleteNeedOne" : "CANNOT DELETE, NEED AT LEAST ONE", + "kBannerPinMismatch" : "PIN CODE MISMATCH", + "kBannerPleaseCheck" : "PLEASE CHECK SETTINGS", + "kBodyPortalNotConfigured" : "PLEASE FILL IN YOUR LOGIN DETAILS AS WELL AS PORTAL URL AND SAVE IT BEFORE YOU TRY TO DETECT THE CGI-PATH", + "kButtonCancel" : "CANCEL", + "kButtonClear" : "CLEAR", + "kButtonNo" : "NO", + "kButtonOk" : "OK", + "kButtonSave" : "SAVE", + "kButtonYes" : "YES", + "kCalcEventSize" : "CALCULATING EVENTS SIZE", + "kCancellingAlarm" : "CANCELLING ALARM", + "kChangeSettingsFor" : "CHANGE SETTINGS FOR", + "kChangeState" : "CHANGE STATE", + "kCheckCredentials" : "PLEASE CHECK YOUR CREDENTIALS", + "kChromeMax" : "MAX OF 5 MONITORS - CHROME LIMIT", + "kCleaningUp" : "CLEANING UP", + "kClear" : "CLEAR", + "kConfiguration" : "CONFIGURATION", + "kCredentialsBody" : "PLEASE PROVIDE YOUR ZONEMINDER CREDENTIALS", + "kCredentialsTitle" : "CREDENTIALS REQUIRED", + "kCustomRange" : "CUSTOM RANGE", + "kDay" : "DAY", + "kDelete" : "DELETE", + "kDeleteEventError1" : "COULD NOT DELETE EVENT", + "kDeleteEventError2" : "PLEASE CHECK LOGS", + "kDeleteEventSuccess" : "DELETED EVENT", + "kDeleteLogsConfirm" : "ARE YOU SURE YOU WANT TO DELETE LOGS?", + "kDeletingEvent" : "DELETING EVENT", + "kDevOptions" : "DEV. SETTINGS", + "kDeveloperOptionsFor" : "DEVELOPER OPTIONS FOR", + "kDisablePush" : "DISABLE APNS/GCM", + "kDiscovering" : "DISCOVERING", + "kDiscoveringAPI" : "DISCOVERING API", + "kDiscoveringCGI" : "DISCOVERING CGI", + "kDiscoveringPortal" : "DISCOVERING PORTAL", + "kDone" : "DONE", + "kEnable24hr" : "ENABLE 24HR TIME FORMAT", + "kEnableDebug" : "ENABLE DEBUG LOGS", + "kEnableLogs" : "ENABLE LOGS", + "kEnableNewsUpdates" : "ENABLE NEWS UPDATES", + "kEnterPin" : "ENTER PIN", + "kError" : "ERROR", + "kErrorChangingMonitors" : "ERROR CHANGING MONITORS. PLEASE CHECK LOGS", + "kErrorFrameBanner" : "COULD NOT RETRIEVE FRAME DETAILS", + "kErrorPleaseTryAgain" : "PLEASE TRY AGAIN", + "kErrorRetrievingFrames" : "ERROR RETRIEVING FRAMES", + "kErrorRetrievingState" : "ERROR RETRIEVING STATE", + "kErrorSave" : "ERROR - COULD NOT SAVE", + "kEvent" : "EVENT", + "kEventMontage" : "EVENT MONTAGE", + "kEventMontageImageScale" : "EVENT MONTAGE IMAGE SCALE", + "kEventNavVidFeeds" : "EVENT NAVIGATION IS NOT AVAILABLE WITH VIDEO FEEDS. ZONEMINDER DOESN'T YET SUPPORT THEM", + "kEventServer" : "EVENT SERVER", + "kEventServerConfig1" : "PLEASE MAKE SURE YOUR ZM SETTINGS ARE CONFIGURED AND SAVED BEFORE YOU CONFIGURE THE EVENT SERVER", + "kEventServerVersionBody1" : "YOU ARE RUNNING VERSION", + "kEventServerVersionBody2" : "PLEASE UPGRADE TO", + "kEventServerVersionTitle" : "EVENT SERVER VERSION NOT SUPPORTED", + "kEventSingleImageScale" : "EVENT SINGLE IMAGE SCALE", + "kEventView" : "EVENT VIEW", + "kEvents" : "EVENTS", + "kExampleServer" : "EG. MY HOUSE", + "kExitAppBackground" : "EXIT APP IN BACKGROUND", + "kExpert" : "EXPERT", + "kExploreEnjoy" : "PLEASE EXPLORE THE MENU AND ENJOY", + "kFallback" : "FALLBACK CONFIGURATION", + "kFallback2Configs" : "YOU NEED TO HAVE AT LEAST 2 DISTINCT CONFIGURATIONS CREATED FOR A FALLBACK", + "kFilterByDateTime" : "FILTER BY DATE/TIME", + "kFilterEvents" : "FILTER EVENTS", + "kFilterEventsBetween1" : "YOU ARE VIEWING EVENTS BETWEEN", + "kFilterEventsBetween2" : "DO YOU WANT TO DELETE THIS FILTER?", + "kFilterOn" : "FILTER ON", + "kFilterSettings" : "FILTER SETTINGS", + "kFootage" : "FOOTAGE", + "kForceAlarmConfirm" : "ARE YOU SURE YOU WANT TO FORCE AN ALARM FOR MONITOR:", + "kForcingAlarm" : "FORCING ALARM", + "kFrame" : "FRAME", + "kFrameUpdate" : "FRAME UPDATE", + "kFrames" : "FRAMES", + "kFrom" : "FROM", + "kFromDate" : "FROM DATE", + "kFromTime" : "FROM TIME", + "kH264VideoSupport" : "H264 VIDEO SUPPORT", + "kHideMonsWithoutEvents" : "HIDE MONITORS WITHOUT EVENTS", + "kId" : "ID", + "kImpMsg1" : "IMPORTANT MESSAGE", + "kImpMsg2" : "I'D APPRECIATE IF YOU UPGRADED ZONEMINDER", + "kImpMsg3" : "YOU ARE RUNNING", + "kImpMsg4" : "HAS SOME IMPORTANT FIXES THAT ENHANCE THE API AMONGST OTHER THINGS. THIS IS REQUIRED TO AVAIL OF THE NEW ALARM APIS AND OTHER NEW FEATURES.", + "kImpMsg5" : "REPORTED VERSION", + "kImpMsg6" : "RECOMMENDED VERSION", + "kImpMsg7" : "OK, GOT IT", + "kLanguage" : "LANGUAGE", + "kLatestEvents" : "LATEST EVENTS", + "kLiveView" : "LIVE VIEW", + "kLoad" : "LOAD", + "kLoading" : "LOADING", + "kLoadingGraph" : "LOADING GRAPH", + "kLoadingMonitors" : "LOADING MONITORS", + "kLoginStatusNoCgi" : "LOGIN VALIDATED, BUT COULD NOT VALIDATE CGI-PATH. IF LIVE STREAMS DON'T WORK PLEASE CHECK YOUR CGI-BIN PATH OR TRY USING THE DISCOVER FEATURE", + "kLoginStatusNoCgiAlt" : "THE CGI-BIN PATH YOU ENTERED MAY BE WRONG. I CAN'T MAKE SURE, BUT IF YOUR LIVE VIEWS DON'T WORK, PLEASE REVIEW YOUR CGI PATH OR TRY USING THE DISCOVER FEATURE.", + "kLoginValidAPIFailedTitle" : "LOGIN VALIDATED BUT API FAILED", + "kLoginValidatedTitle" : "LOGIN VALIDATED", + "kLogs" : "LOGS", + "kManageServerGroups" : "MANAGE SERVER GROUPS", + "kMaxFPS" : "MAX FPS", + "kMaxItemsForTimeline" : "MAX. ITEMS FOR TIMELINE", + "kMaxMonitorsMontage" : "MAX MONITORS IN MONTAGE", + "kMenuDevSettings" : "DEVELOPER SETTINGS", + "kMenuEventMontage" : "EVENTMONTAGE", + "kMenuEvents" : "EVENTS", + "kMenuExit" : "EXIT", + "kMenuHelp" : "HELP", + "kMenuLogs" : "LOGS", + "kMenuMonitors" : "MONITORS", + "kMenuMontage" : "MONTAGE", + "kMenuNews" : "NEWS", + "kMenuOptions" : "MENU", + "kMenuSystemStatus" : "SYSTEM STATUS", + "kMenuTimeline" : "TIMELINE", + "kMenuTitle" : "OPTIONS", + "kMenuWizard" : "WIZARD", + "kMenuZMSettings" : "SETTINGS", + "kMinAlarmCount" : "MINIMUM ALARM COUNT", + "kMinVersion" : "MINIMUM REQUIRED VERSION", + "kMinimumIntervals" : "MINIMUM INTERVAL", + "kMode" : "MODE", + "kMonAlarmed" : "ALARMED", + "kMonAlert" : "ALERT", + "kMonIdle" : "IDLE", + "kMonMocord" : "MOCORD", + "kMonModect" : "MODECT", + "kMonMonitor" : "MONITOR", + "kMonNodect" : "NODECT", + "kMonNone" : "NONE", + "kMonPreAlarm" : "PRE-ALARM", + "kMonRecord" : "RECORD", + "kMonitors" : "MONITORS", + "kMontage" : "MONTAGE", + "kMontageImageScale" : "MONTAGE IMAGE SCALE", + "kMonth" : "MONTH", + "kNeedToKnow" : "I NEED TO KNOW YOUR ZONEMINDER LOGIN AND PATH DETAILS TO GET STARTED", + "kNegotiatingStreamAuth" : "NEGOTIATING STREAM AUTHENTICATION", + "kNews" : "NEWS", + "kNext" : "NEXT", + "kNoEvents" : "NO EVENTS TO DISPLAY", + "kNoMonitors" : "NO MONITORS TO DISPLAY", + "kNoMoreEvents" : "NO MORE EVENTS", + "kOff" : "OFF", + "kOn" : "ON", + "kOnTapNavigate" : "ON TAP, NAVIGATE TO", + "kOneAuth" : "YOU NEED TO ENABLE AT LEAST ONE AUTHENTICATION MECHANISM", + "kOnlyUseWebSocket" : "ONLY USE WEBSOCKETS", + "kOperationInProgressBody" : "THE PREVIOUS OPERATION IS STILL IN PROGRESS. PLEASE WAIT...", + "kOperationInProgressTitle" : "OPERATION IN PROGRESS", + "kPTZNotReady" : "NOT READY FOR PTZ", + "kPTZnotConfigured" : "PTZ NOT CONFIGURED FOR THIS MONITOR", + "kPassword" : "PASSWORD", + "kPathToCgi" : "PATH TO CGI-BIN", + "kPaused" : "PAUSED", + "kPersistHidden" : "PERSIST HIDDEN MONITORS", + "kPinProtect" : "PIN PROTECT", + "kPlaybackInterval" : "PLAYBACK INTERVAL", + "kPleaseCheckCredentials" : "PLEASE CHECK YOUR CREDENTIALS", + "kPleaseConfirm" : "PLEASE CONFIRM", + "kPleaseSave" : "PLEASE SAVE", + "kPleaseTryAgain" : "PLEASE TRY AGAIN", + "kPleaseWait" : "PLEASE WAIT", + "kPortalUrl" : "ZM PORTAL URL", + "kPresets" : "PRESETS", + "kPrev" : "PREV", + "kProfileChangeNotification" : "YOU HAVE CHANGED FROM {{OLDNAME}} TO {{NEWNAME}}. PLEASE SAVE THIS PROFILE FIRST", + "kProtect" : "PROTECT", + "kPullToReload" : "PULL TO RELOAD DATA", + "kRecaptcha" : "LOOKS LIKE YOU HAVE ENABLED RECAPTCHA. IT NEEDS TO BE TURNED OFF FOR THE APP TO WORK", + "kReconfirmPin" : "RECONFIRM PIN", + "kRecordingProgress" : "RECORDING IN PROGRESS", + "kRefresh" : "REFRESH", + "kRefreshedView" : "REFRESHED VIEW", + "kReportEvents" : "REPORT EVENTS", + "kReportedVersion" : "REPORTED VERSION", + "kReset" : "RESET", + "kResolution" : "RESOLUTION", + "kRestart" : "RESTART", + "kResumeDelay" : "RESUME DELAY", + "kSave" : "SAVE", + "kSavingSnapshot" : "SAVING SNAPSHOT", + "kScore" : "SCORE", + "kScrub" : "SCRUB", + "kSearch" : "SEARCH", + "kSearchCancelled" : "SEARCH CANCELLED", + "kSec" : "SEC", + "kSelectFallback" : "SELECT FALLBACK", + "kSelectLanguage" : "SELECT LANGUAGE", + "kSendingPTZ" : "SENDING PTZ", + "kSensitiveBody" : "WILL MODIFY THE LOGS WHEN CREATING THE FINAL OUTPUT TO REMOVE SENSITIVE DATA LIKE URLS AND PASSWORDS. HOWEVER IT IS EVENTUALLY YOUR RESPONSIBILITY TO MAKE SURE THERE IS NO SENSITIVE DATA IN THE LOGS. PLEASE MAKE SURE YOU REVIEW AND EDIT THE LOGS BEFORE YOU SEND IT OUT", + "kSensitiveTitle" : "SENSITIVE INFORMATION", + "kServerAdd" : "ADD", + "kServerEmptyError" : "SERVER NAME CANNOT BE EMPTY", + "kServerName" : "SERVER NAME", + "kSettings" : "SETTINGS", + "kSettingsSaved" : "SETTINGS SAVED", + "kShowAlarmedEvents" : "SHOW ALARMED EVENTS", + "kShowAllEvents" : "SHOW ALL EVENTS", + "kShowing" : "SHOWING", + "kShowingEvent" : "SHOWING EVENT", + "kSpeed" : "SPEED", + "kStart" : "START", + "kStateAreYouSure" : "ARE YOU SURE YOU WANT TO ", + "kStatus" : "STATUS", + "kStop" : "STOP", + "kSuccess" : "SUCCESS", + "kSwipeToChangeMon" : "SWIPE TO CHANGE MONITORS", + "kSwitchingEvents" : "SWITCHING EVENTS", + "kSystemStatus" : "SYSTEM STATUS", + "kThanksForUsing" : "THANKS FOR USING", + "kTimeline" : "TIMELINE", + "kTimelineControlDisplay" : "TAP:VIEW EVENT, DOUBLE-TAP:VIEW FRAME GRAPH", + "kTimelineMessage" : "DOUBLE-TAP EXITS. TOUCH/MOUSE-OVER AND DRAG OVER ITEMS TO SEE FRAMES", + "kTimelineOnlyDisplaying1" : "ONLY DISPLAYING LAST {{MAXITEMSVAL}} EVENTS", + "kTitleNotLoggedIn" : "NOT LOGGED IN", + "kTitleNotLoggedInBody" : "IT DOESN'T LOOK LIKE YOU ARE LOGGED IN. FOR DETECTION TO WORK, YOU MUST FILL IN YOUR LOGIN DETAILS, PORTAL URL AND THEN TAP ON SAVE. THEN COME BACK TO THIS FEATURE.", + "kTitlePortalNotConfigured" : "PORTAL NOT CONFIGURED", + "kTo" : "TO", + "kToDate" : "TO DATE", + "kToTime" : "TO TIME", + "kToastSearchingPage" : "SEARCHING PAGE ", + "kTrying" : "TRYING", + "kType" : "TYPE", + "kUnknown" : "(UNKNOWN)", + "kUseSSL" : "USE SSL", + "kUseVideoControls" : "PLEASE USE VIDEO PLAYER CONTROLS FOR H264 EVENTS. ZONEMINDER DOESN'T YET SUPPORT ZMS CONTROLS", + "kUseZmAuth" : "USE ZM AUTHENTICATION", + "kUserName" : "USER NAME", + "kValidNameBasicAuth" : "PLEASE ENTER A VALID USERNAME AND PASSWORD FOR MBASIC AUTH", + "kValidNameZMAuth" : "PLEASE ENTER A VALID USERNAME AND PASSWORD FOR ZM AUTH", + "kVersion" : "VERSION", + "kVersionIncompatible" : "I AM INCOMPATIBLE WITH YOUR ZONEMINDER VERSION", + "kWarningLargeTimeline" : "A LARGE VALUE CAN AFFECT TIMELINE PERFORMANCE. IF YOU FIND TIMELINE PERFORMANCE SLOW, TRY REDUCING THE VALUE TO 200 AND WORK YOUR WAY UP FROM THERE.", + "kWeek" : "WEEK", + "kWelcomeWizard" : "WELCOME TO ZMWIZARD", + "kWizAuthText1" : "CONFUSED? ZM AUTH IS THE AUTHENTICATION USED WHEN YOU ENABLE OPT_USE_AUTH IN THE ZM CONSOLE OPTIONS SCREEN.", + "kWizAuthText2" : "BASIC AUTH IS WHEN YOU CONFIGURE A USERNAME AND PASSWORD IN YOUR WEBSERVER. IF YOU ARE USING LDAP AUTHENTICATION, ITS LIKELY BASIC AUTH.", + "kWizBasicAuth" : "I USE BASIC AUTHENTICATION", + "kWizConfigPain" : "CONFIGURING ZONEMINDER CAN BE A PAIN. LET'S SEE IF ZMWIZARD CAN HELP.", + "kWizGotoLogin" : "GO TO LOGIN SCREEN", + "kWizNextStep1" : "ONCE AUTO-DETECTION IS OVER, YOU COULD EITHER", + "kWizNextStep2" : "GO BACK TO PREVIOUS STEPS AND RE-DO", + "kWizNextStep3" : "GO TO THE LOGIN SCREEN WITH THESE FINDINGS AUTO FILLED IN", + "kWizPasswdNote" : "NOTE: IF YOUR PASSWORD HAS #?@& IN IT, THE WIZARD WILL FAIL CGI DETECTION. ITS BEST IF YOU TEMPORARILY CHANGE THE PASSWORD TO A SIMPLE ONE, RUN THE WIZARD AND THEN CHANGE IT BACK LATER", + "kWizPortalAuth" : "PORTAL AUTHENTICATION", + "kWizPortalText" : "LETS TALK ABOUT HOW YOU HAVE CONFIGURED AUTHENTICATION IF YOU HAVE ENABLED AUTHENTICATION, TOGGLE THIS BUTTON", + "kWizPortalTip" : "CONFUSED? YOU CAN EASILY FIND OUT YOUR PORTAL URL BY NOTING DOWN THE URL YOU SEE ON YOUR BROWSER WHEN ACCESSING THE ZONEMINDER CONSOLE.", + "kWizPortalUrl" : "WHAT IS YOUR ZONEMINDER PORTAL URL?", + "kWizResults" : "RESULTS OF AUTO-DETECTION", + "kWizTip" : "TIP", + "kWizUseAuth" : "I USE AUTHENTICATION", + "kWizZMAuth" : "I USE ZM AUTHENTICATION", + "kWizard" : "WIZARD", + "kWorkingOnGraph" : "WORKING ON GRAPH DATA", + "kZMSettingsFor" : "ZONEMINDER SETTINGS FOR", + "kZMUpgradeNeeded" : "ZONEMINDER UPGRADE NEEDED" +} |
