// Predicates are a way of testing whether the fields of objects like Activities, Assignments etc. fulfill
// a certain condition. They are used in Merlin's filters, style conditions, exporters, publishers and report modules.
// There are two types of predicates:
// 1. Comparison Predicate: Compares the fields of one object against one or two given values
// 2. Compound Predicate: Combines other predicates with the logical operations and / or / not

// With the popup in the first column of the comparsion predicate in the editor one choses the object type
// for the condition.
// If the object type does not matter, the following string is displayed:
"valueType.predicate.comparison.objectType.any"                     = "Beliebiger Typ";

// The object type popup in the style conditon editor offers a special object type for the context in which
// an object is presented (like collapsed, filtered, read-only etc.)
"valueType.predicate.comparison.objectType.styleContext"            = "Kontext";

// The object type popup in the style condition editor of the Net Plan view offers a special object type
// for the styling of hierarchy lines.
"valueType.predicate.comparison.objectType.hierarchyLines"          = "Hierarchielinien";

// If the predicate refers to the whole object and not just to one of its field, this string is displayed:
"valueType.predicate.comparison.key.self"                           = "-";

// A predicate can refer to special marker keys which generically include or exclude objects of the selected type
"valueType.predicate.comparison.key.yes"                            = "Ja";
"valueType.predicate.comparison.key.no"                             = "Nein";

// For conditions about hierarchy lines in the Net Plan view, this special key is offered.
// It refers to the object which is represented by the target box of a hierarchy line.
"valueType.predicate.comparison.key.childActivity"                  = "Untergeordneter Vorgang";

// For conditions for keys targeting resources, a special value is selectable at the top of the possible values list.
// This special value refers to the currently logged in user.
"valueType.predicate.comparison.value.currentUser"                  = "Angemeldeter Benutzer";

