瀏覽代碼

Merge branch 'candidate-6.2.0' into candidate-6.2.2

Signed-off-by: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 8 年之前
父節點
當前提交
b04864aa7d

+ 1 - 1
.gitmodules

@@ -40,7 +40,7 @@
 [submodule "plugins/couchbase/libcouchbase-cxx"]
 	path = plugins/couchbase/libcouchbase-cxx
 	url = https://github.com/hpcc-systems/libcouchbase-cxx.git
-[submodule "libcouchbase"]
+[submodule "plugins/couchbase/libcouchbase"]
 	path = plugins/couchbase/libcouchbase
 	url = https://github.com/hpcc-systems/libcouchbase.git
 [submodule "plugins/redis/hiredis"]

+ 21 - 17
cmake_modules/commonSetup.cmake

@@ -166,30 +166,33 @@ IF ("${COMMONSETUP_DONE}" STREQUAL "")
 
   if (SIGN_MODULES)
       message(STATUS "GPG signing check")
-      if(DEFINED SIGN_MODULES_PASSPHRASE)
-          set(GPG_PASSPHRASE_OPTION --passphrase)
-      endif()
-      if(DEFINED SIGN_MODULES_KEYID)
-        set(GPG_DEFAULT_KEY_OPTION --default-key)
-      endif()
       execute_process(COMMAND bash "-c" "gpg --version | awk 'NR==1{print $3}'"
         OUTPUT_VARIABLE GPG_VERSION
         OUTPUT_STRIP_TRAILING_WHITESPACE
         ERROR_QUIET)
-    if(${GPG_VERSION} VERSION_GREATER "2.1")
-          set(GPG_PINENTRY_MODE --pinentry-mode loopback --batch --no-tty)
+      set(GPG_COMMAND_STR "gpg")
+      if(${GPG_VERSION} VERSION_GREATER "2.1")
+          set(GPG_COMMAND_STR "${GPG_COMMAND_STR} --pinentry-mode loopback --batch --no-tty")
       else()
-          set(GPG_PINENTRY_MODE --batch --no-tty)
+          set(GPG_COMMAND_STR "${GPG_COMMAND_STR} --batch --no-tty")
+      endif()
+      if(DEFINED SIGN_MODULES_PASSPHRASE)
+          set(GPG_COMMAND_STR "${GPG_COMMAND_STR} --passphrase ${SIGN_MODULES_PASSPHRASE}")
+      endif()
+      if(DEFINED SIGN_MODULES_KEYID)
+          set(GPG_COMMAND_STR "${GPG_COMMAND_STR} --default-key ${SIGN_MODULES_KEYID}")
       endif()
