diff --git a/CHANGELOG.md b/CHANGELOG.md
index 81882bbf7..e727db5f4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,38 @@
+## [2.13.10](https://github.com/pluginsGLPI/formcreator/compare/2.13.9...2.13.10) (2025-02-26)
+
+
+### Bug Fixes
+
+* **abstracttarget:** missing escaping before SQL query ([06d9089](https://github.com/pluginsGLPI/formcreator/commit/06d908937201e25515bbe5bdda5b93c465ce3f8a))
+* adding 2.13.10 empty sql file ([f6d63ea](https://github.com/pluginsGLPI/formcreator/commit/f6d63ead12746c04b63e591b2f28e62486056be7))
+* adjust dashboard widget height ([aab508d](https://github.com/pluginsGLPI/formcreator/commit/aab508ddac14cd51f7a90925a3d15623fc8a0b04))
+* **dropdownfield, glpiselectfield:** group restriction ([#3489](https://github.com/pluginsGLPI/formcreator/issues/3489)) ([46efb33](https://github.com/pluginsGLPI/formcreator/commit/46efb336110722c8e99006997d4a8069eb46d2e7))
+* **dropdownfield:** useless duplicate conditions for tickets ([d81a43e](https://github.com/pluginsGLPI/formcreator/commit/d81a43ebbec74f58f019da409f53a169e2ea06f8))
+* **fieldsfield:** mandatory check failure on dropdowns ([9ac92f0](https://github.com/pluginsGLPI/formcreator/commit/9ac92f04705060106b122d6665a3bb27f4adc4f0))
+* **fieldsfield:** required property update on UI ([feb1de0](https://github.com/pluginsGLPI/formcreator/commit/feb1de088e7f16b2a9ee7d4274b66ee1cb59f539))
+* **files:** entity ([#3566](https://github.com/pluginsGLPI/formcreator/issues/3566)) ([f1ecc2d](https://github.com/pluginsGLPI/formcreator/commit/f1ecc2da717a3df39fcae6a16b9a5b6a08ef7d8a))
+* **form:** bad itemtypes names ([11d9e6b](https://github.com/pluginsGLPI/formcreator/commit/11d9e6b8ed493a3155e770bb41b6f10f25fd9584))
+* **glpiselectfield:** ambiguous column with tickets ([2d5ad80](https://github.com/pluginsGLPI/formcreator/commit/2d5ad80b2a11ac0476f3258d62969ac240e96fa5))
+* handle negative due date for service levels ([ed147ef](https://github.com/pluginsGLPI/formcreator/commit/ed147efa2e175bb245e343af124d22909974806f))
+* **issue:** SQL warning if groups of the user contain an empty ID ([580eba5](https://github.com/pluginsGLPI/formcreator/commit/580eba5b355ef0fd435d5caf5ac7dc95f21d7e61))
+* **knowbase,form:** kb item translation missing ([603b8ea](https://github.com/pluginsGLPI/formcreator/commit/603b8eac9b93f70b3b95bdda529b17eb7935ef1d))
+* **knowbase:** categories in reverse alphanumeric order ([8011971](https://github.com/pluginsGLPI/formcreator/commit/801197183ed8d96ac16f9a3d5bd6dd75ef7fbb83))
+* **ldapfield:** HTML encoding when copying filter from GLPI ([e56eaca](https://github.com/pluginsGLPI/formcreator/commit/e56eacaeab5409cfd5b89cdfdbf4fd1d0e0cb0fc))
+* php lint ([aa12610](https://github.com/pluginsGLPI/formcreator/commit/aa1261021d2712718b2ecc0b7bf0eb1e9a38e5b3))
+* **section:** bad update when importing a section with conditions ([15907b8](https://github.com/pluginsGLPI/formcreator/commit/15907b8369099afc9d0b63b32e3152496ed7cdf8))
+* set the default value of the dropdown as empty string ([#3563](https://github.com/pluginsGLPI/formcreator/issues/3563)) ([f336e1b](https://github.com/pluginsGLPI/formcreator/commit/f336e1b4e8940ce4b582c9b82cadf8f1241dfa3b))
+* SQL error when user ID missing ([17c0358](https://github.com/pluginsGLPI/formcreator/commit/17c0358919d804b70e6c2e27b089dfbde177e0d1))
+* **target_actor:** duplication fails for some types ([1ff8a55](https://github.com/pluginsGLPI/formcreator/commit/1ff8a555f1461d4dd4fa2225ce78a883a00d1225))
+* **target_actor:** duplication requires export of ID, not name ([3efc9cd](https://github.com/pluginsGLPI/formcreator/commit/3efc9cd7ccdcc003f83f3409853b6f50e7d2d2f1))
+* **targetticket:** actors format ([e468aa3](https://github.com/pluginsGLPI/formcreator/commit/e468aa350de569991274d97e1af7ce2fca7ed994))
+
+
+### Reverts
+
+* Revert "Revert "feat(glpiselectfield): support Cluster itemtype"" ([8e06c17](https://github.com/pluginsGLPI/formcreator/commit/8e06c17cd1b864f39a53e34e75a206acf3de66a5))
+
+
+
## [HEAD](https://github.com/pluginsGLPI/formcreator/compare/2.13.8..2.13.9) (2024-03-13)
diff --git a/ajax/ldap_filter.php b/ajax/ldap_filter.php
index 4c8c2faeb..a441d02f3 100644
--- a/ajax/ldap_filter.php
+++ b/ajax/ldap_filter.php
@@ -29,6 +29,8 @@
* ---------------------------------------------------------------------
*/
+use Glpi\Toolbox\Sanitizer;
+
include ('../../../inc/includes.php');
Session::checkRight('entity', UPDATE);
@@ -37,4 +39,5 @@
$authldap->getFromDB($_POST['value']);
$filter = "(".$authldap->getField("login_field")."=*)";
$ldap_condition = $authldap->getField('condition');
+$ldap_condition = Sanitizer::decodeHtmlSpecialChars($ldap_condition);
echo "(& $filter $ldap_condition)";
diff --git a/ajax/question_design.php b/ajax/question_design.php
index 393d90bbd..d94858638 100644
--- a/ajax/question_design.php
+++ b/ajax/question_design.php
@@ -69,5 +69,7 @@
$question->fields['fieldtype'] = '';
if ($field !== null) {
$question->fields['fieldtype'] = $_REQUEST['fieldtype'];
+ $question->fields['_blocks_field'] = $_REQUEST['blocks_field'] ?? null;
+ $question->fields['_dropdown_fields_field'] = $_REQUEST['dropdown_fields_field'] ?? null;
}
$question->showForm($question->getID());
diff --git a/hook.php b/hook.php
index 6837610bd..295737b6c 100644
--- a/hook.php
+++ b/hook.php
@@ -205,6 +205,7 @@ function plugin_formcreator_addDefaultWhere($itemtype) {
$groupList[] = $group['id'];
}
if (count($groupList) > 0) {
+ $groupList = array_filter($groupList);
$groupList = implode("', '", $groupList);
// Search option ID 16 is either from Formcreator, either from AdvForms
$complexJoinId = Search::computeComplexJoinID($issueSearchOptions[16]['joinparams']);
@@ -229,7 +230,7 @@ function plugin_formcreator_addDefaultWhere($itemtype) {
$condition .= " OR `glpi_users_$complexJoinId`.`id` = '$currentUser'";
// Add users_id_recipient
- $condition .= " OR `glpi_plugin_formcreator_issues`.`users_id_recipient` = $currentUser ";
+ $condition .= " OR `glpi_plugin_formcreator_issues`.`users_id_recipient` = '$currentUser' ";
return "($condition)";
break;
@@ -378,7 +379,7 @@ function plugin_formcreator_MassiveActions($itemtype) {
PluginFormcreatorForm::class . MassiveAction::CLASS_ACTION_SEPARATOR . 'Duplicate' => _x('button', 'Duplicate'),
PluginFormcreatorForm::class . MassiveAction::CLASS_ACTION_SEPARATOR . 'Transfert' => __('Transfer'),
PluginFormcreatorForm::class . MassiveAction::CLASS_ACTION_SEPARATOR . 'Export' => _sx('button', 'Export'),
- PluginFormcreatorForm::class . MassiveAction::CLASS_ACTION_SEPARATOR . 'AccessRights' => _sx('button', 'Access rights'),
+ PluginFormcreatorForm::class . MassiveAction::CLASS_ACTION_SEPARATOR . 'AccessRights' => _sx('button', 'Access rights', 'formcreator'),
];
}
return [];
@@ -442,6 +443,18 @@ function plugin_formcreator_hook_add_ticket(CommonDBTM $item) {
]);
}
+function plugin_formcreator_hook_update_ticket_actors(CommonITILActor $item) {
+ if ($item::$itemtype_1 == Ticket::class) {
+ if ($item->fields['type'] == CommonITILActor::REQUESTER) {
+ $ticket_id = $item->fields['tickets_id'];
+ $ticket = new Ticket();
+ if ($ticket->getFromDB($ticket_id)) {
+ plugin_formcreator_hook_update_ticket($ticket);
+ }
+ }
+ }
+}
+
function plugin_formcreator_hook_update_ticket(CommonDBTM $item) {
global $DB;
@@ -489,6 +502,7 @@ function plugin_formcreator_hook_update_ticket(CommonDBTM $item) {
'entities_id' => $item->fields['entities_id'],
'is_recursive' => '0',
'requester_id' => $requester,
+ 'users_id_recipient' => $requester,
'comment' => $DB->escape($item->fields['content']),
]);
}
diff --git a/inc/abstractitiltarget.class.php b/inc/abstractitiltarget.class.php
index 6d91ea76d..a145ea894 100644
--- a/inc/abstractitiltarget.class.php
+++ b/inc/abstractitiltarget.class.php
@@ -1424,7 +1424,10 @@ protected function setTargetDueDate($data, PluginFormcreatorFormAnswer $formansw
$period = "month";
break;
}
- $str = "+" . $this->fields['due_date_value'] . " $period";
+ $str = $this->fields['due_date_value'] . " $period";
+ if ($str[0] !== '-') {
+ $str = '+' . $str;
+ }
switch ($this->fields['due_date_rule']) {
case self::DUE_DATE_RULE_ANSWER:
diff --git a/inc/abstracttarget.class.php b/inc/abstracttarget.class.php
index 66b3d0e04..606da8155 100644
--- a/inc/abstracttarget.class.php
+++ b/inc/abstracttarget.class.php
@@ -253,6 +253,15 @@ protected function appendFieldsData(array $input, PluginFormcreatorFormanswer $f
$field_name = $decodedValues['dropdown_fields_field'] ?? '';
$blocks_field = $decodedValues['blocks_field'] ?? '';
+ //load container field
+ $container = new PluginFieldsContainer();
+ $container->getFromDB($blocks_field);
+ $related_itemtype = json_decode($container->fields['itemtypes'], true);
+
+ if (!in_array(get_called_class()::getTargetItemtypeName(), $related_itemtype)) {
+ continue;
+ }
+
$field = new PluginFieldsField();
$field->getFromDbByCrit(['name' => $field_name]);
@@ -565,10 +574,12 @@ public function prepareInputForClone($input) {
}
protected static function getTemplateByName(string $name): int {
+ global $DB;
+
$targetTemplateType = (new static())->getTemplateItemtypeName();
$targetTemplate = new $targetTemplateType();
$targetTemplate->getFromDBByCrit([
- 'name' => $name,
+ 'name' => $DB->escape($name),
]);
if ($targetTemplate->isNewItem()) {
diff --git a/inc/field/dropdownfield.class.php b/inc/field/dropdownfield.class.php
index bbd48628e..0122788d3 100644
--- a/inc/field/dropdownfield.class.php
+++ b/inc/field/dropdownfield.class.php
@@ -227,40 +227,11 @@ public function buildParams($rand = null) {
if (Session::haveRight("ticket", Ticket::READALL)) {
break;
}
- $currentUser = Session::getLoginUserID();
if (!Session::haveRight(Ticket::$rightname, Ticket::READMY) && !Session::haveRight(Ticket::$rightname, Ticket::READGROUP)) {
// No right to view any ticket, then force the dropdown to be empty
$dparams_cond_crit['OR'] = new QueryExpression('0=1');
break;
}
- $tickets_filter = ['users_id_recipient' => $currentUser];
-
- if (Session::haveRight(Ticket::$rightname, Ticket::READMY)) {
- $requestersObserversQuery = new QuerySubQuery([
- 'SELECT' => 'tickets_id',
- 'FROM' => Ticket_User::getTable(),
- 'WHERE' => [
- 'users_id' => $currentUser,
- 'type' => [CommonITILActor::REQUESTER, CommonITILActor::OBSERVER]
- ],
- ]);
- $tickets_filter[] = [
- Ticket::getTableField('id') => $requestersObserversQuery,
- ];
- }
-
- if (Session::haveRight(Ticket::$rightname, Ticket::READGROUP) && count($_SESSION['glpigroups']) > '0') {
- $requestersObserversGroupsQuery = new QuerySubQuery([
- 'SELECT' => 'tickets_id',
- 'FROM' => Group_Ticket::getTable(),
- 'WHERE' => [
- 'type' => [CommonITILActor::REQUESTER, CommonITILActor::OBSERVER],
- 'groups_id' => $_SESSION['glpigroups'],
- ],
- ]);
- $tickets_filter[] = ['id' => $requestersObserversGroupsQuery];
- }
- $dparams_cond_crit['OR'] = $tickets_filter;
break;
default:
@@ -277,7 +248,7 @@ public function buildParams($rand = null) {
$canViewGroupHardware = Session::haveRight('show_group_hardware', '1');
$groups = [];
if ($canViewGroupHardware) {
- $groups = $this->getMyGroups(Session::getLoginUserID());
+ $groups = $_SESSION['glpigroups'];
}
if ($DB->fieldExists($itemtype::getTable(), $userFk)
&& !$canViewAllHardware && $canViewMyHardware
@@ -295,7 +266,7 @@ public function buildParams($rand = null) {
];
}
// Check if helpdesk availability is fine tunable on a per item basis
- if (Session::getCurrentInterface() == "helpdesk" && $DB->fieldExists($itemtype::getTable(), 'is_helpdesk_visible')) {
+ if ($DB->fieldExists($itemtype::getTable(), 'is_helpdesk_visible')) {
$dparams_cond_crit[] = [
'is_helpdesk_visible' => '1',
];
diff --git a/inc/field/fieldsfield.class.php b/inc/field/fieldsfield.class.php
index 7c6c282eb..9ce06a134 100644
--- a/inc/field/fieldsfield.class.php
+++ b/inc/field/fieldsfield.class.php
@@ -63,7 +63,7 @@ class FieldsField extends PluginFormcreatorAbstractField
public function getField(): ?PluginFieldsField {
if ($this->field === null && isset($this->question->fields['values'])) {
$decodedValues = json_decode($this->question->fields['values'], JSON_OBJECT_AS_ARRAY);
- $field_name = $decodedValues['dropdown_fields_field'] ?? '';
+ $field_name = $decodedValues['dropdown_fields_field'] ?? ($this->question->fields['_field_name'] ?? '');
$fieldObj = new PluginFieldsField();
if ($fieldObj->getFromDBByCrit(['name' => $field_name])) {
$this->field = $fieldObj;
@@ -208,13 +208,15 @@ public function prepareHtmlField($fieldName, $canedit = true, $value = '') {
$field['value'] = $value;
} else {
//get default value
- if ($this->getField()->fields['default_value'] !== "") {
+ if (!empty($this->getField()->fields['default_value'])) {
$value = $this->getField()->fields['default_value'];
// shortcut for date/datetime
if (in_array($this->getField()->fields['type'], ['date', 'datetime'])
&& $value == 'now') {
$value = $_SESSION["glpi_currenttime"];
}
+ } else {
+ $value = '';
}
$field['value'] = $value;
}
@@ -483,7 +485,7 @@ public function isValidValue($value): bool {
public function isValid(): bool {
if (!is_null($this->getField())) {
// If the field is required it can't be empty
- if ($this->getField()->fields['mandatory'] && $this->value == '') {
+ if ($this->isAdditionalFieldEmpty()) {
Session::addMessageAfterRedirect(
__('A required field is empty:', 'formcreator') . ' ' . $this->getLabel(),
false,
@@ -498,6 +500,20 @@ public function isValid(): bool {
return true;
}
+ /**
+ * Undocumented function
+ *
+ * @return boolean
+ */
+ private function isAdditionalFieldEmpty(): bool {
+ switch ($this->getField()->fields['type']) {
+ case 'dropdown':
+ return $this->getField()->fields['mandatory'] && empty($this->value);
+ }
+
+ return $this->getField()->fields['mandatory'] && $this->value == '';
+ }
+
public function moveUploads() {
}
diff --git a/inc/field/filefield.class.php b/inc/field/filefield.class.php
index fc4459336..d284bdd56 100644
--- a/inc/field/filefield.class.php
+++ b/inc/field/filefield.class.php
@@ -238,9 +238,20 @@ private function saveDocument($file, $prefix) {
return;
}
+ $entities_id = $form->getField('entities_id');
+ if ($form->getField('is_recursive')) {
+ $entities_sons = getSonsOf('glpi_entities', $entities_id);
+ if (isset($_SESSION['glpiactive_entity'])
+ && $_SESSION['glpiactive_entity'] != $entities_id
+ && in_array($_SESSION['glpiactive_entity'], $entities_sons)
+ ) {
+ $entities_id = $_SESSION['glpiactive_entity'];
+ }
+ }
+
$file_data = [
'name' => Toolbox::addslashes_deep($form->fields['name'] . ' - ' . $this->question->fields['name']),
- 'entities_id' => $_SESSION['glpiactive_entity'] ?? $form->getField('entities_id'),
+ 'entities_id' => $entities_id,
'is_recursive' => $form->getField('is_recursive'),
'_filename' => [$file],
'_prefix_filename' => [$prefix],
diff --git a/inc/form.class.php b/inc/form.class.php
index 6ac380221..caecb503a 100644
--- a/inc/form.class.php
+++ b/inc/form.class.php
@@ -716,8 +716,8 @@ public static function getFormList(int $rootCategory = 0, string $keywords = '',
$table_cat = getTableForItemType(PluginFormcreatorCategory::class);
$table_form = getTableForItemType(PluginFormcreatorForm::class);
- $table_section = getTableForItemType(PluginFormcreatorSections::class);
- $table_question = getTableForItemType(PluginFormcreatorQuestions::class);
+ $table_section = getTableForItemType(PluginFormcreatorSection::class);
+ $table_question = getTableForItemType(PluginFormcreatorQuestion::class);
$categoryFk = PluginFormcreatorCategory::getForeignKeyField();
@@ -843,7 +843,7 @@ public static function getFormList(int $rootCategory = 0, string $keywords = '',
foreach ($result_faqs as $faq) {
$formList[] = [
'id' => $faq['id'],
- 'name' => $faq['name'],
+ 'name' => $faq['transname'] ?? $faq['name'],
'icon' => '',
'icon_color' => '',
'background_color' => '',
diff --git a/inc/knowbase.class.php b/inc/knowbase.class.php
index f779e03d6..f872ebb25 100644
--- a/inc/knowbase.class.php
+++ b/inc/knowbase.class.php
@@ -136,7 +136,7 @@ public static function getCategoryTree() {
'FROM' => $cat_table,
'ORDER' => [
KnowbaseItemCategory::getTableField('level') . ' DESC',
- KnowbaseItemCategory::getTableField('name'),
+ KnowbaseItemCategory::getTableField('name') . ' DESC',
]
]);
@@ -222,7 +222,7 @@ public static function getFaqItems($rootCategory = 0, $keywords = '') {
foreach ($result_faqs as $faq) {
$formList[] = [
'id' => $faq['id'],
- 'name' => $faq['name'],
+ 'name' => $faq['transname'] ?? $faq['name'],
'icon' => '',
'icon_color' => '',
'background_color' => '',
diff --git a/inc/section.class.php b/inc/section.class.php
index 5f877aa0a..131d287d1 100644
--- a/inc/section.class.php
+++ b/inc/section.class.php
@@ -173,8 +173,10 @@ public function prepareInputForUpdate($input) {
$input['uuid'] = plugin_formcreator_getUuid();
}
- if (!$this->checkConditionSettings($input)) {
- $input['show_rule'] = PluginFormcreatorCondition::SHOW_RULE_ALWAYS;
+ if (!$this->skipChecks) {
+ if (!$this->checkConditionSettings($input)) {
+ $input['show_rule'] = PluginFormcreatorCondition::SHOW_RULE_ALWAYS;
+ }
}
return $input;
@@ -268,6 +270,8 @@ public function duplicate(array $options = []) {
public function moveUp() {
global $DB;
+ $this->fixOrder();
+
$order = $this->fields['order'];
$formId = $this->fields['plugin_formcreator_forms_id'];
$otherItem = new static();
@@ -311,6 +315,8 @@ public function moveUp() {
public function moveDown() {
global $DB;
+ $this->fixOrder();
+
$order = $this->fields['order'];
$formId = $this->fields['plugin_formcreator_forms_id'];
$otherItem = new static();
@@ -347,6 +353,33 @@ public function moveDown() {
return $success;
}
+ public function fixOrder(): void {
+ global $DB;
+
+ $formId = $this->fields['plugin_formcreator_forms_id'];
+
+ $iterator = $DB->request([
+ 'FROM' => static::getTable(),
+ 'WHERE' => [
+ 'AND' => [
+ 'plugin_formcreator_forms_id' => $formId,
+ ]
+ ],
+ 'ORDER' => ['order ASC']
+ ]);
+ $order = 1;
+ foreach ($iterator as $row) {
+ if ($row['order'] !== $order) {
+ $DB->update(static::getTable(), [
+ 'order' => $order
+ ], [
+ 'id' => $row['id']
+ ]);
+ }
+ $order++;
+ }
+ }
+
public static function import(PluginFormcreatorLinker $linker, $input = [], $containerId = 0) {
global $DB;
diff --git a/inc/target_actor.class.php b/inc/target_actor.class.php
index cdb566893..bfe3e7400 100644
--- a/inc/target_actor.class.php
+++ b/inc/target_actor.class.php
@@ -191,8 +191,11 @@ public static function import(PluginFormcreatorLinker $linker, $input = [], $con
$input['actor_value'] = $question->getID();
break;
- case self::ACTOR_TYPE_PERSON:
case self::ACTOR_TYPE_AUTHORS_SUPERVISOR:
+ $input['actor_value'] = 0;
+ break;
+
+ case self::ACTOR_TYPE_PERSON:
$user = new User;
$field = $idKey == 'id' ? 'id' : 'name';
$users_id = plugin_formcreator_getFromDBByField($user, $field, $input['actor_value']);
@@ -278,27 +281,36 @@ public function export(bool $remove_uuid = false) : array {
case self::ACTOR_TYPE_GROUP_FROM_OBJECT:
case self::ACTOR_TYPE_TECH_GROUP_FROM_OBJECT :
$question = new PluginFormcreatorQuestion;
- if ($question->getFromDB($target_actor['actor_value'])) {
- $target_actor['actor_value'] = $question->fields['uuid'];
+ $field = $idToRemove == 'uuid' ? 'id' : 'uuid';
+ $question->getFromDBByCrit([
+ $field => $target_actor['actor_value']
+ ]);
+ if (!$question->isNewItem()) {
+ $target_actor['actor_value'] = $idToRemove == 'uuid' ? $question->getID() : $question->fields['uuid'];
}
break;
- case self::ACTOR_TYPE_PERSON:
case self::ACTOR_TYPE_AUTHORS_SUPERVISOR:
+ $target_actor['actor_value'] = 0;
+ break;
+ case self::ACTOR_TYPE_PERSON:
$user = new User;
+ $field = $idToRemove == 'uuid' ? 'id' : 'completename';
if ($user->getFromDB($target_actor['actor_value'])) {
- $target_actor['actor_value'] = $user->fields['name'];
+ $target_actor['actor_value'] = $user->fields[$field];
}
break;
case self::ACTOR_TYPE_GROUP:
$group = new Group;
+ $field = $idToRemove == 'uuid' ? 'id' : 'completename';
if ($group->getFromDB($target_actor['actor_value'])) {
- $target_actor['actor_value'] = $group->fields['completename'];
+ $target_actor['actor_value'] = $group->fields[$field];
}
break;
case self::ACTOR_TYPE_SUPPLIER:
$supplier = new Supplier;
+ $field = $idToRemove == 'uuid' ? 'id' : 'completename';
if ($supplier->getFromDB($target_actor['actor_value'])) {
- $target_actor['actor_value'] = $supplier->fields['name'];
+ $target_actor['actor_value'] = $supplier->fields[$field];
}
break;
}
diff --git a/inc/targetticket.class.php b/inc/targetticket.class.php
index 6c49f2aeb..1c9269b6c 100644
--- a/inc/targetticket.class.php
+++ b/inc/targetticket.class.php
@@ -834,7 +834,7 @@ public function save(PluginFormcreatorFormAnswer $formanswer): ?CommonDBTM {
$this->prepareActors($form, $formanswer);
- if (count($this->requesters['_users_id_requester']) == 0) {
+ if (count($this->requesters['_users_id_requester']) == 0 && count($this->requesterGroups['_groups_id_requester']) == 0) {
$this->addActor(PluginFormcreatorTarget_Actor::ACTOR_ROLE_REQUESTER, $formanswer->fields['requester_id'], true);
$requesters_id = $formanswer->fields['requester_id'];
} else {
@@ -901,6 +901,14 @@ public function save(PluginFormcreatorFormAnswer $formanswer): ?CommonDBTM {
// Cleanup actors array
$data = $this->cleanActors($data);
+ // Specific format for actors in tickets
+ // @see CommonITILObject::setTechAndGroupFromItilCategory()
+ if ($data['_users_id_assign'] === 0) {
+ $data['_users_id_assign'] = [];
+ $data['_users_id_assign_notif']['use_notification'] = [];
+ $data['_users_id_assign_notif']['alternative_email'] = [];
+ }
+
// Create the target ticket
$data['_auto_import'] = true;
if (!$ticketID = $ticket->add($data)) {
diff --git a/install/install.php b/install/install.php
index 1c086c611..fdb689cc6 100644
--- a/install/install.php
+++ b/install/install.php
@@ -83,6 +83,7 @@ class PluginFormcreatorInstall {
'2.13.4' => '2.13.5',
'2.13.5' => '2.13.6',
'2.13.6' => '2.13.7',
+ '2.13.7' => '2.13.10',
];
protected bool $resyncIssues = false;
@@ -764,7 +765,7 @@ protected function createMiniDashboardBigNumbers() {
// With counters
$x = 0;
$w = 4; // Width
- $h = 1; // Height
+ $h = 2; // Height
$s = 0; // space between widgets
$y = 0;
foreach ($cards as $key => $options) {
diff --git a/install/mysql/plugin_formcreator_2.13.10_empty.sql b/install/mysql/plugin_formcreator_2.13.10_empty.sql
new file mode 100644
index 000000000..6838b92fb
--- /dev/null
+++ b/install/mysql/plugin_formcreator_2.13.10_empty.sql
@@ -0,0 +1,352 @@
+-- Database schema
+-- Do NOT drop anything here
+
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_answers` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_formanswers_id` int unsigned NOT NULL DEFAULT '0',
+ `plugin_formcreator_questions_id` int unsigned NOT NULL DEFAULT '0',
+ `answer` longtext,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_formanswers_id` (`plugin_formcreator_formanswers_id`),
+ INDEX `plugin_formcreator_questions_id` (`plugin_formcreator_questions_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_categories` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `comment` mediumtext,
+ `completename` varchar(255) DEFAULT NULL,
+ `plugin_formcreator_categories_id` int unsigned NOT NULL DEFAULT '0',
+ `level` int(11) NOT NULL DEFAULT '1',
+ `sons_cache` longtext,
+ `ancestors_cache` longtext,
+ `knowbaseitemcategories_id` int unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ INDEX `name` (`name`),
+ INDEX `knowbaseitemcategories_id` (`knowbaseitemcategories_id`),
+ INDEX `plugin_formcreator_categories_id` (`plugin_formcreator_categories_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_entityconfigs` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `entities_id` int unsigned NOT NULL DEFAULT '0',
+ `replace_helpdesk` int(11) NOT NULL DEFAULT '-2',
+ `default_form_list_mode` int(11) NOT NULL DEFAULT '-2',
+ `sort_order` int(11) NOT NULL DEFAULT '-2',
+ `is_kb_separated` int(11) NOT NULL DEFAULT '-2',
+ `is_search_visible` int(11) NOT NULL DEFAULT '-2',
+ `is_dashboard_visible` int(11) NOT NULL DEFAULT '-2',
+ `is_header_visible` int(11) NOT NULL DEFAULT '-2',
+ `is_search_issue_visible` int(11) NOT NULL DEFAULT '-2',
+ `tile_design` int(11) NOT NULL DEFAULT '-2',
+ `header` text,
+ `service_catalog_home` int(11) NOT NULL DEFAULT '-2',
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `unicity` (`entities_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `entities_id` int unsigned NOT NULL DEFAULT '0',
+ `is_recursive` tinyint(1) NOT NULL DEFAULT '0',
+ `icon` varchar(255) NOT NULL DEFAULT '',
+ `icon_color` varchar(255) NOT NULL DEFAULT '',
+ `background_color` varchar(255) NOT NULL DEFAULT '',
+ `access_rights` tinyint(1) NOT NULL DEFAULT '1',
+ `description` varchar(255) DEFAULT NULL,
+ `content` longtext,
+ `plugin_formcreator_categories_id` int unsigned NOT NULL DEFAULT '0',
+ `is_active` tinyint(1) NOT NULL DEFAULT '0',
+ `language` varchar(255) NOT NULL DEFAULT '',
+ `helpdesk_home` tinyint(1) NOT NULL DEFAULT '0',
+ `is_deleted` tinyint(1) NOT NULL DEFAULT '0',
+ `validation_required` tinyint(1) NOT NULL DEFAULT '0',
+ `usage_count` int(11) NOT NULL DEFAULT '0',
+ `is_default` tinyint(1) NOT NULL DEFAULT '0',
+ `is_captcha_enabled` tinyint(1) NOT NULL DEFAULT '0',
+ `show_rule` int(11) NOT NULL DEFAULT '1' COMMENT 'Conditions setting to show the submit button',
+ `formanswer_name` varchar(255) NOT NULL DEFAULT '',
+ `is_visible` tinyint NOT NULL DEFAULT 1,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `entities_id` (`entities_id`),
+ INDEX `plugin_formcreator_categories_id` (`plugin_formcreator_categories_id`),
+ FULLTEXT KEY `Search` (`name`,`description`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_formanswers` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `entities_id` int unsigned NOT NULL DEFAULT '0',
+ `is_recursive` tinyint(1) NOT NULL DEFAULT '0',
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `requester_id` int unsigned NOT NULL DEFAULT '0',
+ `users_id_validator` int unsigned NOT NULL DEFAULT '0' COMMENT 'User in charge of validation',
+ `groups_id_validator` int unsigned NOT NULL DEFAULT '0' COMMENT 'Group in charge of validation',
+ `request_date` timestamp NULL,
+ `status` int(11) NOT NULL DEFAULT '101',
+ `comment` mediumtext,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_forms_id` (`plugin_formcreator_forms_id`),
+ INDEX `entities_id_is_recursive` (`entities_id`, `is_recursive`),
+ INDEX `requester_id` (`requester_id`),
+ INDEX `users_id_validator` (`users_id_validator`),
+ INDEX `groups_id_validator` (`groups_id_validator`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms_profiles` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `profiles_id` int unsigned NOT NULL DEFAULT '0',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `unicity` (`plugin_formcreator_forms_id`,`profiles_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms_users` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_forms_id` int unsigned NOT NULL,
+ `users_id` int unsigned NOT NULL,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `unicity` (`plugin_formcreator_forms_id`,`users_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms_groups` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_forms_id` int unsigned NOT NULL,
+ `groups_id` int unsigned NOT NULL,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `unicity` (`plugin_formcreator_forms_id`,`groups_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms_validators` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `itemtype` varchar(255) NOT NULL DEFAULT '',
+ `items_id` int unsigned NOT NULL DEFAULT '0',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `unicity` (`plugin_formcreator_forms_id`,`itemtype`,`items_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_questions` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `plugin_formcreator_sections_id` int unsigned NOT NULL DEFAULT '0',
+ `fieldtype` varchar(30) NOT NULL DEFAULT 'text',
+ `required` tinyint(1) NOT NULL DEFAULT '0',
+ `show_empty` tinyint(1) NOT NULL DEFAULT '0',
+ `default_values` mediumtext,
+ `itemtype` varchar(255) NOT NULL DEFAULT '' COMMENT 'itemtype used for glpi objects and dropdown question types',
+ `values` mediumtext,
+ `description` mediumtext,
+ `row` int(11) NOT NULL DEFAULT '0',
+ `col` int(11) NOT NULL DEFAULT '0',
+ `width` int(11) NOT NULL DEFAULT '0',
+ `show_rule` int(11) NOT NULL DEFAULT '1',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_sections_id` (`plugin_formcreator_sections_id`),
+ FULLTEXT KEY `Search` (`name`,`description`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_conditions` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `itemtype` varchar(255) NOT NULL DEFAULT '' COMMENT 'itemtype of the item affected by the condition',
+ `items_id` int unsigned NOT NULL DEFAULT '0' COMMENT 'item ID of the item affected by the condition',
+ `plugin_formcreator_questions_id` int unsigned NOT NULL DEFAULT '0' COMMENT 'question to test for the condition',
+ `show_condition` int(11) NOT NULL DEFAULT '0',
+ `show_value` mediumtext NULL DEFAULT NULL,
+ `show_logic` int(11) NOT NULL DEFAULT '1',
+ `order` int(11) NOT NULL DEFAULT '1',
+ `uuid` varchar(255) NULL DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_questions_id` (`plugin_formcreator_questions_id`),
+ INDEX `item` (`itemtype`, `items_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_sections` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `order` int(11) NOT NULL DEFAULT '0',
+ `show_rule` int(11) NOT NULL DEFAULT '1',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_forms_id` (`plugin_formcreator_forms_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_targetchanges` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `target_name` varchar(255) NOT NULL DEFAULT '',
+ `changetemplates_id` int unsigned NOT NULL DEFAULT '0',
+ `content` longtext,
+ `impactcontent` longtext,
+ `controlistcontent` longtext,
+ `rolloutplancontent` longtext,
+ `backoutplancontent` longtext,
+ `checklistcontent` longtext,
+ `due_date_rule` int(11) NOT NULL DEFAULT '1',
+ `due_date_question` int unsigned NOT NULL DEFAULT '0',
+ `due_date_value` tinyint(4) DEFAULT NULL,
+ `due_date_period` int(11) NOT NULL DEFAULT '0',
+ `urgency_rule` int(11) NOT NULL DEFAULT '1',
+ `urgency_question` int unsigned NOT NULL DEFAULT '0',
+ `validation_followup` tinyint(1) NOT NULL DEFAULT '1',
+ `destination_entity` int(11) NOT NULL DEFAULT '1',
+ `destination_entity_value` int unsigned NOT NULL DEFAULT '0',
+ `tag_type` int(11) NOT NULL DEFAULT '1',
+ `tag_questions` varchar(255) NOT NULL DEFAULT '',
+ `tag_specifics` varchar(255) NOT NULL DEFAULT '',
+ `category_rule` int(11) NOT NULL DEFAULT '1',
+ `category_question` int unsigned NOT NULL DEFAULT '0',
+ `commonitil_validation_rule` int(11) NOT NULL DEFAULT '1',
+ `commonitil_validation_question` varchar(255) DEFAULT NULL,
+ `show_rule` int(11) NOT NULL DEFAULT '1',
+ `sla_rule` int(11) NOT NULL DEFAULT '1',
+ `sla_question_tto` int unsigned NOT NULL DEFAULT '0',
+ `sla_question_ttr` int unsigned NOT NULL DEFAULT '0',
+ `ola_rule` int(11) NOT NULL DEFAULT '1',
+ `ola_question_tto` int unsigned NOT NULL DEFAULT '0',
+ `ola_question_ttr` int unsigned NOT NULL DEFAULT '0',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_targettickets` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `target_name` varchar(255) NOT NULL DEFAULT '',
+ `source_rule` int(11) NOT NULL DEFAULT '0',
+ `source_question` int(11) NOT NULL DEFAULT '0',
+ `type_rule` int(11) NOT NULL DEFAULT '0',
+ `type_question` int unsigned NOT NULL DEFAULT '0',
+ `tickettemplates_id` int unsigned NOT NULL DEFAULT '0',
+ `content` longtext,
+ `due_date_rule` int(11) NOT NULL DEFAULT '1',
+ `due_date_question` int unsigned NOT NULL DEFAULT '0',
+ `due_date_value` tinyint(4) DEFAULT NULL,
+ `due_date_period` int(11) NOT NULL DEFAULT '0',
+ `urgency_rule` int(11) NOT NULL DEFAULT '1',
+ `urgency_question` int unsigned NOT NULL DEFAULT '0',
+ `validation_followup` tinyint(1) NOT NULL DEFAULT '1',
+ `destination_entity` int(11) NOT NULL DEFAULT '1',
+ `destination_entity_value` int unsigned NOT NULL DEFAULT '0',
+ `tag_type` int(11) NOT NULL DEFAULT '1',
+ `tag_questions` varchar(255) NOT NULL DEFAULT '',
+ `tag_specifics` varchar(255) NOT NULL DEFAULT '',
+ `category_rule` int(11) NOT NULL DEFAULT '1',
+ `category_question` int unsigned NOT NULL DEFAULT '0',
+ `associate_rule` int(11) NOT NULL DEFAULT '1',
+ `associate_question` int unsigned NOT NULL DEFAULT '0',
+ `location_rule` int(11) NOT NULL DEFAULT '1',
+ `location_question` int unsigned NOT NULL DEFAULT '0',
+ `commonitil_validation_rule` int(11) NOT NULL DEFAULT '1',
+ `commonitil_validation_question` varchar(255) DEFAULT NULL,
+ `show_rule` int(11) NOT NULL DEFAULT '1',
+ `sla_rule` int(11) NOT NULL DEFAULT '1',
+ `sla_question_tto` int unsigned NOT NULL DEFAULT '0',
+ `sla_question_ttr` int unsigned NOT NULL DEFAULT '0',
+ `ola_rule` int(11) NOT NULL DEFAULT '1',
+ `ola_question_tto` int unsigned NOT NULL DEFAULT '0',
+ `ola_question_ttr` int unsigned NOT NULL DEFAULT '0',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `tickettemplates_id` (`tickettemplates_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_targetproblems` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NOT NULL DEFAULT '',
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `target_name` varchar(255) NOT NULL DEFAULT '',
+ `problemtemplates_id` int unsigned NOT NULL DEFAULT '0',
+ `content` longtext,
+ `impactcontent` longtext,
+ `causecontent` longtext,
+ `symptomcontent` longtext,
+ `urgency_rule` int(11) NOT NULL DEFAULT '1',
+ `urgency_question` int unsigned NOT NULL DEFAULT '0',
+ `destination_entity` int(11) NOT NULL DEFAULT '1',
+ `destination_entity_value` int unsigned NOT NULL DEFAULT '0',
+ `tag_type` int(11) NOT NULL DEFAULT '1',
+ `tag_questions` varchar(255) NOT NULL DEFAULT '',
+ `tag_specifics` varchar(255) NOT NULL DEFAULT '',
+ `category_rule` int(11) NOT NULL DEFAULT '1',
+ `category_question` int unsigned NOT NULL DEFAULT '0',
+ `show_rule` int(11) NOT NULL DEFAULT '1',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `problemtemplates_id` (`problemtemplates_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_targets_actors` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `itemtype` varchar(255) DEFAULT NULL,
+ `items_id` int unsigned NOT NULL DEFAULT '0',
+ `actor_role` int(11) NOT NULL DEFAULT '1',
+ `actor_type` int(11) NOT NULL DEFAULT '1',
+ `actor_value` int unsigned NOT NULL DEFAULT '0',
+ `use_notification` tinyint(1) NOT NULL DEFAULT '1',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `item` (`itemtype`, `items_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_issues` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `name` varchar(255) NULL DEFAULT NULL,
+ `display_id` varchar(255) NOT NULL,
+ `items_id` int unsigned NOT NULL DEFAULT '0',
+ `itemtype` varchar(255) NOT NULL DEFAULT '',
+ `status` varchar(255) NOT NULL DEFAULT '',
+ `date_creation` timestamp NULL,
+ `date_mod` timestamp NULL,
+ `entities_id` int unsigned NOT NULL DEFAULT '0',
+ `is_recursive` tinyint(1) NOT NULL DEFAULT '0',
+ `requester_id` int unsigned NOT NULL DEFAULT '0',
+ `comment` longtext,
+ `users_id_recipient` int unsigned NOT NULL DEFAULT '0',
+ PRIMARY KEY (`id`),
+ INDEX `item` (`itemtype`, `items_id`),
+ INDEX `entities_id` (`entities_id`),
+ INDEX `requester_id` (`requester_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_items_targettickets` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_targettickets_id` int unsigned NOT NULL DEFAULT '0',
+ `link` int(11) NOT NULL DEFAULT '0',
+ `itemtype` varchar(255) NOT NULL DEFAULT '',
+ `items_id` int unsigned NOT NULL DEFAULT '0',
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_targettickets_id` (`plugin_formcreator_targettickets_id`),
+ INDEX `item` (`itemtype`,`items_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_questiondependencies` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_questions_id` int unsigned NOT NULL DEFAULT '0',
+ `plugin_formcreator_questions_id_2` int unsigned NOT NULL DEFAULT '0',
+ `fieldname` varchar(255) DEFAULT NULL,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_questions_id` (`plugin_formcreator_questions_id`),
+ INDEX `plugin_formcreator_questions_id_2` (`plugin_formcreator_questions_id_2`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_questionregexes` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_questions_id` int unsigned NOT NULL DEFAULT '0',
+ `regex` mediumtext DEFAULT NULL,
+ `fieldname` varchar(255) DEFAULT NULL,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_questions_id` (`plugin_formcreator_questions_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_questionranges` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_questions_id` int unsigned NOT NULL DEFAULT '0',
+ `range_min` varchar(255) DEFAULT NULL,
+ `range_max` varchar(255) DEFAULT NULL,
+ `fieldname` varchar(255) DEFAULT NULL,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ INDEX `plugin_formcreator_questions_id` (`plugin_formcreator_questions_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
+CREATE TABLE IF NOT EXISTS `glpi_plugin_formcreator_forms_languages` (
+ `id` int unsigned NOT NULL AUTO_INCREMENT,
+ `plugin_formcreator_forms_id` int unsigned NOT NULL DEFAULT '0',
+ `name` varchar(255) DEFAULT NULL,
+ `comment` text,
+ `uuid` varchar(255) DEFAULT NULL,
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC;
\ No newline at end of file
diff --git a/install/upgrade_to_2.13.10.php b/install/upgrade_to_2.13.10.php
new file mode 100644
index 000000000..dbc91847c
--- /dev/null
+++ b/install/upgrade_to_2.13.10.php
@@ -0,0 +1,80 @@
+.
+ * ---------------------------------------------------------------------
+ * @copyright Copyright © 2011 - 2021 Teclib'
+ * @license http://www.gnu.org/licenses/gpl.txt GPLv3+
+ * @link https://github.com/pluginsGLPI/formcreator/
+ * @link https://pluginsglpi.github.io/formcreator/
+ * @link http://plugins.glpi-project.org/#/plugin/formcreator
+ * ---------------------------------------------------------------------
+ */
+
+use Glpi\Dashboard\Dashboard;
+use Glpi\Dashboard\Item;
+
+class PluginFormcreatorUpgradeTo2_13_10
+{
+ /** @var Migration */
+ protected $migration;
+
+ public function isResyncIssuesRequired() {
+ return false;
+ }
+
+ /**
+ * @param Migration $migration
+ */
+ public function upgrade(Migration $migration) {
+ $this->migration = $migration;
+ $this->resizeWidgets();
+ }
+
+ /**
+ * Resize widgets of the `plugin_formcreator_issue_counters` dashboard to match
+ * the mini_tickets core dashboard style
+ *
+ * @return void
+ */
+ public function resizeWidgets() {
+ // Get container
+ $dashboard = new Dashboard();
+ $found = $dashboard->getFromDB("plugin_formcreator_issue_counters");
+
+ if (!$found) {
+ // Unable to fetch dashboard
+ return;
+ };
+
+ $di = new Item();
+ $cards = $di->find(['dashboards_dashboards_id' => $dashboard->fields['id']]);
+
+ foreach ($cards as $card) {
+ $di = new Item();
+ $di->update([
+ 'id' => $card['id'],
+ 'height' => 2,
+ ]);
+ }
+ }
+}
diff --git a/install/upgrade_to_2.13.7.php b/install/upgrade_to_2.13.7.php
index efba230d7..e0399d8ca 100644
--- a/install/upgrade_to_2.13.7.php
+++ b/install/upgrade_to_2.13.7.php
@@ -1,4 +1,5 @@
0,
]);
- $x +=4;
+ $x += 4;
}
}
}
diff --git a/locales/cs_CZ.po b/locales/cs_CZ.po
index 93d6c28d5..264c77dd7 100644
--- a/locales/cs_CZ.po
+++ b/locales/cs_CZ.po
@@ -5,8 +5,8 @@
#
# Translators:
# Pavel Borecki , 2022
-# David Stepan , 2023
# Thierry Bugier , 2023
+# David Stepan , 2024
#
#, fuzzy
msgid ""
@@ -15,7 +15,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-11-13 14:56+0100\n"
"PO-Revision-Date: 2021-08-30 07:22+0000\n"
-"Last-Translator: Thierry Bugier , 2023\n"
+"Last-Translator: David Stepan , 2024\n"
"Language-Team: Czech (Czech Republic) (https://app.transifex.com/teclib/teams/28042/cs_CZ/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -254,7 +254,7 @@ msgstr "LDAP adresář nenalezen!"
#: inc/field/ldapselectfield.class.php:154
msgid "LDAP attribute is required!"
-msgstr ""
+msgstr "Atribut LDAP je povinný!"
#: inc/field/textfield.class.php:146 inc/field/floatfield.class.php:156
#, php-format
@@ -294,15 +294,15 @@ msgstr "Přepínač"
#: inc/field/radiosfield.class.php:116 inc/field/checkboxesfield.class.php:256
msgid "The field value is required."
-msgstr ""
+msgstr "Hodnota pole je povinná."
#: inc/field/radiosfield.class.php:127
msgid "Only one default value is allowed."
-msgstr ""
+msgstr "Je povolena pouze jedna výchozí hodnota."
#: inc/field/radiosfield.class.php:138
msgid "The default value is not in the list of available values."
-msgstr ""
+msgstr "Výchozí hodnota není v seznamu dostupných hodnot."
#: inc/field/radiosfield.class.php:215 inc/field/selectfield.class.php:105
#: inc/field/datetimefield.class.php:119 inc/field/actorfield.class.php:257
@@ -314,7 +314,7 @@ msgstr "Povinné pole je prázdné: %s"
#: inc/field/radiosfield.class.php:234 inc/field/selectfield.class.php:123
#, php-format
msgid "This value %1$s is not allowed: %2$s"
-msgstr ""
+msgstr "Tato hodnota %1$s není povolena: %2$s"
#: inc/field/integerfield.class.php:60
#, php-format
@@ -503,26 +503,26 @@ msgstr "Zaškrtávací kolonka"
#: inc/field/checkboxesfield.class.php:208
#, php-format
msgid "Empty values are not allowed: %s"
-msgstr ""
+msgstr "Prázdné hodnoty nejsou povoleny: %s"
#: inc/field/checkboxesfield.class.php:216
#, php-format
msgid "This value %1$s is not alowed: %2$s"
-msgstr ""
+msgstr "Tato hodnota %1$s není povolena: %2$s"
#: inc/field/checkboxesfield.class.php:236
#, php-format
msgid "The following question needs at least %d answers: %s"
-msgstr ""
+msgstr "Následující otázka vyžaduje alespoň %d odpovědi: %s"
#: inc/field/checkboxesfield.class.php:242
#, php-format
msgid "The following question does not accept more than %d answers: %s"
-msgstr ""
+msgstr "Následující dotaz nepřijímá více než %d odpovědí: %s"
#: inc/field/checkboxesfield.class.php:270
msgid "The default values are not in the list of available values."
-msgstr ""
+msgstr "Výchozí hodnoty nejsou v seznamu dostupných hodnot."
#: inc/field/checkboxesfield.class.php:325
msgid "Range min"
@@ -743,19 +743,19 @@ msgstr "Skupina schvalovatele formuláře"
#: inc/issue.class.php:817
msgid "Ticket approver group"
-msgstr ""
+msgstr "Skupina schvalovatelů požadavku"
#: inc/issue.class.php:857
msgid "Ticket requester"
-msgstr ""
+msgstr "Žadatel požadavku"
#: inc/issue.class.php:904
msgid "Ticket observer"
-msgstr ""
+msgstr "Pozorovatel požadavku"
#: inc/issue.class.php:952
msgid "Ticket technician"
-msgstr ""
+msgstr "Technik požadavku"
#: inc/issue.class.php:1099
#, php-format
@@ -830,7 +830,7 @@ msgstr "Formulář byl smazán"
#: inc/notificationtargetformanswer.class.php:74
msgid "Form ID"
-msgstr ""
+msgstr "ID Formuláře"
#: inc/notificationtargetformanswer.class.php:75
#: inc/notificationtargetformanswer.class.php:95
@@ -850,7 +850,7 @@ msgstr "Úplné odpovědi formuláře"
#: inc/notificationtargetformanswer.class.php:80
msgid "Validation comment"
-msgstr ""
+msgstr "Komentář ověřovatele"
#: inc/notificationtargetformanswer.class.php:81
#: inc/notificationtargetformanswer.class.php:101
@@ -859,7 +859,7 @@ msgstr "Odkaz ověření"
#: inc/notificationtargetformanswer.class.php:82
msgid "Request ID"
-msgstr ""
+msgstr "ID žádosti"
#: inc/notificationtargetformanswer.class.php:94
msgid "Form #"
@@ -1032,6 +1032,8 @@ msgid ""
"An internal error occured when verifying your answers. Please report it to "
"your administrator."
msgstr ""
+"Při ověřování vašich odpovědí došlo k interní chybě. Nahlaste to prosím "
+"svému správci."
#: inc/formanswer.class.php:882
msgid "You are not the validator of these answers"
@@ -1040,7 +1042,7 @@ msgstr "Nejste ověřovatelem těchto odpovědí"
#: inc/formanswer.class.php:1021
#, php-format
msgid "Item sucessfully added: %1$s (%2$s: %3$s)"
-msgstr ""
+msgstr "Položka byla úspěšně přidána: %1$s (%2$s: %3$s)"
#: inc/formanswer.class.php:1104 inc/formanswer.class.php:1106
msgid "Form data"
@@ -1053,7 +1055,7 @@ msgstr "Není možné vytvářet cíle!"
#: inc/formanswer.class.php:1434
#, php-format
msgid "Answer is invalid in %1$s"
-msgstr ""
+msgstr "Odpověď je neplatná v %1$s"
#: inc/formanswer.class.php:1462
msgid "No turing test set"
@@ -1085,7 +1087,7 @@ msgstr "Mé žádosti o pomoc"
#: inc/common.class.php:829
msgid "Consult reminders"
-msgstr ""
+msgstr "Konzultovat upomínky"
#: inc/common.class.php:849
msgid "Consult feeds"
@@ -1133,15 +1135,15 @@ msgstr[3] "Překlady"
#: inc/form_language.class.php:122
msgid "The name cannot be empty."
-msgstr ""
+msgstr "Jméno nemůže být prázdné."
#: inc/form_language.class.php:130
msgid "The language must be associated to a form."
-msgstr ""
+msgstr "Jazyk musí být přiřazen k formuláři."
#: inc/form_language.class.php:138
msgid "The specified language is not available."
-msgstr ""
+msgstr "Zadaný jazyk není k dispozici."
#: inc/form_language.class.php:268
msgid "Add a translation"
@@ -1337,11 +1339,11 @@ msgstr "Jednotná výška"
#: inc/entityconfig.class.php:164
msgid "Search for assistance"
-msgstr ""
+msgstr "Vyhledat pomoc"
#: inc/entityconfig.class.php:165
msgid "User's assistance requests"
-msgstr ""
+msgstr "Žádosti uživatele o pomoc"
#: inc/entityconfig.class.php:261
msgid "Helpdesk"
@@ -1382,7 +1384,7 @@ msgstr "Problém s hledáním"
#: inc/entityconfig.class.php:393 inc/entityconfig.class.php:509
msgid "Service catalog home page"
-msgstr ""
+msgstr "Domovská stránka katalogu služeb"
#: inc/entityconfig.class.php:409 inc/entityconfig.class.php:549
msgid "Tile design"
@@ -1516,7 +1518,7 @@ msgstr "Náhled"
#: inc/form.class.php:576
msgid "Form answer properties"
-msgstr ""
+msgstr "Vlastnosti odpovědi formuláře"
#: inc/form.class.php:900
msgid "What are you looking for?"
@@ -1590,7 +1592,7 @@ msgstr "Zpět"
#: inc/form.class.php:1568
#, php-format
msgid "Form updated: %s"
-msgstr ""
+msgstr "Formulář aktualizován: %s"
#: inc/form.class.php:1668
msgid "Upload of JSON files not allowed."
@@ -1925,29 +1927,29 @@ msgstr "Typ entity dle otázky"
#: inc/command/cleanticketscommand.class.php:53
msgid "Searching for invalid items..."
-msgstr ""
+msgstr "Vyhledávání neplatných položek..."
#: inc/command/cleanticketscommand.class.php:61
msgid "Done."
-msgstr ""
+msgstr "Hotovo."
#: inc/command/cleanticketscommand.class.php:135
msgid "Step 1: double encoded < and > signs."
-msgstr ""
+msgstr "Krok 1: dvojitě zakódované znaky < a >."
#: inc/command/cleanticketscommand.class.php:146
#: inc/command/cleanticketscommand.class.php:196
#: inc/command/cleanticketscommand.class.php:260
msgid "No invalid items found."
-msgstr ""
+msgstr "Nebyly nalezeny žádné neplatné položky."
#: inc/command/cleanticketscommand.class.php:187
msgid "Step 2: literal BR tag."
-msgstr ""
+msgstr "Krok 2: znak BR."
#: inc/command/cleanticketscommand.class.php:251
msgid "Step 3: litteral > sign."
-msgstr ""
+msgstr "Krok 3: znak >."
#: inc/filter/itilcategoryfilter.class.php:52
#: inc/filter/itilcategoryfilter.class.php:54
@@ -2118,7 +2120,7 @@ msgstr "Žádný další řetězec k překladu"
#: inc/translation.class.php:164
msgid "Internal error: translatable string not found."
-msgstr ""
+msgstr "Interní chyba: Přeložitelný řetězec nebyl nalezen."
#: inc/translation.class.php:216
msgid "Language not found."
@@ -2332,7 +2334,7 @@ msgstr "Ano"
#: install/install.php:135
#, php-format
msgid "Upgrade tables to innoDB; run %s"
-msgstr ""
+msgstr "Upgradujte tabulky na innoDB; běh %s"
#: install/install.php:172
#, php-format
@@ -2340,11 +2342,13 @@ msgid ""
"The database schema is not consistent with the previous version of "
"Formcreator %s. To see the logs run the command %s"
msgstr ""
+"Schéma databáze není konzistentní s předchozí verzí Formcreator %s. Chcete-"
+"li zobrazit protokoly, spusťte příkaz %s"
#: install/install.php:181
#, php-format
msgid "To ignore the inconsistencies and upgrade anyway run %s"
-msgstr ""
+msgstr "Chcete-li ignorovat nesrovnalosti a provést upgrade, spusťte %s"
#: install/install.php:198
msgid ""
@@ -2352,6 +2356,9 @@ msgid ""
" to GLPI 9.5.7, upgrade Formcreator to version 2.12.5, then upgrade again to"
" GLPI 10 or later and Formcreator 2.13 or later."
msgstr ""
+"Upgrade z verze starší než 2.5.0 již není podporován. Upgradujte prosím na "
+"GLPI 9.5.7, upgradujte Formcreator na verzi 2.12.5 a poté znovu upgradujte "
+"na GLPI 10 nebo novější a Formcreator 2.13 nebo novější."
#: install/install.php:250
#, php-format
@@ -2359,10 +2366,12 @@ msgid ""
"The database schema is not consistent with the current version of "
"Formcreator %s. To see the logs enable the plugin and run the command %s"
msgstr ""
+"Schéma databáze není konzistentní s aktuální verzí Formcreator %s. Chcete-li"
+" zobrazit protokoly, povolte zásuvný modul a spusťte příkaz %s"
#: install/install.php:261
msgid "The tables of the plugin passed the schema integrity check."
-msgstr ""
+msgstr "Tabulky pluginu prošly kontrolou integrity schématu."
#: install/install.php:413
msgid "A form has been created"
@@ -2435,22 +2444,22 @@ msgstr "Vytváření formulářů – problémy katalogu synchronizační služb
#: install/install.php:853
msgid "Failed to check the sanity of the tables!"
-msgstr ""
+msgstr "Nepodařilo se zkontrolovat správnost tabulek!"
#: install/install.php:867
#, php-format
msgid "Table schema differs for table \"%s\"."
-msgstr ""
+msgstr "Schéma tabulky se liší pro tabulku \"%s\"."
#: install/install.php:870
#, php-format
msgid "Table \"%s\" is missing."
-msgstr ""
+msgstr "Tabulka \"%s“ chybí."
#: install/install.php:873
#, php-format
msgid "Unknown table \"%s\" has been found in database."
-msgstr ""
+msgstr "V databázi byla nalezena neznámá tabulka \"%s\"."
#: hook.php:378
msgctxt "button"
@@ -2469,7 +2478,7 @@ msgstr "Export"
#: hook.php:381
msgctxt "button"
msgid "Access rights"
-msgstr ""
+msgstr "Přístupová práva"
#: hook.php:693
msgid "Cancel my ticket"
@@ -2530,15 +2539,15 @@ msgstr "Odeslat"
#: js/scripts.js:1381
msgid "An internal error occurred. Please report it to administrator."
-msgstr ""
+msgstr "Objevila se interní chyba. Nahlaste to prosím administrátorovi."
#: js/scripts.js:1449
msgid "Are you sure you want to duplicate this target?"
-msgstr ""
+msgstr "Opravdu chcete duplikovat tento cíl?"
#: js/scripts.js:1466
msgid "Are you sure you want to delete this target?"
-msgstr ""
+msgstr "Opravdu chcete tento cíl smazat?"
#: entrée standard:43 standard:50 standard:44 standard:82 standard:49
#: standard:78
@@ -2632,12 +2641,12 @@ msgstr "Podmínka pro zobrazení tlačítka Odeslat"
#: entrée standard:33
msgid "No form answer yet"
-msgstr ""
+msgstr "Zatím žádná odpověď z formuláře"
#: entrée standard:38
#, php-format
msgid "%s latest items"
-msgstr ""
+msgstr "%s nejnovější položky"
#: entrée standard:83
msgid "Add a question"
diff --git a/locales/es_AR.po b/locales/es_AR.po
index 11ad92f47..50beeffbf 100644
--- a/locales/es_AR.po
+++ b/locales/es_AR.po
@@ -7,8 +7,8 @@
# Emiliano Cagliari , 2022
# Luis Angel Uriarte , 2022
# Fernando Toledo , 2023
-# Nicolás Gaviola, 2023
# Thierry Bugier , 2023
+# Nicolás Gaviola, 2024
#
#, fuzzy
msgid ""
@@ -17,7 +17,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-11-13 14:56+0100\n"
"PO-Revision-Date: 2021-08-30 07:22+0000\n"
-"Last-Translator: Thierry Bugier , 2023\n"
+"Last-Translator: Nicolás Gaviola, 2024\n"
"Language-Team: Spanish (Argentina) (https://app.transifex.com/teclib/teams/28042/es_AR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -68,7 +68,7 @@ msgstr "Limite la profundidad del subárbol"
#: ajax/commontree.php:84
msgid "No limit"
-msgstr "Sin limite."
+msgstr "Sin limite"
#: ajax/homepage_link.php:36 inc/formlist.class.php:46 inc/form.class.php:111
#: entrée standard:47
@@ -200,7 +200,7 @@ msgstr "Campo obligatorio vacío:"
#: inc/field/integerfield.class.php:82 inc/field/floatfield.class.php:197
#: inc/conditionnabletrait.class.php:70
msgid "The regular expression is invalid"
-msgstr "La expresión regular no es válida."
+msgstr "La expresión regular no es válida"
#: inc/field/dropdownfield.class.php:79 inc/filter/entityfilter.class.php:48
msgid "User and form"
@@ -215,7 +215,7 @@ msgstr[2] "Menúes desplegables"
#: inc/field/dropdownfield.class.php:473
msgid "Invalid value for "
-msgstr "Valor incorrecto para"
+msgstr "Valor incorrecto para "
#: inc/field/dropdownfield.class.php:485
#, php-format
@@ -254,7 +254,7 @@ msgstr "¡El directorio LDAP no se ha encontrado!"
#: inc/field/ldapselectfield.class.php:154
msgid "LDAP attribute is required!"
-msgstr ""
+msgstr "¡El atributo LDAP es obligatorio!"
#: inc/field/textfield.class.php:146 inc/field/floatfield.class.php:156
#, php-format
@@ -976,7 +976,7 @@ msgstr[2] "Respuestas del formulario"
#: inc/formanswer.class.php:629
msgid "Print this form"
-msgstr "cbvsxv"
+msgstr "Imprimir este formulario"
#: inc/formanswer.class.php:654
msgid "Form accepted by validator."
@@ -1402,7 +1402,7 @@ msgstr "Rango mínimo"
#: inc/questionrange.class.php:71 inc/questionparameter/range.class.php:75
msgid "maximum range"
-msgstr "Rango máximo"
+msgstr "rango máximo"
#: inc/form.class.php:66 inc/form.class.php:432
msgid "Public access"
@@ -1616,7 +1616,7 @@ msgstr "Enviar"
#: inc/form.class.php:1749
msgid "Forms import impossible, the file is empty"
-msgstr "imposible importar el formulario, el archivo esta vacío"
+msgstr "Imposible importar el formulario, el archivo esta vacío"
#: inc/form.class.php:1753 inc/form.class.php:1757
msgid "Forms import impossible, the file seems corrupt"
@@ -1688,7 +1688,7 @@ msgstr "Agregar"
#: inc/form.class.php:2272 inc/form.class.php:2295 inc/form.class.php:2317
msgid "Unsupported target type."
-msgstr "Tipo de Destino no soportado"
+msgstr "Tipo de Destino no soportado."
#: inc/form.class.php:2351
msgid "plugin_formcreator_load_check"
@@ -1885,7 +1885,7 @@ msgstr "Un destino debe de ser asociado a el formulario."
#: inc/abstracttarget.class.php:134
msgid "A target must be associated to an existing form."
-msgstr "Un destino debe estar asociado a un formulario existente"
+msgstr "Un destino debe estar asociado a un formulario existente."
#: inc/abstracttarget.class.php:139
msgid "Name is required."
@@ -2042,7 +2042,7 @@ msgstr "Otro destino de este formulario"
#: inc/targetticket.class.php:401
msgid "An existing ticket"
-msgstr "Un Ticket existente."
+msgstr "Un ticket existente"
#: inc/targetticket.class.php:402
msgid "A ticket from an answer to a question"
@@ -2063,11 +2063,11 @@ msgstr "Tipo de elemento vinculado no válido"
#: inc/targetticket.class.php:757
msgid "Linked item does not exists"
-msgstr "El elemento vinculado no existe."
+msgstr "El elemento vinculado no existe"
#: inc/targetticket.class.php:770
msgid "Failed to link the item"
-msgstr "Error al vincular el elemento."
+msgstr "Error al vincular el elemento"
#: inc/targetticket.class.php:939 install/install.php:432
msgid "Your form has been accepted by the validator"
@@ -2079,7 +2079,7 @@ msgstr "Tipo de solicitud"
#: inc/targetticket.class.php:1120
msgid "Type "
-msgstr "Tipo"
+msgstr "Tipo "
#: inc/targetticket.class.php:1148
msgid "Associated elements"
@@ -2087,7 +2087,7 @@ msgstr "Elementos asociados"
#: inc/targetticket.class.php:1159
msgid "Item "
-msgstr "ítem"
+msgstr "Ítem "
#: inc/translation.class.php:153
msgid "No more string to translate"
@@ -2099,7 +2099,7 @@ msgstr "Error interno: cadena traducible no encontrada."
#: inc/translation.class.php:216
msgid "Language not found."
-msgstr "Idioma no encontrado"
+msgstr "Idioma no encontrado."
#: inc/translation.class.php:221
msgid "Form not found."
@@ -2127,15 +2127,15 @@ msgstr "Etiquetas de preguntas o etiquetas específicas"
#: inc/abstractitiltarget.class.php:188
msgid "equals to the answer to the question"
-msgstr "Equivale a la respuesta a la pregunta"
+msgstr "la respuesta es igual a la pregunta"
#: inc/abstractitiltarget.class.php:189
msgid "calculated from the ticket creation date"
-msgstr "Calculado a partir de la fecha de creación del ticket"
+msgstr "calculado a partir de la fecha de creación del ticket"
#: inc/abstractitiltarget.class.php:190
msgid "calculated from the answer to the question"
-msgstr "Calculado a partir de la respuesta a la pregunta"
+msgstr "calculado a partir de la respuesta a la pregunta"
#: inc/abstractitiltarget.class.php:196
msgid "SLA from template or none"
@@ -2239,7 +2239,7 @@ msgstr "OLA ( TTO / TTR )"
#: inc/abstractitiltarget.class.php:1034
msgid "Urgency "
-msgstr "Urgencia"
+msgstr "Urgencia "
#: inc/abstractitiltarget.class.php:1064
msgid "Ticket tags"
@@ -2255,7 +2255,7 @@ msgstr "Lugar"
#: inc/abstractitiltarget.class.php:1243
msgid "Location "
-msgstr "Ubicación"
+msgstr "Ubicación "
#: inc/abstractitiltarget.class.php:1583
msgid "The description cannot be empty!"
@@ -2569,7 +2569,7 @@ msgstr "Mostrar categorías de ticket"
#: entrée standard:109
msgid "Time to own"
-msgstr "Tiempo de posesión "
+msgstr "Tiempo de posesión"
#: entrée standard:146 standard:118
msgid "Selectable root"
diff --git a/locales/pt_PT.po b/locales/pt_PT.po
index 3c485c1a9..608a9d162 100644
--- a/locales/pt_PT.po
+++ b/locales/pt_PT.po
@@ -2,20 +2,23 @@
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
-#
+#
# Translators:
# Pedro Rocha , 2021
# Rui Melo , 2022
-# Pedro B., 2022
-#
+# Thierry Bugier , 2023
+# Anxo Jueguen, 2024
+# Gonçalo Dumas, 2024
+# Pedro B., 2024
+#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2023-05-30 09:32+0200\n"
+"POT-Creation-Date: 2023-11-13 14:56+0100\n"
"PO-Revision-Date: 2021-08-30 07:22+0000\n"
-"Last-Translator: Pedro B., 2022\n"
+"Last-Translator: Pedro B., 2024\n"
"Language-Team: Portuguese (Portugal) (https://app.transifex.com/teclib/teams/28042/pt_PT/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -54,7 +57,7 @@ msgstr "Não foi possível adicionar a secção"
#: ajax/commontree.php:55 entrée standard:128 standard:100
msgid "Subtree root"
-msgstr "Árvore raiz"
+msgstr "Raiz da árvore"
#: ajax/commontree.php:59
msgid "Selectable"
@@ -68,14 +71,13 @@ msgstr "Limitar profundidade de árvore "
msgid "No limit"
msgstr "Sem limite"
-#: ajax/homepage_link.php:36 inc/formlist.class.php:46
-#: inc/entityconfig.class.php:84 inc/form.class.php:111 inc/form.class.php:580
-#: inc/form.class.php:2027 entrée standard:47
+#: ajax/homepage_link.php:36 inc/formlist.class.php:46 inc/form.class.php:111
+#: entrée standard:47
msgid "Form"
msgid_plural "Forms"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Formulário"
+msgstr[1] "Formulários"
+msgstr[2] "Formulários"
#: ajax/section_delete.php:44 ajax/section_move.php:49
#: ajax/section_duplicate.php:44
@@ -88,7 +90,7 @@ msgstr "Não foi possível apagar a secção"
#: ajax/question_add.php:45
msgid "Could not add the question"
-msgstr ""
+msgstr "Não foi possível adicionar a questão"
#: ajax/section_move.php:66
msgid "Could not move the section"
@@ -96,11 +98,11 @@ msgstr "Não foi possível mover a secção"
#: ajax/target_actor.php:51
msgid "Failed to add the actor"
-msgstr ""
+msgstr "Falhou ao adicionar o ator"
#: ajax/target_actor.php:62
msgid "Failed to delete the actor"
-msgstr ""
+msgstr "Falhou ao apagar o ator"
#: ajax/section_duplicate.php:56
msgid "Could not duplicate the section"
@@ -114,7 +116,7 @@ msgstr "Não foi possível atualizar a secção"
#: front/wizardreminders.php:49 front/wizardreminders.php:51
#: front/wizard.php:45 front/wizard.php:50 front/wizardfeeds.php:49
#: front/wizardfeeds.php:51 front/issue.php:44 front/issue.php:50
-#: front/formanswer.php:44 front/reservation.php:46 front/reservation.php:48
+#: front/formanswer.php:46 front/reservation.php:46 front/reservation.php:48
#: front/knowbaseitem.form.php:48 front/knowbaseitem.form.php:50
#: front/reservationitem.php:42 front/reservationitem.php:44
#: front/formanswer.form.php:74 front/reservation.form.php:46
@@ -124,22 +126,21 @@ msgstr "Catálogo de serviços"
#: front/issue.form.php:46
msgid "Item not found"
-msgstr ""
+msgstr "Item não encontrado"
#: front/targetticket.form.php:46 front/targetticket.form.php:56
#: front/targetticket.form.php:81 front/targetchange.form.php:46
#: front/targetproblem.form.php:46
msgid "No right to update this item."
-msgstr ""
+msgstr "Não tem acesso a atualizar este item."
#: front/targetticket.form.php:75
msgid "Bad request while deleting an actor."
-msgstr ""
+msgstr "Pedido incorreto ao apagar um ator."
#: front/targetticket.form.php:95 front/targetchange.form.php:81
-#: front/formanswer.php:47 front/targetproblem.form.php:81
-#: front/formanswer.form.php:77 front/form.php:44 inc/common.class.php:692
-#: inc/common.class.php:699
+#: front/formanswer.php:49 front/targetproblem.form.php:81 front/form.php:44
+#: inc/common.class.php:692 inc/common.class.php:699
msgid "Form Creator"
msgstr "Criador de formulários"
@@ -147,14 +148,14 @@ msgstr "Criador de formulários"
#: front/targetproblem.form.php:90
#, php-format
msgid "%1$s = %2$s"
-msgstr ""
+msgstr "%1$s = %2$s"
#: front/formlist.php:46 front/formlist.php:52 inc/common.class.php:686
msgid "Form list"
msgstr "Lista de formulários"
-#: front/formdisplay.php:90 inc/formanswer.class.php:1009
-#: inc/formanswer.class.php:1242 inc/formanswer.class.php:1292
+#: front/formdisplay.php:90 inc/formanswer.class.php:1015
+#: inc/formanswer.class.php:1248 inc/formanswer.class.php:1298
msgid "The form has been successfully saved!"
msgstr "O formulário foi gravado com sucesso!"
@@ -162,33 +163,33 @@ msgstr "O formulário foi gravado com sucesso!"
#: front/reservation.form.php:71
#, php-format
msgid "%1$s purges the reservation for item %2$s"
-msgstr ""
+msgstr "%1$s elimina a reserva para o item %2$s"
#: front/reservation.form.php:124
#, php-format
msgid "%1$s adds the reservation %2$s for item %3$s"
-msgstr ""
+msgstr "%1$s adiciona a reserva %2$s para o item %3$s"
#: inc/knowbase.class.php:60 inc/form.class.php:658
msgid "Category"
msgid_plural "Categories"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Categoria"
+msgstr[1] "Categorias"
+msgstr[2] "Categorias"
#: inc/knowbase.class.php:62 inc/form.class.php:661 entrée standard:39
msgid "See all"
-msgstr ""
+msgstr "Ver tudo"
#: inc/knowbase.class.php:83
msgid "Please, describe your need here"
msgstr "Por favor, descreva sua necessidade aqui"
-#: inc/field/textareafield.class.php:185
+#: inc/field/textareafield.class.php:176
msgid "Textarea"
msgstr "Área de texto"
-#: inc/field/textareafield.class.php:248 inc/field/dropdownfield.class.php:441
+#: inc/field/textareafield.class.php:239 inc/field/dropdownfield.class.php:451
#: inc/field/ldapselectfield.class.php:114 inc/field/textfield.class.php:125
#: inc/field/urgencyfield.class.php:165 inc/field/tagfield.class.php:163
#: inc/field/timefield.class.php:113 inc/field/fieldsfield.class.php:488
@@ -196,46 +197,48 @@ msgstr "Área de texto"
msgid "A required field is empty:"
msgstr "Um campo obrigatório está disponível:"
-#: inc/field/textareafield.class.php:266 inc/field/textfield.class.php:178
-#: inc/field/integerfield.class.php:112 inc/field/floatfield.class.php:193
+#: inc/field/textareafield.class.php:257 inc/field/textfield.class.php:178
+#: inc/field/integerfield.class.php:82 inc/field/floatfield.class.php:197
#: inc/conditionnabletrait.class.php:70
msgid "The regular expression is invalid"
msgstr "A expressão regular é inválida"
-#: inc/field/dropdownfield.class.php:76 inc/filter/entityfilter.class.php:48
+#: inc/field/dropdownfield.class.php:79 inc/filter/entityfilter.class.php:48
msgid "User and form"
-msgstr ""
+msgstr "Utilizador e formulário"
-#: inc/field/dropdownfield.class.php:432 entrée standard:38
+#: inc/field/dropdownfield.class.php:442 entrée standard:38
msgid "Dropdown"
msgid_plural "Dropdowns"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Lista de seleção"
+msgstr[1] "Listas de seleção"
+msgstr[2] "Listas de seleção"
-#: inc/field/dropdownfield.class.php:463
+#: inc/field/dropdownfield.class.php:473
msgid "Invalid value for "
-msgstr ""
+msgstr "Valor inválido para"
-#: inc/field/dropdownfield.class.php:475
+#: inc/field/dropdownfield.class.php:485
#, php-format
msgid "The itemtype field is required: %s"
-msgstr ""
+msgstr "O campo tipo de item é obrigatório\\: %s"
-#: inc/field/dropdownfield.class.php:491
+#: inc/field/dropdownfield.class.php:501
#, php-format
msgid "Invalid dropdown type: %s"
-msgstr ""
+msgstr "Tipo de lista suspensa inválida: %s"
-#: inc/field/dropdownfield.class.php:822 entrée standard:162 standard:134
+#: inc/field/dropdownfield.class.php:839 entrée standard:162 standard:134
msgid "Entity restriction"
-msgstr ""
+msgstr "Restrição de entidade"
-#: inc/field/dropdownfield.class.php:831
+#: inc/field/dropdownfield.class.php:848
msgid ""
"To respect the GLPI entity system, \"Form\" should be selected. Others "
"settings will break the entity restrictions"
msgstr ""
+"Para respeitar o sistema de entidades GLPI, deve-se selecionar "
+"\"Formulário\". Outras configurações quebrarão as restrições da entidade"
#: inc/field/ldapselectfield.class.php:95
msgid "LDAP Select"
@@ -249,99 +252,103 @@ msgstr "Diretório LDAP não definido!"
msgid "LDAP directory not found!"
msgstr "Diretório LDAP não encontrado!"
-#: inc/field/textfield.class.php:146 inc/field/integerfield.class.php:71
-#: inc/field/floatfield.class.php:155
+#: inc/field/ldapselectfield.class.php:154
+msgid "LDAP attribute is required!"
+msgstr "Atributo LDAP é obrigatório!"
+
+#: inc/field/textfield.class.php:146 inc/field/floatfield.class.php:156
#, php-format
msgid "Specific format does not match: %s"
-msgstr ""
+msgstr "Formato específico não corresponde: %s"
#: inc/field/textfield.class.php:155
#, php-format
msgid "The text is too short (minimum %d characters): %s"
-msgstr ""
+msgstr "O texto é muito curto (mínimo %d carateres): %s"
#: inc/field/textfield.class.php:160
#, php-format
msgid "The text is too long (maximum %d characters): %s"
-msgstr ""
+msgstr "O texto é muito longo (máximo %d carateres): %s"
#: inc/field/textfield.class.php:168
msgid "Text"
msgstr "Texto"
-#: inc/field/textfield.class.php:217 inc/field/floatfield.class.php:234
+#: inc/field/textfield.class.php:217 inc/field/floatfield.class.php:238
#: inc/questionregex.class.php:62 entrée standard:42
msgid "Regular expression"
msgstr "Expressão regular"
-#: inc/field/textfield.class.php:222 inc/field/floatfield.class.php:239
+#: inc/field/textfield.class.php:222 inc/field/floatfield.class.php:243
msgid "Range"
msgstr "Gama"
-#: inc/field/textfield.class.php:228 inc/field/floatfield.class.php:245
+#: inc/field/textfield.class.php:228 inc/field/floatfield.class.php:249
msgid "Additional validation"
msgstr "Validação adicional"
-#: inc/field/radiosfield.class.php:107
+#: inc/field/radiosfield.class.php:108
msgid "Radios"
msgstr "Rádios"
-#: inc/field/radiosfield.class.php:113 inc/field/glpiselectfield.class.php:97
-#: inc/field/fieldsfield.class.php:512 inc/field/checkboxesfield.class.php:244
-msgid "The field value is required:"
-msgstr "O valor do campo é necessário:"
+#: inc/field/radiosfield.class.php:116 inc/field/checkboxesfield.class.php:256
+msgid "The field value is required."
+msgstr "O valor do campo é necessário."
+
+#: inc/field/radiosfield.class.php:127
+msgid "Only one default value is allowed."
+msgstr "Apenas um valor por defeito é autorizado."
-#: inc/field/radiosfield.class.php:191 inc/field/selectfield.class.php:103
-#: inc/field/datetimefield.class.php:118 inc/field/actorfield.class.php:257
+#: inc/field/radiosfield.class.php:138
+msgid "The default value is not in the list of available values."
+msgstr "O valor por defeito não está na lista de valores disponíveis."
+
+#: inc/field/radiosfield.class.php:215 inc/field/selectfield.class.php:105
+#: inc/field/datetimefield.class.php:119 inc/field/actorfield.class.php:257
#: inc/field/checkboxesfield.class.php:190 inc/field/floatfield.class.php:124
-#: inc/field/datefield.class.php:115
#, php-format
msgid "A required field is empty: %s"
-msgstr ""
+msgstr "Um campo obrigatório está vazio: %s"
-#: inc/field/integerfield.class.php:59
+#: inc/field/radiosfield.class.php:234 inc/field/selectfield.class.php:123
#, php-format
-msgid "This is not an integer: %s"
-msgstr ""
-
-#: inc/field/integerfield.class.php:85 inc/field/floatfield.class.php:166
-#, php-format
-msgid "The following number must be greater than %d: %s"
-msgstr ""
+msgid "This value %1$s is not allowed: %2$s"
+msgstr "O valor %1$s não é permitido: %2$s"
-#: inc/field/integerfield.class.php:91 inc/field/floatfield.class.php:172
+#: inc/field/integerfield.class.php:60
#, php-format
-msgid "The following number must be lower than %d: %s"
-msgstr ""
+msgid "This is not an integer: %s"
+msgstr "Isto não é um número inteiro: %s"
-#: inc/field/integerfield.class.php:101
+#: inc/field/integerfield.class.php:71
msgid "Integer"
msgstr "Inteiro"
#: inc/field/undefinedfield.class.php:44
msgid "Undefined"
-msgstr ""
+msgstr "Indefinido"
#: inc/field/ipfield.class.php:122
msgid "IP address"
msgid_plural "IP addresses"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Endereço IP"
+msgstr[1] "Endereços IP"
+msgstr[2] "Endereços IP"
#: inc/field/urgencyfield.class.php:85 inc/abstractitiltarget.class.php:1023
msgid "Urgency"
-msgstr ""
+msgstr "Urgência"
#: inc/field/urgencyfield.class.php:119
msgctxt "urgency"
msgid "Very high"
-msgstr ""
+msgstr "Muito alto"
#: inc/field/urgencyfield.class.php:120
msgctxt "urgency"
msgid "High"
-msgstr ""
+msgstr "Alto"
#: inc/field/urgencyfield.class.php:121
msgctxt "urgency"
@@ -351,78 +358,82 @@ msgstr "Médio"
#: inc/field/urgencyfield.class.php:122
msgctxt "urgency"
msgid "Low"
-msgstr ""
+msgstr "Baixo"
#: inc/field/urgencyfield.class.php:123
msgctxt "urgency"
msgid "Very low"
-msgstr ""
+msgstr "Muito baixo"
#: inc/field/tagfield.class.php:51
msgid "Warning: Tag plugin is disabled or missing"
-msgstr ""
+msgstr "Aviso\\: O plug-in da etiqueta está desabilitado ou ausente"
#: inc/field/tagfield.class.php:197
msgid "Tag"
msgid_plural "Tags"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Etiqueta"
+msgstr[1] "Etiquetas"
+msgstr[2] "Etiquetas"
-#: inc/field/glpiselectfield.class.php:82 entrée standard:38
+#: inc/field/glpiselectfield.class.php:83 entrée standard:38
msgid "GLPI object"
msgid_plural "GLPI objects"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Objeto do GLPI"
+msgstr[1] "Objetos GLPI"
+msgstr[2] "Objetos GLPI"
+
+#: inc/field/glpiselectfield.class.php:100 inc/field/fieldsfield.class.php:512
+msgid "The field value is required:"
+msgstr "O valor do campo é necessário:"
#: inc/field/hostnamefield.class.php:115
msgid "Hostname"
msgid_plural "Hostnames"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Nome de host"
+msgstr[1] "Nomes de hosts"
+msgstr[2] "Nomes de hosts"
#: inc/field/timefield.class.php:129
msgid "Time"
-msgstr ""
+msgstr "Horário"
#: inc/field/emailfield.class.php:88
#, php-format
msgid "This is not a valid e-mail: %s"
-msgstr ""
+msgstr "Este não é um e-mail válido: %s"
#: inc/field/emailfield.class.php:99
msgid "Email"
msgid_plural "Emails"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "E-mail"
+msgstr[1] "E-mails"
+msgstr[2] "E-mails"
-#: inc/field/selectfield.class.php:96
+#: inc/field/selectfield.class.php:98
msgid "Select"
msgstr "Selecione"
-#: inc/field/datetimefield.class.php:139
+#: inc/field/datetimefield.class.php:140
msgid "Date & time"
msgstr "Data & Hora"
#: inc/field/actorfield.class.php:83
msgid "Actor"
msgid_plural "Actors"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Ator"
+msgstr[1] "Atores"
+msgstr[2] "Atores"
#: inc/field/actorfield.class.php:267
#, php-format
msgid "Invalid value: %s"
-msgstr ""
+msgstr "Valor inválido: %s"
#: inc/field/actorfield.class.php:290
#, php-format
msgid "User not found or invalid email address: %s"
-msgstr ""
+msgstr "Utilizador não encontrado ou endereço de e-mail inválido: %s"
#: inc/field/filefield.class.php:123
msgid "No attached document"
@@ -436,92 +447,116 @@ msgstr "Documento anexado"
#: inc/field/filefield.class.php:174
#, php-format
msgid "A required file is missing: %s"
-msgstr ""
+msgstr "Está em falta um ficheiro necessário: %s"
#: inc/field/filefield.class.php:191
msgid "File"
-msgstr ""
+msgstr "Ficheiro"
-#: inc/field/multiselectfield.class.php:86
+#: inc/field/multiselectfield.class.php:89
msgid "Multiselect"
msgstr "Multiselect"
#: inc/field/fieldsfield.class.php:154
msgid "Warning: Additional Fields plugin is disabled or missing"
-msgstr ""
+msgstr "Aviso\\: O plug-in da etiqueta está desabilitado ou ausente"
#: inc/field/fieldsfield.class.php:167
msgid "Block"
-msgstr ""
+msgstr "Bloquear"
#: inc/field/fieldsfield.class.php:171 inc/targetticket.class.php:341
msgid "Field"
-msgstr ""
+msgstr "Campo"
#: inc/field/fieldsfield.class.php:253
msgid "show"
-msgstr ""
+msgstr "mostrar"
#: inc/field/fieldsfield.class.php:389
#, php-format
msgid "Field '%1$s' type not implemented yet!"
-msgstr ""
+msgstr "Tipo de campo '%1$s' ainda não implementado!"
#: inc/field/fieldsfield.class.php:466
msgid "Some numeric fields contains non numeric values"
-msgstr ""
+msgstr "Alguns campos numéricos contêm valores não numéricos"
#: inc/field/fieldsfield.class.php:471
msgid "Some URL fields contains invalid links"
-msgstr ""
+msgstr "Alguns campos da URL contêm links inválidos"
#: inc/field/fieldsfield.class.php:565
msgid "Additional fields"
-msgstr ""
+msgstr "Campos adicionais"
#: inc/field/checkboxesfield.class.php:132
msgid "Checkboxes"
msgstr "Caixas"
-#: inc/field/checkboxesfield.class.php:226
+#: inc/field/checkboxesfield.class.php:208
+#, php-format
+msgid "Empty values are not allowed: %s"
+msgstr "Valores vazios não são permitidos: %s"
+
+#: inc/field/checkboxesfield.class.php:216
+#, php-format
+msgid "This value %1$s is not alowed: %2$s"
+msgstr "O valor %1$s não é permitido: %2$s"
+
+#: inc/field/checkboxesfield.class.php:236
#, php-format
msgid "The following question needs at least %d answers: %s"
-msgstr ""
+msgstr "A pergunta a seguir precisa de pelo menos %d resposta(s): %s"
-#: inc/field/checkboxesfield.class.php:232
+#: inc/field/checkboxesfield.class.php:242
#, php-format
msgid "The following question does not accept more than %d answers: %s"
-msgstr ""
+msgstr "A questão a seguir não aceita mais de %drespostas: %s"
+
+#: inc/field/checkboxesfield.class.php:270
+msgid "The default values are not in the list of available values."
+msgstr "Os valores por defeito não estão na lista de valores disponíveis."
-#: inc/field/checkboxesfield.class.php:304
+#: inc/field/checkboxesfield.class.php:325
msgid "Range min"
-msgstr ""
+msgstr "Intervalo mín"
-#: inc/field/checkboxesfield.class.php:305
+#: inc/field/checkboxesfield.class.php:326
msgid "Range max"
-msgstr ""
+msgstr "Intervalo máx"
-#: inc/field/requesttypefield.class.php:86 inc/targetticket.class.php:1089
+#: inc/field/requesttypefield.class.php:86 inc/targetticket.class.php:1108
msgid "Request type"
-msgstr ""
+msgstr "Tipo de pedido"
#: inc/field/floatfield.class.php:141
#, php-format
msgid "This is not a number: %s"
-msgstr ""
+msgstr "Este não é um número: %s"
+
+#: inc/field/floatfield.class.php:170
+#, php-format
+msgid "The following number must be greater than %d: %s"
+msgstr "O número deve ser maior que %d: %s"
+
+#: inc/field/floatfield.class.php:176
+#, php-format
+msgid "The following number must be lower than %d: %s"
+msgstr "O número deve ser menor que %d: %s"
-#: inc/field/floatfield.class.php:182
+#: inc/field/floatfield.class.php:186
msgid "Float"
msgstr "Virgula Flutuante"
-#: inc/field/datefield.class.php:136
+#: inc/field/datefield.class.php:66
msgid "Date"
-msgstr ""
+msgstr "Data"
#: inc/field/descriptionfield.class.php:105 inc/form.class.php:165
#: inc/question.class.php:166 entrée standard:82 standard:52 standard:113
msgid "Description"
-msgstr ""
+msgstr "Descrição"
#: inc/field/descriptionfield.class.php:112
msgid "A description field should have a description:"
@@ -530,28 +565,28 @@ msgstr "Um campo de descrição deve ter uma descrição:"
#: inc/field/hiddenfield.class.php:95
msgid "Hidden field"
msgid_plural "Hidden fields"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Campo oculto"
+msgstr[1] "Campos ocultos"
+msgstr[2] "Campos ocultos"
#: inc/condition.class.php:65
msgid "Condition"
msgid_plural "Conditions"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Condição"
+msgstr[1] "Condições"
+msgstr[2] "Condições"
#: inc/condition.class.php:104
msgid "is visible"
-msgstr ""
+msgstr "é visível"
#: inc/condition.class.php:105
msgid "is not visible"
-msgstr ""
+msgstr "não é visível"
#: inc/condition.class.php:106
msgid "regular expression matches"
-msgstr ""
+msgstr "correspondências de expressão regular"
#: inc/condition.class.php:117
msgid "Always displayed"
@@ -565,48 +600,48 @@ msgstr "Escondido a menos que"
msgid "Displayed unless"
msgstr "Exibido a menos que"
-#: inc/condition.class.php:179 inc/target_actor.class.php:233
-#: inc/form_language.class.php:565 inc/form_validator.class.php:379
+#: inc/condition.class.php:173 inc/target_actor.class.php:234
+#: inc/form_language.class.php:568 inc/form_validator.class.php:379
#: inc/targetproblem.class.php:541 inc/questionrange.class.php:196
-#: inc/form.class.php:1920 inc/targetchange.class.php:304
-#: inc/section.class.php:381 inc/restrictedformcriteria.class.php:200
-#: inc/question.class.php:836 inc/questionparameter/range.class.php:202
+#: inc/form.class.php:1925 inc/targetchange.class.php:304
+#: inc/section.class.php:395 inc/restrictedformcriteria.class.php:200
+#: inc/question.class.php:848 inc/questionparameter/range.class.php:202
#: inc/questionregex.class.php:185 inc/questiondependency.class.php:196
-#: inc/item_targetticket.class.php:154 inc/targetticket.class.php:1399
+#: inc/item_targetticket.class.php:154 inc/targetticket.class.php:1418
#, php-format
msgid "Failed to add or update the %1$s %2$s"
-msgstr ""
+msgstr "Falha ao adicionar ou atualiza o %1$s %2$s"
-#: inc/condition.class.php:201 inc/target_actor.class.php:254
-#: inc/form_language.class.php:581 inc/form_validator.class.php:403
+#: inc/condition.class.php:195 inc/target_actor.class.php:255
+#: inc/form_language.class.php:584 inc/form_validator.class.php:403
#: inc/targetproblem.class.php:376 inc/questionrange.class.php:131
#: inc/form.class.php:1611 inc/targetchange.class.php:149
-#: inc/section.class.php:406 inc/restrictedformcriteria.class.php:226
-#: inc/question.class.php:885 inc/questionparameter/range.class.php:137
+#: inc/section.class.php:420 inc/restrictedformcriteria.class.php:226
+#: inc/question.class.php:897 inc/questionparameter/range.class.php:137
#: inc/questionregex.class.php:120 inc/questiondependency.class.php:211
-#: inc/item_targetticket.class.php:64 inc/targetticket.class.php:1438
+#: inc/item_targetticket.class.php:64 inc/targetticket.class.php:1457
#, php-format
msgid "Cannot export an empty object: %s"
-msgstr ""
+msgstr "Não é possível exportar um objeto vazio: %s"
-#: inc/condition.class.php:269
+#: inc/condition.class.php:263
msgid "Conditions"
-msgstr ""
+msgstr "Condições"
#: inc/linker.class.php:78
msgid "Importing"
-msgstr ""
+msgstr "Importando"
#: inc/linker.class.php:80
msgid "Import in progress"
-msgstr ""
+msgstr "Importação em progresso"
#: inc/issue.class.php:43
msgid "Issue"
msgid_plural "Issues"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Issue"
+msgstr[1] "Issues"
+msgstr[2] "Issues"
#: inc/issue.class.php:56
msgid "Update issue data from tickets and form answers"
@@ -614,143 +649,143 @@ msgstr "Atualizar dados de emissão de tickets e respostas de formulário"
#: inc/issue.class.php:379
msgid "Satisfaction survey expired"
-msgstr ""
+msgstr "Enquete de satisfação expirada"
-#: inc/issue.class.php:515 inc/form_language.class.php:229
-#: inc/form.class.php:156 inc/form.class.php:2221 entrée standard:52
+#: inc/issue.class.php:527 inc/form_language.class.php:232
+#: inc/form.class.php:156 inc/form.class.php:2226 entrée standard:52
#: standard:49 standard:57 standard:38 standard:39 standard:46
msgid "Name"
-msgstr ""
+msgstr "Nome"
-#: inc/issue.class.php:527 inc/formanswer.class.php:241
+#: inc/issue.class.php:539 inc/formanswer.class.php:241
#: inc/formanswer.class.php:314 inc/targetproblem.class.php:624
#: inc/form.class.php:147 inc/targetchange.class.php:335
#: inc/section.class.php:95 inc/question.class.php:156
#: inc/targetticket.class.php:180 entrée standard:45
msgid "ID"
-msgstr ""
+msgstr "ID"
-#: inc/issue.class.php:536 inc/form.class.php:503 inc/form.class.php:2230
+#: inc/issue.class.php:548 inc/form.class.php:503 inc/form.class.php:2235
#: entrée standard:111 standard:65
msgid "Type"
msgid_plural "Types"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Tipo"
+msgstr[1] "Tipos"
+msgstr[2] "Tipo"
-#: inc/issue.class.php:549 inc/formanswer.class.php:301
+#: inc/issue.class.php:561 inc/formanswer.class.php:301
msgid "Status"
-msgstr ""
+msgstr "Estado"
-#: inc/issue.class.php:561
+#: inc/issue.class.php:573
msgid "Opening date"
-msgstr ""
+msgstr "Data de abertura"
-#: inc/issue.class.php:570
+#: inc/issue.class.php:582
msgid "Last update"
-msgstr ""
+msgstr "Última atualização"
-#: inc/issue.class.php:579 inc/abstracttarget.class.php:518
+#: inc/issue.class.php:591 inc/abstracttarget.class.php:520
msgid "Entity"
msgid_plural "Entities"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Entidade"
+msgstr[1] "Entidades"
+msgstr[2] "Entidades"
-#: inc/issue.class.php:589 inc/notificationtargetformanswer.class.php:76
+#: inc/issue.class.php:601 inc/notificationtargetformanswer.class.php:76
#: inc/notificationtargetformanswer.class.php:96
#: inc/target_actor.class.php:101 inc/formanswer.class.php:260
-#: inc/formanswer.class.php:712 inc/abstractitiltarget.class.php:1753 entrée
+#: inc/formanswer.class.php:718 inc/abstractitiltarget.class.php:1753 entrée
#: standard:48
msgid "Requester"
msgid_plural "Requesters"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Requerente"
+msgstr[1] "Requerentes"
+msgstr[2] "Requerentes"
-#: inc/issue.class.php:607 inc/formanswer.class.php:270
+#: inc/issue.class.php:619 inc/formanswer.class.php:270
msgid "Form approver"
msgstr "Aprovador do formulário"
-#: inc/issue.class.php:631 inc/formanswer.class.php:638
-#: inc/formanswer.class.php:645 inc/formanswer.class.php:727
-#: inc/form_language.class.php:243
+#: inc/issue.class.php:643 inc/formanswer.class.php:644
+#: inc/formanswer.class.php:651 inc/formanswer.class.php:733
+#: inc/form_language.class.php:246
msgid "Comment"
msgstr "Comentário"
-#: inc/issue.class.php:643
+#: inc/issue.class.php:655
msgid "Ticket approver"
msgstr "Aprovador de tickets"
-#: inc/issue.class.php:716
+#: inc/issue.class.php:728
msgid "Technician"
-msgstr ""
+msgstr "Técnico"
-#: inc/issue.class.php:747
+#: inc/issue.class.php:759
msgid "Technician group"
-msgstr ""
+msgstr "Grupo de técnicos"
-#: inc/issue.class.php:783 inc/formanswer.class.php:290
+#: inc/issue.class.php:795 inc/formanswer.class.php:290
msgid "Form approver group"
msgstr "Grupo de aprovação do formulário"
-#: inc/issue.class.php:805
+#: inc/issue.class.php:817
msgid "Ticket approver group"
-msgstr ""
+msgstr "Grupo aprovador do ticket"
-#: inc/issue.class.php:845
+#: inc/issue.class.php:857
msgid "Ticket requester"
-msgstr ""
+msgstr "Requerente do ticket"
-#: inc/issue.class.php:892
+#: inc/issue.class.php:904
msgid "Ticket observer"
-msgstr ""
+msgstr "Observador do ticket"
-#: inc/issue.class.php:940
+#: inc/issue.class.php:952
msgid "Ticket technician"
-msgstr ""
+msgstr "Técnico do ticket"
-#: inc/issue.class.php:1083
+#: inc/issue.class.php:1099
#, php-format
msgid "%1$s %2$s"
-msgstr ""
+msgstr "%1$s %2$s"
-#: inc/issue.class.php:1341 inc/filter/itilcategoryfilter.class.php:56
-#: hook.php:691
+#: inc/issue.class.php:1357 inc/filter/itilcategoryfilter.class.php:56
+#: hook.php:703
msgid "All"
-msgstr ""
+msgstr "Todas"
-#: inc/issue.class.php:1347 hook.php:692
+#: inc/issue.class.php:1363 hook.php:704
msgid "New"
-msgstr ""
+msgstr "Novo"
-#: inc/issue.class.php:1353 hook.php:693
+#: inc/issue.class.php:1369 hook.php:705
msgid "Assigned"
-msgstr ""
+msgstr "Atribuído"
-#: inc/issue.class.php:1359 inc/formanswer.class.php:78
-#: inc/form_validator.class.php:69 hook.php:694
+#: inc/issue.class.php:1375 inc/formanswer.class.php:78
+#: inc/form_validator.class.php:69 hook.php:706
msgid "Waiting"
-msgstr ""
+msgstr "Aguardando"
-#: inc/issue.class.php:1365 hook.php:695
+#: inc/issue.class.php:1381 hook.php:707
msgid "To validate"
msgstr "Para validar"
-#: inc/issue.class.php:1371 hook.php:696
+#: inc/issue.class.php:1387 hook.php:708
msgid "Solved"
-msgstr ""
+msgstr "Resolvido"
-#: inc/issue.class.php:1377 hook.php:697
+#: inc/issue.class.php:1393 hook.php:709
msgid "Closed"
msgstr "Encerrado"
#: inc/category.class.php:50 hook.php:72
msgid "Form category"
msgid_plural "Form categories"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Categoria do formulário"
+msgstr[1] "Categorias do formulário"
+msgstr[2] "Categorias do formulário"
#: inc/category.class.php:72
msgid "Knowbase category"
@@ -758,50 +793,42 @@ msgstr "Categoria de Knowbase"
#: inc/category.class.php:78
msgid "As child of"
-msgstr ""
+msgstr "Como dependente de"
#: inc/notificationtargetformanswer.class.php:43
msgid "The form as been saved"
msgstr "O formulário foi guardado"
-#: inc/notificationtargetformanswer.class.php:44 install/install.php:418
+#: inc/notificationtargetformanswer.class.php:44 install/install.php:419
msgid "A form need to be validate"
msgstr "Um formulário precisa ser validado"
-#: inc/notificationtargetformanswer.class.php:45 install/install.php:424
+#: inc/notificationtargetformanswer.class.php:45 install/install.php:425
msgid "The form is refused"
msgstr "O formulário é recusado"
-#: inc/notificationtargetformanswer.class.php:46 install/install.php:430
+#: inc/notificationtargetformanswer.class.php:46 install/install.php:431
msgid "The form is accepted"
msgstr "O formulário é aceite"
-#: inc/notificationtargetformanswer.class.php:47 install/install.php:436
+#: inc/notificationtargetformanswer.class.php:47 install/install.php:437
msgid "The form is deleted"
msgstr "O formulário é apagado"
#: inc/notificationtargetformanswer.class.php:74
msgid "Form ID"
-msgstr ""
+msgstr "ID do formulário"
#: inc/notificationtargetformanswer.class.php:75
#: inc/notificationtargetformanswer.class.php:95
msgid "Form name"
msgstr "Nome do formulário"
-#: inc/notificationtargetformanswer.class.php:77
-#: inc/form_validator.class.php:76
-msgid "Validator"
-msgid_plural "Validators"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
#: inc/notificationtargetformanswer.class.php:78
#: inc/notificationtargetformanswer.class.php:98 inc/formanswer.class.php:281
#: entrée standard:49
msgid "Creation date"
-msgstr ""
+msgstr "Data de criação"
#: inc/notificationtargetformanswer.class.php:79
#: inc/notificationtargetformanswer.class.php:99
@@ -810,7 +837,7 @@ msgstr "Respostas completas do formulário"
#: inc/notificationtargetformanswer.class.php:80
msgid "Validation comment"
-msgstr ""
+msgstr "Comentário de validação"
#: inc/notificationtargetformanswer.class.php:81
#: inc/notificationtargetformanswer.class.php:101
@@ -819,7 +846,7 @@ msgstr "Ligação de validação"
#: inc/notificationtargetformanswer.class.php:82
msgid "Request ID"
-msgstr ""
+msgstr "ID da requisição"
#: inc/notificationtargetformanswer.class.php:94
msgid "Form #"
@@ -840,12 +867,12 @@ msgstr "Pedido #"
#: inc/notificationtargetformanswer.class.php:114
msgid "Author"
-msgstr ""
+msgstr "Autor"
#: inc/notificationtargetformanswer.class.php:115
#: inc/abstractitiltarget.class.php:1318
msgid "Approver"
-msgstr ""
+msgstr "Aprovador"
#: inc/target_actor.class.php:70 inc/abstractitiltarget.class.php:2090
msgid "Form author"
@@ -873,11 +900,11 @@ msgstr "Grupo específico"
#: inc/target_actor.class.php:76
msgid "Group from an object"
-msgstr ""
+msgstr "Grupo de um objeto"
#: inc/target_actor.class.php:77
msgid "Tech group from an object"
-msgstr ""
+msgstr "Grupo de técnicos de um objeto"
#: inc/target_actor.class.php:78
msgid "Specific supplier"
@@ -893,42 +920,42 @@ msgstr "Atores da questão"
#: inc/target_actor.class.php:81 inc/abstractitiltarget.class.php:2147
msgid "Form author's supervisor"
-msgstr ""
+msgstr "Formulário do supervisor do autor"
#: inc/target_actor.class.php:102
msgid "Observer"
-msgstr ""
+msgstr "Observador"
#: inc/target_actor.class.php:103 inc/abstractitiltarget.class.php:1767
msgid "Assigned to"
-msgstr ""
+msgstr "Atribuído a"
#: inc/target_actor.class.php:109
msgid "Target actor"
msgid_plural "Target actors"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Ator alvo"
+msgstr[1] "Atores alvo"
+msgstr[2] "Atores alvo"
#: inc/target_actor.class.php:115 inc/target_actor.class.php:131
#: inc/target_actor.class.php:140
msgid "Bad request while adding an actor."
-msgstr ""
+msgstr "Pedido inválido enquanto adicionava um ator."
-#: inc/target_actor.class.php:197
+#: inc/target_actor.class.php:199
#, php-format
msgid "Failed to find a user: %1$s"
-msgstr ""
+msgstr "Falhou ao encontrar um utilizador: %1$s"
-#: inc/target_actor.class.php:206
+#: inc/target_actor.class.php:208
#, php-format
msgid "Failed to find a group: %1$s"
-msgstr ""
+msgstr "Falhou ao encontrar um grupo: %1$s"
-#: inc/target_actor.class.php:215
+#: inc/target_actor.class.php:217
#, php-format
msgid "Failed to find a supplier: %1$s"
-msgstr ""
+msgstr "Falhou ao encontrar um fornecedor: %1$s"
#: inc/formanswer.class.php:79 inc/form_validator.class.php:71
msgid "Refused"
@@ -936,97 +963,105 @@ msgstr "Recusado"
#: inc/formanswer.class.php:80 inc/form_validator.class.php:70
msgid "Accepted"
-msgstr ""
+msgstr "Aceite"
#: inc/formanswer.class.php:226
msgid "Form answer"
msgid_plural "Form answers"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Reposta do formulário"
+msgstr[1] "Repostas do formulário"
+msgstr[2] "Repostas do formulário"
-#: inc/formanswer.class.php:623
+#: inc/formanswer.class.php:629
msgid "Print this form"
msgstr "Imprimir este formulário"
-#: inc/formanswer.class.php:648
+#: inc/formanswer.class.php:654
msgid "Form accepted by validator."
msgstr "Formulário aceite pelo validador."
-#: inc/formanswer.class.php:650
+#: inc/formanswer.class.php:656
msgid "Form successfully saved."
msgstr "Formulário guardado com sucesso."
-#: inc/formanswer.class.php:720 inc/formaccesstype.class.php:126
+#: inc/formanswer.class.php:726 inc/formaccesstype.class.php:126
msgid "Save"
-msgstr ""
+msgstr "Gravar"
-#: inc/formanswer.class.php:732
+#: inc/formanswer.class.php:738
msgid "Required if refused"
msgstr "Necessário se recusado"
-#: inc/formanswer.class.php:738
+#: inc/formanswer.class.php:744
msgid "Refuse"
msgstr "Recusar"
-#: inc/formanswer.class.php:746
+#: inc/formanswer.class.php:752
msgid "Edit answers"
-msgstr ""
+msgstr "Editar respostas"
-#: inc/formanswer.class.php:752
+#: inc/formanswer.class.php:758
msgid "Cancel edition"
-msgstr ""
+msgstr "Cancelar edição"
-#: inc/formanswer.class.php:759
+#: inc/formanswer.class.php:765
msgid "Accept"
msgstr "Aceitar"
-#: inc/formanswer.class.php:782
+#: inc/formanswer.class.php:788
msgid "Refused comment is required!"
msgstr "É exigido comentário de recusa!"
-#: inc/formanswer.class.php:827 inc/formanswer.class.php:844
+#: inc/formanswer.class.php:833 inc/formanswer.class.php:850
msgid ""
"An internal error occured when verifying your answers. Please report it to "
"your administrator."
msgstr ""
+"Ocorreu um erro interno ao verificar as suas respostas. Por favor, reporte "
+"ao administrador."
-#: inc/formanswer.class.php:876
+#: inc/formanswer.class.php:882
msgid "You are not the validator of these answers"
msgstr "Você não é o validador dessas respostas"
-#: inc/formanswer.class.php:1015
+#: inc/formanswer.class.php:1021
#, php-format
msgid "Item sucessfully added: %1$s (%2$s: %3$s)"
-msgstr ""
+msgstr "Adicionado item com sucesso: %1$s (%2$s: %3$s)"
-#: inc/formanswer.class.php:1098 inc/formanswer.class.php:1100
+#: inc/formanswer.class.php:1104 inc/formanswer.class.php:1106
msgid "Form data"
msgstr "Dados do formulário"
-#: inc/formanswer.class.php:1227 inc/formanswer.class.php:1279
+#: inc/formanswer.class.php:1233 inc/formanswer.class.php:1285
msgid "Cannot generate targets!"
msgstr "Não é possível gerar alvos!"
-#: inc/formanswer.class.php:1428
+#: inc/formanswer.class.php:1434
+#, php-format
+msgid "Answer is invalid in %1$s"
+msgstr "Resposta inválida em %1$s"
+
+#: inc/formanswer.class.php:1462
msgid "No turing test set"
-msgstr ""
+msgstr "Não foi definido nenhum teste turing"
-#: inc/formanswer.class.php:1434
+#: inc/formanswer.class.php:1468
msgid "You failed the Turing test"
-msgstr ""
+msgstr "Falhou o teste de Turing"
-#: inc/formanswer.class.php:1458
+#: inc/formanswer.class.php:1492
msgid "You must select validator!"
msgstr "Deves selecionar o validador!"
#: inc/common.class.php:229
msgid "You cannot delete this issue. Maybe it is taken into account."
msgstr ""
+"Não pode eliminar este problema. Talvez esteja em processo de consideração."
#: inc/common.class.php:234
msgid "Failed to delete this issue. An internal error occured."
-msgstr ""
+msgstr "Falha ao eliminar este problema. Ocorreu um erro interno."
#: inc/common.class.php:783
msgid "Seek assistance"
@@ -1038,7 +1073,7 @@ msgstr "Os meus pedidos de assistência"
#: inc/common.class.php:829
msgid "Consult reminders"
-msgstr ""
+msgstr "Consultar lembretes"
#: inc/common.class.php:849
msgid "Consult feeds"
@@ -1047,9 +1082,9 @@ msgstr "Consultar feeds"
#: inc/formaccesstype.class.php:39 inc/formaccesstype.class.php:64
msgid "Access type"
msgid_plural "Access types"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Tipo de acesso"
+msgstr[1] "Tipos de acesso"
+msgstr[2] "Tipos de acesso"
#: inc/formaccesstype.class.php:79
msgid "Link to the form"
@@ -1057,96 +1092,103 @@ msgstr "Ligação para o formulário"
#: inc/formaccesstype.class.php:92
msgid "Please activate the form to view the link"
-msgstr ""
+msgstr "Por favor ative o formulário para visualizar a ligação"
#: inc/formaccesstype.class.php:100 inc/form.class.php:1505
msgid "Enable captcha"
-msgstr ""
+msgstr "Ativar captcha"
#: inc/formaccesstype.class.php:112
msgid "Restricted to"
-msgstr ""
+msgstr "Restrito a"
#: inc/form_language.class.php:51
msgid "Form language"
msgid_plural "Form languages"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Idioma do formulário"
+msgstr[1] "Idiomas do formulário"
+msgstr[2] "Idiomas do formulário"
-#: inc/form_language.class.php:78 inc/form_language.class.php:364
+#: inc/form_language.class.php:81 inc/form_language.class.php:367
msgid "Translation"
msgid_plural "Translations"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Tradução"
+msgstr[1] "Traduções"
+msgstr[2] "Traduções"
-#: inc/form_language.class.php:119
+#: inc/form_language.class.php:122
msgid "The name cannot be empty."
-msgstr ""
+msgstr "O nome não pode estar vazio."
-#: inc/form_language.class.php:127
+#: inc/form_language.class.php:130
msgid "The language must be associated to a form."
-msgstr ""
+msgstr "O idioma deve estar associado a um formulário."
-#: inc/form_language.class.php:135
+#: inc/form_language.class.php:138
msgid "The specified language is not available."
-msgstr ""
+msgstr "O idioma especificado não está disponível."
-#: inc/form_language.class.php:265
+#: inc/form_language.class.php:268
msgid "Add a translation"
-msgstr ""
+msgstr "Adicionar uma tradução"
-#: inc/form_language.class.php:299 js/scripts.js:1171
+#: inc/form_language.class.php:302 js/scripts.js:1171
msgid "Update a translation"
-msgstr ""
+msgstr "Atualizar uma tradução"
-#: inc/form_language.class.php:329 inc/form_language.class.php:331
+#: inc/form_language.class.php:332 inc/form_language.class.php:334
msgid "New translation"
-msgstr ""
+msgstr "Nova tradução"
-#: inc/form_language.class.php:334
+#: inc/form_language.class.php:337
msgid "Filter list"
-msgstr ""
+msgstr "Listra de filtro"
-#: inc/form_language.class.php:339 inc/form_language.class.php:438
+#: inc/form_language.class.php:342 inc/form_language.class.php:441
msgid "No translation found"
-msgstr ""
+msgstr "Tradução não encontrada"
-#: inc/form_language.class.php:344
+#: inc/form_language.class.php:347
msgid "Do you want to delete the selected items?"
-msgstr ""
+msgstr "Deseja apagar os itens escolhidos?"
-#: inc/form_language.class.php:353 inc/form_language.class.php:401
+#: inc/form_language.class.php:356 inc/form_language.class.php:404
#: inc/form.class.php:537 inc/abstractitiltarget.class.php:1658
msgid "Delete"
msgstr "Excluir"
-#: inc/form_language.class.php:363
+#: inc/form_language.class.php:366
msgid "Original string"
-msgstr ""
+msgstr "Cadeia de carateres original"
-#: inc/form_language.class.php:424
+#: inc/form_language.class.php:427
msgid "Add a new language"
-msgstr ""
+msgstr "Adicionar um novo idioma"
-#: inc/form_language.class.php:457 inc/form_language.class.php:489
+#: inc/form_language.class.php:460 inc/form_language.class.php:492
#: inc/form.class.php:192 entrée standard:72
msgid "Language"
-msgstr ""
+msgstr "Idioma"
#: inc/form_validator.class.php:68 inc/targetticket.class.php:99
#: inc/abstractitiltarget.class.php:178
msgid "None"
msgstr "Nenhum"
+#: inc/form_validator.class.php:76
+msgid "Validator"
+msgid_plural "Validators"
+msgstr[0] "Validador"
+msgstr[1] "Validadores"
+msgstr[2] "Validador"
+
#: inc/form_validator.class.php:114
msgid "Need validaton?"
-msgstr ""
+msgstr "Precisa de validação?"
-#: inc/form_validator.class.php:118 inc/abstractitiltarget.class.php:2499
+#: inc/form_validator.class.php:118 inc/abstractitiltarget.class.php:2522
msgid "No"
-msgstr ""
+msgstr "Não"
#: inc/form_validator.class.php:295 inc/targetproblem.class.php:147
#: inc/entityconfig.class.php:435 inc/targetchange.class.php:484
@@ -1154,11 +1196,11 @@ msgstr ""
#: inc/abstractitiltarget.class.php:2073
msgctxt "button"
msgid "Save"
-msgstr ""
+msgstr "Gravar"
#: inc/form_validator.class.php:709 inc/abstractitiltarget.class.php:1298
msgid "Validation"
-msgstr ""
+msgstr "Validação"
#: inc/form_validator.class.php:711
msgid "Choose a validator"
@@ -1167,23 +1209,25 @@ msgstr "Escolher um validador"
#: inc/targetproblem.class.php:43 entrée standard:43
msgid "Target problem"
msgid_plural "Target problems"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Problema alvo"
+msgstr[1] "Problemas alvo"
+msgstr[2] "Problemas alvo"
#: inc/targetproblem.class.php:109 inc/targetproblem.class.php:579
#: inc/targetchange.class.php:105 inc/targetchange.class.php:441
#: inc/targetticket.class.php:135 inc/targetticket.class.php:238
msgid "Properties"
-msgstr ""
+msgstr "Propriedades"
#: inc/targetproblem.class.php:523 inc/targetchange.class.php:286
-#: inc/targetticket.class.php:1381
+#: inc/targetticket.class.php:1400
#, php-format
msgid ""
"Failed to add or update the %1$s %2$s: a question is missing and is used in "
"a parameter of the target"
msgstr ""
+"Falhou ao adicionar ou atualizar o %1$s %2$s: uma questão está em falta e é "
+"usada num parâmetro do alvo"
#: inc/targetproblem.class.php:580 inc/targetchange.class.php:106
#: inc/targetticket.class.php:136 inc/abstractitiltarget.class.php:1200
@@ -1192,24 +1236,24 @@ msgstr "Actores"
#: inc/targetproblem.class.php:633 entrée standard:48
msgid "Problem title"
-msgstr ""
+msgstr "Titulo do problema"
#: inc/targetproblem.class.php:643 inc/targetchange.class.php:354
#: inc/targetticket.class.php:199
msgid "Content"
-msgstr ""
+msgstr "Conteúdo "
#: inc/targetproblem.class.php:653 inc/targetchange.class.php:364
msgid "Impact"
-msgstr ""
+msgstr "Impacto"
#: inc/targetproblem.class.php:663 entrée standard:56
msgid "Cause"
-msgstr ""
+msgstr "Causa"
#: inc/targetproblem.class.php:673 entrée standard:58
msgid "Symptom"
-msgstr ""
+msgstr "Sintoma"
#: inc/entityconfig.class.php:92 inc/entityconfig.class.php:101
#: inc/entityconfig.class.php:109 inc/entityconfig.class.php:117
@@ -1217,7 +1261,7 @@ msgstr ""
#: inc/entityconfig.class.php:141 inc/entityconfig.class.php:149
#: inc/entityconfig.class.php:157
msgid "Inheritance of the parent entity"
-msgstr ""
+msgstr "Herança da entidade pai"
#: inc/entityconfig.class.php:93
msgid "GLPi's helpdesk"
@@ -1233,11 +1277,11 @@ msgstr "Catálogo de serviços estendido"
#: inc/entityconfig.class.php:102
msgid "All available forms"
-msgstr ""
+msgstr "Todos os formulários disponíveis"
#: inc/entityconfig.class.php:103
msgid "Only default forms"
-msgstr ""
+msgstr "Apenas os formulários padrão"
#: inc/entityconfig.class.php:110
msgid "Popularity sort"
@@ -1253,34 +1297,34 @@ msgstr "Associado com Formulários"
#: inc/entityconfig.class.php:119
msgid "Distinct menu entry"
-msgstr ""
+msgstr "Entrada de menu distinta"
#: inc/entityconfig.class.php:126 inc/entityconfig.class.php:134
#: inc/entityconfig.class.php:142 inc/entityconfig.class.php:150
#: inc/form.class.php:285 entrée standard:100
msgid "Visible"
-msgstr ""
+msgstr "Visível"
#: inc/entityconfig.class.php:127 inc/entityconfig.class.php:135
#: inc/entityconfig.class.php:143 inc/entityconfig.class.php:151
msgid "Hidden"
-msgstr ""
+msgstr "Oculto"
#: inc/entityconfig.class.php:158
msgid "Variable height"
-msgstr ""
+msgstr "Altura variável"
#: inc/entityconfig.class.php:159
msgid "Uniform height"
-msgstr ""
+msgstr "Altura uniforme"
#: inc/entityconfig.class.php:164
msgid "Search for assistance"
-msgstr ""
+msgstr "Procurar assistência"
#: inc/entityconfig.class.php:165
msgid "User's assistance requests"
-msgstr ""
+msgstr "Solicitações de assistência do utilizador"
#: inc/entityconfig.class.php:261
msgid "Helpdesk"
@@ -1293,70 +1337,70 @@ msgstr "Modo helpdesk"
#: inc/entityconfig.class.php:280 inc/entityconfig.class.php:519
msgid "Default Form list mode"
-msgstr ""
+msgstr "Modo de lista de formulários padrão"
#: inc/entityconfig.class.php:298 inc/entityconfig.class.php:459
msgid "Sort order"
-msgstr ""
+msgstr "Ordem de classificação"
#: inc/entityconfig.class.php:314 inc/entityconfig.class.php:469
msgid "Knowledge base"
-msgstr ""
+msgstr "Base de conhecimento"
#: inc/entityconfig.class.php:329
msgid "Search"
-msgstr ""
+msgstr "Pesquisar"
#: inc/entityconfig.class.php:345 inc/entityconfig.class.php:529
msgid "Counters dashboard"
-msgstr ""
+msgstr "Painel de contadores"
#: inc/entityconfig.class.php:361
msgid "Header message"
-msgstr ""
+msgstr "Mensagem de cabeçalho"
#: inc/entityconfig.class.php:377 inc/entityconfig.class.php:539
msgid "Search issue"
-msgstr ""
+msgstr "Procurar problema"
#: inc/entityconfig.class.php:393 inc/entityconfig.class.php:509
msgid "Service catalog home page"
-msgstr ""
+msgstr "Página inicial do catálogo de serviços"
#: inc/entityconfig.class.php:409 inc/entityconfig.class.php:549
msgid "Tile design"
-msgstr ""
+msgstr "Design de blocos"
#: inc/entityconfig.class.php:421 inc/entityconfig.class.php:499
#: inc/form.class.php:239 entrée standard:84
msgid "Header"
msgid_plural "Headers"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Cabeçalho"
+msgstr[1] "Cabeçalhos"
+msgstr[2] "Cabeçalho"
#: inc/entityconfig.class.php:479
msgid "Display search field"
-msgstr ""
+msgstr "Exibir campo de pesquisa"
#: inc/entityconfig.class.php:489
msgid "Display header"
-msgstr ""
+msgstr "Exibir cabeçalho"
#: inc/questionrange.class.php:52 inc/questionparameter/range.class.php:56
msgid "Question range"
msgid_plural "Question ranges"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Intervalo de pergunta"
+msgstr[1] "Intervalos de perguntas"
+msgstr[2] "Intervalo de pergunta"
#: inc/questionrange.class.php:62 inc/questionparameter/range.class.php:66
msgid "Minimum range"
-msgstr ""
+msgstr "Intervalo mínimo"
#: inc/questionrange.class.php:71 inc/questionparameter/range.class.php:75
msgid "maximum range"
-msgstr ""
+msgstr "Intervalo máximo"
#: inc/form.class.php:66 inc/form.class.php:432
msgid "Public access"
@@ -1372,19 +1416,19 @@ msgstr "Acesso restrito"
#: inc/form.class.php:122
msgid "Answers waiting for validation"
-msgstr ""
+msgstr "Respostas a aguardar validação"
#: inc/form.class.php:124 inc/form.class.php:1695 inc/form.class.php:1721
msgid "Import forms"
-msgstr "Formulários de importação"
+msgstr "Importar formulários"
#: inc/form.class.php:140
msgid "Characteristics"
-msgstr ""
+msgstr "Características"
#: inc/form.class.php:183
msgid "Recursive"
-msgstr ""
+msgstr "Recursivo"
#: inc/form.class.php:204
msgid "Homepage"
@@ -1397,71 +1441,71 @@ msgstr "Acesso"
#: inc/form.class.php:248 inc/form.class.php:330 inc/form.class.php:397 entrée
#: standard:54
msgid "Active"
-msgstr ""
+msgstr "Ativo"
#: inc/form.class.php:261 entrée standard:65
msgid "Icon"
-msgstr ""
+msgstr "Ícone "
#: inc/form.class.php:269 entrée standard:67
msgid "Icon color"
-msgstr ""
+msgstr "Cor do ícone"
#: inc/form.class.php:277 entrée standard:80
msgid "Background color"
-msgstr ""
+msgstr "cor de fundo"
#: inc/form.class.php:300 inc/form.class.php:341 inc/form.class.php:416
msgid "Default form"
-msgstr ""
+msgstr "Formulário padrão"
#: inc/form.class.php:329 inc/form.class.php:394
msgid "Inactive"
-msgstr ""
+msgstr "Inativo"
#: inc/form.class.php:340 inc/form.class.php:413
msgid "Not default form"
-msgstr ""
+msgstr "Não é formulário padrão"
#: inc/form.class.php:364 inc/form.class.php:448 entrée standard:75
msgid "All languages"
-msgstr ""
+msgstr "Todas as línguas"
#: inc/form.class.php:502 inc/form.class.php:572
msgid "Target"
msgid_plural "Targets"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Alvo"
+msgstr[1] "Alvos"
+msgstr[2] "Alvo"
#: inc/form.class.php:504
msgid "Actions"
-msgstr ""
+msgstr "Ações"
#: inc/form.class.php:527 inc/form.class.php:1433
msgid "Duplicate"
msgstr "Duplicado"
-#: inc/form.class.php:554 inc/form.class.php:2218
+#: inc/form.class.php:554 inc/form.class.php:2223
msgid "Add a target"
-msgstr ""
+msgstr "Adicionar um alvo"
#: inc/form.class.php:575
msgid "Preview"
-msgstr ""
+msgstr "Pré-visualização"
#: inc/form.class.php:576
msgid "Form answer properties"
-msgstr ""
+msgstr "Propriedades do formulário de resposta"
#: inc/form.class.php:900
msgid "What are you looking for?"
-msgstr ""
+msgstr "O que procura?"
#: inc/form.class.php:909
#, php-format
msgid "My %1$d last forms (requester)"
-msgstr ""
+msgstr "Os meus %1$d últimos formulários (requerente)"
#: inc/form.class.php:936
msgid "No form posted yet"
@@ -1469,12 +1513,12 @@ msgstr "Nenhum formulário publicado"
#: inc/form.class.php:964
msgid "All my forms (requester)"
-msgstr "Todos os meus formulários (solicitante)"
+msgstr "Todos os meus formulários (requerente)"
#: inc/form.class.php:977
#, php-format
msgid "My %1$d last forms (validator)"
-msgstr ""
+msgstr "Os meus %1$d últimos formulários (validador)"
#: inc/form.class.php:1007
msgid "No form waiting for validation"
@@ -1492,6 +1536,8 @@ msgstr "O nome não pode ser vazio!"
#: inc/form.class.php:1240
msgid "Cannot use empty name for form answers. Keeping the previous value."
msgstr ""
+"Não é possível usar um nome vazio para respostas do formulário. Mantendo o "
+"valor anterior."
#: inc/form.class.php:1342
#, php-format
@@ -1500,12 +1546,12 @@ msgstr "A questão %s não é compatível com formulários públicos"
#: inc/form.class.php:1422
msgid "Errored duplicate"
-msgstr ""
+msgstr "Duplicado com erro"
#: inc/form.class.php:1480 inc/form.class.php:1508
msgctxt "button"
msgid "Post"
-msgstr ""
+msgstr "Publicar"
#: inc/form.class.php:1527
#, php-format
@@ -1524,7 +1570,7 @@ msgstr "Voltar"
#: inc/form.class.php:1568
#, php-format
msgid "Form updated: %s"
-msgstr ""
+msgstr "Formulário atualizado: %s"
#: inc/form.class.php:1668
msgid "Upload of JSON files not allowed."
@@ -1564,7 +1610,7 @@ msgstr "Habilitado"
#: inc/form.class.php:1730
msgctxt "button"
msgid "Send"
-msgstr ""
+msgstr "Enviar"
#: inc/form.class.php:1749
msgid "Forms import impossible, the file is empty"
@@ -1585,6 +1631,8 @@ msgid ""
"The file does not specifies the schema version. It was probably generated "
"with a version older than 2.10. Giving up."
msgstr ""
+"O ficheiro não especifica a versão do esquema. Provavelmente foi gerado com "
+"uma versão anterior à 2.10. Desistindo."
#: inc/form.class.php:1796
#, php-format
@@ -1604,52 +1652,52 @@ msgstr "O formulário %1$s já existe e é uma entidade não alterável."
#: inc/form.class.php:1872
#, php-format
msgid "You don't have right to update the entity %1$s."
-msgstr ""
+msgstr "Não tem as permissões para atualizar a entidade %1$s."
#: inc/form.class.php:1882
#, php-format
msgid "The entity %1$s is required for the form %2$s."
msgstr "A entidade %1$s é necessária para o formulário %2$s."
-#: inc/form.class.php:1964
+#: inc/form.class.php:1969
msgid "Failed to create JSON document type"
msgstr "Falha ao criar o tipo de documento JSON"
-#: inc/form.class.php:1971
+#: inc/form.class.php:1976
msgid "JSON document type not found"
msgstr "Tipo de documento JSON não encontrado"
-#: inc/form.class.php:1978
+#: inc/form.class.php:1983
msgid "Failed to update JSON document type"
msgstr "Falha ao atualizar o tipo de documento JSON"
-#: inc/form.class.php:1998
+#: inc/form.class.php:2003
msgid "Forms without category"
msgstr "Formulários sem categoria"
-#: inc/form.class.php:2019
+#: inc/form.class.php:2024
msgid "No form available"
-msgstr ""
+msgstr "Nenhum formulário disponível"
-#: inc/form.class.php:2249 inc/targetticket.class.php:393
+#: inc/form.class.php:2254 inc/targetticket.class.php:393
#: inc/abstractitiltarget.class.php:1777 inc/abstractitiltarget.class.php:2073
msgid "Add"
msgstr "Adicionar"
-#: inc/form.class.php:2267 inc/form.class.php:2290 inc/form.class.php:2312
+#: inc/form.class.php:2272 inc/form.class.php:2295 inc/form.class.php:2317
msgid "Unsupported target type."
msgstr "Tipo de destino não suportado."
-#: inc/form.class.php:2346
+#: inc/form.class.php:2351
msgid "plugin_formcreator_load_check"
-msgstr ""
+msgstr "plugin_formcreator_load_check"
#: inc/targetchange.class.php:44 entrée standard:43
msgid "Target change"
msgid_plural "Target changes"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Alteração alvo"
+msgstr[1] "Alterações alvo"
+msgstr[2] "Alterações alvo"
#: inc/targetchange.class.php:344 entrée standard:48
msgid "Change title"
@@ -1657,121 +1705,121 @@ msgstr "Mudar título"
#: inc/targetchange.class.php:374 entrée standard:56
msgid "Control list"
-msgstr ""
+msgstr "Lista de controlo"
#: inc/targetchange.class.php:384 entrée standard:58
msgid "Deployment plan"
-msgstr ""
+msgstr "Plano de disponibilização"
#: inc/targetchange.class.php:394 entrée standard:60
msgid "Backup plan"
-msgstr ""
+msgstr "Plano alternativo"
#: inc/targetchange.class.php:404
msgid "Check list"
-msgstr ""
+msgstr "Lista de verificação"
#: inc/section.class.php:71 entrée standard:53 standard:44
msgid "Section"
msgid_plural "Sections"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Secção"
+msgstr[1] "Secções"
+msgstr[2] "Secções"
#: inc/section.class.php:123 inc/section.class.php:166
-#: inc/question.class.php:320
+#: inc/question.class.php:318
msgid "The title is required"
msgstr "O título é obrigatório"
-#: inc/section.class.php:556 inc/question.class.php:203 entrée standard:37
+#: inc/section.class.php:570 inc/question.class.php:203 entrée standard:37
msgid "Count of conditions"
-msgstr ""
+msgstr "Contagem de condições"
#: inc/restrictedformcriteria.class.php:179
#, php-format
msgid "Failed to find %1$s %2$s"
-msgstr ""
+msgstr "Falhou ao encontrar %1$s %2$s"
#: inc/question.class.php:70 inc/abstractitiltarget.class.php:1111 entrée
#: standard:41
msgid "Question"
msgid_plural "Questions"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Questão"
+msgstr[1] "Questões"
+msgstr[2] "Questões"
-#: inc/question.class.php:328
+#: inc/question.class.php:326
msgid "The field type is required"
msgstr "O tipo de campo é necessário"
-#: inc/question.class.php:335
+#: inc/question.class.php:333
msgid "The section is required"
msgstr "A seção é exigida"
-#: inc/question.class.php:347
+#: inc/question.class.php:345
#, php-format
msgid "Field type %1$s is not available for question %2$s."
msgstr "O tipo de campo %1$s não está disponível para a pergunta %2$s."
-#: inc/question.class.php:361
+#: inc/question.class.php:358
msgid "This type of question is not compatible with public forms."
msgstr "Este tipo de pergunta não é compatível com formulários públicos."
-#: inc/question.class.php:370
+#: inc/question.class.php:367
msgid "This type of question requires parameters"
msgstr "Este tipo de pergunta requer parâmetros"
-#: inc/question.class.php:376
+#: inc/question.class.php:373
msgid "A parameter is missing for this question type"
msgstr "Um parâmetro está ausente para esse tipo de pergunta"
-#: inc/question.class.php:1190
+#: inc/question.class.php:1202
msgid "Service levels"
-msgstr ""
+msgstr "Níveis de serviço"
-#: inc/question.class.php:1191 inc/abstractitiltarget.class.php:834
+#: inc/question.class.php:1203 inc/abstractitiltarget.class.php:834
msgid "SLA"
-msgstr ""
+msgstr "SLA"
-#: inc/question.class.php:1192 inc/abstractitiltarget.class.php:907
+#: inc/question.class.php:1204 inc/abstractitiltarget.class.php:907
msgid "OLA"
-msgstr ""
+msgstr "OLA"
-#: inc/question.class.php:1211 inc/question.class.php:1254
-#: inc/question.class.php:1257
+#: inc/question.class.php:1223 inc/question.class.php:1266
+#: inc/question.class.php:1269
msgid "Assets"
-msgstr ""
+msgstr "Ativos"
-#: inc/question.class.php:1225 hook.php:705 hook.php:722
+#: inc/question.class.php:1237 hook.php:717 hook.php:734
msgid "Assistance"
-msgstr ""
+msgstr "Assistência"
-#: inc/question.class.php:1231
+#: inc/question.class.php:1243
msgid "Management"
-msgstr ""
+msgstr "Gestão"
-#: inc/question.class.php:1242
+#: inc/question.class.php:1254
msgid "Tools"
-msgstr ""
+msgstr "Ferramentas"
-#: inc/question.class.php:1243
+#: inc/question.class.php:1255
msgid "Notes"
-msgstr ""
+msgstr "Notas"
-#: inc/question.class.php:1244
+#: inc/question.class.php:1256
msgid "RSS feed"
-msgstr ""
+msgstr "RSS feed"
-#: inc/question.class.php:1246
+#: inc/question.class.php:1258
msgid "Administration"
-msgstr ""
+msgstr "Administração"
-#: inc/question.class.php:1254 inc/question.class.php:1257
+#: inc/question.class.php:1266 inc/question.class.php:1269
msgid "Plugin"
msgid_plural "Plugins"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Plugin"
+msgstr[1] "Plugins"
+msgstr[2] "Plugins"
#: inc/abstractquestionparameter.class.php:92
msgid "Parameter"
@@ -1822,15 +1870,15 @@ msgstr "De um objeto GLPI > resposta de pergunta de tipo de entidade"
#: inc/abstracttarget.class.php:116
msgid "Always generated"
-msgstr ""
+msgstr "Sempre gerado"
#: inc/abstracttarget.class.php:117
msgid "Disabled unless"
-msgstr ""
+msgstr "Desativado a não ser"
#: inc/abstracttarget.class.php:118
msgid "Generated unless"
-msgstr ""
+msgstr "Gerado a não ser"
#: inc/abstracttarget.class.php:129
msgid "A target must be associated to a form."
@@ -1844,43 +1892,43 @@ msgstr "Um alvo deve ser associado a um formulário existente."
msgid "Name is required."
msgstr "É necessário um nome."
-#: inc/abstracttarget.class.php:503
+#: inc/abstracttarget.class.php:505
msgid "Destination entity"
-msgstr ""
+msgstr "Entidade de destino"
-#: inc/abstracttarget.class.php:519
+#: inc/abstracttarget.class.php:521
msgid "User type question"
msgstr "Pergunta tipo de utilizador"
-#: inc/abstracttarget.class.php:520
+#: inc/abstracttarget.class.php:522
msgid "Entity type question"
msgstr "Pergunta de tipo de entidade"
#: inc/command/cleanticketscommand.class.php:53
msgid "Searching for invalid items..."
-msgstr ""
+msgstr "A procurar por itens inválidos..."
#: inc/command/cleanticketscommand.class.php:61
msgid "Done."
-msgstr ""
+msgstr "Concluído."
#: inc/command/cleanticketscommand.class.php:135
msgid "Step 1: double encoded < and > signs."
-msgstr ""
+msgstr "Passo 1: sinais de < e > duplamente codificados."
#: inc/command/cleanticketscommand.class.php:146
#: inc/command/cleanticketscommand.class.php:196
#: inc/command/cleanticketscommand.class.php:260
msgid "No invalid items found."
-msgstr ""
+msgstr "Nenhum item inválido encontrado."
#: inc/command/cleanticketscommand.class.php:187
msgid "Step 2: literal BR tag."
-msgstr ""
+msgstr "Passo 2: etiqueta BR literal."
#: inc/command/cleanticketscommand.class.php:251
msgid "Step 3: litteral > sign."
-msgstr ""
+msgstr "Passo 3: sinal de > literal."
#: inc/filter/itilcategoryfilter.class.php:52
#: inc/filter/itilcategoryfilter.class.php:54
@@ -1894,42 +1942,42 @@ msgstr "Categorias de incidentes"
#: inc/filter/itilcategoryfilter.class.php:55
msgid "Change categories"
-msgstr ""
+msgstr "Categorias de alteração"
#: inc/questionregex.class.php:52
msgid "Question regular expression"
msgid_plural "Question regular expressions"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Expressão regular de pergunta"
+msgstr[1] "Expressões regulares de pergunta"
+msgstr[2] "Expressão regular de pergunta"
#: inc/questiondependency.class.php:66
msgid "Question dependency"
msgid_plural "Question dependencies"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Dependência da questão"
+msgstr[1] "Dependências da questão"
+msgstr[2] "Dependências da questão"
#: inc/answer.class.php:66 entrée standard:43
msgid "Answer"
msgid_plural "Answers"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Resposta"
+msgstr[1] "Respostas"
+msgstr[2] "Respostas"
#: inc/item_targetticket.class.php:52
msgid "Composite ticket relation"
msgid_plural "Composite ticket relations"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Relação de ticket composto"
+msgstr[1] "Relações de tickets compostos"
+msgstr[2] "Relação de ticket composto"
#: inc/targetticket.class.php:57 entrée standard:43
msgid "Target ticket"
msgid_plural "Target tickets"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Ticket alvo"
+msgstr[1] "Tickets alvo"
+msgstr[2] "Tickets algo"
#: inc/targetticket.class.php:100
msgid "Specific asset"
@@ -1949,19 +1997,19 @@ msgstr "Ultima resposta válida"
#: inc/targetticket.class.php:108
msgid "Source from template or user default or GLPI default"
-msgstr ""
+msgstr "Fonte de modelo ou utilizador padrão ou padrão do GLPI"
#: inc/targetticket.class.php:109
msgid "Formcreator"
-msgstr ""
+msgstr "Formcreator"
#: inc/targetticket.class.php:115
msgid "Default or from a template"
-msgstr ""
+msgstr "Padrão ou de modelo"
#: inc/targetticket.class.php:116
msgid "Specific type"
-msgstr ""
+msgstr "Topo especifico"
#: inc/targetticket.class.php:189 entrée standard:48
msgid "Ticket title"
@@ -1974,15 +2022,15 @@ msgstr ""
#: inc/targetticket.class.php:336
msgid "Add a field"
-msgstr ""
+msgstr "Adicionar um campo"
#: inc/targetticket.class.php:364
msgid "Managed fields"
-msgstr ""
+msgstr "Campos geridos"
#: inc/targetticket.class.php:371
msgid "No managed field"
-msgstr ""
+msgstr "Sem campo gerido"
#: inc/targetticket.class.php:391
msgid "Link to an other ticket"
@@ -1998,12 +2046,12 @@ msgstr "Um ticket existente"
#: inc/targetticket.class.php:402
msgid "A ticket from an answer to a question"
-msgstr ""
+msgstr "Um ticket de uma resposta para uma questão"
#: inc/targetticket.class.php:483
msgctxt "button"
msgid "Delete permanently"
-msgstr ""
+msgstr "Apagar permanentemente"
#: inc/targetticket.class.php:724
msgid "Invalid link type"
@@ -2021,45 +2069,45 @@ msgstr "Item vinculado não existe"
msgid "Failed to link the item"
msgstr "Falha ao ligar o item"
-#: inc/targetticket.class.php:920 install/install.php:431
+#: inc/targetticket.class.php:939 install/install.php:432
msgid "Your form has been accepted by the validator"
msgstr "O seu formulário foi aceite pelo validador"
-#: inc/targetticket.class.php:1076
+#: inc/targetticket.class.php:1095
msgid "Request source"
-msgstr ""
+msgstr "Fonte requerida"
-#: inc/targetticket.class.php:1101
+#: inc/targetticket.class.php:1120
msgid "Type "
-msgstr ""
+msgstr "Tipo"
-#: inc/targetticket.class.php:1129
+#: inc/targetticket.class.php:1148
msgid "Associated elements"
-msgstr ""
+msgstr "Elementos associados"
-#: inc/targetticket.class.php:1140
+#: inc/targetticket.class.php:1159
msgid "Item "
msgstr "Item "
#: inc/translation.class.php:153
msgid "No more string to translate"
-msgstr ""
+msgstr "Não há mais strings para traduzir"
#: inc/translation.class.php:164
msgid "Internal error: translatable string not found."
-msgstr ""
+msgstr "Erro interno: string traduzível não encontrada."
#: inc/translation.class.php:216
msgid "Language not found."
-msgstr ""
+msgstr "Idioma não encontrado."
#: inc/translation.class.php:221
msgid "Form not found."
-msgstr ""
+msgstr "Formulário não encontrado."
#: inc/translation.class.php:236
msgid "Failed to add the translation."
-msgstr ""
+msgstr "Falha ao adicionar a tradução."
#: inc/abstractitiltarget.class.php:179
msgid "Tags from questions"
@@ -2131,51 +2179,51 @@ msgstr "Localização específica"
#: inc/abstractitiltarget.class.php:238
msgid "No validation"
-msgstr ""
+msgstr "Sem validação"
#: inc/abstractitiltarget.class.php:239
msgid "Specific user or group"
-msgstr ""
+msgstr "Utilizador especifico ou grupo"
#: inc/abstractitiltarget.class.php:240
msgid "User from question answer"
-msgstr ""
+msgstr "Utilizador a partir de resposta de pergunta"
#: inc/abstractitiltarget.class.php:241
msgid "Group from question answer"
-msgstr ""
+msgstr "Grupo a partir de resposta de pergunta"
#: inc/abstractitiltarget.class.php:769 entrée standard:108
msgid "Time to resolve"
-msgstr ""
+msgstr "Tempo para resolver"
#: inc/abstractitiltarget.class.php:822
msgid "Minute"
msgid_plural "Minutes"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Minuto"
+msgstr[1] "Minutos"
+msgstr[2] "Minutos"
#: inc/abstractitiltarget.class.php:823
msgid "Hour"
msgid_plural "Hours"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Hora"
+msgstr[1] "Horas"
+msgstr[2] "Horas"
#: inc/abstractitiltarget.class.php:824
msgid "Day"
msgid_plural "Days"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Dia"
+msgstr[1] "Dias"
+msgstr[2] "Dias"
#: inc/abstractitiltarget.class.php:825
msgid "Month"
msgid_plural "Months"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Mês"
+msgstr[1] "Meses"
+msgstr[2] "Meses"
#: inc/abstractitiltarget.class.php:857
msgid "SLA (TTO/TTR)"
@@ -2203,7 +2251,7 @@ msgstr "Tags"
#: inc/abstractitiltarget.class.php:1231
msgid "Location"
-msgstr ""
+msgstr "Localização"
#: inc/abstractitiltarget.class.php:1243
msgid "Location "
@@ -2216,26 +2264,26 @@ msgstr "A descrição não pode estar vazia!"
#: inc/abstractitiltarget.class.php:1760
msgid "Watcher"
msgid_plural "Watchers"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Observador"
+msgstr[1] "Observadores"
+msgstr[2] "Observadores"
#: inc/abstractitiltarget.class.php:1779
msgid "Cancel"
msgstr "Cancelar"
-#: inc/abstractitiltarget.class.php:2067 inc/abstractitiltarget.class.php:2495
-#: inc/abstractitiltarget.class.php:2499
+#: inc/abstractitiltarget.class.php:2067 inc/abstractitiltarget.class.php:2518
+#: inc/abstractitiltarget.class.php:2522
msgid "Email followup"
-msgstr ""
+msgstr "Email de acompanhamento"
-#: inc/abstractitiltarget.class.php:2098 inc/abstractitiltarget.class.php:2483
+#: inc/abstractitiltarget.class.php:2098 inc/abstractitiltarget.class.php:2506
msgid "User"
-msgstr ""
+msgstr "Utilizador"
-#: inc/abstractitiltarget.class.php:2109 inc/abstractitiltarget.class.php:2487
+#: inc/abstractitiltarget.class.php:2109 inc/abstractitiltarget.class.php:2510
msgid "Group"
-msgstr ""
+msgstr "Grupo"
#: inc/abstractitiltarget.class.php:2120
msgid "Group from the object"
@@ -2245,58 +2293,68 @@ msgstr "Grupo do objeto"
msgid "Tech group from the object"
msgstr "Grupo técnico do objeto"
-#: inc/abstractitiltarget.class.php:2138 inc/abstractitiltarget.class.php:2491
+#: inc/abstractitiltarget.class.php:2138 inc/abstractitiltarget.class.php:2514
msgid "Supplier"
-msgstr ""
+msgstr "Fornecedor"
-#: inc/abstractitiltarget.class.php:2495
+#: inc/abstractitiltarget.class.php:2518
msgid "Yes"
-msgstr ""
+msgstr "Sim"
-#: install/install.php:134
+#: install/install.php:135
#, php-format
msgid "Upgrade tables to innoDB; run %s"
-msgstr ""
+msgstr "Atualize tabelas para o innoDB; execute %s"
-#: install/install.php:171
+#: install/install.php:172
#, php-format
msgid ""
"The database schema is not consistent with the previous version of "
"Formcreator %s. To see the logs run the command %s"
msgstr ""
+"O esquema da base de dados não é consistente com a versão anterior do "
+"Formcreator %s. Para ver os logs, execute o comando %s"
-#: install/install.php:180
+#: install/install.php:181
#, php-format
msgid "To ignore the inconsistencies and upgrade anyway run %s"
-msgstr ""
+msgstr "Para ignorar as inconsistências e mesmo assim atualizar execute %s"
-#: install/install.php:197
+#: install/install.php:198
msgid ""
"Upgrade from version older than 2.5.0 is no longer supported. Please upgrade"
" to GLPI 9.5.7, upgrade Formcreator to version 2.12.5, then upgrade again to"
" GLPI 10 or later and Formcreator 2.13 or later."
msgstr ""
+"Não é mais suportada a atualização de uma versão mais antiga do que a 2.5.0."
+" Por favor atualize para o GLPI 9.5.7, atualize o Formcreator para a versão "
+"2.12.5, e depois atualize novamente para versão GLPI 10 ou posterior e "
+"Formcreator 2.13 ou posterior"
-#: install/install.php:249
+#: install/install.php:250
#, php-format
msgid ""
"The database schema is not consistent with the current version of "
"Formcreator %s. To see the logs enable the plugin and run the command %s"
msgstr ""
+"O esquema da base de dados não é consistente com a versão atual do "
+"Formcreator %s. Para ver os logs, ative o plugin e execute o comando %s"
-#: install/install.php:260
+#: install/install.php:261
msgid "The tables of the plugin passed the schema integrity check."
msgstr ""
+"As tabelas do plugin estão corretas de acordo com a verificação de "
+"integridade do respetivo esquema."
-#: install/install.php:412
+#: install/install.php:413
msgid "A form has been created"
msgstr "Um formulário foi criado"
-#: install/install.php:413
+#: install/install.php:414
msgid "Your request has been saved"
msgstr "Seu pedido foi gravado"
-#: install/install.php:414
+#: install/install.php:415
msgid ""
"Hi,\\nYour request from GLPI has been successfully saved with number "
"##formcreator.request_id## and transmitted to the helpdesk team.\\nYou can "
@@ -2307,11 +2365,11 @@ msgstr ""
" verificar as suas respostas no seguinte "
"link:\\n##formcreator.validation_link##"
-#: install/install.php:419
+#: install/install.php:420
msgid "A form from GLPI need to be validate"
msgstr "Precisa validar um formulário de GLPI"
-#: install/install.php:420
+#: install/install.php:421
msgid ""
"Hi,\\nA form from GLPI need to be validate and you have been choosen as the "
"validator.\\nYou can access it by clicking onto this "
@@ -2321,11 +2379,11 @@ msgstr ""
"validador.\\nVocê pode acede-lo clicando no "
"link:\\n##formcreator.validation_link##"
-#: install/install.php:425
+#: install/install.php:426
msgid "Your form has been refused by the validator"
msgstr "O seu formulário foi recusado pelo validador"
-#: install/install.php:426
+#: install/install.php:427
msgid ""
"Hi,\\nWe are sorry to inform you that your form has been refused by the "
"validator for the reason "
@@ -2336,7 +2394,7 @@ msgstr ""
" pela razão abaixo:\\n##formcreator.validation_comment##\\n\\nPoderá ainda "
"modificá-lo e reenviá-lo clicando no link:\\n##formcreator.validation_link##"
-#: install/install.php:432
+#: install/install.php:433
msgid ""
"Hi,\\nWe are pleased to inform you that your form has been accepted by the "
"validator.\\nYour request will be considered soon."
@@ -2344,11 +2402,11 @@ msgstr ""
"Ola,\\nTemos o prazer de informá-lo que o seu formulário foi aceite pelo "
"validador.\\nO seu pedido será considerado em breve."
-#: install/install.php:437
+#: install/install.php:438
msgid "Your form has been deleted by an administrator"
msgstr "O seu formulário foi excluído por um administrador"
-#: install/install.php:438
+#: install/install.php:439
msgid ""
"Hi,\\nWe are sorry to inform you that your request cannot be considered and "
"has been deleted by an administrator."
@@ -2356,28 +2414,28 @@ msgstr ""
"Olá,\\nLamentamos informá-lo de que o seu pedido não pode ser considerado e "
"foi excluído por um administrador."
-#: install/install.php:664
+#: install/install.php:665
msgid "Formcreator - Sync service catalog issues"
msgstr "Formcreator-problemas de catálogo de serviços de sincronização"
-#: install/install.php:852
+#: install/install.php:853
msgid "Failed to check the sanity of the tables!"
-msgstr ""
+msgstr "Falhou a verificação da consistência das tabelas!"
-#: install/install.php:866
+#: install/install.php:867
#, php-format
msgid "Table schema differs for table \"%s\"."
-msgstr ""
+msgstr "O esquema da tabela difere para a tabela \"%s\"."
-#: install/install.php:869
+#: install/install.php:870
#, php-format
msgid "Table \"%s\" is missing."
-msgstr ""
+msgstr "Não encontro a tabela \"%s\"."
-#: install/install.php:872
+#: install/install.php:873
#, php-format
msgid "Unknown table \"%s\" has been found in database."
-msgstr ""
+msgstr "Foi encontrada uma tabela desconhecida \"%s\" na base de dados."
#: hook.php:378
msgctxt "button"
@@ -2386,52 +2444,55 @@ msgstr "Duplicado"
#: hook.php:379
msgid "Transfer"
-msgstr ""
+msgstr "Transferir"
#: hook.php:380
msgctxt "button"
msgid "Export"
-msgstr ""
+msgstr "Exportar"
#: hook.php:381
msgctxt "button"
msgid "Access rights"
-msgstr ""
+msgstr "Direitos de acesso"
-#: hook.php:681
+#: hook.php:693
msgid "Cancel my ticket"
msgstr "Cancelar o meu ticket"
-#: hook.php:699
+#: hook.php:711
msgid "Old"
-msgstr ""
+msgstr "Antigo"
-#: hook.php:706
+#: hook.php:718
#, php-format
msgid "Number of %s"
-msgstr ""
+msgstr "Número de %s"
-#: hook.php:723
+#: hook.php:735
msgid "Issues summary"
-msgstr ""
+msgstr "Resumo de problemas"
-#: hook.php:768
+#: hook.php:780
msgid ""
"Formcreator's mini dashboard not usable as default. This Setting has been "
"ignored."
msgstr ""
+"Mini painel do Formcreator não utilizável como padrão. Esta configuração foi"
+" ignorada."
#: js/scripts.js:296
msgid "No form found. Please choose a form below instead."
msgstr ""
+"Nenhum formulário encontrado. Por favor, escolha um formulário abaixo."
#: js/scripts.js:298
msgid "No form found."
-msgstr ""
+msgstr "Nenhum formulário encontrado."
#: js/scripts.js:302
msgid "No FAQ item found."
-msgstr ""
+msgstr "Nenhum item de FAQ encontrado."
#: js/scripts.js:688
msgid "Are you sure you want to delete this question?"
@@ -2443,7 +2504,7 @@ msgstr "Tem a certeza de que pretende eliminar esta secção?"
#: js/scripts.js:1118
msgid "Add translations"
-msgstr ""
+msgstr "Adicionar traduções"
#: js/scripts.js:1257 js/scripts.js:1281
msgid "An error occured while querying forms"
@@ -2451,28 +2512,29 @@ msgstr "Ocorreu um erro ao consultar formulários"
#: js/scripts.js:1372 entrée standard:139
msgid "Send"
-msgstr ""
+msgstr "Enviar"
#: js/scripts.js:1381
msgid "An internal error occurred. Please report it to administrator."
-msgstr ""
+msgstr "Ocorreu um erro interno. Por favor, reporte-o ao administrador."
#: js/scripts.js:1449
msgid "Are you sure you want to duplicate this target?"
-msgstr ""
+msgstr "Tem certeza de que deseja duplicar este alvo?"
#: js/scripts.js:1466
msgid "Are you sure you want to delete this target?"
-msgstr ""
+msgstr "Tem certeza de que deseja eliminar este alvo?"
-#: entrée standard:43 standard:50 standard:44 standard:49 standard:78
+#: entrée standard:43 standard:50 standard:44 standard:82 standard:49
+#: standard:78
msgid "Required"
msgstr "Necessário"
#: entrée standard:57 standard:61 standard:60 standard:59 standard:43
#: standard:69 standard:52 standard:76
msgid "Default values"
-msgstr ""
+msgstr "Valores padrão"
#: entrée standard:52 standard:59 standard:58
msgid "Show empty"
@@ -2481,9 +2543,9 @@ msgstr "Mostrar vazio"
#: entrée standard:39
msgid "LDAP directory"
msgid_plural "LDAP directories"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr[0] "Diretório LDAP"
+msgstr[1] "Diretórios LDAP"
+msgstr[2] "Diretório LDAP"
#: entrée standard:68
msgid "Filter"
@@ -2503,11 +2565,11 @@ msgstr "Mostrar categorias de tickets"
#: entrée standard:109
msgid "Time to own"
-msgstr ""
+msgstr "Tempo para posse"
#: entrée standard:146 standard:118
msgid "Selectable root"
-msgstr ""
+msgstr "Raiz selecionável"
#: entrée standard:63
msgid "Direct access on homepage"
@@ -2519,31 +2581,31 @@ msgstr "Formulário padrão no catálogo de serviços"
#: entrée standard:113 standard:114
msgid "Are you a robot ?"
-msgstr ""
+msgstr "Você é um robô?"
#: entrée standard:64
msgid "Condition to show the section"
-msgstr ""
+msgstr "Condição para mostrar a secção"
#: entrée standard:40
msgid "Condition to generate the target"
-msgstr ""
+msgstr "Condição para gerar o alvo"
#: entrée standard:127
msgid "Condition to show the question"
-msgstr ""
+msgstr "Condição para mostrar a pergunta"
#: entrée standard:54
msgid "Impacts"
-msgstr ""
+msgstr "Impactos"
#: entrée standard:62
msgid "Checklist"
-msgstr ""
+msgstr "Lista de verificação"
#: entrée standard:36
msgid "Answers title"
-msgstr ""
+msgstr "Título das respostas"
#: entrée standard:45
msgid "Add a section"
@@ -2551,16 +2613,16 @@ msgstr "Adicionar secção"
#: entrée standard:55
msgid "Condition to show the submit button"
-msgstr ""
+msgstr "Condição para mostrar o botão de enviar"
#: entrée standard:33
msgid "No form answer yet"
-msgstr ""
+msgstr "Ainda não há resposta do formulário"
#: entrée standard:38
#, php-format
msgid "%s latest items"
-msgstr ""
+msgstr "%s itens mais recentes"
#: entrée standard:83
msgid "Add a question"
@@ -2568,11 +2630,11 @@ msgstr "Adicionar questão"
#: entrée standard:39
msgid "List of available tags"
-msgstr ""
+msgstr "Lista de etiquetas disponíveis"
#: entrée standard:42
msgid "Title"
-msgstr ""
+msgstr "Título"
#: entrée standard:47
msgid "Full form"
diff --git a/locales/ru_RU.po b/locales/ru_RU.po
index 0b5d9b3ad..d958abbc3 100644
--- a/locales/ru_RU.po
+++ b/locales/ru_RU.po
@@ -6,10 +6,10 @@
# Translators:
# Kirill Smyshkov , 2021
# Ilya Pavlov , 2022
-# Alexander Sokolov , 2022
# Nikolai Petrov , 2022
# Alexey Petukhov , 2023
# Thierry Bugier , 2023
+# Alexander Sokolov , 2024
#
#, fuzzy
msgid ""
@@ -18,7 +18,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-11-13 14:56+0100\n"
"PO-Revision-Date: 2021-08-30 07:22+0000\n"
-"Last-Translator: Thierry Bugier , 2023\n"
+"Last-Translator: Alexander Sokolov , 2024\n"
"Language-Team: Russian (Russia) (https://app.transifex.com/teclib/teams/28042/ru_RU/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -257,7 +257,7 @@ msgstr "LDAP каталог не найден!"
#: inc/field/ldapselectfield.class.php:154
msgid "LDAP attribute is required!"
-msgstr ""
+msgstr "Необходим LDAP атрибут!"
#: inc/field/textfield.class.php:146 inc/field/floatfield.class.php:156
#, php-format
@@ -297,15 +297,15 @@ msgstr "Переключатели"
#: inc/field/radiosfield.class.php:116 inc/field/checkboxesfield.class.php:256
msgid "The field value is required."
-msgstr ""
+msgstr "Необходимо значение поля."
#: inc/field/radiosfield.class.php:127
msgid "Only one default value is allowed."
-msgstr ""
+msgstr "Допускается только одно значение по умолчанию."
#: inc/field/radiosfield.class.php:138
msgid "The default value is not in the list of available values."
-msgstr ""
+msgstr "Значение по умолчанию не входит в список доступных значений."
#: inc/field/radiosfield.class.php:215 inc/field/selectfield.class.php:105
#: inc/field/datetimefield.class.php:119 inc/field/actorfield.class.php:257
@@ -317,7 +317,7 @@ msgstr "Обязательное поле пустое: %s"
#: inc/field/radiosfield.class.php:234 inc/field/selectfield.class.php:123
#, php-format
msgid "This value %1$s is not allowed: %2$s"
-msgstr ""
+msgstr "Это значение %1$s недопустимо: %2$s"
#: inc/field/integerfield.class.php:60
#, php-format
@@ -507,26 +507,26 @@ msgstr "Галочки"
#: inc/field/checkboxesfield.class.php:208
#, php-format
msgid "Empty values are not allowed: %s"
-msgstr ""
+msgstr "Пустые значения недопустимы: %s"
#: inc/field/checkboxesfield.class.php:216
#, php-format
msgid "This value %1$s is not alowed: %2$s"
-msgstr ""
+msgstr "Это значение %1$s недопустимо: %2$s"
#: inc/field/checkboxesfield.class.php:236
#, php-format
msgid "The following question needs at least %d answers: %s"
-msgstr ""
+msgstr "Следующий вопрос требует как минимум %d ответ: %s"
#: inc/field/checkboxesfield.class.php:242
#, php-format
msgid "The following question does not accept more than %d answers: %s"
-msgstr ""
+msgstr "Следующий вопрос не принимает больше %d ответов: %s"
#: inc/field/checkboxesfield.class.php:270
msgid "The default values are not in the list of available values."
-msgstr ""
+msgstr "Значение по умолчанию не входит в список доступных значений."
#: inc/field/checkboxesfield.class.php:325
msgid "Range min"
@@ -747,19 +747,19 @@ msgstr "Группа, согласующая форму"
#: inc/issue.class.php:817
msgid "Ticket approver group"
-msgstr ""
+msgstr "Группа согласующих заявку"
#: inc/issue.class.php:857
msgid "Ticket requester"
-msgstr ""
+msgstr "Инициатор заявки"
#: inc/issue.class.php:904
msgid "Ticket observer"
-msgstr ""
+msgstr "Наблюдатель заявки"
#: inc/issue.class.php:952
msgid "Ticket technician"
-msgstr ""
+msgstr "Исполнитель заявки"
#: inc/issue.class.php:1099
#, php-format
@@ -834,7 +834,7 @@ msgstr "Форма удалена"
#: inc/notificationtargetformanswer.class.php:74
msgid "Form ID"
-msgstr ""
+msgstr "ID формы"
#: inc/notificationtargetformanswer.class.php:75
#: inc/notificationtargetformanswer.class.php:95
@@ -854,7 +854,7 @@ msgstr "Ответы формы"
#: inc/notificationtargetformanswer.class.php:80
msgid "Validation comment"
-msgstr ""
+msgstr "Комментарий о проверке"
#: inc/notificationtargetformanswer.class.php:81
#: inc/notificationtargetformanswer.class.php:101
@@ -863,7 +863,7 @@ msgstr "Ссылка на согласование"
#: inc/notificationtargetformanswer.class.php:82
msgid "Request ID"
-msgstr ""
+msgstr "ID запроса"
#: inc/notificationtargetformanswer.class.php:94
msgid "Form #"
@@ -1036,6 +1036,8 @@ msgid ""
"An internal error occured when verifying your answers. Please report it to "
"your administrator."
msgstr ""
+"При проверке ваших ответов произошла внутренняя ошибка. Пожалуйста, сообщите"
+" об этом своему администратору."
#: inc/formanswer.class.php:882
msgid "You are not the validator of these answers"
@@ -1044,7 +1046,7 @@ msgstr "Вы не согласующий этих ответов"
#: inc/formanswer.class.php:1021
#, php-format
msgid "Item sucessfully added: %1$s (%2$s: %3$s)"
-msgstr ""
+msgstr "Элемент успешно добавлен: %1$s (%2$s: %3$s)"
#: inc/formanswer.class.php:1104 inc/formanswer.class.php:1106
msgid "Form data"
@@ -1057,7 +1059,7 @@ msgstr "Не удалось создать цели!"
#: inc/formanswer.class.php:1434
#, php-format
msgid "Answer is invalid in %1$s"
-msgstr ""
+msgstr "Ответ некорректен в %1$s"
#: inc/formanswer.class.php:1462
msgid "No turing test set"
@@ -1089,7 +1091,7 @@ msgstr "Мои обращения"
#: inc/common.class.php:829
msgid "Consult reminders"
-msgstr ""
+msgstr "Просмотр напоминаний"
#: inc/common.class.php:849
msgid "Consult feeds"
@@ -1137,15 +1139,15 @@ msgstr[3] "Переводы"
#: inc/form_language.class.php:122
msgid "The name cannot be empty."
-msgstr ""
+msgstr "Имя не может быть пустым."
#: inc/form_language.class.php:130
msgid "The language must be associated to a form."
-msgstr ""
+msgstr "Язык должен быть сопоставлен с формой."
#: inc/form_language.class.php:138
msgid "The specified language is not available."
-msgstr ""
+msgstr "Указанный язык недоступен."
#: inc/form_language.class.php:268
msgid "Add a translation"
@@ -1341,11 +1343,11 @@ msgstr "Единая высота"
#: inc/entityconfig.class.php:164
msgid "Search for assistance"
-msgstr ""
+msgstr "Поиск помощи"
#: inc/entityconfig.class.php:165
msgid "User's assistance requests"
-msgstr ""
+msgstr "Запросы помощи пользователя"
#: inc/entityconfig.class.php:261
msgid "Helpdesk"
@@ -1386,7 +1388,7 @@ msgstr "Проблема с поиском"
#: inc/entityconfig.class.php:393 inc/entityconfig.class.php:509
msgid "Service catalog home page"
-msgstr ""
+msgstr "Домашняя страница каталога услуг"
#: inc/entityconfig.class.php:409 inc/entityconfig.class.php:549
msgid "Tile design"
@@ -1520,7 +1522,7 @@ msgstr "Предпросмотр"
#: inc/form.class.php:576
msgid "Form answer properties"
-msgstr ""
+msgstr "Свойства ответа формы"
#: inc/form.class.php:900
msgid "What are you looking for?"
@@ -1594,7 +1596,7 @@ msgstr "Назад"
#: inc/form.class.php:1568
#, php-format
msgid "Form updated: %s"
-msgstr ""
+msgstr "Форм обновлено: %s"
#: inc/form.class.php:1668
msgid "Upload of JSON files not allowed."
@@ -1931,29 +1933,29 @@ msgstr "Организация из вопроса"
#: inc/command/cleanticketscommand.class.php:53
msgid "Searching for invalid items..."
-msgstr ""
+msgstr "Поиск недействительных элементов..."
#: inc/command/cleanticketscommand.class.php:61
msgid "Done."
-msgstr ""
+msgstr "Готово."
#: inc/command/cleanticketscommand.class.php:135
msgid "Step 1: double encoded < and > signs."
-msgstr ""
+msgstr "Шаг 1: двойное кодирование знаков < и >."
#: inc/command/cleanticketscommand.class.php:146
#: inc/command/cleanticketscommand.class.php:196
#: inc/command/cleanticketscommand.class.php:260
msgid "No invalid items found."
-msgstr ""
+msgstr "Недействительные элементы не найдены."
#: inc/command/cleanticketscommand.class.php:187
msgid "Step 2: literal BR tag."
-msgstr ""
+msgstr "Шаг 2: буквальный тег BR."
#: inc/command/cleanticketscommand.class.php:251
msgid "Step 3: litteral > sign."
-msgstr ""
+msgstr "Шаг 3: буквальный > знак."
#: inc/filter/itilcategoryfilter.class.php:52
#: inc/filter/itilcategoryfilter.class.php:54
@@ -2125,7 +2127,7 @@ msgstr "Больше нет строк для перевода"
#: inc/translation.class.php:164
msgid "Internal error: translatable string not found."
-msgstr ""
+msgstr "Внутренняя ошибка: переводимая строка не найдена."
#: inc/translation.class.php:216
msgid "Language not found."
@@ -2339,7 +2341,7 @@ msgstr "Да"
#: install/install.php:135
#, php-format
msgid "Upgrade tables to innoDB; run %s"
-msgstr ""
+msgstr "Для обновления таблиц в innoDB запустите %s"
#: install/install.php:172
#, php-format
@@ -2347,11 +2349,15 @@ msgid ""
"The database schema is not consistent with the previous version of "
"Formcreator %s. To see the logs run the command %s"
msgstr ""
+"Схема базы данных не соответствует предыдущей версии Formcreator %s. Чтобы "
+"просмотреть журнал, выполните команду %s"
#: install/install.php:181
#, php-format
msgid "To ignore the inconsistencies and upgrade anyway run %s"
msgstr ""
+"Чтобы игнорировать несоответствия и все равно выполнить обновление, "
+"запустите %s"
#: install/install.php:198
msgid ""
@@ -2359,6 +2365,9 @@ msgid ""
" to GLPI 9.5.7, upgrade Formcreator to version 2.12.5, then upgrade again to"
" GLPI 10 or later and Formcreator 2.13 or later."
msgstr ""
+"Обновление с версии старше 2.5.0 больше не поддерживается. Пожалуйста, "
+"обновите GLPI 9.5.7, обновите Formcreator до версии 2.12.5, затем обновите "
+"снова до GLPI 10 или новее и Formcreator 2.13 или новее."
#: install/install.php:250
#, php-format
@@ -2366,10 +2375,12 @@ msgid ""
"The database schema is not consistent with the current version of "
"Formcreator %s. To see the logs enable the plugin and run the command %s"
msgstr ""
+"Схема базы данных не соответствует текущей версии Formcreator %s. Чтобы "
+"просмотреть журнал, включите плагин и выполните команду %s"
#: install/install.php:261
msgid "The tables of the plugin passed the schema integrity check."
-msgstr ""
+msgstr "Таблицы плагина прошли проверку целостности схемы."
#: install/install.php:413
msgid "A form has been created"
@@ -2443,22 +2454,22 @@ msgstr "Formcreator - Проблемы каталога службы синхр
#: install/install.php:853
msgid "Failed to check the sanity of the tables!"
-msgstr ""
+msgstr "Не удалось проверить работоспособность таблиц!"
#: install/install.php:867
#, php-format
msgid "Table schema differs for table \"%s\"."
-msgstr ""
+msgstr "Схема отличается для таблицы \"%s\"."
#: install/install.php:870
#, php-format
msgid "Table \"%s\" is missing."
-msgstr ""
+msgstr "Таблица \"%s\" утеряна."
#: install/install.php:873
#, php-format
msgid "Unknown table \"%s\" has been found in database."
-msgstr ""
+msgstr "В базе данных найдена неизвестная таблица \"%s\""
#: hook.php:378
msgctxt "button"
@@ -2477,7 +2488,7 @@ msgstr "Экспорт"
#: hook.php:381
msgctxt "button"
msgid "Access rights"
-msgstr ""
+msgstr "Права доступа"
#: hook.php:693
msgid "Cancel my ticket"
@@ -2539,14 +2550,15 @@ msgstr "Отправить"
#: js/scripts.js:1381
msgid "An internal error occurred. Please report it to administrator."
msgstr ""
+"Возникла внутренняя ошибка. Пожалуйста, сообщите об этом администратору."
#: js/scripts.js:1449
msgid "Are you sure you want to duplicate this target?"
-msgstr ""
+msgstr "Вы уверены, что хотите дублировать эту цель?"
#: js/scripts.js:1466
msgid "Are you sure you want to delete this target?"
-msgstr ""
+msgstr "Вы уверены, что хотите удалить эту цель?"
#: entrée standard:43 standard:50 standard:44 standard:82 standard:49
#: standard:78
@@ -2640,12 +2652,12 @@ msgstr "Условие для отображения кнопки отправк
#: entrée standard:33
msgid "No form answer yet"
-msgstr ""
+msgstr "Ответы форм пока отсутствуют"
#: entrée standard:38
#, php-format
msgid "%s latest items"
-msgstr ""
+msgstr "%s последних элементов"
#: entrée standard:83
msgid "Add a question"
diff --git a/locales/tr_TR.po b/locales/tr_TR.po
index c743dbce8..54aa4b7c7 100644
--- a/locales/tr_TR.po
+++ b/locales/tr_TR.po
@@ -4,9 +4,9 @@
# FIRST AUTHOR , YEAR.
#
# Translators:
-# Ali AY , 2022
+# Ali AY , 2022
# Thierry Bugier , 2023
-# Kaya Zeren , 2023
+# Kaya Zeren , 2024
#
#, fuzzy
msgid ""
@@ -15,7 +15,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-11-13 14:56+0100\n"
"PO-Revision-Date: 2021-08-30 07:22+0000\n"
-"Last-Translator: Kaya Zeren , 2023\n"
+"Last-Translator: Kaya Zeren , 2024\n"
"Language-Team: Turkish (Turkey) (https://app.transifex.com/teclib/teams/28042/tr_TR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -360,7 +360,7 @@ msgstr "Çok düşük"
#: inc/field/tagfield.class.php:51
msgid "Warning: Tag plugin is disabled or missing"
-msgstr "Uyarı: Etiket uygulama eki devre dışı bırakılmış ya da eksik"
+msgstr "Uyarı: Etiket eklentisi kullanımdan kaldırılmış ya da eksik"
#: inc/field/tagfield.class.php:197
msgid "Tag"
@@ -447,7 +447,7 @@ msgstr "Çoklu seçim"
#: inc/field/fieldsfield.class.php:154
msgid "Warning: Additional Fields plugin is disabled or missing"
-msgstr "Uyarı: Ek alanlar uygulama eki devre dışı bırakılmış ya da eksik"
+msgstr "Uyarı: Ek alanlar eklentisi kullanımdan kaldırılmış ya da eksik"
#: inc/field/fieldsfield.class.php:167
msgid "Block"
@@ -1780,8 +1780,8 @@ msgstr "İdari"
#: inc/question.class.php:1266 inc/question.class.php:1269
msgid "Plugin"
msgid_plural "Plugins"
-msgstr[0] "Uygulama eki"
-msgstr[1] "Uygulama ekleri"
+msgstr[0] "Eklenti"
+msgstr[1] "Eklentiler"
#: inc/abstractquestionparameter.class.php:92
msgid "Parameter"
@@ -2289,12 +2289,12 @@ msgid ""
"Formcreator %s. To see the logs enable the plugin and run the command %s"
msgstr ""
"Veri tabanı şeması güncel Formcreator %s sürümü ile uyumlu değil. Günlük "
-"kayıtlarını görüntülemek için uygulama ekini etkinleştirin ve şu komutu "
-"yürütün %s"
+"kayıtlarını görüntülemek için eklentiyi kullanıma alın ve şu komutu yürütün "
+"%s"
#: install/install.php:261
msgid "The tables of the plugin passed the schema integrity check."
-msgstr "Uygulama ekinin tabloları şema bütünlüğü denetimini geçti."
+msgstr "Eklentinin tabloları şema bütünlüğü denetimini geçti."
#: install/install.php:413
msgid "A form has been created"
diff --git a/package.json b/package.json
index 2d1726915..adc9c2373 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,7 @@
{
"dependencies": {
- "jquery-slinky": "^4.1"
+ "jquery-slinky": "^4.1",
+ "yarn": "^1.22.22"
},
"devDependencies": {
"conventional-changelog-cli": "^2.0",
@@ -13,5 +14,5 @@
"tag": true
}
},
- "version": "2.13.9"
+ "version": "2.13.10"
}
diff --git a/plugin.xml b/plugin.xml
index a4b365002..cdffd6a15 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -58,6 +58,11 @@ Features
Teclib'
+
+ 2.13.10
+ ~10.0.10
+ https://github.com/pluginsGLPI/formcreator/releases/download/2.13.10/glpi-formcreator-2.13.10.tar.bz2
+
2.13.9
~10.0.10
diff --git a/setup.php b/setup.php
index 96e95461e..e055b032d 100644
--- a/setup.php
+++ b/setup.php
@@ -33,7 +33,7 @@
global $CFG_GLPI;
// Version of the plugin (major.minor.bugfix)
-define('PLUGIN_FORMCREATOR_VERSION', '2.13.9');
+define('PLUGIN_FORMCREATOR_VERSION', '2.13.10');
// Schema version of this version (major.minor only)
define('PLUGIN_FORMCREATOR_SCHEMA_VERSION', '2.13');
// is or is not an official release of the plugin
@@ -281,6 +281,7 @@ function plugin_formcreator_permanent_hook(): void {
$PLUGIN_HOOKS[Hooks::ITEM_ADD]['formcreator'] = [
Ticket::class => 'plugin_formcreator_hook_add_ticket',
ITILFollowup::class => 'plugin_formcreator_hook_update_itilFollowup',
+ Ticket_User::class => 'plugin_formcreator_hook_update_ticket_actors',
];
$PLUGIN_HOOKS[Hooks::PRE_ITEM_UPDATE]['formcreator'] = [
User::class => 'plugin_formcreator_hook_update_user',
@@ -299,6 +300,7 @@ function plugin_formcreator_permanent_hook(): void {
$PLUGIN_HOOKS[Hooks::ITEM_PURGE]['formcreator'] = [
Ticket::class => 'plugin_formcreator_hook_purge_ticket',
TicketValidation::class => 'plugin_formcreator_hook_purge_ticketvalidation',
+ Ticket_User::class => 'plugin_formcreator_hook_update_ticket_actors',
];
$PLUGIN_HOOKS[Hooks::PRE_ITEM_PURGE]['formcreator'] = [
PluginFormcreatorTargetTicket::class => 'plugin_formcreator_hook_pre_purge_targetTicket',
diff --git a/templates/field/fieldsfield.html.twig b/templates/field/fieldsfield.html.twig
index e333cba0a..e94774fb1 100644
--- a/templates/field/fieldsfield.html.twig
+++ b/templates/field/fieldsfield.html.twig
@@ -59,6 +59,7 @@
item.fields['_field_list'],
item.fields['_drodpdown_field_label'],
{
+ on_change: 'plugin_formcreator.changeQuestionType(this)',
display_emptychoice: true,
label_class: 'col-xxl-4',
input_class: 'col-xxl-8',
diff --git a/tests/1-install/Config.php b/tests/1-install/Config.php
index b3993edff..6c99ef4b0 100644
--- a/tests/1-install/Config.php
+++ b/tests/1-install/Config.php
@@ -180,7 +180,7 @@ public function checkRequestType() {
public function checkAutomaticAction() {
$cronTask = new \CronTask();
$cronTask->getFromDBByCrit([
- 'itemtype' => 'PluginFormcreatorISsue',
+ 'itemtype' => 'PluginFormcreatorIssue',
'name' => 'SyncIssues'
]);
$this->boolean($cronTask->isNewItem())->isFalse();