Selaa lähdekoodia

Merge branch 'feuerball11-feature-advanced-filter' into devel

Lauri Ojansivu 7 vuotta sitten
vanhempi
sitoutus
dbfdba75f9

+ 8 - 0
CHANGELOG.md

@@ -1,3 +1,11 @@
+# Upcoming Wekan release
+
+This release adds the following new features:
+
+* [Advanced Filter for Custom Fields](https://github.com/wekan/wekan/pull/1646).
+
+Thanks to GitHub users feuerball11 and xet7 for their contributions.
+
 # v0.98 2018-05-19 Wekan release
 
 This release adds the following new features:

+ 10 - 0
client/components/cards/minicard.jade

@@ -20,10 +20,20 @@ template(name="minicard")
         .date
           +cardSpentTime
 
+    .minicard-custom-fields
+      each customFieldsWD
+        if definition.showOnCard
+          .minicard-custom-field
+            .minicard-custom-field-item
+              = definition.name
+            .minicard-custom-field-item
+              = value
+
     if members
       .minicard-members.js-minicard-members
         each members
           +userAvatar(userId=this)
+
     .badges
       if comments.count
         .badge(title="{{_ 'card-comments-title' comments.count }}")

+ 7 - 0
client/components/cards/minicard.styl

@@ -77,6 +77,13 @@
       height: @width
       border-radius: 2px
       margin-left: 3px
+  .minicard-custom-fields
+    display:block;
+  .minicard-custom-field
+    display:flex;
+  .minicard-custom-field-item
+    max-width:50%;
+    flex-grow:1;
   .minicard-title
     p:last-child
       margin-bottom: 0

+ 4 - 0
client/components/sidebar/sidebarFilters.jade

@@ -55,6 +55,10 @@ template(name="filterSidebar")
             {{ name }}
           if Filter.customFields.isSelected _id
               i.fa.fa-check
+  hr
+  span {{_ 'advanced-filter-label'}}
+  input.js-field-advanced-filter(type="text")
+  span {{_ 'advanced-filter-description'}}
   if Filter.isActive
     hr
     a.sidebar-btn.js-clear-all

+ 5 - 0
client/components/sidebar/sidebarFilters.js

@@ -16,6 +16,11 @@ BlazeComponent.extendComponent({
         Filter.customFields.toggle(this.currentData()._id);
         Filter.resetExceptions();
       },
+      'change .js-field-advanced-filter'(evt) {
+        evt.preventDefault();
+        Filter.advanced.set(this.find('.js-field-advanced-filter').value.trim());
+        Filter.resetExceptions();
+      },
       'click .js-clear-all'(evt) {
         evt.preventDefault();
         Filter.reset();

+ 308 - 5
client/lib/filter.js

@@ -79,6 +79,302 @@ class SetFilter {
   }
 }
 
+
+// Advanced filter forms a MongoSelector from a users String.
+// Build by: Ignatz 19.05.2018 (github feuerball11)
+class AdvancedFilter {
+  constructor() {
+    this._dep = new Tracker.Dependency();
+    this._filter = '';
+    this._lastValide={};
+  }
+
+  set(str)
+  {
+    this._filter = str;
+    this._dep.changed();
+  }
+
+  reset() {
+    this._filter = '';
+    this._lastValide={};
+    this._dep.changed();
+  }
+
+  _isActive() {
+    this._dep.depend();
+    return this._filter !== '';
+  }
+
+  _filterToCommands(){
+    const commands = [];
+    let current = '';
+    let string = false;
+    let wasString = false;
+    let ignore = false;
+    for (let i = 0; i < this._filter.length; i++)
+    {
+      const char = this._filter.charAt(i);
+      if (ignore)
+      {
+        ignore = false;
+        continue;
+      }
+      if (char === '\'')
+      {
+        string = !string;
+        if (string) wasString = true;
+        continue;
+      }
+      if (char === '\\')
+      {
+        ignore = true;
+        continue;
+      }
+      if (char === ' ' && !string)
+      {
+        commands.push({'cmd':current, 'string':wasString});
+        wasString = false;
+        current = '';
+        continue;
+      }
+      current += char;
+    }
+    if (current !== '')
+    {
+      commands.push({'cmd':current, 'string':wasString});
+    }
+    return commands;
+  }
+
+  _fieldNameToId(field)
+  {
+    const found = CustomFields.findOne({'name':field});
+    return found._id;
+  }
+
+  _arrayToSelector(commands)
+  {
+    try {
+      //let changed = false;
+      this._processSubCommands(commands);
+    }
+    catch (e){return this._lastValide;}
+    this._lastValide = {$or: commands};
+    return {$or: commands};
+  }
+
+  _processSubCommands(commands)
+  {
+    const subcommands = [];
+    let level = 0;
+    let start = -1;
+    for (let i = 0; i < commands.length; i++)
+    {
+      if (commands[i].cmd)
+      {
+        switch (commands[i].cmd)
+        {
+        case '(':
+        {
+          level++;
+          if (start === -1) start = i;
+          continue;
+        }
+        case ')':
+        {
+          level--;
+          commands.splice(i, 1);
+          i--;
+          continue;
+        }
+        default:
+        {
+          if (level > 0)
+          {
+            subcommands.push(commands[i]);
+            commands.splice(i, 1);
+            i--;
+            continue;
+          }
+        }
+        }
+      }
+    }
+    if (start !== -1)
+    {
+      this._processSubCommands(subcommands);
+      if (subcommands.length === 1)
+        commands.splice(start, 0, subcommands[0]);
+      else
+        commands.splice(start, 0, subcommands);
+    }
+    this._processConditions(commands);
+    this._processLogicalOperators(commands);
+  }
+
+  _processConditions(commands)
+  {
+    for (let i = 0; i < commands.length; i++)
+    {
+      if (!commands[i].string && commands[i].cmd)
+      {
+        switch (commands[i].cmd)
+        {
+        case '=':
+        case '==':
+        case '===':
+        {
+          const field = commands[i-1].cmd;
+          const str = commands[i+1].cmd;
+          commands[i] = {'customFields._id':this._fieldNameToId(field), 'customFields.value':str};
+          commands.splice(i-1, 1);
+          commands.splice(i, 1);
+          //changed = true;
+          i--;
+          break;
+        }
+        case '!=':
+        case '!==':
+        {
+          const field = commands[i-1].cmd;
+          const str = commands[i+1].cmd;
+          commands[i] = {'customFields._id':this._fieldNameToId(field), 'customFields.value': { $not: str }};
+          commands.splice(i-1, 1);
+          commands.splice(i, 1);
+          //changed = true;
+          i--;
+          break;
+        }
+        case '>':
+        case 'gt':
+        case 'Gt':
+        case 'GT':
+        {
+          const field = commands[i-1].cmd;
+          const str = commands[i+1].cmd;
+          commands[i] = {'customFields._id':this._fieldNameToId(field), 'customFields.value': { $gt: str } };
+          commands.splice(i-1, 1);
+          commands.splice(i, 1);
+          //changed = true;
+          i--;
+          break;
+        }
+        case '>=':
+        case '>==':
+        case 'gte':
+        case 'Gte':
+        case 'GTE':
+        {
+          const field = commands[i-1].cmd;
+          const str = commands[i+1].cmd;
+          commands[i] = {'customFields._id':this._fieldNameToId(field), 'customFields.value': { $gte: str } };
+          commands.splice(i-1, 1);
+          commands.splice(i, 1);
+          //changed = true;
+          i--;
+          break;
+        }
+        case '<':
+        case 'lt':
+        case 'Lt':
+        case 'LT':
+        {
+          const field = commands[i-1].cmd;
+          const str = commands[i+1].cmd;
+          commands[i] = {'customFields._id':this._fieldNameToId(field), 'customFields.value': { $lt: str } };
+          commands.splice(i-1, 1);
+          commands.splice(i, 1);
+          //changed = true;
+          i--;
+          break;
+        }
+        case '<=':
+        case '<==':
+        case 'lte':
+        case 'Lte':
+        case 'LTE':
+        {
+          const field = commands[i-1].cmd;
+          const str = commands[i+1].cmd;
+          commands[i] = {'customFields._id':this._fieldNameToId(field), 'customFields.value': { $lte: str } };
+          commands.splice(i-1, 1);
+          commands.splice(i, 1);
+          //changed = true;
+          i--;
+          break;
+        }
+
+        }
+      }
+    }
+  }
+
+  _processLogicalOperators(commands)
+  {
+    for (let i = 0; i < commands.length; i++)
+    {
+      if (!commands[i].string && commands[i].cmd)
+      {
+        switch (commands[i].cmd)
+        {
+        case 'or':
+        case 'Or':
+        case 'OR':
+        case '|':
+        case '||':
+        {
+          const op1 = commands[i-1];
+          const op2 = commands[i+1];
+          commands[i] = {$or: [op1, op2]};
+          commands.splice(i-1, 1);
+          commands.splice(i, 1);
+          //changed = true;
+          i--;
+          break;
+        }
+        case 'and':
+        case 'And':
+        case 'AND':
+        case '&':
+        case '&&':
+        {
+          const op1 = commands[i-1];
+          const op2 = commands[i+1];
+          commands[i] = {$and: [op1, op2]};
+          commands.splice(i-1, 1);
+          commands.splice(i, 1);
+          //changed = true;
+          i--;
+          break;
+        }
+
+        case 'not':
+        case 'Not':
+        case 'NOT':
+        case '!':
+        {
+          const op1 = commands[i+1];
+          commands[i] = {$not: op1};
+          commands.splice(i+1, 1);
+          //changed = true;
+          i--;
+          break;
+        }
+
+        }
+      }
+    }
+  }
+
+  _getMongoSelector() {
+    this._dep.depend();
+    const commands = this._filterToCommands();
+    return this._arrayToSelector(commands);
+  }
+
+}
+
 // The global Filter object.
 // XXX It would be possible to re-write this object more elegantly, and removing
 // the need to provide a list of `_fields`. We also should move methods into the
@@ -90,6 +386,7 @@ Filter = {
   labelIds: new SetFilter(),
   members: new SetFilter(),
   customFields: new SetFilter('_id'),
+  advanced: new AdvancedFilter(),
 
   _fields: ['labelIds', 'members', 'customFields'],
 
@@ -102,7 +399,7 @@ Filter = {
   isActive() {
     return _.any(this._fields, (fieldName) => {
       return this[fieldName]._isActive();
-    });
+    }) || this.advanced._isActive();
   },
 
   _getMongoSelector() {
@@ -133,10 +430,15 @@ Filter = {
     const exceptionsSelector = {_id: {$in: this._exceptions}};
     this._exceptionsDep.depend();
 
-    if (includeEmptySelectors)
-      return {$or: [filterSelector, exceptionsSelector, emptySelector]};
-    else
-      return {$or: [filterSelector, exceptionsSelector]};
+    const selectors = [exceptionsSelector];
+
+    if (_.any(this._fields, (fieldName) => {
+      return this[fieldName]._isActive();
+    })) selectors.push(filterSelector);
+    if (includeEmptySelectors) selectors.push(emptySelector);
+    if (this.advanced._isActive()) selectors.push(this.advanced._getMongoSelector());
+
+    return {$or: selectors};
   },
 
   mongoSelector(additionalSelector) {
@@ -152,6 +454,7 @@ Filter = {
       const filter = this[fieldName];
       filter.reset();
     });
+    this.advanced.reset();
     this.resetExceptions();
   },
 

+ 2 - 0
i18n/ar.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "التصفية تشتغل",
     "filter-on-desc": "أنت بصدد تصفية بطاقات هذه اللوحة. اضغط هنا لتعديل التصفية.",
     "filter-to-selection": "تصفية بالتحديد",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "الإسم الكامل",
     "header-logo-title": "الرجوع إلى صفحة اللوحات",
     "hide-system-messages": "إخفاء رسائل النظام",

+ 2 - 0
i18n/bg.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Има приложени филтри",
     "filter-on-desc": "В момента филтрирате картите в тази дъска. Моля, натиснете тук, за да промените филтъра.",
     "filter-to-selection": "Филтрирай избраните",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Име",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Скриване на системните съобщения",

+ 2 - 0
i18n/br.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter is on",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Full Name",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Hide system messages",

+ 2 - 0
i18n/ca.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filtra per",
     "filter-on-desc": "Estau filtrant fitxes en aquest tauler. Feu clic aquí per editar el filtre.",
     "filter-to-selection": "Filtra selecció",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Nom complet",
     "header-logo-title": "Torna a la teva pàgina de taulers",
     "hide-system-messages": "Oculta missatges del sistema",

+ 2 - 0
i18n/cs.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filtr je zapnut",
     "filter-on-desc": "Filtrujete karty tohoto tabla. Pro úpravu filtru klikni sem.",
     "filter-to-selection": "Filtrovat výběr",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Celé jméno",
     "header-logo-title": "Jit zpět na stránku s tably.",
     "hide-system-messages": "Skrýt systémové zprávy",

+ 2 - 0
i18n/de.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter ist aktiv",
     "filter-on-desc": "Sie filtern die Karten in diesem Board. Klicken Sie, um den Filter zu bearbeiten.",
     "filter-to-selection": "Ergebnisse auswählen",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Vollständiger Name",
     "header-logo-title": "Zurück zur Board Seite.",
     "hide-system-messages": "Systemmeldungen ausblenden",

+ 2 - 0
i18n/el.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter is on",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Πλήρες Όνομα",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Hide system messages",

+ 2 - 0
i18n/en-GB.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter is on",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Full Name",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Hide system messages",

+ 2 - 0
i18n/en.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter is on",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Full Name",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Hide system messages",

+ 2 - 0
i18n/eo.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter is on",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Full Name",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Hide system messages",

+ 2 - 0
i18n/es-AR.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "El filtro está activado",
     "filter-on-desc": "Estás filtrando cartas en este tablero. Clickeá acá para editar el filtro.",
     "filter-to-selection": "Filtrar en la selección",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Nombre Completo",
     "header-logo-title": "Retroceder a tu página de tableros.",
     "hide-system-messages": "Esconder mensajes del sistema",

+ 2 - 0
i18n/es.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filtro activado",
     "filter-on-desc": "Estás filtrando tarjetas en este tablero. Haz clic aquí para editar el filtro.",
     "filter-to-selection": "Filtrar la selección",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Nombre completo",
     "header-logo-title": "Volver a tu página de tableros",
     "hide-system-messages": "Ocultar las notificaciones de actividad",

+ 2 - 0
i18n/eu.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Iragazkia gaituta dago",
     "filter-on-desc": "Arbel honetako txartela iragazten ari zara. Egin klik hemen iragazkia editatzeko.",
     "filter-to-selection": "Iragazketa aukerara",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Izen abizenak",
     "header-logo-title": "Itzuli zure arbelen orrira.",
     "hide-system-messages": "Ezkutatu sistemako mezuak",

+ 2 - 0
i18n/fa.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "صافی ـFilterـ فعال است",
     "filter-on-desc": "شما صافی ـFilterـ برای کارتهای تخته را روشن کرده اید. جهت ویرایش کلیک نمایید.",
     "filter-to-selection": "صافی ـFilterـ برای موارد انتخابی",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "نام و نام خانوادگی",
     "header-logo-title": "بازگشت به صفحه تخته.",
     "hide-system-messages": "عدم نمایش پیامهای سیستمی",

+ 2 - 0
i18n/fi.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Suodatus on päällä",
     "filter-on-desc": "Suodatat kortteja tällä taululla. Klikkaa tästä muokataksesi suodatinta.",
     "filter-to-selection": "Suodata valintaan",
+    "advanced-filter-label": "Edistynyt suodatin",
+    "advanced-filter-description": "Edistynyt suodatin mahdollistaa merkkijonon, joka sisältää seuraavat operaattorit: ==! = <=> = && || () Operaattorien välissä käytetään välilyöntiä. Voit suodattaa kaikki mukautetut kentät kirjoittamalla niiden nimet ja arvot. Esimerkiksi: Field1 == Value1. Huomaa: Jos kentillä tai arvoilla on välilyöntejä, sinun on sijoitettava ne yksittäisiin lainausmerkkeihin. Esimerkki: 'Kenttä 1' == 'Arvo 1'. Voit myös yhdistää useita ehtoja. Esimerkiksi: F1 == V1 || F1 = V2. Yleensä kaikki operaattorit tulkitaan vasemmalta oikealle. Voit muuttaa järjestystä asettamalla sulkuja. Esimerkiksi: F1 == V1 ja (F2 == V2 || F2 == V3)",
     "fullname": "Koko nimi",
     "header-logo-title": "Palaa taulut sivullesi.",
     "hide-system-messages": "Piilota järjestelmäviestit",

+ 3 - 1
i18n/fr.i18n.json

@@ -242,10 +242,12 @@
     "filter-clear": "Supprimer les filtres",
     "filter-no-label": "Aucune étiquette",
     "filter-no-member": "Aucun membre",
-    "filter-no-custom-fields": "No Custom Fields",
+    "filter-no-custom-fields": "Pas de champs personnalisés",
     "filter-on": "Le filtre est actif",
     "filter-on-desc": "Vous êtes en train de filtrer les cartes sur ce tableau. Cliquez ici pour modifier les filtres.",
     "filter-to-selection": "Filtre vers la sélection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Nom complet",
     "header-logo-title": "Retourner à la page des tableaux",
     "hide-system-messages": "Masquer les messages système",

+ 2 - 0
i18n/gl.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "O filtro está activado",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Nome completo",
     "header-logo-title": "Retornar á páxina dos seus taboleiros.",
     "hide-system-messages": "Agochar as mensaxes do sistema",

+ 10 - 8
i18n/he.i18n.json

@@ -7,7 +7,7 @@
     "act-addComment": "התקבלה תגובה על הכרטיס __card__:‏ __comment__",
     "act-createBoard": "הלוח __board__ נוצר",
     "act-createCard": "הכרטיס __card__ התווסף לרשימה __list__",
-    "act-createCustomField": "צור שדה מותאם אישית __customField__",
+    "act-createCustomField": "נוצר שדה בהתאמה אישית __customField__",
     "act-createList": "הרשימה __list__ התווספה ללוח __board__",
     "act-addBoardMember": "המשתמש __member__ נוסף ללוח __board__",
     "act-archivedBoard": "__board__ הועבר לסל המחזור",
@@ -175,13 +175,13 @@
     "createCustomField": "יצירת שדה",
     "createCustomFieldPopup-title": "יצירת שדה",
     "current": "נוכחי",
-    "custom-field-delete-pop": "פעולה זו תסיר את השדה המותאם אישית מכל הכרטיסים ותמחק את ההיסטוריה שלו. לא יהיה אפשר לשחזר את המידע לאחר מכן",
-    "custom-field-checkbox": "צ'קבוקס",
+    "custom-field-delete-pop": "אין אפשרות לבטל את הפעולה. הפעולה תסיר את השדה שהותאם אישית מכל הכרטיסים ותשמיד את ההיסטוריה שלו.",
+    "custom-field-checkbox": "תיבת סימון",
     "custom-field-date": "תאריך",
     "custom-field-dropdown": "רשימה נגללת",
     "custom-field-dropdown-none": "(ללא)",
-    "custom-field-dropdown-options": "List Options",
-    "custom-field-dropdown-options-placeholder": "לחץ אנטר כדי להוסיף עוד אפשרויות",
+    "custom-field-dropdown-options": "אפשרויות רשימה",
+    "custom-field-dropdown-options-placeholder": "יש ללחוץ על enter כדי להוסיף עוד אפשרויות",
     "custom-field-dropdown-unknown": "(לא ידוע)",
     "custom-field-number": "מספר",
     "custom-field-text": "טקסט",
@@ -190,7 +190,7 @@
     "decline": "סירוב",
     "default-avatar": "תמונת משתמש כבררת מחדל",
     "delete": "מחיקה",
-    "deleteCustomFieldPopup-title": "האם למחוק שדה מותאם אישית?",
+    "deleteCustomFieldPopup-title": "למחוק שדה מותאם אישית?",
     "deleteLabelPopup-title": "למחוק תווית?",
     "description": "תיאור",
     "disambiguateMultiLabelPopup-title": "הבהרת פעולת תווית",
@@ -205,7 +205,7 @@
     "soft-wip-limit": "מגבלת „בעבודה” רכה",
     "editCardStartDatePopup-title": "שינוי מועד התחלה",
     "editCardDueDatePopup-title": "שינוי מועד סיום",
-    "editCustomFieldPopup-title": "ערוך את השדה",
+    "editCustomFieldPopup-title": "עריכת שדה",
     "editCardSpentTimePopup-title": "שינוי הזמן שהושקע",
     "editLabelPopup-title": "שינוי תווית",
     "editNotificationPopup-title": "שינוי דיווח",
@@ -246,6 +246,8 @@
     "filter-on": "המסנן פועל",
     "filter-on-desc": "מסנן כרטיסים פעיל בלוח זה. יש ללחוץ כאן לעריכת המסנן.",
     "filter-to-selection": "סינון לבחירה",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "שם מלא",
     "header-logo-title": "חזרה לדף הלוחות שלך.",
     "hide-system-messages": "הסתרת הודעות מערכת",
@@ -452,7 +454,7 @@
     "hours": "שעות",
     "minutes": "דקות",
     "seconds": "שניות",
-    "show-field-on-card": "הצג שדה זה בכרטיס",
+    "show-field-on-card": "הצגת שדה זה בכרטיס",
     "yes": "כן",
     "no": "לא",
     "accounts": "חשבונות",

+ 41 - 39
i18n/hu.i18n.json

@@ -7,12 +7,12 @@
     "act-addComment": "hozzászólt a(z) __card__ kártyán: __comment__",
     "act-createBoard": "létrehozta a táblát: __board__",
     "act-createCard": "__card__ kártyát adott hozzá a listához: __list__",
-    "act-createCustomField": "created custom field __customField__",
+    "act-createCustomField": "létrehozta a(z) __customField__ egyéni listát",
     "act-createList": "__list__ listát adott hozzá a táblához: __board__",
     "act-addBoardMember": "__member__ tagot hozzáadta a táblához: __board__",
-    "act-archivedBoard": "A __board__ tábla a lomtárba került.",
-    "act-archivedCard": "A __card__ kártya a lomtárba került.",
-    "act-archivedList": "A __list__ lista a lomtárba került.",
+    "act-archivedBoard": "A(z) __board__ tábla áthelyezve a lomtárba",
+    "act-archivedCard": "A(z) __card__ kártya áthelyezve a lomtárba",
+    "act-archivedList": "A(z) __list__ lista áthelyezve a lomtárba",
     "act-archivedSwimlane": "__swimlane__ moved to Recycle Bin",
     "act-importBoard": "importálta a táblát: __board__",
     "act-importCard": "importálta a kártyát: __card__",
@@ -28,10 +28,10 @@
     "activities": "Tevékenységek",
     "activity": "Tevékenység",
     "activity-added": "%s hozzáadva ehhez: %s",
-    "activity-archived": "%s lomtárba helyezve",
+    "activity-archived": "%s áthelyezve a lomtárba",
     "activity-attached": "%s mellékletet csatolt a kártyához: %s",
     "activity-created": "%s létrehozva",
-    "activity-customfield-created": "created custom field %s",
+    "activity-customfield-created": "létrehozta a(z) %s egyéni mezőt",
     "activity-excluded": "%s kizárva innen: %s",
     "activity-imported": "%s importálva ebbe: %s, innen: %s",
     "activity-imported-board": "%s importálva innen: %s",
@@ -99,7 +99,7 @@
     "boardChangeWatchPopup-title": "Megfigyelés megváltoztatása",
     "boardMenuPopup-title": "Tábla menü",
     "boards": "Táblák",
-    "board-view": "Board View",
+    "board-view": "Tábla nézet",
     "board-view-swimlanes": "Swimlanes",
     "board-view-lists": "Listák",
     "bucket-example": "Mint például „Bakancslista”",
@@ -113,7 +113,7 @@
     "card-due-on": "Esedékes ekkor",
     "card-spent": "Eltöltött idő",
     "card-edit-attachments": "Mellékletek szerkesztése",
-    "card-edit-custom-fields": "Edit custom fields",
+    "card-edit-custom-fields": "Egyéni mezők szerkesztése",
     "card-edit-labels": "Címkék szerkesztése",
     "card-edit-members": "Tagok szerkesztése",
     "card-labels-title": "A kártya címkéinek megváltoztatása.",
@@ -121,8 +121,8 @@
     "card-start": "Kezdés",
     "card-start-on": "Kezdés ekkor",
     "cardAttachmentsPopup-title": "Innen csatolva",
-    "cardCustomField-datePopup-title": "Change date",
-    "cardCustomFieldsPopup-title": "Edit custom fields",
+    "cardCustomField-datePopup-title": "Dátum megváltoztatása",
+    "cardCustomFieldsPopup-title": "Egyéni mezők szerkesztése",
     "cardDeletePopup-title": "Törli a kártyát?",
     "cardDetailsActionsPopup-title": "Kártyaműveletek",
     "cardLabelsPopup-title": "Címkék",
@@ -165,32 +165,32 @@
     "confirm-checklist-delete-dialog": "Biztosan törölni szeretné az ellenőrzőlistát?",
     "copy-card-link-to-clipboard": "Kártya hivatkozásának másolása a vágólapra",
     "copyCardPopup-title": "Kártya másolása",
-    "copyChecklistToManyCardsPopup-title": "Copy Checklist Template to Many Cards",
-    "copyChecklistToManyCardsPopup-instructions": "Destination Card Titles and Descriptions in this JSON format",
-    "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"First card title\", \"description\":\"First card description\"}, {\"title\":\"Second card title\",\"description\":\"Second card description\"},{\"title\":\"Last card title\",\"description\":\"Last card description\"} ]",
+    "copyChecklistToManyCardsPopup-title": "Ellenőrzőlista sablon másolása több kártyára",
+    "copyChecklistToManyCardsPopup-instructions": "A célkártyák címe és a leírások ebben a JSON formátumban",
+    "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"Első kártya címe\", \"description\":\"Első kártya leírása\"}, {\"title\":\"Második kártya címe\",\"description\":\"Második kártya leírása\"},{\"title\":\"Utolsó kártya címe\",\"description\":\"Utolsó kártya leírása\"} ]",
     "create": "Létrehozás",
     "createBoardPopup-title": "Tábla létrehozása",
     "chooseBoardSourcePopup-title": "Tábla importálása",
     "createLabelPopup-title": "Címke létrehozása",
-    "createCustomField": "Create Field",
-    "createCustomFieldPopup-title": "Create Field",
+    "createCustomField": "Mező létrehozása",
+    "createCustomFieldPopup-title": "Mező létrehozása",
     "current": "jelenlegi",
-    "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
-    "custom-field-checkbox": "Checkbox",
+    "custom-field-delete-pop": "Nincs visszavonás. Ez el fogja távolítani az egyéni mezőt az összes kártyáról, és megsemmisíti az előzményeit.",
+    "custom-field-checkbox": "Jelölőnégyzet",
     "custom-field-date": "Dátum",
-    "custom-field-dropdown": "Dropdown List",
-    "custom-field-dropdown-none": "(none)",
-    "custom-field-dropdown-options": "List Options",
-    "custom-field-dropdown-options-placeholder": "Press enter to add more options",
-    "custom-field-dropdown-unknown": "(unknown)",
-    "custom-field-number": "Number",
-    "custom-field-text": "Text",
-    "custom-fields": "Custom Fields",
+    "custom-field-dropdown": "Legördülő lista",
+    "custom-field-dropdown-none": "(nincs)",
+    "custom-field-dropdown-options": "Lista lehetőségei",
+    "custom-field-dropdown-options-placeholder": "Nyomja meg az Enter billentyűt több lehetőség hozzáadásához",
+    "custom-field-dropdown-unknown": "(ismeretlen)",
+    "custom-field-number": "Szám",
+    "custom-field-text": "Szöveg",
+    "custom-fields": "Egyéni mezők",
     "date": "Dátum",
     "decline": "Elutasítás",
     "default-avatar": "Alapértelmezett avatár",
     "delete": "Törlés",
-    "deleteCustomFieldPopup-title": "Delete Custom Field?",
+    "deleteCustomFieldPopup-title": "Törli az egyéni mezőt?",
     "deleteLabelPopup-title": "Törli a címkét?",
     "description": "Leírás",
     "disambiguateMultiLabelPopup-title": "Címkeművelet egyértelműsítése",
@@ -205,7 +205,7 @@
     "soft-wip-limit": "Gyenge WIP korlát",
     "editCardStartDatePopup-title": "Kezdődátum megváltoztatása",
     "editCardDueDatePopup-title": "Esedékesség dátumának megváltoztatása",
-    "editCustomFieldPopup-title": "Edit Field",
+    "editCustomFieldPopup-title": "Mező szerkesztése",
     "editCardSpentTimePopup-title": "Eltöltött idő megváltoztatása",
     "editLabelPopup-title": "Címke megváltoztatása",
     "editNotificationPopup-title": "Értesítés szerkesztése",
@@ -242,10 +242,12 @@
     "filter-clear": "Szűrő törlése",
     "filter-no-label": "Nincs címke",
     "filter-no-member": "Nincs tag",
-    "filter-no-custom-fields": "No Custom Fields",
+    "filter-no-custom-fields": "Nincsenek egyéni mezők",
     "filter-on": "Szűrő bekapcsolva",
     "filter-on-desc": "A kártyaszűrés be van kapcsolva ezen a táblán. Kattintson ide a szűrő szerkesztéséhez.",
     "filter-to-selection": "Szűrés a kijelöléshez",
+    "advanced-filter-label": "Speciális szűrő",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Teljes név",
     "header-logo-title": "Vissza a táblák oldalára.",
     "hide-system-messages": "Rendszerüzenetek elrejtése",
@@ -387,7 +389,7 @@
     "title": "Cím",
     "tracking": "Követés",
     "tracking-info": "Értesítve lesz az összes olyan kártya változásáról, amelyen létrehozóként vagy tagként vesz részt.",
-    "type": "Type",
+    "type": "Típus",
     "unassign-member": "Tag hozzárendelésének megszüntetése",
     "unsaved-description": "Van egy mentetlen leírása.",
     "unwatch": "Megfigyelés megszüntetése",
@@ -396,12 +398,12 @@
     "uploaded-avatar": "Egy avatár feltöltve",
     "username": "Felhasználónév",
     "view-it": "Megtekintés",
-    "warn-list-archived": "warning: this card is in an list at Recycle Bin",
+    "warn-list-archived": "figyelem: ez a kártya egy lomtárban lévő listán van",
     "watch": "Megfigyelés",
     "watching": "Megfigyelés",
     "watching-info": "Értesítve lesz a táblán lévő összes változásról",
     "welcome-board": "Üdvözlő tábla",
-    "welcome-swimlane": "Milestone 1",
+    "welcome-swimlane": "1. mérföldkő",
     "welcome-list1": "Alapok",
     "welcome-list2": "Speciális",
     "what-to-do": "Mit szeretne tenni?",
@@ -452,19 +454,19 @@
     "hours": "óra",
     "minutes": "perc",
     "seconds": "másodperc",
-    "show-field-on-card": "Show this field on card",
+    "show-field-on-card": "A mező megjelenítése a kártyán",
     "yes": "Igen",
     "no": "Nem",
     "accounts": "Fiókok",
     "accounts-allowEmailChange": "E-mail megváltoztatásának engedélyezése",
-    "accounts-allowUserNameChange": "Allow Username Change",
+    "accounts-allowUserNameChange": "Felhasználónév megváltoztatásának engedélyezése",
     "createdAt": "Létrehozva",
     "verified": "Ellenőrizve",
     "active": "Aktív",
-    "card-received": "Received",
-    "card-received-on": "Received on",
-    "card-end": "End",
-    "card-end-on": "Ends on",
-    "editCardReceivedDatePopup-title": "Change received date",
-    "editCardEndDatePopup-title": "Change end date"
+    "card-received": "Érkezett",
+    "card-received-on": "Ekkor érkezett",
+    "card-end": "Befejezés",
+    "card-end-on": "Befejeződik ekkor",
+    "editCardReceivedDatePopup-title": "Érkezési dátum megváltoztatása",
+    "editCardEndDatePopup-title": "Befejezési dátum megváltoztatása"
 }

+ 2 - 0
i18n/hy.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter is on",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Full Name",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Hide system messages",

+ 2 - 0
i18n/id.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Penyaring aktif",
     "filter-on-desc": "Anda memfilter kartu di panel ini. Klik di sini untuk menyunting filter",
     "filter-to-selection": "Saring berdasarkan yang dipilih",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Nama Lengkap",
     "header-logo-title": "Kembali ke laman panel anda",
     "hide-system-messages": "Sembunyikan pesan-pesan sistem",

+ 2 - 0
i18n/ig.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter is on",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Full Name",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Hide system messages",

+ 2 - 0
i18n/it.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Il filtro è attivo",
     "filter-on-desc": "Stai filtrando le schede su questa bacheca. Clicca qui per modificare il filtro,",
     "filter-to-selection": "Seleziona",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Nome completo",
     "header-logo-title": "Torna alla tua bacheca.",
     "hide-system-messages": "Nascondi i messaggi di sistema",

+ 2 - 0
i18n/ja.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "フィルター有効",
     "filter-on-desc": "このボードのカードをフィルターしています。フィルターを編集するにはこちらをクリックしてください。",
     "filter-to-selection": "フィルターした項目を全選択",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "フルネーム",
     "header-logo-title": "自分のボードページに戻る。",
     "hide-system-messages": "システムメッセージを隠す",

+ 2 - 0
i18n/ko.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "필터 사용",
     "filter-on-desc": "보드에서 카드를 필터링합니다. 여기를 클릭하여 필터를 수정합니다.",
     "filter-to-selection": "선택 항목으로 필터링",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "실명",
     "header-logo-title": "보드 페이지로 돌아가기.",
     "hide-system-messages": "시스템 메시지 숨기기",

+ 2 - 0
i18n/lv.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter is on",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Full Name",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Hide system messages",

+ 2 - 0
i18n/mn.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter is on",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Full Name",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Hide system messages",

+ 2 - 0
i18n/nb.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter is on",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Full Name",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Hide system messages",

+ 2 - 0
i18n/nl.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter staat aan",
     "filter-on-desc": "Je bent nu kaarten aan het filteren op dit bord. Klik hier om het filter te wijzigen.",
     "filter-to-selection": "Filter zoals selectie",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Volledige naam",
     "header-logo-title": "Ga terug naar jouw borden pagina.",
     "hide-system-messages": "Verberg systeemberichten",

+ 2 - 0
i18n/pl.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filtr jest włączony",
     "filter-on-desc": "Filtrujesz karty na tej tablicy. Kliknij tutaj by edytować filtr.",
     "filter-to-selection": "Odfiltruj zaznaczenie",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Full Name",
     "header-logo-title": "Wróć do swojej strony z tablicami.",
     "hide-system-messages": "Ukryj wiadomości systemowe",

+ 2 - 0
i18n/pt-BR.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filtro está ativo",
     "filter-on-desc": "Você está filtrando cartões neste quadro. Clique aqui para editar o filtro.",
     "filter-to-selection": "Filtrar esta seleção",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Nome Completo",
     "header-logo-title": "Voltar para a lista de quadros.",
     "hide-system-messages": "Esconde mensagens de sistema",

+ 2 - 0
i18n/pt.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter is on",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Full Name",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Hide system messages",

+ 2 - 0
i18n/ro.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter is on",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Full Name",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Hide system messages",

+ 2 - 0
i18n/ru.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Включен фильтр",
     "filter-on-desc": "Показываются карточки, соответствующие настройкам фильтра. Нажмите для редактирования.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Полное имя",
     "header-logo-title": "Вернуться к доскам.",
     "hide-system-messages": "Скрыть системные сообщения",

+ 2 - 0
i18n/sr.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter is on",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Full Name",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Sakrij sistemske poruke",

+ 2 - 0
i18n/sv.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter är på",
     "filter-on-desc": "Du filtrerar kort på denna anslagstavla. Klicka här för att redigera filter.",
     "filter-to-selection": "Filter till val",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Namn",
     "header-logo-title": "Gå tillbaka till din anslagstavlor-sida.",
     "hide-system-messages": "Göm systemmeddelanden",

+ 2 - 0
i18n/ta.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter is on",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Full Name",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Hide system messages",

+ 2 - 0
i18n/th.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "กรองบน",
     "filter-on-desc": "คุณกำลังกรองการ์ดในบอร์ดนี้ คลิกที่นี่เพื่อแก้ไขตัวกรอง",
     "filter-to-selection": "กรองตัวเลือก",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "ชื่อ นามสกุล",
     "header-logo-title": "ย้อนกลับไปที่หน้าบอร์ดของคุณ",
     "hide-system-messages": "ซ่อนข้อความของระบบ",

+ 25 - 23
i18n/tr.i18n.json

@@ -7,7 +7,7 @@
     "act-addComment": "__card__ kartına bir yorum bıraktı: __comment__",
     "act-createBoard": "__board__ panosunu oluşturdu",
     "act-createCard": "__card__ kartını ___list__ listesine ekledi",
-    "act-createCustomField": "created custom field __customField__",
+    "act-createCustomField": "__customField__ adlı özel alan yaratıldı",
     "act-createList": "__list__ listesini __board__ panosuna ekledi",
     "act-addBoardMember": "__member__ kullanıcısını __board__ panosuna ekledi",
     "act-archivedBoard": "__board__ Geri Dönüşüm Kutusu'na taşındı",
@@ -31,7 +31,7 @@
     "activity-archived": "%s Geri Dönüşüm Kutusu'na taşındı",
     "activity-attached": "%s içine %s ekledi",
     "activity-created": "%s öğesini oluşturdu",
-    "activity-customfield-created": "created custom field %s",
+    "activity-customfield-created": "%s adlı özel alan yaratıldı",
     "activity-excluded": "%s içinden %s çıkarttı",
     "activity-imported": "%s kaynağından %s öğesini %s öğesinin içine taşıdı ",
     "activity-imported-board": "%s i %s içinden aktardı",
@@ -113,7 +113,7 @@
     "card-due-on": "Bitiş tarihi:",
     "card-spent": "Harcanan Zaman",
     "card-edit-attachments": "Ek dosyasını düzenle",
-    "card-edit-custom-fields": "Edit custom fields",
+    "card-edit-custom-fields": "Özel alanları düzenle",
     "card-edit-labels": "Etiketleri düzenle",
     "card-edit-members": "Üyeleri düzenle",
     "card-labels-title": "Bu kart için etiketleri düzenle",
@@ -121,8 +121,8 @@
     "card-start": "Başlama",
     "card-start-on": "Başlama tarihi:",
     "cardAttachmentsPopup-title": "Eklenme",
-    "cardCustomField-datePopup-title": "Change date",
-    "cardCustomFieldsPopup-title": "Edit custom fields",
+    "cardCustomField-datePopup-title": "Tarihi değiştir",
+    "cardCustomFieldsPopup-title": "Özel alanları düzenle",
     "cardDeletePopup-title": "Kart Silinsin mi?",
     "cardDetailsActionsPopup-title": "Kart işlemleri",
     "cardLabelsPopup-title": "Etiketler",
@@ -172,25 +172,25 @@
     "createBoardPopup-title": "Pano Oluşturma",
     "chooseBoardSourcePopup-title": "Panoyu içe aktar",
     "createLabelPopup-title": "Etiket Oluşturma",
-    "createCustomField": "Create Field",
-    "createCustomFieldPopup-title": "Create Field",
+    "createCustomField": "Alanı yarat",
+    "createCustomFieldPopup-title": "Alanı yarat",
     "current": "mevcut",
-    "custom-field-delete-pop": "There is no undo. This will remove this custom field from all cards and destroy its history.",
-    "custom-field-checkbox": "Checkbox",
+    "custom-field-delete-pop": "Bunun geri dönüşü yoktur. Bu özel alan tüm kartlardan kaldırılıp tarihçesi yokedilecektir.",
+    "custom-field-checkbox": "İşaret kutusu",
     "custom-field-date": "Tarih",
-    "custom-field-dropdown": "Dropdown List",
-    "custom-field-dropdown-none": "(none)",
-    "custom-field-dropdown-options": "List Options",
-    "custom-field-dropdown-options-placeholder": "Press enter to add more options",
-    "custom-field-dropdown-unknown": "(unknown)",
-    "custom-field-number": "Number",
-    "custom-field-text": "Text",
-    "custom-fields": "Custom Fields",
+    "custom-field-dropdown": "Açılır liste",
+    "custom-field-dropdown-none": "(hiçbiri)",
+    "custom-field-dropdown-options": "Liste seçenekleri",
+    "custom-field-dropdown-options-placeholder": "Başka seçenekler eklemek için giriş tuşuna basınız",
+    "custom-field-dropdown-unknown": "(bilinmeyen)",
+    "custom-field-number": "Sayı",
+    "custom-field-text": "Metin",
+    "custom-fields": "Özel alanlar",
     "date": "Tarih",
     "decline": "Reddet",
     "default-avatar": "Varsayılan avatar",
     "delete": "Sil",
-    "deleteCustomFieldPopup-title": "Delete Custom Field?",
+    "deleteCustomFieldPopup-title": "Özel alan silinsin mi?",
     "deleteLabelPopup-title": "Etiket Silinsin mi?",
     "description": "Açıklama",
     "disambiguateMultiLabelPopup-title": "Etiket işlemini izah et",
@@ -205,7 +205,7 @@
     "soft-wip-limit": "Zayıf Devam Eden İş Sınırı",
     "editCardStartDatePopup-title": "Başlangıç tarihini değiştir",
     "editCardDueDatePopup-title": "Bitiş tarihini değiştir",
-    "editCustomFieldPopup-title": "Edit Field",
+    "editCustomFieldPopup-title": "Alanı düzenle",
     "editCardSpentTimePopup-title": "Harcanan zamanı değiştir",
     "editLabelPopup-title": "Etiket Değiştir",
     "editNotificationPopup-title": "Bildirimi değiştir",
@@ -242,10 +242,12 @@
     "filter-clear": "Filtreyi temizle",
     "filter-no-label": "Etiket yok",
     "filter-no-member": "Üye yok",
-    "filter-no-custom-fields": "No Custom Fields",
+    "filter-no-custom-fields": "Hiç özel alan yok",
     "filter-on": "Filtre aktif",
     "filter-on-desc": "Bu panodaki kartları filtreliyorsunuz. Fitreyi düzenlemek için tıklayın.",
     "filter-to-selection": "Seçime göre filtreleme yap",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Ad Soyad",
     "header-logo-title": "Panolar sayfanıza geri dön.",
     "hide-system-messages": "Sistem mesajlarını gizle",
@@ -387,7 +389,7 @@
     "title": "Başlık",
     "tracking": "Takip",
     "tracking-info": "Oluşturduğunuz veya üyesi olduğunuz tüm kartlardaki değişiklikler size bildirim olarak gelecek.",
-    "type": "Type",
+    "type": "Tür",
     "unassign-member": "Üyeye atamayı kaldır",
     "unsaved-description": "Kaydedilmemiş bir açıklama metnin bulunmakta",
     "unwatch": "Takibi bırak",
@@ -452,12 +454,12 @@
     "hours": "saat",
     "minutes": "dakika",
     "seconds": "saniye",
-    "show-field-on-card": "Show this field on card",
+    "show-field-on-card": "Bu alanı kartta göster",
     "yes": "Evet",
     "no": "Hayır",
     "accounts": "Hesaplar",
     "accounts-allowEmailChange": "E-posta Değiştirmeye İzin Ver",
-    "accounts-allowUserNameChange": "Allow Username Change",
+    "accounts-allowUserNameChange": "Kullanıcı adı değiştirmeye izin ver",
     "createdAt": "Oluşturulma tarihi",
     "verified": "Doğrulanmış",
     "active": "Aktif",

+ 2 - 0
i18n/uk.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter is on",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Full Name",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Hide system messages",

+ 2 - 0
i18n/vi.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "Filter is on",
     "filter-on-desc": "You are filtering cards on this board. Click here to edit filter.",
     "filter-to-selection": "Filter to selection",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "Full Name",
     "header-logo-title": "Go back to your boards page.",
     "hide-system-messages": "Hide system messages",

+ 2 - 0
i18n/zh-CN.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "过滤器启用",
     "filter-on-desc": "你正在过滤该看板上的卡片,点此编辑过滤。",
     "filter-to-selection": "要选择的过滤器",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "全称",
     "header-logo-title": "返回您的看板页",
     "hide-system-messages": "隐藏系统消息",

+ 2 - 0
i18n/zh-TW.i18n.json

@@ -246,6 +246,8 @@
     "filter-on": "過濾條件啟用",
     "filter-on-desc": "你正在過濾該看板上的卡片,點此編輯過濾條件。",
     "filter-to-selection": "要選擇的過濾條件",
+    "advanced-filter-label": "Advanced Filter",
+    "advanced-filter-description": "Advanced Filter allows to write a string containing following operators: == != <= >= && || ( ) A space is used as a separator between the Operators. You can filter for all Custom Fields by typing their names and values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need to encapsulate them into single quotes. For Example: 'Field 1' == 'Value 1'. Also you can combine multiple conditions. For Example: F1 == V1 || F1 = V2. Normally all operators are interpreted from left to right. You can change the order by placing brakets. For Example: F1 == V1 and ( F2 == V2 || F2 == V3 )",
     "fullname": "全稱",
     "header-logo-title": "返回您的看板頁面",
     "hide-system-messages": "隱藏系統訊息",