luci-base: validation.js: rework translation labels
authorJo-Philipp Wich <jo@mein.io>
Thu, 13 Jun 2019 13:16:12 +0000 (15:16 +0200)
committerJo-Philipp Wich <jo@mein.io>
Sun, 7 Jul 2019 13:36:26 +0000 (15:36 +0200)
Rework validation error translations for compount operators such
as list() or neg() to not rely that much on specific native language
grammar.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
modules/luci-base/htdocs/luci-static/resources/validation.js

index f0c89d804fff5572a555d265fbcdc3afeb298582..621e5b8bd50f1799b117edff2c9546fe143bf1eb 100644 (file)
@@ -56,7 +56,7 @@ var Validator = L.Class.extend({
                        valid = this.vstack[0].apply(this, this.vstack[1]);
 
                if (valid !== true) {
-                       this.field.setAttribute('data-tooltip', _('Expecting %s').format(this.error));
+                       this.field.setAttribute('data-tooltip', _('Expecting: %s').format(this.error));
                        this.field.setAttribute('data-tooltip-style', 'error');
                        this.field.dispatchEvent(new CustomEvent('validation-failure', { bubbles: true }));
                        return false;
@@ -453,7 +453,9 @@ var ValidatorFactory = L.Class.extend({
                                }
                        }
 
-                       return this.assert(false, _('one of:\n - %s'.format(errors.join('\n - '))));
+                       var t = _('One of the following: %s');
+
+                       return this.assert(false, t.format('\n - ' + errors.join('\n - ')));
                },
 
                and: function() {
@@ -472,7 +474,12 @@ var ValidatorFactory = L.Class.extend({
                },
 
                neg: function() {
-                       return this.apply('or', this.value.replace(/^[ \t]*![ \t]*/, ''), arguments);
+                       this.value = this.value.replace(/^[ \t]*![ \t]*/, '');
+
+                       if (arguments[0].apply(this, arguments[1]))
+                               return this.assert(true);
+
+                       return this.assert(false, _('Potential negation of: %s').format(this.error));
                },
 
                list: function(subvalidator, subargs) {