// These are all possible coparison operator types
"valueType.predicate.comparison.operator.lessThan"                  = "ist kleiner als";
"valueType.predicate.comparison.operator.lessThanOrEqual"           = "ist kleiner oder gleich";
"valueType.predicate.comparison.operator.greaterThan"               = "ist größer als";
"valueType.predicate.comparison.operator.greaterThanOrEqual"        = "ist größer oder gleich";
"valueType.predicate.comparison.operator.equalTo"                   = "ist gleich";
"valueType.predicate.comparison.operator.notEqualTo"                = "ist ungleich";
"valueType.predicate.comparison.operator.between"                   = "ist zwischen";
"valueType.predicate.comparison.operator.yes"                       = "ja";
"valueType.predicate.comparison.operator.no"                        = "nein";
"valueType.predicate.comparison.operator.contains"                  = "enthält";
"valueType.predicate.comparison.operator.doesNotContain"            = "enthält nicht";
"valueType.predicate.comparison.operator.beginsWith"                = "beginnt mit";
"valueType.predicate.comparison.operator.endsWith"                  = "endet mit";
"valueType.predicate.comparison.operator.before"                    = "ist vor";
"valueType.predicate.comparison.operator.after"                     = "ist nach";
"valueType.predicate.comparison.operator.on"                        = "ist am";
"valueType.predicate.comparison.operator.notOn"                     = "ist nicht am";
"valueType.predicate.comparison.operator.inStatusTimeFrame"         = "ist in Status-Zeitfenster";
"valueType.predicate.comparison.operator.today"                     = "ist heute";
"valueType.predicate.comparison.operator.thisWeek"                  = "ist diese Woche";
"valueType.predicate.comparison.operator.thisMonth"                 = "ist diesen Monat";
"valueType.predicate.comparison.operator.thisYear"                  = "ist dieses Jahr";
"valueType.predicate.comparison.operator.yesterday"                 = "war gestern";
"valueType.predicate.comparison.operator.lastWeek"                  = "war letzte Woche";
"valueType.predicate.comparison.operator.lastMonth"                 = "war letzten Monat";
"valueType.predicate.comparison.operator.lastYear"                  = "war letztes Jahr";
"valueType.predicate.comparison.operator.tomorrow"                  = "ist morgen";
"valueType.predicate.comparison.operator.nextWeek"                  = "ist nächste Woche";
"valueType.predicate.comparison.operator.nextMonth"                 = "ist nächsten Monat";
"valueType.predicate.comparison.operator.nextYear"                  = "ist nächstes Jahr";
"valueType.predicate.comparison.operator.empty"                     = "ist leer";
"valueType.predicate.comparison.operator.notEmpty"                  = "ist nicht leer";
"valueType.predicate.comparison.operator.exceedsBudgetBy"           = "überschreitet Budget um";
"valueType.predicate.comparison.operator.costExceededBy"            = "Kosten überschritten um";
"valueType.predicate.comparison.operator.matches"                   = "erfüllt Bedingung";
"valueType.predicate.comparison.operator.allMatch"                  = "alle erfüllen Bedingung";
"valueType.predicate.comparison.operator.anyMatches"                = "eine(r) erfüllt Bedingung";
"valueType.predicate.comparison.operator.countEqualTo"              = "Anzahl ist gleich";
"valueType.predicate.comparison.operator.countNotEqualTo"           = "Anzahl ist ungleich";
"valueType.predicate.comparison.operator.countGreaterThan"          = "Anzahl ist größer als";
"valueType.predicate.comparison.operator.countLessThan"             = "Anzahl ist kleiner als";
"valueType.predicate.comparison.operator.countBetween"              = "Anzahl ist zwischen";
"valueType.predicate.comparison.operator.anyOf"                     = "ist eine(r) von";
"valueType.predicate.comparison.operator.notAnyOf"                  = "ist nicht eine(r) von";
"valueType.predicate.comparison.operator.overlapsStatusTimeFrame"   = "überlappt mit Status-Zeitfenster";
"valueType.predicate.comparison.operator.overlapsToday"             = "überlappt mit heute";
"valueType.predicate.comparison.operator.overlapsThisWeek"          = "überlappt mit dieser Woche";
"valueType.predicate.comparison.operator.overlapsThisMonth"         = "überlappt mit diesem Monat";
"valueType.predicate.comparison.operator.overlapsThisYear"          = "überlappt mit diesem Jahr";
"valueType.predicate.comparison.operator.overlapsYesterday"         = "überlappt mit Gestern";
"valueType.predicate.comparison.operator.overlapsLastWeek"          = "überlappt mit letzter Woche";
"valueType.predicate.comparison.operator.overlapsLastMonth"         = "überlappt mit letztem Monat";
"valueType.predicate.comparison.operator.overlapsLastYear"          = "überlappt mit letztem Jahr";
"valueType.predicate.comparison.operator.overlapsTomorrow"          = "überlappt mit morgen";
"valueType.predicate.comparison.operator.overlapsNextWeek"          = "überlappt mit nächster Woche";
"valueType.predicate.comparison.operator.overlapsNextMonth"         = "überlappt mit nächstem Monat";
"valueType.predicate.comparison.operator.overlapsNextYear"          = "überlappt mit nächstem Jahr";
"valueType.predicate.comparison.operator.overlaps"                  = "überlappt mit Spanne";
"valueType.predicate.comparison.operator.doesNotOverlap"            = "überlappt nicht mit Spanne";

// When the "between" operator is selected, the predicate editor presents two values fields.
// The following string is used as a conjunction between the fields.
// For example:
// Activity: expectedDuration is between 2 days and 3 days
"predicate.comparison.value.between.conjunction"                    = "und";

// A compound predicate combines other predicates with the logical operations and / or / not
"valueType.predicate.compound.type.and"                             = "und";
"valueType.predicate.compound.type.or"                              = "oder";
"valueType.predicate.compound.type.not"                             = "nicht";