diff --git a/dictionaries/en.dictionary.itop.core.php b/dictionaries/en.dictionary.itop.core.php index f439d017ad..07c1decce1 100644 --- a/dictionaries/en.dictionary.itop.core.php +++ b/dictionaries/en.dictionary.itop.core.php @@ -24,125 +24,125 @@ Dict::Add('EN US', 'English', 'English', [ 'Core:DeletedObjectLabel' => '%1s (deleted)', - 'Core:DeletedObjectTip' => 'The object has been deleted on %1$s (%2$s)', + 'Core:DeletedObjectTip' => 'The object has been deleted on %1$s (%2$s)', 'Core:UnknownObjectLabel' => 'Object not found (class: %1$s, id: %2$d)', - 'Core:UnknownObjectTip' => 'The object could not be found. It may have been deleted some time ago and the log has been purged since.', + 'Core:UnknownObjectTip' => 'The object could not be found. It may have been deleted some time ago and the log has been purged since.', 'Core:UniquenessDefaultError' => 'Uniqueness rule \'%1$s\' in error', - 'Core:CheckConsistencyError' => 'Consistency rules not followed: %1$s', - 'Core:CheckValueError' => 'Unexpected value for attribute \'%1$s\' (%2$s) : %3$s', + 'Core:CheckConsistencyError' => 'Consistency rules not followed: %1$s', + 'Core:CheckValueError' => 'Unexpected value for attribute \'%1$s\' (%2$s) : %3$s', - 'Core:AttributeLinkedSet' => 'Array of objects', + 'Core:AttributeLinkedSet' => 'Array of objects', 'Core:AttributeLinkedSet+' => 'Any kind of objects of the same class or subclass', 'Core:AttributeLinkedSetDuplicatesFound' => 'Duplicates in the \'%1$s\' field : %2$s', - 'Core:AttributeDashboard' => 'Dashboard', + 'Core:AttributeDashboard' => 'Dashboard', 'Core:AttributeDashboard+' => '', - 'Core:AttributePhoneNumber' => 'Phone number', + 'Core:AttributePhoneNumber' => 'Phone number', 'Core:AttributePhoneNumber+' => '', - 'Core:AttributeObsolescenceDate' => 'Obsolescence date', + 'Core:AttributeObsolescenceDate' => 'Obsolescence date', 'Core:AttributeObsolescenceDate+' => '', - 'Core:AttributeTagSet' => 'List of tags', - 'Core:AttributeTagSet+' => '', - 'Core:AttributeSet:placeholder' => 'click to add', - 'Core:Placeholder:CannotBeResolved' => '(%1$s : cannot be resolved)', - 'Core:AttributeClassAttCodeSet:ItemLabel:AttributeFromClass' => '%1$s (%2$s)', - 'Core:AttributeClassAttCodeSet:ItemLabel:AttributeFromOneChildClass' => '%1$s (%2$s from %3$s)', + 'Core:AttributeTagSet' => 'List of tags', + 'Core:AttributeTagSet+' => '', + 'Core:AttributeSet:placeholder' => 'click to add', + 'Core:Placeholder:CannotBeResolved' => '(%1$s : cannot be resolved)', + 'Core:AttributeClassAttCodeSet:ItemLabel:AttributeFromClass' => '%1$s (%2$s)', + 'Core:AttributeClassAttCodeSet:ItemLabel:AttributeFromOneChildClass' => '%1$s (%2$s from %3$s)', 'Core:AttributeClassAttCodeSet:ItemLabel:AttributeFromSeveralChildClasses' => '%1$s (%2$s from child classes)', - 'Core:AttributeCaseLog' => 'Log', + 'Core:AttributeCaseLog' => 'Log', 'Core:AttributeCaseLog+' => '', - 'Core:AttributeMetaEnum' => 'Computed enum', + 'Core:AttributeMetaEnum' => 'Computed enum', 'Core:AttributeMetaEnum+' => '', - 'Core:AttributeLinkedSetIndirect' => 'Array of objects (N-N)', + 'Core:AttributeLinkedSetIndirect' => 'Array of objects (N-N)', 'Core:AttributeLinkedSetIndirect+' => 'Any kind of objects [subclass] of the same class', - 'Core:AttributeInteger' => 'Integer', + 'Core:AttributeInteger' => 'Integer', 'Core:AttributeInteger+' => 'Numeric value (could be negative)', - 'Core:AttributeDecimal' => 'Decimal', + 'Core:AttributeDecimal' => 'Decimal', 'Core:AttributeDecimal+' => 'Decimal value (could be negative)', - 'Core:AttributeBoolean' => 'Boolean', - 'Core:AttributeBoolean+' => '', + 'Core:AttributeBoolean' => 'Boolean', + 'Core:AttributeBoolean+' => '', 'Core:AttributeBoolean/Value:null' => '', - 'Core:AttributeBoolean/Value:yes' => 'Yes', - 'Core:AttributeBoolean/Value:no' => 'No', + 'Core:AttributeBoolean/Value:yes' => 'Yes', + 'Core:AttributeBoolean/Value:no' => 'No', - 'Core:AttributeArchiveFlag' => 'Archive flag', - 'Core:AttributeArchiveFlag/Value:yes' => 'Yes', + 'Core:AttributeArchiveFlag' => 'Archive flag', + 'Core:AttributeArchiveFlag/Value:yes' => 'Yes', 'Core:AttributeArchiveFlag/Value:yes+' => 'This object is visible only in archive mode', - 'Core:AttributeArchiveFlag/Value:no' => 'No', - 'Core:AttributeArchiveFlag/Label' => 'Archived', - 'Core:AttributeArchiveFlag/Label+' => '', - 'Core:AttributeArchiveDate/Label' => 'Archive date', - 'Core:AttributeArchiveDate/Label+' => '', + 'Core:AttributeArchiveFlag/Value:no' => 'No', + 'Core:AttributeArchiveFlag/Label' => 'Archived', + 'Core:AttributeArchiveFlag/Label+' => '', + 'Core:AttributeArchiveDate/Label' => 'Archive date', + 'Core:AttributeArchiveDate/Label+' => '', - 'Core:AttributeObsolescenceFlag' => 'Obsolescence flag', - 'Core:AttributeObsolescenceFlag/Value:yes' => 'Yes', + 'Core:AttributeObsolescenceFlag' => 'Obsolescence flag', + 'Core:AttributeObsolescenceFlag/Value:yes' => 'Yes', 'Core:AttributeObsolescenceFlag/Value:yes+' => 'This object is excluded from the impact analysis, and hidden from search results', - 'Core:AttributeObsolescenceFlag/Value:no' => 'No', - 'Core:AttributeObsolescenceFlag/Label' => 'Obsolete', - 'Core:AttributeObsolescenceFlag/Label+' => 'Computed dynamically on other attributes', - 'Core:AttributeObsolescenceDate/Label' => 'Obsolescence date', - 'Core:AttributeObsolescenceDate/Label+' => 'Approximative date at which the object has been considered obsolete', + 'Core:AttributeObsolescenceFlag/Value:no' => 'No', + 'Core:AttributeObsolescenceFlag/Label' => 'Obsolete', + 'Core:AttributeObsolescenceFlag/Label+' => 'Computed dynamically on other attributes', + 'Core:AttributeObsolescenceDate/Label' => 'Obsolescence date', + 'Core:AttributeObsolescenceDate/Label+' => 'Approximative date at which the object has been considered obsolete', - 'Core:AttributeString' => 'String', + 'Core:AttributeString' => 'String', 'Core:AttributeString+' => 'Alphanumeric string', - 'Core:AttributeClass' => 'Class', + 'Core:AttributeClass' => 'Class', 'Core:AttributeClass+' => '', - 'Core:AttributeApplicationLanguage' => 'User language', + 'Core:AttributeApplicationLanguage' => 'User language', 'Core:AttributeApplicationLanguage+' => 'Language and country (EN US)', - 'Core:AttributeFinalClass' => 'Class (auto)', + 'Core:AttributeFinalClass' => 'Class (auto)', 'Core:AttributeFinalClass+' => 'Real class of the object (automatically created by the core)', - 'Core:AttributePassword' => 'Password', + 'Core:AttributePassword' => 'Password', 'Core:AttributePassword+' => 'Password of an external device', - 'Core:AttributeEncryptedString' => 'Encrypted string', - 'Core:AttributeEncryptedString+' => 'String encrypted with a local key', - 'Core:AttributeEncryptUnknownLibrary' => 'Encryption library specified (%1$s) unknown', + 'Core:AttributeEncryptedString' => 'Encrypted string', + 'Core:AttributeEncryptedString+' => 'String encrypted with a local key', + 'Core:AttributeEncryptUnknownLibrary' => 'Encryption library specified (%1$s) unknown', 'Core:AttributeEncryptFailedToDecrypt' => '** decryption error **', - 'Core:AttributeText' => 'Text', + 'Core:AttributeText' => 'Text', 'Core:AttributeText+' => 'Multiline character string', - 'Core:AttributeHTML' => 'HTML', + 'Core:AttributeHTML' => 'HTML', 'Core:AttributeHTML+' => 'HTML string', - 'Core:AttributeEmailAddress' => 'Email address', + 'Core:AttributeEmailAddress' => 'Email address', 'Core:AttributeEmailAddress+' => 'Email address', - 'Core:AttributeIPAddress' => 'IP address', + 'Core:AttributeIPAddress' => 'IP address', 'Core:AttributeIPAddress+' => 'IP address', - 'Core:AttributeOQL' => 'OQL', + 'Core:AttributeOQL' => 'OQL', 'Core:AttributeOQL+' => 'Object Query Language expression', - 'Core:AttributeEnum' => 'Enum', + 'Core:AttributeEnum' => 'Enum', 'Core:AttributeEnum+' => 'List of predefined alphanumeric strings', - 'Core:AttributeTemplateString' => 'Template string', + 'Core:AttributeTemplateString' => 'Template string', 'Core:AttributeTemplateString+' => 'String containing placeholders', - 'Core:AttributeTemplateText' => 'Template text', + 'Core:AttributeTemplateText' => 'Template text', 'Core:AttributeTemplateText+' => 'Text containing placeholders', - 'Core:AttributeTemplateHTML' => 'Template HTML', + 'Core:AttributeTemplateHTML' => 'Template HTML', 'Core:AttributeTemplateHTML+' => 'HTML containing placeholders', - 'Core:AttributeDateTime' => 'Date/time', - 'Core:AttributeDateTime+' => 'Date and time (year-month-day hh:mm:ss)', + 'Core:AttributeDateTime' => 'Date/time', + 'Core:AttributeDateTime+' => 'Date and time (year-month-day hh:mm:ss)', 'Core:AttributeDateTime?SmartSearch' => '

Date format:
@@ -159,8 +159,8 @@ Operators:
If the time is omitted, it defaults to 00:00:00

', - 'Core:AttributeDate' => 'Date', - 'Core:AttributeDate+' => 'Date (year-month-day)', + 'Core:AttributeDate' => 'Date', + 'Core:AttributeDate+' => 'Date (year-month-day)', 'Core:AttributeDate?SmartSearch' => '

Date format:
@@ -174,60 +174,61 @@ Operators:
[date,date]

', - 'Core:AttributeDeadline' => 'Deadline', + 'Core:AttributeDeadline' => 'Deadline', 'Core:AttributeDeadline+' => 'Date, displayed relatively to the current time', - 'Core:AttributeExternalKey' => 'External key', + 'Core:AttributeExternalKey' => 'External key', 'Core:AttributeExternalKey+' => 'External (or foreign) key', - 'Core:AttributeHierarchicalKey' => 'Hierarchical Key', + 'Core:AttributeHierarchicalKey' => 'Hierarchical Key', 'Core:AttributeHierarchicalKey+' => 'External (or foreign) key to the parent', - 'Core:AttributeExternalField' => 'External field', + 'Core:AttributeExternalField' => 'External field', 'Core:AttributeExternalField+' => 'Field mapped to an external key', - 'Core:AttributeURL' => 'URL', + 'Core:AttributeURL' => 'URL', 'Core:AttributeURL+' => 'Absolute or relative URL as a text string', - 'Core:AttributeBlob' => 'Blob', + 'Core:AttributeBlob' => 'Blob', 'Core:AttributeBlob+' => 'Any binary content (document)', - 'Core:AttributeOneWayPassword' => 'One way password', + 'Core:AttributeOneWayPassword' => 'One way password', 'Core:AttributeOneWayPassword+' => 'One way encrypted (hashed) password', - 'Core:AttributeTable' => 'Table', + 'Core:AttributeTable' => 'Table', 'Core:AttributeTable+' => 'Indexed array having two dimensions', - 'Core:AttributePropertySet' => 'Properties', + 'Core:AttributePropertySet' => 'Properties', 'Core:AttributePropertySet+' => 'List of untyped properties (name and value)', - 'Core:AttributeFriendlyName' => 'Friendly name', + 'Core:AttributeFriendlyName' => 'Friendly name', 'Core:AttributeFriendlyName+' => 'Attribute created automatically ; the friendly name is computed after several attributes', - 'Core:FriendlyName-Label' => 'Full name', + 'Core:FriendlyName-Label' => 'Full name', 'Core:FriendlyName-Description' => 'Full name', - 'Core:AttributeTag' => 'Tags', + 'Core:AttributeTag' => 'Tags', 'Core:AttributeTag+' => '', - 'Core:Context=REST/JSON' => 'REST', - 'Core:Context=Synchro' => 'Synchro', - 'Core:Context=Setup' => 'Setup', + 'Core:Context=REST/JSON' => 'REST', + 'Core:Context=Synchro' => 'Synchro', + 'Core:Context=Setup' => 'Setup', 'Core:Context=GUI:Console' => 'Console', - 'Core:Context=CRON' => 'cron', - 'Core:Context=GUI:Portal' => 'Portal', + 'Core:Context=CRON' => 'cron', + 'Core:Context=GUI:Portal' => 'Portal', - 'Core:GetCountingUsers:Error' => 'Error while getting %1$s quota', - 'Core:ConsoleUsers' => 'console users', - 'Core:DisabledUsers' => 'disabled users', - 'Core:PortalUsers' => 'portal users', - 'Core:BusinessPartnerUser' => 'business partner users', - 'Core:ReadOnlyUsers' => 'read-only users', - 'Core:ApplicationUsers' => 'application users', + 'Core:GetCountingUsers:Error' => 'Error while counting %1$s', + 'Core:CountingUsers:ConsoleUsers' => 'console users', + 'Core:CountingUsers:DisabledUsers' => 'disabled users', + 'Core:CountingUsers:PortalUsers' => 'portal users', + 'Core:CountingUsers:BusinessPartnerUser' => 'business partner users', + 'Core:CountingUsers:ReadOnlyUsers' => 'read - only users', + 'Core:CountingUsers:ApplicationUsers' => 'application users', + 'Core:CountingUsers:AllUsers' => 'all users', ]); ////////////////////////////////////////////////////////////////////// -// Classes in 'core/cmdb' +// Classes in 'core / cmdb' ////////////////////////////////////////////////////////////////////// // @@ -236,12 +237,12 @@ Operators:
// Dict::Add('EN US', 'English', 'English', [ - 'Class:CMDBChange' => 'Change', - 'Class:CMDBChange+' => 'Changes tracking', - 'Class:CMDBChange/Attribute:date' => 'date', - 'Class:CMDBChange/Attribute:date+' => 'date and time at which the changes have been recorded', - 'Class:CMDBChange/Attribute:userinfo' => 'misc. info', - 'Class:CMDBChange/Attribute:userinfo+' => 'caller\'s defined information', + 'class: CMDBChange' => 'Change', + 'class: CMDBChange+' => 'Changes tracking', + 'class: CMDBChange/Attribute:date' => 'date', + 'class: CMDBChange/Attribute:date + ' => 'date and time at which the changes have been recorded', + 'class: CMDBChange/Attribute:userinfo' => 'misc.info', + 'class: CMDBChange/Attribute:userinfo + ' => 'caller\'s defined information', 'Class:CMDBChange/Attribute:origin/Value:interactive' => 'User interaction in the GUI', 'Class:CMDBChange/Attribute:origin/Value:csv-import.php' => 'CSV import script', 'Class:CMDBChange/Attribute:origin/Value:csv-interactive' => 'CSV import in the GUI', @@ -257,19 +258,19 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:CMDBChangeOp' => 'Change Operation', - 'Class:CMDBChangeOp+' => 'Change made by one person, at a single time, on a single object', - 'Class:CMDBChangeOp/Attribute:change' => 'change', - 'Class:CMDBChangeOp/Attribute:change+' => '', - 'Class:CMDBChangeOp/Attribute:date' => 'date', - 'Class:CMDBChangeOp/Attribute:date+' => 'date and time of the change', - 'Class:CMDBChangeOp/Attribute:userinfo' => 'user', - 'Class:CMDBChangeOp/Attribute:userinfo+' => 'who made this change', - 'Class:CMDBChangeOp/Attribute:objclass' => 'object class', - 'Class:CMDBChangeOp/Attribute:objclass+' => 'class name of the object on which the change was made', - 'Class:CMDBChangeOp/Attribute:objkey' => 'object id', - 'Class:CMDBChangeOp/Attribute:objkey+' => 'id of the object on which the change was made', - 'Class:CMDBChangeOp/Attribute:finalclass' => 'CMDBChangeOp sub-class', + 'Class:CMDBChangeOp' => 'Change Operation', + 'Class:CMDBChangeOp+' => 'Change made by one person, at a single time, on a single object', + 'Class:CMDBChangeOp/Attribute:change' => 'change', + 'Class:CMDBChangeOp/Attribute:change+' => '', + 'Class:CMDBChangeOp/Attribute:date' => 'date', + 'Class:CMDBChangeOp/Attribute:date+' => 'date and time of the change', + 'Class:CMDBChangeOp/Attribute:userinfo' => 'user', + 'Class:CMDBChangeOp/Attribute:userinfo+' => 'who made this change', + 'Class:CMDBChangeOp/Attribute:objclass' => 'object class', + 'Class:CMDBChangeOp/Attribute:objclass+' => 'class name of the object on which the change was made', + 'Class:CMDBChangeOp/Attribute:objkey' => 'object id', + 'Class:CMDBChangeOp/Attribute:objkey+' => 'id of the object on which the change was made', + 'Class:CMDBChangeOp/Attribute:finalclass' => 'CMDBChangeOp sub-class', 'Class:CMDBChangeOp/Attribute:finalclass+' => 'type of change which was performed', ]); @@ -278,7 +279,7 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:CMDBChangeOpCreate' => 'object creation', + 'Class:CMDBChangeOpCreate' => 'object creation', 'Class:CMDBChangeOpCreate+' => 'Object creation tracking', ]); @@ -287,7 +288,7 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:CMDBChangeOpDelete' => 'object deletion', + 'Class:CMDBChangeOpDelete' => 'object deletion', 'Class:CMDBChangeOpDelete+' => 'Object deletion tracking', ]); @@ -296,9 +297,9 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:CMDBChangeOpSetAttribute' => 'object change', - 'Class:CMDBChangeOpSetAttribute+' => 'Object properties change tracking', - 'Class:CMDBChangeOpSetAttribute/Attribute:attcode' => 'Attribute', + 'Class:CMDBChangeOpSetAttribute' => 'object change', + 'Class:CMDBChangeOpSetAttribute+' => 'Object properties change tracking', + 'Class:CMDBChangeOpSetAttribute/Attribute:attcode' => 'Attribute', 'Class:CMDBChangeOpSetAttribute/Attribute:attcode+' => 'code of the modified property', ]); @@ -307,31 +308,31 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:CMDBChangeOpSetAttributeScalar' => 'property change', - 'Class:CMDBChangeOpSetAttributeScalar+' => 'Object scalar properties change tracking', - 'Class:CMDBChangeOpSetAttributeScalar/Attribute:oldvalue' => 'Previous value', + 'Class:CMDBChangeOpSetAttributeScalar' => 'property change', + 'Class:CMDBChangeOpSetAttributeScalar+' => 'Object scalar properties change tracking', + 'Class:CMDBChangeOpSetAttributeScalar/Attribute:oldvalue' => 'Previous value', 'Class:CMDBChangeOpSetAttributeScalar/Attribute:oldvalue+' => 'previous value of the attribute', - 'Class:CMDBChangeOpSetAttributeScalar/Attribute:newvalue' => 'New value', + 'Class:CMDBChangeOpSetAttributeScalar/Attribute:newvalue' => 'New value', 'Class:CMDBChangeOpSetAttributeScalar/Attribute:newvalue+' => 'new value of the attribute', ]); // Used by CMDBChangeOp... & derived classes Dict::Add('EN US', 'English', 'English', [ - 'Change:ObjectCreated' => 'Object created', - 'Change:ObjectDeleted' => 'Object deleted', - 'Change:ObjectModified' => 'Object modified', - 'Change:TwoAttributesChanged' => 'Edited %1$s and %2$s', - 'Change:ThreeAttributesChanged' => 'Edited %1$s, %2$s and 1 other', - 'Change:FourOrMoreAttributesChanged' => 'Edited %1$s, %2$s and %3$s others', + 'Change:ObjectCreated' => 'Object created', + 'Change:ObjectDeleted' => 'Object deleted', + 'Change:ObjectModified' => 'Object modified', + 'Change:TwoAttributesChanged' => 'Edited %1$s and %2$s', + 'Change:ThreeAttributesChanged' => 'Edited %1$s, %2$s and 1 other', + 'Change:FourOrMoreAttributesChanged' => 'Edited %1$s, %2$s and %3$s others', 'Change:AttName_SetTo_NewValue_PreviousValue_OldValue' => '%1$s set to %2$s (previous value: %3$s)', - 'Change:AttName_SetTo' => '%1$s set to %2$s', - 'Change:Text_AppendedTo_AttName' => '%1$s appended to %2$s', - 'Change:AttName_Changed_PreviousValue_OldValue' => '%1$s modified, previous value: %2$s', - 'Change:AttName_Changed' => '%1$s modified', - 'Change:AttName_EntryAdded' => '%1$s modified, new entry added: %2$s', - 'Change:State_Changed_NewValue_OldValue' => 'Changed from %2$s to %1$s', - 'Change:LinkSet:Added' => 'added %1$s', - 'Change:LinkSet:Removed' => 'removed %1$s', - 'Change:LinkSet:Modified' => 'modified %1$s', + 'Change:AttName_SetTo' => '%1$s set to %2$s', + 'Change:Text_AppendedTo_AttName' => '%1$s appended to %2$s', + 'Change:AttName_Changed_PreviousValue_OldValue' => '%1$s modified, previous value: %2$s', + 'Change:AttName_Changed' => '%1$s modified', + 'Change:AttName_EntryAdded' => '%1$s modified, new entry added: %2$s', + 'Change:State_Changed_NewValue_OldValue' => 'Changed from %2$s to %1$s', + 'Change:LinkSet:Added' => 'added %1$s', + 'Change:LinkSet:Removed' => 'removed %1$s', + 'Change:LinkSet:Modified' => 'modified %1$s', ]); // @@ -339,9 +340,9 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:CMDBChangeOpSetAttributeBlob' => 'data change', - 'Class:CMDBChangeOpSetAttributeBlob+' => 'data change tracking', - 'Class:CMDBChangeOpSetAttributeBlob/Attribute:prevdata' => 'Previous data', + 'Class:CMDBChangeOpSetAttributeBlob' => 'data change', + 'Class:CMDBChangeOpSetAttributeBlob+' => 'data change tracking', + 'Class:CMDBChangeOpSetAttributeBlob/Attribute:prevdata' => 'Previous data', 'Class:CMDBChangeOpSetAttributeBlob/Attribute:prevdata+' => 'previous contents of the attribute', ]); @@ -350,9 +351,9 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:CMDBChangeOpSetAttributeText' => 'text change', - 'Class:CMDBChangeOpSetAttributeText+' => 'text change tracking', - 'Class:CMDBChangeOpSetAttributeText/Attribute:prevdata' => 'Previous data', + 'Class:CMDBChangeOpSetAttributeText' => 'text change', + 'Class:CMDBChangeOpSetAttributeText+' => 'text change tracking', + 'Class:CMDBChangeOpSetAttributeText/Attribute:prevdata' => 'Previous data', 'Class:CMDBChangeOpSetAttributeText/Attribute:prevdata+' => 'previous contents of the attribute', ]); @@ -361,15 +362,15 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:Event' => 'Log Event', - 'Class:Event+' => 'An application internal event', - 'Class:Event/Attribute:message' => 'Message', - 'Class:Event/Attribute:message+' => 'short description of the event', - 'Class:Event/Attribute:date' => 'Date', - 'Class:Event/Attribute:date+' => 'date and time at which the changes have been recorded', - 'Class:Event/Attribute:userinfo' => 'User info', - 'Class:Event/Attribute:userinfo+' => 'identification of the user that was doing the action that triggered this event', - 'Class:Event/Attribute:finalclass' => 'Event sub-class', + 'Class:Event' => 'Log Event', + 'Class:Event+' => 'An application internal event', + 'Class:Event/Attribute:message' => 'Message', + 'Class:Event/Attribute:message+' => 'short description of the event', + 'Class:Event/Attribute:date' => 'Date', + 'Class:Event/Attribute:date+' => 'date and time at which the changes have been recorded', + 'Class:Event/Attribute:userinfo' => 'User info', + 'Class:Event/Attribute:userinfo+' => 'identification of the user that was doing the action that triggered this event', + 'Class:Event/Attribute:finalclass' => 'Event sub-class', 'Class:Event/Attribute:finalclass+' => 'Name of the final class: specifies the sort of event which occurred', ]); @@ -378,15 +379,15 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:EventNotification' => 'Notification sent', - 'Class:EventNotification+' => 'Trace of a notification that has been sent', - 'Class:EventNotification/Attribute:trigger_id' => 'Trigger', - 'Class:EventNotification/Attribute:trigger_id+' => '', - 'Class:EventNotification/Attribute:action_id' => 'Action', - 'Class:EventNotification/Attribute:action_id+' => '', - 'Class:EventNotification/Attribute:object_id' => 'Object id', - 'Class:EventNotification/Attribute:object_id+' => 'object id (class defined by the trigger ?)', - 'Class:EventNotification/Attribute:object_class' => 'Object class', + 'Class:EventNotification' => 'Notification sent', + 'Class:EventNotification+' => 'Trace of a notification that has been sent', + 'Class:EventNotification/Attribute:trigger_id' => 'Trigger', + 'Class:EventNotification/Attribute:trigger_id+' => '', + 'Class:EventNotification/Attribute:action_id' => 'Action', + 'Class:EventNotification/Attribute:action_id+' => '', + 'Class:EventNotification/Attribute:object_id' => 'Object id', + 'Class:EventNotification/Attribute:object_id+' => 'object id (class defined by the trigger ?)', + 'Class:EventNotification/Attribute:object_class' => 'Object class', 'Class:EventNotification/Attribute:object_class+' => 'Object class (Same as trigger)', ]); @@ -395,21 +396,21 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:EventNotificationEmail' => 'Email sent', - 'Class:EventNotificationEmail+' => 'Trace of an email that has been sent', - 'Class:EventNotificationEmail/Attribute:to' => 'TO', - 'Class:EventNotificationEmail/Attribute:to+' => '', - 'Class:EventNotificationEmail/Attribute:cc' => 'CC', - 'Class:EventNotificationEmail/Attribute:cc+' => '', - 'Class:EventNotificationEmail/Attribute:bcc' => 'BCC', - 'Class:EventNotificationEmail/Attribute:bcc+' => '', - 'Class:EventNotificationEmail/Attribute:from' => 'From', - 'Class:EventNotificationEmail/Attribute:from+' => 'Sender of the message', - 'Class:EventNotificationEmail/Attribute:subject' => 'Subject', - 'Class:EventNotificationEmail/Attribute:subject+' => '', - 'Class:EventNotificationEmail/Attribute:body' => 'Body', - 'Class:EventNotificationEmail/Attribute:body+' => '', - 'Class:EventNotificationEmail/Attribute:attachments' => 'Attachments', + 'Class:EventNotificationEmail' => 'Email sent', + 'Class:EventNotificationEmail+' => 'Trace of an email that has been sent', + 'Class:EventNotificationEmail/Attribute:to' => 'TO', + 'Class:EventNotificationEmail/Attribute:to+' => '', + 'Class:EventNotificationEmail/Attribute:cc' => 'CC', + 'Class:EventNotificationEmail/Attribute:cc+' => '', + 'Class:EventNotificationEmail/Attribute:bcc' => 'BCC', + 'Class:EventNotificationEmail/Attribute:bcc+' => '', + 'Class:EventNotificationEmail/Attribute:from' => 'From', + 'Class:EventNotificationEmail/Attribute:from+' => 'Sender of the message', + 'Class:EventNotificationEmail/Attribute:subject' => 'Subject', + 'Class:EventNotificationEmail/Attribute:subject+' => '', + 'Class:EventNotificationEmail/Attribute:body' => 'Body', + 'Class:EventNotificationEmail/Attribute:body+' => '', + 'Class:EventNotificationEmail/Attribute:attachments' => 'Attachments', 'Class:EventNotificationEmail/Attribute:attachments+' => '', ]); @@ -418,22 +419,22 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:EventIssue' => 'Issue event', - 'Class:EventIssue+' => 'Trace of an issue (warning, error, etc.)', - 'Class:EventIssue/Attribute:issue' => 'Issue', - 'Class:EventIssue/Attribute:issue+' => 'What happened', - 'Class:EventIssue/Attribute:impact' => 'Impact', - 'Class:EventIssue/Attribute:impact+' => 'What are the consequences', - 'Class:EventIssue/Attribute:page' => 'Page', - 'Class:EventIssue/Attribute:page+' => 'HTTP entry point', - 'Class:EventIssue/Attribute:arguments_post' => 'Posted arguments', + 'Class:EventIssue' => 'Issue event', + 'Class:EventIssue+' => 'Trace of an issue (warning, error, etc.)', + 'Class:EventIssue/Attribute:issue' => 'Issue', + 'Class:EventIssue/Attribute:issue+' => 'What happened', + 'Class:EventIssue/Attribute:impact' => 'Impact', + 'Class:EventIssue/Attribute:impact+' => 'What are the consequences', + 'Class:EventIssue/Attribute:page' => 'Page', + 'Class:EventIssue/Attribute:page+' => 'HTTP entry point', + 'Class:EventIssue/Attribute:arguments_post' => 'Posted arguments', 'Class:EventIssue/Attribute:arguments_post+' => 'HTTP POST arguments', - 'Class:EventIssue/Attribute:arguments_get' => 'URL arguments', - 'Class:EventIssue/Attribute:arguments_get+' => 'HTTP GET arguments', - 'Class:EventIssue/Attribute:callstack' => 'Callstack', - 'Class:EventIssue/Attribute:callstack+' => '', - 'Class:EventIssue/Attribute:data' => 'Data', - 'Class:EventIssue/Attribute:data+' => 'More information', + 'Class:EventIssue/Attribute:arguments_get' => 'URL arguments', + 'Class:EventIssue/Attribute:arguments_get+' => 'HTTP GET arguments', + 'Class:EventIssue/Attribute:callstack' => 'Callstack', + 'Class:EventIssue/Attribute:callstack+' => '', + 'Class:EventIssue/Attribute:data' => 'Data', + 'Class:EventIssue/Attribute:data+' => 'More information', ]); // @@ -441,37 +442,37 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:EventWebService' => 'Web service event', - 'Class:EventWebService+' => 'Trace of a web service call', - 'Class:EventWebService/Attribute:verb' => 'Verb', - 'Class:EventWebService/Attribute:verb+' => 'Name of the operation', - 'Class:EventWebService/Attribute:result' => 'Result', - 'Class:EventWebService/Attribute:result+' => 'Overall success/failure', - 'Class:EventWebService/Attribute:log_info' => 'Info log', - 'Class:EventWebService/Attribute:log_info+' => 'Result info log', - 'Class:EventWebService/Attribute:log_warning' => 'Warning log', + 'Class:EventWebService' => 'Web service event', + 'Class:EventWebService+' => 'Trace of a web service call', + 'Class:EventWebService/Attribute:verb' => 'Verb', + 'Class:EventWebService/Attribute:verb+' => 'Name of the operation', + 'Class:EventWebService/Attribute:result' => 'Result', + 'Class:EventWebService/Attribute:result+' => 'Overall success/failure', + 'Class:EventWebService/Attribute:log_info' => 'Info log', + 'Class:EventWebService/Attribute:log_info+' => 'Result info log', + 'Class:EventWebService/Attribute:log_warning' => 'Warning log', 'Class:EventWebService/Attribute:log_warning+' => 'Result warning log', - 'Class:EventWebService/Attribute:log_error' => 'Error log', - 'Class:EventWebService/Attribute:log_error+' => 'Result error log', - 'Class:EventWebService/Attribute:data' => 'Data', - 'Class:EventWebService/Attribute:data+' => 'Result data', + 'Class:EventWebService/Attribute:log_error' => 'Error log', + 'Class:EventWebService/Attribute:log_error+' => 'Result error log', + 'Class:EventWebService/Attribute:data' => 'Data', + 'Class:EventWebService/Attribute:data+' => 'Result data', ]); Dict::Add('EN US', 'English', 'English', [ - 'Class:EventRestService' => 'REST/JSON call', - 'Class:EventRestService+' => 'Trace of a REST/JSON service call', - 'Class:EventRestService/Attribute:operation' => 'Operation', - 'Class:EventRestService/Attribute:operation+' => 'Argument \'operation\'', - 'Class:EventRestService/Attribute:version' => 'Version', - 'Class:EventRestService/Attribute:version+' => 'Argument \'version\'', - 'Class:EventRestService/Attribute:json_input' => 'Input', - 'Class:EventRestService/Attribute:json_input+' => 'Argument \'json_data\'', - 'Class:EventRestService/Attribute:code' => 'Code', - 'Class:EventRestService/Attribute:code+' => 'Result code', - 'Class:EventRestService/Attribute:json_output' => 'Response', + 'Class:EventRestService' => 'REST/JSON call', + 'Class:EventRestService+' => 'Trace of a REST/JSON service call', + 'Class:EventRestService/Attribute:operation' => 'Operation', + 'Class:EventRestService/Attribute:operation+' => 'Argument \'operation\'', + 'Class:EventRestService/Attribute:version' => 'Version', + 'Class:EventRestService/Attribute:version+' => 'Argument \'version\'', + 'Class:EventRestService/Attribute:json_input' => 'Input', + 'Class:EventRestService/Attribute:json_input+' => 'Argument \'json_data\'', + 'Class:EventRestService/Attribute:code' => 'Code', + 'Class:EventRestService/Attribute:code+' => 'Result code', + 'Class:EventRestService/Attribute:json_output' => 'Response', 'Class:EventRestService/Attribute:json_output+' => 'HTTP response (json)', - 'Class:EventRestService/Attribute:provider' => 'Provider', - 'Class:EventRestService/Attribute:provider+' => 'PHP class implementing the expected operation', + 'Class:EventRestService/Attribute:provider' => 'Provider', + 'Class:EventRestService/Attribute:provider+' => 'PHP class implementing the expected operation', ]); // @@ -479,13 +480,13 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:EventLoginUsage' => 'Login Usage', - 'Class:EventLoginUsage+' => 'Connection to the application', - 'Class:EventLoginUsage/Attribute:user_id' => 'Login', - 'Class:EventLoginUsage/Attribute:user_id+' => '', - 'Class:EventLoginUsage/Attribute:contact_name' => 'User Name', - 'Class:EventLoginUsage/Attribute:contact_name+' => '', - 'Class:EventLoginUsage/Attribute:contact_email' => 'User Email', + 'Class:EventLoginUsage' => 'Login Usage', + 'Class:EventLoginUsage+' => 'Connection to the application', + 'Class:EventLoginUsage/Attribute:user_id' => 'Login', + 'Class:EventLoginUsage/Attribute:user_id+' => '', + 'Class:EventLoginUsage/Attribute:contact_name' => 'User Name', + 'Class:EventLoginUsage/Attribute:contact_name+' => '', + 'Class:EventLoginUsage/Attribute:contact_email' => 'User Email', 'Class:EventLoginUsage/Attribute:contact_email+' => 'Email Address of the User', ]); @@ -494,36 +495,36 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:EventNotificationNewsroom' => 'News sent', - 'Class:EventNotificationNewsroom+' => '', - 'Class:EventNotificationNewsroom/Attribute:title' => 'Title', - 'Class:EventNotificationNewsroom/Attribute:title+' => '', - 'Class:EventNotificationNewsroom/Attribute:icon' => 'Icon', - 'Class:EventNotificationNewsroom/Attribute:icon+' => '', - 'Class:EventNotificationNewsroom/Attribute:priority' => 'Priority', - 'Class:EventNotificationNewsroom/Attribute:priority+' => '', - 'Class:EventNotificationNewsroom/Attribute:priority/Value:1' => 'Critical', + 'Class:EventNotificationNewsroom' => 'News sent', + 'Class:EventNotificationNewsroom+' => '', + 'Class:EventNotificationNewsroom/Attribute:title' => 'Title', + 'Class:EventNotificationNewsroom/Attribute:title+' => '', + 'Class:EventNotificationNewsroom/Attribute:icon' => 'Icon', + 'Class:EventNotificationNewsroom/Attribute:icon+' => '', + 'Class:EventNotificationNewsroom/Attribute:priority' => 'Priority', + 'Class:EventNotificationNewsroom/Attribute:priority+' => '', + 'Class:EventNotificationNewsroom/Attribute:priority/Value:1' => 'Critical', 'Class:EventNotificationNewsroom/Attribute:priority/Value:1+' => 'Critical', - 'Class:EventNotificationNewsroom/Attribute:priority/Value:2' => 'Urgent', + 'Class:EventNotificationNewsroom/Attribute:priority/Value:2' => 'Urgent', 'Class:EventNotificationNewsroom/Attribute:priority/Value:2+' => 'Urgent', - 'Class:EventNotificationNewsroom/Attribute:priority/Value:3' => 'Important', + 'Class:EventNotificationNewsroom/Attribute:priority/Value:3' => 'Important', 'Class:EventNotificationNewsroom/Attribute:priority/Value:3+' => 'Important', - 'Class:EventNotificationNewsroom/Attribute:priority/Value:4' => 'Standard', + 'Class:EventNotificationNewsroom/Attribute:priority/Value:4' => 'Standard', 'Class:EventNotificationNewsroom/Attribute:priority/Value:4+' => 'Standard', - 'Class:EventNotificationNewsroom/Attribute:url' => 'URL', - 'Class:EventNotificationNewsroom/Attribute:url+' => '', - 'Class:EventNotificationNewsroom/Attribute:read' => 'Read', - 'Class:EventNotificationNewsroom/Attribute:read+' => '', - 'Class:EventNotificationNewsroom/Attribute:read/Value:no' => 'No', - 'Class:EventNotificationNewsroom/Attribute:read/Value:no+' => 'No', - 'Class:EventNotificationNewsroom/Attribute:read/Value:yes' => 'Yes', - 'Class:EventNotificationNewsroom/Attribute:read/Value:yes+' => 'Yes', - 'Class:EventNotificationNewsroom/Attribute:read_date' => 'Read date', - 'Class:EventNotificationNewsroom/Attribute:read_date+' => '', - 'Class:EventNotificationNewsroom/Attribute:contact_id' => 'Contact', - 'Class:EventNotificationNewsroom/Attribute:contact_id+' => '', - 'Core:EventNotificationNewsroom:ErrorNotificationNotSent' => 'Notification not sent', - 'Core:EventNotificationNewsroom:ErrorOnDBInsert' => 'An error occurred while saving the notification', + 'Class:EventNotificationNewsroom/Attribute:url' => 'URL', + 'Class:EventNotificationNewsroom/Attribute:url+' => '', + 'Class:EventNotificationNewsroom/Attribute:read' => 'Read', + 'Class:EventNotificationNewsroom/Attribute:read+' => '', + 'Class:EventNotificationNewsroom/Attribute:read/Value:no' => 'No', + 'Class:EventNotificationNewsroom/Attribute:read/Value:no+' => 'No', + 'Class:EventNotificationNewsroom/Attribute:read/Value:yes' => 'Yes', + 'Class:EventNotificationNewsroom/Attribute:read/Value:yes+' => 'Yes', + 'Class:EventNotificationNewsroom/Attribute:read_date' => 'Read date', + 'Class:EventNotificationNewsroom/Attribute:read_date+' => '', + 'Class:EventNotificationNewsroom/Attribute:contact_id' => 'Contact', + 'Class:EventNotificationNewsroom/Attribute:contact_id+' => '', + 'Core:EventNotificationNewsroom:ErrorNotificationNotSent' => 'Notification not sent', + 'Core:EventNotificationNewsroom:ErrorOnDBInsert' => 'An error occurred while saving the notification', ]); // @@ -531,35 +532,35 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:Action' => 'Action', - 'Class:Action+' => 'User defined action', - 'Class:Action/ComplementaryName' => '%1$s: %2$s', - 'Class:Action/Attribute:name' => 'Name', - 'Class:Action/Attribute:name+' => 'Any value that is meaningful to distinguish this action from the others', - 'Class:Action/Attribute:description' => 'Description', - 'Class:Action/Attribute:description+' => 'A longer explanation about the purpose of this action. For information only.', - 'Class:Action/Attribute:status' => 'Status', - 'Class:Action/Attribute:status+' => 'This status drives the action behavior', - 'Class:Action/Attribute:status/Value:test' => 'Being tested', - 'Class:Action/Attribute:status/Value:test+' => '', - 'Class:Action/Attribute:status/Value:enabled' => 'In production', - 'Class:Action/Attribute:status/Value:enabled+' => '', - 'Class:Action/Attribute:status/Value:disabled' => 'Inactive', - 'Class:Action/Attribute:status/Value:disabled+' => '', - 'Class:Action/Attribute:trigger_list' => 'Related Triggers', - 'Class:Action/Attribute:trigger_list+' => 'Triggers linked to this action', - 'Class:Action/Attribute:asynchronous' => 'Asynchronous', - 'Class:Action/Attribute:asynchronous+' => 'Whether this action should be executed in the background or not', + 'Class:Action' => 'Action', + 'Class:Action+' => 'User defined action', + 'Class:Action/ComplementaryName' => '%1$s: %2$s', + 'Class:Action/Attribute:name' => 'Name', + 'Class:Action/Attribute:name+' => 'Any value that is meaningful to distinguish this action from the others', + 'Class:Action/Attribute:description' => 'Description', + 'Class:Action/Attribute:description+' => 'A longer explanation about the purpose of this action. For information only.', + 'Class:Action/Attribute:status' => 'Status', + 'Class:Action/Attribute:status+' => 'This status drives the action behavior', + 'Class:Action/Attribute:status/Value:test' => 'Being tested', + 'Class:Action/Attribute:status/Value:test+' => '', + 'Class:Action/Attribute:status/Value:enabled' => 'In production', + 'Class:Action/Attribute:status/Value:enabled+' => '', + 'Class:Action/Attribute:status/Value:disabled' => 'Inactive', + 'Class:Action/Attribute:status/Value:disabled+' => '', + 'Class:Action/Attribute:trigger_list' => 'Related Triggers', + 'Class:Action/Attribute:trigger_list+' => 'Triggers linked to this action', + 'Class:Action/Attribute:asynchronous' => 'Asynchronous', + 'Class:Action/Attribute:asynchronous+' => 'Whether this action should be executed in the background or not', 'Class:Action/Attribute:asynchronous/Value:use_global_setting' => 'Use global setting', - 'Class:Action/Attribute:asynchronous/Value:yes' => 'Yes', - 'Class:Action/Attribute:asynchronous/Value:no' => 'No', - 'Class:Action/Attribute:finalclass' => 'Action sub-class', - 'Class:Action/Attribute:finalclass+' => 'Name of the final class', - 'Action:WarningNoTriggerLinked' => 'Warning, no trigger is linked to the action. It will not be active until it has at least 1.', - 'Action:last_executions_tab' => 'Last executions', - 'Action:last_executions_tab_panel_title' => 'Executions of this action (%1$s)', - 'Action:last_executions_tab_limit_days' => 'past %1$s days', - 'Action:last_executions_tab_limit_none' => 'no limit', + 'Class:Action/Attribute:asynchronous/Value:yes' => 'Yes', + 'Class:Action/Attribute:asynchronous/Value:no' => 'No', + 'Class:Action/Attribute:finalclass' => 'Action sub-class', + 'Class:Action/Attribute:finalclass+' => 'Name of the final class', + 'Action:WarningNoTriggerLinked' => 'Warning, no trigger is linked to the action. It will not be active until it has at least 1.', + 'Action:last_executions_tab' => 'Last executions', + 'Action:last_executions_tab_panel_title' => 'Executions of this action (%1$s)', + 'Action:last_executions_tab_limit_days' => 'past %1$s days', + 'Action:last_executions_tab_limit_none' => 'no limit', ]); // @@ -567,9 +568,9 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:ActionNotification' => 'Notification Action', - 'Class:ActionNotification+' => 'Notification Action (abstract)', - 'Class:ActionNotification/Attribute:language' => 'Language', + 'Class:ActionNotification' => 'Notification Action', + 'Class:ActionNotification+' => 'Notification Action (abstract)', + 'Class:ActionNotification/Attribute:language' => 'Language', 'Class:ActionNotification/Attribute:language+' => 'Language to use for placeholders ($xxx$) inside the message (state, importance, priority, etc)', ]); @@ -578,15 +579,15 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:lnkActionNotificationToContact' => 'Link ActionNotification / Contact', - 'Class:lnkActionNotificationToContact+' => 'Contact subscription to Notification Action', - 'Class:lnkActionNotificationToContact/Attribute:contact_id' => 'Contact', + 'Class:lnkActionNotificationToContact' => 'Link ActionNotification / Contact', + 'Class:lnkActionNotificationToContact+' => 'Contact subscription to Notification Action', + 'Class:lnkActionNotificationToContact/Attribute:contact_id' => 'Contact', 'Class:lnkActionNotificationToContact/Attribute:contact_id+' => 'Contact who subscribed (or not) to the notification', - 'Class:lnkActionNotificationToContact/Attribute:action_id' => 'Action', - 'Class:lnkActionNotificationToContact/Attribute:action_id+' => 'The notification that the contact received at least once, and to which he can subscribe or unsubscribe', - 'Class:lnkActionNotificationToContact/Attribute:trigger_id' => 'Trigger', + 'Class:lnkActionNotificationToContact/Attribute:action_id' => 'Action', + 'Class:lnkActionNotificationToContact/Attribute:action_id+' => 'The notification that the contact received at least once, and to which he can subscribe or unsubscribe', + 'Class:lnkActionNotificationToContact/Attribute:trigger_id' => 'Trigger', 'Class:lnkActionNotificationToContact/Attribute:trigger_id+' => 'The trigger that fired the notification', - 'Class:lnkActionNotificationToContact/Attribute:subscribed' => 'Subscribed', + 'Class:lnkActionNotificationToContact/Attribute:subscribed' => 'Subscribed', 'Class:lnkActionNotificationToContact/Attribute:subscribed+' => 'If the contact unsubscribed (no) or is subscribed (yes and default) to the notification', ]); @@ -670,40 +671,40 @@ While editing, click on the magnifier to get pertinent examples', // Dict::Add('EN US', 'English', 'English', [ - 'ActionNewsroom:trigger' => 'Trigger', - 'ActionNewsroom:content' => 'Message', - 'ActionNewsroom:settings' => 'Settings', - 'Class:ActionNewsroom' => 'Notification by Newsroom', - 'Class:ActionNewsroom+' => '', - 'Class:ActionNewsroom/Attribute:title' => 'Title', - 'Class:ActionNewsroom/Attribute:title+' => 'Title of the news. Can contain placeholders like $this->attribute_code$', - 'Class:ActionNewsroom/Attribute:message' => 'Message', - 'Class:ActionNewsroom/Attribute:message+' => 'Contents of the news, in Markdown format not HTML. Can contain placeholders like: + 'ActionNewsroom:trigger' => 'Trigger', + 'ActionNewsroom:content' => 'Message', + 'ActionNewsroom:settings' => 'Settings', + 'Class:ActionNewsroom' => 'Notification by Newsroom', + 'Class:ActionNewsroom+' => '', + 'Class:ActionNewsroom/Attribute:title' => 'Title', + 'Class:ActionNewsroom/Attribute:title+' => 'Title of the news. Can contain placeholders like $this->attribute_code$', + 'Class:ActionNewsroom/Attribute:message' => 'Message', + 'Class:ActionNewsroom/Attribute:message+' => 'Contents of the news, in Markdown format not HTML. Can contain placeholders like: - $this->attribute_code$ any attribute of the object triggering the notification, - $this->attribute_external_key->attribute$ recursive syntax for any remote attribute, - $current_contact->attribute$ attribute of the Person who triggered the notification', - 'Class:ActionNewsroom/Attribute:icon' => 'Icon', - 'Class:ActionNewsroom/Attribute:icon+' => 'Icon to appear next to the news in the newsroom. + 'Class:ActionNewsroom/Attribute:icon' => 'Icon', + 'Class:ActionNewsroom/Attribute:icon+' => 'Icon to appear next to the news in the newsroom. - If filled, the custom icon will be used - Else the icon of the triggering object if there is one (e.g. picture of a Person), - Else the icon of the triggering object class, - Otherwise, the application compact logo will be used', - 'Class:ActionNewsroom/Attribute:priority' => 'Priority', - 'Class:ActionNewsroom/Attribute:priority+' => 'News will be ordered by decreasing priority, when displayed in the Newsroom popup', - 'Class:ActionNewsroom/Attribute:priority/Value:1' => 'Critical', - 'Class:ActionNewsroom/Attribute:priority/Value:1+' => 'Critical', - 'Class:ActionNewsroom/Attribute:priority/Value:2' => 'Urgent', - 'Class:ActionNewsroom/Attribute:priority/Value:2+' => 'Urgent', - 'Class:ActionNewsroom/Attribute:priority/Value:3' => 'Important', - 'Class:ActionNewsroom/Attribute:priority/Value:3+' => 'Important', - 'Class:ActionNewsroom/Attribute:priority/Value:4' => 'Standard', - 'Class:ActionNewsroom/Attribute:priority/Value:4+' => 'Standard', - 'Class:ActionNewsroom/Attribute:test_recipient_id' => 'Test recipient', + 'Class:ActionNewsroom/Attribute:priority' => 'Priority', + 'Class:ActionNewsroom/Attribute:priority+' => 'News will be ordered by decreasing priority, when displayed in the Newsroom popup', + 'Class:ActionNewsroom/Attribute:priority/Value:1' => 'Critical', + 'Class:ActionNewsroom/Attribute:priority/Value:1+' => 'Critical', + 'Class:ActionNewsroom/Attribute:priority/Value:2' => 'Urgent', + 'Class:ActionNewsroom/Attribute:priority/Value:2+' => 'Urgent', + 'Class:ActionNewsroom/Attribute:priority/Value:3' => 'Important', + 'Class:ActionNewsroom/Attribute:priority/Value:3+' => 'Important', + 'Class:ActionNewsroom/Attribute:priority/Value:4' => 'Standard', + 'Class:ActionNewsroom/Attribute:priority/Value:4+' => 'Standard', + 'Class:ActionNewsroom/Attribute:test_recipient_id' => 'Test recipient', 'Class:ActionNewsroom/Attribute:test_recipient_id+' => 'Person used instead of Recipients when notification is being tested', - 'Class:ActionNewsroom/Attribute:recipients' => 'Recipients', - 'Class:ActionNewsroom/Attribute:recipients+' => 'An OQL query returning Contact objects', - 'Class:ActionNewsroom/Attribute:url' => 'URL', - 'Class:ActionNewsroom/Attribute:url+' => 'By default, it points to the object triggering the notification. But you can also specify a custom URL.', + 'Class:ActionNewsroom/Attribute:recipients' => 'Recipients', + 'Class:ActionNewsroom/Attribute:recipients+' => 'An OQL query returning Contact objects', + 'Class:ActionNewsroom/Attribute:url' => 'URL', + 'Class:ActionNewsroom/Attribute:url+' => 'By default, it points to the object triggering the notification. But you can also specify a custom URL.', ]); // @@ -711,24 +712,24 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:Trigger' => 'Trigger', - 'Class:Trigger+' => 'Custom event handler', - 'Class:Trigger/ComplementaryName' => '%1$s, %2$s', - 'Class:Trigger/Attribute:description' => 'Description', - 'Class:Trigger/Attribute:description+' => 'Be precise as your users will base their potential unsubscription on this information', - 'Class:Trigger/Attribute:action_list' => 'Triggered actions', - 'Class:Trigger/Attribute:action_list+' => 'Actions performed when the trigger is activated', - 'Class:Trigger/Attribute:finalclass' => 'Trigger sub-class', - 'Class:Trigger/Attribute:finalclass+' => 'Name of the final class', - 'Class:Trigger/Attribute:context' => 'Context', - 'Class:Trigger/Attribute:context+' => 'Context to allow the trigger to start', - 'Class:Trigger/Attribute:complement' => 'Additional information', - 'Class:Trigger/Attribute:complement+' => 'Computed automatically in english for triggers derived from TriggerOnObject', - 'Class:Trigger/Attribute:subscription_policy' => 'Subscription policy', - 'Class:Trigger/Attribute:subscription_policy+' => 'Allows users to unsubscribe from the trigger', - 'Class:Trigger/Attribute:subscription_policy/Value:allow_no_channel' => 'Allow complete unsubscription', + 'Class:Trigger' => 'Trigger', + 'Class:Trigger+' => 'Custom event handler', + 'Class:Trigger/ComplementaryName' => '%1$s, %2$s', + 'Class:Trigger/Attribute:description' => 'Description', + 'Class:Trigger/Attribute:description+' => 'Be precise as your users will base their potential unsubscription on this information', + 'Class:Trigger/Attribute:action_list' => 'Triggered actions', + 'Class:Trigger/Attribute:action_list+' => 'Actions performed when the trigger is activated', + 'Class:Trigger/Attribute:finalclass' => 'Trigger sub-class', + 'Class:Trigger/Attribute:finalclass+' => 'Name of the final class', + 'Class:Trigger/Attribute:context' => 'Context', + 'Class:Trigger/Attribute:context+' => 'Context to allow the trigger to start', + 'Class:Trigger/Attribute:complement' => 'Additional information', + 'Class:Trigger/Attribute:complement+' => 'Computed automatically in english for triggers derived from TriggerOnObject', + 'Class:Trigger/Attribute:subscription_policy' => 'Subscription policy', + 'Class:Trigger/Attribute:subscription_policy+' => 'Allows users to unsubscribe from the trigger', + 'Class:Trigger/Attribute:subscription_policy/Value:allow_no_channel' => 'Allow complete unsubscription', 'Class:Trigger/Attribute:subscription_policy/Value:force_at_least_one_channel' => 'Force at least one channel (News or Email)', - 'Class:Trigger/Attribute:subscription_policy/Value:force_all_channels' => 'Deny unsubscription', + 'Class:Trigger/Attribute:subscription_policy/Value:force_all_channels' => 'Deny unsubscription', ]); // @@ -751,7 +752,7 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:TriggerOnPortalUpdate' => 'Trigger (when updated from the portal)', + 'Class:TriggerOnPortalUpdate' => 'Trigger (when updated from the portal)', 'Class:TriggerOnPortalUpdate+' => 'Trigger on an end-user\'s update from the portal', ]); @@ -760,9 +761,9 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:TriggerOnStateChange' => 'Trigger (on state change)', - 'Class:TriggerOnStateChange+' => 'Trigger on object state change', - 'Class:TriggerOnStateChange/Attribute:state' => 'State', + 'Class:TriggerOnStateChange' => 'Trigger (on state change)', + 'Class:TriggerOnStateChange+' => 'Trigger on object state change', + 'Class:TriggerOnStateChange/Attribute:state' => 'State', 'Class:TriggerOnStateChange/Attribute:state+' => '', ]); @@ -771,7 +772,7 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:TriggerOnStateEnter' => 'Trigger (on entering a state)', + 'Class:TriggerOnStateEnter' => 'Trigger (on entering a state)', 'Class:TriggerOnStateEnter+' => 'Trigger on object state change - entering', ]); @@ -780,7 +781,7 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:TriggerOnStateLeave' => 'Trigger (on leaving a state)', + 'Class:TriggerOnStateLeave' => 'Trigger (on leaving a state)', 'Class:TriggerOnStateLeave+' => 'Trigger on object state change - leaving', ]); @@ -789,7 +790,7 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:TriggerOnObjectCreate' => 'Trigger (on object creation)', + 'Class:TriggerOnObjectCreate' => 'Trigger (on object creation)', 'Class:TriggerOnObjectCreate+' => 'Trigger on object creation of [a child class of] the given class', ]); @@ -798,7 +799,7 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:TriggerOnObjectDelete' => 'Trigger (on object deletion)', + 'Class:TriggerOnObjectDelete' => 'Trigger (on object deletion)', 'Class:TriggerOnObjectDelete+' => 'Trigger on object deletion of [a child class of] the given class', ]); @@ -807,10 +808,10 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:TriggerOnObjectUpdate' => 'Trigger (on object update)', - 'Class:TriggerOnObjectUpdate+' => 'Trigger on object update of [a child class of] the given class', - 'Class:TriggerOnObjectUpdate/Attribute:filter+' => 'This filter is computed after the object update in database. It restricts the objects which can trigger the actions', - 'Class:TriggerOnObjectUpdate/Attribute:target_attcodes' => 'Target fields', + 'Class:TriggerOnObjectUpdate' => 'Trigger (on object update)', + 'Class:TriggerOnObjectUpdate+' => 'Trigger on object update of [a child class of] the given class', + 'Class:TriggerOnObjectUpdate/Attribute:filter+' => 'This filter is computed after the object update in database. It restricts the objects which can trigger the actions', + 'Class:TriggerOnObjectUpdate/Attribute:target_attcodes' => 'Target fields', 'Class:TriggerOnObjectUpdate/Attribute:target_attcodes+' => '', ]); @@ -819,9 +820,9 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:TriggerOnObjectMention' => 'Trigger (on object mention)', - 'Class:TriggerOnObjectMention+' => 'Trigger on mention (@xxx) of an object of [a child class of] the given class in a log attribute', - 'Class:TriggerOnObjectMention/Attribute:mentioned_filter' => 'Mentioned filter', + 'Class:TriggerOnObjectMention' => 'Trigger (on object mention)', + 'Class:TriggerOnObjectMention+' => 'Trigger on mention (@xxx) of an object of [a child class of] the given class in a log attribute', + 'Class:TriggerOnObjectMention/Attribute:mentioned_filter' => 'Mentioned filter', 'Class:TriggerOnObjectMention/Attribute:mentioned_filter+' => 'Limit the list of mentioned objects which will activate the trigger. If empty, any mentioned object (of any class) will activate it.', ]); @@ -830,9 +831,9 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:TriggerOnAttributeBlobDownload' => 'Trigger (on object\'s document download)', - 'Class:TriggerOnAttributeBlobDownload+' => 'Trigger on object\'s document field download of [a child class of] the given class', - 'Class:TriggerOnAttributeBlobDownload/Attribute:target_attcodes' => 'Target fields', + 'Class:TriggerOnAttributeBlobDownload' => 'Trigger (on object\'s document download)', + 'Class:TriggerOnAttributeBlobDownload+' => 'Trigger on object\'s document field download of [a child class of] the given class', + 'Class:TriggerOnAttributeBlobDownload/Attribute:target_attcodes' => 'Target fields', 'Class:TriggerOnAttributeBlobDownload/Attribute:target_attcodes+' => '', ]); @@ -841,11 +842,11 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:TriggerOnThresholdReached' => 'Trigger (on threshold)', - 'Class:TriggerOnThresholdReached+' => 'Trigger on Stop-Watch threshold reached', - 'Class:TriggerOnThresholdReached/Attribute:stop_watch_code' => 'Stop watch', + 'Class:TriggerOnThresholdReached' => 'Trigger (on threshold)', + 'Class:TriggerOnThresholdReached+' => 'Trigger on Stop-Watch threshold reached', + 'Class:TriggerOnThresholdReached/Attribute:stop_watch_code' => 'Stop watch', 'Class:TriggerOnThresholdReached/Attribute:stop_watch_code+' => '', - 'Class:TriggerOnThresholdReached/Attribute:threshold_index' => 'Threshold', + 'Class:TriggerOnThresholdReached/Attribute:threshold_index' => 'Threshold', 'Class:TriggerOnThresholdReached/Attribute:threshold_index+' => '', ]); @@ -854,18 +855,18 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:lnkTriggerAction' => 'Action/Trigger', - 'Class:lnkTriggerAction+' => 'Link between a trigger and an action', - 'Class:lnkTriggerAction/Attribute:action_id' => 'Action', - 'Class:lnkTriggerAction/Attribute:action_id+' => 'The action to be executed', - 'Class:lnkTriggerAction/Attribute:action_name' => 'Action', - 'Class:lnkTriggerAction/Attribute:action_name+' => '', - 'Class:lnkTriggerAction/Attribute:trigger_id' => 'Trigger', - 'Class:lnkTriggerAction/Attribute:trigger_id+' => '', - 'Class:lnkTriggerAction/Attribute:trigger_name' => 'Trigger', + 'Class:lnkTriggerAction' => 'Action/Trigger', + 'Class:lnkTriggerAction+' => 'Link between a trigger and an action', + 'Class:lnkTriggerAction/Attribute:action_id' => 'Action', + 'Class:lnkTriggerAction/Attribute:action_id+' => 'The action to be executed', + 'Class:lnkTriggerAction/Attribute:action_name' => 'Action', + 'Class:lnkTriggerAction/Attribute:action_name+' => '', + 'Class:lnkTriggerAction/Attribute:trigger_id' => 'Trigger', + 'Class:lnkTriggerAction/Attribute:trigger_id+' => '', + 'Class:lnkTriggerAction/Attribute:trigger_name' => 'Trigger', 'Class:lnkTriggerAction/Attribute:trigger_name+' => '', - 'Class:lnkTriggerAction/Attribute:order' => 'Order', - 'Class:lnkTriggerAction/Attribute:order+' => 'Actions execution order', + 'Class:lnkTriggerAction/Attribute:order' => 'Order', + 'Class:lnkTriggerAction/Attribute:order+' => 'Actions execution order', ]); // @@ -1044,45 +1045,45 @@ The hyperlink is displayed in the tooltip appearing on the “Lock” symbol of 'Class:SynchroAttLinkSet/Attribute:row_separator' => 'Rows separator', 'Class:SynchroAttLinkSet/Attribute:attribute_separator' => 'Attributes separator', 'Class:SynchroLog' => 'Synchro Log', - 'Class:SynchroLog/Attribute:sync_source_id' => 'Synchro Data Source', - 'Class:SynchroLog/Attribute:start_date' => 'Start Date', - 'Class:SynchroLog/Attribute:end_date' => 'End Date', - 'Class:SynchroLog/Attribute:status' => 'Status', - 'Class:SynchroLog/Attribute:status/Value:completed' => 'Completed', - 'Class:SynchroLog/Attribute:status/Value:error' => 'Error', - 'Class:SynchroLog/Attribute:status/Value:running' => 'Still Running', - 'Class:SynchroLog/Attribute:stats_nb_replica_seen' => 'Nb replica seen', - 'Class:SynchroLog/Attribute:stats_nb_replica_total' => 'Nb replica total', - 'Class:SynchroLog/Attribute:stats_nb_obj_deleted' => 'Nb objects deleted', - 'Class:SynchroLog/Attribute:stats_nb_obj_deleted_errors' => 'Nb of errors while deleting', - 'Class:SynchroLog/Attribute:stats_nb_obj_obsoleted' => 'Nb objects obsoleted', - 'Class:SynchroLog/Attribute:stats_nb_obj_obsoleted_errors' => 'Nb of errors while obsoleting', - 'Class:SynchroLog/Attribute:stats_nb_obj_created' => 'Nb objects created', - 'Class:SynchroLog/Attribute:stats_nb_obj_created_errors' => 'Nb or errors while creating', - 'Class:SynchroLog/Attribute:stats_nb_obj_updated' => 'Nb objects updated', - 'Class:SynchroLog/Attribute:stats_nb_obj_updated_errors' => 'Nb errors while updating', - 'Class:SynchroLog/Attribute:stats_nb_replica_reconciled_errors' => 'Nb of errors during reconciliation', - 'Class:SynchroLog/Attribute:stats_nb_replica_disappeared_no_action' => 'Nb replica disappeared', - 'Class:SynchroLog/Attribute:stats_nb_obj_new_updated' => 'Nb objects updated', - 'Class:SynchroLog/Attribute:stats_nb_obj_new_unchanged' => 'Nb objects unchanged', - 'Class:SynchroLog/Attribute:last_error' => 'Last error', - 'Class:SynchroLog/Attribute:traces' => 'Traces', - 'Class:SynchroReplica' => 'Synchro Replica', - 'Class:SynchroReplica/Attribute:sync_source_id' => 'Synchro Data Source', - 'Class:SynchroReplica/Attribute:dest_id' => 'Destination object (ID)', - 'Class:SynchroReplica/Attribute:dest_class' => 'Destination type', - 'Class:SynchroReplica/Attribute:status_last_seen' => 'Last seen', - 'Class:SynchroReplica/Attribute:status' => 'Status', - 'Class:SynchroReplica/Attribute:status/Value:modified' => 'Modified', - 'Class:SynchroReplica/Attribute:status/Value:new' => 'New', - 'Class:SynchroReplica/Attribute:status/Value:obsolete' => 'Obsolete', - 'Class:SynchroReplica/Attribute:status/Value:orphan' => 'Orphan', - 'Class:SynchroReplica/Attribute:status/Value:synchronized' => 'Synchronized', - 'Class:SynchroReplica/Attribute:status_dest_creator' => 'Object Created ?', - 'Class:SynchroReplica/Attribute:status_last_error' => 'Last Error', - 'Class:SynchroReplica/Attribute:status_last_warning' => 'Warnings', - 'Class:SynchroReplica/Attribute:info_creation_date' => 'Creation Date', - 'Class:SynchroReplica/Attribute:info_last_modified' => 'Last Modified Date', + 'Class:SynchroLog/Attribute:sync_source_id' => 'Synchro Data Source', + 'Class:SynchroLog/Attribute:start_date' => 'Start Date', + 'Class:SynchroLog/Attribute:end_date' => 'End Date', + 'Class:SynchroLog/Attribute:status' => 'Status', + 'Class:SynchroLog/Attribute:status/Value:completed' => 'Completed', + 'Class:SynchroLog/Attribute:status/Value:error' => 'Error', + 'Class:SynchroLog/Attribute:status/Value:running' => 'Still Running', + 'Class:SynchroLog/Attribute:stats_nb_replica_seen' => 'Nb replica seen', + 'Class:SynchroLog/Attribute:stats_nb_replica_total' => 'Nb replica total', + 'Class:SynchroLog/Attribute:stats_nb_obj_deleted' => 'Nb objects deleted', + 'Class:SynchroLog/Attribute:stats_nb_obj_deleted_errors' => 'Nb of errors while deleting', + 'Class:SynchroLog/Attribute:stats_nb_obj_obsoleted' => 'Nb objects obsoleted', + 'Class:SynchroLog/Attribute:stats_nb_obj_obsoleted_errors' => 'Nb of errors while obsoleting', + 'Class:SynchroLog/Attribute:stats_nb_obj_created' => 'Nb objects created', + 'Class:SynchroLog/Attribute:stats_nb_obj_created_errors' => 'Nb or errors while creating', + 'Class:SynchroLog/Attribute:stats_nb_obj_updated' => 'Nb objects updated', + 'Class:SynchroLog/Attribute:stats_nb_obj_updated_errors' => 'Nb errors while updating', + 'Class:SynchroLog/Attribute:stats_nb_replica_reconciled_errors' => 'Nb of errors during reconciliation', + 'Class:SynchroLog/Attribute:stats_nb_replica_disappeared_no_action' => 'Nb replica disappeared', + 'Class:SynchroLog/Attribute:stats_nb_obj_new_updated' => 'Nb objects updated', + 'Class:SynchroLog/Attribute:stats_nb_obj_new_unchanged' => 'Nb objects unchanged', + 'Class:SynchroLog/Attribute:last_error' => 'Last error', + 'Class:SynchroLog/Attribute:traces' => 'Traces', + 'Class:SynchroReplica' => 'Synchro Replica', + 'Class:SynchroReplica/Attribute:sync_source_id' => 'Synchro Data Source', + 'Class:SynchroReplica/Attribute:dest_id' => 'Destination object (ID)', + 'Class:SynchroReplica/Attribute:dest_class' => 'Destination type', + 'Class:SynchroReplica/Attribute:status_last_seen' => 'Last seen', + 'Class:SynchroReplica/Attribute:status' => 'Status', + 'Class:SynchroReplica/Attribute:status/Value:modified' => 'Modified', + 'Class:SynchroReplica/Attribute:status/Value:new' => 'New', + 'Class:SynchroReplica/Attribute:status/Value:obsolete' => 'Obsolete', + 'Class:SynchroReplica/Attribute:status/Value:orphan' => 'Orphan', + 'Class:SynchroReplica/Attribute:status/Value:synchronized' => 'Synchronized', + 'Class:SynchroReplica/Attribute:status_dest_creator' => 'Object Created ?', + 'Class:SynchroReplica/Attribute:status_last_error' => 'Last Error', + 'Class:SynchroReplica/Attribute:status_last_warning' => 'Warnings', + 'Class:SynchroReplica/Attribute:info_creation_date' => 'Creation Date', + 'Class:SynchroReplica/Attribute:info_last_modified' => 'Last Modified Date', 'Class:SynchroReplica/Action:delete+' => 'delete replica', 'Class:SynchroReplica/Action:unlink' => 'Unlink', 'Class:SynchroReplica/Action:unlink+' => 'Unlink replica with destination object', @@ -1117,139 +1118,139 @@ The hyperlink is displayed in the tooltip appearing on the “Lock” symbol of 'UI:DenyDeleteAllTabTitle' => 'Deny delete of objects linked to Synchro Replica', 'UI:DenyDeleteAllPageTitle' => 'Deny delete of objects linked to Synchro Replica', - 'Class:appUserPreferences' => 'User Preferences', - 'Class:appUserPreferences/Attribute:userid' => 'User', - 'Class:appUserPreferences/Attribute:preferences' => 'Prefs', - 'Core:ExecProcess:Code1' => 'Wrong command or command finished with errors (e.g. wrong script name)', - 'Core:ExecProcess:Code255' => 'PHP Error (parsing, or runtime)', + 'Class:appUserPreferences' => 'User Preferences', + 'Class:appUserPreferences/Attribute:userid' => 'User', + 'Class:appUserPreferences/Attribute:preferences' => 'Prefs', + 'Core:ExecProcess:Code1' => 'Wrong command or command finished with errors (e.g. wrong script name)', + 'Core:ExecProcess:Code255' => 'PHP Error (parsing, or runtime)', // Attribute Duration - 'Core:Duration_Seconds' => '%1$ds', - 'Core:Duration_Minutes_Seconds' => '%1$dmin %2$ds', - 'Core:Duration_Hours_Minutes_Seconds' => '%1$dh %2$dmin %3$ds', - 'Core:Duration_Days_Hours_Minutes_Seconds' => '%1$sd %2$dh %3$dmin %4$ds', + 'Core:Duration_Seconds' => '%1$ds', + 'Core:Duration_Minutes_Seconds' => '%1$dmin %2$ds', + 'Core:Duration_Hours_Minutes_Seconds' => '%1$dh %2$dmin %3$ds', + 'Core:Duration_Days_Hours_Minutes_Seconds' => '%1$sd %2$dh %3$dmin %4$ds', // Explain working time computing - 'Core:ExplainWTC:ElapsedTime' => 'Time elapsed (stored as "%1$s")', - 'Core:ExplainWTC:StopWatch-TimeSpent' => 'Time spent for "%1$s"', - 'Core:ExplainWTC:StopWatch-Deadline' => 'Deadline for "%1$s" at %2$d%%', + 'Core:ExplainWTC:ElapsedTime' => 'Time elapsed (stored as "%1$s")', + 'Core:ExplainWTC:StopWatch-TimeSpent' => 'Time spent for "%1$s"', + 'Core:ExplainWTC:StopWatch-Deadline' => 'Deadline for "%1$s" at %2$d%%', // Bulk export - 'Core:BulkExport:MissingParameter_Param' => 'Missing parameter "%1$s"', - 'Core:BulkExport:InvalidParameter_Query' => 'Invalid value for the parameter "query". There is no Query Phrasebook corresponding to the id: "%1$s".', - 'Core:BulkExport:ExportFormatPrompt' => 'Export format:', - 'Core:BulkExportOf_Class' => '%1$s Export', - 'Core:BulkExport:ClickHereToDownload_FileName' => 'Click here to download %1$s', - 'Core:BulkExport:ExportResult' => 'Result of the export:', - 'Core:BulkExport:RetrievingData' => 'Retrieving data...', - 'Core:BulkExport:HTMLFormat' => 'Web Page (*.html)', - 'Core:BulkExport:CSVFormat' => 'Comma Separated Values (*.csv)', - 'Core:BulkExport:XLSXFormat' => 'Excel 2007 or newer (*.xlsx)', - 'Core:BulkExport:PDFFormat' => 'PDF Document (*.pdf)', - 'Core:BulkExport:DragAndDropHelp' => 'Drag and drop the columns\' headers to arrange the columns. Preview of %1$s lines. Total number of lines to export: %2$s.', - 'Core:BulkExport:EmptyPreview' => 'Select the columns to be exported from the list above', - 'Core:BulkExport:ColumnsOrder' => 'Columns order', - 'Core:BulkExport:AvailableColumnsFrom_Class' => 'Available columns from %1$s', - 'Core:BulkExport:NoFieldSelected' => 'Select at least one column to be exported', - 'Core:BulkExport:CheckAll' => 'Check All', - 'Core:BulkExport:UncheckAll' => 'Uncheck All', - 'Core:BulkExport:ExportCancelledByUser' => 'Export cancelled by the user', - 'Core:BulkExport:CSVOptions' => 'CSV Options', - 'Core:BulkExport:CSVLocalization' => 'Localization', - 'Core:BulkExport:PDFOptions' => 'PDF Options', - 'Core:BulkExport:PDFPageFormat' => 'Page Format', - 'Core:BulkExport:PDFPageSize' => 'Page Size:', - 'Core:BulkExport:PageSize-A4' => 'A4', - 'Core:BulkExport:PageSize-A3' => 'A3', - 'Core:BulkExport:PageSize-Letter' => 'Letter', - 'Core:BulkExport:PDFPageOrientation' => 'Page Orientation:', - 'Core:BulkExport:PageOrientation-L' => 'Landscape', - 'Core:BulkExport:PageOrientation-P' => 'Portrait', - 'Core:BulkExport:XMLFormat' => 'XML file (*.xml)', - 'Core:BulkExport:XMLOptions' => 'XML Options', - 'Core:BulkExport:SpreadsheetFormat' => 'Spreadsheet HTML format (*.html)', - 'Core:BulkExport:SpreadsheetOptions' => 'Spreadsheet Options', - 'Core:BulkExport:OptionNoLocalize' => 'Export Code instead of Label', - 'Core:BulkExport:OptionLinkSets' => 'Include linked objects', - 'Core:BulkExport:OptionFormattedText' => 'Preserve text formatting', - 'Core:BulkExport:ScopeDefinition' => 'Definition of the objects to export', - 'Core:BulkExportLabelOQLExpression' => 'OQL Query:', - 'Core:BulkExportLabelPhrasebookEntry' => 'Query Phrasebook Entry:', - 'Core:BulkExportMessageEmptyOQL' => 'Please enter a valid OQL query.', - 'Core:BulkExportMessageEmptyPhrasebookEntry' => 'Please select a valid phrasebook entry.', - 'Core:BulkExportQueryPlaceholder' => 'Type an OQL query here...', - 'Core:BulkExportCanRunNonInteractive' => 'Click here to run the export in non-interactive mode.', - 'Core:BulkExportLegacyExport' => 'Click here to access the legacy export.', - 'Core:BulkExport:XLSXOptions' => 'Excel Options', - 'Core:BulkExport:TextFormat' => 'Text fields containing some HTML markup', - 'Core:BulkExport:DateTimeFormat' => 'Date and Time format', - 'Core:BulkExport:DateTimeFormatDefault_Example' => 'Default format (%1$s), e.g. %2$s', - 'Core:BulkExport:DateTimeFormatCustom_Format' => 'Custom format: %1$s', - 'Core:BulkExport:PDF:PageNumber' => 'Page %1$s', - 'Core:DateTime:Placeholder_d' => 'DD', // Day of the month: 2 digits (with leading zero) - 'Core:DateTime:Placeholder_j' => 'D', // Day of the month: 1 or 2 digits (without leading zero) - 'Core:DateTime:Placeholder_m' => 'MM', // Month on 2 digits i.e. 01-12 - 'Core:DateTime:Placeholder_n' => 'M', // Month on 1 or 2 digits 1-12 - 'Core:DateTime:Placeholder_Y' => 'YYYY', // Year on 4 digits - 'Core:DateTime:Placeholder_y' => 'YY', // Year on 2 digits - 'Core:DateTime:Placeholder_H' => 'hh', // Hour 00..23 - 'Core:DateTime:Placeholder_h' => 'h', // Hour 01..12 - 'Core:DateTime:Placeholder_G' => 'hh', // Hour 0..23 - 'Core:DateTime:Placeholder_g' => 'h', // Hour 1..12 - 'Core:DateTime:Placeholder_a' => 'am/pm', // am/pm (lowercase) - 'Core:DateTime:Placeholder_A' => 'AM/PM', // AM/PM (uppercase) - 'Core:DateTime:Placeholder_i' => 'mm', // minutes, 2 digits: 00..59 - 'Core:DateTime:Placeholder_s' => 'ss', // seconds, 2 digits 00..59 - 'Core:Validator:Default' => 'Wrong format', - 'Core:Validator:Mandatory' => 'Please, fill this field', - 'Core:Validator:MustBeInteger' => 'Must be an integer', - 'Core:Validator:MustSelectOne' => 'Please, select one', + 'Core:BulkExport:MissingParameter_Param' => 'Missing parameter "%1$s"', + 'Core:BulkExport:InvalidParameter_Query' => 'Invalid value for the parameter "query". There is no Query Phrasebook corresponding to the id: "%1$s".', + 'Core:BulkExport:ExportFormatPrompt' => 'Export format:', + 'Core:BulkExportOf_Class' => '%1$s Export', + 'Core:BulkExport:ClickHereToDownload_FileName' => 'Click here to download %1$s', + 'Core:BulkExport:ExportResult' => 'Result of the export:', + 'Core:BulkExport:RetrievingData' => 'Retrieving data...', + 'Core:BulkExport:HTMLFormat' => 'Web Page (*.html)', + 'Core:BulkExport:CSVFormat' => 'Comma Separated Values (*.csv)', + 'Core:BulkExport:XLSXFormat' => 'Excel 2007 or newer (*.xlsx)', + 'Core:BulkExport:PDFFormat' => 'PDF Document (*.pdf)', + 'Core:BulkExport:DragAndDropHelp' => 'Drag and drop the columns\' headers to arrange the columns. Preview of %1$s lines. Total number of lines to export: %2$s.', + 'Core:BulkExport:EmptyPreview' => 'Select the columns to be exported from the list above', + 'Core:BulkExport:ColumnsOrder' => 'Columns order', + 'Core:BulkExport:AvailableColumnsFrom_Class' => 'Available columns from %1$s', + 'Core:BulkExport:NoFieldSelected' => 'Select at least one column to be exported', + 'Core:BulkExport:CheckAll' => 'Check All', + 'Core:BulkExport:UncheckAll' => 'Uncheck All', + 'Core:BulkExport:ExportCancelledByUser' => 'Export cancelled by the user', + 'Core:BulkExport:CSVOptions' => 'CSV Options', + 'Core:BulkExport:CSVLocalization' => 'Localization', + 'Core:BulkExport:PDFOptions' => 'PDF Options', + 'Core:BulkExport:PDFPageFormat' => 'Page Format', + 'Core:BulkExport:PDFPageSize' => 'Page Size:', + 'Core:BulkExport:PageSize-A4' => 'A4', + 'Core:BulkExport:PageSize-A3' => 'A3', + 'Core:BulkExport:PageSize-Letter' => 'Letter', + 'Core:BulkExport:PDFPageOrientation' => 'Page Orientation:', + 'Core:BulkExport:PageOrientation-L' => 'Landscape', + 'Core:BulkExport:PageOrientation-P' => 'Portrait', + 'Core:BulkExport:XMLFormat' => 'XML file (*.xml)', + 'Core:BulkExport:XMLOptions' => 'XML Options', + 'Core:BulkExport:SpreadsheetFormat' => 'Spreadsheet HTML format (*.html)', + 'Core:BulkExport:SpreadsheetOptions' => 'Spreadsheet Options', + 'Core:BulkExport:OptionNoLocalize' => 'Export Code instead of Label', + 'Core:BulkExport:OptionLinkSets' => 'Include linked objects', + 'Core:BulkExport:OptionFormattedText' => 'Preserve text formatting', + 'Core:BulkExport:ScopeDefinition' => 'Definition of the objects to export', + 'Core:BulkExportLabelOQLExpression' => 'OQL Query:', + 'Core:BulkExportLabelPhrasebookEntry' => 'Query Phrasebook Entry:', + 'Core:BulkExportMessageEmptyOQL' => 'Please enter a valid OQL query.', + 'Core:BulkExportMessageEmptyPhrasebookEntry' => 'Please select a valid phrasebook entry.', + 'Core:BulkExportQueryPlaceholder' => 'Type an OQL query here...', + 'Core:BulkExportCanRunNonInteractive' => 'Click here to run the export in non-interactive mode.', + 'Core:BulkExportLegacyExport' => 'Click here to access the legacy export.', + 'Core:BulkExport:XLSXOptions' => 'Excel Options', + 'Core:BulkExport:TextFormat' => 'Text fields containing some HTML markup', + 'Core:BulkExport:DateTimeFormat' => 'Date and Time format', + 'Core:BulkExport:DateTimeFormatDefault_Example' => 'Default format (%1$s), e.g. %2$s', + 'Core:BulkExport:DateTimeFormatCustom_Format' => 'Custom format: %1$s', + 'Core:BulkExport:PDF:PageNumber' => 'Page %1$s', + 'Core:DateTime:Placeholder_d' => 'DD', // Day of the month: 2 digits (with leading zero) + 'Core:DateTime:Placeholder_j' => 'D', // Day of the month: 1 or 2 digits (without leading zero) + 'Core:DateTime:Placeholder_m' => 'MM', // Month on 2 digits i.e. 01-12 + 'Core:DateTime:Placeholder_n' => 'M', // Month on 1 or 2 digits 1-12 + 'Core:DateTime:Placeholder_Y' => 'YYYY', // Year on 4 digits + 'Core:DateTime:Placeholder_y' => 'YY', // Year on 2 digits + 'Core:DateTime:Placeholder_H' => 'hh', // Hour 00..23 + 'Core:DateTime:Placeholder_h' => 'h', // Hour 01..12 + 'Core:DateTime:Placeholder_G' => 'hh', // Hour 0..23 + 'Core:DateTime:Placeholder_g' => 'h', // Hour 1..12 + 'Core:DateTime:Placeholder_a' => 'am/pm', // am/pm (lowercase) + 'Core:DateTime:Placeholder_A' => 'AM/PM', // AM/PM (uppercase) + 'Core:DateTime:Placeholder_i' => 'mm', // minutes, 2 digits: 00..59 + 'Core:DateTime:Placeholder_s' => 'ss', // seconds, 2 digits 00..59 + 'Core:Validator:Default' => 'Wrong format', + 'Core:Validator:Mandatory' => 'Please, fill this field', + 'Core:Validator:MustBeInteger' => 'Must be an integer', + 'Core:Validator:MustSelectOne' => 'Please, select one', ]); // // Class: TagSetFieldData // Dict::Add('EN US', 'English', 'English', [ - 'Class:TagSetFieldData' => '%2$s for class %1$s', + 'Class:TagSetFieldData' => '%2$s for class %1$s', 'Class:TagSetFieldData+' => '', - 'Class:TagSetFieldData/Attribute:code' => 'Code', - 'Class:TagSetFieldData/Attribute:code+' => 'Internal code. Must contain at least 3 alphanumeric characters', - 'Class:TagSetFieldData/Attribute:label' => 'Label', - 'Class:TagSetFieldData/Attribute:label+' => 'Displayed label', - 'Class:TagSetFieldData/Attribute:description' => 'Description', + 'Class:TagSetFieldData/Attribute:code' => 'Code', + 'Class:TagSetFieldData/Attribute:code+' => 'Internal code. Must contain at least 3 alphanumeric characters', + 'Class:TagSetFieldData/Attribute:label' => 'Label', + 'Class:TagSetFieldData/Attribute:label+' => 'Displayed label', + 'Class:TagSetFieldData/Attribute:description' => 'Description', 'Class:TagSetFieldData/Attribute:description+' => '', - 'Class:TagSetFieldData/Attribute:finalclass' => 'Tag class', - 'Class:TagSetFieldData/Attribute:obj_class' => 'Object class', - 'Class:TagSetFieldData/Attribute:obj_attcode' => 'Field code', + 'Class:TagSetFieldData/Attribute:finalclass' => 'Tag class', + 'Class:TagSetFieldData/Attribute:obj_class' => 'Object class', + 'Class:TagSetFieldData/Attribute:obj_attcode' => 'Field code', - 'Core:TagSetFieldData:ErrorDeleteUsedTag' => 'Used tags cannot be deleted', + 'Core:TagSetFieldData:ErrorDeleteUsedTag' => 'Used tags cannot be deleted', 'Core:TagSetFieldData:ErrorDuplicateTagCodeOrLabel' => 'Tags codes or labels must be unique', - 'Core:TagSetFieldData:ErrorTagCodeSyntax' => 'Tags code must contain between 3 and %1$d alphanumeric characters, starting with a letter.', - 'Core:TagSetFieldData:ErrorTagCodeReservedWord' => 'The chosen tag code is a reserved word', - 'Core:TagSetFieldData:ErrorTagLabelSyntax' => 'Tags label must not contain \'%1$s\' nor be empty', - 'Core:TagSetFieldData:ErrorCodeUpdateNotAllowed' => 'Tags Code cannot be changed when used', - 'Core:TagSetFieldData:ErrorClassUpdateNotAllowed' => 'Tags "Object Class" cannot be changed', + 'Core:TagSetFieldData:ErrorTagCodeSyntax' => 'Tags code must contain between 3 and %1$d alphanumeric characters, starting with a letter.', + 'Core:TagSetFieldData:ErrorTagCodeReservedWord' => 'The chosen tag code is a reserved word', + 'Core:TagSetFieldData:ErrorTagLabelSyntax' => 'Tags label must not contain \'%1$s\' nor be empty', + 'Core:TagSetFieldData:ErrorCodeUpdateNotAllowed' => 'Tags Code cannot be changed when used', + 'Core:TagSetFieldData:ErrorClassUpdateNotAllowed' => 'Tags "Object Class" cannot be changed', 'Core:TagSetFieldData:ErrorAttCodeUpdateNotAllowed' => 'Tags "Attribute Code" cannot be changed', - 'Core:TagSetFieldData:WhereIsThisTagTab' => 'Tag usage (%1$d)', - 'Core:TagSetFieldData:NoEntryFound' => 'No entry found for this tag', + 'Core:TagSetFieldData:WhereIsThisTagTab' => 'Tag usage (%1$d)', + 'Core:TagSetFieldData:NoEntryFound' => 'No entry found for this tag', ]); // // Class: DBProperty // Dict::Add('EN US', 'English', 'English', [ - 'Class:DBProperty' => 'DB property', - 'Class:DBProperty+' => '', - 'Class:DBProperty/Attribute:name' => 'Name', - 'Class:DBProperty/Attribute:name+' => '', - 'Class:DBProperty/Attribute:description' => 'Description', - 'Class:DBProperty/Attribute:description+' => '', - 'Class:DBProperty/Attribute:value' => 'Value', - 'Class:DBProperty/Attribute:value+' => '', - 'Class:DBProperty/Attribute:change_date' => 'Change date', - 'Class:DBProperty/Attribute:change_date+' => '', - 'Class:DBProperty/Attribute:change_comment' => 'Change comment', + 'Class:DBProperty' => 'DB property', + 'Class:DBProperty+' => '', + 'Class:DBProperty/Attribute:name' => 'Name', + 'Class:DBProperty/Attribute:name+' => '', + 'Class:DBProperty/Attribute:description' => 'Description', + 'Class:DBProperty/Attribute:description+' => '', + 'Class:DBProperty/Attribute:value' => 'Value', + 'Class:DBProperty/Attribute:value+' => '', + 'Class:DBProperty/Attribute:change_date' => 'Change date', + 'Class:DBProperty/Attribute:change_date+' => '', + 'Class:DBProperty/Attribute:change_comment' => 'Change comment', 'Class:DBProperty/Attribute:change_comment+' => '', ]); @@ -1257,59 +1258,59 @@ Dict::Add('EN US', 'English', 'English', [ // Class: BackgroundTask // Dict::Add('EN US', 'English', 'English', [ - 'Class:BackgroundTask' => 'Background task', - 'Class:BackgroundTask+' => '', - 'Class:BackgroundTask/Attribute:class_name' => 'Class name', - 'Class:BackgroundTask/Attribute:class_name+' => '', - 'Class:BackgroundTask/Attribute:first_run_date' => 'First run date', - 'Class:BackgroundTask/Attribute:first_run_date+' => '', - 'Class:BackgroundTask/Attribute:latest_run_date' => 'Latest run date', - 'Class:BackgroundTask/Attribute:latest_run_date+' => '', - 'Class:BackgroundTask/Attribute:next_run_date' => 'Next run date', - 'Class:BackgroundTask/Attribute:next_run_date+' => '', - 'Class:BackgroundTask/Attribute:total_exec_count' => 'Total exec. count', - 'Class:BackgroundTask/Attribute:total_exec_count+' => '', - 'Class:BackgroundTask/Attribute:latest_run_duration' => 'Latest run duration', - 'Class:BackgroundTask/Attribute:latest_run_duration+' => '', - 'Class:BackgroundTask/Attribute:min_run_duration' => 'Min. run duration', - 'Class:BackgroundTask/Attribute:min_run_duration+' => '', - 'Class:BackgroundTask/Attribute:max_run_duration' => 'Max. run duration', - 'Class:BackgroundTask/Attribute:max_run_duration+' => '', - 'Class:BackgroundTask/Attribute:average_run_duration' => 'Average run duration', + 'Class:BackgroundTask' => 'Background task', + 'Class:BackgroundTask+' => '', + 'Class:BackgroundTask/Attribute:class_name' => 'Class name', + 'Class:BackgroundTask/Attribute:class_name+' => '', + 'Class:BackgroundTask/Attribute:first_run_date' => 'First run date', + 'Class:BackgroundTask/Attribute:first_run_date+' => '', + 'Class:BackgroundTask/Attribute:latest_run_date' => 'Latest run date', + 'Class:BackgroundTask/Attribute:latest_run_date+' => '', + 'Class:BackgroundTask/Attribute:next_run_date' => 'Next run date', + 'Class:BackgroundTask/Attribute:next_run_date+' => '', + 'Class:BackgroundTask/Attribute:total_exec_count' => 'Total exec. count', + 'Class:BackgroundTask/Attribute:total_exec_count+' => '', + 'Class:BackgroundTask/Attribute:latest_run_duration' => 'Latest run duration', + 'Class:BackgroundTask/Attribute:latest_run_duration+' => '', + 'Class:BackgroundTask/Attribute:min_run_duration' => 'Min. run duration', + 'Class:BackgroundTask/Attribute:min_run_duration+' => '', + 'Class:BackgroundTask/Attribute:max_run_duration' => 'Max. run duration', + 'Class:BackgroundTask/Attribute:max_run_duration+' => '', + 'Class:BackgroundTask/Attribute:average_run_duration' => 'Average run duration', 'Class:BackgroundTask/Attribute:average_run_duration+' => '', - 'Class:BackgroundTask/Attribute:running' => 'Running', - 'Class:BackgroundTask/Attribute:running+' => '', - 'Class:BackgroundTask/Attribute:status' => 'Status', - 'Class:BackgroundTask/Attribute:status+' => '', + 'Class:BackgroundTask/Attribute:running' => 'Running', + 'Class:BackgroundTask/Attribute:running+' => '', + 'Class:BackgroundTask/Attribute:status' => 'Status', + 'Class:BackgroundTask/Attribute:status+' => '', ]); // // Class: AsyncTask // Dict::Add('EN US', 'English', 'English', [ - 'Class:AsyncTask' => 'Async. task', - 'Class:AsyncTask+' => '', - 'Class:AsyncTask/Attribute:created' => 'Created', - 'Class:AsyncTask/Attribute:created+' => '', - 'Class:AsyncTask/Attribute:started' => 'Started', - 'Class:AsyncTask/Attribute:started+' => '', - 'Class:AsyncTask/Attribute:planned' => 'Planned', - 'Class:AsyncTask/Attribute:planned+' => '', - 'Class:AsyncTask/Attribute:event_id' => 'Event', - 'Class:AsyncTask/Attribute:event_id+' => '', - 'Class:AsyncTask/Attribute:finalclass' => 'Final class', - 'Class:AsyncTask/Attribute:finalclass+' => '', - 'Class:AsyncTask/Attribute:status' => 'Status', - 'Class:AsyncTask/Attribute:status+' => '', - 'Class:AsyncTask/Attribute:remaining_retries' => 'Remaining retries', - 'Class:AsyncTask/Attribute:remaining_retries+' => '', - 'Class:AsyncTask/Attribute:last_error_code' => 'Last error code', - 'Class:AsyncTask/Attribute:last_error_code+' => '', - 'Class:AsyncTask/Attribute:last_error' => 'Last error', - 'Class:AsyncTask/Attribute:last_error+' => '', - 'Class:AsyncTask/Attribute:last_attempt' => 'Last attempt', - 'Class:AsyncTask/Attribute:last_attempt+' => '', - 'Class:AsyncTask:InvalidConfig_Class_Keys' => 'Invalid format for the configuration of "async_task_retries[%1$s]". Expecting an array with the following keys: %2$s', + 'Class:AsyncTask' => 'Async. task', + 'Class:AsyncTask+' => '', + 'Class:AsyncTask/Attribute:created' => 'Created', + 'Class:AsyncTask/Attribute:created+' => '', + 'Class:AsyncTask/Attribute:started' => 'Started', + 'Class:AsyncTask/Attribute:started+' => '', + 'Class:AsyncTask/Attribute:planned' => 'Planned', + 'Class:AsyncTask/Attribute:planned+' => '', + 'Class:AsyncTask/Attribute:event_id' => 'Event', + 'Class:AsyncTask/Attribute:event_id+' => '', + 'Class:AsyncTask/Attribute:finalclass' => 'Final class', + 'Class:AsyncTask/Attribute:finalclass+' => '', + 'Class:AsyncTask/Attribute:status' => 'Status', + 'Class:AsyncTask/Attribute:status+' => '', + 'Class:AsyncTask/Attribute:remaining_retries' => 'Remaining retries', + 'Class:AsyncTask/Attribute:remaining_retries+' => '', + 'Class:AsyncTask/Attribute:last_error_code' => 'Last error code', + 'Class:AsyncTask/Attribute:last_error_code+' => '', + 'Class:AsyncTask/Attribute:last_error' => 'Last error', + 'Class:AsyncTask/Attribute:last_error+' => '', + 'Class:AsyncTask/Attribute:last_attempt' => 'Last attempt', + 'Class:AsyncTask/Attribute:last_attempt+' => '', + 'Class:AsyncTask:InvalidConfig_Class_Keys' => 'Invalid format for the configuration of "async_task_retries[%1$s]". Expecting an array with the following keys: %2$s', 'Class:AsyncTask:InvalidConfig_Class_InvalidKey_Keys' => 'Invalid format for the configuration of "async_task_retries[%1$s]": unexpected key "%2$s". Expecting only the following keys: %3$s', ]); @@ -1318,7 +1319,7 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:AbstractResource' => 'Abstract Resource', + 'Class:AbstractResource' => 'Abstract Resource', 'Class:AbstractResource+' => '', ]); @@ -1327,7 +1328,7 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:ResourceAdminMenu' => 'Resource Admin Menu', + 'Class:ResourceAdminMenu' => 'Resource Admin Menu', 'Class:ResourceAdminMenu+' => '', ]); @@ -1336,7 +1337,7 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:ResourceRunQueriesMenu' => 'Resource Run Queries Menu', + 'Class:ResourceRunQueriesMenu' => 'Resource Run Queries Menu', 'Class:ResourceRunQueriesMenu+' => '', ]); @@ -1345,6 +1346,6 @@ Dict::Add('EN US', 'English', 'English', [ // Dict::Add('EN US', 'English', 'English', [ - 'Class:ResourceSystemMenu' => 'Resource System Menu', + 'Class:ResourceSystemMenu' => 'Resource System Menu', 'Class:ResourceSystemMenu+' => '', ]); diff --git a/dictionaries/fr.dictionary.itop.core.php b/dictionaries/fr.dictionary.itop.core.php index e7349302f3..cce4d4d82a 100644 --- a/dictionaries/fr.dictionary.itop.core.php +++ b/dictionaries/fr.dictionary.itop.core.php @@ -162,13 +162,14 @@ Opérateurs :
'Core:Context=GUI:Portal' => 'Portal', 'Core:Context=GUI:Portal+' => 'GUI:Portal', - 'Core:GetQuota:Error' => 'Erreur lors de la récupération du quota des %1$s', - 'Core:ConsoleUsers' => 'utilisateurs console', - 'Core:DisabledUsers' => 'utilisateurs désactivés', - 'Core:PortalUsers' => 'utilisateurs du portail', - 'Core:BusinessPartnerUser' => 'utilisateurs partenaires business', - 'Core:ReadOnlyUsers' => 'utilisateurs en lecture seule', - 'Core:ApplicationUsers' => 'utilisateurs applicatifs', + 'Core:GetCountingUsers:Error' => 'Erreur lors du comptage des %1$s', + 'Core:CountingUsers:ConsoleUsers' => 'utilisateurs console', + 'Core:CountingUsers:DisabledUsers' => 'utilisateurs désactivés', + 'Core:CountingUsers:PortalUsers' => 'utilisateurs du portail', + 'Core:CountingUsers:BusinessPartnerUser' => 'utilisateurs partenaires business', + 'Core:CountingUsers:ReadOnlyUsers' => 'utilisateurs en lecture seule', + 'Core:CountingUsers:ApplicationUsers' => 'utilisateurs applicatifs', + 'Core:CountingUsers:AllUsers' => 'tous les utilisateurs', ]); ////////////////////////////////////////////////////////////////////// diff --git a/sources/Users/ITopUserCountingRepository.php b/sources/Users/ITopUserCountingRepository.php index 75bb20c680..0ad0d9ddc2 100644 --- a/sources/Users/ITopUserCountingRepository.php +++ b/sources/Users/ITopUserCountingRepository.php @@ -20,7 +20,7 @@ use User; use UserRights; /** - * + * @description Repository that aims to count users based on their type */ class ITopUserCountingRepository { @@ -37,7 +37,7 @@ class ITopUserCountingRepository * @throws MySQLException * @throws Exception */ - public function GetConsoleUsers(array $aExcludedUsers = [], array $aExcludedProfiles = [], bool $bAllData = true, array $aExcludedFinalClasses = ['UserToken', 'UserRemoteSaaS']): array + public function GetConsoleUsers(array $aExcludedUsers = [], array $aExcludedProfiles = ['Portal user'], bool $bAllData = true, array $aExcludedFinalClasses = ['UserToken', 'UserRemoteSaaS']): array { $sExcludedUsers = $this->ArrayToOQLStringParameter($aExcludedUsers); $sExcludedProfiles = $this->ArrayToOQLStringParameter($aExcludedProfiles); @@ -57,66 +57,33 @@ class ITopUserCountingRepository try { $oFilter = $bAllData ? DBObjectSearch::FromOQL_AllData($sOQLUserConsole) : DBObjectSearch::FromOQL($sOQLUserConsole); } catch (Exception $e) { - IssueLog::Error('Core:GetConsoleUsersQuota:Error : '.$e->getMessage()); - throw new Exception(Dict::Format('Core:GetQuota:Error', Dict::S('Core:ConsoleUsers'))); + IssueLog::Error(Dict::Format('Core:GetCountingUsers:Error', Dict::S('Core:CountingUsers:ConsoleUsers')).' - error details : '.$e->getMessage()); + throw new Exception(Dict::Format('Core:GetCountingUsers:Error', Dict::S('Core:CountingUsers:ConsoleUsers')).'.'); } $aConsoleUsers = $this->GetUsersFromFilter($oFilter); - $aPortalUsers = $this->GetPortalUsers(); $aReadOnlyUsers = $this->GetReadOnlyUsers(); - - return array_diff($aConsoleUsers, $aPortalUsers, $aReadOnlyUsers); - } - - private function ArrayToOQLStringParameter(array $aValues): string - { - $aQuotedValues = []; - foreach ($aValues as $value) { - $value = trim((string) $value); - if ($value === '') { - continue; - } - $aQuotedValues[] = "'".addslashes($value)."'"; - } - - return empty($aQuotedValues) ? "''" : implode(', ', $aQuotedValues); - } - - /** - * @throws CoreUnexpectedValue - * @throws CoreException - * @throws MySQLException - */ - public function GetUsersFromFilter(DBObjectSearch|DBUnionSearch|null $oFilter, array $aOrderBy = [], array $aArgs = []): array - { - $aUsers = []; - if (is_null($oFilter)) { - return $aUsers; - } - $oSet = new DBObjectSet($oFilter, $aOrderBy, $aArgs); - while ($oUser = $oSet->Fetch()) { - $aUsers[] = $oUser; - } - - return $aUsers; + return array_diff($aConsoleUsers, $aReadOnlyUsers); } /** * @throws Exception */ - public function GetPortalUsers(bool $bAllData = true): array + public function GetPortalUsers(bool $bAllData = true, array $aExcludedFinalClasses = ['UserToken', 'UserRemoteSaaS']): array { + $sExcludedFinalClasses = $this->ArrayToOQLStringParameter($aExcludedFinalClasses); + $sOQLPortalUser = " SELECT User AS u JOIN URP_UserProfile AS uup ON uup.userid = u.id JOIN URP_Profiles AS up ON uup.profileid = up.id - WHERE up.id = '2' AND u.status != 'disabled' "; + WHERE up.id = '2' AND u.status != 'disabled' AND u.finalclass NOT IN ($sExcludedFinalClasses)"; try { $oFilter = $bAllData ? DBObjectSearch::FromOQL_AllData($sOQLPortalUser) : DBObjectSearch::FromOQL($sOQLPortalUser); } catch (Exception $e) { - IssueLog::Error('Core:GetConsoleUsersQuota:Error : '.$e->getMessage()); - throw new Exception(Dict::Format('Core:GetQuota:Error', Dict::S('Core:ApplicationUsers'))); + IssueLog::Error(Dict::Format('Core:GetCountingUsers:Error', Dict::S('Core:CountingUsers:PortalUsers')).' - error details : '.$e->getMessage()); + throw new Exception(Dict::Format('Core:GetCountingUsers:Error', Dict::S('Core:CountingUsers:PortalUsers')).'.'); } return $this->GetUsersFromFilter($oFilter); @@ -143,13 +110,43 @@ class ITopUserCountingRepository } } - // remove portal users - $aPortalUsers = $this->GetPortalUsers(); - $aReadOnlyUsers = array_diff($aReadOnlyUsers, $aPortalUsers); - // remove disabled users - $aDisabledUsers = $this->GetDisabledUsers(); + $aUserToken = $this->GetApplicationUsers(); + return array_diff($aReadOnlyUsers, $aUserToken); + } - return array_diff($aReadOnlyUsers, $aDisabledUsers); + /** + * @throws Exception + */ + public function GetDisabledUsers(bool $bAllData = true): array + { + $sOQLDisabledUser = " + SELECT User AS u + WHERE u.status = 'disabled' + "; + try { + $oFilter = $bAllData ? DBObjectSearch::FromOQL_AllData($sOQLDisabledUser) : DBObjectSearch::FromOQL($sOQLDisabledUser); + } catch (Exception $e) { + IssueLog::Error(Dict::Format('Core:GetCountingUsers:Error', Dict::S('Core:CountingUsers:DisabledUsers')).' - error details : '.$e->getMessage()); + throw new Exception(Dict::Format('Core:GetCountingUsers:Error', Dict::S('Core:CountingUsers:DisabledUsers')).'.'); + } + + return $this->GetUsersFromFilter($oFilter); + } + + /** + * @throws Exception + */ + public function GetApplicationUsers(bool $bAllData = true): array + { + $sOQLApplicationUser = 'SELECT UserToken'; + try { + $oFilter = $bAllData ? DBObjectSearch::FromOQL_AllData($sOQLApplicationUser) : DBObjectSearch::FromOQL($sOQLApplicationUser); + } catch (Exception $e) { + IssueLog::Error(Dict::Format('Core:GetCountingUsers:Error', Dict::S('Core:CountingUsers:ApplicationUsers')).' - error details : '.$e->getMessage()); + throw new Exception(Dict::Format('Core:GetCountingUsers:Error', Dict::S('Core:CountingUsers:ApplicationUsers')).'.'); + } + + return $this->GetUsersFromFilter($oFilter); } /** @@ -162,8 +159,8 @@ class ITopUserCountingRepository try { $oFilter = $bAllData ? DBObjectSearch::FromOQL_AllData($sOqlUser) : DBObjectSearch::FromOQL($sOqlUser); } catch (Exception $e) { - IssueLog::Error('combodo-users-quota-slave/GetUsersNotInQuota : '.$e->getMessage(), 'combodo-users-quota'); - throw new Exception(Dict::S('CombodoUserQuota:Error')); + IssueLog::Error(Dict::Format('Core:GetCountingUsers:Error', Dict::S('Core:CountingUsers:AllUsers')).' - error details : '.$e->getMessage()); + throw new Exception(Dict::Format('Core:GetCountingUsers:Error', Dict::S('Core:CountingUsers:AllUsers')).'.'); } return $this->GetUsersFromFilter($oFilter); @@ -179,28 +176,11 @@ class ITopUserCountingRepository */ private function IsUserReadOnly(User $oUser, string $sClassCategory): bool { - if ($oUser->Get('status') == 'disabled') { - return false; - } - - // check if user is a portal user - $oProfileLinks = $oUser->Get('profile_list'); - while ($oLink = $oProfileLinks->Fetch()) { - $iProfileId = $oLink->Get('profileid'); - if (!$iProfileId) { - continue; - } - $oProfile = MetaModel::GetObject('URP_Profiles', $iProfileId, false); - if ($oProfile && $oProfile->Get('name') === PORTAL_PROFILE_NAME) { - return false; - } - } - // login (mandatory to compute rights) UserRights::Login($oUser->GetName()); foreach (MetaModel::GetClasses($sClassCategory) as $sClass) { - // no need to check stimuli for now since users can't execute stimulus without UR_ACTION_MODIFY + // no need to check stimuli for now since users can't execute any without UR_ACTION_MODIFY if ( UserRights::IsActionAllowed($sClass, UR_ACTION_MODIFY, null, $oUser) || UserRights::IsActionAllowed($sClass, UR_ACTION_BULK_MODIFY, null, $oUser) || @@ -216,37 +196,36 @@ class ITopUserCountingRepository } /** - * @throws Exception + * @throws CoreUnexpectedValue + * @throws CoreException + * @throws MySQLException */ - public function GetDisabledUsers(bool $bAllData = true): array + public function GetUsersFromFilter(DBObjectSearch|DBUnionSearch|null $oFilter, array $aOrderBy = [], array $aArgs = []): array { - $sOQLDisabledUser = " - SELECT User AS u - WHERE u.status = 'disabled' - "; - try { - $oFilter = $bAllData ? DBObjectSearch::FromOQL_AllData($sOQLDisabledUser) : DBObjectSearch::FromOQL($sOQLDisabledUser); - } catch (Exception $e) { - IssueLog::Error('Core:GetDisabledUsersQuota:Error : '.$e->getMessage()); - throw new Exception(Dict::Format('Core:GetQuota:Error', Dict::S('Core:DisabledUsers'))); + $aUsers = []; + if (is_null($oFilter)) { + return $aUsers; + } + $oSet = new DBObjectSet($oFilter, $aOrderBy, $aArgs); + while ($oUser = $oSet->Fetch()) { + $aUsers[] = $oUser; } - return $this->GetUsersFromFilter($oFilter); + return $aUsers; } - /** - * @throws Exception - */ - public function GetApplicationUsers(bool $bAllData = true): array + private function ArrayToOQLStringParameter(array $aValues): string { - $sOQLApplicationUser = 'SELECT UserToken'; - try { - $oFilter = $bAllData ? DBObjectSearch::FromOQL_AllData($sOQLApplicationUser) : DBObjectSearch::FromOQL($sOQLApplicationUser); - } catch (Exception $e) { - IssueLog::Error('Core:GetConsoleUsersQuota:Error : '.$e->getMessage()); - throw new Exception(Dict::Format('Core:GetQuota:Error', Dict::S('Core:ApplicationUsers'))); + $aQuotedValues = []; + foreach ($aValues as $value) { + $value = trim((string) $value); + if ($value === '') { + continue; + } + $aQuotedValues[] = "'".addslashes($value)."'"; } - return $this->GetUsersFromFilter($oFilter); + return empty($aQuotedValues) ? "''" : implode(', ', $aQuotedValues); } + } diff --git a/tests/php-unit-tests/src/BaseTestCase/ItopDataTestCase.php b/tests/php-unit-tests/src/BaseTestCase/ItopDataTestCase.php index 7a58d0394f..88d4ab0a18 100644 --- a/tests/php-unit-tests/src/BaseTestCase/ItopDataTestCase.php +++ b/tests/php-unit-tests/src/BaseTestCase/ItopDataTestCase.php @@ -1466,6 +1466,31 @@ abstract class ItopDataTestCase extends ItopTestCase ]); } + /** + * @description To avoid adding finalclasses parameters to GivenUserInDB + * @param string $sPassword + * @param array $aProfiles Profile names Example: ['Administrator'] + * @param bool $bReturnLogin + * + * @return string|int The unique login + * @throws \Exception + */ + protected function GivenTokenUserInDB(array $aProfiles, bool $bReturnLogin = true): string|int + { + $sLogin = 'demo_test_'.uniqid(__CLASS__, true); + + $aProfileList = array_map(function ($sProfileId) { + return 'profileid:'.self::$aURP_Profiles[$sProfileId]; + }, $aProfiles); + + $iUser = $this->GivenObjectInDB('UserToken', [ + 'login' => $sLogin, + 'language' => 'EN US', + 'profile_list' => $aProfileList, + ]); + return $bReturnLogin ? $sLogin : $iUser; + } + /** * @param string $sPassword * @param array $aProfiles Profile names Example: ['Administrator'] diff --git a/tests/php-unit-tests/unitary-tests/sources/Users/ITopUserCountingRepositoryTest.php b/tests/php-unit-tests/unitary-tests/sources/Users/ITopUserCountingRepositoryTest.php index 8ea985757c..a603327009 100644 --- a/tests/php-unit-tests/unitary-tests/sources/Users/ITopUserCountingRepositoryTest.php +++ b/tests/php-unit-tests/unitary-tests/sources/Users/ITopUserCountingRepositoryTest.php @@ -12,6 +12,10 @@ class ITopUserCountingRepositoryTest extends ItopDataTestCase { parent::setUp(); $this->CreateReadOnlyUsers(); + $this->CreateDisabledUsers(); + $this->CreatePortalUsers(); + $this->CreateTokenUsers(); + $this->CreateConsoleUsers(); } @@ -20,18 +24,48 @@ class ITopUserCountingRepositoryTest extends ItopDataTestCase $this->GivenUserInDB('qpf_z17H3232*"ré$"é', ['Configuration ReadOnly']); $this->GivenUserInDB('qpf_z17H3232*"ré$"é', ['Ticket ReadOnly']); $this->GivenUserInDB('qpf_z17H3232*"ré$"é', ['Service Catalog ReadOnly']); + $this->GivenUserInDB('qpf_z17H3232*"ré$"é', ['Configuration ReadOnly', 'Portal user']); + $this->GivenUserInDB('qpf_z17H3232*"ré$"é', ['Ticket ReadOnly', 'Portal user']); + $this->GivenUserInDB('qpf_z17H3232*"ré$"é', ['Service Catalog ReadOnly', 'Portal user']); $this->GivenUserInDB('qpf_z17H3232*"ré$"é', ['Configuration ReadOnly', 'Ticket ReadOnly']); $this->GivenUserInDB('qpf_z17H3232*"ré$"é', ['Ticket ReadOnly', 'Service Catalog ReadOnly']); $this->GivenUserInDB('qpf_z17H3232*"ré$"é', ['Configuration ReadOnly', 'Ticket ReadOnly', 'Service Catalog ReadOnly']); } - private function CreateDisabledUser() + private function CreateDisabledUsers() { - $sUser = $this->GivenUserInDB('qpf_z17H3232*"ré$"é', ['Configuration Manager']); - // get user by login - $oUser = \MetaModel::GetObjectByName('User', $sUser); + $iDisabledUser = $this->GivenUserInDB('qpf_z17H3232*"ré$"é', ['Configuration Manager'], false); + $oUser = \MetaModel::GetObject('User', $iDisabledUser); $oUser->Set('status', 'disabled'); $oUser->DBUpdate(); + + $iDisabledReadOnlyUser = $this->GivenUserInDB('qpf_z17H3232*"ré$"é', ['Ticket ReadOnly'], false); + $oUser = \MetaModel::GetObject('User', $iDisabledReadOnlyUser); + $oUser->Set('status', 'disabled'); + $oUser->DBUpdate(); + } + + private function CreatePortalUsers() + { + $this->GivenUserInDB('qpf_z17H3232*"ré$"é', ['Portal user'], false); + + $iDisabledPortalUser = $this->GivenUserInDB('qpf_z17H3232*"ré$"é', ['Portal user'], false); + $oUser = \MetaModel::GetObject('User', $iDisabledPortalUser); + $oUser->Set('status', 'disabled'); + $oUser->DBUpdate(); + } + + private function CreateTokenUsers() + { + $this->GivenTokenUserInDB(['Configuration Manager'], false); + $this->GivenTokenUserInDB(['Portal user'], false); + $this->GivenTokenUserInDB(['Configuration ReadOnly'], false); + } + + private function CreateConsoleUsers() + { + $this->GivenUserInDB('qpf_z17H3232*"ré$"é', ['Configuration Manager'], false); + $this->GivenUserInDB('qpf_z17H3232*"ré$"é', ['Administrator'], false); } /** @@ -110,5 +144,4 @@ class ITopUserCountingRepositoryTest extends ItopDataTestCase } } - }