+      set(GPG_COMMAND_STR "${GPG_COMMAND_STR} --output sm_keycheck.asc --clearsign sm_keycheck.tmp")
       execute_process(
           COMMAND rm -f sm_keycheck.tmp sm_keycheck.asc
           COMMAND touch sm_keycheck.tmp
-          COMMAND gpg --clearsign ${GPG_PINENTRY_MODE} ${GPG_DEFAULT_KEY_OPTION} ${SIGN_MODULES_KEYID} ${GPG_PASSPHRASE_OPTION} ${SIGN_MODULES_PASSPHRASE} --output sm_keycheck.asc sm_keycheck.tmp
+          COMMAND bash "-c" "${GPG_COMMAND_STR}"
           TIMOUT 120
           WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
           RESULT_VARIABLE rc_var
+          OUTPUT_VARIABLE out_var
           ERROR_VARIABLE err_var
-          OUTPUT_QUIET)
+          )
       if(NOT "${rc_var}" STREQUAL "0")
           message(STATUS "GPG signing check - failed")
           message(FATAL_ERROR "gpg signing of std ecllibrary unsupported in current environment. \
@@ -242,7 +245,7 @@ IF ("${COMMONSETUP_DONE}" STREQUAL "")
     message(STATUS "gpg version ${GPG_VERSION}")
     #export gpg public key used for signing to new installation
     add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/pub.key
-      COMMAND gpg --output=${CMAKE_BINARY_DIR}/pub.key --batch --no-tty --export ${SIGN_MODULES_KEYID}
+      COMMAND bash "-c" "gpg --output=${CMAKE_BINARY_DIR}/pub.key --batch --no-tty --export ${SIGN_MODULES_KEYID}"
       WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
       COMMENT "Exporting public key for eclcc signed modules to ${CMAKE_BINARY_DIR}/pub.key"
       VERBATIM
@@ -961,19 +964,20 @@ IF ("${COMMONSETUP_DONE}" STREQUAL "")
 
   MACRO(SIGN_MODULE module)
     if(SIGN_MODULES)
+      set(GPG_COMMAND_STR "gpg")
       if(DEFINED SIGN_MODULES_PASSPHRASE)
-        set(GPG_PASSPHRASE_OPTION --passphrase)
+          set(GPG_COMMAND_STR "${GPG_COMMAND_STR} --passphrase ${SIGN_MODULES_PASSPHRASE}")
       endif()
       if(DEFINED SIGN_MODULES_KEYID)
-        set(GPG_DEFAULT_KEY_OPTION --default-key)
+          set(GPG_COMMAND_STR "${GPG_COMMAND_STR} --default-key ${SIGN_MODULES_KEYID}")
       endif()
-      set(GPG_BATCH_OPTIONS --batch --no-tty)
       if("${GPG_VERSION}" VERSION_GREATER "2.1")
-          set(GPG_BATCH_OPTIONS --pinentry-mode=loopback ${GPG_BATCH_OPTIONS})
+          set(GPG_COMMAND_STR "${GPG_COMMAND_STR} --pinentry-mode loopback")
       endif()
+      set(GPG_COMMAND_STR "${GPG_COMMAND_STR} --batch --no-tty --output ${CMAKE_CURRENT_BINARY_DIR}/${module} --clearsign ${module}")
       add_custom_command(
         OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${module}
-        COMMAND gpg ${GPG_BATCH_OPTIONS} --output ${CMAKE_CURRENT_BINARY_DIR}/${module} ${GPG_PASSPHRASE_OPTION} ${SIGN_MODULES_PASSPHRASE} ${GPG_DEFAULT_KEY_OPTION} ${SIGN_MODULES_KEYID} --clearsign ${module} </dev/null
+        COMMAND bash "-c" "${GPG_COMMAND_STR}"
         WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
         COMMENT "Adding signed ${module} to project"
         )

+ 93 - 51
docs/HPCCMonitoring/HPCCMonitoringAndReporting.xml

@@ -873,7 +873,7 @@
 
           <para>Available optional parameters: <informaltable>
               <tgroup cols="3">
-                <colspec colwidth="175pt" />
+                <colspec colwidth="174pt" />
 
                 <colspec colwidth="155pt" />
 
@@ -915,6 +915,14 @@
                   </row>
 
                   <row>
+                    <entry>-t or -host</entry>
+
+                    <entry>generate host file</entry>
+
+                    <entry></entry>
+                  </row>
+
+                  <row>
                     <entry>-n or -nrpe</entry>
 
                     <entry>generate client plugin cfgs for nrpe</entry>
@@ -1028,6 +1036,14 @@
                   </row>
 
                   <row>
+                    <entry>-lookup</entry>
+
+                    <entry>look up hostname form ip</entry>
+
+                    <entry></entry>
+                  </row>
+
+                  <row>
                     <entry>-u or -user</entry>
 
                     <entry>MACRO name to use for username for esp server
@@ -1202,38 +1218,6 @@
                   </row>
 
                   <row>
-                    <entry>-override_check_all_disks</entry>
-
-                    <entry>check_all_disk plugin name</entry>
-
-                    <entry>check_all_disks</entry>
-                  </row>
-
-                  <row>
-                    <entry>-override_check_users</entry>
-
-                    <entry>check_users plugin name</entry>
-
-                    <entry>check_users</entry>
-                  </row>
-
-                  <row>
-                    <entry>-override_check_procs</entry>
-
-                    <entry>check_procs plugin name</entry>
-
-                    <entry>check_procs</entry>
-                  </row>
-
-                  <row>
-                    <entry>-override_check_load</entry>
-
-                    <entry>check_load plugin name</entry>
-
-                    <entry>check_load</entry>
-                  </row>
-
-                  <row>
                     <entry>-override_retry_interval</entry>
 
                     <entry>check retry_interval</entry>
@@ -1306,14 +1290,6 @@
                   </row>
 
                   <row>
-                    <entry>-override_retry_check_interval</entry>
-
-                    <entry>retry_check_interval</entry>
-
-                    <entry>1</entry>
-                  </row>
-
-                  <row>
                     <entry>-override_flap_detection_enabled</entry>
 
                     <entry>flap_detection_enabled</entry>
@@ -1354,38 +1330,104 @@
                   </row>
 
                   <row>
-                    <entry>-disable_check_all_disks</entry>
+                    <entry>-check_all_disks</entry>
 
-                    <entry>disable disk space checks</entry>
+                    <entry>enable/disable check_all_disks service
+                    check</entry>
 
-                    <entry></entry>
+                    <entry>check_all_disks</entry>
+                  </row>
+
+                  <row>
+                    <entry>-override_check_all_disks</entry>
+
+                    <entry>check_all_disk plugin name</entry>
+
+                    <entry>check_all_disks</entry>
                   </row>
 
                   <row>
-                    <entry>-disable_check_users</entry>
+                    <entry>-check_users</entry>
 
-                    <entry>disable user logged on checks</entry>
+                    <entry>enable/disable check_users service check</entry>
 
-                    <entry></entry>
+                    <entry>check_users</entry>
+                  </row>
+
+                  <row>
+                    <entry>-override_check_users</entry>
+
+                    <entry>check_users plugin name</entry>
+
+                    <entry>check_users</entry>
+                  </row>
+
+                  <row>
+                    <entry>-check_procs</entry>
+
+                    <entry>enable/disable check_procs service check</entry>
+
+                    <entry>check_procs</entry>
+                  </row>
+
+                  <row>
+                    <entry>-override_check_procs</entry>
+
+                    <entry>check_procs plugin name</entry>
+
+                    <entry>check_procs</entry>
+                  </row>
+
+                  <row>
+                    <entry>-check_load</entry>
+
+                    <entry>enable/disable check_load service check</entry>
+
+                    <entry>check_load</entry>
                   </row>
 
                   <row>
-                    <entry>-disable_check_procs</entry>
+                    <entry>-override_check_load</entry>
 
-                    <entry>disable process checks</entry>
+                    <entry>check_load plugin name</entry>
+
+                    <entry>check_load</entry>
+                  </row>
+
+                  <row>
+                    <entry>-check_ssh</entry>
+
+                    <entry>enable/disable ssh service check</entry>
+
+                    <entry>checkSSH</entry>
+                  </row>
+
+                  <row>
+                    <entry>-set_catch_all_hostgroup</entry>
+
+                    <entry>create a hostgroup and include all nodes as
+                    memebers</entry>
 
                     <entry></entry>
                   </row>
 
                   <row>
-                    <entry>-disable_check_load</entry>
+                    <entry>-set_host_check_command</entry>
 
-                    <entry>disable load check</entry>
+                    <entry>set the check_command for hosts</entry>
 
                     <entry></entry>
                   </row>
 
                   <row>
+                    <entry>-check_host</entry>
+
+                    <entry>enable/disable check host check</entry>
+
+                    <entry>check_host</entry>
+                  </row>
+
+                  <row>
                     <entry>-disable_use_of_note_for_host_port</entry>
 
                     <entry>the send command will use the detail/note for

+ 2 - 0
ecl/hql/hqlgram2.cpp

@@ -9878,6 +9878,8 @@ void HqlGram::cloneInheritedAttributes(IHqlScope * scope, const attribute & errp
                 IIdAtom * id = syms.item(iSym).queryId();
                 IAtom * name = lower(id);
                 OwnedHqlExpr baseSym = curBase->lookupSymbol(id, LSFsharedOK|LSFfromderived, lookupCtx);
+                if (!baseSym)
+                    continue;
                 OwnedHqlExpr match  = scope->lookupSymbol(id, LSFsharedOK|LSFignoreBase, lookupCtx);
 
                 LinkedHqlExpr mapped = baseSym;

+ 37 - 0
ecl/regress/xmodule.eclxml

@@ -0,0 +1,37 @@
+<Archive useArchivePlugins="1">
+<!--
+
+    HPCC SYSTEMS software Copyright (C) 2016 HPCC Systems®.
+
+    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.
+-->
+ <Module name="common">
+  <Attribute name="m1">
+export m1 := module,forward
+export unsigned level1 := 10;// + m2.levela;
+    end;
+  </Attribute>
+  <Attribute name="m2">
+export m2 := module
+export unsigned levela := syntaxerror10;
+    end;
+  </Attribute>
+ </Module>
+ <Query>
+    import common;
+    m := MODULE(common)
+       export z := 3;
+    END;
+ output(m);
+ </Query>
+</Archive>

+ 124 - 33
esp/src/eclwatch/MemberOfWidget.js

@@ -18,30 +18,36 @@ define([
     "dojo/_base/lang",
     "dojo/i18n",
     "dojo/i18n!./nls/hpcc",
+    "dojo/_base/array",
+    "dojo/promise/all",
 
     "dijit/registry",
+    "dijit/form/Button",
+    "dijit/ToolbarSeparator",
+    "dijit/Dialog",
 
-    "dgrid/editor",
+    "dgrid/selector",
 
     "hpcc/GridDetailsWidget",
     "hpcc/ws_access",
     "hpcc/ws_account",
-    "hpcc/ESPUtil"
+    "hpcc/ESPUtil",
+    "hpcc/TargetSelectWidget"
 
-], function (declare, lang, i18n, nlsHPCC,
-                registry,
-                editor,
-                GridDetailsWidget, WsAccess, WsAccount, ESPUtil) {
+], function (declare, lang, i18n, nlsHPCC, arrayUtil, all,
+                registry, Button, ToolbarSeparator, Dialog,
+                selector,
+                GridDetailsWidget, WsAccess, WsAccount, ESPUtil, TargetSelectWidget) {
     return declare("MemberOfWidget", [GridDetailsWidget], {
         i18n: nlsHPCC,
 
         gridTitle: nlsHPCC.title_MemberOf,
-        idProperty: "__hpcc_id",
+        idProperty: "name",
         currentUser: null,
 
         //  Hitched Actions  ---
         _onRefresh: function (args) {
-            this.grid.refresh();
+            this.refreshGrid();
         },
 
         //  Implementation  ---
@@ -50,40 +56,56 @@ define([
             if (this.inherited(arguments))
                 return;
 
-            WsAccount.MyAccount({
-            }).then(function (response) {
-                if (lang.exists("MyAccountResponse.username", response)) {
-                    context.currentUser = response.MyAccountResponse.username;
-                }
+            this.refreshGrid();
+            this.memberDropDown = new TargetSelectWidget({});
+            this.memberDropDown.init({
+                loadUsersNotAMemberOfAGroup: true,
+                username: params.username
             });
+            this.dialog.addChild(this.memberDropDown);
+            
+        },
 
-            this.store = WsAccess.CreateGroupsStore(params.username, false);
-            this.grid.setStore(this.store);
-            this.grid.on("dgrid-datachange", function(event){
-                if (dojoConfig.isAdmin && params.username === context.currentUser && event.oldValue === true) {
-                    var msg = confirm(context.i18n.RemoveUser + " " + event.rowId + ". " + context.i18n.ConfirmRemoval);
-                    if (msg) {
-                        location.hash = "";
-                        location.reload();
-                    } else {
-                        event.preventDefault();
-                    }
+        createGrid: function (domID) {
+            var context = this;
+            this.openButton = registry.byId(this.id + "Open");
+            this.refreshButton = registry.byId(this.id + "Refresh");
+            this.addButton = new Button({
+                id: this.id + "Add",
+                label: this.i18n.Add,
+                onClick: function (event) {
+                    context._onAddMember(event);
+                }
+            }).placeAt(this.openButton.domNode, "after");
+            this.deleteButton = new Button({
+                id: this.id + "Delete",
+                label: this.i18n.Delete,
+                disabled: true,
+                onClick: function (event) {
+                    context._onDeleteMember(event);
                 }
+            }).placeAt(this.addButton.domNode, "after");
+            tmpSplitter = new ToolbarSeparator().placeAt(this.addButton.domNode, "before");
+            this.dialog = new Dialog({
+                title: this.i18n.PleaseSelectAGroupToAddUser,
+                style: "width: 320px;"
             });
-            this._refreshActionState();
-        },
+            this.dialogBtn = new Button({
+                label: this.i18n.Add,
+                style: "float:right;",
+                onClick: function (event) {
+                    context._onSubmitAddMember(event);
+                }
+            }).placeAt(this.dialog.domNode);
 
-        createGrid: function (domID) {
-            var retVal = new declare([ESPUtil.Grid(true, false)])({
+            var retVal = new declare([ESPUtil.Grid(true, true)])({
                 sort: [{ attribute: "name" }],
                 store: this.store,
                 columns: {
-                    isMember: editor({
-                        label: "",
+                    check: selector({
                         width: 27,
-                        editor: "checkbox",
-                        autoSave: true
-                    }),
+                        label: " "
+                    }, "checkbox"),
                     name: {
                         label: this.i18n.GroupName,
                         sortable: true
@@ -91,11 +113,80 @@ define([
                 }
             }, domID);
 
+            retVal.onSelectionChanged(function (event) {
+                context.refreshActionState();
+            });
+
             return retVal;
         },
 
+        _onAddMember: function (event) {
+            this.dialog.show();
+        },
+
+        _onSubmitAddMember: function (event) {
+            var context = this;
+            WsAccess.UserGroupEdit({
+                request: {
+                    groupnames_i1:context.memberDropDown.get("value"),
+                    username:context.params.username,
+                    action: "Add"
+                }
+            }).then(function (response) {
+               context.dialog.hide();
+               context._onRefresh();
+            });
+        },
+
+        _onDeleteMember: function (event) {
+            var context = this;
+            var selections = this.grid.getSelected();
+            if (confirm(this.i18n.YouAreAboutToRemoveUserFrom)) {
+                var promises = [];
+                arrayUtil.forEach(selections, function (row, idx) {
+                    promises.push(WsAccess.UserGroupEdit({
+                        request: {
+                            groupnames_i6: row.name,
+                            username:context.params.username,
+                            action: "Delete"
+                        }
+                    }));
+                });
+                all(promises).then(function() {
+                    context._onRefresh();
+                });
+            }
+        },
+
+        refreshGrid: function () {
+            var context = this;
+            WsAccess.UserEdit({
+                request: {
+                    username: context.params.username
+                }
+            }).then(function (response) {
+                var results = [];
+
+                if (lang.exists("UserEditResponse.Groups.Group", response)) {
+                    results = response.UserEditResponse.Groups.Group;
+                    arrayUtil.forEach(results, function (row, idx) {
+                        lang.mixin(row, {
+                            name: row.name
+                        });
+                    });
+                }
+
+                context.store.setData(results);
+                context.grid.set("query", {});
+            });
+        },
+
         refreshActionState: function (selection) {
             registry.byId(this.id + "Open").set("disabled", true);
+            var selection = this.grid.getSelected();
+            var hasUserSelection = selection.length;
+
+            this.deleteButton.set("disabled", !hasUserSelection);
         }
     });
 });

+ 129 - 29
esp/src/eclwatch/MembersWidget.js

@@ -18,69 +18,169 @@ define([
     "dojo/_base/lang",
     "dojo/i18n",
     "dojo/i18n!./nls/hpcc",
+    "dojo/_base/array",
+    "dojo/promise/all",
 
     "dijit/registry",
+    "dijit/form/Button",
+    "dijit/ToolbarSeparator",
+    "dijit/Dialog",
 
-    "dgrid/editor",
+    "dgrid/selector",
 
     "hpcc/GridDetailsWidget",
     "hpcc/ws_access",
-    "hpcc/ESPUtil"
+    "hpcc/ESPUtil",
+    "hpcc/TargetSelectWidget"
 
-], function (declare, lang, i18n, nlsHPCC,
-                registry,
-                editor,
-                GridDetailsWidget, WsAccess, ESPUtil) {
+], function (declare, lang, i18n, nlsHPCC, arrayUtil, all,
+                registry, Button, ToolbarSeparator, Dialog,
+                selector,
+                GridDetailsWidget, WsAccess, ESPUtil, TargetSelectWidget) {
     return declare("MembersWidget", [GridDetailsWidget], {
         i18n: nlsHPCC,
 
         gridTitle: nlsHPCC.title_Members,
-        idProperty: "__hpcc_id",
-
-        //  Hitched Actions  ---
-        _onRefresh: function (args) {
-            this.grid.refresh();
-        },
+        idProperty: "username",
 
         //  Implementation  ---
         init: function (params) {
             if (this.inherited(arguments))
                 return;
 
-            this.store = WsAccess.CreateUsersStore(params.groupname, false);
-            this.grid.setStore(this.store);
-            this._refreshActionState();
+            this.refreshGrid();
+            this.memberDropDown = new TargetSelectWidget({});
+            this.memberDropDown.init({
+                loadUsersNotInGroup: true,
+                groupname: params.groupname
+            });
+            this.dialog.addChild(this.memberDropDown);
         },
 
         createGrid: function (domID) {
-            var retVal = new declare([ESPUtil.Grid(true, false)])({
+            var context = this;
+            this.openButton = registry.byId(this.id + "Open");
+            this.refreshButton = registry.byId(this.id + "Refresh");
+            this.addButton = new Button({
+                id: this.id + "Add",
+                label: this.i18n.Add,
+                onClick: function (event) {
+                    context._onAddMember(event);
+                }
+            }).placeAt(this.openButton.domNode, "after");
+            this.deleteButton = new Button({
+                id: this.id + "Delete",
+                label: this.i18n.Delete,
+                disabled: true,
+                onClick: function (event) {
+                    context._onDeleteMember(event);
+                }
+            }).placeAt(this.addButton.domNode, "after");
+            tmpSplitter = new ToolbarSeparator().placeAt(this.addButton.domNode, "before");
+
+            this.dialog = new Dialog({
+                title: this.i18n.PleaseSelectAUserToAdd,
+                style: "width: 300px;"
+            });
+            this.dialogBtn = new Button({
+                label: this.i18n.Add,
+                style: "float:right;",
+                onClick: function (event) {
+                    context._onSubmitAddMember(event);
+                }
+            }).placeAt(this.dialog.domNode);
+            
+            var retVal = new declare([ESPUtil.Grid(true, true)])({
                 store: this.store,
                 columns: {
-                    isMember: editor({
-                        label: "",
+                    check: selector({
                         width: 27,
-                        editor: "checkbox",
-                        autoSave: true
-                    }),
+                        label: " "
+                    }, "checkbox"),
                     username: {
-                        width: 180,
                         label: this.i18n.Username
-                    },
-                    fullname: {
-                        label: this.i18n.FullName
-                    },
-                    passwordexpiration: {
-                        width: 180,
-                        label: this.i18n.PasswordExpiration
                     }
                 }
             }, domID);
 
+             retVal.onSelectionChanged(function (event) {
+                context.refreshActionState();
+            });
+
             return retVal;
         },
 
+        _onAddMember: function (event) {
+            this.dialog.show();
+        },
+
+        _onSubmitAddMember: function (event) {
+            var context = this;
+            WsAccess.GroupMemberEdit({
+                request: {
+                    groupname:context.params.groupname,
+                    usernames_i7:context.memberDropDown.get("value"),
+                    action: "Add"
+                }
+            }).then(function (response) {
+               context.dialog.hide();
+               context._onRefresh();
+            });
+        },
+
+        _onDeleteMember: function (event) {
+            var context = this;
+            var selections = this.grid.getSelected();
+            if (confirm(this.i18n.YouAreAboutToRemoveUserFrom)) {
+                var promises = [];
+                arrayUtil.forEach(selections, function (row, idx) {
+                    promises.push(WsAccess.GroupMemberEdit({
+                        request: {
+                            groupname: context.params.groupname,
+                            usernames_i1:row.username,
+                            action: "Delete"
+                        }
+                    }));
+                });
+                all(promises).then(function() {
+                    context._onRefresh();
+                });
+            }
+        },
+
+        _onRefresh: function () {
+            this.refreshGrid();
+        },
+
         refreshActionState: function (selection) {
             registry.byId(this.id + "Open").set("disabled", true);
+            var selection = this.grid.getSelected();
+            var hasUserSelection = selection.length;
+
+            this.deleteButton.set("disabled", !hasUserSelection);
+        },
+
+        refreshGrid: function () {
+            var context = this;
+            WsAccess.Members({
+                request: {
+                    groupname: context.params.groupname
+                }
+            }).then(function (response) {
+                var results = [];
+
+                if (lang.exists("GroupEditResponse.Users.User", response)) {
+                    results = response.GroupEditResponse.Users.User;
+                    arrayUtil.forEach(results, function (row, idx) {
+                        lang.mixin(row, {
+                            username: row.username
+                        });
+                    });
+                }
+
+                context.store.setData(results);
+                context.grid.set("query", {});
+            });
         }
     });
 });

+ 44 - 0
esp/src/eclwatch/TargetSelectClass.js

@@ -78,6 +78,10 @@ define([
                 this.loadDropZones();
             } else if (params.Users === true) {
                 this.loadUsers();
+            } else if (params.loadUsersNotInGroup === true) {
+                this.loadUsersNotInGroup(params.groupname);
+            } else if (params.loadUsersNotAMemberOfAGroup === true) {
+                this.loadUsersNotAMemberOfAGroup(params.username);
             } else if (params.UserGroups === true) {
                 this.loadUserGroups();
             } else if (params.DropZoneFolders === true) {
@@ -178,6 +182,46 @@ define([
             });
         },
 
+        loadUsersNotAMemberOfAGroup: function (username) {
+            var context = this;
+            WsAccess.UserGroupEditInput({
+                request: {
+                    username: username
+                }
+            }).then(function (response) {
+                    if (lang.exists("UserGroupEditInputResponse.Groups.Group", response)) {
+                        var targetData = response.UserGroupEditInputResponse.Groups.Group;
+                        for (var i = 0; i < targetData.length; ++i) {
+                            context.options.push({
+                                label: targetData[i].name,
+                                value: targetData[i].name
+                            });
+                        }
+                        context._postLoad();
+                    }
+            });
+        },
+
+        loadUsersNotInGroup: function (groupname) {
+            var context = this;
+            WsAccess.GroupMemberEditInput({
+                request: {
+                    groupname: groupname
+                }
+            }).then(function (response) {
+                    if (lang.exists("GroupMemberEditInputResponse.Users.User", response)) {
+                        var targetData = response.GroupMemberEditInputResponse.Users.User;
+                        for (var i = 0; i < targetData.length; ++i) {
+                            context.options.push({
+                                label: targetData[i].username,
+                                value: targetData[i].username
+                            });
+                        }
+                        context._postLoad();
+                    }
+            });
+        },
+
         loadDropZones: function () {
             var context = this;
             WsTopology.TpServiceQuery({

+ 117 - 12
esp/src/eclwatch/nls/bs/hpcc.js

@@ -1,6 +1,8 @@
 define(
 ({
     Abort: "Prekinite",
+    AbortedBy: "Prekinuto od strane",
+    AbortedTime: "Vrijeme prekida",
     About: "O Aplikaciji",
     AboutGraphControl: "O Grafičkoj Kontroli",
     AboutHPCCSystemsGraphControl: "O Grafičkoj Kontroli HPCC Sistema",
@@ -16,10 +18,15 @@
     ActivityMap: "Mapa Aktivnosti",
     ActualSize: "Tačna Veličina",
     Add: "Dodajte",
+    AddAttributes2: "Dodajte Atribut(e)",
+    AddAttributes: "Dodajte atribute/vrijednosti vašem metodu",
+    AddBinding: "Dodajte Vezivanje",
     AddFile: "Dodajte Datoteku",
     AddGroup: "Dodajte Grupu",
     AdditionalResources: "Dodatni Resursi",
     AddProcessMap: "Dodajte Mapu Paketa",
+    AddtionalProcessesToFilter: "Dodatni Procesi Za Filtriranje",
+    AddToExistingSuperfile: "Dodajte na postojeći superfajl",
     AddToSuperfile: "Dodajte na Superdatoteku",
     AddUser: "Dodajte Korisnika",
     Advanced: "Višeg Nivoa",
@@ -29,22 +36,33 @@
     AllowFull: "<center>Dozvolite<br>Potpun</center>",
     AllowRead: "<center>Dozvolite<br>Čitanje</center>",
     AllowWrite: "<center>Dozvolite<br>Pisanje</center>",
+    AllQueuedItemsCleared: "Svi poslovi iz reda čekanja su očišćeni. Trenutno aktivni posao nastavnja sa izvršavanjem.",
     ANY: "Bilo Koji",
+    AnyAdditionalProcessesToFilter: "Ima li još procesa za filtriranje",
     Append: "Dodajte",
     Apply: "Primjenite",
     ArchivedOnly: "Samo Arhiviran",
     ArchivedWarning: "Upozorenje: koristite kratak vremenski period. Ako koristite duži vremenski period, pretraživanje radnih jedinica može trajati duže od dozviljenog vremena za pretraživanje .",
+    Attribute: "Atribut",
+    AttributesAreRequired: "Atributi su potrebni",
     AutoRefresh: "Osvježi",
+    AutoRefreshEvery: "Automatsko osvježivanje svakih x minuta",
+    AutoRefreshIncrement: "Automatski korak osvježivanja",
     Back: "Nazad",
     BannerColor: "Boja Reklamnog Bloka",
     BannerMessage: "Poruka za Reklamni Blok",
     BannerScroll: "Kretanje Reklamnog Bloka",
     BannerSize: "Veličina Reklamnog Bloka",
     BinaryInstalls: "Binarne Instalacije",
+    Binding: "Vezivanje",
+    BindingDeleted: "Vezivanje Obrisano",
     Blob: "BLOB",
     BlobPrefix: "BLOB Prefiks",
     Bottom: "Kraj",
+    Busy: "Zauzet",
     Cancel: "Poništite",
+    CancelAll: "Ukinite Sve",
+    CancelAllMessage: "Prekinite tekuće poslove i očistite red čekanja. Želite li nastaviti?",
     CheckAllNodes: "Provjerite Sve Nodove/Čvorove",
     CheckFilePermissions: "Provjerite Dozvole za Pristup Datoteci",
     CheckSingleNode: "Provjerite Jedan Nod/Čvor",
@@ -71,15 +89,20 @@
     Compress: "Sabijte",
     Compressed: "Komprimirani",
     CompressedFileSize: "Komprimirana Veličina Datoteke",
+    Condition: "Uslov",
     Configuration: "Konfiguracija",
     ConfirmPassword: "Potvrdite Lozinku",
     ConfirmRemoval: "Jeste li sigurni da to želite učiniti?",
+    ContactAdmin: "Ako želite promijeniti naziv ove grupe, kontaktirajte administratora LDAP.",
     Content: "Sadržaj",
     Contents: "Sadržaji",
     ContentType: "Vrsta Sadržaja",
     Copy: "Kopirajte",
     Count: "Izbrojte",
+    CreateANewFile: "Kreirajte novi superfile",
     Created: "Proizveden",
+    Critical: "Kritično",
+    CSV: "CSV",
     Dali: "Dali",
     dataset: ":=dataset*",
     Date: "Datum",
@@ -88,8 +111,13 @@
     Debug: "Otklonite Neispravnosti",
     DEF: "DEF",
     Defaults: "Unaprijed Definisane Vrijednosti",
+    Definition: "Definicija",
     Delete: "Obrišite",
+    DeleteBinding: "Izbrišite Vezivanje",
     Deleted: "Izbrisan",
+    DeletedBinding: "Izbrisano Vezivanje",
+    DeleteDirectories: "Eliminišite prazne direktirije. Želite li nastaviti?",
+    DeleteEmptyDirectories: "Želite li izbrisati prazne direktorije?",
     DeleteSelectedFiles: "Obrišite Odabrane Datoteke?",
     DeleteSelectedGroups: "Obrišite odabranu(e) grupu(e)?",
     DeleteSelectedPermissions: "Obrišite Odabrane Dozvole Za Pristup",
@@ -105,14 +133,16 @@
     DenyRead: "<center>Zabranite<br>Čitanje</center>",
     DenyWrite: "<center>Zabranite<br>Pisanje</center>",
     Depth: "Dubina",
-    DepthTooltip: "'Najveća Dubina Podgrafa",
+    DepthTooltip: "Najveća Dubina Podgrafa",
     Deschedule: "Izbacite Is Reda Za Izvršavanje",
     DescheduleSelectedWorkunits: "Izbacite Odabrane Radne Jedinice Is Reda Za Izvršavanje?",
     Description: "Opis",
+    DESDL: "Dinamički ESDL",
     Despray: "Ponovo Objedinite Datoteku",
     Details: "Detalji",
     DFUServerName: "Ime DFU Servera",
     DFUWorkunit: "DFU RadnaJedinica",
+    Directories: "Direktorije",
     Directory: "Direktorij",
     DisableScopeScanConfirm: "Da li ste sigurni da želite da onemogućite skaniranje opsega? Promjene će biti prihvaćene poslije restarta DALIja",
     DisableScopeScans: "Onemogućite Skaniranje Opsega",
@@ -125,8 +155,10 @@
     Down: "Neaktivan",
     Download: "Dobavite",
     Downloads: "Preuzimanje",
+    DownloadToCSV: "Preuzmite u CSV formatu",
     DropZone: "Zona Prijema",
     Duration: "Trajanje",
+    DynamicNoServicesFound: "Servisi Nisu Pronađeni",
     EBCDIC: "EBCDIC",
     ECL: "ECL",
     ECLWorkunit: "ECL RadnaJedinica",
@@ -135,15 +167,19 @@
     EditDOT: "Editujte DOT",
     EditGraphAttributes: "Editujte Atribute Grafova",
     EditXGMML: "Editujte XGMML",
+    EmployeeID: "ID Radnika",
     Empty: "(Prazan)",
     Enable: "Omogućite",
     EnableScopeScans: "Omogućite Skaniranje Opsega",
     EnableScopeScansConfirm: "Da li ste sigurni da želite da omogućite skaniranje opsega? Promjene će biti prihvaćene poslije restarta DALIja",
     EnglishQ: "Engleski?",
+    EnterAPercentage: "Unesite procenat",
+    EnterAPercentageOrMB: "Unesite Procenat ili MB",
     Error: "Greška",
     Errorparsingserverresult: "Greška u analizi rezultata sa servera",
     Errors: "Greške",
     ErrorsStatus: "Greške/Stanje",
+    ErrorUploadingFile: "Greška prilikom prenosa datoteke(a). Pokušajte provjeriti dozvole za prenos.",
     ErrorWarnings: "Greška/Upozorenja",
     Escape: "Escape",
     ESPBuildVersion: "ESP Trenutna Verzija",
@@ -156,19 +192,22 @@
     Exception: "Neočekivani Problem",
     ExpandAll: "Proširite sve",
     Export: "Izvezite",
+    ExportSelectionsToList: "Izvezite Odabrane Stvari u Listu",
     FailIfNoSourceFile: "Neuspjeh Ukoliko Datoteka Ne Postoji",
+    Fatal: "Fatalan",
+    Fetched: "Preuzet",
     FetchingData: "U Procesu Dobavljnja Podataka...",
     fetchingresults: "dobijeni resultati",
     File: "Datoteka",
-    FileCounts: "Broj Datoteka",
     FileCluster: "Klaster Datoteka",
+    FileCounts: "Broj Datoteka",
     FileName: "Ime Datoteke",
     FileParts: "Dio Datoteke",
     FilePath: "Lokacija Datoteke",
     FilePermission: "Dozvola Za Pristup Datoteci",
     Files: "Datoteke",
-    FileScopes: "Skop Datoteka",
     FileScopeDefaultPermissions: "Unaprijed Definisane Dozvole za Prostor Datoteka",
+    FileScopes: "Skop Datoteka",
     FileSize: "Veličina Datoteke",
     FilesNoPackage: "Datoteke koje ne pripadaju paketu",
     FilesWithUnknownSize: "Datoteke Sa Nepoznatim Veličinama",
@@ -186,12 +225,16 @@
     Fixed: "Fiksni",
     Folder: "Fascikla",
     Format: "Format",
+    Forums: "Forumi",
     Forward: "Naprijed",
+    FoundFile: "Fajl Je Pronađen",
+    FoundFileMessage: "Pronađeni fajl ima sve svoje dijelove na disku, ali dijelovi nisu poznati Dali serveru. Svi dijelovi fajla mogu biti dodani nazad na Dali server. Dijelovi mogu biti I obrisani sa klastera ako je to potrebno.",
     FromDate: "Od Datuma",
     FromSizes: "Od Veličine",
     FromTime: "Od Vremena",
-    Forums: "Forumi",
     FullName: "Ime i Prezime",
+    Generate: "Generišite",
+    GetSoftwareInformation: "Želite li dobiti informacije o softveru",
     Graph: "Graf",
     Graphs: "Grafikoni",
     GraphView: "Slika Grafikona",
@@ -220,17 +263,19 @@
     InfoDialog: "Dijalog Informacije",
     InheritedPermissions: "Naslijeđene Dozvole",
     Inputs: "Unosi",
-    IssueReporting: "Izvještavanje o Problemima",
     InvalidResponse: "(Neispravan Odgovor)",
     IP: "IP",
     IPAddress: "IP Adresa",
+    IsCompressed: "Je li Sabijen",
     IsLibrary: "Jeli Biblioteka",
     IsReplicated: "Repliciran",
+    IssueReporting: "Izvještavanje o Problemima",
     Jobname: "Nazivradnejedinice",
     JobName: "Naziv Radne Jedinice",
     jsmi: "jsmi*",
     JSmith: "JSmit*",
     JSON: "JSON",
+    KeyFile: "Indeksirana Datoteka",
     Label: "Etiketa",
     LandingZone: "Zona za Pretovar",
     LandingZones: "Zone za Pretovar",
@@ -238,11 +283,13 @@
     Largest: "Najveći",
     LargestFile: "Najveća Datoteka",
     LargestSize: "Najveća veličina",
+    LastMessage: "Zadnja Poruka",
     LastName: "Prezime",
     LastNDays: "Poslijednjih N Dana",
     LastNHours: "Posljednjih N Sati",
     LastNRows: "Posljednjih N Redova",
-    LDAPWarning: "<b>Greška LDAP Servica:</b>  'Previše korisnika' - Molimo koristite filter.",
+    LastRun: "Zadnji Ran",
+    LDAPWarning: "<b>Greška LDAP Servica:</b>  &lsquo;Previše korisnika&rsquo; - Molimo koristite filter.",
     LegacyForm: "Stari Prevaziđeni Formular",
     LibrariesUsed: "Biblioteke u Korištenju",
     LibraryName: "Ime Biblioteke",
@@ -256,6 +303,8 @@
     LoadPackageContentHere: "(Dobavite ovamo sadržaj paketa)",
     LoadPackageFromFile: "Dobavite Paket iz Datoteke",
     Local: "Lokalni",
+    LocalFileSystemsOnly: "Samo Lokalni Fajl Sistemi",
+    Location: "Lokacija",
     Log: "Dnevnik (Log)",
     LogFile: "Datoteka Aktivnosti",
     LoggedInAs: "Prijavljen kao",
@@ -267,7 +316,13 @@
     LogicalName: "Ime Logičke Datoteke",
     Logs: "Dnevnici",
     log_analysis_1: "log_analysis_1*",
+    LostFile2: "Izgubljeni Fajlovi",
+    LostFile: "Izgubljeni Fajl",
+    LostFileMessage: "Logički fajl kome nedostaje bar jedan dio ili na primarnoj ili na repliciranoj lokaciji na disku.  Logički file je još uvijek pod kontrolom Dali servera. Brisanje fajla prekida kontrolu Dali servera nad fajlom kao i nad svim preostalim dijelovima fajla na disku.",
     Low: "Nizak",
+    MachineInformation: "Informacija o Mašini",
+    Machines: "Mašine",
+    Major: "Glavni",
     ManagedBy: "Upravljan",
     ManagedByPlaceholder: "CN=HPCCAdmin,OU=users,OU=hpcc,DC=MyCo,DC=local",
     ManualCopy: "Pritisnite Ctrl+C",
@@ -277,11 +332,17 @@
     Mask: "Maska",
     Max: "Maksimum",
     MaximumNumberOfSlaves: "Maksimalan Broj Izvršilaca",
+    MaxNode: "Maksimalni Nod/čvor",
     MaxRecordLength: "Maksimalna Dužina Rekorda",
+    MaxSize: "Maksimalna Veličina",
     MemberOf: "Član Od",
     Members: "Članovi",
     Message: "Poruke",
+    Methods: "Metodi",
     Min: "Minimum",
+    MinNode: "Minimalni Nod/čvor",
+    Minor: "Minoran",
+    MinSize: "Minimalna Veličina",
     Missing: "Nedostaje",
     MixedNodeStates: "Svi Nodovi Nemaju Isti Status ",
     Modification: "Promijena",
@@ -308,6 +369,7 @@
     NoErrorFound: "Bez nađenih grešaka\n",
     NoFilterCriteriaSpecified: "Kriterij za filtriranje nije specificiran.",
     None: "Nijedan",
+    NoPublishedSize: "Veličina Nije Objavljena",
     Normal: "Normalan",
     NoScheduledEvents: "Nema Definisanih Događaja na Rasporedu.",
     NoSplit: "Nema Podijela (Split)",
@@ -335,6 +397,9 @@
     Operations: "Operacije",
     Options: "Opcije",
     OriginalFile: "Originalna datoteka",
+    OrphanFile2: "Nepotrebna Datoteka",
+    OrphanFile: "Nepotrebne Datoteke",
+    OrphanMessage: "Nepotrebni fajl ima neke dijelove na disku. Ali svi dijelovi fajla ne postoje da bi se moglo kompletirati logički fajl. Ne postoji referenca ne nepostijeće dijelove fajla sa Dali servera.",
     Outputs: "Izlazi",
     Overview: "Pregled",
     Overwrite: "Prepišite",
@@ -347,7 +412,10 @@
     PackagesNoQuery: "Paketi za koje nisu definisani upiti (queries)",
     ParameterXML: "Parametar XML",
     Part: "Dio",
+    PartMask: "Djelimična Maska",
     Parts: "Dijelovi",
+    PartsFound: "Dijelovi Su Pronađeni",
+    PartsLost: "Dijelovi Su Izgubljeni",
     Password: "Lozinka",
     PasswordExpiration: "Lozinka Istiće",
     PasswordExpired: "Vaša lozinka je istekla I mora biti promijenjena",
@@ -362,8 +430,8 @@
     PctComplete: "% Kompletiran",
     PercentDone: "Procenat Završen",
     PerformingLayout: "Izvršava Layout...",
-    PermissionName: "Naziv Dozvole Za Pristup",
     Permission: "Dozvola",
+    PermissionName: "Naziv Dozvole Za Pristup",
     Permissions: "Dozvole za Pristup",
     PhysicalFiles: "Fizičke Datoteke",
     PlaceholderFindText: "Wuid, Korisnik, Dalje...",
@@ -371,17 +439,25 @@
     PlaceholderLastName: "Smith",
     Playground: "Igralište",
     PleaseEnterANumber: "Unestite Broj 1 -",
+    PleasePickADefinition: "Izaberite Definiciju",
+    PleaseSelectADynamicESDLService: "Izaberite Dinamički ESDL Servis",
+    PleaseSelectAGroupToAddUser: "Izaberite grupu u koju želite da dodate ovog korisnika",
+    PleaseSelectATopologyItem: "Izaberite ciljnu platformu, servis ili mašinu.",
     PleaseSelectAUserOrGroup: "Izaberite Korisnika ili Grupu zajedno sa Imenom Datoteke",
+    PleaseSelectAUserToAdd: "Izaberite korisnika kojeg  želite da dodate",
     Plugins: "Dopune",
     Port: "Port",
     Prefix: "Prefiks",
     PrefixPlaceholder: "filename{:length}, filesize{:[B|L][1-8]}",
+    Preflight: "Provjera prije isporuke",
     PreserveCompression: "Sačuvajte Kompresiju",
     Preview: "Pregled",
+    PrimaryLost: "Primarni Je Izgubljen",
     PrimaryMonitoring: "Primarni Nadzor",
     Priority: "Prioritet",
     Process: "Proces",
     ProcessFilter: "Process&nbsp;Filter",
+    ProcessorInformation: "Informacija o Procesoru",
     ProgressMessage: "Poruka o Progresu",
     Properties: "Svojstva",
     Property: "Svojstvo",
@@ -406,6 +482,7 @@
     Quote: "Citat",
     QuotedTerminator: "Završni Karakter",
     RawTextPage: "Neobrađen Tekst (Tekuća Stranica)",
+    Ready: "Spreman",
     ReallyWantToRemove: "Zaista želite ukloniti?",
     RecordCount: "Broj Rekorda",
     RecordLength: "Dužina Rekorda",
@@ -414,6 +491,7 @@
     RecordStructurePresent: "Struktura Rekorda Postoji",
     Recover: "Vratite Natrag",
     RecoverTooltip: "Pokrenite zaustavljenu radnu jedinicu",
+    Recycling: "Recikliranje",
     RedBook: "Crvena Knjiga",
     Refresh: "Osviježite",
     ReleaseNotes: "Napomena o Izdanju",
@@ -423,12 +501,16 @@
     RemoteDali: "Daleki Dali",
     RemoteDaliIP: "Daleki&nbsp;Dali&nbsp;IP&nbsp;Adresa",
     Remove: "Uklonite",
+    RemoveAttributeQ: "Izabrani atribut će biti uklonjen. Da li ste sigurni da to želite?",
+    RemoveAtttributes: "Uklonite Atribut(e)",
+    RemoveSubfiles2: "Da li želite ukloniti subfajl(ove)?",
     RemoveSubfiles: "Uklonite Pod-Datoteku",
     RemoveUser: "Uklonite Korisnika",
     Rename: "Preimenujte",
     RenderedSVG: "Donesene SVG",
     RenderSVG: "Donesite SVG",
     Replicate: "Replicirajte",
+    ReplicatedLost: "Izgubljene Replikacije",
     ReplicateOffset: "Replicirajte Ofset",
     RepresentsASubset: "Predstavlja podskup od ukupnog broja uparenih rezultata .Promjena filtera može smanjiti broj uparenih rezultata",
     RequestSchema: "Shema Zahtjeva",
@@ -455,6 +537,7 @@
     Rows: "Redovi",
     RowTag: "Etiketa Reda",
     RoxieCluster: "Roxie Klaster",
+    RunningServerStrain: "Izvršavanje ovog procesa može potrajati dugo vremena i veoma optereti servere. Da li želite nastaviti?",
     Sample: "Primjer",
     SampleRequest: "Primjer Zahtjeva",
     SampleResponse: "Primjer Odgovora",
@@ -465,14 +548,18 @@
     Security: "Sigurnost",
     SelectPackageFile: "Izaberi Paket",
     Separators: "Seperatori",
+    Services: "Servisi",
     SetBanner: "Postavite Zastavicu",
-    SetTextError: "Neuspješno prikazivanje teksta (da li je tekst predug?). Koristite 'pomagače' za preuzimanje datoteka.",
+    SetTextError: "Neuspješno prikazivanje teksta (da li je tekst predug?). Koristite &lsquo;pomagače&rsquo; za preuzimanje datoteka.",
     SetToFailed: "Postavite Na Neuspješan",
     Severity: "Ozbiljnost",
     Show: "Pokažite",
+    ShowProcessesUsingFilter: "Prikažite procese koristeći filter",
     ShowSVG: "Pokažite SVG",
     Size: "Veličina",
     Skew: "Skju (Skew)",
+    SkewNegative: "Skju(-)",
+    SkewPositive: "Skju(+)",
     SLA: "SLA",
     SlaveLogs: "Izvjestaji Izvršilaca",
     SlaveNumber: "Broj Izvršilaca",
@@ -493,10 +580,13 @@
     Spray: "Razbacajte (Spray)",
     Start: "Počnite",
     Started: "Počeo",
+    Starting: "Polazak",
     State: "Stanje",
     Stats: "Statistike",
     Status: "Status",
     Stopped: "Zaustavljen",
+    Stopping: "Zaustavljanje",
+    StorageInformation: "Informacija o prostoru",
     Subgraph: "Pod-Graf",
     Subgraphs: "Podgrafikon",
     Submit: "Podnesite",
@@ -505,8 +595,8 @@
     SummaryMessage: "Sažeta Poruka",
     Superfile: "Super Datoteka",
     SuperFile: "Super Datoteka",
-    SuperFiles: "Super Datoteke",
     Superfiles: "SuperDatoteke",
+    SuperFiles: "Super Datoteke",
     SuperFilesBelongsTo: "Pripadnik Superdatoteke",
     SuperfilesOnly: "Samo Superdatoteke",
     Suspend: "Suspendujte",
@@ -524,6 +614,7 @@
     TargetName: "Naziv Cilja",
     TargetNamePlaceholder: "neko::logicko::ime",
     TargetRowTagRequired: "Morate označiti ciljni red u tabeli",
+    Targets: "Ciljne Platforme",
     TargetScope: "Ciljni Opseg",
     TargetWuid: "Cilj/Wuid",
     Terminators: "Terminatori",
@@ -540,19 +631,23 @@
     TimeStopped: "Vrijeme Kraja",
     Timings: "Vremena",
     TimingsMap: "Mapa Vremena",
-    title_Activity: "Aktivnosti",
     title_ActiveGroupPermissions: "Dozvole Aktivne Grupe",
     title_ActivePermissions: "Aktivne Dozvole",
+    title_Activity: "Aktivnosti",
     title_AvailableGroupPermissions: "Dostupne Dozvole Grupe",
     title_AvailablePermissions: "Dostupne Dozvole",
     title_ClusterInfo: "Grupe",
     title_CodeGeneratorPermissions: "Dozvole Kod Generatora",
+    title_DESDL: "Dinamičani ESDL",
     title_DFUQuery: "Logičke Datoteke",
     title_DFUWUDetails: "DFU Radna Jedinica",
+    title_DirectoriesFor: "Direktoriji za",
     title_DiskUsage: "Iskorištenost Diska",
     title_ECLPlayground: "ECL Igralište",
+    title_ErrorsWarnings: "Pogreške/Upozorenja za",
     title_EventScheduleWorkunit: "Respoređivač Događaja",
     title_FileScopeDefaultPermissions: "Unaprijed Definisane Dozvole za Prostor za Datoteke",
+    title_FoundFilesFor: "Pronađen fajl za",
     title_GetDFUWorkunits: "DFU Radne Jedinice",
     title_Graph: "Grafikon",
     title_GraphPage: "naslov",
@@ -568,10 +663,13 @@
     title_LFDetails: "Detalji o Logičkol Datoteci",
     title_LibrariesUsed: "Biblioteke U Korištenju",
     title_Log: "Log Fajl",
+    title_LostFilesFor: "Izgubljeni fajlovi za",
     title_LZBrowse: "Zona za Pretovar",
     title_MemberOf: "Član Od",
     title_Members: "Članovi",
+    title_OrphanFilesFor: "Nepotrebni fajlovi za",
     title_Permissions: "Dozvole",
+    title_PreflightResults: "Rezultati Provjere",
     title_QuerySetDetails: "Detalji Upita",
     title_QuerySetErrors: "Greške",
     title_QuerySetLogicalFiles: "Logičke Datoteke",
@@ -592,12 +690,13 @@
     To: "Prema",
     ToDate: "Do Sada",
     Toenablegraphviews: "Da biste mogli vidjeli grafikone, moraćete instalisati Graph View Control plugin",
-    TooManyFiles: "Previše Datoteka",
     Tooltip: "Savjet",
+    TooManyFiles: "Previše Datoteka",
     Top: "Vrh",
     Topology: "Topologija",
     ToSizes: "Do Velićina",
     TotalClusterTime: "Ukupno Vrijeme Klastera",
+    TotalParts: "Ukupan Broj Dijelova",
     TotalSize: "Totalna Veličina",
     TotalThorTime: "Ukupno Vrijeme Thor-a",
     TransitionGuide: "Vodič",
@@ -637,6 +736,10 @@
     ViewByScope: "Pogled prema Skopu",
     Views: "Pogledi",
     Visualize: "Visualizujte",
+    WarnIfAvailableDiskSpaceIsUnder: "Upozori ako raspoloživi disk prostor spadne ispod",
+    WarnIfAvailableMemoryIsUnder: "Upozori ako raspoloživa memorija spadne ispod",
+    WarnIfCPUUsageIsOver: "Upozori ako je iskorištenost procesora preko",
+    Warning: "Upozorenje",
     Warnings: "Upozorenje(a)",
     WarnOldGraphControl: "Upozorenje:  Stara Grafička Kontrola",
     What: "Šta",
@@ -657,13 +760,15 @@
     XML: "XML",
     XRef: "XRef",
     Year: "Godina",
+    YouAreAboutToDeleteBinding: "Odabrano vezivanje/binding će biti izbrisano. Jeste li sigurni da želite to učiniti?",
+    YouAreAboutToRemoveUserFrom: "Tražili ste da odstranite korisnika(e) iz ove grupe. Da li želite nastaviti?",
     YourBrowserMayNotSupport: "Vaš pretraživač možda ne podržava datoteku (e) ove veličine",
     ZAP: "Z.A.P",
     ZeroLogicalFilesCheckFilter: "Nema ni jedane Logičke Datoteke(provjerite filter)",
     Zip: "Zapakujte (Zip)",
     ZippedAnalysisPackage: "Zapakovani Paket sa Analizama",
-    Zoom: "Zum",
     Zoom100Pct: "Zumirajte 100%",
+    Zoom: "Zum",
     ZoomAll: "Zumirajte Sve",
     ZoomWidth: "Zumirajte Širinu"
 })

+ 123 - 18
esp/src/eclwatch/nls/es/hpcc.js

@@ -1,6 +1,8 @@
 define(
 ({
     Abort: "Aborte",
+    AbortedBy: "Abortado por",
+    AbortedTime: "Abortado a las",
     About: "Acerca",
     AboutGraphControl: "Acerca del controlador gráfico",
     AboutHPCCSystemsGraphControl: "Acerca del controlador gráfico de HPCC Systems®",
@@ -9,17 +11,22 @@ define(
     Activate: "Activar",
     Activated: "Activado",
     Active: "Activo",
-    ActivePackageMap: "'Package Map' Activo",
+    ActivePackageMap: "&lsquo;Package Map&rsquo; Activo",
     ActiveWorkunit: "Unidad activa",
     Activities: "Actividades",
     Activity: "Actividad",
     ActivityMap: "Mapa de Actividades",
     ActualSize: "Tamaño real",
     Add: "Agregar",
+    AddAttributes2: "Agregar atributos",
+    AddAttributes: "Agregar atributos/valores a su método",
+    AddBinding: "Agregar conexión",
     AddFile: "Añadir Archivo",
     AddGroup: "Agregar Grupo",
     AdditionalResources: "Recursos  Adicionales",
-    AddProcessMap: "Agregar 'Package Map'",
+    AddProcessMap: "Agregar &lsquo;Package Map&rsquo;",
+    AddtionalProcessesToFilter: "Procesos adicionales a filtrar",
+    AddToExistingSuperfile: "Agregar a un superarchivo existente",
     AddToSuperfile: "Agregar al Super-archivo",
     AddUser: "Aggregar Usuario",
     Advanced: "Advanzado",
@@ -29,22 +36,33 @@ define(
     AllowFull: "<center>Permitir<br>Completo</center>",
     AllowRead: "<center>Permitir<br>Leer</center>",
     AllowWrite: "<center>Permitir<br>Escribir</center>",
+    AllQueuedItemsCleared: "Todos los items encolados han sido eliminados. El trabajo en ejecución continuará corriendo",
     ANY: "CUALQUIER",
+    AnyAdditionalProcessesToFilter: "Procesos adicionales a filtrar",
     Append: "Agregar",
     Apply: "Aplicar",
     ArchivedOnly: "Solo archivado",
     ArchivedWarning: "Advertencia: Por favor especifique rango de fechas corto. O si no, la recuperacion de workunits puede ser demorada.",
+    Attribute: "Atributo",
+    AttributesAreRequired: "Atributos son necesarios",
     AutoRefresh: "Actualizar Automaticamente",
+    AutoRefreshEvery: "Auto-refrescar cada x minutos",
+    AutoRefreshIncrement: "Incrementar auto-refresco",
     Back: "Atras",
     BannerColor: "Color de Banner",
     BannerMessage: "Mensaje del Banner",
     BannerScroll: "Desplazamiento del Banner",
     BannerSize: "Tamaño del Banner",
     BinaryInstalls: "Binarios instalables",
+    Binding: "Conexión",
+    BindingDeleted: "Conexión eliminada",
     Blob: "BLOB",
     BlobPrefix: "Prefijo de BLOB",
     Bottom: "Abajo",
+    Busy: "Ocupado",
     Cancel: "Cancelar",
+    CancelAll: "Cancelar todo",
+    CancelAllMessage: "Abortar trabajos en ejecución y limpiar la cola. Desearía continuar?",
     CheckAllNodes: "Escoger todos los Nodos",
     CheckFilePermissions: "Escoger permisos de Archivo",
     CheckSingleNode: "Escoja un Archivo",
@@ -52,8 +70,8 @@ define(
     ClearPermissionsCache: "Despejar Los Permisos Del Cache",
     ClearPermissionsCacheConfirm: "Esta seguro que desea despejar los permisos del Cache de DALI y ESP? Workunits en executo pueden demorarse asta que los Caches se actualicen",
     Clone: "Clonar",
-    CloneTooltip: "Duplicar Workunit",
     ClonedWUID: "WUID Clonado",
+    CloneTooltip: "Duplicar Workunit",
     Close: "Cerrar",
     Cluster: "Sistema",
     ClusterName: "Nombre del sistema",
@@ -71,15 +89,20 @@ define(
     Compress: "Comprimir",
     Compressed: "Comprimido",
     CompressedFileSize: "Tamaño de Archivo Comprimido",
+    Condition: "Condición",
     Configuration: "Configuracion",
     ConfirmPassword: "Confirme la Contraseña",
     ConfirmRemoval: "¿Seguro que quieres hacer esto?",
+    ContactAdmin: "Si quiere renombrar este grupo, por favor contacte su administrador de LDAP",
     Content: "Contenido",
     Contents: "Contenidos",
     ContentType: "Tipo de Contenido",
     Copy: "Copia",
     Count: "Número",
+    CreateANewFile: "Crear un nuevo superarchivo",
     Created: "Creado",
+    Critical: "Crítico",
+    CSV: "CSV",
     Dali: "Dali",
     dataset: ":=dataset*",
     Date: "Fecha",
@@ -88,8 +111,13 @@ define(
     Debug: "Depurar",
     DEF: "DEF",
     Defaults: "Valores por defecto",
+    Definition: "Definición",
     Delete: "Eliminar",
+    DeleteBinding: "Eliminar conexión",
     Deleted: "Borrado",
+    DeletedBinding: "Conexión eliminada",
+    DeleteDirectories: "Eliminar directorios vaciós. Quiere continuar?",
+    DeleteEmptyDirectories: "Eliminar directorios vaciós?",
     DeleteSelectedFiles: "¿Borrar archivos seleccionados?",
     DeleteSelectedGroups: "Eliminar  grupo(s) escojido(s)?",
     DeleteSelectedPermissions: "Borrar permiso(s) escojido(s)?",
@@ -109,10 +137,12 @@ define(
     Deschedule: "Eliminar del plan de ejecución",
     DescheduleSelectedWorkunits: "Desprogramar Workunit(s) escojida(s)?",
     Description: "Descripción",
+    DESDL: "ESDL dinámico",
     Despray: "Despray",
     Details: "Detalles",
     DFUServerName: "Nombre del servidor de DFU",
     DFUWorkunit: "Unidad de Trabajo de DFU",
+    Directories: "Directorios",
     Directory: "Directorio",
     DisableScopeScanConfirm: "Esta seguro que desea inhabilitar Scope Scans? Cuando DALI se reinicie, las opciones cambiadas se revierten a las opciones de la configuración.",
     DisableScopeScans: "Inhabilitar Scope Scans",
@@ -125,8 +155,10 @@ define(
     Down: "Abajo",
     Download: "Descargar",
     Downloads: "Descargas",
+    DownloadToCSV: "Bajar en formato CSV",
     DropZone: "Zona de carga",
     Duration: "Duración",
+    DynamicNoServicesFound: "No se han encontrado servicios",
     EBCDIC: "EBCDIC",
     ECL: "ECL",
     ECLWorkunit: "Unidad de Trabajo de ECL",
@@ -135,15 +167,19 @@ define(
     EditDOT: "Editar DOT",
     EditGraphAttributes: "Editar atributos gráficos",
     EditXGMML: "Editar XGMML",
+    EmployeeID: "Identificador del empleado",
     Empty: "(Vacío)",
     Enable: "Habilitar",
     EnableScopeScans: "Activar Scope Scans",
     EnableScopeScansConfirm: "Esta seguro que desea activar Scope Scans?  Cuando DALI se reinicie, las opciones cambiadas se revierten a las opciones de la configuración.",
     EnglishQ: "Ingles?",
+    EnterAPercentage: "Entre un porcentaje",
+    EnterAPercentageOrMB: "Entre un porcentaje o MB",
     Error: "Error",
     Errorparsingserverresult: "Error analizando los resultados del servidor",
     Errors: "Errores",
     ErrorsStatus: "Errores/Estado",
+    ErrorUploadingFile: "Error subiendo archivo(s). Verifique los permisos",
     ErrorWarnings: "Error/Advertencia(s)",
     Escape: "Escapar",
     ESPBuildVersion: "Versión de ESP",
@@ -156,7 +192,10 @@ define(
     Exception: "Excepción",
     ExpandAll: "Expandir Todo",
     Export: "Exportar",
+    ExportSelectionsToList: "Exportar selecciones a lista",
     FailIfNoSourceFile: "Falla si no hay archivo de origen",
+    Fatal: "Fatal",
+    Fetched: "Obtenido",
     FetchingData: "Obteniendo Data...",
     fetchingresults: "obteniendo resultados",
     File: "Archivo",
@@ -167,8 +206,8 @@ define(
     FilePath: "Camino del archivo",
     FilePermission: "Permisos de Archivos",
     Files: "Archivos",
-    FileScopes: "Ámbitos de Archivos",
     FileScopeDefaultPermissions: "Permisos por defecto de alcance de archivos",
+    FileScopes: "Ámbitos de Archivos",
     FileSize: "Tamaño de archivo",
     FilesNoPackage: "Archivos sin ",
     FilesWithUnknownSize: "Archivos sin tamaño desconocido.",
@@ -186,12 +225,16 @@ define(
     Fixed: "Fijo",
     Folder: "Carpeta",
     Format: "Formato",
-    Forward: "Adelante",
     Forums: "Foros",
+    Forward: "Adelante",
+    FoundFile: "Archivo encontrado",
+    FoundFileMessage: "Todas las partes en disco del archivo encontrado no estan referenciadas en el servidor Dali. Todas las partes se han encontrado asi que pueden ser agregadas de nuevo al Servidor Dali. Las partes tambien pueden ser removidas del cluster, si es necesario.",
     FromDate: "Desde Fecha",
     FromSizes: "Desde Tamaños",
     FromTime: "Tiempo de Comenzar",
     FullName: "Nombre Entero",
+    Generate: "Generar",
+    GetSoftwareInformation: "Obtener informacion del software",
     Graph: "Gráfico",
     Graphs: "Gráficos",
     GraphView: "Vista del gráfico",
@@ -223,14 +266,16 @@ define(
     InvalidResponse: "(Respuesta invalida)",
     IP: "IP",
     IPAddress: "Dirección de IP",
+    IsCompressed: "Está comprimido",
     IsLibrary: "Es biblioteca",
     IsReplicated: "Es Replicado",
     IssueReporting: "Informes de errores",
-    Jobname: "Nombre del trabajo",
     JobName: "Nombre del trabajo",
+    Jobname: "Nombre del trabajo",
     jsmi: "jsmi*",
     JSmith: "JSmit*",
     JSON: "JSON",
+    KeyFile: "Archivo llave",
     Label: "Etiqueta",
     LandingZone: "Zona de descarga",
     LandingZones: "Zonas de aterrizaje",
@@ -238,11 +283,13 @@ define(
     Largest: "Mas Grande",
     LargestFile: "Archivo mas Grande",
     LargestSize: "Tomaño mas Grande",
+    LastMessage: "Ultimo mensaje",
     LastName: "Apellido",
     LastNDays: "ULtimos N días",
     LastNHours: "Ultimas N Horas",
     LastNRows: "Ultimas N Filas",
-    LDAPWarning: "<b>Error en Servicios de LDAP:</b>  'Demasiados Usuarios' - Por favor aplique un Filtro.",
+    LastRun: "Ultima ejecución",
+    LDAPWarning: "<b>Error en Servicios de LDAP:</b>  &lsquo;Demasiados Usuarios&rsquo; - Por favor aplique un Filtro.",
     LegacyForm: "Forma histórica",
     LibrariesUsed: "Bibliotecas usadas",
     LibraryName: "Nombre de Biblioteca",
@@ -256,6 +303,8 @@ define(
     LoadPackageContentHere: "(Cargar aqui el contenido del paquete)",
     LoadPackageFromFile: "Cargar paquete con contenido de archivo",
     Local: "Local",
+    LocalFileSystemsOnly: "Sistema de archivos locales solamente",
+    Location: "Ubicación",
     Log: "Registro",
     LogFile: "Archivo de registro",
     LoggedInAs: "Conectado como",
@@ -267,7 +316,13 @@ define(
     LogicalName: "Nombre lógico",
     Logs: "Registros",
     log_analysis_1: "log_analysis_1*",
+    LostFile2: "Archivos perdidos",
+    LostFile: "Archivo perdido",
+    LostFileMessage: "Un archivo lógico ha perdido al menos una de sus partes en ambas ubicaciones, primary y replicada. El archivo lógico aún está referenciado en el servidor Dali. Eliminando este archivo se remueven la referencia en el servidor Dali y todas las partes existentes en disco.",
     Low: "Bajo",
+    MachineInformation: "Información de las máquinas",
+    Machines: "Máquinas",
+    Major: "Mayor",
     ManagedBy: "Manejado por",
     ManagedByPlaceholder: "CN=HPCCAdmin,OU=users,OU=hpcc,DC=MyCo,DC=local",
     ManualCopy: "Oprima Crtl_C",
@@ -277,11 +332,17 @@ define(
     Mask: "Máscara",
     Max: "Máx",
     MaximumNumberOfSlaves: "Numero de esclavo",
+    MaxNode: "Nodo máximo",
     MaxRecordLength: "Máx largo de registros",
+    MaxSize: "Tamaňo máximo",
     MemberOf: "Miembro de",
     Members: "Miembros",
     Message: "Mensaje",
+    Methods: "Métodos",
     Min: "Minimo",
+    MinNode: "Nodo mínimo",
+    Minor: "Menor",
+    MinSize: "Tamaňo mínimo",
     Missing: "Falta",
     MixedNodeStates: "Estado mixto de nodo",
     Modification: "Modificación",
@@ -308,6 +369,7 @@ define(
     NoErrorFound: "Ningun Error Detectado",
     NoFilterCriteriaSpecified: "No especificó criterio de filtro.",
     None: "Ninguno",
+    NoPublishedSize: "Tamaňo no publicado",
     Normal: "Normal",
     NoScheduledEvents: "Ningun evento programado.",
     NoSplit: "No corte",
@@ -335,6 +397,9 @@ define(
     Operations: "Operaciones",
     Options: "Opciones",
     OriginalFile: "Archivo Original",
+    OrphanFile2: "Archivo huérfano",
+    OrphanFile: "Archivos huérfanos",
+    OrphanMessage: "Un archivo huérfano tiene solo algunas de sus partes en disco. Sin embargo, el conjunto completo de partes no esta disponible para construir un archivo logico completo. No hay referencias a estas partes de archivo en el servidor Dali.",
     Outputs: "Salidas",
     Overview: "Visión de conjunto",
     Overwrite: "Sobreescribir",
@@ -347,7 +412,10 @@ define(
     PackagesNoQuery: "Paqutes sin correspondiente consulta",
     ParameterXML: "Parámetro XML",
     Part: "Parte",
+    PartMask: "Máscara de parte",
     Parts: "Partes",
+    PartsFound: "Partes encontradas",
+    PartsLost: "Partes perdidas",
     Password: "Contraseña",
     PasswordExpiration: "Expiración de Contraseñas",
     PasswordExpired: "Su contraseña expiro. Por favor cambiela.",
@@ -371,17 +439,25 @@ define(
     PlaceholderLastName: "Smith",
     Playground: "Patio de juegos",
     PleaseEnterANumber: "Por favor escriba un numero 1 -",
+    PleasePickADefinition: "Por favor seleccione una definición",
+    PleaseSelectADynamicESDLService: "Por favor seleccione un servicio de ESDL dinámico",
+    PleaseSelectAGroupToAddUser: "Por favor escoja un grupo al cual agregar el usario",
+    PleaseSelectATopologyItem: "Por favor seleccione un destino, servicio o máquina",
     PleaseSelectAUserOrGroup: "Por favor escoja un usario o grupo y nombre de archivo",
+    PleaseSelectAUserToAdd: "Por favor escoja el usario para agregar",
     Plugins: "Plugins",
     Port: "Puerto",
     Prefix: "Prefijo",
     PrefixPlaceholder: "filename{:length}, filesize{:[B|L][1-8]}",
+    Preflight: "Pre-volado",
     PreserveCompression: "Preservar Compression",
     Preview: "Presentación Preliminar",
+    PrimaryLost: "Primario perdido",
     PrimaryMonitoring: "Monitoreado Principal",
     Priority: "Prioridad",
     Process: "Proceso",
     ProcessFilter: "Filtro de Procesos",
+    ProcessorInformation: "Información del procesador",
     ProgressMessage: "Mensaje de progreso",
     Properties: "Propiedades",
     Property: "Propiedad",
@@ -406,6 +482,7 @@ define(
     Quote: "Comilla",
     QuotedTerminator: "Terminador Encomillado",
     RawTextPage: "Texto (Pagina Actual)",
+    Ready: "Listo",
     ReallyWantToRemove: "Confirme que quiere eliminar",
     RecordCount: "Número de registros",
     RecordLength: "Largo de registro",
@@ -414,6 +491,7 @@ define(
     RecordStructurePresent: "Estructura del Registro esta presente",
     Recover: "Recuperar",
     RecoverTooltip: "Reiniciar workunit en pausa / estancado",
+    Recycling: "Reciclando",
     RedBook: "Red Book",
     Refresh: "Actualizar",
     ReleaseNotes: "Notas de la versión",
@@ -423,12 +501,16 @@ define(
     RemoteDali: "Dali remoto",
     RemoteDaliIP: "Remote&nbsp;Dali&nbsp;IP&nbsp;Address",
     Remove: "Remover",
+    RemoveAttributeQ: "Está por eliminar este atributo. Está seguro de que desea continuar?",
+    RemoveAtttributes: "Eliminar atributo(s)",
+    RemoveSubfiles2: "Remover subarchivo(s)",
     RemoveSubfiles: "Borrar Sub-Archivo(s)",
     RemoveUser: "Esta apunto de excluirse del grupo:",
     Rename: "Renombrar",
     RenderedSVG: "SVG creado",
     RenderSVG: "Crear SVG",
     Replicate: "Replicar",
+    ReplicatedLost: "Réplica perdida",
     ReplicateOffset: "Replicate Offset",
     RepresentsASubset: "Representar un subconjunto de todas los casamientos. Usando un filtro correcto puede reducir el numero de casamientos",
     RequestSchema: "Esquema del requerimiento",
@@ -455,6 +537,7 @@ define(
     Rows: "Líneas",
     RowTag: "Etiqueta de línea",
     RoxieCluster: "Sistema Roxie",
+    RunningServerStrain: "La ejecución de este proceso puede tomar un tiempo largo y pondrá una carga significativa en los servidores. Desea continuar?",
     Sample: "Ejemplo",
     SampleRequest: "Ejemplo del requerimiento",
     SampleResponse: "Ejemplo de la respuesta",
@@ -463,20 +546,24 @@ define(
     SearchResults: "Resultados de búsqueda",
     SecondsRemaining: "Segundos que faltan",
     Security: "Seguridad",
-    SelectPackageFile: "Seleccione 'Package File'",
+    SelectPackageFile: "Seleccione &lsquo;Package File&rsquo;",
     Separators: "Seperadores",
+    Services: "Servicios",
     SetBanner: "Configurar la bandera",
-    SetTextError: "No se pudo visualizar el texto (muy grande?). Use 'helpers' para descargar.",
+    SetTextError: "No se pudo visualizar el texto (muy grande?). Use &lsquo;helpers&rsquo; para descargar.",
     SetToFailed: "Marcar como fallado",
     Severity: "Severidad",
     Show: "Mostrar",
+    ShowProcessesUsingFilter: "Mostrar procesos usando filtro",
     ShowSVG: "Mostrar SVG",
     Size: "Tamaño",
     Skew: "Desbalance",
+    SkewNegative: "Desbalanceado(-)",
+    SkewPositive: "Desbalanceado(+)",
     SLA: "SLA",
-    Slaves: "Esclavos",
     SlaveLogs: "Slave logs",
     SlaveNumber: "Numero de esclavo",
+    Slaves: "Esclavos",
     Smallest: "El Mas Pequeño",
     SmallestFile: "Archivo mas Pequeño",
     SmallestSize: "Tamaño mas Pequeño",
@@ -493,18 +580,21 @@ define(
     Spray: "Rociar",
     Start: "Comienzo",
     Started: "Comenzado",
+    Starting: "Comenzando",
     State: "Estado",
     Stats: "Estatísticas",
     Status: "Estado",
     Stopped: "Detenido",
+    Stopping: "Deteniendo",
+    StorageInformation: "Información del almacenamiento",
     Subgraph: "Subgrafo",
     Subgraphs: "Sub-gráficos",
     Submit: "Enviar",
     Subtype: "Subtipo",
     Summary: "Resumen",
     SummaryMessage: "Mensaje resumido",
-    Superfile: "Superfile",
     SuperFile: "Super File",
+    Superfile: "Superfile",
     Superfiles: "Super-Archivos",
     SuperFiles: "Superfiles",
     SuperFilesBelongsTo: "Miembro de Super-Archivo(s)",
@@ -522,9 +612,10 @@ define(
     tag: "etiqueta",
     Target: "Destino",
     TargetClusters: "Sistemas de destino",
-    TargetName: "Nombre del 'Target'",
+    TargetName: "Nombre del &lsquo;Target&rsquo;",
     TargetNamePlaceholder: "nombre::dealgunl::archivo::logico",
     TargetRowTagRequired: "Es necesario suministrar el código de fila",
+    Targets: "Destinos",
     TargetScope: "Ámbito Objetivo",
     TargetWuid: "Wuid del Objecto",
     Terminators: "Terminadores",
@@ -541,19 +632,23 @@ define(
     TimeStopped: "Tiempo detenido",
     Timings: "Tiempos",
     TimingsMap: "Mapa de tiempos",
-    title_ActivePermissions: "Permisos Vigentes",
     title_ActiveGroupPermissions: "Permisos del Grupo Vigente",
+    title_ActivePermissions: "Permisos Vigentes",
     title_Activity: "Actividad",
     title_AvailableGroupPermissions: "Permisos de Grupo disponibles",
     title_AvailablePermissions: "Permisos Disponibles",
     title_ClusterInfo: "Grupos",
     title_CodeGeneratorPermissions: "Permisos de generador de codigo",
+    title_DESDL: "ESDL dinámico",
     title_DFUQuery: "Archivos Lógicos",
     title_DFUWUDetails: "Unidad de trabajo DFU",
+    title_DirectoriesFor: "Directorios para",
     title_DiskUsage: "Utilización del disco",
     title_ECLPlayground: "ECL Playground",
+    title_ErrorsWarnings: "Errores/Advertencias de",
     title_EventScheduleWorkunit: "Planificador de Eventos",
     title_FileScopeDefaultPermissions: "Permisos de archive por defecto",
+    title_FoundFilesFor: "Archivos encontrados para",
     title_GetDFUWorkunits: "Unidades de trabajo DFU",
     title_Graph: "Gráficos",
     title_GraphPage: "título",
@@ -569,10 +664,13 @@ define(
     title_LFDetails: "Detalles de archivos lógicos",
     title_LibrariesUsed: "Librerias Usadas",
     title_Log: "Archivo de Registro",
+    title_LostFilesFor: "Archivos perdidos para",
     title_LZBrowse: "Zonas de descarga",
     title_MemberOf: "Miembros de",
     title_Members: "Miembros",
+    title_OrphanFilesFor: "Archivos huérfanos para",
     title_Permissions: "Permisos",
+    title_PreflightResults: "Resultados de pre-volado",
     title_QuerySetDetails: "Detalles de Query",
     title_QuerySetErrors: "Errores",
     title_QuerySetLogicalFiles: "Archivos lógicos",
@@ -593,12 +691,13 @@ define(
     To: "A:",
     ToDate: "Hasta fecha",
     Toenablegraphviews: "Para habilitar vista de gráficos, instale el plugin Graph View Control",
-    TooManyFiles: "Demasiados archivos",
     Tooltip: "Tooltip",
+    TooManyFiles: "Demasiados archivos",
     Top: "Arriva",
     Topology: "Topología",
     ToSizes: "A tamaño",
     TotalClusterTime: "Tiempo Total del Cluster",
+    TotalParts: "Total de partes",
     TotalSize: "Tamaño Total",
     TotalThorTime: "Tiempo total de Thor",
     TransitionGuide: "Guía de transición",
@@ -618,8 +717,8 @@ define(
     User: "Usuario",
     UserDetails: "Detalles del Usuario",
     UserID: "ID del Usuarion",
-    Username: "NombreDeUsario",
     UserName: "Nombre de Usario",
+    Username: "NombreDeUsario",
     UserPermissions: "Permisos del Usuario",
     Users: "Usuarios",
     UseSingleConnection: "Use una sola conexión",
@@ -631,13 +730,17 @@ define(
     ValidateResultHere: "(resultado de la validación)",
     Value: "Valor",
     Variable: "Variable",
-    VariableBigendian: "Variable 'Big-endian'",
+    VariableBigendian: "Variable &lsquo;Big-endian&rsquo;",
     Variables: "Variables",
     VariableSourceType: "Formato",
     Version: "Versión",
-    ViewByScope: "'Ver Por Ámbito'",
+    ViewByScope: "&lsquo;Ver Por Ámbito&rsquo;",
     Views: "Vistas",
     Visualize: "Visualizar",
+    WarnIfAvailableDiskSpaceIsUnder: "Advertencia si disco disponible esta debajo de",
+    WarnIfAvailableMemoryIsUnder: "Advertencia si memoria disponible esta debajo de",
+    WarnIfCPUUsageIsOver: "Advertencia si uso de CPU esta arriba de",
+    Warning: "Advertencia",
     Warnings: "Advertencias",
     WarnOldGraphControl: "Advertencia: Controlador de Graphicas antiguo",
     What: "Que",
@@ -658,13 +761,15 @@ define(
     XML: "XML",
     XRef: "Referencias cruzadas",
     Year: "Año",
+    YouAreAboutToDeleteBinding: "Está a punto de eliminar esta conexión. Desea continuar?",
+    YouAreAboutToRemoveUserFrom: "Usted esta a punto de quitar un(os) usuario(s) de este grupo. ¿Desea continuar?",
     YourBrowserMayNotSupport: "Es posible que su navegador no soporta archivos de este tamaño",
     ZAP: "Z.A.P.",
     ZeroLogicalFilesCheckFilter: "Archivos logicos a cero (chequee filtro)",
     Zip: "Zip",
     ZippedAnalysisPackage: "Paquete de análisis en formato Zip",
-    Zoom: "Zoom",
     Zoom100Pct: "Aumentar a 100%",
+    Zoom: "Zoom",
     ZoomAll: "Aumentar todo",
     ZoomWidth: "Aumentar al ancho"
 })

+ 6 - 3
esp/src/eclwatch/nls/hpcc.js

@@ -290,7 +290,7 @@ define({root:
     LastNRows: "Last N Rows",
     LastRun: "Last Run",
     LegacyForm: "Legacy Form",
-    LDAPWarning: "<b>LDAP Services Error:</b>  'Too Many Users' - Please use a Filter.",
+    LDAPWarning: "<b>LDAP Services Error:</b>  &lsquo;Too Many Users&rsquo; - Please use a Filter.",
     LibrariesUsed: "Libraries Used",
     LibraryName: "Library Name",
     Line: "Line",
@@ -397,7 +397,7 @@ define({root:
     OriginalFile: "Original File",
     OrphanFile: "Orphan Files",
     OrphanFile2: "Orphan File",
-    OrphanMessage: "An orphan file has partial file parts on disk. However, a full set of parts is not available to construct a complete logical file. This no reference to these file parts in the Dali server.",
+    OrphanMessage: "An orphan file has partial file parts on disk. However, a full set of parts is not available to construct a complete logical file. There is no reference to these file parts in the Dali server.",
     Outputs: "Outputs",
     Overview: "Overview",
     Overwrite: "Overwrite",
@@ -437,7 +437,9 @@ define({root:
     PlaceholderLastName: "Smith",
     Playground: "Playground",
     PleasePickADefinition: "Please pick a definition",
+    PleaseSelectAGroupToAddUser: "Please select a group to add the user to",
     PleaseSelectAUserOrGroup: "Please select a user or a group along with a file name",
+    PleaseSelectAUserToAdd: "Please select a user to add",
     PleaseSelectADynamicESDLService: "Please select a dynamic ESDL service",
     PleaseSelectATopologyItem: "Please select a target, service or machine.",
     Plugins: "Plugins",
@@ -546,7 +548,7 @@ define({root:
     Separators: "Separators",
     Services: "Services",
     SetBanner: "Set Banner",
-    SetTextError: "Failed to display text (too large?).  Use 'helpers' to download.",
+    SetTextError: "Failed to display text (too large?).  Use &lsquo;helpers&rsquo; to download.",
     SetToFailed: "Set To Failed",
     Severity: "Severity",
     Show: "Show",
@@ -755,6 +757,7 @@ define({root:
     XML: "XML",
     XRef: "XRef",
     Year: "Year",
+    YouAreAboutToRemoveUserFrom: "You are about to remove a user(s) from this group. Do you wish to continue?",
     YouAreAboutToDeleteBinding: "You are about to delete this binding. Are you sure you want to do this?",
     YourBrowserMayNotSupport: "Your browser may not support file(s) of this size",
     ZAP: "Z.A.P",

+ 113 - 9
esp/src/eclwatch/nls/hr/hpcc.js

@@ -1,6 +1,8 @@
 define(
 ({
     Abort: "Prekinite",
+    AbortedBy: "Prekinuto od strane",
+    AbortedTime: "Vrijeme prekida",
     About: "O Aplikaciji",
     AboutGraphControl: "O Grafičkoj Kontroli",
     AboutHPCCSystemsGraphControl: "O Grafičkoj Kontroli HPCC Sistema",
@@ -16,10 +18,15 @@
     ActivityMap: "Mapa Aktivnosti",
     ActualSize: "Tačna Veličina",
     Add: "Dodajte",
+    AddAttributes2: "Dodajte Atribut(e)",
+    AddAttributes: "Dodajte atribute/vrijednosti vašem metodu",
+    AddBinding: "Dodajte Vezivanje",
     AddFile: "Dodajte Datoteku",
     AddGroup: "Dodajte Grupu",
     AdditionalResources: "Dodatni Resursi",
     AddProcessMap: "Dodajte Mapu Paketa",
+    AddtionalProcessesToFilter: "Dodatni Procesi Za Filtriranje",
+    AddToExistingSuperfile: "Dodajte na postojeći superfile",
     AddToSuperfile: "Dodajte na Superdatoteku",
     AddUser: "Dodajte Korisnika",
     Advanced: "Višeg Nivoa",
@@ -29,22 +36,33 @@
     AllowFull: "<center>Dozvolite<br>Potpun</center>",
     AllowRead: "<center>Dozvolite<br>Čitanje</center>",
     AllowWrite: "<center>Dozvolite<br>Pisanje</center>",
+    AllQueuedItemsCleared: "Svi poslovi iz reda čekanja su očišćeni. Trenutno aktivni posao nastavnja sa izvršavanjem.",
     ANY: "Bilo Koji",
+    AnyAdditionalProcessesToFilter: "Ima li još procesa za filtriranje",
     Append: "Dodajte",
     Apply: "Primjenite",
     ArchivedOnly: "Samo Arhiviran",
     ArchivedWarning: "Upozorenje: koristite kratak vremenski period. Ako koristite duži vremenski period, pretraživanje radnih jedinica može trajati duže od dozviljenog vremena za pretraživanje .",
+    Attribute: "Atribut",
+    AttributesAreRequired: "Atributi su potrebni",
     AutoRefresh: "Osvježi",
+    AutoRefreshEvery: "Automatsko osvježivanje svakih x minuta",
+    AutoRefreshIncrement: "Automatski korak osvježivanja",
     Back: "Natrag",
     BannerColor: "Boja Reklamnog Bloka",
     BannerMessage: "Poruka za Reklamni Blok",
     BannerScroll: "Kretanje Reklamnog Bloka",
     BannerSize: "Veličina Reklamnog Bloka",
     BinaryInstalls: "Binarne Instalacije",
+    Binding: "Vezivanje",
+    BindingDeleted: "Vezivanje Obrisano",
     Blob: "BLOB",
     BlobPrefix: "BLOB Prefiks",
     Bottom: "Kraj",
+    Busy: "Zauzet",
     Cancel: "Poništite",
+    CancelAll: "Ukinite Sve",
+    CancelAllMessage: "Prekinite tekuće poslove i očistite red čekanja. Želite li nastaviti?",
     CheckAllNodes: "Provjerite Sve Nodove/Čvorove",
     CheckFilePermissions: "Provjerite Dozvole za Pristup Datoteci",
     CheckSingleNode: "Provjerite Jedan Nod/Čvor",
@@ -71,15 +89,20 @@
     Compress: "Sabijte",
     Compressed: "Komprimirani",
     CompressedFileSize: "Komprimirana Veličina Datoteke",
+    Condition: "Uslov",
     Configuration: "Konfiguracija",
     ConfirmPassword: "Potvrdite Lozinku",
     ConfirmRemoval: "Jeste li sigurni da to želite učiniti?",
+    ContactAdmin: "Ako želite promijeniti naziv ove grupe, kontaktirajte administratora LDAP.",
     Content: "Sadržaj",
     Contents: "Sadržaji",
     ContentType: "Vrsta Sadržaja",
     Copy: "Kopirajte",
     Count: "Izbrojte",
+    CreateANewFile: "Kreirajte novi superfile",
     Created: "Proizveden",
+    Critical: "Kritično",
+    CSV: "CSV",
     Dali: "Dali",
     dataset: ":=dataset*",
     Date: "Datum",
@@ -88,8 +111,13 @@
     Debug: "Otklonite Neispravnosti",
     DEF: "DEF",
     Defaults: "Unaprijed Definisane Vrijednosti",
+    Definition: "Definicija",
     Delete: "Obrišite",
+    DeleteBinding: "Izbrišite Vezivanje",
     Deleted: "Obrisan",
+    DeletedBinding: "Izbrisano Vezivanje",
+    DeleteDirectories: "Eliminišite prazne direktirije. Želite li nastaviti?",
+    DeleteEmptyDirectories: "Želite li izbrisati prazne direktorije?",
     DeleteSelectedFiles: "Obrišite Odabrane Datoteke?",
     DeleteSelectedGroups: "Obrišite odabranu(e) grupu(e)?",
     DeleteSelectedPermissions: "Obrišite Odabrane Dozvole Za Pristup",
@@ -105,14 +133,16 @@
     DenyRead: "<center>Zabranite<br>Čitanje</center>",
     DenyWrite: "<center>Zabranite<br>Pisanje</center>",
     Depth: "Dubina",
-    DepthTooltip: "'Najveća Dubina Podgrafa",
+    DepthTooltip: "&lsquo;Najveća Dubina Podgrafa",
     Deschedule: "Izbacite Is Reda Za Izvršavanje",
     DescheduleSelectedWorkunits: "Izbacite Odabrane Radne Jedinice Is Reda Za Izvršavanje?",
     Description: "Opis",
+    DESDL: "Dinamički ESDL",
     Despray: "Ponovo Objedinite Datoteku",
     Details: "Detalji",
     DFUServerName: "Ime DFU Servera",
     DFUWorkunit: "DFU RadnaJedinica",
+    Directories: "Direktorije",
     Directory: "Direktorij",
     DisableScopeScanConfirm: "Da li ste sigurni da želite da onemogućite skaniranje opsega? Promjene će biti prihvaćene poslije restarta DALIja",
     DisableScopeScans: "Onemogućite Skaniranje Opsega",
@@ -125,8 +155,10 @@
     Down: "Neaktivan",
     Download: "Dobavite",
     Downloads: "Preuzimanje",
+    DownloadToCSV: "Preuzmite u CSV formatu",
     DropZone: "Zona Prijema",
     Duration: "Trajanje",
+    DynamicNoServicesFound: "Servisi Nisu Pronađeni",
     EBCDIC: "EBCDIC",
     ECL: "ECL",
     ECLWorkunit: "ECL RadnaJedinica",
@@ -135,15 +167,19 @@
     EditDOT: "Editujte DOT",
     EditGraphAttributes: "Editujte Atribute Grafova",
     EditXGMML: "Editujte XGMML",
+    EmployeeID: "ID Zaposlenika",
     Empty: "(Prazan)",
     Enable: "Omogućite",
     EnableScopeScans: "Omogućite Skaniranje Opsega",
     EnableScopeScansConfirm: "Da li ste sigurni da želite da omogućite skaniranje opsega? Promjene će biti prihvaćene poslije restarta DALIja",
     EnglishQ: "Engleski?",
+    EnterAPercentage: "Unesite procenat",
+    EnterAPercentageOrMB: "Unesite Procenat ili MB",
     Error: "Greška",
     Errorparsingserverresult: "Greška u analizi rezultata sa servera",
     Errors: "Greške",
     ErrorsStatus: "Greške/Stanje",
+    ErrorUploadingFile: "Pogreška prilikom prenosa datoteke(a). Pokušajte provjeriti dozvole za prenos.",
     ErrorWarnings: "Greška/Upozorenja",
     Escape: "Escape",
     ESPBuildVersion: "ESP Trenutna Verzija",
@@ -156,7 +192,10 @@
     Exception: "Neočekivani Problem",
     ExpandAll: "Proširite sve",
     Export: "Izvezite",
+    ExportSelectionsToList: "Izvezite Odabrane Stvari u Listu",
     FailIfNoSourceFile: "Neuspjeh Ukoliko Datoteka Ne Postoji",
+    Fatal: "Fatalan",
+    Fetched: "Preuzet",
     FetchingData: "U Procesu Dobavljnja Podataka...",
     fetchingresults: "dobijeni resultati",
     File: "Datoteka",
@@ -188,10 +227,14 @@
     Format: "Format",
     Forums: "Forumi",
     Forward: "Naprijed",
+    FoundFile: "Datoteka je Pronađena",
+    FoundFileMessage: "Pronađena datoteka ima sve svoje dijelove na disku, ali dijelovi nisu poznati Dali serveru. Svi dijelovi datoteke mogu biti dodani natrag na Dali server. Dijelovi mogu biti I obrisani sa klastera ako je to neophodno..",
     FromDate: "Od Datuma",
     FromSizes: "Od Veličine",
     FromTime: "Od Vremena",
     FullName: "Ime i Prezime",
+    Generate: "Generirajte",
+    GetSoftwareInformation: "Želite li dobiti informacije o softveru",
     Graph: "Graf",
     Graphs: "Grafikoni",
     GraphView: "Slika Grafikona",
@@ -223,14 +266,16 @@
     InvalidResponse: "(Neispravan Odgovor)",
     IP: "IP",
     IPAddress: "IP Adresa",
+    IsCompressed: "Je li Komprimiran",
     IsLibrary: "Jeli Biblioteka",
     IsReplicated: "Repliciran",
     IssueReporting: "Izvještavanje o Problemima",
-    JobName: "Naziv Radne Jedinice",
     Jobname: "Nazivradnejedinice",
+    JobName: "Naziv Radne Jedinice",
     jsmi: "jsmi*",
     JSmith: "JSmit*",
     JSON: "JSON",
+    KeyFile: "Indeksirana Datoteka",
     Label: "Etiketa",
     LandingZone: "Zona za Pretovar",
     LandingZones: "Zone za Pretovar",
@@ -238,11 +283,13 @@
     Largest: "Najveći",
     LargestFile: "Najveća Datoteka",
     LargestSize: "Najveća veličina",
+    LastMessage: "Zadnja Poruka",
     LastName: "Prezime",
     LastNDays: "Poslijednjih N Dana",
     LastNHours: "Posljednjih N Sati",
     LastNRows: "Posljednjih N Redova",
-    LDAPWarning: "<b>Greška LDAP Servica:</b>  'Previše korisnika' - Molimo koristite filter.",
+    LastRun: "Zadnji Ran",
+    LDAPWarning: "<b>Greška LDAP Servica:</b>  &lsquo;Previše korisnika&rsquo; - Molimo koristite filter.",
     LegacyForm: "Stari Prevaziđeni Formular",
     LibrariesUsed: "Biblioteke u Korištenju",
     LibraryName: "Ime Biblioteke",
@@ -256,6 +303,8 @@
     LoadPackageContentHere: "(Dobavite ovamo sadržaj paketa)",
     LoadPackageFromFile: "Dobavite Paket iz Datoteke",
     Local: "Lokalni",
+    LocalFileSystemsOnly: "Samo Lokalni File Sistemi",
+    Location: "Lokacija",
     Log: "Dnevnik (Log)",
     LogFile: "Datoteka Aktivnosti",
     LoggedInAs: "Prijavljen kao",
@@ -267,7 +316,13 @@
     LogicalName: "Ime Logičke Datoteke",
     Logs: "Dnevnici",
     log_analysis_1: "log_analysis_1*",
+    LostFile2: "Izgubljene Datoteke",
+    LostFile: "Izgubljena Datoteka",
+    LostFileMessage: "Logička datoteka kojoj nedostaje bar jedan dio ili na primarnoj ili na repliciranoj lokaciji na disku.  Logička datoteka je još uvijek pod kontrolom Dali servera. Brisanje datoteke uklanja kontrolu Dali servera nad datotekom kao i nad svim preostalim dijelovima datoteke na disku.",
     Low: "Nizak",
+    MachineInformation: "Informacija o Mašini",
+    Machines: "Mašine",
+    Major: "Glavni",
     ManagedBy: "Upravljan",
     ManagedByPlaceholder: "CN=HPCCAdmin,OU=users,OU=hpcc,DC=MyCo,DC=local",
     ManualCopy: "Pritisnite Ctrl+C",
@@ -277,11 +332,17 @@
     Mask: "Maska",
     Max: "Maksimum",
     MaximumNumberOfSlaves: "Maksimalan Broj Izvršilaca",
+    MaxNode: "Maksimalni Nod/čvor",
     MaxRecordLength: "Maksimalna Dužina Rekorda",
+    MaxSize: "Maksimalna Veličina",
     MemberOf: "Član Od",
     Members: "Članovi",
     Message: "Poruke",
+    Methods: "Metodi",
     Min: "Minimum",
+    MinNode: "Minimalni Nod/čvor",
+    Minor: "Minoran",
+    MinSize: "Minimalna Veličina",
     Missing: "Nedostaje",
     MixedNodeStates: "Svi Nodovi Nemaju Isti Status ",
     Modification: "Promijena",
@@ -308,6 +369,7 @@
     NoErrorFound: "Bez nađenih grešaka\n",
     NoFilterCriteriaSpecified: "Kriterij za filtriranje nije specificiran.",
     None: "Nijedan",
+    NoPublishedSize: "nema objavljene veličina",
     Normal: "Normalan",
     NoScheduledEvents: "Nema Definisanih Događaja na Rasporedu.",
     NoSplit: "Nema Podijela (Split)",
@@ -335,6 +397,9 @@
     Operations: "Operacije",
     Options: "Opcije",
     OriginalFile: "Originalna datoteka",
+    OrphanFile2: "Nepotrebna Datoteka",
+    OrphanFile: "Nepotrebne Datoteke",
+    OrphanMessage: "Nepotrebna datoteka ima neke dijelove na disku. Ali ne postoje svi dijelovi datoteke na disku da bi se mogla kreirati kompletna logicka datoteka. Ne postoji referenca na te dijelove datoteke sa Dali servera.",
     Outputs: "Izlazi",
     Overview: "Pregled",
     Overwrite: "Prepišite",
@@ -347,7 +412,10 @@
     PackagesNoQuery: "Paketi za koje nisu definisani upiti (queries)",
     ParameterXML: "Parametar XML",
     Part: "Dio",
+    PartMask: "Dio Maske",
     Parts: "Dijelovi",
+    PartsFound: "Dijelovi Su Pronađeni",
+    PartsLost: "Dijelovi Su Izgubljeni",
     Password: "Lozinka",
     PasswordExpiration: "Lozinka Istiće",
     PasswordExpired: "Vaša lozinka je istekla I mora biti promijenjena",
@@ -371,17 +439,25 @@
     PlaceholderLastName: "Smith",
     Playground: "Igralište",
     PleaseEnterANumber: "Unestite Broj 1 -",
+    PleasePickADefinition: "Izaberite Definiciju",
+    PleaseSelectADynamicESDLService: "Izaberite Dinamički ESDL Servis",
+    PleaseSelectAGroupToAddUser: "Izaberite grupu u koju želite da dodate ovog korisnika",
+    PleaseSelectATopologyItem: "Izaberite ciljnu platformu, servis ili mašinu.",
     PleaseSelectAUserOrGroup: "Izaberite Korisnika ili Grupu zajedno sa Imenom Datoteke",
+    PleaseSelectAUserToAdd: "Izaberite korisnika koga  želite da dodate",
     Plugins: "Dodatci",
     Port: "Port",
     Prefix: "Prefiks",
     PrefixPlaceholder: "filename{:length}, filesize{:[B|L][1-8]}",
+    Preflight: "Provjera prije isporuke",
     PreserveCompression: "Sačuvajte Kompresiju",
     Preview: "Pregled",
+    PrimaryLost: "Primarni Je Izgubljen",
     PrimaryMonitoring: "Primarni Nadzor",
     Priority: "Prioritet",
     Process: "Proces",
     ProcessFilter: "Process&nbsp;Filter",
+    ProcessorInformation: "Informacija o Procesoru",
     ProgressMessage: "Poruka o Progresu",
     Properties: "Svojstva",
     Property: "Svojstvo",
@@ -406,6 +482,7 @@
     Quote: "Citat",
     QuotedTerminator: "Završni Karakter",
     RawTextPage: "Neobrađen Tekst (Tekuća Stranica)",
+    Ready: "Spreman",
     ReallyWantToRemove: "Zaista želite ukloniti?",
     RecordCount: "Broj Rekorda",
     RecordLength: "Dužina Rekorda",
@@ -414,6 +491,7 @@
     RecordStructurePresent: "Struktura Rekorda Postoji",
     Recover: "Vratite Natrag",
     RecoverTooltip: "Pokrenite zaustavljenu radnu jedinicu",
+    Recycling: "Recikliranje",
     RedBook: "Crvena Knjiga",
     Refresh: "Osviježite",
     ReleaseNotes: "Napomena o Izdanju",
@@ -423,12 +501,16 @@
     RemoteDali: "Daleki Dali",
     RemoteDaliIP: "Daleki&nbsp;Dali&nbsp;IP&nbsp;Adresa",
     Remove: "Uklonite",
+    RemoveAttributeQ: "Izabrani atribut će biti uklonjen. Da li ste sigurni da to želite?",
+    RemoveAtttributes: "Uklonite Atribut(e)",
+    RemoveSubfiles2: "Da li želite ukloniti subfajl(ove)?",
     RemoveSubfiles: "Uklonite Pod-Datoteku",
     RemoveUser: "Uklonite Korisnika",
     Rename: "Preimenujte",
     RenderedSVG: "Donesene SVG",
     RenderSVG: "Donesite SVG",
     Replicate: "Replicirajte",
+    ReplicatedLost: "Izgubljene Replikacije",
     ReplicateOffset: "Replicirajte Ofset",
     RepresentsASubset: "Predstavlja podskup od ukupnog broja uparenih rezultata .Promjena filtera može smanjiti broj uparenih rezultata",
     RequestSchema: "Shema Zahtjeva",
@@ -455,6 +537,7 @@
     Rows: "Redovi",
     RowTag: "Etiketa Reda",
     RoxieCluster: "Roxie Klaster",
+    RunningServerStrain: "Izvršavanje ovog procesa može potrajati dugo vremena i veoma optereti servere. Da li želite nastaviti?",
     Sample: "Primjer",
     SampleRequest: "Primjer Zahtjeva",
     SampleResponse: "Primjer Odgovora",
@@ -465,14 +548,18 @@
     Security: "Sigurnost",
     SelectPackageFile: "Izaberi Paket",
     Separators: "Seperatori",
+    Services: "Servisi",
     SetBanner: "Postavite Zastavicu",
-    SetTextError: "Neuspješno prikazivanje teksta (da li je tekst predug?). Koristite 'pomagače' za preuzimanje datoteka.",
+    SetTextError: "Neuspješno prikazivanje teksta (da li je tekst predug?). Koristite &lsquo;pomagače&rsquo; za preuzimanje datoteka.",
     SetToFailed: "Postavite Na Neuspješan",
     Severity: "Ozbiljnost",
     Show: "Pokažite",
+    ShowProcessesUsingFilter: "Prikažite procese koristeći filter",
     ShowSVG: "Pokažite SVG",
     Size: "Veličina",
     Skew: "Skju (Skew)",
+    SkewNegative: "Skju(-)",
+    SkewPositive: "Skju(+)",
     SLA: "SLA",
     SlaveLogs: "Izvjestaji Izvršilaca",
     SlaveNumber: "Broj Izvršilaca",
@@ -493,20 +580,23 @@
     Spray: "Razbacajte (Spray)",
     Start: "Počnite",
     Started: "Počeo",
+    Starting: "Polazak",
     State: "Stanje",
     Stats: "Statistike",
     Status: "Status",
     Stopped: "Zaustavljen",
+    Stopping: "Zaustavljanje",
+    StorageInformation: "Informacija o prostoru",
     Subgraph: "Pod-Graf",
     Subgraphs: "Podgrafikon",
     Submit: "Podnesite",
     Subtype: "Pod-Vrsta",
     Summary: "Kratak Pregled",
     SummaryMessage: "Sažeta Poruka",
-    Superfile: "Super Datoteka",
     SuperFile: "Super Datoteka",
-    SuperFiles: "Super Datoteke",
+    Superfile: "Super Datoteka",
     Superfiles: "SuperDatoteke",
+    SuperFiles: "Super Datoteke",
     SuperFilesBelongsTo: "Pripadnik Superdatoteke",
     SuperfilesOnly: "Samo Superdatoteke",
     Suspend: "Suspendujte",
@@ -524,6 +614,7 @@
     TargetName: "Naziv Cilja",
     TargetNamePlaceholder: "neko::logicko::ime",
     TargetRowTagRequired: "Morate označiti ciljni red u tabeli",
+    Targets: "Ciljne Platforme",
     TargetScope: "Ciljni Opseg",
     TargetWuid: "Cilj/Wuid",
     Terminators: "Terminatori",
@@ -547,12 +638,16 @@
     title_AvailablePermissions: "Dostupne Dozvole",
     title_ClusterInfo: "Grupe",
     title_CodeGeneratorPermissions: "Dozvole Kod Generatora",
+    title_DESDL: "Dinamičani ESDL",
     title_DFUQuery: "Logičke Datoteke",
     title_DFUWUDetails: "DFU Radna Jedinica",
+    title_DirectoriesFor: "Direktoriji za",
     title_DiskUsage: "Iskorištenost Diska",
     title_ECLPlayground: "ECL Igralište",
+    title_ErrorsWarnings: "Pogreške/Upozorenja za",
     title_EventScheduleWorkunit: "Respoređivač Događaja",
     title_FileScopeDefaultPermissions: "Unaprijed Definisane Dozvole za Prostor za Datoteke",
+    title_FoundFilesFor: "Pronađena datoteka za",
     title_GetDFUWorkunits: "DFU Radne Jedinice",
     title_Graph: "Grafikon",
     title_GraphPage: "naslov",
@@ -568,10 +663,13 @@
     title_LFDetails: "Detalji o Logičkol Datoteci",
     title_LibrariesUsed: "Biblioteke U Korištenju",
     title_Log: "Log Fajl",
+    title_LostFilesFor: "Izgubljene Datoteke za",
     title_LZBrowse: "Zona za Pretovar",
     title_MemberOf: "Član Od",
     title_Members: "Članovi",
+    title_OrphanFilesFor: "Nepotrebne datoteke za",
     title_Permissions: "Dozvole",
+    title_PreflightResults: "Rezultati Provjere",
     title_QuerySetDetails: "Detalji Upita",
     title_QuerySetErrors: "Greške",
     title_QuerySetLogicalFiles: "Logičke Datoteke",
@@ -598,6 +696,7 @@
     Topology: "Topologija",
     ToSizes: "Do Velićina",
     TotalClusterTime: "Ukupno Vrijeme Klastera",
+    TotalParts: "Ukupan Broj Dijelova",
     TotalSize: "Totalna Veličina",
     TotalThorTime: "Ukupno Vrijeme Thor-a",
     TransitionGuide: "Vodič",
@@ -617,8 +716,8 @@
     User: "Korisnik",
     UserDetails: "Detalji o Korisniku",
     UserID: "Korisnicki ID",
-    UserName: "Ime Korisnika",
     Username: "Imekorisnika",
+    UserName: "Ime Korisnika",
     UserPermissions: "Dozvole za Korisnikov Pristup",
     Users: "Korisnici",
     UseSingleConnection: "Koristite Samo Jedan Priključak (Connection)",
@@ -637,6 +736,10 @@
     ViewByScope: "Pogled prema Skopu",
     Views: "Pogledi",
     Visualize: "Visualizujte",
+    WarnIfAvailableDiskSpaceIsUnder: "Upozori ako raspoloživi disk prostor spadne ispod",
+    WarnIfAvailableMemoryIsUnder: "Upozori ako raspoloživa memorija spadne ispod",
+    WarnIfCPUUsageIsOver: "Upozori ako je iskorištenost procesora preko",
+    Warning: "Upozorenje",
     Warnings: "Upozorenje(a)",
     WarnOldGraphControl: "Upozorenje:  Stara Grafička Kontrola",
     What: "Šta",
@@ -657,15 +760,16 @@
     XML: "XML",
     XRef: "XRef",
     Year: "Godina",
+    YouAreAboutToDeleteBinding: "Odabrano vezivanje/binding će biti izbrisano. Jeste li sigurni da želite to učiniti?",
+    YouAreAboutToRemoveUserFrom: "Tražili ste da uklonite korisnika(e) iz ove grupe. Da li želite nastaviti?",
     YourBrowserMayNotSupport: "Vaš pretraživač možda ne podržava datoteku (e) ove veličine",
     ZAP: "Z.A.P",
     ZeroLogicalFilesCheckFilter: "Nema ni jedane Logičke Datoteke(provjerite filter)",
     Zip: "Zapakujte (Zip)",
     ZippedAnalysisPackage: "Zapakovani Paket sa Analizama",
-    Zoom: "Zum",
     Zoom100Pct: "Zumirajte 100%",
+    Zoom: "Zum",
     ZoomAll: "Zumirajte Sve",
     ZoomWidth: "Zumirajte Širinu"
-
 })
 );

+ 108 - 6
esp/src/eclwatch/nls/hu/hpcc.js

@@ -1,9 +1,11 @@
 define(
 ({
     Abort: "Megszakít",
+    AbortedBy: "Megszakította",
+    AbortedTime: "A megszakítás időpontja",
     About: "Névjegy",
-    AboutGraphControl: "'Graph Control' információk",
-    AboutHPCCSystemsGraphControl: "'HPCC Systems® Graph Control' információk",
+    AboutGraphControl: "&lsquo;Graph Control&rsquo; információk",
+    AboutHPCCSystemsGraphControl: "&lsquo;HPCC Systems® Graph Control&rsquo; információk",
     Account: "Felhasználói fiók",
     Action: "Művelet",
     Activate: "Aktivál",
@@ -16,8 +18,13 @@ define(
     ActivityMap: "Aktivitás-térkép",
     ActualSize: "Aktuális méret",
     Add: "Hozzáad",
+    AddAttributes: "Attribútumok/értékek hozzáadása az eljáráshoz",
+    AddAttributes2: "Attribútum(ok) hozzáadása",
+    AddBinding: "Kötés hozzáadása",
     AddFile: "Fájl hozzáadás",
     AddGroup: "Csoport hozzáadás",
+    AddToExistingSuperfile: "Hozzáadás létező szuper-fájlhoz",
+    AddtionalProcessesToFilter: "Járulékos szűrő eljárás",
     AdditionalResources: "További erőforrások",
     AddProcessMap: "Csomagtérkép hozzáadás",
     AddToSuperfile: "Superfile-hoz ad",
@@ -29,22 +36,33 @@ define(
     AllowFull: "<center>Teljes<br>Hozzáférés</center>",
     AllowRead: "<center>Olvasás<br>Engedélyezés</center>",
     AllowWrite: "<center>Írás<br>Engedélyezés</center>",
+    AllQueuedItemsCleared: "A várakozási sorban levő elemek törlésre kerülnek. Az aktuális feldolgozás folytatódik",
     ANY: "Bármelyik",
+    AnyAdditionalProcessesToFilter: "További járulékos szűrő eljárások?",
     Append: "Hozzáfűz",
     Apply: "Alkalmaz",
     ArchivedOnly: "Csak tárolt.",
     ArchivedWarning: "Figyelem: Adjon meg rövidebb időintervallumot! Ellenkező esetben a feladatok lekérdezése hosszabb ideig tarthat, mint amit az Ön bőngésző programja engedélyez.",
+    Attribute: "Attribútum",
+    AttributesAreRequired: "Kötelező attribútumok",
     AutoRefresh: "Automatikus frissítés",
+    AutoRefreshIncrement: "Automatikus frissítés növelése",
+    AutoRefreshEvery: "Automatikus frissítés minden x percben.",
     Back: "Vissza",
     BannerColor: "Fejléc szín",
     BannerMessage: "Fejléc szövege",
     BannerScroll: "Fejléc görgetés",
     BannerSize: "Fejléc méret",
     BinaryInstalls: "Bináris telepítőkészlet",
+    Binding: "Kötés",
+    BindingDeleted: "A kötés törölve",
     Blob: "BLOB",
     BlobPrefix: "BLOB előtag",
     Bottom: "Legalsó",
+    Busy: "Foglalt",
     Cancel: "Mégsem",
+    CancelAll: "Az összes megszakítása",
+    CancelAllMessage: "A folyamatban levő feldolgozások megszakítása és a várakozási sor törlése. Kívánja folytatni?",
     CheckAllNodes: "Ellenőrizze az összes csomopontot",
     CheckFilePermissions: "Ellenőrizze a fájl hozzáférési jogokat",
     CheckSingleNode: "Ellenörizze a csomópontot",
@@ -71,15 +89,20 @@ define(
     Compress: "Tömörít",
     Compressed: "Tömörített",
     CompressedFileSize: "Tömörített fájl méret",
+    Condition: "Feltétel",
     Configuration: "Beállítások",
     ConfirmPassword: "Jelszó jóváhagyás",
     ConfirmRemoval: "Biztos, hogy ezt akarja csinálni?",
+    ContactAdmin: "Amennyiben át akarja nevezni ezt a csoportot, lépjen kapcsolatba az LDAP adminisztrátorral.",
     Content: "Tartalom",
     Contents: "Tartalom",
     ContentType: "Tartalom típusa",
     Copy: "Másolat",
     Count: "Darab (Count)",
+    CreateANewFile: "Új szuper-fájl létrehozása.",
     Created: "Létrehozva",
+    Critical: "Kritikus",
+    CSV: "CSV",
     Dali: "Dali",
     dataset: ":=dataset*",
     Date: "Dátum",
@@ -88,8 +111,13 @@ define(
     Debug: "Hibakeresés",
     DEF: "DEF",
     Defaults: "Alapértelmezés",
+    Definition: "Definíció",
     Delete: "Törlés",
     Deleted: "Törölt",
+    DeleteBinding: "Kötések törlése",
+    DeletedBinding: "Törölt kötések",
+    DeleteEmptyDirectories: "Töröljük az összes könyvtárakat?",
+    DeleteDirectories: "Az üres könyvtárak törlése. Kívánja folytatni?",
     DeleteSelectedFiles: "Töröljük a kiválasztott fájlokat?",
     DeleteSelectedGroups: "Törölni akarja a kijelölt csoporto(ka)t?",
     DeleteSelectedPermissions: "Törli a kiválasztott hozzáférési engedélyeket?",
@@ -109,10 +137,12 @@ define(
     Deschedule: "Ütemezés törlése",
     DescheduleSelectedWorkunits: "Megszűnteti a kijelőlt feladat ütemezését?",
     Description: "Leírás",
+    DESDL: "DESDL",
     Despray: "Összegyűjt",
     Details: "Részletek",
     DFUServerName: "DFU Szerver név",
     DFUWorkunit: "DFU-munkaegység",
+    Directories: "Könyvtárak",
     Directory: "Könyvtár",
     DisableScopeScanConfirm: "Biztos, hogy letíltja a hatókör vizsgálatot? DALI újraíndításakor ezek a változtatások elvesznek.",
     DisableScopeScans: "Hatókör vizsgálat letiltása",
@@ -125,8 +155,10 @@ define(
     Down: "Le",
     Download: "Letöltés",
     Downloads: "Letöltés",
+    DownloadToCSV: "Letöltés CSV fájlba",
     DropZone: "Gyűjtőhely",
     Duration: "Időtartam",
+    DynamicNoServicesFound: "A szolgáltatás nem található",
     EBCDIC: "EBCDIC",
     ECL: "ECL",
     ECLWorkunit: "ECL-munkaegység",
@@ -135,13 +167,17 @@ define(
     EditDOT: "DOT szerkesztés",
     EditGraphAttributes: "Gráf attribútumok szerkesztése",
     EditXGMML: "XGMML szerkesztés",
+    EmployeeID: "Alkalmazott azonosítója",
     Empty: "(Üres)",
     Enable: "Engedélyezés",
     EnableScopeScans: "Hatókör vizsgálat engedélyezése",
     EnableScopeScansConfirm: "Biztos, hogy engedélyezi a hatókör vizsgálatot? DALI újraíndításakor ezek a változtatások elvesznek.",
     EnglishQ: "Angolul?",
+    EnterAPercentage: "Adjon meg egy százalékos arányt",
+    EnterAPercentageOrMB: "Adjon meg egy százalékos arányt vagy méretet MB-ban",
     Error: "Hiba",
     Errorparsingserverresult: "Hiba a szerver válasz feldolgozásban",
+    ErrorUploadingFile: "Hiba a fájl(ok) feltöltésénél. Ellenőrizze a hozzáférési jogosultságokat.",
     Errors: "Hibák",
     ErrorsStatus: "Hibák/Figyelmeztetések",
     ErrorWarnings: "Hiba/Figyelmeztetés",
@@ -156,7 +192,10 @@ define(
     Exception: "Kivétel",
     ExpandAll: "Összes kinyitása",
     Export: "Exportálás",
+    ExportSelectionsToList: "A kijelöltek listába mentése",
     FailIfNoSourceFile: "Hibajelzés, ha nincs bemeneti file",
+    Fatal: "Végzetes",
+    Fetched: "Hozott",
     FetchingData: "Adat lekérdezés...",
     fetchingresults: "eredemény lekérdezés",
     File: "Fájl",
@@ -188,10 +227,14 @@ define(
     Format: "Formátum",
     Forums: "Fórum",
     Forward: "Előre",
+    FoundFile: "Megtalált fájl",
+    FoundFileMessage: "A megtalált fájlhoz tartozó fizikai részek nincsenek regisztrálva a Dali szerverben. A részek ellenőrzöttek, így visszaállíthatók a szerverben. Igény eseten törölhetők a" ,
     FromDate: "Dátumtól",
     FromSizes: "Mérettől",
     FromTime: "Időponttól",
     FullName: "Teljes név",
+    Generate: "Generálás",
+    GetSoftwareInformation: "Szoftver információ lekérdezés",
     Graph: "Gráf",
     Graphs: "Gráfok",
     GraphView: "Gráf nézet",
@@ -223,6 +266,7 @@ define(
     InvalidResponse: "(Érvénytelen válasz)",
     IP: "IP",
     IPAddress: "IP cím",
+    IsCompressed: "Tömörített?",
     IsLibrary: "Könyvtár?",
     IsReplicated: "Készült másodpéldány?",
     IssueReporting: "Probléma jelentés",
@@ -231,6 +275,7 @@ define(
     jsmi: "jkis*",
     JSmith: "JKis*",
     JSON: "JSON",
+    KeyFile: "Kulcs fájl",
     Label: "Címke",
     LandingZone: "Lerakat",
     LandingZones: "Lerakatok",
@@ -238,11 +283,13 @@ define(
     Largest: "Legnagyobb",
     LargestFile: "Legnagyobb fájl",
     LargestSize: "Legnagyobb méret",
+    LastMessage: "Utolsó üzenet",
     LastName: "Vezetéknév",
     LastNDays: "Az utolsó N nap",
     LastNHours: "Utolsó N óra",
     LastNRows: "Utolsó N rekord",
-    LDAPWarning: "<b>LDAP szolgáltatás hiba:</b>  'Túl sok felhasználó' - Kérem, használjon szűrést!",
+    LastRun: "Utolsó futás",
+    LDAPWarning: "<b>LDAP szolgáltatás hiba:</b>  &lsquo;Túl sok felhasználó&rsquo; - Kérem, használjon szűrést!",
     LegacyForm: "Örökölt űrlap (Legacy Form)",
     LibrariesUsed: "Használt könyvtárak",
     LibraryName: "Library név",
@@ -256,6 +303,8 @@ define(
     LoadPackageContentHere: "(Csomag tartalmának betöltése erre a helyre)",
     LoadPackageFromFile: "Csomag betöltése fájlból",
     Local: "Helyi",
+    LocalFileSystemsOnly: "Csak helyi fájlrendszerbe",
+    Location: "Elhelyezkedés",
     Log: "Log",
     LogFile: "Log fájl",
     LoggedInAs: "Bejelentkezve mint ",
@@ -267,7 +316,13 @@ define(
     LogicalName: "Logikai név",
     Logs: "Logok",
     log_analysis_1: "log_elemzés_1*",
+    LostFile: "Elveszett fájl",
+    LostFile2: "Elveszett fájlok",
+    LostFileMessage: "Az elveszett logikai fájl legalább egy fizikai része megtalálható mind az elsődleges mind a másolati tároló helyen. A logikai fájl referencia megtalálható a Dali szerverben. A fájl törlése eltávolítja a hivatkozást a Dali szerverből valamint az összes fizika részt a lemezről.",
     Low: "Alacsony",
+    Machines: "Gép",
+    MachineInformation: "Gépek",
+    Major: "Fő",
     ManagedBy: "Által kezelt",
     ManagedByPlaceholder: "CN=HPCCAdmin,OU=users,OU=hpcc,DC=MyCo,DC=local",
     ManualCopy: "Használja a Ctr+C-t",
@@ -276,12 +331,18 @@ define(
     Mappings: "Leképezések",
     Mask: "Maszk",
     Max: "Maximum",
+    MaxNode: "Maximális csomópont szám",
+    MaxSize: "Maximális méret",
     MaximumNumberOfSlaves: "Slave-ek maximális száma",
     MaxRecordLength: "Maximális rekord méret",
     MemberOf: "Tagja a",
     Members: "Tagok",
     Message: "Üzenet",
+    Methods: "Eljárások",
     Min: "Minimum",
+    MinNode: "Minimális csomópont szám",
+    MinSize: "Minimális méret",
+    Minor: "Al",
     Missing: "Hiányzó",
     MixedNodeStates: "Több komponenst tartalmazó csomópont állapota",
     Modification: "Módosítás",
@@ -308,6 +369,7 @@ define(
     NoErrorFound: "Nincs hiba",
     NoFilterCriteriaSpecified: "Nincs szűrőfeltétel megadva.",
     None: "Semmi",
+    NoPublishedSize: "Nincs publikált méret",
     Normal: "Normál",
     NoScheduledEvents: "Nincs ütmezett esemény",
     NoSplit: "Együtt tart",
@@ -335,6 +397,9 @@ define(
     Operations: "Műveletek",
     Options: "Opciók",
     OriginalFile: "Eredtei fájl",
+    OrphanFile: "Elhagyott, árva fájlok",
+    OrphanFile2: "Elhagyott, árva fájl",
+    OrphanMessage: "Az elhagyott, árva file összes fizikai része nem található meg a lemezen. Ezek hiányában a logikai fájl csak részlegesen állítható vissza a Dali szerverben.",
     Outputs: "Kimenet",
     Overview: "Áttekintés",
     Overwrite: "Fellülírás",
@@ -347,7 +412,10 @@ define(
     PackagesNoQuery: "Csomagok hozzátartozó lekérdezés nélkül",
     ParameterXML: "Paraméter XML fájl",
     Part: "Rész",
+    PartMask: "Fizikai fájl név maszk",
     Parts: "Részek",
+    PartsFound: "Megtalált fizikai fájl részek",
+    PartsLost: "Elveszett fizikai fájl részek",
     Password: "Jelszó",
     PasswordExpiration: "Jelszó lejár",
     PasswordExpired: "A jelszava lejárt! Adjon meg újat!",
@@ -371,17 +439,23 @@ define(
     PlaceholderLastName: "Kiss",
     Playground: "ECL teszt labor",
     PleaseEnterANumber: "Adjon meg egy számot",
+    PleasePickADefinition: "Válasszon egyet a definíciók közül",
     PleaseSelectAUserOrGroup: "A fájlnévvel együtt adjon meg egy felhasználó vagy csoport azonosítót",
+    PleaseSelectADynamicESDLService: "Válasszon egyet a dinamikus ESDL szolgáltatások közül.",
+    PleaseSelectATopologyItem: "Válasszon egy célt, szolgáltatást vagy gépet",
     Plugins: "Betölthető modulok",
     Port: "Port",
     Prefix: "Előtag",
     PrefixPlaceholder: "fájlnév{:hossz}, fájlméret{:[B|L][1-8]}",
+    Preflight: "Előkészítés",
     PreserveCompression: "Tartalom tömörtés megőrzése",
     Preview: "Előnézet",
+    PrimaryLost: "Elveszett az elsődleges változat",
     PrimaryMonitoring: "Elsődleges felügyelet",
     Priority: "Prioritás",
     Process: "Feldolgozás",
     ProcessFilter: "Process&nbsp;Filter",
+    ProcessorInformation: "Processzor információk",
     ProgressMessage: "Állapot",
     Properties: "Tulajdonságok",
     Property: "Tulajdonság",
@@ -398,7 +472,7 @@ define(
     Query: "Lekérdezés",
     QueryDetailsfor: "A lekérdezés paraméterei",
     QueryID: "Lekérdezés azonosító",
-    QueryIDPlaceholder: "som?q*ry.1'",
+    QueryIDPlaceholder: "som?q*ry.1&rsquo;",
     QueryName: "Lekérdezés név",
     QueryNamePlaceholder: "My?Su?erQ*ry",
     QuerySet: "Lekérdezés készlet",
@@ -406,6 +480,7 @@ define(
     Quote: "Idézőjel",
     QuotedTerminator: "A fájl idézőjelek közötti rekordhatároló karaktert tartalmaz",
     RawTextPage: "Formázatlan szöveg (aktuális lap)",
+    Ready: "Kész",
     ReallyWantToRemove: "Biztosan el akarja távolítani?",
     RecordCount: "Rekord szám",
     RecordLength: "Rekord méret",
@@ -414,6 +489,7 @@ define(
     RecordStructurePresent: "CSV rekord struktúra definiált az fájl első sorában",
     Recover: "Helyreállít",
     RecoverTooltip: "Felfüggesztett/megakadt feldolgozás újraindítása",
+    Recycling: "Újrahasznosítás",
     RedBook: "Referencia kézikönyv (Red Book)",
     Refresh: "Frissítés",
     ReleaseNotes: "Verzió információk (Release Notes)",
@@ -423,12 +499,16 @@ define(
     RemoteDali: "Távoli Dali hálózati címe",
     RemoteDaliIP: "Remote&nbsp;Dali&nbsp;IP&nbsp;Address",
     Remove: "Eltávolít",
+    RemoveAtttributes: "Attribútum(ok) eltávolítása",
+    RemoveAttributeQ: "Törölni készül egy attribútumot. Biztos, hogy folytatni akarja?",
     RemoveSubfiles: "Al-fájl(ok) eltávolítása",
+    RemoveSubfiles2: "Töröljük az al-fájlokat?",
     RemoveUser: "Arra készül, hogy eltávolítsa a felhasználói nevét a csoportból!",
     Rename: "Átnevez",
     RenderedSVG: "Generált SVG",
     RenderSVG: "SVG generálás",
     Replicate: "Másolat",
+    ReplicatedLost: "Elveszett a másolat",
     ReplicateOffset: "Másodpéldány eltolás (csomópontok között)",
     RepresentsASubset: "Az összes találat egy részhalmaza került megjelenítésre. Specifkusabb feltéttel megadásával csökkentheti a találatok számát.",
     RequestSchema: "Igénylő séma (Request Schema)",
@@ -455,6 +535,7 @@ define(
     Rows: "Sor",
     RowTag: "Sor azonositó",
     RoxieCluster: "Roxie klaszter",
+    RunningServerStrain: "Ez a feldolgozás sokig futhat és nagy terhelés okozhat a rendszerben. Kívánja folytatni?",
     Sample: "Minta",
     SampleRequest: "Minta igénylés (Sample Request)",
     SampleResponse: "Minta válasz (Sample Response)",
@@ -465,18 +546,22 @@ define(
     Security: "Biztonság",
     SelectPackageFile: "Csomagfájl választás",
     Separators: "Elválasztó jelek",
+    Services: "Szolgáltatások",
     SetBanner: "Fejléc megadása",
-    SetTextError: "Nem sikerült a szöveget megjeleníteni. Lehetséges, hogy túl hosszú. Használja a 'segédleteket' a letöltéshez.",
+    SetTextError: "Nem sikerült a szöveget megjeleníteni. Lehetséges, hogy túl hosszú. Használja a &lsquo;segédleteket&rsquo; a letöltéshez.",
     SetToFailed: "Elront",
     Severity: "Probléma mértéke",
     Show: "Megjelenít",
+    ShowProcessesUsingFilter: "Feldolgozások  megjelenítése szűréssel",
     ShowSVG: "SVG megjelenítés",
     Size: "Méret",
     Skew: "Asszimmetrikus (Skew)",
+    SkewNegative: "Negatív elcsúszás",
     SLA: "SLA",
     Slaves: "Kiszolgáló",
     SlaveLogs: "Slave logs",
     SlaveNumber: "Slave-ek száma",
+    SkewPositive: "Pozitív elcsúszás",
     Smallest: "Legkisebb",
     SmallestFile: "Legkisebb fájl",
     SmallestSize: "Legkisebb méret",
@@ -493,10 +578,13 @@ define(
     Spray: "Szétoszt",
     Start: "Indítás",
     Started: "Elindítva",
+    Starting: "Kezdés",
     State: "Állapot",
     Stats: "Statisztika",
     Status: "Állapot",
     Stopped: "Megállítva",
+    Stopping: "Megállás",
+    StorageInformation: "Tárolási információk",
     Subgraph: "Al-gráf",
     Subgraphs: "Algráf",
     Submit: "Elküld",
@@ -521,6 +609,7 @@ define(
     SystemServers: "Rendszer kiszolgálók",
     tag: "jel",
     Target: "Cél",
+    Targets: "Célok",
     TargetClusters: "Cél klaszterek",
     TargetName: "Cél neve",
     TargetNamePlaceholder: "valamilyen::logikai::fájlnév",
@@ -548,12 +637,16 @@ define(
     title_AvailablePermissions: "Rendelkezésre álló jogok",
     title_ClusterInfo: "Csoportok",
     title_CodeGeneratorPermissions: "Kód-generátor hozzáfárási jogok",
+    title_DESDL: "Dinamikus ESDL",
+    title_DirectoriesFor: "Könyvtárak a(z)",
     title_DFUQuery: "Logikai fájlok",
     title_DFUWUDetails: "DFU munka",
     title_DiskUsage: "Lemez használat",
     title_ECLPlayground: "ECL teszt labor",
+    title_ErrorsWarnings: "Hibák/figyelmeztetések a(z)",
     title_EventScheduleWorkunit: "Esemény ütemező",
     title_FileScopeDefaultPermissions: "Alapértelmezett fájl hozzáférési jogok",
+    title_FoundFilesFor: "Megtalált fájljai a(z)",
     title_GetDFUWorkunits: "DFU feladatok",
     title_Graph: "Gráfok",
     title_GraphPage: "Cím",
@@ -569,10 +662,13 @@ define(
     title_LFDetails: "Logikai fájl információk",
     title_LibrariesUsed: "Felhasznált kódkönyvtárak",
     title_Log: "Log fájl",
+    title_LostFilesFor: "Elveszett fájljai a(z)",
     title_LZBrowse: "Lerakatok",
     title_MemberOf: "Tagja a",
     title_Members: "Tagok",
+    title_OrphanFilesFor: "Elhagyott, árva fájljai a(z)",
     title_Permissions: "Hozzáférési jogok",
+    title_PreflightResults: "Az előkészítés eredménye",
     title_QuerySetDetails: "Lekérdezés paraméterei",
     title_QuerySetErrors: "Hibák",
     title_QuerySetLogicalFiles: "Logikai fájlok",
@@ -592,13 +688,14 @@ define(
     title_WUQuery: "ECL feladatok",
     To: "-ig",
     ToDate: "Dátumig",
-    Toenablegraphviews: "A gráfok megjelenítéshez telepiteni kell a 'Graph View Control' bővítményt.",
+    Toenablegraphviews: "A gráfok megjelenítéshez telepiteni kell a &lsquo;Graph View Control&rsquo; bővítményt.",
     Tooltip: "Tipp",
     TooManyFiles: "Túl sok fájl",
     Top: "Felső",
     Topology: "Topológia",
     ToSizes: "Méretig",
     TotalClusterTime: "Teljes cluster idő",
+    TotalParts: "Az összes rész",
     TotalSize: "Összméret",
     TotalThorTime: "Összes Thor idő",
     TransitionGuide: "Átmenet útmutató",
@@ -638,7 +735,11 @@ define(
     ViewByScope: "Megjelenítés hatókör szerint",
     Views: "Nézetek",
     Visualize: "Grafikus megjelenítés",
+    Warning: "Figyelmeztetés",
     Warnings: "Figyelmeztetések",
+    WarnIfAvailableMemoryIsUnder: "Figyelmeztetés, ha a rendelkezésre álló memória kevesebb mint",
+    WarnIfAvailableDiskSpaceIsUnder: "Figyelmeztetés, ha a szabad lemezkapacitás kevesebb mint",
+    WarnIfCPUUsageIsOver: "Figyelmeztetés, ha a CPU használat magasabb mint",
     WarnOldGraphControl: "Figyelem: A Graph Control modul elavult!",
     What: "Mit?",
     Where: "Hol?",
@@ -658,6 +759,7 @@ define(
     XML: "XML",
     XRef: "Keresztreferencia (XRef)",
     Year: "Év",
+    YouAreAboutToDeleteBinding: "Törölni készül egy kötést. Biztos, hogy folytatni akarja?",
     YourBrowserMayNotSupport: "Előfordulhat, hogy az Ön böngészőprogramja nem támogatja az ekkora méretű fájlokat.",
     ZAP: "Z.A.P.",
     ZeroLogicalFilesCheckFilter: "Nincs a megadott feltételnek megfelelő adat! (A jó a szűrőfeltétel?)",

+ 116 - 10
esp/src/eclwatch/nls/pt-br/hpcc.js

@@ -1,6 +1,8 @@
 define(
 ({
     Abort: "Abortar",
+    AbortedBy: "Abortado pelo",
+    AbortedTime: "Hora de Abortar",
     About: "Sobre Plataforma HPCC",
     AboutGraphControl: "Sobre Controle de Gráphico",
     AboutHPCCSystemsGraphControl: "Sobre Controle de Gráphico do HPCC Systems®",
@@ -16,10 +18,15 @@
     ActivityMap: "Mapa de Atividade",
     ActualSize: "Tamanho Efectivo",
     Add: "Adicionar",
+    AddAttributes2: "Adiciona atributos",
+    AddAttributes: "Adiciona atributos/valores para seu métedo",
+    AddBinding: "Adiciona ligação",
     AddFile: "Adicionar Arquivo",
     AddGroup: "Adicionar Grupo",
     AdditionalResources: "Recursos Adicionais",
     AddProcessMap: "Adicionar Package Map",
+    AddtionalProcessesToFilter: "Processos adicionais para filtrar",
+    AddToExistingSuperfile: "Adicionar a um superfile existente",
     AddToSuperfile: "Adicionar ao Superarquivo",
     AddUser: "Adicionar Usuário",
     Advanced: "Avançado",
@@ -29,22 +36,33 @@
     AllowFull: "Permissão Total",
     AllowRead: "Permissão de Leitura",
     AllowWrite: "Permissão de Escrita",
+    AllQueuedItemsCleared: "Todos os itens em fila foram apagados. O trabalho em execução atual continuará a ser rodado",
     ANY: "Qualquer",
+    AnyAdditionalProcessesToFilter: "Quaisquer processos adicionais para filtrar",
     Append: "Anexar",
     Apply: "Aplicar",
     ArchivedOnly: "Apenas Arquivadas",
     ArchivedWarning: "Aviso: Por favor especifique intervalos de datas menore. Caso contrário, a operação para buscar workunits pode demorar causando um erro no navegador.",
+    Attribute: "Attributo",
+    AttributesAreRequired: "Atributos são necessários",
     AutoRefresh: "Recarregar Automático",
+    AutoRefreshEvery: "Atualização automática a cada x minutos",
+    AutoRefreshIncrement: "Auto Incrementar Atualização",
     Back: "voltar",
     BannerColor: "Cor da Faixa",
     BannerMessage: "Mensagem da Faixa",
     BannerScroll: "Faixa de Paginação",
     BannerSize: "Tamanho da Faixa",
     BinaryInstalls: "Instalação Binária",
+    Binding: "Ligação",
+    BindingDeleted: "Ligação deletado",
     Blob: "BLOB",
     BlobPrefix: "Prefixo do BLOB",
     Bottom: "fundo",
+    Busy: "Ocupado",
     Cancel: "Cancelar",
+    CancelAll: "Cancela tudo",
+    CancelAllMessage: "Abortar trabalhos em execução e limpar a fila. Você deseja continuar?",
     CheckAllNodes: "Verifique Todos os Nós",
     CheckFilePermissions: "Verifique Permissão de Arquivo",
     CheckSingleNode: "Verifique Nó Singular",
@@ -52,8 +70,8 @@
     ClearPermissionsCache: "Limpar Cache de Permissões",
     ClearPermissionsCacheConfirm: "Tem certeza que você quer limpar todos os caches de permissões dos servidores DALI e ESP? Workunits em execução podem ter a performance significantemente prejudicadas até que os caches tenham sido recarregados.",
     Clone: "Clonar",
-    CloneTooltip: "Unidade de Trabalho Duplicado",
     ClonedWUID: "WUID clonado",
+    CloneTooltip: "Unidade de Trabalho Duplicado",
     Close: "Fechar",
     Cluster: "Cluster (Aglomerado)",
     ClusterName: "Nome do Aglomerado (Cluster)",
@@ -71,15 +89,20 @@
     Compress: "Compactar",
     Compressed: "Comprimido",
     CompressedFileSize: "Tamanho do Arquivo Comprimido",
+    Condition: "Condição",
     Configuration: "Configuração",
     ConfirmPassword: "Confirmar Senha",
     ConfirmRemoval: "Tem certeza que quer fazer isso?",
+    ContactAdmin: "Se você deseja renomear este grupo, por favor, entre em contato com o administrador do LDAP",
     Content: "Conteúdo",
     Contents: "Conteúdo",
     ContentType: "Tipo de Conteúdo",
     Copy: "Copiar",
     Count: "Conta",
+    CreateANewFile: "Criar um novo superfile",
     Created: "Criado",
+    Critical: "Crítico",
+    CSV: "CVS",
     Dali: "Dali",
     dataset: ":=dataset*",
     Date: "Data",
@@ -88,8 +111,13 @@
     Debug: "Debug",
     DEF: "DEF",
     Defaults: "Padrões",
+    Definition: "Definição",
     Delete: "Remover",
+    DeleteBinding: "Apagar Ligação",
     Deleted: "Removido",
+    DeletedBinding: "Ligação Apagado",
+    DeleteDirectories: "Remover diretórios vazios. Você deseja continuar?",
+    DeleteEmptyDirectories: "Excluir diretórios vazios?",
     DeleteSelectedFiles: "Apagar Arquivos Selecionados?",
     DeleteSelectedGroups: "Remover Grupos Selecionados",
     DeleteSelectedPermissions: "Remover Permissões Selecionadas",
@@ -109,10 +137,12 @@
     Deschedule: "Desagendar",
     DescheduleSelectedWorkunits: "Desagendar Unidades de Trabalho Selecionadas",
     Description: "Descrição",
+    DESDL: "Dynamic ESDL",
     Despray: "Despray (Consolidar Dados dos Nós)",
     Details: "Detalhes",
     DFUServerName: "Nome do Servidor DFU",
     DFUWorkunit: "DFU Unidade de Trabalho",
+    Directories: "Diretórios",
     Directory: "Diretório",
     DisableScopeScanConfirm: "Tem certeza que quer desabilitar busca de escopo? Alterações de configuração serão aplicadas quando DALI reiniciar.",
     DisableScopeScans: "Desabilitar busca de escopo",
@@ -125,8 +155,10 @@
     Down: "Pra baixo",
     Download: "Baixar",
     Downloads: "Abaixamentos",
+    DownloadToCSV: "Transferir para o CSV",
     DropZone: "Zona de entrada de arquivos",
     Duration: "Duração",
+    DynamicNoServicesFound: "Nenhum Serviço Encontrado",
     EBCDIC: "EBCDIC",
     ECL: "ECL",
     ECLWorkunit: "ECL Unidade de Trabalho",
@@ -135,15 +167,19 @@
     EditDOT: "Editar DOT",
     EditGraphAttributes: "Editar Propriedades do Gráfico",
     EditXGMML: "Editar XGMML",
+    EmployeeID: "ID do Empregado",
     Empty: "Vazio",
     Enable: "Ativar",
     EnableScopeScans: "Ativar busca de escopo",
     EnableScopeScansConfirm: "Tem certeza que gostaria de ativar busca de escopo? Alterações serão aplicadas quando DALI reiniciar.",
     EnglishQ: "Inglês?",
+    EnterAPercentage: "Digite uma porcentagem",
+    EnterAPercentageOrMB: "Digite uma porcentagem ou MB",
     Error: "Error",
     Errorparsingserverresult: "Erro interpretando o resultado do servidor",
     Errors: "Erros",
     ErrorsStatus: "Erros/Estados",
+    ErrorUploadingFile: "Erro ao carregar arquivos. Tente verificar permissões.",
     ErrorWarnings: "Error/Aviso(s)",
     Escape: "Escape",
     ESPBuildVersion: "Versão‎ do ESP",  // jshint ignore:line
@@ -156,7 +192,10 @@
     Exception: "Exceção",
     ExpandAll: "Expandir Tudo",
     Export: "Exportar",
+    ExportSelectionsToList: "Exportar Seleções para Lista",
     FailIfNoSourceFile: "Falha em caso de arquivo sem fonte",
+    Fatal: "Fatal",
+    Fetched: "Buscado",
     FetchingData: "Buscando dados...",
     fetchingresults: "Buscando Resultados",
     File: "Arquivo",
@@ -167,8 +206,8 @@
     FilePath: "Caminho e nome do Arquivo",
     FilePermission: "Permissão de Arquivo",
     Files: "Arquivos",
-    FileScopes: "Escopo de arquivos",
     FileScopeDefaultPermissions: "Permissão Padrão de Arquivo Escopo",
+    FileScopes: "Escopo de arquivos",
     FileSize: "Tamanho do Arquivo",
     FilesNoPackage: "Arquivos sem definição de pacotes.",
     FilesWithUnknownSize: "Arquivos com tamanho desconhecido",
@@ -188,10 +227,14 @@
     Format: "Formato",
     Forums: "Bate Papos",
     Forward: "Avançar",
+    FoundFile: "Arquivo Encontrado",
+    FoundFileMessage: "Um arquivo encontrado tem todas as suas partes no disco que não são referenciadas no servidor Dali. Todas as partes do arquivo são contabilizadas para que possam ser adicionadas de volta ao servidor Dali. Eles também podem ser excluídos do cluster, se for necessário.",
     FromDate: "Data Inicial",
     FromSizes: "Tamanho Mínimo",
     FromTime: "Tempo inicial",
     FullName: "Nome Completo",
+    Generate: "Gerar",
+    GetSoftwareInformation: "Obter Informações de Software",
     Graph: "Grafo",
     Graphs: "Gráficos",
     GraphView: "Visão Gráfica",
@@ -224,6 +267,7 @@
     InvalidResponse: "(resposta inválida)",
     IP: "IP",
     IPAddress: "Endereço IP",
+    IsCompressed: "É Comprimido",
     IsLibrary: "Biblioteca?",
     IsReplicated: "É Replica?",
     IssueReporting: "Reportagem de Problemas",
@@ -232,6 +276,7 @@
     jsmi: "jsmi*",
     JSmith: "JSilva*",
     JSON: "JSON",
+    KeyFile: "Arquivo Chave",
     Label: "Rótulo de Texto",
     LandingZone: "Zona de Entrada de Arquivos",
     LandingZones: "Zona de entrada de arquivos",
@@ -239,11 +284,13 @@
     Largest: "Maior",
     LargestFile: "Maior Arquivo",
     LargestSize: "Maior Tamanho",
+    LastMessage: "Última Mensagem",
     LastName: "Sobrenome",
     LastNDays: "Ultimos N Dias",
     LastNHours: "Últimas N Horas",
     LastNRows: "Últimas N Filas",
-    LDAPWarning: "<b>Error do serviço de LDAP</b> 'Número de usuários excedido'. Por favor use um filtro.",
+    LastRun: "Última Rodada",
+    LDAPWarning: "<b>Error do serviço de LDAP</b> &lsquo;Número de usuários excedido&rsquo;. Por favor use um filtro.",
     LegacyForm: "Formato Antigo",
     LibrariesUsed: "Usa Biblioteca?",
     LibraryName: "Nome da biblioteca",
@@ -257,6 +304,8 @@
     LoadPackageContentHere: "(Carregue conteúdo de pacote aqui)",
     LoadPackageFromFile: "Carregar pacote de arquivo",
     Local: "Local",
+    LocalFileSystemsOnly: "Somente Sistemas de Arquivos Locais",
+    Location: "Localização",
     Log: "Log",
     LogFile: "Arquivo de log",
     LoggedInAs: "Entrou no sistema como",
@@ -268,7 +317,13 @@
     LogicalName: "Nome Lógico",
     Logs: "Logs",
     log_analysis_1: "log_analysis_1*",
+    LostFile2: "Arquivos perdidos",
+    LostFile: "Arquivo perdido",
+    LostFileMessage: "Um arquivo lógico que está faltando pelo menos uma parte de arquivo em ambos os locais primário e replicado em armazenamento. O arquivo lógico ainda é referenciado no servidor Dali. A exclusão do arquivo remove a referência do servidor Dali e de quaisquer partes restantes no disco.",
     Low: "Baixo",
+    MachineInformation: "Informação da máquina",
+    Machines: "Máquinas",
+    Major: "Principal",
     ManagedBy: "Gerenciado Por",
     ManagedByPlaceholder: "CN=HPCCAdmin,OU=users,OU=hpcc,DC=MyCo,DC=local",
     ManualCopy: "Pressione Ctrl+C",
@@ -278,11 +333,17 @@
     Mask: "Mask (bloqueador de caracteres)",
     Max: "Max",
     MaximumNumberOfSlaves: "Numero de esclavo",
+    MaxNode: "Nó Max",
     MaxRecordLength: "Maximo tamanho do registro",
+    MaxSize: "Tamanho máximo",
     MemberOf: "Membro de",
     Members: "Membros",
     Message: "Mensagem",
+    Methods: "Métodos",
     Min: "Min",
+    MinNode: "Nó Min",
+    Minor: "Menor",
+    MinSize: "Tamanho mínimo",
     Missing: "Não encontrado",
     MixedNodeStates: "Estados de Nós misturados",
     Modification: "Modificação",
@@ -309,6 +370,7 @@
     NoErrorFound: "Nenhum Erro Encontrado",
     NoFilterCriteriaSpecified: "Filtro não especificado",
     None: "Nenhum",
+    NoPublishedSize: "Nenhum tamanho publicado",
     Normal: "Normal",
     NoScheduledEvents: "Eventos agendados não encontrados",
     NoSplit: "Sem Separador",
@@ -336,6 +398,9 @@
     Operations: "Operações",
     Options: "Opções",
     OriginalFile: "Arquivo Originál",
+    OrphanFile2: "Arquivo órfão",
+    OrphanFile: "Arquivos órfãos",
+    OrphanMessage: "Um arquivo órfão tem partes de arquivo parcial no disco. No entanto, um conjunto completo de peças não está disponível para construir um arquivo lógico e completo. Isso não faz referência a essas partes de arquivo no servidor Dali.",
     Outputs: "Resultados",
     Overview: "Visão Geral",
     Overwrite: "Overwrite",
@@ -348,7 +413,10 @@
     PackagesNoQuery: "Pacotes sem queries",
     ParameterXML: "Parametro XML",
     Part: "Parte",
+    PartMask: "Parte Máscara",
     Parts: "Partes",
+    PartsFound: "Pedaços Encontradas",
+    PartsLost: "Pedaços Perdidas",
     Password: "Senha",
     PasswordExpiration: "Validade da Senha",
     PasswordExpired: "Sua senha não é mais válida. Por favor altere agora.",
@@ -372,17 +440,25 @@
     PlaceholderLastName: "da Silva",
     Playground: "Area de Recreio",
     PleaseEnterANumber: "Por favor digite o número 1 -",
+    PleasePickADefinition: "Por favor, escolha uma definição",
+    PleaseSelectADynamicESDLService: "Selecione um serviço ESDL dinâmico",
+    PleaseSelectAGroupToAddUser: "Por favor, selecione um grupo para adicionar o usuário a",
+    PleaseSelectATopologyItem: "Selecione um alvo, serviço ou máquina.",
     PleaseSelectAUserOrGroup: "Por favor selecione um usário ou grupo junto com um nome de arquivo",
+    PleaseSelectAUserToAdd: "Por favor, selecione um usuário para adicionar",
     Plugins: "Plugins",
     Port: "Port",
     Prefix: "Prefixo",
-    PrefixPlaceholder: "'nomedoarquivo{:comprimento}, tamanho{:[B|L][1-8]}'",
+    PrefixPlaceholder: "&lsquo;nomedoarquivo{:comprimento}, tamanho{:[B|L][1-8]}&rsquo;",
+    Preflight: "Pré-vôo",
     PreserveCompression: "Manter Arquivo Comprimido",
     Preview: "Prévia",
+    PrimaryLost: "Principal Perdido",
     PrimaryMonitoring: "Monitorador Principal",
     Priority: "Prioridade",
     Process: "Processo",
     ProcessFilter: "Filtro de Processo",
+    ProcessorInformation: "Informações do Processador",
     ProgressMessage: "Mensagem de Progresso",
     Properties: "Propriedades",
     Property: "Propriedade",
@@ -407,6 +483,7 @@
     Quote: "Aspas",
     QuotedTerminator: "Terminador em Aspas",
     RawTextPage: "Texto original (página atual)",
+    Ready: "Pronto",
     ReallyWantToRemove: "Realmente quer remover?",
     RecordCount: "Numero de Registros",
     RecordLength: "Tamanho do Registro",
@@ -415,6 +492,7 @@
     RecordStructurePresent: "Estrutura de registro disponível",
     Recover: "Recuperar",
     RecoverTooltip: "Reniciar unidade de trabalho pausado / bloqueado",
+    Recycling: "Reciclando",
     RedBook: "Red Book",
     Refresh: "Recarregar",
     ReleaseNotes: "Notas de Versão",
@@ -424,12 +502,16 @@
     RemoteDali: "Dali Remota",
     RemoteDaliIP: "IP Dali Remoto",
     Remove: "Remover",
+    RemoveAttributeQ: "Você está prestes a remover esse atributo. Você tem certeza de que quer fazer isso?",
+    RemoveAtttributes: "Remover Atributo (s)",
+    RemoveSubfiles2: "Remover Subfile (s)?",
     RemoveSubfiles: "Remover sub-arquivo(s)",
     RemoveUser: "Você está próximo de remover-se do grupo",
     Rename: "Renomear",
     RenderedSVG: "Rendered SVG",
     RenderSVG: "Renderização SVG",
     Replicate: "Replicar",
+    ReplicatedLost: "Replicado Perdido",
     ReplicateOffset: "Replicar o Deslocamento",
     RepresentsASubset: "Representar un subconjunto de todas los casamientos. Usando un filtro correcto puede reducir el numero de casamientos",
     RequestSchema: "Schema da Busca",
@@ -456,6 +538,7 @@
     Rows: "Linhas",
     RowTag: "Nome da Linha",
     RoxieCluster: "Roxie Cluster (Aglomerado)",
+    RunningServerStrain: "Executar este processo pode demorar muito tempo e vai sobrecarregar os servidores. Você quer continuar?",
     Sample: "Amostra",
     SampleRequest: "Amostra da Busca",
     SampleResponse: "Amostra de Resposta",
@@ -466,18 +549,22 @@
     Security: "Segurança",
     SelectPackageFile: "Selecione pacote que arquivos",
     Separators: "Seperadores",
+    Services: "Serviços",
     SetBanner: "Fixar Banner",
-    SetTextError: "Erro para mostrar texto(muito longo?)  Use 'ajuda' para baixar",
+    SetTextError: "Erro para mostrar texto(muito longo?)  Use &lsquo;ajuda&rsquo; para baixar",
     SetToFailed: "Indicar como Falhado",
     Severity: "Severidade",
     Show: "Exibir",
+    ShowProcessesUsingFilter: "Mostrar processos usando filtro",
     ShowSVG: "Mostrar SVG",
     Size: "Tamanho",
     Skew: "Distorção",
+    SkewNegative: "Inclinar (-)",
+    SkewPositive: "Inclinar (+)",
     SLA: "SLA",
-    Slaves: "Escravos",
     SlaveLogs: "Logs escravos",
     SlaveNumber: "Numero de esclavo",
+    Slaves: "Escravos",
     Smallest: "Menor",
     SmallestFile: "Arquivo Menor",
     SmallestSize: "Menor tamanho",
@@ -494,10 +581,14 @@
     Spray: "Spray (Distribuir aos Nós)",
     Start: "Começar",
     Started: "Início",
+    Starting: "Iniciando",
     State: "Estado",
     Stats: "Estatísticas",
     Status: "estado",
     Stopped: "Parado",
+    Stopping: "Parando",
+    StorageInformation: "Informações de armazenamento",
+    Subgraph: "Sugrafo",
     Subgraphs: "Subgráfico",
     Submit: "Submeter",
     Subtype: "Subtipo",
@@ -525,6 +616,7 @@
     TargetName: "Nome do Destino",
     TargetNamePlaceholder: "algum::lógico::arquivo",
     TargetRowTagRequired: "Tag Obrigatório de Registro de Destino",
+    Targets: "Alvos",
     TargetScope: "Escopo de Destino",
     TargetWuid: "Unidade de trabalho alvo",
     Terminators: "Terminadores",
@@ -541,19 +633,23 @@
     TimeStopped: "Fim",
     Timings: "Medidas de Tempo",
     TimingsMap: "Mapa das Medidas de Tempo",
-    title_Activity: "Atividate",
     title_ActiveGroupPermissions: "Permissão de Grupo Ativo",
     title_ActivePermissions: "Permissão Ativo",
+    title_Activity: "Atividate",
     title_AvailableGroupPermissions: "Permissão de Grupos Disponiveis",
     title_AvailablePermissions: "Permissão Disponiveis",
     title_ClusterInfo: "grupos",
     title_CodeGeneratorPermissions: "Permissões de Gerador de Código",
+    title_DESDL: "ESDL dinâmica",
     title_DFUQuery: "Arquivos Lógicos",
     title_DFUWUDetails: "Tarefa DFU",
+    title_DirectoriesFor: "Diretórios para",
     title_DiskUsage: "uso de disco",
     title_ECLPlayground: "ECL Playground",
+    title_ErrorsWarnings: "Erros / Avisos para",
     title_EventScheduleWorkunit: "Escalonador de eventos",
     title_FileScopeDefaultPermissions: "Permissão Padrão de Arquivos",
+    title_FoundFilesFor: "Arquivos encontrados para",
     title_GetDFUWorkunits: "Tarefas DFU",
     title_Graph: "Gráficos",
     title_GraphPage: "Título",
@@ -570,10 +666,13 @@
     title_LFDetails: "Detalhes dos Arquivos Lógicos",
     title_LibrariesUsed: "Bibliotecas usadas",
     title_Log: "arquivo de registro",
+    title_LostFilesFor: "Arquivos perdidos para",
     title_LZBrowse: "Zona de Entrada de Arquivos",
     title_MemberOf: "Membros de",
     title_Members: "Membros",
+    title_OrphanFilesFor: "Arquivos órfãos para",
     title_Permissions: "Permissões",
+    title_PreflightResults: "Resultados Pré-vôo",
     title_QuerySetDetails: "Detalhes da Consulta ECL",
     title_QuerySetErrors: "Erros",
     title_QuerySetLogicalFiles: "Arquivos Lógicos",
@@ -594,12 +693,13 @@
     To: "Para",
     ToDate: "Data Final",
     Toenablegraphviews: "Para ativar visão gráfica, por favor instalar o plugin",
-    TooManyFiles: "Inumeros Arquivos",
     Tooltip: "Tooltip",
+    TooManyFiles: "Inumeros Arquivos",
     Top: "Topo",
     Topology: "Topologia",
     ToSizes: "Tamanho Máximo",
     TotalClusterTime: "Tempo total do bloco",
+    TotalParts: "Pedaços totais",
     TotalSize: "Tamanho total",
     TotalThorTime: "Tempo Total do Thor",
     TransitionGuide: "Guia de transição",
@@ -619,8 +719,8 @@
     User: "Usuário",
     UserDetails: "Detalhes do usuário",
     UserID: "Identificação do usurario",
-    UserName: "Nome do usuário",
     Username: "Nome do usuário",
+    UserName: "Nome do usuário",
     UserPermissions: "Permissão do Usuário",
     Users: "Usuários",
     UseSingleConnection: "Usar Conexão Única",
@@ -639,6 +739,10 @@
     ViewByScope: "Visão por escopo",
     Views: "Visões",
     Visualize: "Visualize",
+    WarnIfAvailableDiskSpaceIsUnder: "Avisar se o espaço disponível em disco estiver abaixo de",
+    WarnIfAvailableMemoryIsUnder: "Avisar se a memória disponível está abaixo de",
+    WarnIfCPUUsageIsOver: "Avisar se o uso da CPU está além",
+    Warning: "Atenção",
     Warnings: "Avisos",
     WarnOldGraphControl: "Alerta: Controle de grafico velho",
     What: "O que",
@@ -659,13 +763,15 @@
     XML: "XML",
     XRef: "XRef",
     Year: "Ano",
+    YouAreAboutToDeleteBinding: "Está prestes a eliminar esta ligação. Você tem certeza que quer fazer isso?",
+    YouAreAboutToRemoveUserFrom: "Usted esta a punto de quitar un(os) usuario(s) de este grupo. ¿Desea continuar?",
     YourBrowserMayNotSupport: "O seu navegador provavelmente não supporta arquivo(s) deste tamanho",
     ZAP: "Z.A.P",
     ZeroLogicalFilesCheckFilter: "Nenhum Arquivo Lógico (verifique filtro)",
     Zip: "Zip",
     ZippedAnalysisPackage: "Pacote de Análise Zipped",
-    Zoom: "Zoom",
     Zoom100Pct: "Zoom 100%",
+    Zoom: "Zoom",
     ZoomAll: "Zoom Completo",
     ZoomWidth: "comprimento do Zoom"
 })

+ 111 - 7
esp/src/eclwatch/nls/sr/hpcc.js

@@ -1,6 +1,8 @@
 define(
 ({
     Abort: "Прекините",
+    AbortedBy: "Прекинуто од стране",
+    AbortedTime: "време прекида",
     About: "О Апликацији",
     AboutGraphControl: "О Графичкој Контроли",
     AboutHPCCSystemsGraphControl: "О Графичкој Контроли ХПЦЦ Система",
@@ -16,10 +18,15 @@
     ActivityMap: "Mапа Активности",
     ActualSize: "Тачна Величина",
     Add: "Додајте",
+    AddAttributes2: "Додајте Атрибут(е)",
+    AddAttributes: "Додајте атрибуте / вредности вашем методу",
+    AddBinding: "Додајте Везивање",
     AddFile: "Додајте Датотеку",
     AddGroup: "Додајте Групу",
     AdditionalResources: "Додатни Ресурси",
     AddProcessMap: "Додајте Мапу Пакета",
+    AddtionalProcessesToFilter: "Додатни Процеси За Филтрирање",
+    AddToExistingSuperfile: "Додајте на постојећи суперфајл",
     AddToSuperfile: "Додајте на Супердатотеку",
     AddUser: "Додајте Корисника",
     Advanced: "Вишег Нивоа",
@@ -29,22 +36,33 @@
     AllowFull: "<center>Дозволите<br>Потпун</center>",
     AllowRead: "<center>Дозволите<br>Читање</center>",
     AllowWrite: "<center>Дозволите<br>Писање</center>",
+    AllQueuedItemsCleared: "Сви послови из реда чекања су очишћени. Тренутно активни посао наставња са извршавањем.",
     ANY: "Било Који",
+    AnyAdditionalProcessesToFilter: "Има ли још процеса за филтрирање",
     Append: "Додајте",
     Apply: "Примените",
     ArchivedOnly: "Само Архивиран",
     ArchivedWarning: "Упозорење: користите кратак временски период. Ако користите дужи временски период, претраживање радних јединица може трајати дуже од дозвиљеног времена за претраживање.",
+    Attribute: "Атрибут",
+    AttributesAreRequired: "Атрибути су потребни",
     AutoRefresh: "Освежи",
+    AutoRefreshEvery: "Аутоматско освеживање сваких к минута",
+    AutoRefreshIncrement: "Аутоматски корак освежавања",
     Back: "Назад",
     BannerColor: "Боја Рекламног Блока",
     BannerMessage: "Порука за Рекламни Блок",
     BannerScroll: "Кретање Рекламног Блока",
     BannerSize: "Величина Рекламног Блока",
     BinaryInstalls: "Бинарне Инсталације",
+    Binding: "Везивање",
+    BindingDeleted: "Везивање Избрисанo",
     Blob: "БЛОБ",
     BlobPrefix: "БЛОБ Префикс",
     Bottom: "Крај",
+    Busy: "заузет",
     Cancel: "Поништите",
+    CancelAll: "Укините Све",
+    CancelAllMessage: "Прекините текуће послове и очистите ред чекања. Желите ли наставити?",
     CheckAllNodes: "Проверите све чворове",
     CheckFilePermissions: "Проверите дозволе за приступ филу",
     CheckSingleNode: "Проверите Један НОД",
@@ -72,15 +90,20 @@
     Compress: "Сабијте",
     Compressed: "Компримирани",
     CompressedFileSize: "Компримирана Величина Датотеке",
+    Condition: "услов",
     Configuration: "Конфигурација",
     ConfirmPassword: "Потврдите Лозинку",
     ConfirmRemoval: "Јесте ли сигурни да то желите учинити?",
+    ContactAdmin: "Ако желите променити назив ове групе, контактирајте администратора ЛДАП.",
     Content: "Садржај",
     Contents: "Садржаји",
     ContentType: "Врста Садржаја",
     Copy: "Копирајте",
     Count: "Избројте",
+    CreateANewFile: "Креирајте нови суперфајл ",
     Created: "Произведен",
+    Critical: "Критично",
+    CSV: "ЦСВ",
     Dali: "Дали",
     dataset: ":=датасет*",
     Date: "Датум",
@@ -89,16 +112,21 @@
     Debug: "Отклоните Неисправности",
     DEF: "ДЕФ",
     Defaults: "Унапред Дефинисане Вредности",
+    Definition: "Дефиниција",
     Delete: "Обришите",
+    DeleteBinding: "Избришите Везивање",
     Deleted: "Избрисан",
+    DeletedBinding: "Избрисано Везивање",
+    DeleteDirectories: "Елиминишите празан директириј. Желите ли наставити?",
+    DeleteEmptyDirectories: "Желите ли избрисати празне директорије?",
     DeleteSelectedFiles: "Обришите Одабране Датотеке?",
     DeleteSelectedGroups: "Обришите одабрану(е) групу(е)?",
     DeleteSelectedPermissions: "Обришите Одабране Дозволе За Приступ",
     DeleteSelectedQueries: "Обришите Одабране Захтјеве?",
     DeleteSelectedUsers: "Обришите Одабране Кориснике?",
     DeleteSelectedWorkunits: "Обришите Одабране Радне Јединице?",
-    DeleteSuperfile: "Обришите Супердатотеке?",
     DeleteSuperfile2: "Избришите Супер Датотеку",
+    DeleteSuperfile: "Обришите Супердатотеке?",
     DeleteThisPackage: "Обришите Овај Пакет?",
     Delimited: "Разграничен",
     DenyAccess: "<center>Забраните<br>Приступ</center>",
@@ -106,14 +134,16 @@
     DenyRead: "<center>Забраните<br>Читање</center>",
     DenyWrite: "<center>Забраните<br>Писање</center>",
     Depth: "Дубина",
-    DepthTooltip: "'Највећа Дубина Подграфа",
+    DepthTooltip: "&lsquo;Највећа Дубина Подграфа",
     Deschedule: "Избаците Ис Реда За Извршавање",
     DescheduleSelectedWorkunits: "Избаците Одабране Радне Јединице Из Реда За Извршавање?",
     Description: "Опис",
+    DESDL: "Динамички ЕСДЛ",
     Despray: "Поново Обjедините Датотеку",
     Details: "Детаљи",
     DFUServerName: "Име ДФУ Сервера",
     DFUWorkunit: "ДФУ РаднаЈединицa",
+    Directories: "директорије",
     Directory: "Директориј",
     DisableScopeScanConfirm: "Да ли сте сигурни да желите онемогућити сканирање опсега? Промене ће бити прихваћене после рестарта ДАЛИја",
     DisableScopeScans: "Онемогућите Сканирање Опсега",
@@ -126,8 +156,10 @@
     Down: "Неактиван",
     Download: "Добавите",
     Downloads: "Преузимање",
+    DownloadToCSV: "Преузмите у ЦСВ формату",
     DropZone: "Зона Пријема",
     Duration: "Трајање",
+    DynamicNoServicesFound: "Сервиси Нису Пронађени",
     EBCDIC: "ЕБЦДИK",
     ECL: "ЕЦЛ",
     ECLWorkunit: "ЕЦЛ РаднаЈединица",
@@ -136,15 +168,19 @@
     EditDOT: "Едитујте ДОТ",
     EditGraphAttributes: "Едитујте Атрибуте Графова",
     EditXGMML: "Едитујте XГММЛ",
+    EmployeeID: "ИД Радника",
     Empty: "(Празан)",
     Enable: "Омогућите",
     EnableScopeScans: "Омогућите Сканирање Опсега",
     EnableScopeScansConfirm: "Да ли сте сигурни да желите омогућити сканирање опсега? Промене ће бити прихваћене после рестарта ДАЛИја",
     EnglishQ: "Енглески?",
+    EnterAPercentage: "Унесите проценат",
+    EnterAPercentageOrMB: "Унесите Проценат или МБ",
     Error: "Грешка",
     Errorparsingserverresult: "Грешка у анализи резултата са сервера",
     Errors: "Грешкe",
     ErrorsStatus: "Грешкe/Стање",
+    ErrorUploadingFile: "Грешка приликом преноса фајла(а). Покушајте провјерити дозволе за пренос",
     ErrorWarnings: "Грешка/Упозорења",
     Escape: "Ескејп",
     ESPBuildVersion: "ЕСП Тренутна Верзија",
@@ -157,7 +193,10 @@
     Exception: "Неочекивани Проблем",
     ExpandAll: "Проширите све",
     Export: "Извезите",
+    ExportSelectionsToList: "Извeзите Одабране Ствари у Листу",
     FailIfNoSourceFile: "Неуспех Уколико Датотека Не Постоји",
+    Fatal: "фаталан",
+    Fetched: "Преузет",
     FetchingData: "У Процесу Добављња Података...",
     fetchingresults: "добијени ресултати",
     File: "Датотека",
@@ -189,10 +228,14 @@
     Format: "Формат",
     Forums: "Форуми",
     Forward: "Напред",
+    FoundFile: "Фајл Је Пронађен",
+    FoundFileMessage: "Пронађени фајл има све своје делове на диску, или делови нису познати Дали серверу. Сви делови фајлa могу да бити додани назад на Дали серверу. Делови могу да бити и обрисани са kлaстерa aко је то потребно.",
     FromDate: "Од Датума",
     FromSizes: "Од Величине",
     FromTime: "Од Времена",
     FullName: "Име и Презиме",
+    Generate: "Генеришите",
+    GetSoftwareInformation: "Желите ли да добијетe информације о софтверу",
     Graph: "Граф",
     Graphs: "Графикони",
     GraphView: "Слика Графикона",
@@ -224,6 +267,7 @@
     InvalidResponse: "(Неисправан Одговор)",
     IP: "ИП",
     IPAddress: "ИП Адреса",
+    IsCompressed: "Је ли Сабијен",
     IsLibrary: "Је Библиотека",
     IsReplicated: "Pеплициран",
     IssueReporting: "Извештавање о Проблемима",
@@ -232,6 +276,7 @@
     jsmi: "јсми*",
     JSmith: "ЈСмит*",
     JSON: "ЈСОН",
+    KeyFile: "Индексирани Фајл",
     Label: "Етикета",
     LandingZone: "Зона за Претовар",
     LandingZones: "Зонe за Претовар",
@@ -239,11 +284,13 @@
     Largest: "Највећи",
     LargestFile: "Највећа Датотека",
     LargestSize: "Највећа величина",
+    LastMessage: "Задња порука",
     LastName: "Презиме",
     LastNDays: "Последњих Н Дана",
     LastNHours: "Последњих Н Сати",
     LastNRows: "Последњих Н Редова",
-    LDAPWarning: "<б>Грешка ЛДАП Сервица:</б>  'Превише корисника' - Молимо користите филтер.",
+    LastRun: "Задњи Ран",
+    LDAPWarning: "<б>Грешка ЛДАП Сервица:</б>  &lsquo;Превише корисника&rsquo; - Молимо користите филтер.",
     LegacyForm: "Стари Превазиђени Формулар",
     LibrariesUsed: "Библиотеке у Кориштењу",
     LibraryName: "Име Библиотеке",
@@ -257,6 +304,8 @@
     LoadPackageContentHere: "(Добавите овамо садржај пакета)",
     LoadPackageFromFile: "Добавите Пакет из Датотеке",
     Local: "Локални",
+    LocalFileSystemsOnly: "Само Локални Фајл Системи",
+    Location: "Локација",
     Log: "Дневник (Лог)",
     LogFile: "Датотека Активности",
     LoggedInAs: "Пријављен као",
@@ -268,7 +317,13 @@
     LogicalName: "Име Логичке Датотеке",
     Logs: "Дневници",
     log_analysis_1: "лог_аналисис_1*",
+    LostFile2: "Изгубљени Фајлови",
+    LostFile: "Изгубљени Фајл",
+    LostFileMessage: "Логички фајл коме недостаје бар један део или на примарној или на реплицираној локацији на диску. Логички фајл је још увек под контролом Дали сервера. Брисање фајлa прекида контролу Дали сервера над фајлом као и над свим преосталим деловима фајлa на диску.",
     Low: "Низак",
+    MachineInformation: "Информација о машине",
+    Machines: "Машине",
+    Major: "Главни",
     ManagedBy: "Управљан",
     ManagedByPlaceholder: "цн = ХПЦЦАдмин, ОУ = Усерс, оу = ХПЦЦ, ДЦ = Мицо, ДЦ = локални",
     ManualCopy: "Притисните Ctrl+C",
@@ -278,11 +333,17 @@
     Mask: "Маска",
     Max: "Максимум",
     MaximumNumberOfSlaves: "Максималан Број Извршилаца",
+    MaxNode: "Максимални НОД / чвор",
     MaxRecordLength: "Максимална Дужина Рекорда",
+    MaxSize: "Максимална величина",
     MemberOf: "Члан Од",
     Members: "Чланови",
     Message: "Поруке",
+    Methods: "Методи",
     Min: "Минимум",
+    MinNode: "Минимални НОД / чвор",
+    Minor: "Миноран",
+    MinSize: "Минимална Величина",
     Missing: "Недостаје",
     MixedNodeStates: "Сви Нодови Немају Исти Статус",
     Modification: "Промена",
@@ -309,6 +370,7 @@
     NoErrorFound: "Без нађених грешака\n",
     NoFilterCriteriaSpecified: "Критериј за филтрирање није специфициран.",
     None: "Ниједан",
+    NoPublishedSize: "Величина Није Објављена",
     Normal: "Нормалан",
     NoScheduledEvents: "Нема Дефинисаних Догађаја (ивентс) на Распореду.",
     NoSplit: "Нема Подијела (Сплит)",
@@ -336,6 +398,9 @@
     Operations: "Операције",
     Options: "Опције",
     OriginalFile: "Оригинална датотека",
+    OrphanFile2: "Непотребaн Фајл",
+    OrphanFile: "Непотребни Фајлови",
+    OrphanMessage: "Непотребни фајл има неке делове на диску. Али cви делови датотеке не постоје да би се могaо комплетирати логички фајл. Не постоји референца на непостијеће делове фајлa са Дали сервера.",
     Outputs: "Излази",
     Overview: "Преглед",
     Overwrite: "Препишите",
@@ -348,7 +413,10 @@
     PackagesNoQuery: "Пакети за које нису дефинисани упити (kуериз)",
     ParameterXML: "Параметар XМЛ",
     Part: "Дио",
+    PartMask: "Делимична Маска",
     Parts: "Делови",
+    PartsFound: "Делови Су Пронађени",
+    PartsLost: "Делови Су Изгубљени",
     Password: "Лозинка",
     PasswordExpiration: "Лозинка Истиће",
     PasswordExpired: "Ваша лозинка је истекла И мора бити промењена",
@@ -372,17 +440,25 @@
     PlaceholderLastName: "Смит",
     Playground: "Игралиште",
     PleaseEnterANumber: "Унестите Број 1 -",
+    PleasePickADefinition: "Изаберите дефиницију",
+    PleaseSelectADynamicESDLService: "Одаберите Динамички ЕСДЛ сервис",
+    PleaseSelectAGroupToAddUser: "Изаберите групу у коју желите да додате корисника",
+    PleaseSelectATopologyItem: "Одаберите циљну платформу, сервис или машину.",
     PleaseSelectAUserOrGroup: "Изаберите Корисника или Групу заједно са Именом Фајла",
+    PleaseSelectAUserToAdd: "Изаберите корисника којeг желите да додате",
     Plugins: "Допуне",
     Port: "Порт",
     Prefix: "Префикс",
     PrefixPlaceholder: "имедатотеке{:дужина}, величинадатотеке{:[B|L][1-8]}",
+    Preflight: "Провера пре испоруке",
     PreserveCompression: "Сачувајте Компресију",
     Preview: "Преглед",
+    PrimaryLost: "Примарни Је Изгубљен",
     PrimaryMonitoring: "Основно Надгледање",
     Priority: "Приоритет",
     Process: "Процес",
     ProcessFilter: "Процес&nbsp;Филтер",
+    ProcessorInformation: "Информација о процесору",
     ProgressMessage: "Порука о Прогресу",
     Properties: "Својства",
     Property: "Својствo",
@@ -407,6 +483,7 @@
     Quote: "Цитат",
     QuotedTerminator: "Завршни Карактер",
     RawTextPage: "Необрађен Текст (Текућа Страница)",
+    Ready: "Cпреман",
     ReallyWantToRemove: "Заиста желите уклонити?",
     RecordCount: "Број Рекорда",
     RecordLength: "Дужина Рекорда",
@@ -415,6 +492,7 @@
     RecordStructurePresent: "Структура Рекорда Постоји",
     Recover: "Вратите Натраг",
     RecoverTooltip: "Покрените заустављену радну јединицу",
+    Recycling: "Рециклажа",
     RedBook: "Црвена Књига",
     Refresh: "Освежите",
     ReleaseNotes: "Напомена о Издању",
@@ -424,12 +502,16 @@
     RemoteDali: "Далеки Дали",
     RemoteDaliIP: "Далеки&nbsp;Дали&nbsp;ИП&nbsp;Адреса",
     Remove: "Уклоните",
+    RemoveAttributeQ: "Изабрани атрибута ће бити уклоњен. Да ли сте сигурни да то желите?",
+    RemoveAtttributes: "Уклоните Атрибут(е)",
+    RemoveSubfiles2: "Желите ли да уклоните субфајл(ове)?",
     RemoveSubfiles: "Уклоните Поддатотеку",
     RemoveUser: "Уклоните Корисника",
     Rename: "Преименујте",
     RenderedSVG: "Донесене СВГ",
     RenderSVG: "Донесите СВГ",
     Replicate: "Реплицирајте",
+    ReplicatedLost: "Изгубљене Репликације",
     ReplicateOffset: "Реплицирајте Офсет",
     RepresentsASubset: "Представља подскуп од укупног броја упарених резултата .Промена филтера може смањити број упарених резултата",
     RequestSchema: "Шема Захтева",
@@ -456,6 +538,7 @@
     Rows: "Редови",
     RowTag: "Етикета Реда",
     RoxieCluster: "Роkcи Кластер",
+    RunningServerStrain: "Извршавање овог процеса може да траје дуго времена и веома оптерети сервере. Желите ли да наставите?",
     Sample: "Пример",
     SampleRequest: "Пример Захтева",
     SampleResponse: "Пример Одговора",
@@ -466,14 +549,18 @@
     Security: "Сигурност",
     SelectPackageFile: "Изаберитe Пакет",
     Separators: "Сеператори",
+    Services: "Сервиси",
     SetBanner: "Поставите Заставицу",
-    SetTextError: "Неуспешно приказивање текста (да ли је текст предуг?). Користите 'помагаче' за преузимање датотека.",
+    SetTextError: "Неуспешно приказивање текста (да ли је текст предуг?). Користите &lsquo;помагаче&rsquo; за преузимање датотека.",
     SetToFailed: "Поставите На Неуспешан",
     Severity: "Озбиљност",
     Show: "Прокажите",
+    ShowProcessesUsingFilter: "Прикажи процесе користећи филтер",
     ShowSVG: "Прокажите СВГ",
     Size: "Величина",
     Skew: "Скју",
+    SkewNegative: "Скју (-)",
+    SkewPositive: "Скју (+) ",
     SLA: "СЛА",
     SlaveLogs: "Извештаји Извршилаца",
     SlaveNumber: "Број Извршилаца",
@@ -494,10 +581,13 @@
     Spray: "Разбацајте (Спрej)",
     Start: "Почните",
     Started: "Почео",
+    Starting: "Полазак ",
     State: "Стање",
     Stats: "Статистике",
     Status: "Статус",
     Stopped: "Заустављен",
+    Stopping: "Заустављање",
+    StorageInformation: "Информација о диск простору",
     Subgraph: "ПодГраф",
     Subgraphs: "Подграфикон",
     Submit: "Поднесите",
@@ -506,8 +596,8 @@
     SummaryMessage: "Сажета Порука",
     SuperFile: "Супер Датотека",
     Superfile: "Супер Датотека",
-    SuperFiles: "Супер Датотеке",
     Superfiles: "СуперДатотеке",
+    SuperFiles: "Супер Датотеке",
     SuperFilesBelongsTo: "Припадник Супердатотеке",
     SuperfilesOnly: "Само Супердатотеке",
     Suspend: "Суспендујте",
@@ -525,6 +615,7 @@
     TargetName: "Назив Циља",
     TargetNamePlaceholder: "неко::логићко::име",
     TargetRowTagRequired: "Морате ознацити циљни ред у табели",
+    Targets: "Циљне Платформе",
     TargetScope: "Циљни Обим",
     TargetWuid: "Циљ/Pjид",
     Terminators: "Терминатори",
@@ -548,12 +639,16 @@
     title_AvailablePermissions: "Расположиве Дозволе",
     title_ClusterInfo: "Групе",
     title_CodeGeneratorPermissions: "Дозволе за генератор кода",
+    title_DESDL: "Динамичани ЕСДЛ",
     title_DFUQuery: "Логичке Датотеке",
     title_DFUWUDetails: "ДФУ Радна Јединица",
+    title_DirectoriesFor: "Директорији за",
     title_DiskUsage: "Искориштеност Диска",
     title_ECLPlayground: "ЕЦЛ Игралиште",
+    title_ErrorsWarnings: "Грешке / упозорења за",
     title_EventScheduleWorkunit: "Распоређивач Догађаја",
     title_FileScopeDefaultPermissions: "Предефинисанe дозволе за фајл систем",
+    title_FoundFilesFor: "Пронађен фајл за",
     title_GetDFUWorkunits: "ДФУ Радне Јединице",
     title_Graph: "Графикон",
     title_GraphPage: "наслов",
@@ -569,10 +664,13 @@
     title_LFDetails: "Детаљи о Логичкоj Датотеци",
     title_LibrariesUsed: "Библиотеке У Кориштењу",
     title_Log: "Лог Фајл",
+    title_LostFilesFor: "Изгубљени фајлови за",
     title_LZBrowse: "Зона за Претовар",
     title_MemberOf: "Члан Од",
     title_Members: "Чланови",
+    title_OrphanFilesFor: "Непотребни фајлови за",
     title_Permissions: "Дозволе",
+    title_PreflightResults: "Резултати провере",
     title_QuerySetDetails: "Детаљи Упита",
     title_QuerySetErrors: "Грешке",
     title_QuerySetLogicalFiles: "Логичке Датотеке",
@@ -599,6 +697,7 @@
     Topology: "Топологија",
     ToSizes: "До Величина",
     TotalClusterTime: "Укупно Време Кластера",
+    TotalParts: "Укупан број делова",
     TotalSize: "Укупна Величина",
     TotalThorTime: "Укупно Време Тора",
     TransitionGuide: "Водич",
@@ -638,6 +737,10 @@
     ViewByScope: "Поглед према Скопу",
     Views: "Погледи",
     Visualize: "Визуализујте",
+    WarnIfAvailableDiskSpaceIsUnder: "Упозори aко расположиви диск простор спадне испод",
+    WarnIfAvailableMemoryIsUnder: "Упозори aко расположива меморија спадне испод",
+    WarnIfCPUUsageIsOver: "Упозори ако је искориштеност процесора преко",
+    Warning: "Упозорење",
     Warnings: "Упозорење(а)",
     WarnOldGraphControl: "Упозорење:  Стара Графичка Контрола",
     What: "Шта",
@@ -658,15 +761,16 @@
     XML: "XML",
     XRef: "XRef",
     Year: "Година",
+    YouAreAboutToDeleteBinding: "Одабрано везивање ће бити обрисано. Да ли сте сигурни да желите да то урадите?",
+    YouAreAboutToRemoveUserFrom: "тражили сте да уклоните корисника(е) из ове групе. Да ли желите да наставите?",
     YourBrowserMayNotSupport: "Ваш претраживач можда не подржава датотеку (е) ове величине",
     ZAP: "Z.A.P",
     ZeroLogicalFilesCheckFilter: "Нема ни једане Логичке Датотеке(проверите филтер)",
     Zip: "Запакујте (Зип)",
     ZippedAnalysisPackage: "Запаковани Пакет са Анализама",
-    Zoom: "Зум",
     Zoom100Pct: "Зумирајте 100%",
+    Zoom: "Зум",
     ZoomAll: "Зумирајте Све",
     ZoomWidth: "Зумирајте Ширину"
-
 })
 );

+ 111 - 6
esp/src/eclwatch/nls/zh/hpcc.js

@@ -1,6 +1,8 @@
 define(
 ({
     Abort: "终止",
+    AbortedBy: "终止者",
+    AbortedTime: "终止时间",
     About: "本系统简介",
     AboutGraphControl: "图形控制器简介",
     AboutHPCCSystemsGraphControl: "HPCC系统图形控制器简介",
@@ -16,10 +18,15 @@
     ActivityMap: "活动图",
     ActualSize: "实际长度",
     Add: "添加",
+    AddAttributes2: "添加属性",
+    AddAttributes: "在你得方法中添加属性/值",
+    AddBinding: "添加连接",
     AddFile: "添加文件",
     AddGroup: "添加用户组",
     AdditionalResources: "附加资源",
     AddProcessMap: "添加文件包",
+    AddtionalProcessesToFilter: "过滤附加进程",
+    AddToExistingSuperfile: "添加到现有文件集",
     AddToSuperfile: "加入文件集",
     AddUser: "添加用户",
     Advanced: "高级",
@@ -29,22 +36,33 @@
     AllowFull: "<center>允许<br>全权</center>",
     AllowRead: "<center>允许<br>读</center>",
     AllowWrite: "<center>允许<br>写</center>",
+    AllQueuedItemsCleared: "所有队列项都已被清除。当前的运行作业将会继续执行。",
     ANY: "任何一个",
+    AnyAdditionalProcessesToFilter: "任何需过滤的附加进程",
     Append: "添加",
     Apply: "使用",
     ArchivedOnly: "仅限已存档的工作单元",
     ArchivedWarning: "警告:请指定一个小的日期范围. 否则, 检索时间可能较长,网页浏览器可能超时",
+    Attribute: "属性",
+    AttributesAreRequired: "所需属性",
     AutoRefresh: "自动更新",
+    AutoRefreshEvery: "每x分钟自动刷新",
+    AutoRefreshIncrement: "自动刷新增量",
     Back: "返回",
     BannerColor: "标语的颜色",
     BannerMessage: "标语的文字",
     BannerScroll: "标语滚动",
     BannerSize: "标语大小",
     BinaryInstalls: "安装图形控制器",
+    Binding: "连接",
+    BindingDeleted: "连接已删除",
     Blob: "BLOB",
     BlobPrefix: "BLOB前缀",
     Bottom: "下部",
+    Busy: "忙",
     Cancel: "撤消",
+    CancelAll: "全部取消",
+    CancelAllMessage: "终止运行作业并清除队列。你要继续吗?",
     CheckAllNodes: "检查所有节点",
     CheckFilePermissions: "检查文件权限",
     CheckSingleNode: "检查单一节点",
@@ -71,15 +89,20 @@
     Compress: "压缩",
     Compressed: "已压缩过的",
     CompressedFileSize: "压缩后的文件长度",
+    Condition: "条件",
     Configuration: "设置",
     ConfirmPassword: "确认密码",
     ConfirmRemoval: "确认",
+    ContactAdmin: "如果你想要重新命名这个群组,请联系你的LDAP管理员",
     Content: "内容",
     Contents: "内容",
     ContentType: "内容类型",
     Copy: "复制",
     Count: "数量",
+    CreateANewFile: "生成一个新超级文件",
     Created: "已创建",
+    Critical: "关键的",
+    CSV: "CSV",
     Dali: "Dali",
     dataset: ":=数据集*",
     Date: "日期",
@@ -88,8 +111,13 @@
     Debug: "故障诊断",
     DEF: "DEF",
     Defaults: "默认",
+    Definition: "定义",
     Delete: "删除",
+    DeleteBinding: "删除连接",
     Deleted: "已删除",
+    DeletedBinding: "已删除的连接",
+    DeleteDirectories: "将要删除空目录。你要继续吗?",
+    DeleteEmptyDirectories: "删除空目录",
     DeleteSelectedFiles: "删除所选择的文件?",
     DeleteSelectedGroups: "删除所选择的用户组?",
     DeleteSelectedPermissions: "删除所选的权限?",
@@ -109,10 +137,12 @@
     Deschedule: "取消运行计划",
     DescheduleSelectedWorkunits: "取消所选工作单元的计划?",
     Description: "说明",
+    DESDL: "Dynamic ESDL ",
     Despray: "复合原文件",
     Details: "细节",
     DFUServerName: "DFU服务器名",
     DFUWorkunit: "DFU工作单元",
+    Directories: "文件目录",
     Directory: "文件目录",
     DisableScopeScanConfirm: "你确认要禁用范围扫描吗?在DALI重新启动后, 将复归原始的系统设置.",
     DisableScopeScans: "禁用范围扫描",
@@ -125,8 +155,10 @@
     Down: "向下",
     Download: "下载",
     Downloads: "下载",
+    DownloadToCSV: "下载成CSV",
     DropZone: "文件停放区",
     Duration: "时间段",
+    DynamicNoServicesFound: "找不到服务",
     EBCDIC: "EBCDIC",
     ECL: "ECL",
     ECLWorkunit: "ECL工作单元",
@@ -135,15 +167,19 @@
     EditDOT: "编辑DOT",
     EditGraphAttributes: "编辑图形属性",
     EditXGMML: "编辑XGMML",
+    EmployeeID: "员工ID",
     Empty: "(空白)",
     Enable: "解禁",
     EnableScopeScans: "解禁范围扫描",
     EnableScopeScansConfirm: "你确认要解禁范围扫描吗?在Dali重新启动后, 将复归原始的系统设置.",
     EnglishQ: "英文?",
+    EnterAPercentage: "输入百分比",
+    EnterAPercentageOrMB: "输入百分比或MB",
     Error: "错误",
     Errorparsingserverresult: "服务器结果解析错误",
     Errors: "错误",
     ErrorsStatus: "错误状态",
+    ErrorUploadingFile: "上传文件错误。请捡查文件权限",
     ErrorWarnings: "错误/警告",
     Escape: "换码",
     ESPBuildVersion: "ESP构建版本",
@@ -156,7 +192,10 @@
     Exception: "异常",
     ExpandAll: "打开",
     Export: "输出",
+    ExportSelectionsToList: "输出选项为列表",
     FailIfNoSourceFile: "在无源文件时失效",
+    Fatal: "严重的",
+    Fetched: "已取",
     FetchingData: "提取数据...",
     fetchingresults: "提取结果",
     File: "文件",
@@ -167,8 +206,8 @@
     FilePath: "文件路径",
     FilePermission: "文件权限",
     Files: "文件",
-    FileScopes: "文件范围",
     FileScopeDefaultPermissions: "文件默认权限",
+    FileScopes: "文件范围",
     FileSize: "文件长度",
     FilesNoPackage: "与文件包定义不匹配的文件",
     FilesWithUnknownSize: "大小未知的文件",
@@ -188,10 +227,14 @@
     Format: "格式",
     Forums: "论坛",
     Forward: "向前",
+    FoundFile: "找到文件",
+    FoundFileMessage: "找到的文件的所有部分都在磁盘上且没有在Dali服务器中引用。它们都被记录以便可以加回到Dali服务器上。如果需要它们也可被从集群中删除。",
     FromDate: "起始日期",
     FromSizes: "最小文件长度",
     FromTime: "起始时间",
     FullName: "姓名",
+    Generate: "生成",
+    GetSoftwareInformation: "获取软件信息",
     Graph: "图形",
     Graphs: "图形",
     GraphView: "图形显示",
@@ -223,14 +266,16 @@
     InvalidResponse: "(无效响应)",
     IP: "IP",
     IPAddress: "IP地址",
+    IsCompressed: "已压缩",
     IsLibrary: "程序库",
     IsReplicated: "已复制",
     IssueReporting: "问题报告",
-    Jobname: "任务名",
     JobName: "任务名",
+    Jobname: "任务名",
     jsmi: "李名*",
     JSmith: "李名*",
     JSON: "JSON",
+    KeyFile: "密钥文件",
     Label: "标识",
     LandingZone: "文件停放区",
     LandingZones: "文件停放区",
@@ -238,10 +283,12 @@
     Largest: "最大",
     LargestFile: "最大文件",
     LargestSize: "最大尺寸",
+    LastMessage: "最后一条信息",
     LastName: "姓",
     LastNDays: "过去若干天以内",
     LastNHours: "最后N小时",
     LastNRows: "最后N行",
+    LastRun: "上次运行",
     LDAPWarning: "<b>LDAP服务错误:</b>用户太多无法显示,请选用过滤器.",
     LegacyForm: "旧式表格",
     LibrariesUsed: "使用程序库",
@@ -256,6 +303,8 @@
     LoadPackageContentHere: "(把文件包内容上载到这里)",
     LoadPackageFromFile: "从文件中上载文件包内容",
     Local: "局部",
+    LocalFileSystemsOnly: "仅本地文件系统",
+    Location: "地点",
     Log: "日志",
     LogFile: "日志文件",
     LoggedInAs: "登录用户",
@@ -267,7 +316,13 @@
     LogicalName: "逻辑文件名",
     Logs: "日志",
     log_analysis_1: "日志_分析_1*",
+    LostFile2: "丢失文件",
+    LostFile: "丢失文件",
+    LostFileMessage: "一个逻辑文件同时在主要和复制地的储存区缺少至少一个文件部分。该逻辑文件还在dali服务器中引用。删除该文件去掉dali服务器中引用及在磁盘中的任何余留部分。",
     Low: "低",
+    MachineInformation: "机器信息",
+    Machines: "机器",
+    Major: "主要的",
     ManagedBy: "管理者",
     ManagedByPlaceholder: "CN=HPCCAdmin,OU=users,OU=hpcc,DC=MyCo,DC=local",
     ManualCopy: "按Ctrl+C键",
@@ -277,11 +332,17 @@
     Mask: "掩码",
     Max: "最大",
     MaximumNumberOfSlaves: "最大从属服务器数",
+    MaxNode: "最大节点",
     MaxRecordLength: "最大记录长度",
+    MaxSize: "最大规格",
     MemberOf: "隶属",
     Members: "成员",
     Message: "信息",
+    Methods: "方法",
     Min: "最小",
+    MinNode: "最小节点",
+    Minor: "次要的",
+    MinSize: "最小规格",
     Missing: "失踪",
     MixedNodeStates: "多种节点状态",
     Modification: "修改",
@@ -308,6 +369,7 @@
     NoErrorFound: "没有发现任何错误\n",
     NoFilterCriteriaSpecified: "没有指定筛选规则",
     None: "无",
+    NoPublishedSize: "没有公布的规格",
     Normal: "正常",
     NoScheduledEvents: "无事件计划",
     NoSplit: "不分割",
@@ -335,6 +397,9 @@
     Operations: "操作",
     Options: "选项",
     OriginalFile: "原文件",
+    OrphanFile2: "孤立文件",
+    OrphanFile: "孤立文件",
+    OrphanMessage: "一个孤立文件会有某些部分存于在磁盘上。然而不可能得到所有部分以建立完整的逻辑文件。它不会引用dali服务器上的文件部分。",
     Outputs: "输出",
     Overview: "覆盖",
     Overwrite: "覆盖",
@@ -347,7 +412,10 @@
     PackagesNoQuery: "与查询程序不匹配的文件包",
     ParameterXML: "参数XML",
     Part: "分块",
+    PartMask: "组成部分掩模",
     Parts: "文件分块",
+    PartsFound: "找到组成部分",
+    PartsLost: "组成部分丢失",
     Password: "密码",
     PasswordExpiration: "密码已失效",
     PasswordExpired: "你的密码已过期。请立刻更新。",
@@ -371,17 +439,25 @@
     PlaceholderLastName: "张",
     Playground: "操作平台",
     PleaseEnterANumber: "请输入一个数字",
+    PleasePickADefinition: "请挑选定义",
+    PleaseSelectADynamicESDLService: "请选择DynamicESDL服务",
+    PleaseSelectAGroupToAddUser: "请选择要将用户添加到的组",
+    PleaseSelectATopologyItem: "请选择目标,服务或机器。",
     PleaseSelectAUserOrGroup: "请选择用户或用户组",
+    PleaseSelectAUserToAdd: "请选择要添加的用户",
     Plugins: "插件",
     Port: "端口",
     Prefix: "前缀",
     PrefixPlaceholder: "文件名{:长度}, 文件大小{:[B|L][1-8]}",
+    Preflight: "预检",
     PreserveCompression: "保留压缩模式",
     Preview: "预览",
+    PrimaryLost: "主要丢失",
     PrimaryMonitoring: "主监控",
     Priority: "优先级",
     Process: "进程",
     ProcessFilter: "进程过滤器",
+    ProcessorInformation: "处理器信息",
     ProgressMessage: "进展信息",
     Properties: "特性",
     Property: "特性",
@@ -406,6 +482,7 @@
     Quote: "引用",
     QuotedTerminator: "引号里的终止符",
     RawTextPage: "原始文本(当前页)",
+    Ready: "就绪",
     ReallyWantToRemove: "确认要删除吗?",
     RecordCount: "记录数量",
     RecordLength: "记录长度",
@@ -414,6 +491,7 @@
     RecordStructurePresent: "记录结构",
     Recover: "恢复",
     RecoverTooltip: "重新启动停滞的工作单元",
+    Recycling: "再循环",
     RedBook: "红皮书",
     Refresh: "更新",
     ReleaseNotes: "版本说明",
@@ -423,12 +501,16 @@
     RemoteDali: "远程Dali",
     RemoteDaliIP: "远程&nbsp;Dali&nbsp;IP&nbsp;地址",
     Remove: "删除",
+    RemoveAttributeQ: "你将要删除此属性。你确定要继续? ",
+    RemoveAtttributes: "删除属性",
+    RemoveSubfiles2: "删除子文件?",
     RemoveSubfiles: "删除子文件",
     RemoveUser: "将把你的用户从用户组里删除:",
     Rename: "更名",
     RenderedSVG: "渲染的SVG",
     RenderSVG: "渲染SVG",
     Replicate: "复制",
+    ReplicatedLost: "复制丢失",
     ReplicateOffset: "复制偏移量",
     RepresentsASubset: "查询结果过多, 只能给出其中一部分结果, 选择合适的查询条件才能给出所有查询结果",
     RequestSchema: "请求格式",
@@ -455,6 +537,7 @@
     Rows: "行",
     RowTag: "行标记",
     RoxieCluster: "Roxie集群",
+    RunningServerStrain: "运行此进程可能需很长时间且会给服务器带来沉重的负载。 你确定要继续?",
     Sample: "样本",
     SampleRequest: "请求的样本",
     SampleResponse: "响应的样本",
@@ -465,14 +548,18 @@
     Security: "安全",
     SelectPackageFile: "选择文件包文件",
     Separators: "分割符",
+    Services: "服务",
     SetBanner: "标语设置",
-    SetTextError: "文本太大无法显示. 请用'帮助'下载",
+    SetTextError: "文本太大无法显示. 请用&lsquo;帮助&rsquo;下载",
     SetToFailed: "设为失误状态",
     Severity: "严重性",
     Show: "显示",
+    ShowProcessesUsingFilter: "使用过滤器显示进程",
     ShowSVG: "显示SVG",
     Size: "大小(长度)",
     Skew: "偏差",
+    SkewNegative: "偏斜(-)",
+    SkewPositive: "偏斜(+)",
     SLA: "SLA",
     SlaveLogs: "从属服务器日志",
     SlaveNumber: "从属服务器号",
@@ -493,20 +580,23 @@
     Spray: "分布",
     Start: "开始",
     Started: "已开始",
+    Starting: "开始",
     State: "状态",
     Stats: "统计",
     Status: "状态",
     Stopped: "已结束",
+    Stopping: "停止",
+    StorageInformation: "存储信息",
     Subgraph: "子图",
     Subgraphs: "子图",
     Submit: "提交",
     Subtype: "子类",
     Summary: "总结",
     SummaryMessage: "总结信息",
-    Superfile: "文件集",
     SuperFile: "文件集",
-    SuperFiles: "文件集",
+    Superfile: "文件集",
     Superfiles: "文件集",
+    SuperFiles: "文件集",
     SuperFilesBelongsTo: "文件集里的文件",
     SuperfilesOnly: "仅含文件集",
     Suspend: "暂停使用",
@@ -524,6 +614,7 @@
     TargetName: "目标文件名",
     TargetNamePlaceholder: "某::逻辑文件::名",
     TargetRowTagRequired: "必须提供目标行标识",
+    Targets: "目标",
     TargetScope: "目标范围",
     TargetWuid: "系统/工作单元标识",
     Terminators: "终止符",
@@ -547,12 +638,16 @@
     title_AvailablePermissions: "可选权限",
     title_ClusterInfo: "组",
     title_CodeGeneratorPermissions: "代码生成权限",
+    title_DESDL: "Dynamic ESDL",
     title_DFUQuery: "逻辑文件",
     title_DFUWUDetails: "DFU工作单元",
+    title_DirectoriesFor: "目录为",
     title_DiskUsage: "硬盘使用率",
     title_ECLPlayground: "ECL操作平台",
+    title_ErrorsWarnings: "错误/警告对",
     title_EventScheduleWorkunit: "事件计划",
     title_FileScopeDefaultPermissions: "文件默认权限",
+    title_FoundFilesFor: "找到文件为",
     title_GetDFUWorkunits: "DFU工作单元",
     title_Graph: "图形",
     title_GraphPage: "标题",
@@ -568,10 +663,13 @@
     title_LFDetails: "逻辑文件的详细说明",
     title_LibrariesUsed: "使用的库文件",
     title_Log: "日志文件",
+    title_LostFilesFor: "丢失文件为",
     title_LZBrowse: "文件停放区",
     title_MemberOf: "隶属",
     title_Members: "成员",
+    title_OrphanFilesFor: "孤立文件为",
     title_Permissions: "权限",
+    title_PreflightResults: "预检结果",
     title_QuerySetDetails: "查询程序的详细说明",
     title_QuerySetErrors: "错误",
     title_QuerySetLogicalFiles: "查询程序逻辑文件",
@@ -598,6 +696,7 @@
     Topology: "系统结构",
     ToSizes: "最大文件长度",
     TotalClusterTime: "集群服务器累积时间",
+    TotalParts: "所有部分",
     TotalSize: "总尺寸",
     TotalThorTime: "在Thor上的时间",
     TransitionGuide: "转换指南",
@@ -617,8 +716,8 @@
     User: "用户",
     UserDetails: "用户详细内容",
     UserID: "用户标识",
-    UserName: "用户名",
     Username: "用户名",
+    UserName: "用户名",
     UserPermissions: "用户使用权限",
     Users: "用户",
     UseSingleConnection: "使用单一联接",
@@ -637,6 +736,10 @@
     ViewByScope: "按范围显示",
     Views: "显示",
     Visualize: "可视化",
+    WarnIfAvailableDiskSpaceIsUnder: "警告如果可用磁盘低于",
+    WarnIfAvailableMemoryIsUnder: "警告如果可用内存低于",
+    WarnIfCPUUsageIsOver: "警告如果CPU使用率超过",
+    Warning: "警告",
     Warnings: "警告",
     WarnOldGraphControl: "警告: 旧版图形控制器",
     What: "什么",
@@ -657,6 +760,8 @@
     XML: "XML",
     XRef: "XRef",
     Year: "年",
+    YouAreAboutToDeleteBinding: "你将要删除连接。你确定要继续? ",
+    YouAreAboutToRemoveUserFrom: "您即将从此组中删除用户,您要继续吗?",
     YourBrowserMayNotSupport: "你的网络浏览器不支持这个大小的文件",
     ZAP: "Z.A.P",
     ZeroLogicalFilesCheckFilter: "无逻辑文件(请检查筛选规则)",

+ 20 - 90
esp/src/eclwatch/ws_access.js

@@ -38,53 +38,7 @@ define([
         responseTotalQualifier: "UserQueryResponse.TotalUsers",
         idProperty: "username",
         startProperty: "PageStartFrom",
-        countProperty: "PageSize",
-
-        constructor: function () {
-            this.idProperty = "username";
-        },
-
-        put: function (object, options) {
-            var retVal = this.inherited(arguments);
-            self.UserGroupEdit({
-                request: {
-                    username: object.username,
-                    action: object.isMember ? "add" : "delete",
-                    groupnames_i1: object.__hpcc_groupname
-                }
-            });
-            return retVal;
-        },
-
-        refreshUsers: function (query) {
-            var context = this;
-            return self.Users({
-                request: query
-            }).then(function (response) {
-                if (lang.exists("UserResponse.Users.User", response)) {
-                    return response.UserResponse.Users.User;
-                }
-                return [];
-            });
-        },
-
-        refreshGroupUsers: function (query) {
-            if (!this.groupname) {
-                var deferred = new Deferred;
-                deferred.resolve([]);
-                return deferred.promise;
-            }
-            return self.GroupEdit({
-                request: {
-                    groupname: this.groupname
-                }
-            }).then(function (response) {
-                if (lang.exists("GroupEditResponse.Users.User", response)) {
-                    return response.GroupEditResponse.Users.User;
-                }
-                return [];
-            });
-        }
+        countProperty: "PageSize"
     });
 
     var GroupsStore = declare([ESPRequest.Store], {
@@ -94,47 +48,7 @@ define([
         responseTotalQualifier: "GroupQueryResponse.TotalGroups",
         idProperty: "name",
         startProperty: "PageStartFrom",
-        countProperty: "PageSize",
-
-        constructor: function () {
-            this.idProperty = "name";
-            this.startProperty = "PageStartFrom";
-            this.countProperty = "PageSize";
-        },
-
-        put: function (object, options) {
-            var retVal = this.inherited(arguments);
-            self.UserGroupEdit({
-                request: {
-                    username: object.__hpcc_username,
-                    action: object.isMember ? "add" : "delete",
-                    groupnames_i1: object.name
-                }
-            });
-            return retVal;
-        },
-
-        refreshGroups: function () {
-            return self.Groups().then(function (response) {
-                if (lang.exists("GroupResponse.Groups.Group", response)) {
-                    return response.GroupResponse.Groups.Group;
-                }
-                return [];
-            });
-        },
-
-        refreshUserGroups: function (query) {
-            return self.UserEdit({
-                request: {
-                    username: this.username
-                }
-            }).then(function (response) {
-                if (lang.exists("UserEditResponse.Groups.Group", response)) {
-                    return response.UserEditResponse.Groups.Group;
-                }
-                return [];
-            });
-        }
+        countProperty: "PageSize"
     });
 
     var CONCAT_SYMBOL = ":";
@@ -561,7 +475,7 @@ define([
         },
 
         Users: function (params) {
-            return this._doCall("Users", params);
+            return this._doCall("UserQuery", params);
         },
 
         UserAction: function (params) {
@@ -592,6 +506,10 @@ define([
             return this._doCall("UserGroupEdit", params);
         },
 
+        UserGroupEditInput: function (params) {
+            return this._doCall("UserGroupEditInput", params);
+        },
+
         GroupAdd: function (params) {
             return this._doCall("GroupAdd", params);
         },
@@ -604,8 +522,20 @@ define([
             return this._doCall("GroupEdit", params);
         },
 
+        GroupMemberEdit: function (params) {
+            return this._doCall("GroupMemberEdit", params);
+        },
+
         Groups: function (params) {
-            return this._doCall("Groups", params);
+            return this._doCall("GroupQuery", params);
+        },
+
+        Members: function (params) {
+            return this._doCall("GroupEdit", params);
+        },
+
+        GroupMemberEditInput: function (params) {
+            return this._doCall("GroupMemberEditInput", params);
         },
 
         Permissions: function (params) {

+ 1 - 0
plugins/cassandra/CMakeLists.txt

@@ -83,6 +83,7 @@ if(USE_CASSANDRA)
     install(
       FILES ${PROJECT_BINARY_DIR}/libuv.so.0.10
       DESTINATION ${LIB_DIR}
+      PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
       COMPONENT Runtime)
   endif()
 

+ 1 - 1
plugins/couchbase/couchbaseembed.cpp

@@ -39,7 +39,7 @@ static const char *g_version = "Couchbase Embed Helper 1.0.0";
 static const char *g_compatibleVersions[] = { g_version, nullptr };
 static const NullFieldProcessor NULLFIELD(NULL);
 
-COUCHBASEEMBED_PLUGIN_API bool getECLPluginDefinition(ECLPluginDefinitionBlock *pb)
+extern "C" COUCHBASEEMBED_PLUGIN_API bool getECLPluginDefinition(ECLPluginDefinitionBlock *pb)
 {
     if (pb->size == sizeof(ECLPluginDefinitionBlockEx))
     {

+ 2 - 1
roxie/ccd/ccdserver.cpp

@@ -10870,7 +10870,8 @@ public:
     }
     virtual StrandProcessor *createStrandProcessor(IEngineRowStream *instream)
     {
-        DBGLOG("Create aggregate strand processor %u", strandOptions.numStrands);
+        if (traceLevel > 4)
+            DBGLOG("Create aggregate strand processor %u", strandOptions.numStrands);
         return new AggregateProcessor(*this, instream, (IHThorAggregateArg &) basehelper, isInputGrouped && !combineStreams, abortEarly);
     }
     virtual StrandProcessor *createStrandSourceProcessor(bool inputOrdered) { throwUnexpected(); }

+ 19 - 12
thorlcr/activities/csvread/thcsvrslave.cpp

@@ -104,17 +104,20 @@ class CCsvReadSlaveActivity : public CDiskReadSlaveActivityBase
             CDiskPartHandlerBase::open();
             readFinished = false;
 
+            OwnedIFileIO partFileIO;
+            if (compressed)
+            {
+                partFileIO.setown(createCompressedFileReader(iFile, activity.eexp));
+                if (!partFileIO)
+                    throw MakeActivityException(&activity, 0, "Failed to open block compressed file '%s'", filename.get());
+                checkFileCrc = false;
+            }
+            else
+                partFileIO.setown(iFile->open(IFOread));
+
             {
                 CriticalBlock block(statsCs);
-                if (compressed)
-                {
-                    iFileIO.setown(createCompressedFileReader(iFile, activity.eexp));
-                    if (!iFileIO)
-                        throw MakeActivityException(&activity, 0, "Failed to open block compressed file '%s'", filename.get());
-                    checkFileCrc = false;
-                }
-                else
-                    iFileIO.setown(iFile->open(IFOread));
+                iFileIO.setown(partFileIO.getClear());
             }
 
             inputStream.setown(createFileSerialStream(iFileIO));
@@ -146,9 +149,13 @@ class CCsvReadSlaveActivity : public CDiskReadSlaveActivityBase
         }
         virtual void close(CRC32 &fileCRC)
         {
-            CriticalBlock block(statsCs);
-            mergeStats(fileStats, iFileIO);
-            iFileIO.clear();
+            Owned<IFileIO> partFileIO;
+            {
+                CriticalBlock block(statsCs);
+                partFileIO.setown(iFileIO.getClear());
+            }
+            mergeStats(fileStats, partFileIO);
+            partFileIO.clear();
             inputStream.clear();
             fileCRC = inputCRC;
         }

+ 19 - 9
thorlcr/activities/diskread/thdiskreadslave.cpp

@@ -226,12 +226,12 @@ void CDiskRecordPartHandler::open()
         rwFlags |= rw_grouped;
 
     {
-        CriticalBlock block(statsCs);
+        Owned<IExtRowStream> partStream;
         if (compressed)
         {
             rwFlags |= rw_compress;
-            in.setown(createRowStream(iFile, activity.queryDiskRowInterfaces(), rwFlags, activity.eexp));
-            if (!in.get())
+            partStream.setown(createRowStream(iFile, activity.queryDiskRowInterfaces(), rwFlags, activity.eexp));
+            if (!partStream.get())
             {
                 if (!blockCompressed)
                     throw MakeStringException(-1,"Unsupported compressed file format: %s", filename.get());
@@ -240,7 +240,12 @@ void CDiskRecordPartHandler::open()
             }
         }
         else
-            in.setown(createRowStream(iFile, activity.queryDiskRowInterfaces(), rwFlags));
+            partStream.setown(createRowStream(iFile, activity.queryDiskRowInterfaces(), rwFlags));
+
+        {
+            CriticalBlock block(statsCs);
+            in.setown(partStream.getClear());
+        }
     }
 
     if (!in)
@@ -263,11 +268,16 @@ void CDiskRecordPartHandler::open()
 
 void CDiskRecordPartHandler::close(CRC32 &fileCRC)
 {
-    CriticalBlock block(statsCs);
-    if (in) 
-        in->stop(&fileCRC);
-    mergeStats(fileStats, in);
-    in.clear();
+    Owned<IExtRowStream> partStream;
+    {
+        CriticalBlock block(statsCs);
+        partStream.setown(in.getClear());
+    }
+    if (partStream)
+    {
+        partStream->stop(&fileCRC);
+        mergeStats(fileStats, partStream);
+    }
 }
 
 /////////////////////////////////////////////////

+ 3 - 1
thorlcr/activities/thdiskbaseslave.cpp

@@ -363,9 +363,11 @@ void CDiskWriteSlaveActivityBase::open()
     if (diskHelperBase->getFlags() & TDXtemporary)
         twFlags |= TW_Temporary;
 
+    Owned<IFileIO> partOutputIO = createMultipleWrite(this, *partDesc, diskRowMinSz, twFlags, compress, ecomp, this, &abortSoon, (external&&!query) ? &tempExternalName : NULL);
+
     {
         CriticalBlock block(statsCs);
-        outputIO.setown(createMultipleWrite(this, *partDesc, diskRowMinSz, twFlags, compress, ecomp, this, &abortSoon, (external&&!query) ? &tempExternalName : NULL));
+        outputIO.setown(partOutputIO.getClear());
     }
 
     if (compress)

+ 18 - 12
thorlcr/activities/xmlread/thxmlreadslave.cpp

@@ -68,17 +68,20 @@ class CXmlReadSlaveActivity : public CDiskReadSlaveActivityBase
         {
             CDiskPartHandlerBase::open();
 
+            OwnedIFileIO partFileIO;
+            if (compressed)
+            {
+                partFileIO.setown(createCompressedFileReader(iFile, activity.eexp));
+                if (!partFileIO)
+                    throw MakeActivityException(&activity, 0, "Failed to open block compressed file '%s'", filename.get());
+                checkFileCrc = false;
+            }
+            else
+                partFileIO.setown(iFile->open(IFOread));
+
             {
                 CriticalBlock block(statsCs);
-                if (compressed)
-                {
-                    iFileIO.setown(createCompressedFileReader(iFile, activity.eexp));
-                    if (!iFileIO)
-                        throw MakeActivityException(&activity, 0, "Failed to open block compressed file '%s'", filename.get());
-                    checkFileCrc = false;
-                }
-                else
-                    iFileIO.setown(iFile->open(IFOread));
+                iFileIO.setown(partFileIO.getClear());
             }
 
             Owned<IIOStream> stream = createIOStream(iFileIO);
@@ -96,7 +99,6 @@ class CXmlReadSlaveActivity : public CDiskReadSlaveActivityBase
         }
         virtual void close(CRC32 &fileCRC)
         {
-            CriticalBlock block(statsCs);
             xmlParser.clear();
             inputIOstream.clear();
             if (checkFileCrc)
@@ -104,8 +106,12 @@ class CXmlReadSlaveActivity : public CDiskReadSlaveActivityBase
                 fileCRC.reset(~crcStream->queryCrc()); // MORE should prob. change stream to use CRC32
                 crcStream.clear();
             }
-            mergeStats(fileStats, iFileIO);
-            iFileIO.clear();
+            Owned<IFileIO> partFileIO;
+            {
+                CriticalBlock block(statsCs);
+                partFileIO.setown(iFileIO.getClear());
+            }
+            mergeStats(fileStats, partFileIO);
         }
 
         const void *nextRow()