{% back_to_project_link %}
- {% test_rule 'management.can_view_management' request.user request.site as can_view_management %}
+ {% has_perm 'management.view_management' request.user as can_view_management %}
{% if can_view_management %}
diff --git a/rdmo/core/tests/constants.py b/rdmo/core/tests/constants.py
index f8e26a30e8..0789bf4f64 100644
--- a/rdmo/core/tests/constants.py
+++ b/rdmo/core/tests/constants.py
@@ -1,26 +1,26 @@
multisite_status_map = {
'list': {
- 'foo-user': 403, 'foo-reviewer': 200, 'foo-editor': 200,
- 'bar-user': 403, 'bar-reviewer': 200, 'bar-editor': 200,
+ 'foo-user': 403, 'foo-reviewer': 403, 'foo-editor': 403,
+ 'bar-user': 403, 'bar-reviewer': 403, 'bar-editor': 403,
'user': 403, 'example-reviewer': 200, 'example-editor': 200,
'anonymous': 401, 'reviewer': 200, 'editor': 200,
},
'detail': {
- 'foo-user': 404, 'foo-reviewer': 200, 'foo-editor': 200,
- 'bar-user': 404, 'bar-reviewer': 200, 'bar-editor': 200,
+ 'foo-user': 404, 'foo-reviewer': 404, 'foo-editor': 404,
+ 'bar-user': 404, 'bar-reviewer': 404, 'bar-editor': 404,
'user': 404, 'example-reviewer': 200, 'example-editor': 200,
'anonymous': 401, 'reviewer': 200, 'editor': 200,
},
'nested': {
- 'foo-user': 404, 'foo-reviewer': 200, 'foo-editor': 200,
- 'bar-user': 404, 'bar-reviewer': 200, 'bar-editor': 200,
+ 'foo-user': 404, 'foo-reviewer': 404, 'foo-editor': 404,
+ 'bar-user': 404, 'bar-reviewer': 404, 'bar-editor': 404,
'user': 404, 'example-reviewer': 200, 'example-editor': 200,
'anonymous': 401, 'reviewer': 200, 'editor': 200,
},
'create': {
- 'foo-user': 403, 'foo-reviewer': 403, 'foo-editor': 201,
- 'bar-user': 403, 'bar-reviewer': 403, 'bar-editor': 201,
+ 'foo-user': 403, 'foo-reviewer': 403, 'foo-editor': 403,
+ 'bar-user': 403, 'bar-reviewer': 403, 'bar-editor': 403,
'user': 403, 'example-reviewer': 403, 'example-editor': 201,
'anonymous': 401, 'reviewer': 403, 'editor': 201,
},
@@ -31,14 +31,14 @@
'anonymous': 401, 'reviewer': 403, 'editor': 201,
},
'update': {
- 'foo-user': 404, 'foo-reviewer': 403, 'foo-editor': 200,
- 'bar-user': 404, 'bar-reviewer': 403, 'bar-editor': 200,
+ 'foo-user': 404, 'foo-reviewer': 404, 'foo-editor': 404,
+ 'bar-user': 404, 'bar-reviewer': 404, 'bar-editor': 404,
'user': 404, 'example-reviewer': 403, 'example-editor': 200,
'anonymous': 401, 'reviewer': 403, 'editor': 200,
},
'delete': {
- 'foo-user': 404, 'foo-reviewer': 403, 'foo-editor': 204,
- 'bar-user': 404, 'bar-reviewer': 403, 'bar-editor': 204,
+ 'foo-user': 404, 'foo-reviewer': 404, 'foo-editor': 404,
+ 'bar-user': 404, 'bar-reviewer': 404, 'bar-editor': 404,
'user': 404, 'example-reviewer': 403, 'example-editor': 204,
'anonymous': 401, 'reviewer': 403, 'editor': 204,
},
@@ -50,14 +50,22 @@
'user': 403, 'example-reviewer': 403, 'example-editor': 200,
'anonymous': 401, 'reviewer': 403, 'editor': 200,
},
+ 'management': { # access to the ui for example.com
+ 'foo-user': 403, 'foo-reviewer': 403, 'foo-editor': 403,
+ 'bar-user': 403, 'bar-reviewer': 403, 'bar-editor': 403,
+ 'user': 403, 'example-reviewer': 200, 'example-editor': 200,
+ 'anonymous': 302, 'reviewer': 200, 'editor': 200,
+ },
+ 'upload-import': { # access to the ui for example.com
+ 'foo-user': 403, 'foo-reviewer': 403, 'foo-editor': 403,
+ 'bar-user': 403, 'bar-reviewer': 403, 'bar-editor': 403,
+ 'user': 403, 'example-reviewer': 403, 'example-editor': 200,
+ 'anonymous': 401, 'reviewer': 403, 'editor': 200,
+ },
+
}
status_map_object_permissions = {
'copy': {
- 'all-element': {
- 'foo-reviewer': 403, 'foo-editor': 201,
- 'bar-reviewer': 403, 'bar-editor': 201,
- 'example-reviewer': 403, 'example-editor': 201,
- },
'foo-element': {
'foo-reviewer': 403, 'foo-editor': 201,
'bar-reviewer': 404, 'bar-editor': 404,
@@ -69,10 +77,61 @@
'example-reviewer': 404, 'example-editor': 404,
}
},
+ 'detail': {
+ 'foo-element': {
+ 'foo-reviewer': 200, 'foo-editor': 200,
+ 'bar-reviewer': 404, 'bar-editor': 404,
+ 'example-reviewer': 200, 'example-editor': 200, # because current site is example.com
+ },
+ 'bar-element': {
+ 'foo-reviewer': 404, 'foo-editor': 404,
+ 'bar-reviewer': 200, 'bar-editor': 200,
+ 'example-reviewer': 200, 'example-editor': 200, # because current site is example.com
+ },
+ 'example-element': {
+ 'foo-reviewer': 404, 'foo-editor': 404,
+ 'bar-reviewer': 404, 'bar-editor': 404,
+ 'example-reviewer': 200, 'example-editor': 200,
+ }
+ },
+ 'nested': {
+ 'foo-element': {
+ 'foo-reviewer': 200, 'foo-editor': 200,
+ 'bar-reviewer': 404, 'bar-editor': 404,
+ 'example-reviewer': 200, 'example-editor': 200, # because current site is example.com
+ },
+ 'bar-element': {
+ 'foo-reviewer': 404, 'foo-editor': 404,
+ 'bar-reviewer': 200, 'bar-editor': 200,
+ 'example-reviewer': 200, 'example-editor': 200, # because current site is example.com
+ },
+ 'example-element': {
+ 'foo-reviewer': 404, 'foo-editor': 404,
+ 'bar-reviewer': 404, 'bar-editor': 404,
+ 'example-reviewer': 200, 'example-editor': 200,
+ }
+ },
'update': {
'all-element': {
+ 'foo-reviewer': 404, 'foo-editor': 404,
+ 'bar-reviewer': 404, 'bar-editor': 404,
+ 'example-reviewer': 403, 'example-editor': 200,
+ },
+ 'foo-element': {
'foo-reviewer': 403, 'foo-editor': 200,
+ 'bar-reviewer': 404, 'bar-editor': 404,
+ 'example-reviewer': 404, 'example-editor': 404,
+ },
+ 'bar-element': {
+ 'foo-reviewer': 404, 'foo-editor': 404,
'bar-reviewer': 403, 'bar-editor': 200,
+ 'example-reviewer': 404, 'example-editor': 404,
+ }
+ },
+ 'upload-import': {
+ 'all-element': {
+ 'foo-reviewer': 404, 'foo-editor': 404,
+ 'bar-reviewer': 404, 'bar-editor': 404,
'example-reviewer': 403, 'example-editor': 200,
},
'foo-element': {
diff --git a/rdmo/core/tests/test_openapi.py b/rdmo/core/tests/test_openapi.py
index 51dfd154a6..a12f319eff 100644
--- a/rdmo/core/tests/test_openapi.py
+++ b/rdmo/core/tests/test_openapi.py
@@ -21,7 +21,8 @@ def test_openapi_schema(db, client, login, settings, username):
assert response.status_code == 200
schema = yaml.safe_load(response.content)
assert schema['openapi'] == '3.0.3'
- assert len(schema['paths']) == 124
+ assert len(schema['paths']) > 120
+ assert len(schema['paths']) < 140
else:
assert response.status_code == 302
diff --git a/rdmo/core/tests/test_utils.py b/rdmo/core/tests/test_utils.py
index 129a33a440..2c446d5192 100644
--- a/rdmo/core/tests/test_utils.py
+++ b/rdmo/core/tests/test_utils.py
@@ -1,5 +1,4 @@
import datetime
-from typing import Optional
import pytest
@@ -80,7 +79,7 @@ def test_join_url():
@pytest.mark.parametrize('human,bytes', human2bytes_test_values)
-def test_human2bytes(human: Optional[str], bytes: float):
+def test_human2bytes(human: str | None, bytes: float):
assert human2bytes(human) == bytes
diff --git a/rdmo/core/tests/test_views.py b/rdmo/core/tests/test_views.py
index 29d1567ebe..2b10d9c96e 100644
--- a/rdmo/core/tests/test_views.py
+++ b/rdmo/core/tests/test_views.py
@@ -68,7 +68,7 @@ def test_i18n_switcher(db, client):
@pytest.mark.parametrize('username,password', users)
-def test_can_view_management(db, client, username, password):
+def test_view_management(db, client, username, password):
client.login(username=username, password=password)
response = client.get(reverse('management'))
if username in ('editor', 'reviewer', 'api', 'example-editor', 'example-reviewer'):
diff --git a/rdmo/core/tests/utils.py b/rdmo/core/tests/utils.py
index 1fce8f674b..9594fa609d 100644
--- a/rdmo/core/tests/utils.py
+++ b/rdmo/core/tests/utils.py
@@ -1,32 +1,62 @@
import hashlib
-from rdmo.core.models import Model
+from django.db.models import Model
+
from rdmo.core.tests.constants import multisite_status_map, status_map_object_permissions
-def get_obj_perms_status_code(instance, username, method):
+def get_obj_perms_status_code(instance, username, method, editors=None):
''' looks for the object permissions of the instance and returns the status code '''
- if isinstance(instance, Model):
- try:
- if not instance.editors.exists():
- return multisite_status_map[method][username]
- except AttributeError as e:
- raise AttributeError(f'instance {instance} should have an editors attribute') from e
+ if (isinstance(instance, Model) or hasattr(instance, 'editors')) and hasattr(instance, 'uri'):
+ instance_uri = instance.uri
+ instance_editors = instance.editors.values_list('domain', flat=True)
elif isinstance(instance, str):
- pass
+ instance_uri = instance
+ instance_editors = []
+ else:
+ raise TypeError(f'instance {instance} should be a str or a Model (and have an uri)')
- if 'foo-' in str(instance):
+ if editors is not None and method == 'delete':
+ # override in case of deleted instance
+ instance_editors = editors
+
+ if 'foo-' in instance_uri:
instance_obj_perms_key = 'foo-element'
- elif 'bar-' in str(instance):
+ assert_editors = ['foo.com']
+ elif 'bar-' in instance_uri:
instance_obj_perms_key = 'bar-element'
+ assert_editors = ['bar.com']
+ elif 'example-' in instance_uri:
+ instance_obj_perms_key = 'example-element'
+ assert_editors = ['example.com']
else:
+ if instance_editors:
+ raise ValueError(f"uri {instance_uri} should contain the domain for {instance_editors}")
instance_obj_perms_key = 'all-element'
+ assert_editors = ['foo.com', 'bar.com', 'example.com']
+
+ if not instance_editors and instance_obj_perms_key != 'all-element':
+ if 'import' in method: # override for import when only uri is passed
+ instance_editors = assert_editors
+ else:
+ raise ValueError(f"instance_editors should be specified on {instance_uri}")
+ elif instance_editors:
+ assert all(
+ i in instance_editors for i in assert_editors
+ ), f"{assert_editors} should be specified on {instance_uri}"
+
+
+ if not instance_editors:
+ return multisite_status_map[method][username]
try:
method_instance_obj_perms_map = status_map_object_permissions[method][instance_obj_perms_key]
except KeyError as e:
- raise KeyError(f'instance ({instance_obj_perms_key}) should be defined in status_map_object_permissions') from e
+ raise KeyError(
+ f'instance (uri={instance_uri}, editors={instance_editors}) for {method} ({instance_obj_perms_key})'
+ f' should be defined in status_map_object_permissions'
+ ) from e
try:
return method_instance_obj_perms_map[username]
except KeyError:
diff --git a/rdmo/core/utils.py b/rdmo/core/utils.py
index 73be65264b..d198111ca8 100644
--- a/rdmo/core/utils.py
+++ b/rdmo/core/utils.py
@@ -128,7 +128,7 @@ def get_language_fields(field_name):
def get_language_warning(obj, field):
- for lang_code, lang_string, lang_field in get_languages():
+ for _lang_code, _lang_string, lang_field in get_languages():
if not getattr(obj, f'{field}_{lang_field}'):
return True
return False
diff --git a/rdmo/core/xml.py b/rdmo/core/xml.py
index a4d6f6a345..5852fa17d7 100644
--- a/rdmo/core/xml.py
+++ b/rdmo/core/xml.py
@@ -2,7 +2,6 @@
import re
from collections import OrderedDict
from pathlib import Path
-from typing import Optional
from xml.etree.ElementTree import Element as xmlElement
from django.utils.translation import gettext_lazy as _
@@ -20,14 +19,14 @@
ELEMENTS_USING_KEY = {RDMO_MODELS['attribute']}
-def resolve_file(file_name: str) -> tuple[Optional[Path], Optional[str]]:
+def resolve_file(file_name: str) -> tuple[Path | None, str | None]:
file = Path(file_name).resolve()
if file.exists():
return file, None
return None, _('This file does not exists.')
-def read_xml(file: Path) -> tuple[Optional[xmlElement], Optional[str]]:
+def read_xml(file: Path) -> tuple[xmlElement | None, str | None]:
# step 2: parse xml and get the root
try:
root = ET.parse(file).getroot()
@@ -36,7 +35,7 @@ def read_xml(file: Path) -> tuple[Optional[xmlElement], Optional[str]]:
return None, _('XML Parsing Error') + f': {e!s}'
-def validate_root(root: Optional[xmlElement]) -> tuple[bool, Optional[str]]:
+def validate_root(root: xmlElement | None) -> tuple[bool, str | None]:
if root is None:
return False, _('The content of the XML file does not consist of well-formed data or markup.')
if root.tag != 'rdmo':
@@ -44,7 +43,7 @@ def validate_root(root: Optional[xmlElement]) -> tuple[bool, Optional[str]]:
return True, None
-def validate_and_get_xml_version_from_root(root: xmlElement) -> tuple[Optional[Version], list]:
+def validate_and_get_xml_version_from_root(root: xmlElement) -> tuple[Version | None, list]:
rdmo_version = parse(__version__)
# Extract version attributes from the XML root
@@ -93,7 +92,7 @@ def validate_legacy_elements(elements: dict, root_version: Version) -> list[str]
return errors
-def parse_elements(root: xmlElement) -> tuple[dict, Optional[str]]:
+def parse_elements(root: xmlElement) -> tuple[dict, str | None]:
# step 3: create element dicts from xml
try:
elements = flat_xml_to_elements(root)
@@ -297,7 +296,7 @@ def update_related_legacy_elements(elements: dict,
def convert_legacy_elements(elements):
# first pass: identify pages
- for uri, element in elements.items():
+ for _uri, element in elements.items():
if element['model'] == 'questions.questionset':
if element.get('questionset') is None:
# this is now a page
@@ -396,7 +395,7 @@ def convert_legacy_elements(elements):
def convert_additional_input(elements):
- for uri, element in elements.items():
+ for _uri, element in elements.items():
if element['model'] == 'options.option':
additional_input = element.get('additional_input')
if additional_input in ['', 'text', 'textarea']: # from Option.ADDITIONAL_INPUT_CHOICES
@@ -410,7 +409,7 @@ def convert_additional_input(elements):
def convert_autocomplete(elements):
- for uri, element in elements.items():
+ for _uri, element in elements.items():
if element['model'] == 'questions.question':
if element['widget_type'] == 'autocomplete':
element['widget_type'] = 'select'
diff --git a/rdmo/domain/imports.py b/rdmo/domain/imports.py
index 32627133a0..a970b66521 100644
--- a/rdmo/domain/imports.py
+++ b/rdmo/domain/imports.py
@@ -1,5 +1,4 @@
import logging
-from typing import Optional
from rdmo.core.import_helpers import ElementImportHelper, ExtraFieldHelper
@@ -9,11 +8,11 @@
logger = logging.getLogger(__name__)
-def build_attribute_path(instance: Optional[Attribute]=None):
+def build_attribute_path(instance: Attribute | None=None):
if instance is not None:
return instance.build_path(instance.key, instance.parent)
-def build_attribute_uri(instance: Optional[Attribute]=None):
+def build_attribute_uri(instance: Attribute | None=None):
if instance is not None:
return instance.build_uri(instance.uri_prefix, instance.path)
diff --git a/rdmo/domain/tests/test_viewset_attribute_multisite.py b/rdmo/domain/tests/test_viewset_attribute_multisite.py
index 39bd7a663e..092be6ae68 100644
--- a/rdmo/domain/tests/test_viewset_attribute_multisite.py
+++ b/rdmo/domain/tests/test_viewset_attribute_multisite.py
@@ -30,7 +30,7 @@ def test_nested(db, client, username, password):
for instance in instances:
url = reverse(urlnames['nested'], args=[instance.pk])
response = client.get(url)
- assert response.status_code == status_map['detail'][username], response.json()
+ assert response.status_code == get_obj_perms_status_code(instance, username, 'nested'), response.json()
@pytest.mark.parametrize('username,password', users)
@@ -58,7 +58,7 @@ def test_detail(db, client, username, password):
for instance in instances:
url = reverse(urlnames['detail'], args=[instance.pk])
response = client.get(url)
- assert response.status_code == status_map['detail'][username], response.json()
+ assert response.status_code == get_obj_perms_status_code(instance, username, 'detail'), response.json()
@pytest.mark.parametrize('username,password', users)
@@ -80,7 +80,7 @@ def test_create(db, client, username, password):
@pytest.mark.parametrize('username,password', users)
-def test_update_multisite(db, client, username, password):
+def test_update(db, client, username, password):
client.login(username=username, password=password)
instances = Attribute.objects.order_by('-level')
@@ -99,14 +99,15 @@ def test_update_multisite(db, client, username, password):
@pytest.mark.parametrize('username,password', users)
-def test_delete_multisite(db, client, username, password):
+def test_delete(db, client, username, password):
client.login(username=username, password=password)
instances = Attribute.objects.order_by('-level')
for instance in instances:
+ editors = list(instance.editors.values_list('domain', flat=True))
url = reverse(urlnames['detail'], args=[instance.pk])
response = client.delete(url)
- assert response.status_code == get_obj_perms_status_code(instance,username,'delete'), response.json()
+ assert response.status_code == get_obj_perms_status_code(instance, username, 'delete', editors=editors)
@pytest.mark.parametrize('username,password', users)
@@ -117,7 +118,7 @@ def test_detail_export(db, client, username, password):
for instance in instances:
url = reverse(urlnames['detail_export'], args=[instance.pk])
response = client.get(url)
- assert response.status_code == status_map['detail'][username], response.content
+ assert response.status_code == get_obj_perms_status_code(instance, username, 'detail'), response.json()
if response.status_code == 200:
root = et.fromstring(response.content)
diff --git a/rdmo/locale/de/LC_MESSAGES/django.mo b/rdmo/locale/de/LC_MESSAGES/django.mo
index b485ce6d2a..d9f45b2086 100644
Binary files a/rdmo/locale/de/LC_MESSAGES/django.mo and b/rdmo/locale/de/LC_MESSAGES/django.mo differ
diff --git a/rdmo/locale/de/LC_MESSAGES/django.po b/rdmo/locale/de/LC_MESSAGES/django.po
index c21205a264..69c4301823 100644
--- a/rdmo/locale/de/LC_MESSAGES/django.po
+++ b/rdmo/locale/de/LC_MESSAGES/django.po
@@ -2,16 +2,16 @@ msgid ""
msgstr ""
"Project-Id-Version: RDMO\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-07-04 11:19+0000\n"
-"PO-Revision-Date: 2025-04-28 13:46+0200\n"
-"Last-Translator: Jochen Klar \n"
+"POT-Creation-Date: 2025-12-12 13:02+0100\n"
+"PO-Revision-Date: 2025-12-12 13:00+0100\n"
+"Last-Translator: Jochen Klar \n"
"Language-Team: RDMO \n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.2.2\n"
+"X-Generator: Poedit 3.8\n"
#: accounts/apps.py:7
msgid "Accounts"
@@ -37,7 +37,9 @@ msgstr "Passwort"
msgid ""
"I confirm that I want my profile to be completely removed. This can not be "
"undone!"
-msgstr "Hiermit bestätige ich, die Löschung meines Profils!"
+msgstr ""
+"Hiermit bestätige ich die Löschung meines Profils. Diese Aktion kann nicht "
+"rückgängig gemacht werden!"
#: accounts/forms.py:110
msgid "Consent could not be saved. Please try again."
@@ -45,189 +47,189 @@ msgstr ""
"Die Zustimmung konnte nicht gespeichert werden. Bitte versuchen Sie es "
"erneut."
-#: accounts/models.py:27 options/models.py:181 questions/models/question.py:97
+#: accounts/models.py:28 options/models.py:181 questions/models/question.py:97
#: tasks/models.py:96
msgid "Text (primary)"
msgstr "Text (erste Sprache)"
-#: accounts/models.py:28
+#: accounts/models.py:29
msgid "The text for this additional field (in the primary language)."
msgstr "Der Text für das zusätzliche Feld (erste Sprache)."
-#: accounts/models.py:32 options/models.py:186 questions/models/question.py:102
+#: accounts/models.py:33 options/models.py:186 questions/models/question.py:102
#: tasks/models.py:101
msgid "Text (secondary)"
msgstr "Text (zweite Sprache)"
-#: accounts/models.py:33
+#: accounts/models.py:34
msgid "The text for this additional field (in the secondary language)."
msgstr "Der Text für das zusätzliche Feld (zweite Sprache)."
-#: accounts/models.py:37 options/models.py:191 questions/models/question.py:107
+#: accounts/models.py:38 options/models.py:191 questions/models/question.py:107
#: tasks/models.py:106
msgid "Text (tertiary)"
msgstr "Text (dritte Sprache)"
-#: accounts/models.py:38
+#: accounts/models.py:39
msgid "The text for this additional field (in the tertiary language)."
msgstr "Der Text für das zusätzliche Feld (dritte Sprache)."
-#: accounts/models.py:42 options/models.py:196 questions/models/question.py:112
+#: accounts/models.py:43 options/models.py:196 questions/models/question.py:112
#: tasks/models.py:111
msgid "Text (quaternary)"
msgstr "Text (vierte Sprache)"
-#: accounts/models.py:43
+#: accounts/models.py:44
msgid "The text for this additional field (in the quaternary language)."
msgstr "Der Text für das zusätzliche Feld (vierte Sprache)."
-#: accounts/models.py:47 options/models.py:201 questions/models/question.py:117
+#: accounts/models.py:48 options/models.py:201 questions/models/question.py:117
#: tasks/models.py:116
msgid "Text (quinary)"
msgstr "Text (fünfte Sprache)"
-#: accounts/models.py:48
+#: accounts/models.py:49
msgid "The text for this additional field (in the quinary language)."
msgstr "Der Text für das zusätzliche Feld (fünfte Sprache)."
-#: accounts/models.py:52 options/models.py:206 questions/models/catalog.py:111
+#: accounts/models.py:53 options/models.py:206 questions/models/catalog.py:112
#: questions/models/page.py:136 questions/models/question.py:72
#: questions/models/questionset.py:106 views/models.py:103
msgid "Help (primary)"
msgstr "Hilfe (erste Sprache)"
-#: accounts/models.py:53
+#: accounts/models.py:54
msgid ""
"The help text to be displayed next to the input element (in the primary "
"language)."
msgstr ""
"Der Hilfetext, der neben dem Eingabefeld angezeigt wird (erste Sprache)."
-#: accounts/models.py:57 options/models.py:211 questions/models/catalog.py:116
+#: accounts/models.py:58 options/models.py:211 questions/models/catalog.py:117
#: questions/models/page.py:141 questions/models/question.py:77
#: questions/models/questionset.py:111 views/models.py:108
msgid "Help (secondary)"
msgstr "Hilfe (zweite Sprache)"
-#: accounts/models.py:58
+#: accounts/models.py:59
msgid ""
"The help text to be displayed next to the input element (in the secondary "
"language)."
msgstr ""
"Der Hilfetext, der neben dem Eingabefeld angezeigt wird (zweite Sprache)."
-#: accounts/models.py:62 options/models.py:216 questions/models/catalog.py:121
+#: accounts/models.py:63 options/models.py:216 questions/models/catalog.py:122
#: questions/models/page.py:146 questions/models/question.py:82
#: questions/models/questionset.py:116 views/models.py:113
msgid "Help (tertiary)"
msgstr "Hilfe (dritte Sprache)"
-#: accounts/models.py:63
+#: accounts/models.py:64
msgid ""
"The help text to be displayed next to the input element (in the tertiary "
"language)."
msgstr ""
"Der Hilfetext, der neben dem Eingabefeld angezeigt wird (dritte Sprache)."
-#: accounts/models.py:67 options/models.py:221 questions/models/catalog.py:126
+#: accounts/models.py:68 options/models.py:221 questions/models/catalog.py:127
#: questions/models/page.py:151 questions/models/question.py:87
#: questions/models/questionset.py:121 views/models.py:118
msgid "Help (quaternary)"
msgstr "Hilfe (vierte Sprache)"
-#: accounts/models.py:68
+#: accounts/models.py:69
msgid ""
"The help text to be displayed next to the input element (in the quaternary "
"language)."
msgstr ""
"Der Hilfetext, der neben dem Eingabefeld angezeigt wird (vierte Sprache)."
-#: accounts/models.py:72 options/models.py:226 questions/models/catalog.py:131
+#: accounts/models.py:73 options/models.py:226 questions/models/catalog.py:132
#: questions/models/page.py:156 questions/models/question.py:92
#: questions/models/questionset.py:126 views/models.py:123
msgid "Help (quinary)"
msgstr "Hilfe (fünfte Sprache)"
-#: accounts/models.py:73
+#: accounts/models.py:74
msgid ""
"The help text to be displayed next to the input element (in the quinary "
"language)."
msgstr ""
"Der Hilfetext, der neben dem Eingabefeld angezeigt wird (fünfte Sprache)."
-#: accounts/models.py:76
+#: accounts/models.py:77
msgid "Required"
msgstr "Erforderlich"
-#: accounts/models.py:77
+#: accounts/models.py:78
msgid "Designates whether this additional field is required."
msgstr "Legt fest, ob die zusätzliche Eingabe erforderlich ist."
-#: accounts/models.py:82
+#: accounts/models.py:83
msgid "Additional field"
msgstr "Zusätzliches Feld"
-#: accounts/models.py:83
+#: accounts/models.py:84
msgid "Additional fields"
msgstr "Zusätzliche Felder"
-#: accounts/models.py:106
+#: accounts/models.py:107
msgid "Additional field value"
msgstr "Wert für zusätzliches Feld"
-#: accounts/models.py:107
+#: accounts/models.py:108
msgid "Additional field values"
msgstr "Werte für zusätzliches Felder"
-#: accounts/models.py:124
+#: accounts/models.py:125
msgid "Consent field value"
msgstr "Wert für Zustimmungsfeld"
-#: accounts/models.py:125
+#: accounts/models.py:126
msgid "Consent field values"
msgstr "Werte für Zustimmungsfelder"
-#: accounts/models.py:181
+#: accounts/models.py:182
msgid "Member"
msgstr "Mitglied"
-#: accounts/models.py:182
+#: accounts/models.py:183
msgid "The sites for which this user is a member."
msgstr "Die Seiten bei denen dieser Benutzer Mitglied ist."
-#: accounts/models.py:186 projects/constants.py:9
+#: accounts/models.py:187 projects/constants.py:9
#: projects/models/membership.py:13
msgid "Manager"
msgstr "Manager"
-#: accounts/models.py:187
+#: accounts/models.py:188
msgid "The sites for which this user is manager."
msgstr "Die Seiten bei denen dieser Benutzer Manager ist."
-#: accounts/models.py:191
+#: accounts/models.py:192
msgid "Editor"
msgstr "Editor"
-#: accounts/models.py:192
+#: accounts/models.py:193
msgid "The sites for which this user is an editor."
msgstr "Die Seiten bei denen dieser Benutzer Editor ist."
-#: accounts/models.py:196
+#: accounts/models.py:197
msgid "Reviewer"
msgstr "Reviewer"
-#: accounts/models.py:197
+#: accounts/models.py:198
msgid "The sites for which this user is a reviewer."
msgstr "Die Seiten bei denen dieser Benutzer Reviewer ist."
-#: accounts/models.py:202 projects/models/invite.py:33
+#: accounts/models.py:203 projects/forms.py:278 projects/models/invite.py:33
#: projects/models/membership.py:30
#: projects/templates/projects/project_detail_invites.html:16
#: projects/templates/projects/project_detail_memberships.html:22
msgid "Role"
msgstr "Rolle"
-#: accounts/models.py:203
+#: accounts/models.py:204
msgid "Roles"
msgstr "Rollen"
@@ -381,7 +383,7 @@ msgstr "Anmelden"
#: accounts/templates/account/login_form.html:6
msgid "Login with Shibboleth"
-msgstr "Mit Shibboleth einloggen"
+msgstr "Mit Shibboleth anmelden"
#: accounts/templates/account/login_form_account.html:7
#, python-format
@@ -525,7 +527,7 @@ msgstr "Neues Benutzerkonto erstellen"
msgid ""
"Already have an account? Then please sign in."
msgstr ""
-"Falls Sie schon eine Benutzerkonto haben können Sie sich hier anmelden."
#: accounts/templates/account/signup.html:34
@@ -810,7 +812,7 @@ msgstr "Bedingungen"
#: options/models.py:19 options/models.py:151
#: options/templates/options/export/option.html:5
#: options/templates/options/export/optionset.html:5
-#: questions/models/catalog.py:36 questions/models/page.py:35
+#: questions/models/catalog.py:37 questions/models/page.py:35
#: questions/models/question.py:27 questions/models/questionset.py:30
#: questions/models/section.py:34
#: questions/templates/questions/export/catalog.html:6
@@ -829,7 +831,7 @@ msgstr ""
"Der Uniform Resource Identifier dieser Bedingung (automatisch erstellt)."
#: conditions/models.py:40 domain/models.py:20 options/models.py:24
-#: options/models.py:156 questions/models/catalog.py:41
+#: options/models.py:156 questions/models/catalog.py:42
#: questions/models/page.py:40 questions/models/question.py:32
#: questions/models/questionset.py:35 questions/models/section.py:39
#: tasks/models.py:25 views/models.py:27
@@ -841,7 +843,7 @@ msgid "The prefix for the URI of this condition."
msgstr "Das Präfix für die URI dieser Bedingung."
#: conditions/models.py:45 options/models.py:29 options/models.py:161
-#: questions/models/catalog.py:46 questions/models/page.py:45
+#: questions/models/catalog.py:47 questions/models/page.py:45
#: questions/models/question.py:37 questions/models/questionset.py:40
#: questions/models/section.py:44 tasks/models.py:30 views/models.py:32
msgid "URI Path"
@@ -854,7 +856,7 @@ msgstr "Der Pfad für die URI dieser Bedingung."
#: conditions/models.py:50
#: conditions/templates/conditions/export/conditions.html:21
#: domain/models.py:35 options/models.py:34 options/models.py:166
-#: questions/models/catalog.py:51 questions/models/page.py:50
+#: questions/models/catalog.py:52 questions/models/page.py:50
#: questions/models/question.py:42 questions/models/questionset.py:45
#: questions/models/section.py:49
#: questions/templates/questions/export/catalog.html:12
@@ -870,10 +872,10 @@ msgstr "Kommentar"
#: conditions/models.py:51
msgid "Additional internal information about this condition."
-msgstr "Zusätzliche interne Informationen über diese Bedingung."
+msgstr "Zusätzliche interne Informationen zur Bedingung."
#: conditions/models.py:55 domain/models.py:40 options/models.py:39
-#: options/models.py:171 questions/models/catalog.py:56
+#: options/models.py:171 questions/models/catalog.py:57
#: questions/models/page.py:55 questions/models/question.py:47
#: questions/models/questionset.py:50 questions/models/section.py:54
#: tasks/models.py:40 views/models.py:42
@@ -882,10 +884,10 @@ msgstr "Gesperrt"
#: conditions/models.py:56
msgid "Designates whether this condition can be changed."
-msgstr "Bezeichnet, ob diese Bedingung geändert werden kann."
+msgstr "Legt fest, ob diese Bedingung geändert werden kann."
#: conditions/models.py:60 domain/models.py:45 options/models.py:49
-#: options/models.py:176 questions/models/catalog.py:76
+#: options/models.py:176 questions/models/catalog.py:77
#: questions/models/page.py:81 questions/models/question.py:67
#: questions/models/questionset.py:76 questions/models/section.py:64
#: tasks/models.py:61 views/models.py:63
@@ -993,7 +995,7 @@ msgstr "Option"
msgid "File"
msgstr "Datei"
-#: core/imports.py:601
+#: core/imports.py:600
msgid "You have no permissions to import"
msgstr "Sie haben keine Berechtigung zum Importieren"
@@ -1051,11 +1053,11 @@ msgstr "RDMO XML"
#: core/settings.py:349
msgid "CSV (comma separated)"
-msgstr "CSV (Komma getrennt)"
+msgstr "CSV (Komma-getrennt)"
#: core/settings.py:350
msgid "CSV (semicolon separated)"
-msgstr "CSV (Semikolon getrennt)"
+msgstr "CSV (Semikolon-getrennt)"
#: core/settings.py:351
msgid "JSON"
@@ -1252,43 +1254,43 @@ msgstr "Ein übergeordnetes Element ist gesperrt."
msgid "The element is locked."
msgstr "Das Element ist gesperrt."
-#: core/xml.py:27
+#: core/xml.py:26
msgid "This file does not exists."
msgstr "Diese Datei existiert nicht."
-#: core/xml.py:36 core/xml.py:90
+#: core/xml.py:35 core/xml.py:89
msgid "XML Parsing Error"
msgstr "XML-Parsing-Fehler"
-#: core/xml.py:41
+#: core/xml.py:40
msgid ""
"The content of the XML file does not consist of well-formed data or markup."
msgstr ""
"Der Inhalt der XML-Datei besteht nicht aus korrekt formatierten Daten oder "
"Markup."
-#: core/xml.py:43
+#: core/xml.py:42
msgid "This XML does not contain RDMO content."
msgstr "Die XML-Datei enthält keine RDMO-Daten."
-#: core/xml.py:60
+#: core/xml.py:59
msgid ""
"The \"required\" attribute in this RDMO XML file is not a valid version."
msgstr ""
"Das Attribut „required“ in dieser RDMO-XML-Datei ist keine gültige Version."
-#: core/xml.py:67
+#: core/xml.py:66
msgid "This RDMO XML file requires a newer RDMO version to be imported."
msgstr ""
"Diese RDMO-XML-Datei erfordert eine neuere RDMO-Version, um importiert zu "
"werden."
-#: core/xml.py:78
+#: core/xml.py:77
msgid "The \"version\" attribute in this RDMO XML file is not a valid version."
msgstr ""
"Das Attribut „version“ in dieser RDMO-XML-Datei ist keine gültige Version."
-#: core/xml.py:91 core/xml.py:103
+#: core/xml.py:90 core/xml.py:102
msgid "This is not a valid RDMO XML file."
msgstr "Dies ist keine valide RDMO-XML Datei."
@@ -1311,7 +1313,7 @@ msgstr "Schlüssel"
#: domain/models.py:26
msgid "The internal identifier of this attribute."
-msgstr "Der interne Bezeichner diese Attributs."
+msgstr "Der interne Bezeichner dieses Attributs."
#: domain/models.py:30
msgid "Path"
@@ -1319,11 +1321,11 @@ msgstr "Pfad"
#: domain/models.py:31
msgid "The path part of the URI of this attribute (auto-generated)."
-msgstr "Der Pfad-Teil der URI für dieses Attribut (automatisch erstellt)."
+msgstr "Der Pfad-Teil der URI dieses Attributs (automatisch erstellt)."
#: domain/models.py:36
msgid "Additional information about this attribute."
-msgstr "Zusätzliche Informationen über dieses Attribut."
+msgstr "Zusätzliche Informationen zum Attribut."
#: domain/models.py:41
msgid "Designates whether this attribute (and its descendants) can be changed."
@@ -1414,12 +1416,12 @@ msgstr "Import"
msgid "Import elements"
msgstr "Elemente importieren"
-#: management/viewsets.py:41 management/viewsets.py:77 projects/viewsets.py:370
-#: projects/viewsets.py:371 projects/viewsets.py:542
+#: management/viewsets.py:40 management/viewsets.py:76 projects/viewsets.py:379
+#: projects/viewsets.py:380 projects/viewsets.py:549
msgid "This field may not be blank."
msgstr "Dieses Feld darf nicht leer sein."
-#: management/viewsets.py:79
+#: management/viewsets.py:78
msgid "This is not a valid RDMO import JSON."
msgstr "Dies ist keine valide RDMO-JSON-Import."
@@ -1451,14 +1453,14 @@ msgstr "Der Pfad für die URI dieses Optionenset."
#: options/models.py:35
msgid "Additional internal information about this option set."
-msgstr "Zusätzliche interne Informationen über dieses Optionenset."
+msgstr "Zusätzliche interne Informationen zum Optionenset."
#: options/models.py:40
msgid "Designates whether this option set (and its options) can be changed."
msgstr ""
"Gibt an, ob dieser Optionssatz (und seine Optionen) geändert werden kann."
-#: options/models.py:44 questions/models/catalog.py:61 tasks/models.py:45
+#: options/models.py:44 questions/models/catalog.py:62 tasks/models.py:45
#: views/models.py:47
msgid "Order"
msgstr "Reihenfolge"
@@ -1522,11 +1524,11 @@ msgstr "Der Pfad für die URI dieser Option."
#: options/models.py:167
msgid "Additional internal information about this option."
-msgstr "Zusätzliche interne Informationen über diese Option."
+msgstr "Zusätzliche interne Informationen zur Option."
#: options/models.py:172
msgid "Designates whether this option can be changed."
-msgstr "Bezeichnet, ob diese Option geändert werden kann."
+msgstr "Legt fest, ob diese Option geändert werden kann."
#: options/models.py:177
msgid "The sites that can edit this option (in a multi site setup)."
@@ -1581,7 +1583,7 @@ msgid ""
"The default text value for the additional input of this option (in the "
"primary language)."
msgstr ""
-"Die standardmäßige Text für die zusätzliche Eingabe dieser Option (erste "
+"Der standardmäßige Text für die zusätzliche Eingabe dieser Option (erste "
"Sprache)."
#: options/models.py:236 questions/models/question.py:127
@@ -1593,7 +1595,7 @@ msgid ""
"The default text value for the additional input of this option (in the "
"secondary language)."
msgstr ""
-"Die standardmäßige Text für die zusätzliche Eingabe dieser Option (zweite "
+"Der standardmäßige Text für die zusätzliche Eingabe dieser Option (zweite "
"Sprache)."
#: options/models.py:241 questions/models/question.py:132
@@ -1605,7 +1607,7 @@ msgid ""
"The default text value for the additional input of this option (in the "
"tertiary language)."
msgstr ""
-"Die standardmäßige Text für die zusätzliche Eingabe dieser Option (dritte "
+"Der standardmäßige Text für die zusätzliche Eingabe dieser Option (dritte "
"Sprache)."
#: options/models.py:246 questions/models/question.py:137
@@ -1617,7 +1619,7 @@ msgid ""
"The default text value for the additional input of this option (in the "
"quaternary language)."
msgstr ""
-"Die standardmäßige Text für die zusätzliche Eingabe dieser Option (vierte "
+"Der standardmäßige Text für die zusätzliche Eingabe dieser Option (vierte "
"Sprache)."
#: options/models.py:251 questions/models/question.py:142
@@ -1629,7 +1631,7 @@ msgid ""
"The default text value for the additional input of this option (in the "
"quinary language)."
msgstr ""
-"Die standardmäßige Text für die zusätzliche Eingabe dieser Option (fünfte "
+"Der standardmäßige Text für die zusätzliche Eingabe dieser Option (fünfte "
"Sprache)."
#: options/models.py:256
@@ -1765,7 +1767,7 @@ msgid "Reset overlays"
msgstr "Einblendungen zurücksetzen"
#: projects/admin.py:82 projects/models/visibility.py:20
-#: questions/models/catalog.py:71 tasks/models.py:56 views/models.py:58
+#: questions/models/catalog.py:72 tasks/models.py:56 views/models.py:58
msgid "Sites"
msgstr "Standorte"
@@ -1802,7 +1804,7 @@ msgid "Editing tasks is disabled."
msgstr "Das Auswählen von Aufgaben ist deaktiviert."
#: projects/forms.py:213 projects/forms.py:231
-#: projects/serializers/v1/__init__.py:111
+#: projects/serializers/v1/__init__.py:108
msgid "Editing views is disabled."
msgstr "Das Auswählen von Ansichten ist deaktiviert."
@@ -1826,7 +1828,7 @@ msgstr ""
"Als Site-Manager oder Admin können Sie Benutzer direkt hinzufügen, ohne sie "
"per E-Mail zu benachrichtigen, wenn Sie das folgende Kästchen aktivieren."
-#: projects/forms.py:304 projects/serializers/v1/__init__.py:214
+#: projects/forms.py:304 projects/serializers/v1/__init__.py:211
msgid "The user is already a member of the project."
msgstr "Der Benutzer ist bereits ein Mitglied dieses Projektes."
@@ -1892,21 +1894,21 @@ msgstr "Empfänger"
msgid "Enter recipients line by line"
msgstr "Empfänger Zeile für Zeile eingeben"
-#: projects/imports.py:242
+#: projects/imports.py:239
msgid "Import project from this URL"
msgstr "Projekt von dieser URL importieren"
-#: projects/mixins.py:79 projects/mixins.py:96 projects/mixins.py:111
-#: projects/mixins.py:134 projects/mixins.py:152 projects/mixins.py:167
-#: projects/mixins.py:202
+#: projects/mixins.py:80 projects/mixins.py:97 projects/mixins.py:112
+#: projects/mixins.py:135 projects/mixins.py:153 projects/mixins.py:168
+#: projects/mixins.py:203
msgid "Import error"
msgstr "Fehler beim Import"
-#: projects/mixins.py:80 projects/mixins.py:153 projects/mixins.py:203
+#: projects/mixins.py:81 projects/mixins.py:154 projects/mixins.py:204
msgid "There has been an error with your import."
msgstr "Bei Ihrem Import ist ein Fehler aufgetreten."
-#: projects/mixins.py:97
+#: projects/mixins.py:98
msgid ""
"There has been an error with your import. No uploaded or retrieved file "
"could be found."
@@ -1914,7 +1916,7 @@ msgstr ""
"Bei Ihrem Import ist ein Fehler aufgetreten. Es konnte keine hochgeladene "
"oder abgerufene Datei gefunden werden."
-#: projects/mixins.py:135
+#: projects/mixins.py:136
msgid "Files of this type cannot be imported."
msgstr "Dateien dieses Typs können nicht importiert werden."
@@ -2108,7 +2110,7 @@ msgstr "Issue-Ressource"
#: projects/models/issue.py:117
msgid "Issue resources"
-msgstr "Issue Ressource"
+msgstr "Issue-Ressourcen"
#: projects/models/membership.py:21
msgid "The project for this membership."
@@ -2132,7 +2134,7 @@ msgstr "Übergeordnetes Projekt"
#: projects/models/project.py:30
msgid "The parent project of this project."
-msgstr "Das übergeordnete Projekt zu diesem Projekt."
+msgstr "Das übergeordnete Projekt zum Projekt."
#: projects/models/project.py:35
msgid "The list of users for this project."
@@ -2173,7 +2175,7 @@ msgstr "Eine Beschreibung für dieses Projekt (optional)."
#: projects/models/project.py:54
#: projects/templates/projects/project_detail_header.html:24
#: projects/templates/projects/project_import.html:31
-#: questions/models/catalog.py:142
+#: questions/models/catalog.py:143
#: questions/templates/questions/export/catalog.html:3
msgid "Catalog"
msgstr "Katalog"
@@ -2206,7 +2208,7 @@ msgstr "Die Gesamtzahl der erwarteten Werte für den Fortschrittsbalken."
#: projects/models/project.py:74
msgid "Progress count"
-msgstr "Fortschritt Zahl"
+msgstr "Fortschrittszähler"
#: projects/models/project.py:75
msgid "The number of values for the progress bar."
@@ -2349,7 +2351,7 @@ msgstr ""
"Die Sites, für die das Projekt sichtbar ist (bei einer Einrichtung mit "
"mehreren Standorten)."
-#: projects/models/visibility.py:25 questions/models/catalog.py:81
+#: projects/models/visibility.py:25 questions/models/catalog.py:82
#: tasks/models.py:66 views/models.py:68
msgid "Group"
msgstr "Gruppe"
@@ -2431,28 +2433,28 @@ msgid "The secret for a webhook to close a task (optional)."
msgstr ""
"Das Geheimnis für einen Webhook zum Schließen einer Aufgabe (optional)."
-#: projects/serializers/v1/__init__.py:219
+#: projects/serializers/v1/__init__.py:216
msgid "A user with that e-mail is already a member of the project."
msgstr ""
"Ein Benutzer mit dieser E-Mail-Adresse ist bereits Mitglied des Projekts."
-#: projects/serializers/v1/__init__.py:227
+#: projects/serializers/v1/__init__.py:224
msgid "Either user or e-mail needs to be provided."
msgstr "Es muss entweder ein Benutzer oder eine E-Mail angegeben werden."
-#: projects/serializers/v1/__init__.py:229
+#: projects/serializers/v1/__init__.py:226
msgid "User and e-mail are mutually exclusive."
msgstr "Benutzer und E-Mail schließen einander aus."
-#: projects/serializers/v1/page.py:121
+#: projects/serializers/v1/page.py:120
msgid "entry"
msgstr "Eintrag"
-#: projects/serializers/v1/page.py:160
+#: projects/serializers/v1/page.py:159
msgid "block"
msgstr "Block"
-#: projects/serializers/v1/page.py:223
+#: projects/serializers/v1/page.py:222
msgid "set"
msgstr "Set"
@@ -2467,18 +2469,18 @@ msgid ""
"I have a question regarding the project \"%(project_title)s\" on the page "
"\"%(page_title)s\":"
msgstr ""
-"Ich habe eine Frage zu dem Projekt „%(project_title)s“ auf der Seite "
+"Ich habe eine Frage zum Projekt „%(project_title)s“ auf der Seite "
"„%(page_title)s“:"
#: projects/templates/projects/email/project_contact_message.txt:10
#, python-format
msgid "I have a question regarding the project \"%(project_title)s\":"
-msgstr "Ich habe eine Frage zu dem Projekt „%(project_title)s“:"
+msgstr "Ich habe eine Frage zum Projekt „%(project_title)s“:"
#: projects/templates/projects/email/project_contact_message.txt:18
#, python-format
msgid "In particular, about the question: %(question_text)s"
-msgstr "Insbesondere über die Frage: %(question_text)s"
+msgstr "Insbesondere zur Frage: %(question_text)s"
#: projects/templates/projects/email/project_contact_message.txt:28
msgid "Answer:"
@@ -2901,9 +2903,9 @@ msgstr "von"
#: projects/templates/projects/project_detail_memberships_help.html:4
msgid ""
"Here you can see who can access the project and invite additional members. "
-"You can use the user roles to manage which rights the benefits have. Unless "
-"you are the last owner, you can leave the project with the button next to "
-"your name."
+"You can use the user roles to manage which rights the users have. Unless you "
+"are the last owner, you can leave the project with the button next to your "
+"name."
msgstr ""
"Hier können Sie sehen, wer auf das Projekt zugreifen kann und weitere "
"Mitglieder einladen. Über die Benutzerrollen können Sie verwalten, welche "
@@ -3213,12 +3215,12 @@ msgid ""
"can edit or delete tabs using the buttons in the top right corner."
msgstr ""
"Bitte füllen Sie das Formular für jeden Tab aus. Die verschiedenen Tabs "
-"werden eventuell in späteren Fragen wieder verwendet. Sie können einen neuen "
+"werden eventuell in späteren Fragen wieder verwendet. Sie können eine neuen "
"Tab mit dem grünen Button hinzufügen. Bereits angelegte Tabs können mit den "
"Buttons oben rechts bearbeitet oder wieder entfernt werden."
#: projects/templates/projects/project_view.html:90
-#: projects/views/project.py:145
+#: projects/views/project.py:137
msgid "Error"
msgstr "Fehler"
@@ -3297,39 +3299,39 @@ msgstr "Sie haben die Quota für dieses Projekt erreicht."
msgid "Enter a valid datetime."
msgstr "Geben Sie ein gültiges Datum ein."
-#: projects/views/project.py:125
+#: projects/views/project.py:117
msgid "Sorry, your invitation has been expired."
msgstr "Entschuldigung, Ihre Einladung ist abgelaufen."
-#: projects/views/project.py:128
+#: projects/views/project.py:120
#, python-format
msgid "Sorry, but this invitation is for the user \"%s\"."
msgstr "Entschuldigung, aber diese Einladung ist für den Benutzer \"%s\"."
-#: projects/views/project.py:142
+#: projects/views/project.py:134
msgid "Sorry, the invitation link is not valid."
msgstr "Der Einladungslink ist leider nicht gültig."
-#: projects/views/project_update.py:81 projects/views/project_update.py:86
-#: projects/views/project_update.py:91
+#: projects/views/project_update.py:79 projects/views/project_update.py:84
+#: projects/views/project_update.py:89
msgid "Update visibility"
msgstr "Sichtbarkeit bearbeiten"
-#: projects/views/project_update.py:82 projects/views/project_update.py:87
-#: projects/views/project_update.py:89 projects/views/project_update.py:92
-#: projects/views/project_update.py:94
+#: projects/views/project_update.py:80 projects/views/project_update.py:85
+#: projects/views/project_update.py:87 projects/views/project_update.py:90
+#: projects/views/project_update.py:92
msgid "Remove visibility"
msgstr "Sichtbarkeit entfernen"
-#: projects/views/project_update.py:84
+#: projects/views/project_update.py:82
msgid "Make visible for this site"
msgstr "Für diese Seite sichtbar machen"
-#: projects/views/project_update.py:97
+#: projects/views/project_update.py:95
msgid "Make visible"
msgstr "Sichtbar machen"
-#: projects/viewsets.py:659
+#: projects/viewsets.py:666
msgid "You reached the file quota for this project."
msgstr "Sie haben die Quota für dieses Projekt erreicht."
@@ -3365,135 +3367,135 @@ msgstr "Datumspicker"
msgid "File upload"
msgstr "Dateien-Upload"
-#: questions/models/catalog.py:37
+#: questions/models/catalog.py:38
msgid "The Uniform Resource Identifier of this catalog (auto-generated)."
msgstr ""
"Der Uniform Resource Identifier dieses Katalogs (automatisch erstellt)."
-#: questions/models/catalog.py:42
+#: questions/models/catalog.py:43
msgid "The prefix for the URI of this catalog."
msgstr "Das Präfix für die URI dieses Katalogs."
-#: questions/models/catalog.py:47
+#: questions/models/catalog.py:48
msgid "The path for the URI of this catalog."
msgstr "Der Pfad für die URI dieses Katalogs."
-#: questions/models/catalog.py:52
+#: questions/models/catalog.py:53
msgid "Additional internal information about this catalog."
-msgstr "Zusätzliche interne Informationen über diesen Katalog."
+msgstr "Zusätzliche interne Informationen zum Katalog."
-#: questions/models/catalog.py:57
+#: questions/models/catalog.py:58
msgid ""
"Designates whether this catalog (and its sections, question sets and "
"questions) can be changed."
msgstr ""
-"Bezeichnet, ob dieser Katalog (und seine Abschnitte, Fragensets und Fragen) "
+"Legt fest, ob dieser Katalog (und seine Abschnitte, Fragensets und Fragen) "
"geändert werden kann."
-#: questions/models/catalog.py:62
+#: questions/models/catalog.py:63
msgid "The position of this catalog in lists."
msgstr "Die Position von diesem Katalog in Listen."
-#: questions/models/catalog.py:66 questions/models/section.py:121
+#: questions/models/catalog.py:67 questions/models/section.py:121
msgid "Sections"
msgstr "Abschnitte"
-#: questions/models/catalog.py:67
+#: questions/models/catalog.py:68
msgid "The sections of this catalog."
msgstr "Der Abschnitte für diesen Katalog."
-#: questions/models/catalog.py:72
+#: questions/models/catalog.py:73
msgid "The sites this catalog belongs to (in a multi site setup)."
msgstr "Die Seiten zu denen dieser Katalog gehört."
-#: questions/models/catalog.py:77
+#: questions/models/catalog.py:78
msgid "The sites that can edit this catalog (in a multi site setup)."
msgstr ""
"Die Seiten, die diesen Katalog bearbeiten können (im Multi-Site-Setup)."
-#: questions/models/catalog.py:82
+#: questions/models/catalog.py:83
msgid "The groups for which this catalog is active."
msgstr "Die Gruppen für die dieser Katalog aktiv ist."
-#: questions/models/catalog.py:86 questions/models/page.py:86
+#: questions/models/catalog.py:87 questions/models/page.py:86
#: questions/models/questionset.py:81 questions/models/section.py:69
#: tasks/models.py:71 views/models.py:78
msgid "Title (primary)"
msgstr "Titel (erste Sprache)"
-#: questions/models/catalog.py:87
+#: questions/models/catalog.py:88
msgid "The title for this catalog (in the primary language)."
msgstr "Der Titel für diesen Katalog (erste Sprache)."
-#: questions/models/catalog.py:91 questions/models/page.py:91
+#: questions/models/catalog.py:92 questions/models/page.py:91
#: questions/models/questionset.py:86 questions/models/section.py:74
#: tasks/models.py:76 views/models.py:83
msgid "Title (secondary)"
msgstr "Titel (zweite Sprache)"
-#: questions/models/catalog.py:92
+#: questions/models/catalog.py:93
msgid "The title for this catalog (in the secondary language)."
msgstr "Der Titel für diesen Katalog (zweite Sprache)."
-#: questions/models/catalog.py:96 questions/models/page.py:96
+#: questions/models/catalog.py:97 questions/models/page.py:96
#: questions/models/questionset.py:91 questions/models/section.py:79
#: tasks/models.py:81 views/models.py:88
msgid "Title (tertiary)"
msgstr "Titel (dritte Sprache)"
-#: questions/models/catalog.py:97
+#: questions/models/catalog.py:98
msgid "The title for this catalog (in the tertiary language)."
msgstr "Der Titel für diesen Katalog (dritte Sprache)."
-#: questions/models/catalog.py:101 questions/models/page.py:101
+#: questions/models/catalog.py:102 questions/models/page.py:101
#: questions/models/questionset.py:96 questions/models/section.py:84
#: tasks/models.py:86 views/models.py:93
msgid "Title (quaternary)"
msgstr "Titel (vierte Sprache)"
-#: questions/models/catalog.py:102
+#: questions/models/catalog.py:103
msgid "The title for this catalog (in the quaternary language)."
msgstr "Der Titel für diesen Katalog (vierte Sprache)."
-#: questions/models/catalog.py:106 questions/models/page.py:106
+#: questions/models/catalog.py:107 questions/models/page.py:106
#: questions/models/questionset.py:101 questions/models/section.py:89
#: tasks/models.py:91 views/models.py:98
msgid "Title (quinary)"
msgstr "Titel (fünfte Sprache)"
-#: questions/models/catalog.py:107
+#: questions/models/catalog.py:108
msgid "The title for this catalog (in the quinary language)."
msgstr "Der Titel für diesen Katalog (fünfte Sprache)."
-#: questions/models/catalog.py:112
+#: questions/models/catalog.py:113
msgid "The help text for this catalog (in the primary language)."
msgstr "Der Hilfetext für diesen Katalog (erste Sprache)."
-#: questions/models/catalog.py:117
+#: questions/models/catalog.py:118
msgid "The help text for this catalog (in the secondary language)."
msgstr "Der Hilfetext für diesen Katalog (zweite Sprache)."
-#: questions/models/catalog.py:122
+#: questions/models/catalog.py:123
msgid "The help text for this catalog (in the tertiary language)."
msgstr "Der Hilfetext für diesen Katalog (dritte Sprache)."
-#: questions/models/catalog.py:127
+#: questions/models/catalog.py:128
msgid "The help text for this catalog (in the quaternary language)."
msgstr "Der Hilfetext für diesen Katalog (vierte Sprache)."
-#: questions/models/catalog.py:132
+#: questions/models/catalog.py:133
msgid "The help text for this catalog (in the quinary language)."
msgstr "Der Hilfetext für diesen Katalog (fünfte Sprache)."
-#: questions/models/catalog.py:136 tasks/models.py:147 views/models.py:128
+#: questions/models/catalog.py:137 tasks/models.py:147 views/models.py:128
msgid "Available"
msgstr "Verfügbar"
-#: questions/models/catalog.py:137
+#: questions/models/catalog.py:138
msgid "Designates whether this catalog is generally available for projects."
msgstr "Legt fest, ob dieser Katalog für Projekte verfügbar ist."
-#: questions/models/catalog.py:143 tasks/models.py:50 views/models.py:52
+#: questions/models/catalog.py:144 tasks/models.py:50 views/models.py:52
msgid "Catalogs"
msgstr "Kataloge"
@@ -3511,14 +3513,14 @@ msgstr "Der Pfad für die URI dieser Aufgabe."
#: questions/models/page.py:51
msgid "Additional internal information about this page."
-msgstr "Zusätzliche interne Informationen über diese Seite."
+msgstr "Zusätzliche interne Informationen zu dieser Seite."
#: questions/models/page.py:56
msgid ""
"Designates whether this page (and its questionsets and questions) can be "
"changed."
msgstr ""
-"Bezeichnet, ob diese Seite (und seine Fragensets und Fragen) geändert werden "
+"Legt fest, ob diese Seite (und seine Fragensets und Fragen) geändert werden "
"kann."
#: questions/models/page.py:62
@@ -3708,11 +3710,11 @@ msgstr "Der Pfad für die URI dieser Frage."
#: questions/models/question.py:43
msgid "Additional internal information about this question."
-msgstr "Zusätzliche interne Informationen über diesen Abschnitt."
+msgstr "Zusätzliche interne Informationen zu dieser Frage."
#: questions/models/question.py:48
msgid "Designates whether this question can be changed."
-msgstr "Bezeichnet, ob diese Frage geändert werden kann."
+msgstr "Legt fest, ob diese Frage geändert werden kann."
#: questions/models/question.py:53
msgid "The attribute this question belongs to."
@@ -3913,7 +3915,7 @@ msgstr "Der Pfad für die URI dieses Fragensets."
#: questions/models/questionset.py:46
msgid "Additional internal information about this question set."
-msgstr "Zusätzliche interne Informationen über diese Fragenset."
+msgstr "Zusätzliche interne Informationen zum Fragenset."
#: questions/models/questionset.py:51
msgid ""
@@ -4018,27 +4020,27 @@ msgstr ""
#: questions/models/section.py:40
msgid "The prefix for the URI of this section."
-msgstr "Das Präfix für die URI die dieses Abschnitts."
+msgstr "Das Präfix für die URI dieses Abschnitts."
#: questions/models/section.py:45
msgid "The path for the URI of this section."
-msgstr "Der Pfad für die URI die dieses Abschnitts."
+msgstr "Der Pfad für die URI dieses Abschnitts."
#: questions/models/section.py:50
msgid "Additional internal information about this section."
-msgstr "Zusätzliche interne Informationen über diesen Abschnitt."
+msgstr "Zusätzliche interne Informationen zum Abschnitt."
#: questions/models/section.py:55
msgid ""
"Designates whether this section (and its question sets and questions) can be "
"changed."
msgstr ""
-"Bezeichnet, ob dieser Abschnitt (und seine Fragensets und Fragen) geändert "
+"Legt fest, ob dieser Abschnitt (und seine Fragensets und Fragen) geändert "
"werden kann."
#: questions/models/section.py:60
msgid "The pages of this section."
-msgstr "Der Seiten für diesen Abschnitt."
+msgstr "Die Seiten dieses Abschnitts."
#: questions/models/section.py:65
msgid "The sites that can edit this section (in a multi site setup)."
@@ -4199,11 +4201,11 @@ msgstr "Der Pfad für die URI dieser Aufgabe."
#: tasks/models.py:36
msgid "Additional internal information about this task."
-msgstr "Zusätzliche interne Informationen über diese Aufgabe."
+msgstr "Zusätzliche interne Informationen zu dieser Aufgabe."
#: tasks/models.py:41
msgid "Designates whether this task can be changed."
-msgstr "Bezeichnet, ob diese Aufgabe geändert werden kann."
+msgstr "Legt fest, ob diese Aufgabe geändert werden kann."
#: tasks/models.py:46
msgid "The position of this task in lists."
@@ -4329,11 +4331,11 @@ msgstr "Der Pfad für die URI dieser Ansicht."
#: views/models.py:38
msgid "Additional internal information about this view."
-msgstr "Zusätzliche interne Informationen über diese Ansicht."
+msgstr "Zusätzliche interne Informationen zu dieser Ansicht."
#: views/models.py:43
msgid "Designates whether this view can be changed."
-msgstr "Bezeichnet, ob diese Ansicht geändert werden kann."
+msgstr "Gibt an, ob diese Ansicht geändert werden kann."
#: views/models.py:48
msgid "The position of this view in lists."
@@ -4425,359 +4427,3 @@ msgstr "Datei"
#: views/templatetags/view_tags.py:210
msgid "Set"
msgstr "Set"
-
-#~ msgid "Session Login"
-#~ msgstr "Session Login"
-
-#~ msgid "You are logged in as: "
-#~ msgstr "Sie sind eingeloggt als: "
-
-#~ msgid "Viewing as an anonymous user"
-#~ msgstr "Ansicht als anonymer Benutzer"
-
-#~ msgid "Powered by "
-#~ msgstr "Powered by "
-
-#~ msgid "Autocomplete"
-#~ msgstr "Autocomplete"
-
-#~ msgid "Free autocomplete"
-#~ msgstr "Freies Autocomplete"
-
-#~ msgid "Proceed"
-#~ msgstr "Fortfahren"
-
-#~ msgid "Skip"
-#~ msgstr "Überspringen"
-
-#~ msgid "Save"
-#~ msgstr "Speichern"
-
-#~ msgid "Save and proceed"
-#~ msgstr "Sichern und fortfahren"
-
-#~ msgid "Complete questionnaire"
-#~ msgstr "Vollständiger Fragebogen"
-
-#~ msgid "Save and complete questionnaire"
-#~ msgstr "Speichern und Fragebogen abschließen"
-
-#~ msgid "This is a default answer that can be customized."
-#~ msgstr "Dies ist eine Standardantwort, die angepasst werden kann."
-
-#~ msgid "Erase input"
-#~ msgstr "Eingabe löschen"
-
-#~ msgid "Please type and select."
-#~ msgstr "Bitte eintippen und auswählen."
-
-#~ msgid "Currently:"
-#~ msgstr "Aktuell:"
-
-#~ msgid "Update:"
-#~ msgstr "Zuletzt geändert:"
-
-#~ msgid "No options are available."
-#~ msgstr "Keine Optionen vorhanden."
-
-#~ msgid "Please select"
-#~ msgstr "Bitte auswählen"
-
-#~ msgid "You are about to permanently delete this tab."
-#~ msgstr "Sie sind dabei diesen Tab permanent zu entfernen."
-
-#~ msgid ""
-#~ "This includes all given answers for this tab on all pages, not just this "
-#~ "one."
-#~ msgstr ""
-#~ "Dies umfasst alle gegebenen Antworten für diesen Tab auf allen Seiten, "
-#~ "nicht nur dieser."
-
-#~ msgid "Delete"
-#~ msgstr "Entfernen"
-
-#~ msgid "Please give the tab a meaningful name."
-#~ msgstr "Bitte geben Sie dem Tab einen aussagekräftigen Namen."
-
-#, python-format
-#~ msgid "(%(section_count)s of %(section_total)s)"
-#~ msgstr "(%(section_count)s von %(section_total)s)"
-
-#, python-format
-#~ msgid "(%(page_count)s of %(page_total)s)"
-#~ msgstr "(%(page_count)s von %(page_total)s)"
-
-#~ msgid "Using the navigation will save your input."
-#~ msgstr "Wenn Sie die Navigation verwenden, wird Ihre Eingabe gespeichert."
-
-#~ msgid ""
-#~ "Please note that using the navigation will discard any unsaved input."
-#~ msgstr ""
-#~ "Bitte beachten Sie, dass bei der Verwendung der Navigation alle nicht "
-#~ "gespeicherten Eingaben verworfen werden."
-
-#~ msgid "Reload page"
-#~ msgstr "Seite neu laden"
-
-#~ msgid "Back to my projects"
-#~ msgstr "Zurück zu meinen Projekten"
-
-#~ msgid "(optional)"
-#~ msgstr "(optional)"
-
-#~ msgid "Edit tab"
-#~ msgstr "Tab bearbeiten"
-
-#~ msgid "Remove tab"
-#~ msgstr "Tab entfernen"
-
-#~ msgid "Remove block"
-#~ msgstr "Block entfernen"
-
-#~ msgid ""
-#~ "An error occurred while saving the answer. Please contact support if this "
-#~ "problem persists."
-#~ msgstr ""
-#~ "Beim Speichern der Fragen ist ein Fehler aufgetreten. Bitte wenden Sie "
-#~ "sich an den Support, wenn dieses Problem weiterhin besteht."
-
-#~ msgid "Overview"
-#~ msgstr "Übersicht"
-
-#~ msgid "Progress"
-#~ msgstr "Fortschritt"
-
-#~ msgid ""
-#~ "This field could not be saved, since somebody else did so while you were "
-#~ "editing. You will need to reload the page to make changes, but your input "
-#~ "will be overwritten."
-#~ msgstr ""
-#~ "Dieses Feld konnte nicht gespeichert werden, da jemand anderes dies getan "
-#~ "hat, während Sie es bearbeitet haben. Sie müssen die Seite neu laden, um "
-#~ "Änderungen vorzunehmen, aber Ihre Eingaben werden dabei überschrieben."
-
-#~ msgid ""
-#~ "This field could not be saved, since somebody else removed it while you "
-#~ "were editing. You will need to reload the page to proceed, but your input "
-#~ "will be lost."
-#~ msgstr ""
-#~ "Dieses Feld konnte nicht gespeichert werden, da es während Ihrer "
-#~ "Bearbeitung von jemand anderem entfernt wurde. Sie müssen die Seite neu "
-#~ "laden, um fortzufahren, aber Ihre Eingaben gehen dabei verloren."
-
-#, python-format
-#~ msgid "View all projects on %(site)s"
-#~ msgstr "Alle Projekte auf %(site)s anzeigen"
-
-#~ msgid "Filter projects"
-#~ msgstr "Projekte filtern"
-
-#~ msgid "Search project title"
-#~ msgstr "Suche nach Projekttitel"
-
-#, python-format
-#~ msgid ""
-#~ "%(number_of_filtered_projects)s of %(number_of_projects)s projects shown"
-#~ msgstr ""
-#~ "%(number_of_filtered_projects)s von %(number_of_projects)s Projekte "
-#~ "angezeigt"
-
-#~ msgid "Import existing project"
-#~ msgstr "Vorhandenes Projekt importieren"
-
-#~ msgid "Pending invitations"
-#~ msgstr "Ausstehende Einladungen"
-
-#~ msgid "Click on one of the links to join the projects."
-#~ msgstr "Klicken Sie auf einen der Links, um an den Projekten teilzunehmen."
-
-#~ msgid "Last changed"
-#~ msgstr "Letzte Änderung"
-
-#~ msgid "All catalogs"
-#~ msgstr "Alle Kataloge"
-
-#, python-format
-#~ msgid "All projects on %(site)s"
-#~ msgstr "Alle Projekte auf %(site)s"
-
-#~ msgid "GitHub repository"
-#~ msgstr "GitHub-Repository"
-
-#~ msgid "Please use the form username/repository or organization/repository."
-#~ msgstr ""
-#~ "Bitte verwenden Sie das Format Benutzername/Repository oder Organisation/"
-#~ "Repository."
-
-#~ msgid "File path"
-#~ msgstr "Datei-Pfad"
-
-#~ msgid "Branch, tag, or commit"
-#~ msgstr "Branch, Tag, oder Commit"
-
-#~ msgid "GitLab repository"
-#~ msgstr "GitLab-Repository"
-
-#~ msgid "Add GitHub integration"
-#~ msgstr "GitHub-Integration hinzufügen"
-
-#~ msgid "The GitHub repository to send issues to."
-#~ msgstr "Das GitHub-Repository an das Aufgaben versendet werden."
-
-#~ msgid "Add GitLab integration"
-#~ msgstr "GitLab-Integration hinzufügen"
-
-#~ msgid "Send to GitLab"
-#~ msgstr "An GitLab senden"
-
-#, python-brace-format
-#~ msgid ""
-#~ "This integration allow the creation of issues in arbitrary repositories "
-#~ "on {self.gitlab_url}. The upload of attachments is not supported by "
-#~ "GitLab."
-#~ msgstr ""
-#~ "Diese Integration ermöglicht die Erstellung von Aufgaben auf "
-#~ "{self.gitlab_url}. Das Hochladen von Anhängen wird von GitLab nicht "
-#~ "unterstützt."
-
-#~ msgid "The secret for a GitLab webhook to close a task."
-#~ msgstr "Das Geheimnis für einen GitLab-Webhook zum Schließen einer Aufgabe."
-
-#~ msgid "blocks"
-#~ msgstr "Blöcke"
-
-#~ msgid "sets"
-#~ msgstr "Sets"
-
-#~ msgid ""
-#~ "Entries with might be skipped based on your input."
-#~ msgstr ""
-#~ "Einträge mit können aufgrund Ihrer Eingabe übersprungen werden."
-
-#~ msgid "Plural name (primary)"
-#~ msgstr "Name (Plural, erste Sprache)"
-
-#~ msgid "The plural name displayed for this page in the primary language."
-#~ msgstr ""
-#~ "Der Name (Plural), der für diese Seite angezeigt wird (erste Sprache)."
-
-#~ msgid "Plural name (secondary)"
-#~ msgstr "Name (Plural, zweite Sprache)"
-
-#~ msgid "The plural name displayed for this page in the secondary language."
-#~ msgstr ""
-#~ "Der Name (Plural), der für diese Seite angezeigt wird (zweite Sprache)."
-
-#~ msgid "Plural name (tertiary)"
-#~ msgstr "Name (Plural, dritte Sprache)"
-
-#~ msgid "The plural name displayed for this page in the tertiary language."
-#~ msgstr ""
-#~ "Der Name (Plural), der für diese Seite angezeigt wird (dritte Sprache)."
-
-#~ msgid "Plural name (quaternary)"
-#~ msgstr "Name (Plural, vierte Sprache)"
-
-#~ msgid "The plural name displayed for this page in the quaternary language."
-#~ msgstr ""
-#~ "Der Name (Plural), der für diese Seite angezeigt wird (vierte Sprache)."
-
-#~ msgid "Plural name (quinary)"
-#~ msgstr "Name (Plural, fünfte Sprache)"
-
-#~ msgid "The plural name displayed for this page in the quinary language."
-#~ msgstr ""
-#~ "Der Name (Plural), der für diese Seite angezeigt wird (fünfte Sprache)."
-
-#~ msgid "The plural name displayed for this question in the primary language."
-#~ msgstr ""
-#~ "Der Name (Plural), der für diese Frage angezeigt wird (erste Sprache)."
-
-#~ msgid ""
-#~ "The plural name displayed for this question in the secondary language."
-#~ msgstr ""
-#~ "Der Name (Plural), der für diese Frage angezeigt wird (zweite Sprache)."
-
-#~ msgid ""
-#~ "The plural name displayed for this question in the tertiary language."
-#~ msgstr ""
-#~ "Der Name (Plural), der für diese Frage angezeigt wird (dritte Sprache)."
-
-#~ msgid ""
-#~ "The plural name displayed for this question in the quaternary language."
-#~ msgstr ""
-#~ "Der Name (Plural), der für diese Frage angezeigt wird (vierte Sprache)."
-
-#~ msgid "The plural name displayed for this question in the quinary language."
-#~ msgstr ""
-#~ "Der Name (Plural), der für diese Frage angezeigt wird (fünfte Sprache)."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the primary language."
-#~ msgstr ""
-#~ "Der Name (Plural), der für dieses Fragenset angezeigt wird (erste "
-#~ "Sprache)."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the secondary language."
-#~ msgstr ""
-#~ "Der Name (Plural), der für dieses Fragenset angezeigt wird (zweite "
-#~ "Sprache)."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the tertiary language."
-#~ msgstr ""
-#~ "Der Name (Plural), der für dieses Fragenset angezeigt wird (dritte "
-#~ "Sprache)."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the quaternary "
-#~ "language."
-#~ msgstr ""
-#~ "Der Name (Plural), der für dieses Fragenset angezeigt wird (vierte "
-#~ "Sprache)."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the quinary language."
-#~ msgstr ""
-#~ "Der Name (Plural), der für dieses Fragenset angezeigt wird (fünfte "
-#~ "Sprache)."
-
-#~ msgid "entries"
-#~ msgstr "Einträge"
-
-#~ msgid "Verbose name plural"
-#~ msgstr "Anzeigename, plural"
-
-#, fuzzy
-#~| msgid "Delete"
-#~ msgid "Delete tab"
-#~ msgstr "Entfernen"
-
-#~ msgid "item"
-#~ msgstr "Eintrag"
-
-#~ msgid "items"
-#~ msgstr "Einträge"
-
-#, python-format
-#~ msgid "Add %(name)s"
-#~ msgstr "%(name)s hinzufügen"
-
-#, python-format
-#~ msgid ""
-#~ "You are about to permanently delete the %(name)s %(object)s"
-#~ "strong>."
-#~ msgstr ""
-#~ "Sie sind dabei den %(name)s %(object)s permanent zu "
-#~ "entfernen."
-
-#, python-format
-#~ msgid "Update %(name)s"
-#~ msgstr "%(name)s bearbeiten"
-
-#, python-format
-#~ msgid "Remove %(name)s"
-#~ msgstr "%(name)s entfernen"
diff --git a/rdmo/locale/de/LC_MESSAGES/djangojs.mo b/rdmo/locale/de/LC_MESSAGES/djangojs.mo
index 3d4a3cd24c..4bf5e4600a 100644
Binary files a/rdmo/locale/de/LC_MESSAGES/djangojs.mo and b/rdmo/locale/de/LC_MESSAGES/djangojs.mo differ
diff --git a/rdmo/locale/de/LC_MESSAGES/djangojs.po b/rdmo/locale/de/LC_MESSAGES/djangojs.po
index b4a82e0866..1e153d862f 100644
--- a/rdmo/locale/de/LC_MESSAGES/djangojs.po
+++ b/rdmo/locale/de/LC_MESSAGES/djangojs.po
@@ -2,51 +2,60 @@ msgid ""
msgstr ""
"Project-Id-Version: RDMO\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-07-04 11:19+0000\n"
-"PO-Revision-Date: 2025-07-04 13:33+0200\n"
-"Last-Translator: Jochen Klar \n"
+"POT-Creation-Date: 2025-12-12 13:02+0100\n"
+"PO-Revision-Date: 2025-12-09 07:12+0100\n"
+"Last-Translator: Giacomo Lanza \n"
"Language-Team: RDMO \n"
"Language: de\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.6\n"
+"X-Generator: Poedit 3.8\n"
#: core/assets/js/components/Modal.js:20
#: management/assets/js/components/common/Modals.js:16
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Close"
msgstr "Schließen"
#: core/assets/js/components/Modal.js:26
#: management/assets/js/components/common/Buttons.js:19
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Save"
msgstr "Speichern"
#: core/assets/js/components/SearchField.js:35
#: core/assets/js/components/SearchField.js:43
#: projects/assets/js/projects/utils/translations.js:15
+#: projects/static/projects/js/projects.js:2
msgid "Search"
msgstr "Suchen"
#: core/assets/js/components/SearchField.js:39
#: management/assets/js/components/common/Filter.js:12
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Reset"
msgstr "Zurücksetzen"
#: core/assets/js/components/UploadDropZone.js:17
+#: projects/static/projects/js/projects.js:2
#, javascript-format
msgid "%s has unsupported file type"
msgstr "%s hat einen nicht unterstützten Dateityp"
#: core/assets/js/components/UploadDropZone.js:28
+#: projects/static/projects/js/projects.js:2
msgid "Drop the file here ..."
msgstr "Legen Sie die Datei hier ab ..."
#: core/assets/js/components/UploadDropZone.js:32
+#: projects/static/projects/js/projects.js:2
msgid "Drag and drop a file here or click to select a file"
msgstr "Datei hierher ziehen oder klicken um Datei auszuwählen"
@@ -56,12 +65,14 @@ msgstr "Datei hierher ziehen oder klicken um Datei auszuwählen"
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageButtons.js:11
#: projects/assets/js/interview/components/sidebar/Buttons.js:22
+#: projects/static/projects/js/interview.js:2
msgid "Back"
msgstr "Zurück"
#: management/assets/js/components/common/Buttons.js:13
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageHead.js:166
+#: projects/static/projects/js/interview.js:2
msgid "Create"
msgstr "Erstellen"
@@ -74,6 +85,7 @@ msgstr "Erstellen und weiter bearbeiten"
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageHead.js:176
#: projects/assets/js/interview/components/main/questionset/QuestionSetCopySet.js:31
+#: projects/static/projects/js/interview.js:2
msgid "Copy"
msgstr "Kopieren"
@@ -97,6 +109,7 @@ msgstr "Neu"
#: management/assets/js/components/common/Modals.js:19
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:8
+#: projects/static/projects/js/interview.js:2
msgid "Delete"
msgstr "Entfernen"
@@ -211,6 +224,7 @@ msgstr "Dieses Attribut ist schreibgeschützt"
#: management/assets/js/components/element/Attribute.js:44
#: management/assets/js/constants/elements.js:49
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Attribute"
msgstr "Attribut"
@@ -289,7 +303,8 @@ msgstr "Dieser Katalog ist schreibgeschützt"
#: management/assets/js/components/element/Catalog.js:58
#: management/assets/js/constants/elements.js:44
#: management/static/management/js/management.js:2
-#: projects/assets/js/interview/components/sidebar/Overview.js:30
+#: projects/assets/js/interview/components/sidebar/Overview.js:35
+#: projects/static/projects/js/interview.js:2
msgid "Catalog"
msgstr "Katalog"
@@ -308,6 +323,7 @@ msgstr "Diese Bedingung ist schreibgeschützt"
#: management/assets/js/components/element/Condition.js:37
#: management/assets/js/constants/elements.js:52
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Condition"
msgstr "Bedingung"
@@ -384,6 +400,7 @@ msgstr "Die Option ist schreibgeschützt"
#: management/assets/js/components/element/Option.js:37
#: management/assets/js/constants/elements.js:51
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Option"
msgstr "Option"
@@ -412,6 +429,7 @@ msgstr "Dieses Optionenset ist schreibgeschützt"
#: management/assets/js/components/element/OptionSet.js:47
#: management/assets/js/constants/elements.js:50
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Option set"
msgstr "Optionenset"
@@ -500,6 +518,7 @@ msgstr "Diese Seite ist schreibgeschützt"
#: management/assets/js/components/element/Page.js:60
#: management/assets/js/constants/elements.js:46
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Page"
msgstr "Seite"
@@ -538,6 +557,7 @@ msgstr "Diese Frage ist schreibgschützt"
#: management/assets/js/components/element/Question.js:48
#: management/assets/js/constants/elements.js:48
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Question"
msgstr "Frage"
@@ -601,6 +621,7 @@ msgstr "Bereich"
#: management/assets/js/components/edit/EditQuestion.js:179
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/question/QuestionDefault.js:9
+#: projects/static/projects/js/interview.js:2
msgid "Default"
msgstr "Standardantwort"
@@ -619,6 +640,7 @@ msgstr "Dieses Fragenset ist schreibgeschützt"
#: management/assets/js/components/element/QuestionSet.js:59
#: management/assets/js/constants/elements.js:47
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Question set"
msgstr "Fragenset"
@@ -634,7 +656,7 @@ msgid ""
"This question set will be added to the page %s."
msgstr ""
-"Dieser Fragenset wird der Seite %s "
+"Dieses Fragenset wird der Seite %s "
"hinzugefügt."
#: management/assets/js/components/edit/EditQuestionSet.js:103
@@ -644,8 +666,8 @@ msgid ""
"This question set will be added to the question set %s."
msgstr ""
-"Dieser Fragensatz wird dem Fragenset %s"
-"code> hinzugefügt."
+"Dieses Fragenset wird dem Fragenset %s "
+"hinzugefügt."
#: management/assets/js/components/edit/EditSection.js:38
#: management/static/management/js/management.js:2
@@ -667,6 +689,7 @@ msgstr "Dieser Abschnitt ist schreibgeschützt"
#: management/assets/js/components/element/Section.js:54
#: management/assets/js/constants/elements.js:45
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Section"
msgstr "Abschnitt"
@@ -695,6 +718,7 @@ msgstr "Diese Aufgabe ist schreibgeschützt"
#: management/assets/js/components/element/Task.js:53
#: management/assets/js/constants/elements.js:53
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Task"
msgstr "Aufgabe"
@@ -713,6 +737,7 @@ msgstr "Diese Ansicht ist schreibgeschützt"
#: management/assets/js/components/element/View.js:48
#: management/assets/js/constants/elements.js:54
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "View"
msgstr "Ansicht"
@@ -732,6 +757,7 @@ msgstr "Bearbeiten"
#: management/assets/js/components/edit/common/OrderedMultiSelect.js:65
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/questionset/QuestionSetRemoveSet.js:25
+#: projects/static/projects/js/interview.js:2
msgid "Remove"
msgstr "Entfernen"
@@ -986,6 +1012,7 @@ msgstr "Frage exportieren"
#: management/assets/js/components/element/Question.js:53
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/question/QuestionOptional.js:6
+#: projects/static/projects/js/interview.js:2
msgid "This is an optional question."
msgstr "Diese Frage ist optional."
@@ -1387,6 +1414,7 @@ msgstr "Geändert"
#: management/assets/js/components/import/ImportSuccessElement.js:16
#: management/static/management/js/management.js:2
#: projects/assets/js/projects/utils/constants.js:8
+#: projects/static/projects/js/projects.js:2
msgid "Created"
msgstr "Erstellt"
@@ -1594,8 +1622,8 @@ msgstr[1] "Diese Frage wird auf %s Seiten verwendet."
#, javascript-format
msgid "This question set is used in one question set."
msgid_plural "This question set is used in %s question sets."
-msgstr[0] "Dieser Fragensatz wird in einem Fragenset verwendet."
-msgstr[1] "Dieser Fragensatz wird in %s Fragensets verwendet."
+msgstr[0] "Dieses Fragenset wird in einem Fragenset verwendet."
+msgstr[1] "Dieses Fragenset wird in %s Fragensets verwendet."
#: management/assets/js/components/info/QuestionSetInfo.js:24
#: management/static/management/js/management.js:2
@@ -1658,6 +1686,7 @@ msgstr "Sie sind dabei dieses Attribut permanent zu entfernen:"
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:21
#: projects/assets/js/interview/components/main/questionset/QuestionSetRemoveSet.js:29
+#: projects/static/projects/js/interview.js:2
msgid "This action cannot be undone!"
msgstr "Diese Aktion kann nicht rückgängig gemacht werden!"
@@ -1860,151 +1889,188 @@ msgid "Set URI prefix for all elements"
msgstr "URI-Präfix für alle Elemente festlegen"
#: projects/assets/js/interview/components/main/Breadcrumb.js:17
+#: projects/static/projects/js/interview.js:2
msgid "My Projects"
msgstr "Meine Projekte"
#: projects/assets/js/interview/components/main/Contact.js:26
#: projects/assets/js/interview/components/main/question/QuestionContact.js:7
+#: projects/static/projects/js/interview.js:2
msgid "Contact support"
msgstr "Support kontaktieren"
#: projects/assets/js/interview/components/main/Contact.js:27
+#: projects/static/projects/js/interview.js:2
msgid "Send message"
msgstr "Nachricht senden"
#: projects/assets/js/interview/components/main/Done.js:20
+#: projects/static/projects/js/interview.js:2
msgid "View answers"
msgstr "Antworten anzeigen"
#: projects/assets/js/interview/components/main/Done.js:24
#: projects/assets/js/interview/components/main/Errors.js:33
+#: projects/static/projects/js/interview.js:2
msgid "Back to project overview"
msgstr "Zurück zur Projektübersicht"
#: projects/assets/js/interview/components/main/Errors.js:30
-#: projects/assets/js/interview/components/sidebar/Overview.js:58
+#: projects/assets/js/interview/components/sidebar/Overview.js:63
+#: projects/static/projects/js/interview.js:2
msgid "Reload page"
msgstr "Seite neu laden"
#: projects/assets/js/interview/components/main/Search.js:67
+#: projects/static/projects/js/interview.js:2
msgid "Search for project or snapshot title, or answer text ..."
msgstr "Suche nach Projekt- oder Snapshot-Titel oder Antworttext ..."
#: projects/assets/js/interview/components/main/Search.js:69
+#: projects/static/projects/js/interview.js:2
msgid "No answers match your search."
msgstr "Keine Antworten zu Ihrer Suche."
#: projects/assets/js/interview/components/main/Search.js:71
#: projects/assets/js/interview/components/main/Search.js:115
#: projects/assets/js/interview/components/main/widget/SelectInput.js:94
+#: projects/static/projects/js/interview.js:2
msgid "Loading ..."
msgstr "Laden ..."
#: projects/assets/js/interview/components/main/Search.js:82
-#: projects/assets/js/interview/components/sidebar/Overview.js:27
+#: projects/assets/js/interview/components/sidebar/Overview.js:32
+#: projects/static/projects/js/interview.js:2
msgid "Project"
msgstr "Projekt"
#: projects/assets/js/interview/components/main/Search.js:86
+#: projects/static/projects/js/interview.js:2
msgid "Snapshot"
msgstr "Snapshot"
#: projects/assets/js/interview/components/main/Search.js:92
#: projects/assets/js/interview/components/main/Search.js:97
+#: projects/static/projects/js/interview.js:2
msgid "Tab"
-msgstr "Tab"
+msgstr "Registerkarte"
#: projects/assets/js/interview/components/main/Search.js:111
+#: projects/static/projects/js/interview.js:2
msgid "Restrict the search to a particular project ..."
msgstr "Beschränken Sie die Suche auf ein bestimmtes Projekt ..."
#: projects/assets/js/interview/components/main/Search.js:113
+#: projects/static/projects/js/interview.js:2
msgid "No projects matching your search."
msgstr "Keine Projekte, die Ihrer Suche entsprechen."
#: projects/assets/js/interview/components/main/Search.js:141
+#: projects/static/projects/js/interview.js:2
msgid "Include snapshots in the search"
msgstr "Snapshots in die Suche einbeziehen"
#: projects/assets/js/interview/components/main/page/PageButtons.js:18
#: projects/assets/js/interview/components/sidebar/Buttons.js:15
+#: projects/static/projects/js/interview.js:2
msgid "Proceed"
msgstr "Fortfahren"
#: projects/assets/js/interview/components/main/page/PageButtons.js:23
+#: projects/static/projects/js/interview.js:2
msgid "Complete questionnaire"
msgstr "Fragebogen abschließen"
#: projects/assets/js/interview/components/main/page/PageHead.js:33
#: projects/assets/js/interview/components/main/page/PageHead.js:175
+#: projects/static/projects/js/interview.js:2
msgid "Copy tab"
-msgstr "Tab kopieren"
+msgstr "Registerkarte kopieren"
#: projects/assets/js/interview/components/main/page/PageHead.js:34
+#: projects/static/projects/js/interview.js:2
msgid "Add tab"
-msgstr "Tab hinzufügen"
+msgstr "Registerkarte hinzufügen"
#: projects/assets/js/interview/components/main/page/PageHead.js:35
+#: projects/static/projects/js/interview.js:2
msgid "Edit tab"
-msgstr "Tab bearbeiten"
+msgstr "Registerkarte bearbeiten"
#: projects/assets/js/interview/components/main/page/PageHead.js:36
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:87
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:80
+#: projects/static/projects/js/interview.js:2
msgid "Reuse answers"
msgstr "Antworten wiederverwenden"
#: projects/assets/js/interview/components/main/page/PageHead.js:37
+#: projects/static/projects/js/interview.js:2
msgid "Remove tab"
-msgstr "Tab entfernen"
+msgstr "Registerkarte entfernen"
#: projects/assets/js/interview/components/main/page/PageHead.js:165
+#: projects/static/projects/js/interview.js:2
msgid "Create tab"
-msgstr "Tab erstellen"
+msgstr "Registerkarte erstellen"
#: projects/assets/js/interview/components/main/page/PageHead.js:186
+#: projects/static/projects/js/interview.js:2
msgid "Update tab"
-msgstr "Tab aktualisieren"
+msgstr "Registerkarte aktualisieren"
#: projects/assets/js/interview/components/main/page/PageHead.js:187
+#: projects/static/projects/js/interview.js:2
msgid "Update"
msgstr "Aktualisieren"
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:8
+#: projects/static/projects/js/interview.js:2
msgid "Delete tab"
-msgstr "Tab entfernen"
+msgstr "Registerkarte entfernen"
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:14
+#: projects/static/projects/js/interview.js:2
#, javascript-format
msgid "You are about to permanently delete the tab named: %s"
-msgstr "Sie sind im Begriff, den Tab %s dauerhaft zu löschen"
+msgstr ""
+"Sie sind im Begriff, die Registerkarte %s dauerhaft zu "
+"löschen"
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:17
+#: projects/static/projects/js/interview.js:2
msgid "You are about to permanently delete this tab."
-msgstr "Sie sind dabei diesen Tab permanent zu entfernen."
+msgstr "Sie sind dabei diese Registerkarte permanent zu entfernen."
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:20
+#: projects/static/projects/js/interview.js:2
msgid ""
"This includes all given answers for this tab on all pages, not just this one."
msgstr ""
-"Dies gilt für alle Antworten, die für dieses Tab auf allen Seiten gegeben "
-"werden, nicht nur auf dieser Seite."
+"Dies gilt für alle Antworten, die für diese Registerkarte auf allen Seiten "
+"gegeben werden, nicht nur auf dieser Seite."
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:59
+#: projects/static/projects/js/interview.js:2
msgid "You can add a new tab using the create button."
msgstr ""
-"Sie können einen neue Tab über die Schaltfläche „Erstellen“ hinzufügen."
+"Sie können eine neue Registerkarte über die Schaltfläche „Erstellen“ "
+"hinzufügen."
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:65
#: projects/assets/js/projects/utils/constants.js:4
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Name"
msgstr "Name"
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:81
+#: projects/static/projects/js/interview.js:2
msgid "Please give the tab a meaningful name."
msgstr "Bitte geben Sie der Registerkarte einen aussagekräftigen Namen."
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:93
+#: projects/static/projects/js/interview.js:2
msgid ""
"You can populate this tab with answers from a similar tab in any project you "
"are allowed to access."
@@ -2014,28 +2080,33 @@ msgstr ""
"auffüllen."
#: projects/assets/js/interview/components/main/page/PageHeadReuseModal.js:43
+#: projects/static/projects/js/interview.js:2
msgid "Reuse tab"
-msgstr "Tab wiederverwenden"
+msgstr "Registerkarte wiederverwenden"
#: projects/assets/js/interview/components/main/page/PageHeadReuseModal.js:43
+#: projects/static/projects/js/interview.js:2
msgid "Reuse"
msgstr "Wiederverwenden"
#: projects/assets/js/interview/components/main/page/PageHeadReuseModal.js:48
+#: projects/static/projects/js/interview.js:2
msgid "Answers"
msgstr "Antworten"
#: projects/assets/js/interview/components/main/page/PageHeadReuseModal.js:54
+#: projects/static/projects/js/interview.js:2
msgid ""
"You can populate this tab with answers from a similar tab in any project you "
"have access to. This only affects questions that don't already have an "
"answer."
msgstr ""
-"Sie können diese Registerkarte mit Antworten aus einem ähnlichen Tab in "
-"einem beliebigen Projekt, auf das Sie Zugriff haben, auffüllen. Dies "
-"betrifft nur Fragen, für die es noch keine Antwort gibt."
+"Sie können diese Registerkarte mit Antworten aus einer ähnlichen "
+"Registerkarte in einem beliebigen Projekt, auf das Sie Zugriff haben, "
+"auffüllen. Dies betrifft nur Fragen, für die es noch keine Antwort gibt."
#: projects/assets/js/interview/components/main/question/QuestionAddValue.js:21
+#: projects/static/projects/js/interview.js:2
msgid "Add answer"
msgstr "Antwort hinzufügen"
@@ -2043,24 +2114,29 @@ msgstr "Antwort hinzufügen"
#: projects/assets/js/interview/components/main/question/QuestionCopyValue.js:14
#: projects/assets/js/interview/components/main/question/QuestionCopyValues.js:10
#: projects/assets/js/interview/components/main/question/QuestionCopyValues.js:11
+#: projects/static/projects/js/interview.js:2
msgid "Apply this answer to all tabs where this question is empty"
msgstr ""
"Wenden Sie diese Antwort auf alle Tabs an, bei denen diese Frage leer ist"
#: projects/assets/js/interview/components/main/question/QuestionCopyValues.js:16
+#: projects/static/projects/js/interview.js:2
msgid "Apply to all"
msgstr "Auf alle anwenden"
#: projects/assets/js/interview/components/main/question/QuestionDefault.js:8
+#: projects/static/projects/js/interview.js:2
msgid "This is a default answer that can be customized."
msgstr "Dies ist eine Standardantwort, die angepasst werden kann."
#: projects/assets/js/interview/components/main/question/QuestionEraseValue.js:11
#: projects/assets/js/interview/components/main/question/QuestionEraseValues.js:11
+#: projects/static/projects/js/interview.js:2
msgid "Erase input"
msgstr "Eingabe löschen"
#: projects/assets/js/interview/components/main/question/QuestionError.js:8
+#: projects/static/projects/js/interview.js:2
msgid ""
"This field could not be saved, since somebody else did so while you were "
"editing. You will need to reload the page to make changes, but your input "
@@ -2071,10 +2147,12 @@ msgstr ""
"Änderungen vorzunehmen, aber Ihre Eingaben werden dabei überschrieben."
#: projects/assets/js/interview/components/main/question/QuestionError.js:11
+#: projects/static/projects/js/interview.js:2
msgid "You reached the file quota for this project."
msgstr "Sie haben das Upload-Limit für dieses Projekt erreicht."
#: projects/assets/js/interview/components/main/question/QuestionError.js:17
+#: projects/static/projects/js/interview.js:2
msgid ""
"This field could not be saved, since somebody else removed it while you were "
"editing. You will need to reload the page to proceed, but your input will be "
@@ -2085,40 +2163,48 @@ msgstr ""
"fortzufahren, aber Ihre Eingaben gehen dabei verloren."
#: projects/assets/js/interview/components/main/question/QuestionError.js:23
+#: projects/static/projects/js/interview.js:2
msgid "An unknown error occurred, please contact support"
msgstr ""
"Ein unbekannter Fehler ist aufgetreten, bitte kontaktieren Sie den Support"
#: projects/assets/js/interview/components/main/question/QuestionOptional.js:7
+#: projects/static/projects/js/interview.js:2
msgid "Optional"
msgstr "Optional"
#: projects/assets/js/interview/components/main/question/QuestionRemoveValue.js:7
+#: projects/static/projects/js/interview.js:2
msgid "Remove answer"
msgstr "Antwort entfernen"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:57
+#: projects/static/projects/js/interview.js:2
msgid "Append"
msgstr "Anfügen"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:62
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:85
+#: projects/static/projects/js/interview.js:2
msgid "Replace"
msgstr "Ersetzen"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:68
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:72
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:85
+#: projects/static/projects/js/interview.js:2
msgid "Reuse answer"
msgstr "Antwort wiederverwenden"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:76
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:90
+#: projects/static/projects/js/interview.js:2
msgid "Answer"
msgstr "Antwort"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:88
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:103
+#: projects/static/projects/js/interview.js:2
msgid ""
"You can reuse an answer from a similar question in any project you have "
"access to."
@@ -2127,112 +2213,140 @@ msgstr ""
"Zugang haben, wiederverwenden."
#: projects/assets/js/interview/components/main/questionset/QuestionSetCopySet.js:31
+#: projects/static/projects/js/interview.js:2
msgid "Copy block"
msgstr "Block kopieren"
#: projects/assets/js/interview/components/main/questionset/QuestionSetRemoveSet.js:25
+#: projects/static/projects/js/interview.js:2
msgid "Remove block"
msgstr "Block entfernen"
#: projects/assets/js/interview/components/main/questionset/QuestionSetRemoveSet.js:28
+#: projects/static/projects/js/interview.js:2
msgid "You are about to permanently remove this block."
msgstr "Sie sind dabei diesen Block permanent zu entfernen."
#: projects/assets/js/interview/components/main/widget/FileInput.js:29
+#: projects/static/projects/js/interview.js:2
msgid "Current file:"
msgstr "Aktuelle Datei:"
#: projects/assets/js/interview/components/main/widget/FileInput.js:35
+#: projects/static/projects/js/interview.js:2
msgid "No file stored."
msgstr "Keine Datei gespeichert."
#: projects/assets/js/interview/components/main/widget/FileInput.js:48
+#: projects/static/projects/js/interview.js:2
msgid "Drop the files here ..."
msgstr "Legen Sie die Datei hier ab ..."
#: projects/assets/js/interview/components/main/widget/FileInput.js:50
+#: projects/static/projects/js/interview.js:2
msgid "Drag 'n drop some files here, or click to select files."
msgstr ""
"Ziehen Sie einige Dateien hierher, oder klicken Sie, um Dateien auszuwählen."
-#: projects/assets/js/interview/components/main/widget/RadioInput.js:57
+#: projects/assets/js/interview/components/main/widget/RadioInput.js:68
+#: projects/static/projects/js/interview.js:2
msgid "No options are available."
msgstr "Es sind keine Optionen verfügbar."
#: projects/assets/js/interview/components/main/widget/SelectInput.js:90
+#: projects/static/projects/js/interview.js:2
msgid "Select ..."
msgstr "Auswählen ..."
#: projects/assets/js/interview/components/main/widget/SelectInput.js:93
+#: projects/static/projects/js/interview.js:2
msgid "No options found"
msgstr "Keine Optionen gefunden"
#: projects/assets/js/interview/components/main/widget/YesNoInput.js:40
+#: projects/static/projects/js/interview.js:2
msgid "Yes"
msgstr "Ja"
#: projects/assets/js/interview/components/main/widget/YesNoInput.js:52
+#: projects/static/projects/js/interview.js:2
msgid "No"
msgstr "Nein"
-#: projects/assets/js/interview/components/main/widget/common/AdditionalTextInput.js:22
-#: projects/assets/js/interview/components/main/widget/common/AdditionalTextareaInput.js:21
+#: projects/assets/js/interview/components/main/widget/common/AdditionalTextInput.js:11
+#: projects/assets/js/interview/components/main/widget/common/AdditionalTextareaInput.js:11
+#: projects/static/projects/js/interview.js:2
msgid "Additional input"
msgstr "Zusätzliche Eingabe"
#: projects/assets/js/interview/components/main/widget/common/Unit.js:21
+#: projects/static/projects/js/interview.js:2
msgid "The unit for this answer."
msgstr "Die Einheit für diese Antwort."
#: projects/assets/js/interview/components/sidebar/Navigation.js:12
+#: projects/static/projects/js/interview.js:2
msgid "Navigation"
msgstr "Navigation"
#: projects/assets/js/interview/components/sidebar/NavigationLink.js:6
+#: projects/static/projects/js/interview.js:2
#, javascript-format
msgid "(%s of %s)"
msgstr "(%s von %s)"
#: projects/assets/js/interview/components/sidebar/NavigationLink.js:18
+#: projects/static/projects/js/interview.js:2
msgid "Complete"
msgstr "Vollständig"
-#: projects/assets/js/interview/components/sidebar/Overview.js:21
+#: projects/assets/js/interview/components/sidebar/Overview.js:26
+#: projects/static/projects/js/interview.js:2
msgid "Overview"
msgstr "Übersicht"
-#: projects/assets/js/interview/components/sidebar/Overview.js:39
+#: projects/assets/js/interview/components/sidebar/Overview.js:44
+#: projects/static/projects/js/interview.js:2
msgid "Hide management panels"
msgstr "Management-Panels ausblenden"
-#: projects/assets/js/interview/components/sidebar/Overview.js:39
+#: projects/assets/js/interview/components/sidebar/Overview.js:44
+#: projects/static/projects/js/interview.js:2
msgid "Show management panels"
msgstr "Management-Panels anzeigen"
-#: projects/assets/js/interview/components/sidebar/Overview.js:49
+#: projects/assets/js/interview/components/sidebar/Overview.js:54
+#: projects/static/projects/js/interview.js:2
msgid "You don't have write access to this project."
msgstr "Sie haben keinen Schreibzugriff auf dieses Projekt."
-#: projects/assets/js/interview/components/sidebar/Overview.js:50
+#: projects/assets/js/interview/components/sidebar/Overview.js:55
+#: projects/static/projects/js/interview.js:2
msgid "read only"
msgstr "nur lesen"
-#: projects/assets/js/interview/components/sidebar/Overview.js:61
+#: projects/assets/js/interview/components/sidebar/Overview.js:66
+#: projects/static/projects/js/interview.js:2
msgid "Back to my projects"
msgstr "Zurück zu meinen Projekten"
#: projects/assets/js/interview/components/sidebar/Progress.js:10
#: projects/assets/js/projects/components/main/Projects.js:39
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
#, javascript-format
msgid "%s of %s"
msgstr "%s von %s"
#: projects/assets/js/interview/components/sidebar/Progress.js:14
#: projects/assets/js/projects/utils/constants.js:7
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Progress"
msgstr "Fortschritt"
#: projects/assets/js/interview/constants/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid ""
"These links take you directly to the elements in the management interface. "
"This part of the page is visible to you, because you are either an Admin, "
@@ -2246,201 +2360,201 @@ msgstr ""
#: projects/assets/js/projects/components/helper/PendingInvitations.js:22
#: projects/assets/js/projects/utils/translations.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Accept"
msgstr "Akzeptieren"
#: projects/assets/js/projects/components/helper/PendingInvitations.js:26
#: projects/assets/js/projects/utils/translations.js:4
+#: projects/static/projects/js/projects.js:2
msgid "Decline"
msgstr "Ablehnen"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:82
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:81
+#: projects/static/projects/js/projects.js:2
msgid "Filter by catalog"
msgstr "Nach Katalog filtern"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:88
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:87
+#: projects/static/projects/js/projects.js:2
msgid "Select catalog"
msgstr "Katalog auswählen"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:95
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:94
+#: projects/static/projects/js/projects.js:2
msgid "Filter by created date"
msgstr "Nach Erstellungsdatum filtern"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:107
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:141
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:106
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:140
+#: projects/static/projects/js/projects.js:2
msgid "Select start date"
msgstr "Startdatum wählen"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:120
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:154
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:119
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:153
+#: projects/static/projects/js/projects.js:2
msgid "Select end date"
msgstr "Enddatum wählen"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:129
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:128
+#: projects/static/projects/js/projects.js:2
msgid "Filter by last changed date"
msgstr "Nach Änderungsdatum filtern"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:168
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:167
#: projects/assets/js/projects/utils/translations.js:14
+#: projects/static/projects/js/projects.js:2
msgid "Reset all filters"
msgstr "Alle Filter zurücksetzen"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:172
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:171
#: projects/assets/js/projects/utils/translations.js:6
+#: projects/static/projects/js/projects.js:2
msgid "Hide filters"
msgstr "Filter ausblenden"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:172
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:171
#: projects/assets/js/projects/utils/translations.js:17
+#: projects/static/projects/js/projects.js:2
msgid "Show filters"
msgstr "Filter anzeigen"
#: projects/assets/js/projects/components/helper/ProjectImport.js:11
+#: projects/static/projects/js/projects.js:2
msgid "Import directly"
msgstr "Projekt direkt importieren"
#: projects/assets/js/projects/components/helper/ProjectImport.js:27
#: projects/assets/js/projects/utils/translations.js:8
+#: projects/static/projects/js/projects.js:2
msgid "Import from file"
msgstr "Importieren aus Datei"
#: projects/assets/js/projects/components/main/Projects.js:25
#: projects/assets/js/projects/components/main/Projects.js:204
#: projects/assets/js/projects/utils/translations.js:13
+#: projects/static/projects/js/projects.js:2
msgid "Pending invitations"
msgstr "Ausstehende Einladungen"
#: projects/assets/js/projects/components/main/Projects.js:31
#: projects/assets/js/projects/components/main/Projects.js:216
#: projects/assets/js/projects/utils/translations.js:7
+#: projects/static/projects/js/projects.js:2
msgid "Import project"
msgstr "Projekt importieren"
#: projects/assets/js/projects/components/main/Projects.js:36
+#: projects/static/projects/js/projects.js:2
#, javascript-format
msgid "%s of %s projects are displayed"
msgstr "%s von %s Projekten werden angezeigt"
#: projects/assets/js/projects/components/main/Projects.js:50
#: projects/assets/js/projects/utils/translations.js:18
+#: projects/static/projects/js/projects.js:2
msgid "View all projects"
msgstr "Alle Projekte ansehen"
#: projects/assets/js/projects/components/main/Projects.js:50
#: projects/assets/js/projects/utils/translations.js:19
+#: projects/static/projects/js/projects.js:2
msgid "View my projects"
msgstr "Meine Projekte ansehen"
#: projects/assets/js/projects/components/main/Projects.js:51
#: projects/assets/js/projects/utils/translations.js:11
+#: projects/static/projects/js/projects.js:2
msgid "My projects"
msgstr "Meine Projekte"
#: projects/assets/js/projects/components/main/Projects.js:51
#: projects/assets/js/projects/utils/translations.js:3
+#: projects/static/projects/js/projects.js:2
msgid "All projects"
msgstr "Alle Projekte"
#: projects/assets/js/projects/components/main/Projects.js:55
+#: projects/static/projects/js/projects.js:2
msgid "Copy project"
msgstr "Projekt kopieren"
#: projects/assets/js/projects/components/main/Projects.js:56
+#: projects/static/projects/js/projects.js:2
msgid "Update project"
msgstr "Projekt bearbeiten"
#: projects/assets/js/projects/components/main/Projects.js:57
+#: projects/static/projects/js/projects.js:2
msgid "Delete project"
msgstr "Projekt entfernen"
#: projects/assets/js/projects/components/main/Projects.js:107
+#: projects/static/projects/js/projects.js:2
msgid "Scroll to top"
msgstr "Zum Seitenanfang"
#: projects/assets/js/projects/components/main/Projects.js:113
#: projects/assets/js/projects/utils/translations.js:10
+#: projects/static/projects/js/projects.js:2
msgid "Load more"
msgstr "Mehr laden"
#: projects/assets/js/projects/components/main/Projects.js:219
#: projects/assets/js/projects/utils/translations.js:12
+#: projects/static/projects/js/projects.js:2
msgid "New project"
msgstr "Neues Projekt"
#: projects/assets/js/projects/components/main/Projects.js:232
#: projects/assets/js/projects/utils/translations.js:16
+#: projects/static/projects/js/projects.js:2
msgid "Search projects"
msgstr "Projekte durchsuchen"
#: projects/assets/js/projects/utils/constants.js:5
+#: projects/static/projects/js/projects.js:2
msgid "Role"
msgstr "Rolle"
#: projects/assets/js/projects/utils/constants.js:6
#: projects/assets/js/projects/utils/constants.js:17
+#: projects/static/projects/js/projects.js:2
msgid "Owner"
msgstr "Besitzer"
#: projects/assets/js/projects/utils/constants.js:9
+#: projects/static/projects/js/projects.js:2
msgid "Last changed"
msgstr "Letzte Änderung"
#: projects/assets/js/projects/utils/constants.js:10
+#: projects/static/projects/js/projects.js:2
msgid "Actions"
msgstr "Aktionen"
#: projects/assets/js/projects/utils/constants.js:14
+#: projects/static/projects/js/projects.js:2
msgid "Author"
msgstr "Autor"
#: projects/assets/js/projects/utils/constants.js:15
+#: projects/static/projects/js/projects.js:2
msgid "Guest"
msgstr "Gast"
#: projects/assets/js/projects/utils/constants.js:16
+#: projects/static/projects/js/projects.js:2
msgid "Manager"
msgstr "Manager"
#: projects/assets/js/projects/utils/translations.js:5
+#: projects/static/projects/js/projects.js:2
msgid "Filter"
msgstr "Filter"
#: projects/assets/js/projects/utils/translations.js:9
+#: projects/static/projects/js/projects.js:2
msgid "Load all"
msgstr "Alles laden"
-
-#, fuzzy
-#~| msgid "Filter"
-#~ msgid "Filter uri"
-#~ msgstr "Filter"
-
-#~ msgid "changed"
-#~ msgstr "geändert"
-
-#~ msgid "created"
-#~ msgstr "erstellt"
-
-#, fuzzy
-#~| msgid "New"
-#~ msgid "new"
-#~ msgstr "Neu"
-
-#~ msgid "catalog"
-#~ msgstr "Katalog"
-
-#~ msgid "task"
-#~ msgstr "Ansicht"
-
-#, fuzzy
-#~| msgid "Load More"
-#~ msgid "Load More"
-#~ msgstr "Mehr laden"
-
-#, fuzzy
-#~| msgid "Load All"
-#~ msgid "Load All"
-#~ msgstr "Alles laden"
-
-#, fuzzy
-#~ msgid "Direct import"
-#~ msgstr "Projekt direkt importieren"
diff --git a/rdmo/locale/es/LC_MESSAGES/django.mo b/rdmo/locale/es/LC_MESSAGES/django.mo
index e7364b3de2..769771f0df 100644
Binary files a/rdmo/locale/es/LC_MESSAGES/django.mo and b/rdmo/locale/es/LC_MESSAGES/django.mo differ
diff --git a/rdmo/locale/es/LC_MESSAGES/django.po b/rdmo/locale/es/LC_MESSAGES/django.po
index 1837e2b0fa..49c80fde9b 100644
--- a/rdmo/locale/es/LC_MESSAGES/django.po
+++ b/rdmo/locale/es/LC_MESSAGES/django.po
@@ -7,16 +7,16 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-07-04 11:19+0000\n"
-"PO-Revision-Date: 2025-05-16 16:52+0200\n"
-"Last-Translator: DAVID MARTINEZ \n"
+"POT-Creation-Date: 2025-12-12 13:02+0100\n"
+"PO-Revision-Date: 2025-12-10 14:21+0100\n"
+"Last-Translator: Giacomo Lanza \n"
"Language-Team: \n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.6\n"
+"X-Generator: Poedit 3.8\n"
#: accounts/apps.py:7
msgid "Accounts"
@@ -32,7 +32,7 @@ msgstr "Apellidos"
#: accounts/forms.py:81 core/constants.py:22 projects/models/invite.py:28
msgid "E-mail"
-msgstr "E-mail"
+msgstr "Correo electrónico"
#: accounts/forms.py:85
msgid "Password"
@@ -51,194 +51,194 @@ msgid "Consent could not be saved. Please try again."
msgstr ""
"No se ha podido guardar el consentimiento. Por favor, inténtelo de nuevo."
-#: accounts/models.py:27 options/models.py:181 questions/models/question.py:97
+#: accounts/models.py:28 options/models.py:181 questions/models/question.py:97
#: tasks/models.py:96
msgid "Text (primary)"
-msgstr "Texto (primario)"
+msgstr "Texto (primer idioma)"
-#: accounts/models.py:28
+#: accounts/models.py:29
msgid "The text for this additional field (in the primary language)."
-msgstr "El texto de este campo adicional (en la lengua principal)."
+msgstr "El texto de este campo adicional (en el primer idioma)."
-#: accounts/models.py:32 options/models.py:186 questions/models/question.py:102
+#: accounts/models.py:33 options/models.py:186 questions/models/question.py:102
#: tasks/models.py:101
msgid "Text (secondary)"
-msgstr "Texto (secundario)"
+msgstr "Texto (segundo idioma)"
-#: accounts/models.py:33
+#: accounts/models.py:34
msgid "The text for this additional field (in the secondary language)."
-msgstr "El texto de este campo adicional (en la lengua secundaria)."
+msgstr "El texto de este campo adicional (en el segundo idioma)."
-#: accounts/models.py:37 options/models.py:191 questions/models/question.py:107
+#: accounts/models.py:38 options/models.py:191 questions/models/question.py:107
#: tasks/models.py:106
msgid "Text (tertiary)"
-msgstr "Texto (terciario)"
+msgstr "Texto (tercer idioma)"
-#: accounts/models.py:38
+#: accounts/models.py:39
msgid "The text for this additional field (in the tertiary language)."
-msgstr "El texto de este campo adicional (en la lengua terciaria)."
+msgstr "El texto de este campo adicional (en el tercer idioma)."
-#: accounts/models.py:42 options/models.py:196 questions/models/question.py:112
+#: accounts/models.py:43 options/models.py:196 questions/models/question.py:112
#: tasks/models.py:111
msgid "Text (quaternary)"
-msgstr "Texto (cuaternario)"
+msgstr "Texto (cuarto idioma)"
-#: accounts/models.py:43
+#: accounts/models.py:44
msgid "The text for this additional field (in the quaternary language)."
-msgstr "El texto de este campo adicional (en la lengua cuaternaria)."
+msgstr "El texto de este campo adicional (en el cuarto idioma)."
-#: accounts/models.py:47 options/models.py:201 questions/models/question.py:117
+#: accounts/models.py:48 options/models.py:201 questions/models/question.py:117
#: tasks/models.py:116
msgid "Text (quinary)"
-msgstr "Texto (quinario)"
+msgstr "Texto (quinto idioma)"
-#: accounts/models.py:48
+#: accounts/models.py:49
msgid "The text for this additional field (in the quinary language)."
-msgstr "El texto de este campo adicional (en lenguaje quinario)."
+msgstr "El texto de este campo adicional (en el quinto idioma)."
-#: accounts/models.py:52 options/models.py:206 questions/models/catalog.py:111
+#: accounts/models.py:53 options/models.py:206 questions/models/catalog.py:112
#: questions/models/page.py:136 questions/models/question.py:72
#: questions/models/questionset.py:106 views/models.py:103
msgid "Help (primary)"
-msgstr "Ayuda (primario)"
+msgstr "Ayuda (primer idioma)"
-#: accounts/models.py:53
+#: accounts/models.py:54
msgid ""
"The help text to be displayed next to the input element (in the primary "
"language)."
msgstr ""
-"El texto de ayuda que se mostrará junto al elemento de entrada (en el idioma "
-"principal)."
+"El texto de ayuda que se mostrará junto al elemento de entrada (en el primer "
+"idioma)."
-#: accounts/models.py:57 options/models.py:211 questions/models/catalog.py:116
+#: accounts/models.py:58 options/models.py:211 questions/models/catalog.py:117
#: questions/models/page.py:141 questions/models/question.py:77
#: questions/models/questionset.py:111 views/models.py:108
msgid "Help (secondary)"
-msgstr "Ayuda (secundario)"
+msgstr "Ayuda (segundo idioma)"
-#: accounts/models.py:58
+#: accounts/models.py:59
msgid ""
"The help text to be displayed next to the input element (in the secondary "
"language)."
msgstr ""
-"El texto de ayuda que se mostrará junto al elemento de entrada (en el idioma "
-"secundario)."
+"El texto de ayuda que se mostrará junto al elemento de entrada (en el "
+"segundo idioma)."
-#: accounts/models.py:62 options/models.py:216 questions/models/catalog.py:121
+#: accounts/models.py:63 options/models.py:216 questions/models/catalog.py:122
#: questions/models/page.py:146 questions/models/question.py:82
#: questions/models/questionset.py:116 views/models.py:113
msgid "Help (tertiary)"
-msgstr "Ayuda (terciario)"
+msgstr "Ayuda (tercer idioma)"
-#: accounts/models.py:63
+#: accounts/models.py:64
msgid ""
"The help text to be displayed next to the input element (in the tertiary "
"language)."
msgstr ""
-"El texto de ayuda que se mostrará junto al elemento de entrada (en el idioma "
-"terciario)."
+"El texto de ayuda que se mostrará junto al elemento de entrada (en el tercer "
+"idioma)."
-#: accounts/models.py:67 options/models.py:221 questions/models/catalog.py:126
+#: accounts/models.py:68 options/models.py:221 questions/models/catalog.py:127
#: questions/models/page.py:151 questions/models/question.py:87
#: questions/models/questionset.py:121 views/models.py:118
msgid "Help (quaternary)"
-msgstr "Ayuda (cuaternario)"
+msgstr "Ayuda (cuarto idioma)"
-#: accounts/models.py:68
+#: accounts/models.py:69
msgid ""
"The help text to be displayed next to the input element (in the quaternary "
"language)."
msgstr ""
-"El texto de ayuda que se mostrará junto al elemento de entrada (en el idioma "
-"cuaternario)."
+"El texto de ayuda que se mostrará junto al elemento de entrada (en el cuarto "
+"idioma)."
-#: accounts/models.py:72 options/models.py:226 questions/models/catalog.py:131
+#: accounts/models.py:73 options/models.py:226 questions/models/catalog.py:132
#: questions/models/page.py:156 questions/models/question.py:92
#: questions/models/questionset.py:126 views/models.py:123
msgid "Help (quinary)"
-msgstr "Ayuda (quinario)"
+msgstr "Ayuda (quinto idioma)"
-#: accounts/models.py:73
+#: accounts/models.py:74
msgid ""
"The help text to be displayed next to the input element (in the quinary "
"language)."
msgstr ""
-"El texto de ayuda que se mostrará junto al elemento de entrada (en el idioma "
-"quinario)."
+"El texto de ayuda que se mostrará junto al elemento de entrada (en el quinto "
+"idioma)."
-#: accounts/models.py:76
+#: accounts/models.py:77
msgid "Required"
msgstr "Requerido"
-#: accounts/models.py:77
+#: accounts/models.py:78
msgid "Designates whether this additional field is required."
msgstr "Señala si este campo es o no es requerido."
-#: accounts/models.py:82
+#: accounts/models.py:83
msgid "Additional field"
msgstr "Campo adicional"
-#: accounts/models.py:83
+#: accounts/models.py:84
msgid "Additional fields"
msgstr "Campos adicionales"
-#: accounts/models.py:106
+#: accounts/models.py:107
msgid "Additional field value"
msgstr "Valor de campo adicional"
-#: accounts/models.py:107
+#: accounts/models.py:108
msgid "Additional field values"
msgstr "Valores de campos adicionales"
-#: accounts/models.py:124
+#: accounts/models.py:125
msgid "Consent field value"
msgstr "Valor del campo de consentimiento"
-#: accounts/models.py:125
+#: accounts/models.py:126
msgid "Consent field values"
msgstr "Valores del campo consentimiento"
-#: accounts/models.py:181
+#: accounts/models.py:182
msgid "Member"
msgstr "Miembro"
-#: accounts/models.py:182
+#: accounts/models.py:183
msgid "The sites for which this user is a member."
msgstr "Sitios de los que este usuario es miembro."
-#: accounts/models.py:186 projects/constants.py:9
+#: accounts/models.py:187 projects/constants.py:9
#: projects/models/membership.py:13
msgid "Manager"
msgstr "Gestor"
-#: accounts/models.py:187
+#: accounts/models.py:188
msgid "The sites for which this user is manager."
msgstr "Sitios para los cuales este usuario es gestor."
-#: accounts/models.py:191
+#: accounts/models.py:192
msgid "Editor"
msgstr "Editor"
-#: accounts/models.py:192
+#: accounts/models.py:193
msgid "The sites for which this user is an editor."
msgstr "Los sitios de los que este usuario es editor."
-#: accounts/models.py:196
+#: accounts/models.py:197
msgid "Reviewer"
msgstr "Revisor"
-#: accounts/models.py:197
+#: accounts/models.py:198
msgid "The sites for which this user is a reviewer."
msgstr "Los sitios de los que este usuario es revisor."
-#: accounts/models.py:202 projects/models/invite.py:33
+#: accounts/models.py:203 projects/forms.py:278 projects/models/invite.py:33
#: projects/models/membership.py:30
#: projects/templates/projects/project_detail_invites.html:16
#: projects/templates/projects/project_detail_memberships.html:22
msgid "Role"
msgstr "Rol"
-#: accounts/models.py:203
+#: accounts/models.py:204
msgid "Roles"
msgstr "Roles"
@@ -265,11 +265,12 @@ msgstr ""
#: accounts/templates/account/email.html:6
msgid "E-mail Addresses"
-msgstr "Dirección de e-mail"
+msgstr "Dirección de correo electrónico"
#: accounts/templates/account/email.html:10
msgid "The following e-mail addresses are associated with your account:"
-msgstr "Su usuario está asociado a las siguientes direcciones de e-mail:"
+msgstr ""
+"Su usuario está asociado a las siguientes direcciones de correo electrónico:"
#: accounts/templates/account/email.html:26
msgid "Primary"
@@ -304,20 +305,21 @@ msgid ""
"You currently do not have any e-mail address set up. You should really add "
"an e-mail address so you can receive notifications, reset your password, etc."
msgstr ""
-"No hay configurada nunguna dirección de e-mail. Debería asociar una "
-"dirección de e-mail para recibir notificaciones, cambiar su contraseña, etc."
+"No hay configurada nunguna dirección de correo electrónico. Debería asociar "
+"una dirección de correo electrónico para recibir notificaciones, cambiar su "
+"contraseña, etc."
#: accounts/templates/account/email.html:56
msgid "Add E-mail Address"
-msgstr "Añadir dirección de e-mail"
+msgstr "Añadir dirección de correo electrónico"
#: accounts/templates/account/email.html:63
msgid "Add E-mail"
-msgstr "Añadir e-mail"
+msgstr "Añadir correo electrónico"
#: accounts/templates/account/email.html:71
msgid "Do you really want to remove the selected e-mail address?"
-msgstr "¿Desea de verdad eliminar la dirección de e-mail?"
+msgstr "¿Desea de verdad eliminar la dirección de correo electrónico?"
#: accounts/templates/account/email/password_reset_key_message.txt:1
#: projects/templates/projects/email/project_invite_message.txt:1
@@ -331,10 +333,10 @@ msgid ""
"%(site_domain)s will be reset. It can be safely ignored if you did not "
"request a password reset. Click the link below to reset your password."
msgstr ""
-"Ha recibido este e-mail porque solicitó restablecer su contraseña en "
-"%(site_domain)s. Puede ignorar de forma segura este mensaje si usted no ha "
-"solicitado restablecer su contraseña. Pulse en el enlace para restablecer su "
-"contraseña."
+"Ha recibido este correo electrónico porque solicitó restablecer su "
+"contraseña en %(site_domain)s. Puede ignorar de forma segura este mensaje si "
+"usted no ha solicitado restablecer su contraseña. Pulse en el enlace para "
+"restablecer su contraseña."
#: accounts/templates/account/email/password_reset_key_message.txt:11
#, python-format
@@ -355,7 +357,7 @@ msgstr "Restablecer contraseña"
#: accounts/templates/account/email_confirm.html:7
msgid "Confirm E-mail Address"
-msgstr "Confirmar dirección de e-mail"
+msgstr "Confirmar dirección de correo electrónico"
#: accounts/templates/account/email_confirm.html:14
#, python-format
@@ -364,7 +366,8 @@ msgid ""
"address for user %(user_display)s."
msgstr ""
"Por favor confirme que %(email)s es una "
-"dirección de e-mail para el usuario %(user_display)s."
+"dirección de correo electrónico para el usuario %(user_display)s"
+"strong>."
#: accounts/templates/account/email_confirm.html:21
msgid "Confirm"
@@ -376,9 +379,9 @@ msgid ""
"This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
msgstr ""
-"Este enlace de confirmación del e-mail ha expirado o no es válido. Por favor "
-"<emita un nueva petición de confirmación del e-"
-"mail."
+"Este enlace de confirmación del correo electrónico ha expirado o no es "
+"válido. Por favor <emita un nueva petición de "
+"confirmación del e-mail."
#: accounts/templates/account/login.html:6
#: accounts/templates/account/login_form.html:23
@@ -446,8 +449,8 @@ msgid ""
"Forgotten your password? Enter your e-mail address below, and we'll send you "
"an e-mail allowing you to reset it."
msgstr ""
-"¿Olvidó su contraseña? Introduzca su dirección de e-mail y le enviaremos un "
-"e-mail para que pueda restablecerla."
+"¿Olvidó su contraseña? Introduzca su dirección de correo electrónico y le "
+"enviaremos un correo electrónico para que pueda restablecerla."
#: accounts/templates/account/password_reset.html:21
msgid "Reset my password"
@@ -462,17 +465,17 @@ msgid ""
"We have sent you an e-mail. Please contact us if you do not receive it "
"within a few minutes."
msgstr ""
-"Le hemos enviado un e-mail. Por favor, contacte con nosotros si no lo recibe "
-"en unos pocos minutos."
+"Le hemos enviado un correo electrónico. Por favor, contacte con nosotros si "
+"no lo recibe en unos pocos minutos."
#: accounts/templates/account/password_reset_done.html:19
msgid ""
"If you don't receive an e-mail, please make sure you've entered the address "
"you registered with, and check your spam folder."
msgstr ""
-"Si no ha recibido el e-mail, por favor compruebe que ha introducido "
-"correctamente la dirección de e-mail con la que se registró, y revise la "
-"carpeta de spam."
+"Si no ha recibido el correo electrónico, por favor compruebe que ha "
+"introducido correctamente la dirección de correo electrónico con la que se "
+"registró, y revise la carpeta de spam."
#: accounts/templates/account/password_reset_from_key.html:8
msgid "Bad token"
@@ -590,7 +593,7 @@ msgstr "Ha aceptado las condiciones de uso."
#: accounts/templates/account/verification_sent.html:7
#: accounts/templates/account/verified_email_required.html:6
msgid "Verify your e-mail address"
-msgstr "Revise su dirección de e-mail"
+msgstr "Revise su dirección de correo electrónico"
#: accounts/templates/account/verification_sent.html:11
msgid ""
@@ -598,9 +601,9 @@ msgid ""
"finalize the signup process. Please contact us if you do not receive it "
"within a few minutes."
msgstr ""
-"Le hemos enviado un e-mail para su comprovación. Siga el enlace que en él le "
-"proporcionamos para finalizar el proceso de registro. Por favor, contáctenos "
-"si no recibe el e-mail en unos minutos."
+"Le hemos enviado un correo electrónico para su comprovación. Siga el enlace "
+"que en él le proporcionamos para finalizar el proceso de registro. Por "
+"favor, contáctenos si no recibe el correo electrónico en unos minutos."
#: accounts/templates/account/verified_email_required.html:11
msgid ""
@@ -609,7 +612,8 @@ msgid ""
"address."
msgstr ""
"Esta parte del sitio requiere que comprobemos que usted es quien dice ser. A "
-"este fin, le pedidmos que demuestre la propiedad sobre su cuenta de e-mail."
+"este fin, le pedidmos que demuestre la propiedad sobre su cuenta de correo "
+"electrónico."
#: accounts/templates/account/verified_email_required.html:15
msgid ""
@@ -617,9 +621,9 @@ msgid ""
"inside this e-mail. Please contact us if you do not receive it within a few "
"minutes."
msgstr ""
-"Le hemos remitido un e-mail para su comprobación. Por favor, pulse en el "
-"enlace contenido en el e-mail. Contáctenos si no recibe el e-mail en unos "
-"pocos minutos."
+"Le hemos remitido un correo electrónico para su comprobación. Por favor, "
+"pulse en el enlace contenido en el correo electrónico. Contáctenos si no lo "
+"recibe en unos pocos minutos."
#: accounts/templates/account/verified_email_required.html:19
#, python-format
@@ -628,7 +632,7 @@ msgid ""
"mail address."
msgstr ""
"Nota: todavía puede cambiar su "
-"dirección de e-mail."
+"dirección de correo electrónico."
#: accounts/templates/profile/profile_remove_closed.html:6
#: accounts/templates/profile/profile_remove_failed.html:6
@@ -697,8 +701,8 @@ msgid ""
msgstr ""
"Por favor actualice la información de su cuenta. Puede cambiar su contraseña "
"mediante el formulario para contraseña y "
-"actualizar su e-mail mediante el formulario para e-"
-"mail."
+"actualizar su correo electrónico mediante el formulario para e-mail."
#: accounts/templates/profile/profile_update_form.html:33
msgid ""
@@ -822,7 +826,7 @@ msgstr "Condiciones"
#: options/models.py:19 options/models.py:151
#: options/templates/options/export/option.html:5
#: options/templates/options/export/optionset.html:5
-#: questions/models/catalog.py:36 questions/models/page.py:35
+#: questions/models/catalog.py:37 questions/models/page.py:35
#: questions/models/question.py:27 questions/models/questionset.py:30
#: questions/models/section.py:34
#: questions/templates/questions/export/catalog.html:6
@@ -841,7 +845,7 @@ msgstr ""
"El indetificador uniforme de recurso URI para esta condición (auto-generado)"
#: conditions/models.py:40 domain/models.py:20 options/models.py:24
-#: options/models.py:156 questions/models/catalog.py:41
+#: options/models.py:156 questions/models/catalog.py:42
#: questions/models/page.py:40 questions/models/question.py:32
#: questions/models/questionset.py:35 questions/models/section.py:39
#: tasks/models.py:25 views/models.py:27
@@ -853,7 +857,7 @@ msgid "The prefix for the URI of this condition."
msgstr "EL prefijo para el URI de esta condición."
#: conditions/models.py:45 options/models.py:29 options/models.py:161
-#: questions/models/catalog.py:46 questions/models/page.py:45
+#: questions/models/catalog.py:47 questions/models/page.py:45
#: questions/models/question.py:37 questions/models/questionset.py:40
#: questions/models/section.py:44 tasks/models.py:30 views/models.py:32
msgid "URI Path"
@@ -866,7 +870,7 @@ msgstr "La ruta para el URI de esta condición."
#: conditions/models.py:50
#: conditions/templates/conditions/export/conditions.html:21
#: domain/models.py:35 options/models.py:34 options/models.py:166
-#: questions/models/catalog.py:51 questions/models/page.py:50
+#: questions/models/catalog.py:52 questions/models/page.py:50
#: questions/models/question.py:42 questions/models/questionset.py:45
#: questions/models/section.py:49
#: questions/templates/questions/export/catalog.html:12
@@ -885,7 +889,7 @@ msgid "Additional internal information about this condition."
msgstr "Información interna adicional sobre esta condición."
#: conditions/models.py:55 domain/models.py:40 options/models.py:39
-#: options/models.py:171 questions/models/catalog.py:56
+#: options/models.py:171 questions/models/catalog.py:57
#: questions/models/page.py:55 questions/models/question.py:47
#: questions/models/questionset.py:50 questions/models/section.py:54
#: tasks/models.py:40 views/models.py:42
@@ -897,7 +901,7 @@ msgid "Designates whether this condition can be changed."
msgstr "Determina si esta condición puede o no ser modificada."
#: conditions/models.py:60 domain/models.py:45 options/models.py:49
-#: options/models.py:176 questions/models/catalog.py:76
+#: options/models.py:176 questions/models/catalog.py:77
#: questions/models/page.py:81 questions/models/question.py:67
#: questions/models/questionset.py:76 questions/models/section.py:64
#: tasks/models.py:61 views/models.py:63
@@ -1006,7 +1010,7 @@ msgstr "Opción"
msgid "File"
msgstr "Archivo"
-#: core/imports.py:601
+#: core/imports.py:600
msgid "You have no permissions to import"
msgstr "No tiene permisos para importar"
@@ -1185,7 +1189,7 @@ msgstr "Restablecer superposiciones de tutoriales"
#: core/templates/core/base_navigation_account.html:4
msgid "Update e-mail"
-msgstr "Actualizar e-mail"
+msgstr "Actualizar correo electrónico"
#: core/templates/core/bootstrap_form_field.html:69
msgid ""
@@ -1266,42 +1270,42 @@ msgstr "Un elemento superior está bloqueado."
msgid "The element is locked."
msgstr "El elemento está bloqueado."
-#: core/xml.py:27
+#: core/xml.py:26
msgid "This file does not exists."
msgstr "Este archivo no existe."
-#: core/xml.py:36 core/xml.py:90
+#: core/xml.py:35 core/xml.py:89
msgid "XML Parsing Error"
msgstr "Error de análisis XML"
-#: core/xml.py:41
+#: core/xml.py:40
msgid ""
"The content of the XML file does not consist of well-formed data or markup."
msgstr ""
"El contenido del archivo XML no consiste en datos o marcas bien formados."
-#: core/xml.py:43
+#: core/xml.py:42
msgid "This XML does not contain RDMO content."
msgstr "Este XML no engloba contenido RDMO."
-#: core/xml.py:60
+#: core/xml.py:59
msgid ""
"The \"required\" attribute in this RDMO XML file is not a valid version."
msgstr ""
"El atributo «required» de este archivo RDMO XML no es una versión válida."
-#: core/xml.py:67
+#: core/xml.py:66
msgid "This RDMO XML file requires a newer RDMO version to be imported."
msgstr ""
"Este archivo RDMO XML requiere una versión RDMO más reciente para ser "
"importado."
-#: core/xml.py:78
+#: core/xml.py:77
msgid "The \"version\" attribute in this RDMO XML file is not a valid version."
msgstr ""
"El atributo «version» de este archivo RDMO XML no es una versión válida."
-#: core/xml.py:91 core/xml.py:103
+#: core/xml.py:90 core/xml.py:102
msgid "This is not a valid RDMO XML file."
msgstr "Este no es un archivo XML RDMO válido."
@@ -1426,12 +1430,12 @@ msgstr "Importar"
msgid "Import elements"
msgstr "Importar elementos"
-#: management/viewsets.py:41 management/viewsets.py:77 projects/viewsets.py:370
-#: projects/viewsets.py:371 projects/viewsets.py:542
+#: management/viewsets.py:40 management/viewsets.py:76 projects/viewsets.py:379
+#: projects/viewsets.py:380 projects/viewsets.py:549
msgid "This field may not be blank."
msgstr "Este campo no puede estar vacío."
-#: management/viewsets.py:79
+#: management/viewsets.py:78
msgid "This is not a valid RDMO import JSON."
msgstr "Esto no es un JSON de importación RDMO válido."
@@ -1472,7 +1476,7 @@ msgstr ""
"Designa si este conjunto de opciones (y sus opciones) pueden o no ser "
"modificados."
-#: options/models.py:44 questions/models/catalog.py:61 tasks/models.py:45
+#: options/models.py:44 questions/models/catalog.py:62 tasks/models.py:45
#: views/models.py:47
msgid "Order"
msgstr "Orden"
@@ -1550,47 +1554,47 @@ msgstr ""
#: options/models.py:182
msgid "The text for this option (in the primary language)."
-msgstr "El texto de esta opción (en la lengua principal)."
+msgstr "El texto de esta opción (en el primer idioma)."
#: options/models.py:187
msgid "The text for this option (in the secondary language)."
-msgstr "El texto de esta opción (en la lengua secundaria)."
+msgstr "El texto de esta opción (en el segundo idioma)."
#: options/models.py:192
msgid "The text for this option (in the tertiary language)."
-msgstr "El texto de esta opción (en la lengua terciaria)."
+msgstr "El texto de esta opción (en el tercer idioma)."
#: options/models.py:197
msgid "The text for this option (in the quaternary language)."
-msgstr "El texto de esta opción (en la lengua cuaternaria)."
+msgstr "El texto de esta opción (en el cuarto idioma)."
#: options/models.py:202
msgid "The text for this option (in the quinary language)."
-msgstr "El texto de esta opción (en lenguaje quinario)."
+msgstr "El texto de esta opción (en el quinto idioma)."
#: options/models.py:207
msgid "The help text for this option (in the primary language)."
-msgstr "El texto de ayuda para esta opción (en el idioma principal)."
+msgstr "El texto de ayuda para esta opción (en el primer idioma)."
#: options/models.py:212
msgid "The help text for this option (in the secondary language)."
-msgstr "El texto de ayuda para esta opción (en el idioma secundario)."
+msgstr "El texto de ayuda para esta opción (en el segundo idioma)."
#: options/models.py:217
msgid "The help text for this option (in the tertiary language)."
-msgstr "El texto de ayuda para esta opción (en el idioma terciario)."
+msgstr "El texto de ayuda para esta opción (en el tercer idioma)."
#: options/models.py:222
msgid "The help text for this option (in the quaternary language)."
-msgstr "El texto de ayuda para esta opción (en el idioma cuaternario)."
+msgstr "El texto de ayuda para esta opción (en el cuarto idioma)."
#: options/models.py:227
msgid "The help text for this option (in the quinary language)."
-msgstr "El texto de ayuda para esta opción (en el idioma quinario)."
+msgstr "El texto de ayuda para esta opción (en el quinto idioma)."
#: options/models.py:231 questions/models/question.py:122
msgid "Default text value (primary)"
-msgstr "Valor del texto por defecto (primario)"
+msgstr "Valor del texto por defecto (primer idioma)"
#: options/models.py:232
msgid ""
@@ -1598,11 +1602,11 @@ msgid ""
"primary language)."
msgstr ""
"El valor de texto por defecto para la entrada adicional de esta opción (en "
-"el idioma principal)."
+"el primer idioma)."
#: options/models.py:236 questions/models/question.py:127
msgid "Default text value (secondary)"
-msgstr "Valor de texto por defecto (secundario)"
+msgstr "Valor de texto por defecto (segundo idioma)"
#: options/models.py:237
msgid ""
@@ -1610,11 +1614,11 @@ msgid ""
"secondary language)."
msgstr ""
"El valor de texto por defecto para la entrada adicional de esta opción (en "
-"el idioma secundario)."
+"el segundo idioma)."
#: options/models.py:241 questions/models/question.py:132
msgid "Default text value (tertiary)"
-msgstr "Valor de texto por defecto (terciario)"
+msgstr "Valor de texto por defecto (tercer idioma)"
#: options/models.py:242
msgid ""
@@ -1622,11 +1626,11 @@ msgid ""
"tertiary language)."
msgstr ""
"El valor de texto por defecto para la entrada adicional de esta opción (en "
-"el idioma terciario)."
+"el tercer idioma)."
#: options/models.py:246 questions/models/question.py:137
msgid "Default text value (quaternary)"
-msgstr "Valor de texto por defecto (cuaternario)"
+msgstr "Valor de texto por defecto (cuarto idioma)"
#: options/models.py:247
msgid ""
@@ -1634,11 +1638,11 @@ msgid ""
"quaternary language)."
msgstr ""
"El valor de texto por defecto para la entrada adicional de esta opción (en "
-"el idioma cuaternario)."
+"el cuarto idioma)."
#: options/models.py:251 questions/models/question.py:142
msgid "Default text value (quinary)"
-msgstr "Valor por defecto de texto (quinario)"
+msgstr "Valor por defecto de texto (quinto idioma)"
#: options/models.py:252
msgid ""
@@ -1646,47 +1650,47 @@ msgid ""
"quinary language)."
msgstr ""
"El valor de texto por defecto para la entrada adicional de esta opción (en "
-"el lenguaje quinario)."
+"el quinto idioma)."
#: options/models.py:256
msgid "View text (primary)"
-msgstr "Ver texto (primario)"
+msgstr "Ver texto (primer idioma)"
#: options/models.py:257
msgid "The view text for this option (in the primary language)."
-msgstr "El texto de la vista para esta opción (en el idioma principal)."
+msgstr "El texto de la vista para esta opción (en el primer idioma)."
#: options/models.py:261
msgid "View text (secondary)"
-msgstr "Ver texto (secundario)"
+msgstr "Ver texto (segundo idioma)"
#: options/models.py:262
msgid "The view text for this option (in the secondary language)."
-msgstr "El texto de la vista para esta opción (en el idioma secundario)."
+msgstr "El texto de la vista para esta opción (en el segundo idioma)."
#: options/models.py:266
msgid "View text (tertiary)"
-msgstr "Ver texto (terciario)"
+msgstr "Ver texto (tercer idioma)"
#: options/models.py:267
msgid "The view text for this option (in the tertiary language)."
-msgstr "El texto de la vista para esta opción (en la lengua terciaria)."
+msgstr "El texto de la vista para esta opción (en el tercer idioma)."
#: options/models.py:271
msgid "View text (quaternary)"
-msgstr "Ver texto (cuaternario)"
+msgstr "Ver texto (cuarto idioma)"
#: options/models.py:272
msgid "The view text for this option (in the quaternary language)."
-msgstr "El texto de la vista para esta opción (en el idioma cuaternario)."
+msgstr "El texto de la vista para esta opción (en el cuarto idioma)."
#: options/models.py:276
msgid "View text (quinary)"
-msgstr "Ver texto (quinario)"
+msgstr "Ver texto (quinto idioma)"
#: options/models.py:277
msgid "The view text for this option (in the quinary language)."
-msgstr "El texto de la vista para esta opción (en el idioma quinario)."
+msgstr "El texto de la vista para esta opción (en el quinto idioma)."
#: options/models.py:281 options/templates/options/export/option.html:17
msgid "Additional input"
@@ -1780,7 +1784,7 @@ msgid "Reset overlays"
msgstr "Restablecer superposiciones"
#: projects/admin.py:82 projects/models/visibility.py:20
-#: questions/models/catalog.py:71 tasks/models.py:56 views/models.py:58
+#: questions/models/catalog.py:72 tasks/models.py:56 views/models.py:58
msgid "Sites"
msgstr "Sitios"
@@ -1817,17 +1821,17 @@ msgid "Editing tasks is disabled."
msgstr "La edición de tareas está desactivada."
#: projects/forms.py:213 projects/forms.py:231
-#: projects/serializers/v1/__init__.py:111
+#: projects/serializers/v1/__init__.py:108
msgid "Editing views is disabled."
msgstr "La edición de vistas está desactivada."
#: projects/forms.py:274
msgid "Username or e-mail"
-msgstr "Nombre de usuario o e-mail"
+msgstr "Nombre de usuario o correo electrónico"
#: projects/forms.py:276
msgid "The username or e-mail of the new user."
-msgstr "Nombre o e-mail del nuevo usuario."
+msgstr "Nombre o correo electrónico del nuevo usuario."
#: projects/forms.py:288
msgid "Add member silently"
@@ -1839,9 +1843,10 @@ msgid ""
"via e-mail, when you check the following checkbox."
msgstr ""
"Como gestor o administrador del sitio, usted puede añadir directament nuevos "
-"usuarios sin notificárselo via e-mail, marcando el siguiente checkbox."
+"usuarios sin notificárselo via correo electrónico, marcando el siguiente "
+"checkbox."
-#: projects/forms.py:304 projects/serializers/v1/__init__.py:214
+#: projects/forms.py:304 projects/serializers/v1/__init__.py:211
msgid "The user is already a member of the project."
msgstr "El usuario ya es miembro del proyecto."
@@ -1850,8 +1855,8 @@ msgid ""
"A user with this username or e-mail was not found. Only registered users can "
"be invited."
msgstr ""
-"No se ha encontrado un usuario con este nombre o e-mail. Solo los usuarios "
-"registrados pueden ser invitados."
+"No se ha encontrado un usuario con este nombre o correo electrónico. Solo "
+"los usuarios registrados pueden ser invitados."
#: projects/forms.py:321
msgid "Only existing users can be added silently."
@@ -1907,21 +1912,21 @@ msgstr "Destinatarios"
msgid "Enter recipients line by line"
msgstr "Introducir destinatarios línea por línea"
-#: projects/imports.py:242
+#: projects/imports.py:239
msgid "Import project from this URL"
msgstr "Importar proyecto desde este URL"
-#: projects/mixins.py:79 projects/mixins.py:96 projects/mixins.py:111
-#: projects/mixins.py:134 projects/mixins.py:152 projects/mixins.py:167
-#: projects/mixins.py:202
+#: projects/mixins.py:80 projects/mixins.py:97 projects/mixins.py:112
+#: projects/mixins.py:135 projects/mixins.py:153 projects/mixins.py:168
+#: projects/mixins.py:203
msgid "Import error"
msgstr "Importar error"
-#: projects/mixins.py:80 projects/mixins.py:153 projects/mixins.py:203
+#: projects/mixins.py:81 projects/mixins.py:154 projects/mixins.py:204
msgid "There has been an error with your import."
msgstr "Ha habido un error con su importación."
-#: projects/mixins.py:97
+#: projects/mixins.py:98
msgid ""
"There has been an error with your import. No uploaded or retrieved file "
"could be found."
@@ -1929,7 +1934,7 @@ msgstr ""
"Ha habido un error en la importación. No se ha podido encontrar el archivo "
"subido o recuperado."
-#: projects/mixins.py:135
+#: projects/mixins.py:136
msgid "Files of this type cannot be imported."
msgstr "No se pueden importar archivos de este tipo."
@@ -2033,7 +2038,7 @@ msgstr "El usuario para esta afiliación."
#: projects/models/invite.py:29
msgid "The e-mail for this membership."
-msgstr "El e-mail para esta afiliación."
+msgstr "El correo electrónico para esta afiliación."
#: projects/models/invite.py:34
msgid "The role for this invite."
@@ -2190,7 +2195,7 @@ msgstr "Descripción para este proyecto (opcional)."
#: projects/models/project.py:54
#: projects/templates/projects/project_detail_header.html:24
#: projects/templates/projects/project_import.html:31
-#: questions/models/catalog.py:142
+#: questions/models/catalog.py:143
#: questions/templates/questions/export/catalog.html:3
msgid "Catalog"
msgstr "Catálogo"
@@ -2366,7 +2371,7 @@ msgstr ""
"Los sitios para los que el proyecto es visible (en una configuración multi-"
"sitio)."
-#: projects/models/visibility.py:25 questions/models/catalog.py:81
+#: projects/models/visibility.py:25 questions/models/catalog.py:82
#: tasks/models.py:66 views/models.py:68
msgid "Group"
msgstr "Grupo"
@@ -2447,27 +2452,27 @@ msgstr "La URL del proyecto al que enviar las tareas."
msgid "The secret for a webhook to close a task (optional)."
msgstr "El secreto de un webhook para cerrar una tarea (opcional)."
-#: projects/serializers/v1/__init__.py:219
+#: projects/serializers/v1/__init__.py:216
msgid "A user with that e-mail is already a member of the project."
-msgstr "Un usuario con ese e-mail ya es miembro del proyecto."
+msgstr "Un usuario con ese correo electrónico ya es miembro del proyecto."
-#: projects/serializers/v1/__init__.py:227
+#: projects/serializers/v1/__init__.py:224
msgid "Either user or e-mail needs to be provided."
msgstr "Es necesario indicar el usuario o el correo electrónico."
-#: projects/serializers/v1/__init__.py:229
+#: projects/serializers/v1/__init__.py:226
msgid "User and e-mail are mutually exclusive."
msgstr "Usuario y correo electrónico se excluyen mutuamente."
-#: projects/serializers/v1/page.py:121
+#: projects/serializers/v1/page.py:120
msgid "entry"
msgstr "entrada"
-#: projects/serializers/v1/page.py:160
+#: projects/serializers/v1/page.py:159
msgid "block"
msgstr "bloque"
-#: projects/serializers/v1/page.py:223
+#: projects/serializers/v1/page.py:222
msgid "set"
msgstr "conjunto"
@@ -2631,7 +2636,7 @@ msgstr "Enviar una tarea establecerá su estado a \"en proceso\"."
#: projects/templates/projects/issue_send_email.html:4
#: projects/templates/projects/issue_send_email.html:30
msgid "Send by mail"
-msgstr "Enviar por e-mail"
+msgstr "Enviar por correo electrónico"
#: projects/templates/projects/issue_send_integrations.html:3
msgid "Send via integration"
@@ -2720,15 +2725,15 @@ msgid ""
"here), or by their e-mail address."
msgstr ""
"Los usuarios pueden ser invitados por su nombre (si ya tienen una cuenta "
-"aquí), o por su dirección de e-mail."
+"aquí), o por su dirección de correo electrónico."
#: projects/templates/projects/membership_form.html:32
msgid ""
"Users will receive an e-mail with a link to join the project with the "
"assigned role."
msgstr ""
-"Los usuarios recibirán un e-mail con un enlace para unirse al proyecto con "
-"el rol asignado."
+"Los usuarios recibirán un correo electrónico con un enlace para unirse al "
+"proyecto con el rol asignado."
#: projects/templates/projects/membership_form.html:35
msgid "Invite member"
@@ -2864,7 +2869,7 @@ msgstr ""
#: projects/templates/projects/project_detail_invites.html:15
#: projects/templates/projects/project_detail_memberships.html:21
msgid "E-Mail"
-msgstr "E-Mail"
+msgstr "Correo electrónico"
#: projects/templates/projects/project_detail_issues.html:21
#: tasks/templates/tasks/export/tasks.html:35
@@ -2914,14 +2919,14 @@ msgstr "de"
#: projects/templates/projects/project_detail_memberships_help.html:4
msgid ""
"Here you can see who can access the project and invite additional members. "
-"You can use the user roles to manage which rights the benefits have. Unless "
-"you are the last owner, you can leave the project with the button next to "
-"your name."
+"You can use the user roles to manage which rights the users have. Unless you "
+"are the last owner, you can leave the project with the button next to your "
+"name."
msgstr ""
"Usted puede ver aquí quienes pueden acceder al proyecto e invitar a otros "
"miembros. Puede utilizar sus roles para gestionar qué permisos tienen los "
-"beneficios. Si no es usted el último propietario, puede abandonar el "
-"proyecto con el botón al lado de su nombre."
+"usuarios. Si no es usted el último propietario, puede abandonar el proyecto "
+"con el botón al lado de su nombre."
#: projects/templates/projects/project_detail_sidebar.html:17
msgid "Answer questions"
@@ -3235,7 +3240,7 @@ msgstr ""
"utilizando los botones de la esquina superior derecha."
#: projects/templates/projects/project_view.html:90
-#: projects/views/project.py:145
+#: projects/views/project.py:137
msgid "Error"
msgstr "Error"
@@ -3312,39 +3317,39 @@ msgstr "Se ha alcanzado la cuota de archivos para este proyecto."
msgid "Enter a valid datetime."
msgstr "Introduzca una fecha y hora válidas."
-#: projects/views/project.py:125
+#: projects/views/project.py:117
msgid "Sorry, your invitation has been expired."
msgstr "Lo sentimos, su invitación ha expirado."
-#: projects/views/project.py:128
+#: projects/views/project.py:120
#, python-format
msgid "Sorry, but this invitation is for the user \"%s\"."
msgstr "Lo sentimos, pero esta invitación es para el usuario \"%s\"."
-#: projects/views/project.py:142
+#: projects/views/project.py:134
msgid "Sorry, the invitation link is not valid."
msgstr "Lo sentimos, la invitación no es válida."
-#: projects/views/project_update.py:81 projects/views/project_update.py:86
-#: projects/views/project_update.py:91
+#: projects/views/project_update.py:79 projects/views/project_update.py:84
+#: projects/views/project_update.py:89
msgid "Update visibility"
msgstr "Visibilidad de la actualización"
-#: projects/views/project_update.py:82 projects/views/project_update.py:87
-#: projects/views/project_update.py:89 projects/views/project_update.py:92
-#: projects/views/project_update.py:94
+#: projects/views/project_update.py:80 projects/views/project_update.py:85
+#: projects/views/project_update.py:87 projects/views/project_update.py:90
+#: projects/views/project_update.py:92
msgid "Remove visibility"
msgstr "Eliminar visibilidad"
-#: projects/views/project_update.py:84
+#: projects/views/project_update.py:82
msgid "Make visible for this site"
msgstr "Hacer visible para este sitio"
-#: projects/views/project_update.py:97
+#: projects/views/project_update.py:95
msgid "Make visible"
msgstr "Hacer visible"
-#: projects/viewsets.py:659
+#: projects/viewsets.py:666
msgid "You reached the file quota for this project."
msgstr "Usted ha alcanzado la quota de archivado para este proyecto."
@@ -3380,23 +3385,23 @@ msgstr "Selección de fecha"
msgid "File upload"
msgstr "Subida de archivo"
-#: questions/models/catalog.py:37
+#: questions/models/catalog.py:38
msgid "The Uniform Resource Identifier of this catalog (auto-generated)."
msgstr "El Identificador de Recurso Uniforme de este catálogo (auto-generado)."
-#: questions/models/catalog.py:42
+#: questions/models/catalog.py:43
msgid "The prefix for the URI of this catalog."
msgstr "El prefijo del URI de este catálogo."
-#: questions/models/catalog.py:47
+#: questions/models/catalog.py:48
msgid "The path for the URI of this catalog."
msgstr "La ruta para el URI de este catálogo."
-#: questions/models/catalog.py:52
+#: questions/models/catalog.py:53
msgid "Additional internal information about this catalog."
msgstr "Información interna adicional sobre este catálogo."
-#: questions/models/catalog.py:57
+#: questions/models/catalog.py:58
msgid ""
"Designates whether this catalog (and its sections, question sets and "
"questions) can be changed."
@@ -3404,111 +3409,111 @@ msgstr ""
"Designa si este catálogo (y sus secciones, conjuntos de pregruntas y "
"preguntas) pueden ser modificados."
-#: questions/models/catalog.py:62
+#: questions/models/catalog.py:63
msgid "The position of this catalog in lists."
msgstr "La posición de este catálogo en listas."
-#: questions/models/catalog.py:66 questions/models/section.py:121
+#: questions/models/catalog.py:67 questions/models/section.py:121
msgid "Sections"
msgstr "Secciones"
-#: questions/models/catalog.py:67
+#: questions/models/catalog.py:68
msgid "The sections of this catalog."
msgstr "Las secciones de este catálogo."
-#: questions/models/catalog.py:72
+#: questions/models/catalog.py:73
msgid "The sites this catalog belongs to (in a multi site setup)."
msgstr ""
"Los sitios a los que pertenece este catálogo (en una configuración multi "
"sitios)."
-#: questions/models/catalog.py:77
+#: questions/models/catalog.py:78
msgid "The sites that can edit this catalog (in a multi site setup)."
msgstr "The sites that can edit this catalog (in a multi site setup)."
-#: questions/models/catalog.py:82
+#: questions/models/catalog.py:83
msgid "The groups for which this catalog is active."
msgstr "Los grupos para los cuales este catálogo está activo."
-#: questions/models/catalog.py:86 questions/models/page.py:86
+#: questions/models/catalog.py:87 questions/models/page.py:86
#: questions/models/questionset.py:81 questions/models/section.py:69
#: tasks/models.py:71 views/models.py:78
msgid "Title (primary)"
-msgstr "Título (primario)"
+msgstr "Título (primer idioma)"
-#: questions/models/catalog.py:87
+#: questions/models/catalog.py:88
msgid "The title for this catalog (in the primary language)."
-msgstr "El título de este catálogo (en la lengua principal)."
+msgstr "El título de este catálogo (en el primer idioma)."
-#: questions/models/catalog.py:91 questions/models/page.py:91
+#: questions/models/catalog.py:92 questions/models/page.py:91
#: questions/models/questionset.py:86 questions/models/section.py:74
#: tasks/models.py:76 views/models.py:83
msgid "Title (secondary)"
-msgstr "Título (secundario)"
+msgstr "Título (segundo idioma)"
-#: questions/models/catalog.py:92
+#: questions/models/catalog.py:93
msgid "The title for this catalog (in the secondary language)."
-msgstr "El título de este catálogo (en la lengua secundaria)."
+msgstr "El título de este catálogo (en el segundo idioma)."
-#: questions/models/catalog.py:96 questions/models/page.py:96
+#: questions/models/catalog.py:97 questions/models/page.py:96
#: questions/models/questionset.py:91 questions/models/section.py:79
#: tasks/models.py:81 views/models.py:88
msgid "Title (tertiary)"
-msgstr "Título (terciario)"
+msgstr "Título (tercer idioma)"
-#: questions/models/catalog.py:97
+#: questions/models/catalog.py:98
msgid "The title for this catalog (in the tertiary language)."
-msgstr "El título de este catálogo (en la lengua terciaria)."
+msgstr "El título de este catálogo (en el tercer idioma)."
-#: questions/models/catalog.py:101 questions/models/page.py:101
+#: questions/models/catalog.py:102 questions/models/page.py:101
#: questions/models/questionset.py:96 questions/models/section.py:84
#: tasks/models.py:86 views/models.py:93
msgid "Title (quaternary)"
-msgstr "Título (cuaternario)"
+msgstr "Título (cuarto idioma)"
-#: questions/models/catalog.py:102
+#: questions/models/catalog.py:103
msgid "The title for this catalog (in the quaternary language)."
-msgstr "El título de este catálogo (en lengua cuaternaria)."
+msgstr "El título de este catálogo (en el cuarto idioma)."
-#: questions/models/catalog.py:106 questions/models/page.py:106
+#: questions/models/catalog.py:107 questions/models/page.py:106
#: questions/models/questionset.py:101 questions/models/section.py:89
#: tasks/models.py:91 views/models.py:98
msgid "Title (quinary)"
-msgstr "Título (quinario)"
+msgstr "Título (quinto idioma)"
-#: questions/models/catalog.py:107
+#: questions/models/catalog.py:108
msgid "The title for this catalog (in the quinary language)."
-msgstr "El título de este catálogo (en lenguaje quinario)."
+msgstr "El título de este catálogo (en el quinto idioma)."
-#: questions/models/catalog.py:112
+#: questions/models/catalog.py:113
msgid "The help text for this catalog (in the primary language)."
-msgstr "El texto de ayuda de este catálogo (en el idioma principal)."
+msgstr "El texto de ayuda de este catálogo (en el primer idioma)."
-#: questions/models/catalog.py:117
+#: questions/models/catalog.py:118
msgid "The help text for this catalog (in the secondary language)."
-msgstr "El texto de ayuda de este catálogo (en el idioma secundario)."
+msgstr "El texto de ayuda de este catálogo (en el segundo idioma)."
-#: questions/models/catalog.py:122
+#: questions/models/catalog.py:123
msgid "The help text for this catalog (in the tertiary language)."
-msgstr "El texto de ayuda de este catálogo (en el idioma terciario)."
+msgstr "El texto de ayuda de este catálogo (en el tercer idioma)."
-#: questions/models/catalog.py:127
+#: questions/models/catalog.py:128
msgid "The help text for this catalog (in the quaternary language)."
-msgstr "El texto de ayuda de este catálogo (en lenguaje cuaternario)."
+msgstr "El texto de ayuda de este catálogo (en el cuarto idioma)."
-#: questions/models/catalog.py:132
+#: questions/models/catalog.py:133
msgid "The help text for this catalog (in the quinary language)."
-msgstr "El texto de ayuda de este catálogo (en lenguaje quinario)."
+msgstr "El texto de ayuda de este catálogo (en el quinto idioma)."
-#: questions/models/catalog.py:136 tasks/models.py:147 views/models.py:128
+#: questions/models/catalog.py:137 tasks/models.py:147 views/models.py:128
msgid "Available"
msgstr "Disponible"
-#: questions/models/catalog.py:137
+#: questions/models/catalog.py:138
msgid "Designates whether this catalog is generally available for projects."
msgstr "Designa si este catálogo está a disposición general de los proyectos."
-#: questions/models/catalog.py:143 tasks/models.py:50 views/models.py:52
+#: questions/models/catalog.py:144 tasks/models.py:50 views/models.py:52
msgid "Catalogs"
msgstr "Catálogos"
@@ -3569,148 +3574,148 @@ msgstr ""
#: questions/models/page.py:87
msgid "The title for this page (in the primary language)."
-msgstr "El título de esta página (en la lengua principal)."
+msgstr "El título de esta página (en el primer idioma)."
#: questions/models/page.py:92
msgid "The title for this page (in the secondary language)."
-msgstr "El título de esta página (en la lengua secundaria)."
+msgstr "El título de esta página (en el segundo idioma)."
#: questions/models/page.py:97
msgid "The title for this page (in the tertiary language)."
-msgstr "El título de esta página (en la lengua terciaria)."
+msgstr "El título de esta página (en el tercer idioma)."
#: questions/models/page.py:102
msgid "The title for this page (in the quaternary language)."
-msgstr "El título de esta página (en la lengua cuaternaria)."
+msgstr "El título de esta página (en el cuarto idioma)."
#: questions/models/page.py:107
msgid "The title for this page (in the quinary language)."
-msgstr "El título de esta página (en el idioma quinario)."
+msgstr "El título de esta página (en el quinto idioma)."
#: questions/models/page.py:111 questions/models/section.py:94
msgid "Short title (primary)"
-msgstr "Título abreviado (primario)"
+msgstr "Título abreviado (primer idioma)"
#: questions/models/page.py:112
msgid ""
"The short title for this page (in the primary language), used in the "
"navigation."
msgstr ""
-"El título abreviado de esta página (en la lengua principal), utilizado en la "
+"El título abreviado de esta página (en el primer idioma), utilizado en la "
"navegación."
#: questions/models/page.py:116 questions/models/section.py:99
msgid "Short title (secondary)"
-msgstr "Título abreviado (secundario)"
+msgstr "Título abreviado (segundo idioma)"
#: questions/models/page.py:117
msgid ""
"The short title for this page (in the secondary language), used in the "
"navigation."
msgstr ""
-"El título abreviado de esta página (en la lengua secundaria), utilizado en "
-"la navegación."
+"El título abreviado de esta página (en el segundo idioma), utilizado en la "
+"navegación."
#: questions/models/page.py:121 questions/models/section.py:104
msgid "Short title (tertiary)"
-msgstr "Título abreviado (terciario)"
+msgstr "Título abreviado (tercer idioma)"
#: questions/models/page.py:122
msgid ""
"The short title for this page (in the tertiary language), used in the "
"navigation."
msgstr ""
-"El título abreviado de esta página (en la lengua terciaria), utilizado en la "
+"El título abreviado de esta página (en el tercer idioma), utilizado en la "
"navegación."
#: questions/models/page.py:126 questions/models/section.py:109
msgid "Short title (quaternary)"
-msgstr "Título abreviado (cuaternario)"
+msgstr "Título abreviado (cuarto idioma)"
#: questions/models/page.py:127
msgid ""
"The short title for this page (in the quaternary language), used in the "
"navigation."
msgstr ""
-"El título abreviado de esta página (en la lengua cuaternaria), utilizado en "
-"la navegación."
+"El título abreviado de esta página (en el cuarto idioma), utilizado en la "
+"navegación."
#: questions/models/page.py:131 questions/models/section.py:114
msgid "Short title (quinary)"
-msgstr "Título abreviado (quinario)"
+msgstr "Título abreviado (quinto idioma)"
#: questions/models/page.py:132
msgid ""
"The short title for this page (in the quinary language), used in the "
"navigation."
msgstr ""
-"El título abreviado de esta página (en el idioma quinario), utilizado en la "
+"El título abreviado de esta página (en el quinto idioma), utilizado en la "
"navegación."
#: questions/models/page.py:137
msgid "The help text for this page (in the primary language)."
-msgstr "El texto de ayuda de esta página (en la lengua principal)."
+msgstr "El texto de ayuda de esta página (en el primer idioma)."
#: questions/models/page.py:142
msgid "The help text for this page (in the secondary language)."
-msgstr "El texto de ayuda de esta página (en la lengua secundaria)."
+msgstr "El texto de ayuda de esta página (en el segundo idioma)."
#: questions/models/page.py:147
msgid "The help text for this page (in the tertiary language)."
-msgstr "El texto de ayuda de esta página (en la lengua terciaria)."
+msgstr "El texto de ayuda de esta página (en el tercer idioma)."
#: questions/models/page.py:152
msgid "The help text for this page (in the quaternary language)."
-msgstr "El texto de ayuda de esta página (en la lengua cuaternaria)."
+msgstr "El texto de ayuda de esta página (en el cuarto idioma)."
#: questions/models/page.py:157
msgid "The help text for this page (in the quinary language)."
-msgstr "El texto de ayuda de esta página (en el idioma quinario)."
+msgstr "El texto de ayuda de esta página (en el quinto idioma)."
#: questions/models/page.py:161 questions/models/question.py:157
#: questions/models/questionset.py:131
msgid "Name (primary)"
-msgstr "Nombre (primario)"
+msgstr "Nombre (primer idioma)"
#: questions/models/page.py:162
msgid "The name displayed for this page (in the primary language)."
-msgstr "El nombre mostrado para esta página (en el idioma principal)."
+msgstr "El nombre mostrado para esta página (en el primer idioma)."
#: questions/models/page.py:166 questions/models/question.py:162
#: questions/models/questionset.py:136
msgid "Name (secondary)"
-msgstr "Nombre (secundario)"
+msgstr "Nombre (segundo idioma)"
#: questions/models/page.py:167
msgid "The name displayed for this page (in the secondary language)."
-msgstr "El nombre mostrado para esta página (en el idioma secundario)."
+msgstr "El nombre mostrado para esta página (en el segundo idioma)."
#: questions/models/page.py:171 questions/models/question.py:167
#: questions/models/questionset.py:141
msgid "Name (tertiary)"
-msgstr "Nombre (terciario)"
+msgstr "Nombre (tercer idioma)"
#: questions/models/page.py:172
msgid "The name displayed for this page (in the tertiary language)."
-msgstr "El nombre que aparece para esta página (en el idioma terciario)."
+msgstr "El nombre que aparece para esta página (en el tercer idioma)."
#: questions/models/page.py:176 questions/models/question.py:172
#: questions/models/questionset.py:146
msgid "Name (quaternary)"
-msgstr "Nombre (cuaternario)"
+msgstr "Nombre (cuarto idioma)"
#: questions/models/page.py:177
msgid "The name displayed for this page (in the quaternary language)."
-msgstr "El nombre que aparece para esta página (en el idioma cuaternario)."
+msgstr "El nombre que aparece para esta página (en el cuarto idioma)."
#: questions/models/page.py:181 questions/models/question.py:177
#: questions/models/questionset.py:151
msgid "Name (quinary)"
-msgstr "Nombre (quinario)"
+msgstr "Nombre (quinto idioma)"
#: questions/models/page.py:182
msgid "The name displayed for this page (in the quinary language)."
-msgstr "El nombre mostrado para esta página (en el idioma quinario)."
+msgstr "El nombre mostrado para esta página (en el quinto idioma)."
#: questions/models/page.py:187
msgid "List of conditions evaluated for this page."
@@ -3765,68 +3770,68 @@ msgstr ""
#: questions/models/question.py:73
msgid "The help text for this question (in the primary language)."
-msgstr "El texto de ayuda para esta pregunta (en la lengua principal)."
+msgstr "El texto de ayuda para esta pregunta (en el primer idioma)."
#: questions/models/question.py:78
msgid "The help text for this question (in the secondary language)."
-msgstr "El texto de ayuda para esta pregunta (en la lengua secundaria)."
+msgstr "El texto de ayuda para esta pregunta (en el segundo idioma)."
#: questions/models/question.py:83
msgid "The help text for this question (in the tertiary language)."
-msgstr "El texto de ayuda para esta pregunta (en la lengua terciaria)."
+msgstr "El texto de ayuda para esta pregunta (en el tercer idioma)."
#: questions/models/question.py:88
msgid "The help text for this question (in the quaternary language)."
-msgstr "El texto de ayuda para esta pregunta (en lengua cuaternaria)."
+msgstr "El texto de ayuda para esta pregunta (en el cuarto idioma)."
#: questions/models/question.py:93
msgid "The help text for this question (in the quinary language)."
-msgstr "El texto de ayuda para esta pregunta (en el idioma quinario)."
+msgstr "El texto de ayuda para esta pregunta (en el quinto idioma)."
#: questions/models/question.py:98
msgid "The text for this question (in the primary language)."
-msgstr "El texto para esta pregunta (en la lengua principal)."
+msgstr "El texto para esta pregunta (en el primer idioma)."
#: questions/models/question.py:103
msgid "The text for this question (in the secondary language)."
-msgstr "El texto para esta pregunta (en la lengua secundaria)."
+msgstr "El texto para esta pregunta (en el segundo idioma)."
#: questions/models/question.py:108
msgid "The text for this question (in the tertiary language)."
-msgstr "El texto para esta pregunta (en la lengua terciaria)."
+msgstr "El texto para esta pregunta (en el tercer idioma)."
#: questions/models/question.py:113
msgid "The text for this question (in the quaternary language)."
-msgstr "El texto de esta pregunta (en lengua cuaternaria)."
+msgstr "El texto de esta pregunta (en el cuarto idioma)."
#: questions/models/question.py:118
msgid "The text for this question (in the quinary language)."
-msgstr "El texto de esta pregunta (en lengua quinaria)."
+msgstr "El texto de esta pregunta (en el quinto idioma)."
#: questions/models/question.py:123
msgid "The default text value for this question (in the primary language)."
msgstr ""
-"El valor de texto por defecto para esta pregunta (en el idioma principal)."
+"El valor de texto por defecto para esta pregunta (en el primer idioma)."
#: questions/models/question.py:128
msgid "The default text value for this question (in the secondary language)."
msgstr ""
-"El valor de texto por defecto para esta pregunta (en el idioma secundario)."
+"El valor de texto por defecto para esta pregunta (en el segundo idioma)."
#: questions/models/question.py:133
msgid "The default text value for this question (in the tertiary language)."
msgstr ""
-"El valor de texto por defecto para esta pregunta (en la lengua terciaria)."
+"El valor de texto por defecto para esta pregunta (en el tercer idioma)."
#: questions/models/question.py:138
msgid "The default text value for this question (in the quaternary language)."
msgstr ""
-"El valor de texto por defecto para esta pregunta (en el idioma cuaternario)."
+"El valor de texto por defecto para esta pregunta (en el cuarto idioma)."
#: questions/models/question.py:143
msgid "The default text value for this question (in the quinary language)."
msgstr ""
-"El valor de texto por defecto para esta pregunta (en el idioma quinario)."
+"El valor de texto por defecto para esta pregunta (en el quinto idioma)."
#: questions/models/question.py:147
msgid "Default option"
@@ -3853,23 +3858,23 @@ msgstr ""
#: questions/models/question.py:158
msgid "The name displayed for this question (in the primary language)."
-msgstr "El nombre mostrado para esta pregunta (en el idioma principal)."
+msgstr "El nombre mostrado para esta pregunta (en el primer idioma)."
#: questions/models/question.py:163
msgid "The name displayed for this question (in the secondary language)."
-msgstr "El nombre mostrado para esta pregunta (en el idioma secundario)."
+msgstr "El nombre mostrado para esta pregunta (en el segundo idioma)."
#: questions/models/question.py:168
msgid "The name displayed for this question (in the tertiary language)."
-msgstr "El nombre que aparece para esta pregunta (en el idioma terciario)."
+msgstr "El nombre que aparece para esta pregunta (en el tercer idioma)."
#: questions/models/question.py:173
msgid "The name displayed for this question (in the quaternary language)."
-msgstr "El nombre que aparece para esta pregunta (en la lengua cuaternaria)."
+msgstr "El nombre que aparece para esta pregunta (en el cuarto idioma)."
#: questions/models/question.py:178
msgid "The name displayed for this question (in the quinary language)."
-msgstr "El nombre mostrado para esta pregunta (en el lenguaje quinario)."
+msgstr "El nombre mostrado para esta pregunta (en el quinto idioma)."
#: questions/models/question.py:182
msgid "Widget type"
@@ -3982,75 +3987,73 @@ msgstr ""
#: questions/models/questionset.py:82
msgid "The title for this question set (in the primary language)."
-msgstr "El título de esta serie de preguntas (en la lengua principal)."
+msgstr "El título de esta serie de preguntas (en el primer idioma)."
#: questions/models/questionset.py:87
msgid "The title for this question set (in the secondary language)."
-msgstr "El título de esta serie de preguntas (en la lengua secundaria)."
+msgstr "El título de esta serie de preguntas (en el segundo idioma)."
#: questions/models/questionset.py:92
msgid "The title for this question set (in the tertiary language)."
-msgstr "El título de esta serie de preguntas (en la lengua terciaria)."
+msgstr "El título de esta serie de preguntas (en el tercer idioma)."
#: questions/models/questionset.py:97
msgid "The title for this question set (in the quaternary language)."
-msgstr "El título de esta serie de preguntas (en lengua cuaternaria)."
+msgstr "El título de esta serie de preguntas (en el cuarto idioma)."
#: questions/models/questionset.py:102
msgid "The title for this question set (in the quinary language)."
-msgstr "El título de esta serie de preguntas (en lenguaje quinario)."
+msgstr "El título de esta serie de preguntas (en el quinto idioma)."
#: questions/models/questionset.py:107
msgid "The help text for this question set (in the primary language)."
msgstr ""
-"El texto de ayuda para este conjunto de preguntas (en la lengua principal)."
+"El texto de ayuda para este conjunto de preguntas (en el primer idioma)."
#: questions/models/questionset.py:112
msgid "The help text for this question set (in the secondary language)."
msgstr ""
-"El texto de ayuda para este conjunto de preguntas (en la lengua secundaria)."
+"El texto de ayuda para este conjunto de preguntas (en el segundo idioma)."
#: questions/models/questionset.py:117
msgid "The help text for this question set (in the tertiary language)."
msgstr ""
-"El texto de ayuda para este conjunto de preguntas (en la lengua terciaria)."
+"El texto de ayuda para este conjunto de preguntas (en el tercer idioma)."
#: questions/models/questionset.py:122
msgid "The help text for this question set (in the quaternary language)."
msgstr ""
-"El texto de ayuda para este conjunto de preguntas (en lengua cuaternaria)."
+"El texto de ayuda para este conjunto de preguntas (en el cuarto idioma)."
#: questions/models/questionset.py:127
msgid "The help text for this question set (in the quinary language)."
msgstr ""
-"El texto de ayuda para este conjunto de preguntas (en lenguaje quinario)."
+"El texto de ayuda para este conjunto de preguntas (en el quinto idioma)."
#: questions/models/questionset.py:132
msgid "The name displayed for this question set (in the primary language)."
msgstr ""
-"El nombre mostrado para este conjunto de preguntas (en el idioma principal)."
+"El nombre mostrado para este conjunto de preguntas (en el primer idioma)."
#: questions/models/questionset.py:137
msgid "The name displayed for this question set (in the secondary language)."
msgstr ""
-"El nombre mostrado para este conjunto de preguntas (en el idioma secundario)."
+"El nombre mostrado para este conjunto de preguntas (en el segundo idioma)."
#: questions/models/questionset.py:142
msgid "The name displayed for this question set (in the tertiary language)."
msgstr ""
-"El nombre que aparece para este conjunto de preguntas (en el idioma "
-"terciario)."
+"El nombre que aparece para este conjunto de preguntas (en el tercer idioma)."
#: questions/models/questionset.py:147
msgid "The name displayed for this question set (in the quaternary language)."
msgstr ""
-"El nombre que aparece para este conjunto de preguntas (en el idioma "
-"cuaternario)."
+"El nombre que aparece para este conjunto de preguntas (en el cuarto idioma)."
#: questions/models/questionset.py:152
msgid "The name displayed for this question set (in the quinary language)."
msgstr ""
-"El nombre mostrado para este conjunto de preguntas (en el lenguaje quinario)."
+"El nombre mostrado para este conjunto de preguntas (en el quinto idioma)."
#: questions/models/questionset.py:157
msgid "List of conditions evaluated for this question set."
@@ -4096,62 +4099,62 @@ msgstr ""
#: questions/models/section.py:70
msgid "The title for this section (in the primary language)."
-msgstr "El título de esta sección (en la lengua principal)."
+msgstr "El título de esta sección (en el primer idioma)."
#: questions/models/section.py:75
msgid "The title for this section (in the secondary language)."
-msgstr "El título de esta sección (en la lengua secundaria)."
+msgstr "El título de esta sección (en el segundo idioma)."
#: questions/models/section.py:80
msgid "The title for this section (in the tertiary language)."
-msgstr "El título de esta sección (en la lengua terciaria)."
+msgstr "El título de esta sección (en el tercer idioma)."
#: questions/models/section.py:85
msgid "The title for this section (in the quaternary language)."
-msgstr "El título de esta sección (en la lengua cuaternaria)."
+msgstr "El título de esta sección (en el cuarto idioma)."
#: questions/models/section.py:90
msgid "The title for this section (in the quinary language)."
-msgstr "El título de esta sección (en lenguaje quinario)."
+msgstr "El título de esta sección (en el quinto idioma)."
#: questions/models/section.py:95
msgid ""
"The short title for this section (in the primary language), used in the "
"navigation."
msgstr ""
-"El título abreviado de esta sección (en la lengua principal), utilizado en "
-"la navegación."
+"El título abreviado de esta sección (en el primer idioma), utilizado en la "
+"navegación."
#: questions/models/section.py:100
msgid ""
"The short title for this section (in the secondary language), used in the "
"navigation."
msgstr ""
-"El título abreviado de esta sección (en la lengua secundaria), utilizado en "
-"la navegación."
+"El título abreviado de esta sección (en el segundo idioma), utilizado en la "
+"navegación."
#: questions/models/section.py:105
msgid ""
"The short title for this section (in the tertiary language), used in the "
"navigation."
msgstr ""
-"El título abreviado de esta sección (en la lengua terciaria), utilizado en "
-"la navegación."
+"El título abreviado de esta sección (en el tercer idioma), utilizado en la "
+"navegación."
#: questions/models/section.py:110
msgid ""
"The short title for this section (in the quaternary language), used in the "
"navigation."
msgstr ""
-"El título abreviado de esta sección (en la lengua cuaternaria), utilizado en "
-"la navegación."
+"El título abreviado de esta sección (en el cuarto idioma), utilizado en la "
+"navegación."
#: questions/models/section.py:115
msgid ""
"The short title for this section (in the quinary language), used in the "
"navigation."
msgstr ""
-"El Título abreviado de esta sección (en lenguaje quinario), utilizado en la "
+"El Título abreviado de esta sección (en el quinto idioma), utilizado en la "
"navegación."
#: questions/models/section.py:120
@@ -4291,43 +4294,43 @@ msgstr "Los grupos para los cuales esta tarea está activa."
#: tasks/models.py:72
msgid "The title for this task (in the primary language)."
-msgstr "El título de esta tarea (en la lengua principal)."
+msgstr "El título de esta tarea (en el primer idioma)."
#: tasks/models.py:77
msgid "The title for this task (in the secondary language)."
-msgstr "El título de esta tarea (en la lengua secundaria)."
+msgstr "El título de esta tarea (en el segundo idioma)."
#: tasks/models.py:82
msgid "The title for this task (in the tertiary language)."
-msgstr "El título de esta tarea (en la lengua terciaria)."
+msgstr "El título de esta tarea (en el tercer idioma)."
#: tasks/models.py:87
msgid "The title for this task (in the quaternary language)."
-msgstr "El título de esta tarea (en lengua cuaternaria)."
+msgstr "El título de esta tarea (en el cuarto idioma)."
#: tasks/models.py:92
msgid "The title for this task (in the quinary language)."
-msgstr "El título de esta tarea (en lenguaje quinario)."
+msgstr "El título de esta tarea (en el quinto idioma)."
#: tasks/models.py:97
msgid "The text for this task (in the primary language)."
-msgstr "El texto para esta tarea (en la lengua principal)."
+msgstr "El texto para esta tarea (en el primer idioma)."
#: tasks/models.py:102
msgid "The text for this task (in the secondary language)."
-msgstr "El texto para esta tarea (en la lengua secundaria)."
+msgstr "El texto para esta tarea (en el segundo idioma)."
#: tasks/models.py:107
msgid "The text for this task (in the tertiary language)."
-msgstr "El texto para esta tarea (en la lengua terciaria)."
+msgstr "El texto para esta tarea (en el tercer idioma)."
#: tasks/models.py:112
msgid "The text for this task (in the quaternary language)."
-msgstr "El texto para esta tarea (en la lengua cuaternaria)."
+msgstr "El texto para esta tarea (en el cuarto idioma)."
#: tasks/models.py:117
msgid "The text for this task (in the quinary language)."
-msgstr "El texto para esta tarea (en lengua quinaria)."
+msgstr "El texto para esta tarea (en el quinto idioma)."
#: tasks/models.py:121 tasks/templates/tasks/export/tasks.html:39
msgid "Start date attribute"
@@ -4433,43 +4436,43 @@ msgstr ""
#: views/models.py:79
msgid "The title for this view (in the primary language)."
-msgstr "El título de esta vista (en la lengua principal)."
+msgstr "El título de esta vista (en el primer idioma)."
#: views/models.py:84
msgid "The title for this view (in the secondary language)."
-msgstr "El título de esta vista (en la lengua secundaria)."
+msgstr "El título de esta vista (en el segundo idioma)."
#: views/models.py:89
msgid "The title for this view (in the tertiary language)."
-msgstr "El título de esta vista (en la lengua terciaria)."
+msgstr "El título de esta vista (en el tercer idioma)."
#: views/models.py:94
msgid "The title for this view (in the quaternary language)."
-msgstr "El título de esta vista (en lengua cuaternaria)."
+msgstr "El título de esta vista (en el cuarto idioma)."
#: views/models.py:99
msgid "The title for this view (in the quinary language)."
-msgstr "El título de esta vista (en lenguaje quinario)."
+msgstr "El título de esta vista (en el quinto idioma)."
#: views/models.py:104
msgid "The help text for this view (in the primary language)."
-msgstr "El texto de ayuda para esta vista (en el idioma principal)."
+msgstr "El texto de ayuda para esta vista (en el primer idioma)."
#: views/models.py:109
msgid "The help text for this view (in the secondary language)."
-msgstr "El texto de ayuda para esta vista (en el idioma secundario)."
+msgstr "El texto de ayuda para esta vista (en el segundo idioma)."
#: views/models.py:114
msgid "The help text for this view (in the tertiary language)."
-msgstr "El texto de ayuda de esta vista (en el idioma terciario)."
+msgstr "El texto de ayuda de esta vista (en el tercer idioma)."
#: views/models.py:119
msgid "The help text for this view (in the quaternary language)."
-msgstr "El texto de ayuda de esta vista (en lenguaje cuaternario)."
+msgstr "El texto de ayuda de esta vista (en el cuarto idioma)."
#: views/models.py:124
msgid "The help text for this view (in the quinary language)."
-msgstr "El texto de ayuda de esta vista (en lenguaje quinario)."
+msgstr "El texto de ayuda de esta vista (en el quinto idioma)."
#: views/models.py:129
msgid "Designates whether this view is generally available for projects."
@@ -4489,344 +4492,3 @@ msgstr "archivo"
#: views/templatetags/view_tags.py:210
msgid "Set"
msgstr "Establecer"
-
-#~ msgid "Session Login"
-#~ msgstr "Iniciar sesión"
-
-#~ msgid "You are logged in as: "
-#~ msgstr "Usted ha iniciado sesión como: "
-
-#~ msgid "Viewing as an anonymous user"
-#~ msgstr "Visualizando como usuario anónimo"
-
-#~ msgid "Powered by "
-#~ msgstr "Powered by "
-
-#~ msgid "Autocomplete"
-#~ msgstr "Autocompletar"
-
-#~ msgid "Free autocomplete"
-#~ msgstr "Autocompletar vacío"
-
-#~ msgid "Proceed"
-#~ msgstr "Proseguir"
-
-#~ msgid "Skip"
-#~ msgstr "Saltar"
-
-#~ msgid "Save"
-#~ msgstr "Guardar"
-
-#~ msgid "Save and proceed"
-#~ msgstr "Guardar y proseguir"
-
-#~ msgid "Complete questionnaire"
-#~ msgstr "Cuestionario completo"
-
-#~ msgid "Save and complete questionnaire"
-#~ msgstr "Guardar y rellenar el cuestionario"
-
-#~ msgid "This is a default answer that can be customized."
-#~ msgstr "Esta es una respuesta por defecto que puede ser adaptada."
-
-#~ msgid "Erase input"
-#~ msgstr "Borrar entrada"
-
-#~ msgid "Please type and select."
-#~ msgstr "Por favor escriba y seleccione."
-
-#~ msgid "Currently:"
-#~ msgstr "En la actualidad:"
-
-#~ msgid "Update:"
-#~ msgstr "Actualizar:"
-
-#~ msgid "No options are available."
-#~ msgstr "No hay opciones disponibles."
-
-#~ msgid "Please select"
-#~ msgstr "Por favor seleccione"
-
-#~ msgid "You are about to permanently delete this tab."
-#~ msgstr "Está a punto de eliminar definitivamente esta pestaña."
-
-#~ msgid ""
-#~ "This includes all given answers for this tab on all pages, not just this "
-#~ "one."
-#~ msgstr ""
-#~ "Esto incluye todas las respuestas dadas para esta pestaña en todas las "
-#~ "páginas, no sólo en ésta."
-
-#~ msgid "Delete"
-#~ msgstr "Borrar"
-
-#~ msgid "Please give the tab a meaningful name."
-#~ msgstr "Por favor, dale a la pestaña un nombre significativo."
-
-#, python-format
-#~ msgid "(%(section_count)s of %(section_total)s)"
-#~ msgstr "(%(section_count)s de %(section_total)s)"
-
-#, python-format
-#~ msgid "(%(page_count)s of %(page_total)s)"
-#~ msgstr "(%(page_count)s de %(page_total)s)"
-
-#~ msgid "Using the navigation will save your input."
-#~ msgstr "Utilizando la navegación guardará su entrada."
-
-#~ msgid ""
-#~ "Please note that using the navigation will discard any unsaved input."
-#~ msgstr ""
-#~ "Por favor tenga en cuenta que utilizando la navegación descartará "
-#~ "cualquier entrada no guardada."
-
-#~ msgid "Reload page"
-#~ msgstr "Recargar página"
-
-#~ msgid "Back to my projects"
-#~ msgstr "Volver a mis proyectos"
-
-#~ msgid "(optional)"
-#~ msgstr "(opcional)"
-
-#~ msgid "Edit tab"
-#~ msgstr "Editar pestaña"
-
-#~ msgid "Remove tab"
-#~ msgstr "Eliminar pestaña"
-
-#~ msgid "Remove block"
-#~ msgstr "Quitar bloque"
-
-#~ msgid ""
-#~ "An error occurred while saving the answer. Please contact support if this "
-#~ "problem persists."
-#~ msgstr ""
-#~ "Se ha producido un error al guardar la respuesta. Póngase en contacto con "
-#~ "el servicio de asistencia si el problema persiste."
-
-#~ msgid "Overview"
-#~ msgstr "Vista general"
-
-#~ msgid "Progress"
-#~ msgstr "Progreso"
-
-#~ msgid ""
-#~ "This field could not be saved, since somebody else did so while you were "
-#~ "editing. You will need to reload the page to make changes, but your input "
-#~ "will be overwritten."
-#~ msgstr ""
-#~ "Este campo no se pudo guardar, ya que otra persona lo hizo mientras usted "
-#~ "estaba editando. Tendrá que recargar la página para hacer cambios, pero "
-#~ "su entrada se sobrescribirá."
-
-#~ msgid ""
-#~ "This field could not be saved, since somebody else removed it while you "
-#~ "were editing. You will need to reload the page to proceed, but your input "
-#~ "will be lost."
-#~ msgstr ""
-#~ "Este campo no se ha podido guardar, ya que otra persona lo ha eliminado "
-#~ "mientras estabas editando. Tendrá que volver a cargar la página para "
-#~ "continuar, pero su entrada se perderá."
-
-#, python-format
-#~ msgid "View all projects on %(site)s"
-#~ msgstr "Ver todos los proyectos en %(site)s"
-
-#~ msgid "Filter projects"
-#~ msgstr "Filtrar proyectos"
-
-#~ msgid "Search project title"
-#~ msgstr "Buscar título de proyecto"
-
-#, python-format
-#~ msgid ""
-#~ "%(number_of_filtered_projects)s of %(number_of_projects)s projects shown"
-#~ msgstr ""
-#~ "%(number_of_filtered_projects)s de los %(number_of_projects)s proyectos "
-#~ "mostrados"
-
-#~ msgid "Import existing project"
-#~ msgstr "Importar proyecto existente"
-
-#~ msgid "Pending invitations"
-#~ msgstr "Invitaciones pendientes"
-
-#~ msgid "Click on one of the links to join the projects."
-#~ msgstr "Pulse en uno de los enlaces para unirse a los proyectos."
-
-#~ msgid "Last changed"
-#~ msgstr "Modificado por última vez"
-
-#~ msgid "All catalogs"
-#~ msgstr "Todos los catálogos"
-
-#, python-format
-#~ msgid "All projects on %(site)s"
-#~ msgstr "Todos los proyectos en %(site)s"
-
-#~ msgid "GitHub repository"
-#~ msgstr "Repositorio GitHub"
-
-#~ msgid "Please use the form username/repository or organization/repository."
-#~ msgstr ""
-#~ "Por favor, utilice el usuario/repositorio u organización/repositorio del "
-#~ "formulario."
-
-#~ msgid "File path"
-#~ msgstr "Ruta del archivo"
-
-#~ msgid "Branch, tag, or commit"
-#~ msgstr "Rama (Branch), etiqueta (Tag), o transacción (Commit)"
-
-#~ msgid "GitLab repository"
-#~ msgstr "Repositorio GitLab"
-
-#~ msgid "Add GitHub integration"
-#~ msgstr "Añadir integración con GitHub"
-
-#~ msgid "The GitHub repository to send issues to."
-#~ msgstr "El repositorio GitHub al que enviar asuntos."
-
-#~ msgid "Add GitLab integration"
-#~ msgstr "Añadir integración con GitLab"
-
-#~ msgid "Send to GitLab"
-#~ msgstr "Enviar a GitLab"
-
-#, python-brace-format
-#~ msgid ""
-#~ "This integration allow the creation of issues in arbitrary repositories "
-#~ "on {self.gitlab_url}. The upload of attachments is not supported by "
-#~ "GitLab."
-#~ msgstr ""
-#~ "Esta integración permite la creación de incidencias en repositorios "
-#~ "arbitrarios en {self.gitlab_url}. GitLab no admite la carga de archivos "
-#~ "adjuntos."
-
-#~ msgid "The secret for a GitLab webhook to close a task."
-#~ msgstr "El secreto para el webhook GitLab para cerrar una tarea."
-
-#~ msgid "item"
-#~ msgstr "artículo"
-
-#~ msgid "items"
-#~ msgstr "artículos"
-
-#~ msgid "sets"
-#~ msgstr "conjuntos"
-
-#, python-format
-#~ msgid "Add %(name)s"
-#~ msgstr "Añadir %(name)s"
-
-#, python-format
-#~ msgid ""
-#~ "You are about to permanently delete the %(name)s %(object)s"
-#~ "strong>."
-#~ msgstr ""
-#~ "Usted está a punto de eliminar permanentemente el %(name)s "
-#~ "%(object)s."
-
-#~ msgid ""
-#~ "Entries with might be skipped based on your input."
-#~ msgstr ""
-#~ "Las entradas con podrían ser ignoradas según lo que ha introducido."
-
-#, python-format
-#~ msgid "Update %(name)s"
-#~ msgstr "Actualizar %(name)s"
-
-#, python-format
-#~ msgid "Remove %(name)s"
-#~ msgstr "Eliminar %(name)s"
-
-#~ msgid "Plural name (primary)"
-#~ msgstr "Nombre plural (primario)"
-
-#~ msgid "The plural name displayed for this page in the primary language."
-#~ msgstr "El nombre plural mostrado para esta página en el idioma principal."
-
-#~ msgid "Plural name (secondary)"
-#~ msgstr "Nombre plural (secundario)"
-
-#~ msgid "The plural name displayed for this page in the secondary language."
-#~ msgstr "El nombre plural mostrado para esta página en el idioma secundario."
-
-#~ msgid "Plural name (tertiary)"
-#~ msgstr "Nombre plural (terciario)"
-
-#~ msgid "The plural name displayed for this page in the tertiary language."
-#~ msgstr "El nombre plural mostrado para esta página en el idioma terciario."
-
-#~ msgid "Plural name (quaternary)"
-#~ msgstr "Nombre plural (cuaternario)"
-
-#~ msgid "The plural name displayed for this page in the quaternary language."
-#~ msgstr ""
-#~ "El nombre plural que aparece para esta página en la lengua cuaternaria."
-
-#~ msgid "Plural name (quinary)"
-#~ msgstr "Nombre plural (quinario)"
-
-#~ msgid "The plural name displayed for this page in the quinary language."
-#~ msgstr "El nombre plural mostrado para esta página en el idioma quinario."
-
-#~ msgid "The plural name displayed for this question in the primary language."
-#~ msgstr ""
-#~ "El nombre plural mostrado para esta pregunta en el lenguaje primario."
-
-#~ msgid ""
-#~ "The plural name displayed for this question in the secondary language."
-#~ msgstr ""
-#~ "El nombre plural mostrado para esta pregunta en el lenguaje secundario."
-
-#~ msgid ""
-#~ "The plural name displayed for this question in the tertiary language."
-#~ msgstr ""
-#~ "El nombre plural mostrado para esta pregunta en el lenguaje terciario."
-
-#~ msgid ""
-#~ "The plural name displayed for this question in the quaternary language."
-#~ msgstr ""
-#~ "El nombre plural mostrado para esta pregunta en el lenguaje cuaternario."
-
-#~ msgid "The plural name displayed for this question in the quinary language."
-#~ msgstr ""
-#~ "El nombre plural mostrado para esta pregunta en el lenguaje quinario."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the primary language."
-#~ msgstr ""
-#~ "El nombre plural mostrado para este conjunto de preguntas en el lenguaje "
-#~ "primario."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the secondary language."
-#~ msgstr ""
-#~ "El nombre plural mostrado para este conjunto de preguntas en el lenguaje "
-#~ "secundario."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the tertiary language."
-#~ msgstr ""
-#~ "El nombre plural mostrado para este conjunto de preguntas en el lenguaje "
-#~ "terciario."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the quaternary "
-#~ "language."
-#~ msgstr ""
-#~ "El nombre plural mostrado para este conjunto de preguntas en el lenguaje "
-#~ "cuaternario."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the quinary language."
-#~ msgstr ""
-#~ "El nombre plural mostrado para este conjunto de preguntas en el lenguaje "
-#~ "quinario."
-
-#~ msgid "Verbose name plural"
-#~ msgstr "Nombre plural completo"
diff --git a/rdmo/locale/es/LC_MESSAGES/djangojs.mo b/rdmo/locale/es/LC_MESSAGES/djangojs.mo
index 13c7356b3e..2044cbe0c1 100644
Binary files a/rdmo/locale/es/LC_MESSAGES/djangojs.mo and b/rdmo/locale/es/LC_MESSAGES/djangojs.mo differ
diff --git a/rdmo/locale/es/LC_MESSAGES/djangojs.po b/rdmo/locale/es/LC_MESSAGES/djangojs.po
index b27319736a..3fcabe2726 100644
--- a/rdmo/locale/es/LC_MESSAGES/djangojs.po
+++ b/rdmo/locale/es/LC_MESSAGES/djangojs.po
@@ -7,51 +7,60 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-07-04 11:19+0000\n"
-"PO-Revision-Date: 2025-07-04 13:29+0200\n"
-"Last-Translator: DAVID MARTINEZ \n"
+"POT-Creation-Date: 2025-12-12 13:02+0100\n"
+"PO-Revision-Date: 2025-12-09 07:14+0100\n"
+"Last-Translator: Giacomo Lanza \n"
"Language-Team: \n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.6\n"
+"X-Generator: Poedit 3.8\n"
#: core/assets/js/components/Modal.js:20
#: management/assets/js/components/common/Modals.js:16
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Close"
msgstr "Cerrar"
#: core/assets/js/components/Modal.js:26
#: management/assets/js/components/common/Buttons.js:19
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Save"
msgstr "Guardar"
#: core/assets/js/components/SearchField.js:35
#: core/assets/js/components/SearchField.js:43
#: projects/assets/js/projects/utils/translations.js:15
+#: projects/static/projects/js/projects.js:2
msgid "Search"
msgstr "Búsqueda"
#: core/assets/js/components/SearchField.js:39
#: management/assets/js/components/common/Filter.js:12
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Reset"
msgstr "Restablecer"
#: core/assets/js/components/UploadDropZone.js:17
+#: projects/static/projects/js/projects.js:2
#, javascript-format
msgid "%s has unsupported file type"
msgstr "%s has unsupported file type"
#: core/assets/js/components/UploadDropZone.js:28
+#: projects/static/projects/js/projects.js:2
msgid "Drop the file here ..."
msgstr "Suelta el archivo aquí ..."
#: core/assets/js/components/UploadDropZone.js:32
+#: projects/static/projects/js/projects.js:2
msgid "Drag and drop a file here or click to select a file"
msgstr "Arrastre y suelte un archivo aquí o haga clic para seleccionarlo"
@@ -61,12 +70,14 @@ msgstr "Arrastre y suelte un archivo aquí o haga clic para seleccionarlo"
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageButtons.js:11
#: projects/assets/js/interview/components/sidebar/Buttons.js:22
+#: projects/static/projects/js/interview.js:2
msgid "Back"
msgstr "Atrás"
#: management/assets/js/components/common/Buttons.js:13
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageHead.js:166
+#: projects/static/projects/js/interview.js:2
msgid "Create"
msgstr "Crear"
@@ -79,6 +90,7 @@ msgstr "Crear y seguir editando"
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageHead.js:176
#: projects/assets/js/interview/components/main/questionset/QuestionSetCopySet.js:31
+#: projects/static/projects/js/interview.js:2
msgid "Copy"
msgstr "Copiar"
@@ -102,6 +114,7 @@ msgstr "Nuevo"
#: management/assets/js/components/common/Modals.js:19
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:8
+#: projects/static/projects/js/interview.js:2
msgid "Delete"
msgstr "Borrar"
@@ -216,6 +229,7 @@ msgstr "Este atributo es de sólo lectura"
#: management/assets/js/components/element/Attribute.js:44
#: management/assets/js/constants/elements.js:49
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Attribute"
msgstr "Atributo"
@@ -293,7 +307,8 @@ msgstr "Este catálogo es de sólo lectura"
#: management/assets/js/components/element/Catalog.js:58
#: management/assets/js/constants/elements.js:44
#: management/static/management/js/management.js:2
-#: projects/assets/js/interview/components/sidebar/Overview.js:30
+#: projects/assets/js/interview/components/sidebar/Overview.js:35
+#: projects/static/projects/js/interview.js:2
msgid "Catalog"
msgstr "Catálogo"
@@ -312,6 +327,7 @@ msgstr "Esta condición es de sólo lectura"
#: management/assets/js/components/element/Condition.js:37
#: management/assets/js/constants/elements.js:52
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Condition"
msgstr "Condición"
@@ -387,6 +403,7 @@ msgstr "Esta opción es de sólo lectura"
#: management/assets/js/components/element/Option.js:37
#: management/assets/js/constants/elements.js:51
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Option"
msgstr "Opción"
@@ -415,6 +432,7 @@ msgstr "Este conjunto de opciones es de sólo lectura"
#: management/assets/js/components/element/OptionSet.js:47
#: management/assets/js/constants/elements.js:50
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Option set"
msgstr "Conjunto de opciones"
@@ -503,6 +521,7 @@ msgstr "Esta página es de sólo lectura"
#: management/assets/js/components/element/Page.js:60
#: management/assets/js/constants/elements.js:46
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Page"
msgstr "Página"
@@ -540,6 +559,7 @@ msgstr "Esta pregunta es de sólo lectura"
#: management/assets/js/components/element/Question.js:48
#: management/assets/js/constants/elements.js:48
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Question"
msgstr "Pregunta"
@@ -603,6 +623,7 @@ msgstr "Gama"
#: management/assets/js/components/edit/EditQuestion.js:179
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/question/QuestionDefault.js:9
+#: projects/static/projects/js/interview.js:2
msgid "Default"
msgstr "Por defecto"
@@ -621,6 +642,7 @@ msgstr "Este conjunto de preguntas es de sólo lectura"
#: management/assets/js/components/element/QuestionSet.js:59
#: management/assets/js/constants/elements.js:47
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Question set"
msgstr "Conjunto de preguntas"
@@ -669,6 +691,7 @@ msgstr "Esta sección es de sólo lectura"
#: management/assets/js/components/element/Section.js:54
#: management/assets/js/constants/elements.js:45
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Section"
msgstr "Sección"
@@ -696,6 +719,7 @@ msgstr "Esta tarea es de sólo lectura"
#: management/assets/js/components/element/Task.js:53
#: management/assets/js/constants/elements.js:53
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Task"
msgstr "Tarea"
@@ -714,6 +738,7 @@ msgstr "Esta vista es de sólo lectura"
#: management/assets/js/components/element/View.js:48
#: management/assets/js/constants/elements.js:54
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "View"
msgstr "Vista"
@@ -733,6 +758,7 @@ msgstr "Editar"
#: management/assets/js/components/edit/common/OrderedMultiSelect.js:65
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/questionset/QuestionSetRemoveSet.js:25
+#: projects/static/projects/js/interview.js:2
msgid "Remove"
msgstr "Eliminar"
@@ -987,6 +1013,7 @@ msgstr "Pregunta sobre la exportación"
#: management/assets/js/components/element/Question.js:53
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/question/QuestionOptional.js:6
+#: projects/static/projects/js/interview.js:2
msgid "This is an optional question."
msgstr "Esta pregunta es opcional."
@@ -1389,6 +1416,7 @@ msgstr "Modificado"
#: management/assets/js/components/import/ImportSuccessElement.js:16
#: management/static/management/js/management.js:2
#: projects/assets/js/projects/utils/constants.js:8
+#: projects/static/projects/js/projects.js:2
msgid "Created"
msgstr "Creado"
@@ -1660,6 +1688,7 @@ msgstr "Está a punto de eliminar definitivamente el atributo:"
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:21
#: projects/assets/js/interview/components/main/questionset/QuestionSetRemoveSet.js:29
+#: projects/static/projects/js/interview.js:2
msgid "This action cannot be undone!"
msgstr "¡Esta operación no tiene vuelta atrás!"
@@ -1862,131 +1891,160 @@ msgid "Set URI prefix for all elements"
msgstr "Establecer prefijo URI para todos los elementos"
#: projects/assets/js/interview/components/main/Breadcrumb.js:17
+#: projects/static/projects/js/interview.js:2
msgid "My Projects"
msgstr "Mis proyectos"
#: projects/assets/js/interview/components/main/Contact.js:26
#: projects/assets/js/interview/components/main/question/QuestionContact.js:7
+#: projects/static/projects/js/interview.js:2
msgid "Contact support"
msgstr "Contactar con el servicio de asistencia"
#: projects/assets/js/interview/components/main/Contact.js:27
+#: projects/static/projects/js/interview.js:2
msgid "Send message"
msgstr "Enviar mensaje"
#: projects/assets/js/interview/components/main/Done.js:20
+#: projects/static/projects/js/interview.js:2
msgid "View answers"
msgstr "Ver respuestas"
#: projects/assets/js/interview/components/main/Done.js:24
#: projects/assets/js/interview/components/main/Errors.js:33
+#: projects/static/projects/js/interview.js:2
msgid "Back to project overview"
msgstr "Volver al resumen del proyecto"
#: projects/assets/js/interview/components/main/Errors.js:30
-#: projects/assets/js/interview/components/sidebar/Overview.js:58
+#: projects/assets/js/interview/components/sidebar/Overview.js:63
+#: projects/static/projects/js/interview.js:2
msgid "Reload page"
msgstr "Recargar página"
#: projects/assets/js/interview/components/main/Search.js:67
+#: projects/static/projects/js/interview.js:2
msgid "Search for project or snapshot title, or answer text ..."
msgstr "Buscar por título de proyecto o instantánea, o responder texto ..."
#: projects/assets/js/interview/components/main/Search.js:69
+#: projects/static/projects/js/interview.js:2
msgid "No answers match your search."
msgstr "Ninguna respuesta coincide con su búsqueda."
#: projects/assets/js/interview/components/main/Search.js:71
#: projects/assets/js/interview/components/main/Search.js:115
#: projects/assets/js/interview/components/main/widget/SelectInput.js:94
+#: projects/static/projects/js/interview.js:2
msgid "Loading ..."
msgstr "Cargando ..."
#: projects/assets/js/interview/components/main/Search.js:82
-#: projects/assets/js/interview/components/sidebar/Overview.js:27
+#: projects/assets/js/interview/components/sidebar/Overview.js:32
+#: projects/static/projects/js/interview.js:2
msgid "Project"
msgstr "Proyecto"
#: projects/assets/js/interview/components/main/Search.js:86
+#: projects/static/projects/js/interview.js:2
msgid "Snapshot"
msgstr "Instantánea"
#: projects/assets/js/interview/components/main/Search.js:92
#: projects/assets/js/interview/components/main/Search.js:97
+#: projects/static/projects/js/interview.js:2
msgid "Tab"
-msgstr "Ficha"
+msgstr "Pestaña"
#: projects/assets/js/interview/components/main/Search.js:111
+#: projects/static/projects/js/interview.js:2
msgid "Restrict the search to a particular project ..."
msgstr "Restringir la búsqueda a un proyecto concreto ..."
#: projects/assets/js/interview/components/main/Search.js:113
+#: projects/static/projects/js/interview.js:2
msgid "No projects matching your search."
msgstr "No hay proyectos que coincidan con su búsqueda."
#: projects/assets/js/interview/components/main/Search.js:141
+#: projects/static/projects/js/interview.js:2
msgid "Include snapshots in the search"
msgstr "Incluir instantáneas en la búsqueda"
#: projects/assets/js/interview/components/main/page/PageButtons.js:18
#: projects/assets/js/interview/components/sidebar/Buttons.js:15
+#: projects/static/projects/js/interview.js:2
msgid "Proceed"
msgstr "Proceda"
#: projects/assets/js/interview/components/main/page/PageButtons.js:23
+#: projects/static/projects/js/interview.js:2
msgid "Complete questionnaire"
msgstr "Cuestionario completo"
#: projects/assets/js/interview/components/main/page/PageHead.js:33
#: projects/assets/js/interview/components/main/page/PageHead.js:175
+#: projects/static/projects/js/interview.js:2
msgid "Copy tab"
-msgstr "Ficha Copiar"
+msgstr "Copiar pestaña"
#: projects/assets/js/interview/components/main/page/PageHead.js:34
+#: projects/static/projects/js/interview.js:2
msgid "Add tab"
-msgstr "Añadir ficha"
+msgstr "Añadir pestaña"
#: projects/assets/js/interview/components/main/page/PageHead.js:35
+#: projects/static/projects/js/interview.js:2
msgid "Edit tab"
-msgstr "Editar ficha"
+msgstr "Editar pestaña"
#: projects/assets/js/interview/components/main/page/PageHead.js:36
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:87
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:80
+#: projects/static/projects/js/interview.js:2
msgid "Reuse answers"
msgstr "Reutilizar respuestas"
#: projects/assets/js/interview/components/main/page/PageHead.js:37
+#: projects/static/projects/js/interview.js:2
msgid "Remove tab"
msgstr "Eliminar pestaña"
#: projects/assets/js/interview/components/main/page/PageHead.js:165
+#: projects/static/projects/js/interview.js:2
msgid "Create tab"
-msgstr "Ficha Crear"
+msgstr "Crear pestaña"
#: projects/assets/js/interview/components/main/page/PageHead.js:186
+#: projects/static/projects/js/interview.js:2
msgid "Update tab"
-msgstr "Ficha Actualizar"
+msgstr "Actualizar pestaña"
#: projects/assets/js/interview/components/main/page/PageHead.js:187
+#: projects/static/projects/js/interview.js:2
msgid "Update"
-msgstr "Actualización"
+msgstr "Actualizar"
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:8
+#: projects/static/projects/js/interview.js:2
msgid "Delete tab"
-msgstr "Eliminar ficha"
+msgstr "Eliminar pestaña"
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:14
+#: projects/static/projects/js/interview.js:2
#, javascript-format
msgid "You are about to permanently delete the tab named: %s"
msgstr ""
-"Está a punto de eliminar definitivamente el pestaña: %s"
+"Está a punto de eliminar definitivamente la pestaña: %s"
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:17
+#: projects/static/projects/js/interview.js:2
msgid "You are about to permanently delete this tab."
msgstr "Está a punto de eliminar definitivamente esta pestaña."
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:20
+#: projects/static/projects/js/interview.js:2
msgid ""
"This includes all given answers for this tab on all pages, not just this one."
msgstr ""
@@ -1994,19 +2052,24 @@ msgstr ""
"páginas, no sólo en ésta."
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:59
+#: projects/static/projects/js/interview.js:2
msgid "You can add a new tab using the create button."
msgstr "Puede añadir una nueva pestaña utilizando el botón crear."
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:65
#: projects/assets/js/projects/utils/constants.js:4
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Name"
msgstr "Nombre"
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:81
+#: projects/static/projects/js/interview.js:2
msgid "Please give the tab a meaningful name."
msgstr "Por favor, dale a la pestaña un nombre significativo."
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:93
+#: projects/static/projects/js/interview.js:2
msgid ""
"You can populate this tab with answers from a similar tab in any project you "
"are allowed to access."
@@ -2015,18 +2078,22 @@ msgstr ""
"cualquier proyecto al que tenga acceso."
#: projects/assets/js/interview/components/main/page/PageHeadReuseModal.js:43
+#: projects/static/projects/js/interview.js:2
msgid "Reuse tab"
-msgstr "Ficha Reutilización"
+msgstr "Reutilizar pestaña"
#: projects/assets/js/interview/components/main/page/PageHeadReuseModal.js:43
+#: projects/static/projects/js/interview.js:2
msgid "Reuse"
msgstr "Reutilice"
#: projects/assets/js/interview/components/main/page/PageHeadReuseModal.js:48
+#: projects/static/projects/js/interview.js:2
msgid "Answers"
msgstr "Respuestas"
#: projects/assets/js/interview/components/main/page/PageHeadReuseModal.js:54
+#: projects/static/projects/js/interview.js:2
msgid ""
"You can populate this tab with answers from a similar tab in any project you "
"have access to. This only affects questions that don't already have an "
@@ -2037,6 +2104,7 @@ msgstr ""
"aún no tienen respuesta."
#: projects/assets/js/interview/components/main/question/QuestionAddValue.js:21
+#: projects/static/projects/js/interview.js:2
msgid "Add answer"
msgstr "Añadir respuesta"
@@ -2044,25 +2112,30 @@ msgstr "Añadir respuesta"
#: projects/assets/js/interview/components/main/question/QuestionCopyValue.js:14
#: projects/assets/js/interview/components/main/question/QuestionCopyValues.js:10
#: projects/assets/js/interview/components/main/question/QuestionCopyValues.js:11
+#: projects/static/projects/js/interview.js:2
msgid "Apply this answer to all tabs where this question is empty"
msgstr ""
"Aplique esta respuesta a todas las pestañas en las que esta pregunta esté "
"vacía"
#: projects/assets/js/interview/components/main/question/QuestionCopyValues.js:16
+#: projects/static/projects/js/interview.js:2
msgid "Apply to all"
-msgstr "Aplicable a todos"
+msgstr "Aplicar a todos"
#: projects/assets/js/interview/components/main/question/QuestionDefault.js:8
+#: projects/static/projects/js/interview.js:2
msgid "This is a default answer that can be customized."
-msgstr "Esta es una respuesta por defecto que se puede personalizar."
+msgstr "Esta es una respuesta predeterminada que se puede personalizar."
#: projects/assets/js/interview/components/main/question/QuestionEraseValue.js:11
#: projects/assets/js/interview/components/main/question/QuestionEraseValues.js:11
+#: projects/static/projects/js/interview.js:2
msgid "Erase input"
msgstr "Borrar entrada"
#: projects/assets/js/interview/components/main/question/QuestionError.js:8
+#: projects/static/projects/js/interview.js:2
msgid ""
"This field could not be saved, since somebody else did so while you were "
"editing. You will need to reload the page to make changes, but your input "
@@ -2073,10 +2146,12 @@ msgstr ""
"entrada se sobrescribirá."
#: projects/assets/js/interview/components/main/question/QuestionError.js:11
+#: projects/static/projects/js/interview.js:2
msgid "You reached the file quota for this project."
msgstr "Ha alcanzado la cuota de archivos para este proyecto."
#: projects/assets/js/interview/components/main/question/QuestionError.js:17
+#: projects/static/projects/js/interview.js:2
msgid ""
"This field could not be saved, since somebody else removed it while you were "
"editing. You will need to reload the page to proceed, but your input will be "
@@ -2087,41 +2162,49 @@ msgstr ""
"continuar, pero su entrada se perderá."
#: projects/assets/js/interview/components/main/question/QuestionError.js:23
+#: projects/static/projects/js/interview.js:2
msgid "An unknown error occurred, please contact support"
msgstr ""
"Se ha producido un error desconocido, póngase en contacto con el servicio de "
"asistencia"
#: projects/assets/js/interview/components/main/question/QuestionOptional.js:7
+#: projects/static/projects/js/interview.js:2
msgid "Optional"
msgstr "Opcional"
#: projects/assets/js/interview/components/main/question/QuestionRemoveValue.js:7
+#: projects/static/projects/js/interview.js:2
msgid "Remove answer"
msgstr "Eliminar respuesta"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:57
+#: projects/static/projects/js/interview.js:2
msgid "Append"
msgstr "Añada"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:62
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:85
+#: projects/static/projects/js/interview.js:2
msgid "Replace"
msgstr "Sustituir"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:68
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:72
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:85
+#: projects/static/projects/js/interview.js:2
msgid "Reuse answer"
msgstr "Reutilizar respuesta"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:76
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:90
+#: projects/static/projects/js/interview.js:2
msgid "Answer"
msgstr "Respuesta"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:88
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:103
+#: projects/static/projects/js/interview.js:2
msgid ""
"You can reuse an answer from a similar question in any project you have "
"access to."
@@ -2130,113 +2213,141 @@ msgstr ""
"proyecto al que tengas acceso."
#: projects/assets/js/interview/components/main/questionset/QuestionSetCopySet.js:31
+#: projects/static/projects/js/interview.js:2
msgid "Copy block"
msgstr "Bloque de copia"
#: projects/assets/js/interview/components/main/questionset/QuestionSetRemoveSet.js:25
+#: projects/static/projects/js/interview.js:2
msgid "Remove block"
msgstr "Quitar bloque"
#: projects/assets/js/interview/components/main/questionset/QuestionSetRemoveSet.js:28
+#: projects/static/projects/js/interview.js:2
msgid "You are about to permanently remove this block."
msgstr "Está a punto de eliminar permanentemente este bloque."
#: projects/assets/js/interview/components/main/widget/FileInput.js:29
+#: projects/static/projects/js/interview.js:2
msgid "Current file:"
msgstr "Archivo actual:"
#: projects/assets/js/interview/components/main/widget/FileInput.js:35
+#: projects/static/projects/js/interview.js:2
msgid "No file stored."
msgstr "No hay ningún archivo almacenado."
#: projects/assets/js/interview/components/main/widget/FileInput.js:48
+#: projects/static/projects/js/interview.js:2
msgid "Drop the files here ..."
msgstr "Suelta los archivos aquí ..."
#: projects/assets/js/interview/components/main/widget/FileInput.js:50
+#: projects/static/projects/js/interview.js:2
msgid "Drag 'n drop some files here, or click to select files."
msgstr ""
"Arrastre y suelte algunos archivos aquí, o haga clic para seleccionar "
"archivos."
-#: projects/assets/js/interview/components/main/widget/RadioInput.js:57
+#: projects/assets/js/interview/components/main/widget/RadioInput.js:68
+#: projects/static/projects/js/interview.js:2
msgid "No options are available."
msgstr "No hay opciones disponibles."
#: projects/assets/js/interview/components/main/widget/SelectInput.js:90
+#: projects/static/projects/js/interview.js:2
msgid "Select ..."
msgstr "Seleccione ..."
#: projects/assets/js/interview/components/main/widget/SelectInput.js:93
+#: projects/static/projects/js/interview.js:2
msgid "No options found"
msgstr "No se han encontrado opciones"
#: projects/assets/js/interview/components/main/widget/YesNoInput.js:40
+#: projects/static/projects/js/interview.js:2
msgid "Yes"
msgstr "Sí"
#: projects/assets/js/interview/components/main/widget/YesNoInput.js:52
+#: projects/static/projects/js/interview.js:2
msgid "No"
msgstr "No"
-#: projects/assets/js/interview/components/main/widget/common/AdditionalTextInput.js:22
-#: projects/assets/js/interview/components/main/widget/common/AdditionalTextareaInput.js:21
+#: projects/assets/js/interview/components/main/widget/common/AdditionalTextInput.js:11
+#: projects/assets/js/interview/components/main/widget/common/AdditionalTextareaInput.js:11
+#: projects/static/projects/js/interview.js:2
msgid "Additional input"
msgstr "Información adicional"
#: projects/assets/js/interview/components/main/widget/common/Unit.js:21
+#: projects/static/projects/js/interview.js:2
msgid "The unit for this answer."
msgstr "La unidad para esta respuesta."
#: projects/assets/js/interview/components/sidebar/Navigation.js:12
+#: projects/static/projects/js/interview.js:2
msgid "Navigation"
msgstr "Navegación"
#: projects/assets/js/interview/components/sidebar/NavigationLink.js:6
+#: projects/static/projects/js/interview.js:2
#, javascript-format
msgid "(%s of %s)"
msgstr "(%s de %s)"
#: projects/assets/js/interview/components/sidebar/NavigationLink.js:18
+#: projects/static/projects/js/interview.js:2
msgid "Complete"
msgstr "Complete"
-#: projects/assets/js/interview/components/sidebar/Overview.js:21
+#: projects/assets/js/interview/components/sidebar/Overview.js:26
+#: projects/static/projects/js/interview.js:2
msgid "Overview"
msgstr "Visión general"
-#: projects/assets/js/interview/components/sidebar/Overview.js:39
+#: projects/assets/js/interview/components/sidebar/Overview.js:44
+#: projects/static/projects/js/interview.js:2
msgid "Hide management panels"
msgstr "Ocultar paneles de gestión"
-#: projects/assets/js/interview/components/sidebar/Overview.js:39
+#: projects/assets/js/interview/components/sidebar/Overview.js:44
+#: projects/static/projects/js/interview.js:2
msgid "Show management panels"
msgstr "Mostrar paneles de gestión"
-#: projects/assets/js/interview/components/sidebar/Overview.js:49
+#: projects/assets/js/interview/components/sidebar/Overview.js:54
+#: projects/static/projects/js/interview.js:2
msgid "You don't have write access to this project."
msgstr "No tienes acceso de escritura a este proyecto."
-#: projects/assets/js/interview/components/sidebar/Overview.js:50
+#: projects/assets/js/interview/components/sidebar/Overview.js:55
+#: projects/static/projects/js/interview.js:2
msgid "read only"
msgstr "sólo lectura"
-#: projects/assets/js/interview/components/sidebar/Overview.js:61
+#: projects/assets/js/interview/components/sidebar/Overview.js:66
+#: projects/static/projects/js/interview.js:2
msgid "Back to my projects"
msgstr "Volver a mis proyectos"
#: projects/assets/js/interview/components/sidebar/Progress.js:10
#: projects/assets/js/projects/components/main/Projects.js:39
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
#, javascript-format
msgid "%s of %s"
msgstr "%s de %s"
#: projects/assets/js/interview/components/sidebar/Progress.js:14
#: projects/assets/js/projects/utils/constants.js:7
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Progress"
msgstr "Progreso"
#: projects/assets/js/interview/constants/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid ""
"These links take you directly to the elements in the management interface. "
"This part of the page is visible to you, because you are either an Admin, "
@@ -2250,185 +2361,201 @@ msgstr ""
#: projects/assets/js/projects/components/helper/PendingInvitations.js:22
#: projects/assets/js/projects/utils/translations.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Accept"
msgstr "Acepte"
#: projects/assets/js/projects/components/helper/PendingInvitations.js:26
#: projects/assets/js/projects/utils/translations.js:4
+#: projects/static/projects/js/projects.js:2
msgid "Decline"
msgstr "Disminución"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:82
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:81
+#: projects/static/projects/js/projects.js:2
msgid "Filter by catalog"
msgstr "Filtrar por catálogo"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:88
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:87
+#: projects/static/projects/js/projects.js:2
msgid "Select catalog"
msgstr "Seleccionar catálogo"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:95
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:94
+#: projects/static/projects/js/projects.js:2
msgid "Filter by created date"
msgstr "Filtrar por fecha de creación"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:107
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:141
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:106
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:140
+#: projects/static/projects/js/projects.js:2
msgid "Select start date"
msgstr "Seleccione la fecha de inicio"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:120
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:154
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:119
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:153
+#: projects/static/projects/js/projects.js:2
msgid "Select end date"
msgstr "Seleccione la fecha final"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:129
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:128
+#: projects/static/projects/js/projects.js:2
msgid "Filter by last changed date"
msgstr "Filtrar por fecha de última modificación"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:168
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:167
#: projects/assets/js/projects/utils/translations.js:14
+#: projects/static/projects/js/projects.js:2
msgid "Reset all filters"
msgstr "Restablecer todos los filtros"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:172
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:171
#: projects/assets/js/projects/utils/translations.js:6
+#: projects/static/projects/js/projects.js:2
msgid "Hide filters"
msgstr "Ocultar filtros"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:172
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:171
#: projects/assets/js/projects/utils/translations.js:17
+#: projects/static/projects/js/projects.js:2
msgid "Show filters"
msgstr "Mostrar filtros"
#: projects/assets/js/projects/components/helper/ProjectImport.js:11
+#: projects/static/projects/js/projects.js:2
msgid "Import directly"
msgstr "Importar directamente"
#: projects/assets/js/projects/components/helper/ProjectImport.js:27
#: projects/assets/js/projects/utils/translations.js:8
+#: projects/static/projects/js/projects.js:2
msgid "Import from file"
msgstr "Importar desde archivo"
#: projects/assets/js/projects/components/main/Projects.js:25
#: projects/assets/js/projects/components/main/Projects.js:204
#: projects/assets/js/projects/utils/translations.js:13
+#: projects/static/projects/js/projects.js:2
msgid "Pending invitations"
msgstr "Invitaciones pendientes"
#: projects/assets/js/projects/components/main/Projects.js:31
#: projects/assets/js/projects/components/main/Projects.js:216
#: projects/assets/js/projects/utils/translations.js:7
+#: projects/static/projects/js/projects.js:2
msgid "Import project"
msgstr "Importar proyecto"
#: projects/assets/js/projects/components/main/Projects.js:36
+#: projects/static/projects/js/projects.js:2
#, javascript-format
msgid "%s of %s projects are displayed"
msgstr "Se muestran %s de %s proyectos"
#: projects/assets/js/projects/components/main/Projects.js:50
#: projects/assets/js/projects/utils/translations.js:18
+#: projects/static/projects/js/projects.js:2
msgid "View all projects"
msgstr "Ver todos los proyectos"
#: projects/assets/js/projects/components/main/Projects.js:50
#: projects/assets/js/projects/utils/translations.js:19
+#: projects/static/projects/js/projects.js:2
msgid "View my projects"
msgstr "Ver mis proyectos"
#: projects/assets/js/projects/components/main/Projects.js:51
#: projects/assets/js/projects/utils/translations.js:11
+#: projects/static/projects/js/projects.js:2
msgid "My projects"
msgstr "Mis proyectos"
#: projects/assets/js/projects/components/main/Projects.js:51
#: projects/assets/js/projects/utils/translations.js:3
+#: projects/static/projects/js/projects.js:2
msgid "All projects"
msgstr "Todos los proyectos"
#: projects/assets/js/projects/components/main/Projects.js:55
+#: projects/static/projects/js/projects.js:2
msgid "Copy project"
msgstr "Copiar proyecto"
#: projects/assets/js/projects/components/main/Projects.js:56
+#: projects/static/projects/js/projects.js:2
msgid "Update project"
msgstr "Actualizar proyecto"
#: projects/assets/js/projects/components/main/Projects.js:57
+#: projects/static/projects/js/projects.js:2
msgid "Delete project"
msgstr "Suprimir proyecto"
#: projects/assets/js/projects/components/main/Projects.js:107
+#: projects/static/projects/js/projects.js:2
msgid "Scroll to top"
msgstr "Ir arriba"
#: projects/assets/js/projects/components/main/Projects.js:113
#: projects/assets/js/projects/utils/translations.js:10
+#: projects/static/projects/js/projects.js:2
msgid "Load more"
msgstr "Más información"
#: projects/assets/js/projects/components/main/Projects.js:219
#: projects/assets/js/projects/utils/translations.js:12
+#: projects/static/projects/js/projects.js:2
msgid "New project"
msgstr "Nuevo proyecto"
#: projects/assets/js/projects/components/main/Projects.js:232
#: projects/assets/js/projects/utils/translations.js:16
+#: projects/static/projects/js/projects.js:2
msgid "Search projects"
msgstr "Buscar proyectos"
#: projects/assets/js/projects/utils/constants.js:5
+#: projects/static/projects/js/projects.js:2
msgid "Role"
msgstr "Rol"
#: projects/assets/js/projects/utils/constants.js:6
#: projects/assets/js/projects/utils/constants.js:17
+#: projects/static/projects/js/projects.js:2
msgid "Owner"
msgstr "Propietario"
#: projects/assets/js/projects/utils/constants.js:9
+#: projects/static/projects/js/projects.js:2
msgid "Last changed"
msgstr "Última modificación"
#: projects/assets/js/projects/utils/constants.js:10
+#: projects/static/projects/js/projects.js:2
msgid "Actions"
msgstr "Acciones"
#: projects/assets/js/projects/utils/constants.js:14
+#: projects/static/projects/js/projects.js:2
msgid "Author"
msgstr "Autor"
#: projects/assets/js/projects/utils/constants.js:15
+#: projects/static/projects/js/projects.js:2
msgid "Guest"
msgstr "Invitado"
#: projects/assets/js/projects/utils/constants.js:16
+#: projects/static/projects/js/projects.js:2
msgid "Manager"
msgstr "Director"
#: projects/assets/js/projects/utils/translations.js:5
+#: projects/static/projects/js/projects.js:2
msgid "Filter"
msgstr "Filtro"
#: projects/assets/js/projects/utils/translations.js:9
+#: projects/static/projects/js/projects.js:2
msgid "Load all"
msgstr "Cargar todo"
-
-#~ msgid "catalog"
-#~ msgstr "catálogo"
-
-#~ msgid "task"
-#~ msgstr "tarea"
-
-#~ msgid "created"
-#~ msgstr "creado"
-
-#~ msgid "attribute"
-#~ msgstr "atributo"
-
-#, javascript-format
-#~ msgid "Add %s"
-#~ msgstr "Añadir %s"
-
-#, javascript-format
-#~ msgid "Create new %s"
-#~ msgstr "Crear nuevo %s"
diff --git a/rdmo/locale/fr/LC_MESSAGES/django.mo b/rdmo/locale/fr/LC_MESSAGES/django.mo
index c994f41496..cc62618ca9 100644
Binary files a/rdmo/locale/fr/LC_MESSAGES/django.mo and b/rdmo/locale/fr/LC_MESSAGES/django.mo differ
diff --git a/rdmo/locale/fr/LC_MESSAGES/django.po b/rdmo/locale/fr/LC_MESSAGES/django.po
index b8051df093..8f40471db2 100644
--- a/rdmo/locale/fr/LC_MESSAGES/django.po
+++ b/rdmo/locale/fr/LC_MESSAGES/django.po
@@ -2,17 +2,16 @@ msgid ""
msgstr ""
"Project-Id-Version: RDMO\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-07-04 11:19+0000\n"
-"PO-Revision-Date: 2025-05-16 16:50+0200\n"
-"Last-Translator: Yonny CARDENAS, Gautier DEBAECKER, Nadia LAJILI, Gino "
-"MARCHETTI \n"
+"POT-Creation-Date: 2025-12-12 13:02+0100\n"
+"PO-Revision-Date: 2025-12-09 12:30+0100\n"
+"Last-Translator: Giacomo Lanza \n"
"Language-Team: RDMO \n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.6\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Poedit 3.8\n"
#: accounts/apps.py:7
msgid "Accounts"
@@ -28,7 +27,7 @@ msgstr "Nom de famille"
#: accounts/forms.py:81 core/constants.py:22 projects/models/invite.py:28
msgid "E-mail"
-msgstr "E-mail"
+msgstr "Courriel"
#: accounts/forms.py:85
msgid "Password"
@@ -45,194 +44,194 @@ msgstr ""
msgid "Consent could not be saved. Please try again."
msgstr "Le consentement n'a pas pu être enregistré. Veuillez réessayer."
-#: accounts/models.py:27 options/models.py:181 questions/models/question.py:97
+#: accounts/models.py:28 options/models.py:181 questions/models/question.py:97
#: tasks/models.py:96
msgid "Text (primary)"
-msgstr "Texte (primaire)"
+msgstr "Texte (principal)"
-#: accounts/models.py:28
+#: accounts/models.py:29
msgid "The text for this additional field (in the primary language)."
-msgstr "Le texte de ce champ supplémentaire (dans la langue principale)."
+msgstr "Le texte de ce champ supplémentaire (dans la première langue)."
-#: accounts/models.py:32 options/models.py:186 questions/models/question.py:102
+#: accounts/models.py:33 options/models.py:186 questions/models/question.py:102
#: tasks/models.py:101
msgid "Text (secondary)"
-msgstr "Texte (secondaire)"
+msgstr "Texte (deuxième langue)"
-#: accounts/models.py:33
+#: accounts/models.py:34
msgid "The text for this additional field (in the secondary language)."
-msgstr "Le texte de ce champ supplémentaire (dans la langue secondaire)."
+msgstr "Le texte de ce champ supplémentaire (dans la deuxième langue)."
-#: accounts/models.py:37 options/models.py:191 questions/models/question.py:107
+#: accounts/models.py:38 options/models.py:191 questions/models/question.py:107
#: tasks/models.py:106
msgid "Text (tertiary)"
-msgstr "Texte (tertiaire)"
+msgstr "Texte (troisième langue)"
-#: accounts/models.py:38
+#: accounts/models.py:39
msgid "The text for this additional field (in the tertiary language)."
-msgstr "Le texte de ce champ supplémentaire (dans la langue tertiaire)."
+msgstr "Le texte de ce champ supplémentaire (dans la troisième langue)."
-#: accounts/models.py:42 options/models.py:196 questions/models/question.py:112
+#: accounts/models.py:43 options/models.py:196 questions/models/question.py:112
#: tasks/models.py:111
msgid "Text (quaternary)"
-msgstr "Texte (quaternaire)"
+msgstr "Texte (quatrième langue)"
-#: accounts/models.py:43
+#: accounts/models.py:44
msgid "The text for this additional field (in the quaternary language)."
-msgstr "Le texte de ce champ supplémentaire (dans la langue quaternaire)."
+msgstr "Le texte de ce champ supplémentaire (dans la quatrième langue)."
-#: accounts/models.py:47 options/models.py:201 questions/models/question.py:117
+#: accounts/models.py:48 options/models.py:201 questions/models/question.py:117
#: tasks/models.py:116
msgid "Text (quinary)"
-msgstr "Texte (quinaire)"
+msgstr "Texte (cinquième langue)"
-#: accounts/models.py:48
+#: accounts/models.py:49
msgid "The text for this additional field (in the quinary language)."
-msgstr "Le texte de ce champ supplémentaire (en langage quinaire)."
+msgstr "Le texte de ce champ supplémentaire (dans la cinquième langue)."
-#: accounts/models.py:52 options/models.py:206 questions/models/catalog.py:111
+#: accounts/models.py:53 options/models.py:206 questions/models/catalog.py:112
#: questions/models/page.py:136 questions/models/question.py:72
#: questions/models/questionset.py:106 views/models.py:103
msgid "Help (primary)"
-msgstr "Aide (primaire)"
+msgstr "Aide (première langue)"
-#: accounts/models.py:53
+#: accounts/models.py:54
msgid ""
"The help text to be displayed next to the input element (in the primary "
"language)."
msgstr ""
-"Le texte d'aide à afficher à côté de l'élément de saisie (dans la langue "
-"principale)."
+"Le texte d'aide à afficher à côté de l'élément de saisie (dans la première "
+"langue)."
-#: accounts/models.py:57 options/models.py:211 questions/models/catalog.py:116
+#: accounts/models.py:58 options/models.py:211 questions/models/catalog.py:117
#: questions/models/page.py:141 questions/models/question.py:77
#: questions/models/questionset.py:111 views/models.py:108
msgid "Help (secondary)"
-msgstr "Aide (secondaire)"
+msgstr "Aide (deuxième langue)"
-#: accounts/models.py:58
+#: accounts/models.py:59
msgid ""
"The help text to be displayed next to the input element (in the secondary "
"language)."
msgstr ""
-"Le texte d'aide à afficher à côté de l'élément de saisie (dans la langue "
-"secondaire)."
+"Le texte d'aide à afficher à côté de l'élément de saisie (dans la deuxième "
+"langue)."
-#: accounts/models.py:62 options/models.py:216 questions/models/catalog.py:121
+#: accounts/models.py:63 options/models.py:216 questions/models/catalog.py:122
#: questions/models/page.py:146 questions/models/question.py:82
#: questions/models/questionset.py:116 views/models.py:113
msgid "Help (tertiary)"
-msgstr "Aide (tertiaire)"
+msgstr "Aide (troisième langue)"
-#: accounts/models.py:63
+#: accounts/models.py:64
msgid ""
"The help text to be displayed next to the input element (in the tertiary "
"language)."
msgstr ""
-"Le texte d'aide à afficher à côté de l'élément de saisie (dans la langue "
-"tertiaire)."
+"Le texte d'aide à afficher à côté de l'élément de saisie (dans la troisième "
+"langue)."
-#: accounts/models.py:67 options/models.py:221 questions/models/catalog.py:126
+#: accounts/models.py:68 options/models.py:221 questions/models/catalog.py:127
#: questions/models/page.py:151 questions/models/question.py:87
#: questions/models/questionset.py:121 views/models.py:118
msgid "Help (quaternary)"
-msgstr "Aide (quatriéme)"
+msgstr "Aide (quatrième langue)"
-#: accounts/models.py:68
+#: accounts/models.py:69
msgid ""
"The help text to be displayed next to the input element (in the quaternary "
"language)."
msgstr ""
-"Le texte d'aide à afficher à côté de l'élément de saisie (dans la langue "
-"quaternaire)."
+"Le texte d'aide à afficher à côté de l'élément de saisie (dans la quatrième "
+"langue)."
-#: accounts/models.py:72 options/models.py:226 questions/models/catalog.py:131
+#: accounts/models.py:73 options/models.py:226 questions/models/catalog.py:132
#: questions/models/page.py:156 questions/models/question.py:92
#: questions/models/questionset.py:126 views/models.py:123
msgid "Help (quinary)"
-msgstr "Aide (cinquième)"
+msgstr "Aide (cinquième langue)"
-#: accounts/models.py:73
+#: accounts/models.py:74
msgid ""
"The help text to be displayed next to the input element (in the quinary "
"language)."
msgstr ""
-"Le texte d'aide à afficher à côté de l'élément de saisie (en langage "
-"quinaire)."
+"Le texte d'aide à afficher à côté de l'élément de saisie (dans la cinquième "
+"langue)."
-#: accounts/models.py:76
+#: accounts/models.py:77
msgid "Required"
msgstr "Obligatoire"
-#: accounts/models.py:77
+#: accounts/models.py:78
msgid "Designates whether this additional field is required."
-msgstr "Désigne si ce champ supplémentaire est nécessaire."
+msgstr "Désigne si ce champ supplémentaire est obligatoire."
-#: accounts/models.py:82
+#: accounts/models.py:83
msgid "Additional field"
msgstr "Champ supplémentaire"
-#: accounts/models.py:83
+#: accounts/models.py:84
msgid "Additional fields"
-msgstr "Champs complémentaires"
+msgstr "Champs supplémentaires"
-#: accounts/models.py:106
+#: accounts/models.py:107
msgid "Additional field value"
msgstr "Valeur de champ supplémentaire"
-#: accounts/models.py:107
+#: accounts/models.py:108
msgid "Additional field values"
-msgstr "Valeurs de champ complémentaires"
+msgstr "Valeurs de champ supplémentaires"
-#: accounts/models.py:124
+#: accounts/models.py:125
msgid "Consent field value"
msgstr "Valeur du champ de consentement"
-#: accounts/models.py:125
+#: accounts/models.py:126
msgid "Consent field values"
msgstr "Valeurs des champs de consentement"
-#: accounts/models.py:181
+#: accounts/models.py:182
msgid "Member"
msgstr "Membre"
-#: accounts/models.py:182
+#: accounts/models.py:183
msgid "The sites for which this user is a member."
-msgstr "Les sites dont cet utilisateur est membre."
+msgstr "Les sites auxquels cet utilisateur est rattaché."
-#: accounts/models.py:186 projects/constants.py:9
+#: accounts/models.py:187 projects/constants.py:9
#: projects/models/membership.py:13
msgid "Manager"
-msgstr "Directeur"
+msgstr "Gestionnaire"
-#: accounts/models.py:187
+#: accounts/models.py:188
msgid "The sites for which this user is manager."
-msgstr "Les sites dont l'utilisateur en cours est le gestionnaire."
+msgstr "Les sites dont l'utilisateur est gestionnaire."
-#: accounts/models.py:191
+#: accounts/models.py:192
msgid "Editor"
msgstr "Éditeur"
-#: accounts/models.py:192
+#: accounts/models.py:193
msgid "The sites for which this user is an editor."
msgstr "Les sites pour lesquels l'utilisateur est éditeur."
-#: accounts/models.py:196
+#: accounts/models.py:197
msgid "Reviewer"
-msgstr "Correcteur/evaluateur"
+msgstr "Rapporteur"
-#: accounts/models.py:197
+#: accounts/models.py:198
msgid "The sites for which this user is a reviewer."
-msgstr "Les sites pour lesquels cet utilisateur est un évaluateur."
+msgstr "Les sites pour lesquels l'utilisateur est rapporteur."
-#: accounts/models.py:202 projects/models/invite.py:33
+#: accounts/models.py:203 projects/forms.py:278 projects/models/invite.py:33
#: projects/models/membership.py:30
#: projects/templates/projects/project_detail_invites.html:16
#: projects/templates/projects/project_detail_memberships.html:22
msgid "Role"
msgstr "Rôle"
-#: accounts/models.py:203
+#: accounts/models.py:204
msgid "Roles"
msgstr "Rôles"
@@ -243,7 +242,7 @@ msgstr "Jeton API"
#: accounts/templates/account/account_token.html:8
msgid "Your API token is:"
-msgstr "Votre jeton d'API est le suivant:"
+msgstr "Votre jeton API est :"
#: accounts/templates/account/account_token.html:12
msgid "Regenerate token"
@@ -259,11 +258,11 @@ msgstr ""
#: accounts/templates/account/email.html:6
msgid "E-mail Addresses"
-msgstr "Adresses e-mail"
+msgstr "Adresses courriel"
#: accounts/templates/account/email.html:10
msgid "The following e-mail addresses are associated with your account:"
-msgstr "Les adresses e-mail suivantes sont associées à votre compte:"
+msgstr "Les adresses courriel suivantes sont associées à votre compte:"
#: accounts/templates/account/email.html:26
msgid "Primary"
@@ -271,15 +270,15 @@ msgstr "Primaire"
#: accounts/templates/account/email.html:30
msgid "Verified"
-msgstr "Vérifié"
+msgstr "Vérifiée"
#: accounts/templates/account/email.html:32
msgid "Unverified"
-msgstr "Non vérifié"
+msgstr "Non vérifiée"
#: accounts/templates/account/email.html:40
msgid "Make Primary"
-msgstr "Rendre primaire"
+msgstr "Rendrepremière langue"
#: accounts/templates/account/email.html:41
msgid "Re-send Verification"
@@ -298,21 +297,21 @@ msgid ""
"You currently do not have any e-mail address set up. You should really add "
"an e-mail address so you can receive notifications, reset your password, etc."
msgstr ""
-"Vous n'avez actuellement aucune adresse e-mail configurée. Vous devez "
-"vraiment ajouter une adresse e-mail pour recevoir des notifications, "
-"réinitialiser votre mot de passe, etc."
+"Vous n'avez actuellement aucune adresse courriel configurée. Vous devriez "
+"ajouter une adresse courriel pour recevoir des notifications, réinitialiser "
+"votre mot de passe, etc."
#: accounts/templates/account/email.html:56
msgid "Add E-mail Address"
-msgstr "Ajouter une adresse e-mail"
+msgstr "Ajouter une adresse courriel"
#: accounts/templates/account/email.html:63
msgid "Add E-mail"
-msgstr "Ajouter un e-mail"
+msgstr "Ajouter un courriel"
#: accounts/templates/account/email.html:71
msgid "Do you really want to remove the selected e-mail address?"
-msgstr "Voulez-vous vraiment supprimer l'adresse e-mail sélectionnée?"
+msgstr "Voulez-vous vraiment supprimer l'adresse courriel sélectionnée?"
#: accounts/templates/account/email/password_reset_key_message.txt:1
#: projects/templates/projects/email/project_invite_message.txt:1
@@ -326,11 +325,10 @@ msgid ""
"%(site_domain)s will be reset. It can be safely ignored if you did not "
"request a password reset. Click the link below to reset your password."
msgstr ""
-"Vous recevez cet e-mail parce que vous avez demandé la réinitialisation de "
+"Vous recevez ce courriel parce que vous avez demandé la réinitialisation de "
"votre mot de passe sur %(site_domain)s. Vous pouvez l'ignorer si vous n'avez "
-"pas demandé la réinitialisation de votre mot de passe. Vous pouvez l'ignorer "
-"si vous n'avez pas demandé la réinitialisation de votre mot de passe. "
-"Cliquez sur le lien ci-dessous pour réinitialiser votre mot de passe."
+"pas demandé la réinitialisation de votre mot de passe. Cliquez sur le lien "
+"ci-dessous pour réinitialiser votre mot de passe."
#: accounts/templates/account/email/password_reset_key_message.txt:11
#, python-format
@@ -351,7 +349,7 @@ msgstr "Réinitialisation du mot de passe"
#: accounts/templates/account/email_confirm.html:7
msgid "Confirm E-mail Address"
-msgstr "Confirmez votre adresse e-mail"
+msgstr "Confirmez votre adresse courriel"
#: accounts/templates/account/email_confirm.html:14
#, python-format
@@ -359,8 +357,8 @@ msgid ""
"Please confirm that %(email)s is an e-mail "
"address for user %(user_display)s."
msgstr ""
-"Veuillez confirmer que %(email)s est un e-"
-"mailadresse de l'utilisateur %(user_display)s."
+"Veuillez confirmer que %(email)s correspond "
+"à une adresse courriel de l'utilisateur %(user_display)s."
#: accounts/templates/account/email_confirm.html:21
msgid "Confirm"
@@ -372,7 +370,7 @@ msgid ""
"This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
msgstr ""
-"Ce lien de confirmation par e-mail a expiré ou n'est pas valide. Veuillez "
+"Ce lien de confirmation par courriel a expiré ou n'est pas valide. Veuillez "
" faire une nouvelle demande de confirmation par e-"
"mail ."
@@ -395,7 +393,7 @@ msgid ""
"href=\"%(signup_url)s\">sign up first."
msgstr ""
"Si vous n'avez pas encore créé de compte "
-"inscrivez-vous d'abord ."
+"enregistrez-vous d'abord ."
#: accounts/templates/account/login_form_account.html:14
#, python-format
@@ -407,6 +405,10 @@ msgstr ""
"réinitialiser, cliquez sur ici ."
#: accounts/templates/account/login_form_socialaccount.html:9
+#, fuzzy
+#| msgid ""
+#| "Alternatively, you can login using one of the following third party "
+#| "accounts :"
msgid ""
"Alternatively, you can login using one of the following third party accounts:"
msgstr ""
@@ -422,7 +424,7 @@ msgstr "Se déconnecter"
#: accounts/templates/account/logout.html:9
msgid "Are you sure you want to sign out?"
-msgstr "Êtes-vous certain de vouloir vous déconnecter?"
+msgstr "Êtes-vous certain de vouloir vous déconnecter ?"
#: accounts/templates/account/password_change.html:6
#: accounts/templates/account/password_change.html:17
@@ -436,16 +438,17 @@ msgid ""
"can verify you typed it in correctly."
msgstr ""
"Veuillez entrer votre ancien mot de passe, puis entrez votre nouveau mot de "
-"passe deux fois pour que nous puissions vérifier que vous l'avez "
-"saisicorrectement."
+"passe deux fois pour que nous puissions vérifier que vous l'avez saisi "
+"correctement."
#: accounts/templates/account/password_reset.html:13
msgid ""
"Forgotten your password? Enter your e-mail address below, and we'll send you "
"an e-mail allowing you to reset it."
msgstr ""
-"Vous avez oublié votre mot de passe? Entrez votre adresse e-mail ci-dessous, "
-"et nous vous enverrons un e-mail vous permettant de le réinitialiser."
+"Avez-vous oublié votre mot de passe ? Entrez votre adresse courriel ci-"
+"dessous, et nous vous enverrons un courriel vous permettant de le "
+"réinitialiser."
#: accounts/templates/account/password_reset.html:21
msgid "Reset my password"
@@ -460,7 +463,7 @@ msgid ""
"We have sent you an e-mail. Please contact us if you do not receive it "
"within a few minutes."
msgstr ""
-"Nous vous avons envoyé un e-mail. Veuillez nous contacter si vous ne le "
+"Nous vous avons envoyé un courriel. Veuillez nous contacter si vous ne le "
"recevez pas dans quelques minutes."
#: accounts/templates/account/password_reset_done.html:19
@@ -468,8 +471,8 @@ msgid ""
"If you don't receive an e-mail, please make sure you've entered the address "
"you registered with, and check your spam folder."
msgstr ""
-"Si vous ne recevez pas d'e-mail, assurez-vous d'avoir saisi l'adresse avec "
-"laquelle vous êtes inscrit et vérifiez votre dossier spam."
+"Si vous ne recevez pas de courriel, assurez-vous d'avoir saisi l'adresse "
+"avec laquelle vous êtes inscrit et vérifiez votre dossier spam."
#: accounts/templates/account/password_reset_from_key.html:8
msgid "Bad token"
@@ -506,8 +509,7 @@ msgstr "Réinitialisation du mot de passe terminée"
#: accounts/templates/account/password_reset_from_key_done.html:10
msgid "Your password has been set. You may go ahead and log in now."
msgstr ""
-"Votre mot de passe a été défini. Vous pouvez continuer et vous connecter "
-"maintenant."
+"Votre mot de passe a été défini. Vous pouvez vous connecter maintenant."
#: accounts/templates/account/password_set.html:6
msgid "Set new password"
@@ -535,7 +537,7 @@ msgstr "Créer un nouveau compte"
msgid ""
"Already have an account? Then please sign in."
msgstr ""
-"Vous avez déjà un compte? Alors, veuillez vous "
+"Avez-vous déjà un compte? Alors, veuillez vous "
"connecter ."
#: accounts/templates/account/signup.html:34
@@ -555,11 +557,11 @@ msgstr "Créer un compte"
#: accounts/templates/account/signup_closed.html:6
msgid "Sign up closed"
-msgstr "Inscriptions closes"
+msgstr "Inscriptions indisponible"
#: accounts/templates/account/signup_closed.html:9
msgid "We are sorry, but the sign up is currently closed."
-msgstr "Nous sommes désolés, mais l'inscription est actuellement fermée."
+msgstr "Nous sommes désolés, mais l'inscription est actuellement indisponible."
#: accounts/templates/account/signup_modal_terms_of_use.html:28
#: accounts/templates/account/terms_of_use.html:6
@@ -590,7 +592,7 @@ msgstr "Vous avez accepté les conditions d'utilisation."
#: accounts/templates/account/verification_sent.html:7
#: accounts/templates/account/verified_email_required.html:6
msgid "Verify your e-mail address"
-msgstr "Vérifiez votre adresse e-mail"
+msgstr "Vérifiez votre adresse courriel"
#: accounts/templates/account/verification_sent.html:11
msgid ""
@@ -598,9 +600,9 @@ msgid ""
"finalize the signup process. Please contact us if you do not receive it "
"within a few minutes."
msgstr ""
-"Nous vous avons envoyé un e-mail pour vérification. Suivez le lien fourni "
+"Nous vous avons envoyé un courriel de vérification. Suivez le lien fourni "
"pour finaliser le processus d'inscription. Veuillez nous contacter si vous "
-"ne le recevez pas en quelques minutes."
+"ne le recevez pas dans quelques minutes."
#: accounts/templates/account/verified_email_required.html:11
msgid ""
@@ -609,8 +611,8 @@ msgid ""
"address."
msgstr ""
"Cette partie du site nous oblige à vérifier que vous êtes bien celui que "
-"vous prétendez être. À cette fin, nous vous demandons de vérifier la "
-"propriété de votre adresse e-mail."
+"vous prétendez être. À cette fin, nous vous demandons de confirmer votre "
+"adresse courriel."
#: accounts/templates/account/verified_email_required.html:15
msgid ""
@@ -618,8 +620,8 @@ msgid ""
"inside this e-mail. Please contact us if you do not receive it within a few "
"minutes."
msgstr ""
-"Nous vous avons envoyé un e-mail pour vérification. Veuillez cliquer sur le "
-"lien à l'intérieur de cet e-mail. Veuillez nous contacter si vous ne le "
+"Nous vous avons envoyé un courriel de vérification. Veuillez cliquer sur le "
+"lien à l'intérieur de ce courriel. Veuillez nous contacter si vous ne le "
"recevez pas dans quelques minutes."
#: accounts/templates/account/verified_email_required.html:19
@@ -628,8 +630,8 @@ msgid ""
"Note: you can still change your e-"
"mail address."
msgstr ""
-"Remarque: vous pouvez toujours modifier votre courrier "
-"électronique ."
+"Remarque: vous pouvez toujours modifier votre adresse "
+"courriel ."
#: accounts/templates/profile/profile_remove_closed.html:6
#: accounts/templates/profile/profile_remove_failed.html:6
@@ -651,7 +653,7 @@ msgstr ""
msgid ""
"Profile removal failed. Please make sure that you enter the correct data."
msgstr ""
-"La suppression du profil a échoué. Assurez-vous de saisir les données "
+"La suppression du profil a échoué. Assurez-vous de saisir les informations "
"correctes."
#: accounts/templates/profile/profile_remove_form.html:9
@@ -660,8 +662,8 @@ msgid ""
"entering the necessary data below. Once completed this can not be undone."
msgstr ""
"Si vous souhaitez supprimer toutes les informations de votre compte, "
-"veuillez procéder par saisir les données nécessaires ci-dessous. Une fois "
-"terminé, cela ne peut pas être annulé."
+"veuillez remplir les champs ci-dessous. Une fois validée, cette action ne "
+"peut pas être annulée."
#: accounts/templates/profile/profile_remove_form.html:18
#: accounts/templates/profile/profile_update_form.html:25
@@ -700,8 +702,8 @@ msgid ""
msgstr ""
"Veuillez mettre à jour les informations de votre compte. Vous pouvez "
"modifier votre mot de passe en utilisant le "
-"formulaire de mot de passe et mettez à jour votre e-mail à l'aide du formulaire de courrier électronique ."
+"formulaire de mot de passe et vous pouvez modifier votre courriel en "
+"utilisant le formulaire d'adresse courriel ."
#: accounts/templates/profile/profile_update_form.html:33
msgid ""
@@ -709,7 +711,7 @@ msgid ""
"clicking the button below."
msgstr ""
"Si vous souhaitez supprimer toutes les informations de votre compte, "
-"veuillez procéder en cliquant sur le bouton ci-dessous."
+"veuillez cliquer sur le bouton ci-dessous."
#: accounts/templates/socialaccount/authentication_error.html:9
msgid "Social Network Login Failure"
@@ -736,12 +738,12 @@ msgid ""
"You can sign in to your account using any of the following third party "
"accounts:"
msgstr ""
-"Vous pouvez vous connecter à votre compte en utilisant l'un des tiers "
-"suivants comptes:"
+"Vous pouvez vous connecter à votre compte en utilisant l'une des identités "
+"suivantes :"
#: accounts/templates/socialaccount/connections.html:48
msgid "Remove selected account"
-msgstr "Supprimer le compte sélectionné"
+msgstr "Supprimer l'identité sélectionnée"
#: accounts/templates/socialaccount/connections.html:62
msgid ""
@@ -766,7 +768,7 @@ msgstr "Connecter les %(provider)s"
#, python-format
msgid "You are about to connect a new third party account from %(provider)s."
msgstr ""
-"Vous êtes sur le point de connecter un nouveau compte tiers de %(provider)s."
+"Vous êtes sur le point de connecter une nouvelle identité de %(provider)s."
#: accounts/templates/socialaccount/login.html:12
#, python-format
@@ -777,7 +779,7 @@ msgstr "Se connecter via %(provider)s"
#, python-format
msgid "You are about to sign in using a third party account from %(provider)s."
msgstr ""
-"Vous êtes sur le point de vous connecter en utilisant un compte tiers de "
+"Vous êtes sur le point de vous connecter en utilisant une identité de "
"%(provider)s."
#: accounts/templates/socialaccount/login.html:19
@@ -828,7 +830,7 @@ msgstr "Conditions"
#: options/models.py:19 options/models.py:151
#: options/templates/options/export/option.html:5
#: options/templates/options/export/optionset.html:5
-#: questions/models/catalog.py:36 questions/models/page.py:35
+#: questions/models/catalog.py:37 questions/models/page.py:35
#: questions/models/question.py:27 questions/models/questionset.py:30
#: questions/models/section.py:34
#: questions/templates/questions/export/catalog.html:6
@@ -848,7 +850,7 @@ msgstr ""
"automatiquement)."
#: conditions/models.py:40 domain/models.py:20 options/models.py:24
-#: options/models.py:156 questions/models/catalog.py:41
+#: options/models.py:156 questions/models/catalog.py:42
#: questions/models/page.py:40 questions/models/question.py:32
#: questions/models/questionset.py:35 questions/models/section.py:39
#: tasks/models.py:25 views/models.py:27
@@ -860,7 +862,7 @@ msgid "The prefix for the URI of this condition."
msgstr "Préfixe de l'URI de cette condition."
#: conditions/models.py:45 options/models.py:29 options/models.py:161
-#: questions/models/catalog.py:46 questions/models/page.py:45
+#: questions/models/catalog.py:47 questions/models/page.py:45
#: questions/models/question.py:37 questions/models/questionset.py:40
#: questions/models/section.py:44 tasks/models.py:30 views/models.py:32
msgid "URI Path"
@@ -873,7 +875,7 @@ msgstr "Le chemin d'accès à l'URI de cette condition."
#: conditions/models.py:50
#: conditions/templates/conditions/export/conditions.html:21
#: domain/models.py:35 options/models.py:34 options/models.py:166
-#: questions/models/catalog.py:51 questions/models/page.py:50
+#: questions/models/catalog.py:52 questions/models/page.py:50
#: questions/models/question.py:42 questions/models/questionset.py:45
#: questions/models/section.py:49
#: questions/templates/questions/export/catalog.html:12
@@ -892,7 +894,7 @@ msgid "Additional internal information about this condition."
msgstr "Informations internes complémentaires sur cette condition."
#: conditions/models.py:55 domain/models.py:40 options/models.py:39
-#: options/models.py:171 questions/models/catalog.py:56
+#: options/models.py:171 questions/models/catalog.py:57
#: questions/models/page.py:55 questions/models/question.py:47
#: questions/models/questionset.py:50 questions/models/section.py:54
#: tasks/models.py:40 views/models.py:42
@@ -904,7 +906,7 @@ msgid "Designates whether this condition can be changed."
msgstr "Désigne si cette condition peut être modifiée."
#: conditions/models.py:60 domain/models.py:45 options/models.py:49
-#: options/models.py:176 questions/models/catalog.py:76
+#: options/models.py:176 questions/models/catalog.py:77
#: questions/models/page.py:81 questions/models/question.py:67
#: questions/models/questionset.py:76 questions/models/section.py:64
#: tasks/models.py:61 views/models.py:63
@@ -957,12 +959,12 @@ msgid ""
"If using a value pointing to an option, the option this condition is "
"checking against."
msgstr ""
-"Si vous utilisez une valeur pointant vers une option, l'option cette "
-"condition est vérification contre."
+"Si vous utilisez une valeur pointant vers une option, l'option que cette "
+"condition vérifie."
#: conditions/models.py:89
msgid "Condition"
-msgstr "État"
+msgstr "Condition"
#: conditions/templates/conditions/export/conditions.html:36
msgid "Target"
@@ -1004,7 +1006,7 @@ msgstr "Date et heure"
#: core/constants.py:23
msgid "Phone"
-msgstr "Telephone"
+msgstr "Téléphone"
#: core/constants.py:24 options/models.py:287 projects/models/value.py:74
msgid "Option"
@@ -1014,7 +1016,7 @@ msgstr "Option"
msgid "File"
msgstr "Fichier"
-#: core/imports.py:601
+#: core/imports.py:600
msgid "You have no permissions to import"
msgstr "Vous n'avez pas le droit d'importer"
@@ -1154,11 +1156,11 @@ msgid ""
msgstr ""
"L'API RDMO vous permet d'interagir avec le service de manière programmatique "
"à l'aide de scripts ou d'autres outils. Nous fournissons plusieurs ensembles "
-"de points d'extrémité :"
+"d'endpoints :"
#: core/templates/core/api.html:45
msgid "The different modules of RDMO have separate endpoints:"
-msgstr "Les différents modules de RDMO ont des points d'arrivée distincts:"
+msgstr "Les différents modules de RDMO ont des endpoints distincts:"
#: core/templates/core/back_to_project_link.html:4
#: projects/templates/projects/project_view.html:15
@@ -1189,11 +1191,11 @@ msgstr "À propos de RDMO"
#: core/templates/core/base_navigation.html:100
#: overlays/templates/overlays/reset_overlays.html:6
msgid "Reset tutorial overlays"
-msgstr "Réinitialiser les superpositions de tutoriels"
+msgstr "Réinitialiser les info-bulles de tutoriel"
#: core/templates/core/base_navigation_account.html:4
msgid "Update e-mail"
-msgstr "Mettre à jour l'e-mail"
+msgstr "Mettre à jour le courriel"
#: core/templates/core/bootstrap_form_field.html:69
msgid ""
@@ -1242,7 +1244,7 @@ msgstr "Ce format n'est pas pris en charge."
#: core/utils.py:243
msgid "show more"
-msgstr "en savoir plus"
+msgstr "afficher plus"
#: core/utils.py:244
msgid "show less"
@@ -1274,43 +1276,43 @@ msgstr "Un élément supérieur est verrouillé."
msgid "The element is locked."
msgstr "L'élément est verrouillé."
-#: core/xml.py:27
+#: core/xml.py:26
msgid "This file does not exists."
msgstr "Ce fichier n'existe pas."
-#: core/xml.py:36 core/xml.py:90
+#: core/xml.py:35 core/xml.py:89
msgid "XML Parsing Error"
msgstr "Erreur d'analyse XML"
-#: core/xml.py:41
+#: core/xml.py:40
msgid ""
"The content of the XML file does not consist of well-formed data or markup."
msgstr ""
"Le contenu du fichier XML n'est pas constitué de données ou de balises bien "
"formées."
-#: core/xml.py:43
+#: core/xml.py:42
msgid "This XML does not contain RDMO content."
msgstr "Ce XML ne contient pas de contenu RDMO."
-#: core/xml.py:60
+#: core/xml.py:59
msgid ""
"The \"required\" attribute in this RDMO XML file is not a valid version."
msgstr ""
"L'attribut « required » de ce fichier XML RDMO n'est pas une version valide."
-#: core/xml.py:67
+#: core/xml.py:66
msgid "This RDMO XML file requires a newer RDMO version to be imported."
msgstr ""
"Ce fichier XML RDMO nécessite une version plus récente du RDMO pour être "
"importé."
-#: core/xml.py:78
+#: core/xml.py:77
msgid "The \"version\" attribute in this RDMO XML file is not a valid version."
msgstr ""
"L'attribut « version » de ce fichier XML RDMO n'est pas une version valide."
-#: core/xml.py:91 core/xml.py:103
+#: core/xml.py:90 core/xml.py:102
msgid "This is not a valid RDMO XML file."
msgstr "Il ne s'agit pas d'un fichier XML RDMO valide."
@@ -1436,12 +1438,12 @@ msgstr "Importer"
msgid "Import elements"
msgstr "Importer des éléments"
-#: management/viewsets.py:41 management/viewsets.py:77 projects/viewsets.py:370
-#: projects/viewsets.py:371 projects/viewsets.py:542
+#: management/viewsets.py:40 management/viewsets.py:76 projects/viewsets.py:379
+#: projects/viewsets.py:380 projects/viewsets.py:549
msgid "This field may not be blank."
msgstr "Ce champ ne doit pas être vide."
-#: management/viewsets.py:79
+#: management/viewsets.py:78
msgid "This is not a valid RDMO import JSON."
msgstr "Il ne s'agit pas d'un JSON d'importation RDMO valide."
@@ -1470,17 +1472,17 @@ msgstr "Préfixe de l'URI de ce jeu d'options."
#: options/models.py:30
msgid "The path for the URI of this option set."
-msgstr "Le chemin d'accès à l'URI de cet ensemble d'options."
+msgstr "Le chemin d'accès à l'URI de cet jeu d'options."
#: options/models.py:35
msgid "Additional internal information about this option set."
-msgstr "Informations internes complémentaires sur cet ensemble d'options."
+msgstr "Informations internes complémentaires sur cet jeu d'options."
#: options/models.py:40
msgid "Designates whether this option set (and its options) can be changed."
-msgstr "Désigne si cet ensemble d'options (et ses options) peut être modifié."
+msgstr "Désigne si cet jeu d'options (et ses options) peut être modifié."
-#: options/models.py:44 questions/models/catalog.py:61 tasks/models.py:45
+#: options/models.py:44 questions/models/catalog.py:62 tasks/models.py:45
#: views/models.py:47
msgid "Order"
msgstr "Ordre"
@@ -1506,16 +1508,16 @@ msgid ""
"The provider for this optionset. If set, it will create dynamic options for "
"this optionset."
msgstr ""
-"Le fournisseur de cet ensemble d'options. S'il est défini, il créera des "
-"options dynamiques pour cet ensemble d'options."
+"Le fournisseur de cet jeu d'options. S'il est défini, il créera des options "
+"dynamiques pour cet jeu d'options."
#: options/models.py:60
msgid "The list of options for this option set."
-msgstr "La liste des options pour cet ensemble d'options."
+msgstr "La liste des options pour cet jeu d'options."
#: options/models.py:65
msgid "The list of conditions evaluated for this option set."
-msgstr "Liste des conditions évaluées pour cet ensemble d'options."
+msgstr "Liste des conditions évaluées pour cet jeu d'options."
#: options/models.py:70
msgid "Option set"
@@ -1524,7 +1526,7 @@ msgstr "Jeu d'options"
#: options/models.py:71 options/templates/options/export/optionsets.html:6
#: questions/models/question.py:217
msgid "Option sets"
-msgstr "Ensembles d'options"
+msgstr "Jeux d'options"
#: options/models.py:146 questions/constants.py:15
msgid "Textarea"
@@ -1560,47 +1562,47 @@ msgstr ""
#: options/models.py:182
msgid "The text for this option (in the primary language)."
-msgstr "Le texte de cette option (dans la langue principale)."
+msgstr "Le texte de cette option (dans la première langue)."
#: options/models.py:187
msgid "The text for this option (in the secondary language)."
-msgstr "Le texte de cette option (dans la langue secondaire)."
+msgstr "Le texte de cette option (dans la deuxième langue)."
#: options/models.py:192
msgid "The text for this option (in the tertiary language)."
-msgstr "Le texte de cette option (dans la langue tertiaire)."
+msgstr "Le texte de cette option (dans la troisième langue)."
#: options/models.py:197
msgid "The text for this option (in the quaternary language)."
-msgstr "Le texte de cette option (dans la langue quaternaire)."
+msgstr "Le texte de cette option (dans la quatrième langue)."
#: options/models.py:202
msgid "The text for this option (in the quinary language)."
-msgstr "Le texte de cette option (en langage quinaire)."
+msgstr "Le texte de cette option (dans la cinquième langue)."
#: options/models.py:207
msgid "The help text for this option (in the primary language)."
-msgstr "Le texte d'aide pour cette option (dans la langue principale)."
+msgstr "Le texte d'aide pour cette option (dans la première langue)."
#: options/models.py:212
msgid "The help text for this option (in the secondary language)."
-msgstr "Le texte d'aide pour cette option (dans la langue secondaire)."
+msgstr "Le texte d'aide pour cette option (dans la deuxième langue)."
#: options/models.py:217
msgid "The help text for this option (in the tertiary language)."
-msgstr "Le texte d'aide pour cette option (dans la langue tertiaire)."
+msgstr "Le texte d'aide pour cette option (dans la troisième langue)."
#: options/models.py:222
msgid "The help text for this option (in the quaternary language)."
-msgstr "Le texte d'aide pour cette option (dans la langue quaternaire)."
+msgstr "Le texte d'aide pour cette option (dans la quatrième langue)."
#: options/models.py:227
msgid "The help text for this option (in the quinary language)."
-msgstr "Le texte d'aide pour cette option (en langage quinaire)."
+msgstr "Le texte d'aide pour cette option (dans la cinquième langue)."
#: options/models.py:231 questions/models/question.py:122
msgid "Default text value (primary)"
-msgstr "Valeur du texte par défaut (primaire)"
+msgstr "Valeur du texte par défaut (première langue)"
#: options/models.py:232
msgid ""
@@ -1608,11 +1610,11 @@ msgid ""
"primary language)."
msgstr ""
"Valeur textuelle par défaut pour la saisie supplémentaire de cette option "
-"(dans la langue principale)."
+"(dans la première langue)."
#: options/models.py:236 questions/models/question.py:127
msgid "Default text value (secondary)"
-msgstr "Valeur du texte par défaut (secondaire)"
+msgstr "Valeur du texte par défaut (deuxième langue)"
#: options/models.py:237
msgid ""
@@ -1620,11 +1622,11 @@ msgid ""
"secondary language)."
msgstr ""
"Valeur textuelle par défaut pour la saisie supplémentaire de cette option "
-"(dans la langue secondaire)."
+"(dans la deuxième langue)."
#: options/models.py:241 questions/models/question.py:132
msgid "Default text value (tertiary)"
-msgstr "Valeur du texte par défaut (tertiaire)"
+msgstr "Valeur du texte par défaut (troisième langue)"
#: options/models.py:242
msgid ""
@@ -1632,11 +1634,11 @@ msgid ""
"tertiary language)."
msgstr ""
"Valeur textuelle par défaut pour la saisie supplémentaire de cette option "
-"(dans la langue tertiaire)."
+"(dans la troisième langue)."
#: options/models.py:246 questions/models/question.py:137
msgid "Default text value (quaternary)"
-msgstr "Valeur du texte par défaut (quaternaire)"
+msgstr "Valeur du texte par défaut (quatrième langue)"
#: options/models.py:247
msgid ""
@@ -1644,11 +1646,11 @@ msgid ""
"quaternary language)."
msgstr ""
"Valeur textuelle par défaut pour l'entrée supplémentaire de cette option "
-"(dans la langue quaternaire)."
+"(dans la quatrième langue)."
#: options/models.py:251 questions/models/question.py:142
msgid "Default text value (quinary)"
-msgstr "Valeur du texte par défaut (quinaire)"
+msgstr "Valeur du texte par défaut (cinquième langue)"
#: options/models.py:252
msgid ""
@@ -1656,47 +1658,47 @@ msgid ""
"quinary language)."
msgstr ""
"Valeur textuelle par défaut pour l'entrée supplémentaire de cette option "
-"(dans la langage quinaire)."
+"(dans la cinquième langue)."
#: options/models.py:256
msgid "View text (primary)"
-msgstr "Voir le texte (primaire)"
+msgstr "Voir le texte (principal)"
#: options/models.py:257
msgid "The view text for this option (in the primary language)."
-msgstr "Le texte d'affichage de cette option (dans la langue principale)."
+msgstr "Le texte d'affichage de cette option (dans la première langue)."
#: options/models.py:261
msgid "View text (secondary)"
-msgstr "Voir le texte (secondaire)"
+msgstr "Voir le texte (deuxième langue)"
#: options/models.py:262
msgid "The view text for this option (in the secondary language)."
-msgstr "Le texte d'affichage de cette option (dans la langue secondaire)."
+msgstr "Le texte d'affichage de cette option (dans la deuxième langue)."
#: options/models.py:266
msgid "View text (tertiary)"
-msgstr "Voir le texte (tertiaire)"
+msgstr "Voir le texte (troisième langue)"
#: options/models.py:267
msgid "The view text for this option (in the tertiary language)."
-msgstr "Le texte de la vue pour cette option (dans la langue tertiaire)."
+msgstr "Le texte de la vue pour cette option (dans la troisième langue)."
#: options/models.py:271
msgid "View text (quaternary)"
-msgstr "Voir le texte (quaternaire)"
+msgstr "Voir le texte (quatrième langue)"
#: options/models.py:272
msgid "The view text for this option (in the quaternary language)."
-msgstr "Le texte de la vue pour cette option (dans la langue quaternaire)."
+msgstr "Le texte de la vue pour cette option (dans la quatrième langue)."
#: options/models.py:276
msgid "View text (quinary)"
-msgstr "Voir le texte (quinaire)"
+msgstr "Voir le texte (cinquième langue)"
#: options/models.py:277
msgid "The view text for this option (in the quinary language)."
-msgstr "Le texte d'affichage de cette option (en langage quinaire)."
+msgstr "Le texte d'affichage de cette option (dans la cinquième langue)."
#: options/models.py:281 options/templates/options/export/option.html:17
msgid "Additional input"
@@ -1723,7 +1725,7 @@ msgstr "Texte par défaut"
#: overlays/apps.py:7 overlays/models.py:33
msgid "Overlays"
-msgstr "Superpositions"
+msgstr "Info-bulles"
#: overlays/models.py:11 projects/forms.py:275
#: projects/models/continuation.py:18 projects/models/invite.py:23
@@ -1735,7 +1737,7 @@ msgstr "Utilisateur"
#: overlays/models.py:12
msgid "The user for this overlay."
-msgstr "L'utilisateur de cette superposition."
+msgstr "L'utilisateur de cette info-bulle."
#: overlays/models.py:16 projects/models/project.py:39
msgid "Site"
@@ -1743,7 +1745,7 @@ msgstr "Site"
#: overlays/models.py:17
msgid "The site for this overlay."
-msgstr "Le site pour cette superposition."
+msgstr "Le site pour cette info-bulle."
#: overlays/models.py:21
msgid "Url name"
@@ -1751,21 +1753,21 @@ msgstr "Nom de l'URL"
#: overlays/models.py:22
msgid "The url_name for this overlay."
-msgstr "Le nom de l'url pour cette superposition."
+msgstr "Le nom de l'URL pour cette info-bulle."
#: overlays/models.py:26 projects/forms.py:430
#: projects/templates/projects/project_answers.html:13
#: projects/templates/projects/project_view.html:28
msgid "Current"
-msgstr "Courant"
+msgstr "Actuel"
#: overlays/models.py:27
msgid "The current state for this overlay."
-msgstr "L'état actuel de cette superposition."
+msgstr "L'état actuel de cette info-bulle."
#: overlays/models.py:32
msgid "Overlay"
-msgstr "Superposition"
+msgstr "Info-bulle"
#: overlays/templates/overlays/buttons.html:4
msgid "Dismiss"
@@ -1781,17 +1783,17 @@ msgid ""
"these overlays will no longer be displayed. Please click the button below if "
"you want to go through the tutorials again."
msgstr ""
-"RDMO utilise des superpositions pour présenter ses fonctionnalités aux "
-"nouveaux utilisateurs. Par la suite, ces superpositions ne seront plus "
-"affichées. Veuillez cliquer sur le bouton ci-dessous si vous souhaitez "
-"consulter à nouveau les didacticiels."
+"RDMO utilise des info-bulles pour présenter ses fonctionnalités aux nouveaux "
+"utilisateurs. Par la suite, ces info-bulles ne seront plus affichées. "
+"Veuillez cliquer sur le bouton ci-dessous si vous souhaitez consulter à "
+"nouveau les tutoriels."
#: overlays/templates/overlays/reset_overlays.html:15
msgid "Reset overlays"
-msgstr "Réinitialisation des superpositions"
+msgstr "Réinitialisation des info-bulles"
#: projects/admin.py:82 projects/models/visibility.py:20
-#: questions/models/catalog.py:71 tasks/models.py:56 views/models.py:58
+#: questions/models/catalog.py:72 tasks/models.py:56 views/models.py:58
msgid "Sites"
msgstr "Sites"
@@ -1828,21 +1830,21 @@ msgid "Editing tasks is disabled."
msgstr "La modification des tâches est désactivée."
#: projects/forms.py:213 projects/forms.py:231
-#: projects/serializers/v1/__init__.py:111
+#: projects/serializers/v1/__init__.py:108
msgid "Editing views is disabled."
msgstr "La modification des vues est désactivée."
#: projects/forms.py:274
msgid "Username or e-mail"
-msgstr "Nom d'utilisateur ou e-mail"
+msgstr "Nom d'utilisateur ou courriel"
#: projects/forms.py:276
msgid "The username or e-mail of the new user."
-msgstr "Le nom d'utilisateur ou l'adresse électronique du nouvel utilisateur."
+msgstr "Le nom d'utilisateur ou l'adresse courriel du nouvel utilisateur."
#: projects/forms.py:288
msgid "Add member silently"
-msgstr "Ajouter un membre en silence"
+msgstr "Ajouter un membre sans notifications"
#: projects/forms.py:289
msgid ""
@@ -1850,10 +1852,10 @@ msgid ""
"via e-mail, when you check the following checkbox."
msgstr ""
"En tant que gestionnaire ou administrateur du site, vous pouvez ajouter "
-"directement des utilisateurs sans les avertir par courrier électronique, "
-"lorsque vous cochez la case suivante."
+"directement des utilisateurs sans les avertir par courriel, lorsque vous "
+"cochez la case suivante."
-#: projects/forms.py:304 projects/serializers/v1/__init__.py:214
+#: projects/forms.py:304 projects/serializers/v1/__init__.py:211
msgid "The user is already a member of the project."
msgstr "L'utilisateur est déjà membre du projet."
@@ -1862,12 +1864,13 @@ msgid ""
"A user with this username or e-mail was not found. Only registered users can "
"be invited."
msgstr ""
-"Un utilisateur avec ce nom d'utilisateur ou ce courriel n'a pas été trouvé. "
-"Seuls les utilisateurs enregistrés peuvent être invités."
+"Un utilisateur avec cet identifiant ou courriel n'a pas été trouvé. Seuls "
+"les utilisateurs enregistrés peuvent être invités."
#: projects/forms.py:321
msgid "Only existing users can be added silently."
-msgstr "Seuls les utilisateurs existants peuvent être ajoutés en silence."
+msgstr ""
+"Seuls les utilisateurs existants peuvent être ajoutés sans notifications."
#: projects/forms.py:396 projects/forms.py:400
#, python-format
@@ -1905,7 +1908,7 @@ msgstr "Fichiers"
#: projects/templates/projects/project_detail_snapshots.html:20
#: projects/templates/projects/project_import.html:94
msgid "Snapshot"
-msgstr "Snapshot"
+msgstr "Instantané"
#: projects/forms.py:433
msgid "Format"
@@ -1913,35 +1916,35 @@ msgstr "Format"
#: projects/forms.py:448 projects/forms.py:453
msgid "Recipients"
-msgstr "Recipients"
+msgstr "Destinataires"
#: projects/forms.py:454
msgid "Enter recipients line by line"
msgstr "Indiquer les destinataires ligne par ligne"
-#: projects/imports.py:242
+#: projects/imports.py:239
msgid "Import project from this URL"
msgstr "Importez le projet depuis cette URL"
-#: projects/mixins.py:79 projects/mixins.py:96 projects/mixins.py:111
-#: projects/mixins.py:134 projects/mixins.py:152 projects/mixins.py:167
-#: projects/mixins.py:202
+#: projects/mixins.py:80 projects/mixins.py:97 projects/mixins.py:112
+#: projects/mixins.py:135 projects/mixins.py:153 projects/mixins.py:168
+#: projects/mixins.py:203
msgid "Import error"
msgstr "Erreur d'import"
-#: projects/mixins.py:80 projects/mixins.py:153 projects/mixins.py:203
+#: projects/mixins.py:81 projects/mixins.py:154 projects/mixins.py:204
msgid "There has been an error with your import."
msgstr "Il y a eu une erreur dans votre importation."
-#: projects/mixins.py:97
+#: projects/mixins.py:98
msgid ""
"There has been an error with your import. No uploaded or retrieved file "
"could be found."
msgstr ""
-"Il y a eu une erreur dans votre importation. Aucun fichier téléchargé ou "
-"récupéré n'a pu être trouvé."
+"Il y a eu une erreur dans votre importation. Aucun fichier téléchargé n'a "
+"pu être trouvé."
-#: projects/mixins.py:135
+#: projects/mixins.py:136
msgid "Files of this type cannot be imported."
msgstr "Les fichiers de ce type ne peuvent pas être importés."
@@ -1959,7 +1962,7 @@ msgstr "Le projet pour cette continuation."
#: projects/models/continuation.py:19
msgid "The user for this continuation."
-msgstr "L'utilisateur pour cette suite."
+msgstr "L'utilisateur pour cette continuation."
#: projects/models/continuation.py:23 questions/models/page.py:192
#: questions/templates/questions/export/page.html:3
@@ -1968,7 +1971,7 @@ msgstr "Page"
#: projects/models/continuation.py:24
msgid "The page for this continuation."
-msgstr "La page de cette suite."
+msgstr "La page de cette continuation."
#: projects/models/continuation.py:29
msgid "Continuation"
@@ -1988,7 +1991,7 @@ msgstr "Clé du fournisseur"
#: projects/models/integration.py:19
msgid "The key of the provider for this integration."
-msgstr "La clé du prestataire pour cette intégration."
+msgstr "La clé du fournisseur pour cette intégration."
#: projects/models/integration.py:26 projects/models/integration.py:61
#: projects/models/issue.py:106
@@ -1998,7 +2001,7 @@ msgstr "Intégration"
#: projects/models/integration.py:27
#: projects/templates/projects/project_detail_integrations.html:11
msgid "Integrations"
-msgstr "Intégration"
+msgstr "Intégrations"
#: projects/models/integration.py:62
msgid "The integration for this integration option."
@@ -2014,7 +2017,7 @@ msgstr "Valeur"
#: projects/models/integration.py:71
msgid "The value for this integration option."
-msgstr "L'intérêt de cette option d'intégration."
+msgstr "La valeur de cette option d'intégration."
#: projects/models/integration.py:75
msgid "Secret"
@@ -2040,19 +2043,19 @@ msgstr "Le projet pour cette invitation."
#: projects/models/invite.py:24 projects/models/membership.py:26
msgid "The user for this membership."
-msgstr "L'utilisateur de cette adhésion."
+msgstr "L'utilisateur pour ce rattachement."
#: projects/models/invite.py:29
msgid "The e-mail for this membership."
-msgstr "Le courriel pour cette adhésion."
+msgstr "Le courriel pour ce rattachement."
#: projects/models/invite.py:34
msgid "The role for this invite."
-msgstr "Le rôle de cette invitation."
+msgstr "Le rôle pour cette invitation."
#: projects/models/invite.py:38
msgid "Token"
-msgstr "Token"
+msgstr "Jeton"
#: projects/models/invite.py:39
msgid "The token for this invite."
@@ -2060,36 +2063,36 @@ msgstr "Le jeton pour cette invitation."
#: projects/models/invite.py:42
msgid "Timestamp"
-msgstr "Horodatage"
+msgstr "Date et Heure"
#: projects/models/invite.py:43
msgid "The timestamp for this invite."
-msgstr "L'horodatage de cette invitation."
+msgstr "Date et Heure de cette invitation."
#: projects/models/invite.py:50
msgid "Invite"
-msgstr "Inviter"
+msgstr "Invitation"
#: projects/models/invite.py:51
#: projects/templates/projects/project_detail_invites.html:10
msgid "Invites"
-msgstr "Invites"
+msgstr "Invitations"
#: projects/models/issue.py:19
msgid "open"
-msgstr "ouvrir"
+msgstr "ouverte"
#: projects/models/issue.py:20
msgid "in progress"
-msgstr "progression"
+msgstr "en cours"
#: projects/models/issue.py:21
msgid "closed"
-msgstr "fermer"
+msgstr "fermée"
#: projects/models/issue.py:27
msgid "The project for this issue."
-msgstr "Le projet de cette issue."
+msgstr "Le projet pour cette issue."
#: projects/models/issue.py:31 projects/templates/projects/issue_detail.html:15
#: projects/templates/projects/project_detail_issues.html:19
@@ -2120,7 +2123,7 @@ msgstr "Issues"
#: projects/models/issue.py:102
msgid "The issue for this issue resource."
-msgstr "L'enjeu de cette ressource."
+msgstr "L'issue pour cette ressource."
#: projects/models/issue.py:107
msgid "The integration for this issue resource."
@@ -2132,31 +2135,31 @@ msgstr "L'URL de cette ressource."
#: projects/models/issue.py:116
msgid "Issue resource"
-msgstr "Ressource de la question"
+msgstr "Ressource de l'issue"
#: projects/models/issue.py:117
msgid "Issue resources"
-msgstr "Ressources de questions"
+msgstr "Ressources de l'issue"
#: projects/models/membership.py:21
msgid "The project for this membership."
-msgstr "Le projet de cette adhésion."
+msgstr "Le projet de ce rattachement."
#: projects/models/membership.py:31
msgid "The role for this membership."
-msgstr "Le rôle de cette adhésion."
+msgstr "Le rôle de ce rattachement."
#: projects/models/membership.py:38
msgid "Membership"
-msgstr "Adhésion"
+msgstr "Rattachement"
#: projects/models/membership.py:39
msgid "Memberships"
-msgstr "Adhésion"
+msgstr "Rattachements"
#: projects/models/project.py:29
msgid "Parent project"
-msgstr "Projet parental"
+msgstr "Projet parent"
#: projects/models/project.py:30
msgid "The parent project of this project."
@@ -2202,7 +2205,7 @@ msgstr "Une description de ce projet (facultatif)."
#: projects/models/project.py:54
#: projects/templates/projects/project_detail_header.html:24
#: projects/templates/projects/project_import.html:31
-#: questions/models/catalog.py:142
+#: questions/models/catalog.py:143
#: questions/templates/questions/export/catalog.html:3
msgid "Catalog"
msgstr "Catalogue"
@@ -2227,7 +2230,7 @@ msgstr "Les vues qui seront utilisées pour ce projet."
#: projects/models/project.py:69
msgid "Progress total"
-msgstr "Progrès total"
+msgstr "Avancement total"
#: projects/models/project.py:70
msgid "The total number of expected values for the progress bar."
@@ -2235,7 +2238,7 @@ msgstr "Le nombre total de valeurs attendues pour la barre de progression."
#: projects/models/project.py:74
msgid "Progress count"
-msgstr "Compte d'avancement"
+msgstr "Avancement"
#: projects/models/project.py:75
msgid "The number of values for the progress bar."
@@ -2243,30 +2246,30 @@ msgstr "Le nombre de valeurs pour la barre de progression."
#: projects/models/snapshot.py:18
msgid "The project this snapshot belongs to."
-msgstr "Le projet auquel appartient ce snapshot."
+msgstr "Le projet auquel appartient cet instantané."
#: projects/models/snapshot.py:23
msgid "The title for this snapshot."
-msgstr "Le titre de ce snapshotsnapshot."
+msgstr "Le titre de ce snapshot."
#: projects/models/snapshot.py:28
msgid "A description for this snapshot (optional)."
-msgstr "Une description de ce snapshotsnapshot (facultatif)."
+msgstr "Une description de cet instantané (facultatif)."
#: projects/models/snapshot.py:34
#: projects/templates/projects/project_answers.html:9
#: projects/templates/projects/project_detail_snapshots.html:12
#: projects/templates/projects/project_view.html:23
msgid "Snapshots"
-msgstr "Snapshots"
+msgstr "Instantanés"
#: projects/models/value.py:33
msgid "The project this value belongs to."
-msgstr "Le projet auquel appartient cette valeur."
+msgstr "Le projet auquel cette valeur appartient."
#: projects/models/value.py:39
msgid "The snapshot this value belongs to."
-msgstr "Le snapshot auquel cette valeur appartient."
+msgstr "L'instantané auquel cette valeur appartient."
#: projects/models/value.py:45
msgid "The attribute this value belongs to."
@@ -2298,7 +2301,7 @@ msgstr ""
#: projects/models/value.py:59
msgid "Set collection"
-msgstr "Collection d'ensembles"
+msgstr "Définir la collection"
#: projects/models/value.py:60
msgid ""
@@ -2310,7 +2313,7 @@ msgstr ""
#: projects/models/value.py:64
msgid "Collection index"
-msgstr "Index des collections"
+msgstr "Index de la collection"
#: projects/models/value.py:65
msgid ""
@@ -2322,7 +2325,7 @@ msgstr ""
#: projects/models/value.py:70
msgid "The string stored for this value."
-msgstr "Chaîne stockée pour cette valeur."
+msgstr "Chaîne de caractères stockée pour cette valeur."
#: projects/models/value.py:75
msgid "The option stored for this value."
@@ -2350,7 +2353,7 @@ msgstr "Unité pour cette valeur."
#: projects/models/value.py:94
msgid "External id"
-msgstr "Identification externe"
+msgstr "Identifiant externe"
#: projects/models/value.py:95
msgid "External id for this value."
@@ -2370,7 +2373,7 @@ msgstr "Non"
#: projects/models/visibility.py:16
msgid "The project for this visibility."
-msgstr "Le projet pour cette visibilité."
+msgstr "La visibilité pour ce projet."
#: projects/models/visibility.py:21
msgid "The sites for which the project is visible (in a multi site setup)."
@@ -2378,7 +2381,7 @@ msgstr ""
"Les sites pour lesquels le projet est visible (dans une configuration multi-"
"sites)."
-#: projects/models/visibility.py:25 questions/models/catalog.py:81
+#: projects/models/visibility.py:25 questions/models/catalog.py:82
#: tasks/models.py:66 views/models.py:68
msgid "Group"
msgstr "Groupe"
@@ -2437,7 +2440,7 @@ msgstr "L'intégration n'est pas configurée correctement."
#: projects/providers.py:78
msgid "Add Simple integration"
-msgstr "Ajouter l'intégration simple"
+msgstr "Ajouter l'intégration Simple"
#: projects/providers.py:79
msgid "Send to Simple"
@@ -2448,8 +2451,8 @@ msgid ""
"This integration allow the creation of issues in arbitrary Simple "
"repositories. The upload of attachments is not supported."
msgstr ""
-"Cette intégration permet de créer des problèmes dans des référentiels "
-"simples arbitraires. Le téléchargement de pièces jointes n'est pas supporté."
+"Cette intégration permet de créer des issues dans des répertoires Simple. Le "
+"téléchargement de pièces jointes n'est pas supporté."
#: projects/providers.py:89
msgid "The URL of the project to send tasks to."
@@ -2459,29 +2462,29 @@ msgstr "L'URL du projet auquel les tâches doivent être envoyées."
msgid "The secret for a webhook to close a task (optional)."
msgstr "Le secret d'un webhook pour fermer une tâche (facultatif)."
-#: projects/serializers/v1/__init__.py:219
+#: projects/serializers/v1/__init__.py:216
msgid "A user with that e-mail is already a member of the project."
-msgstr "Un utilisateur avec cet e-mail est déjà membre du projet."
+msgstr "Un utilisateur avec ce courriel est déjà membre du projet."
-#: projects/serializers/v1/__init__.py:227
+#: projects/serializers/v1/__init__.py:224
msgid "Either user or e-mail needs to be provided."
-msgstr "L'utilisateur ou l'e-mail doit être indiqué."
+msgstr "L'utilisateur ou le courriel doit être indiqué."
-#: projects/serializers/v1/__init__.py:229
+#: projects/serializers/v1/__init__.py:226
msgid "User and e-mail are mutually exclusive."
-msgstr "L'utilisateur et le courrier électronique s'excluent mutuellement."
+msgstr "L'utilisateur et le courriel s'excluent mutuellement."
-#: projects/serializers/v1/page.py:121
+#: projects/serializers/v1/page.py:120
msgid "entry"
msgstr "entrée"
-#: projects/serializers/v1/page.py:160
+#: projects/serializers/v1/page.py:159
msgid "block"
msgstr "bloc"
-#: projects/serializers/v1/page.py:223
+#: projects/serializers/v1/page.py:222
msgid "set"
-msgstr "set"
+msgstr "ensemble"
#: projects/templates/projects/email/project_contact_message.txt:1
#: projects/templates/projects/email/project_invite_message.txt:1
@@ -2527,7 +2530,7 @@ msgid ""
"You are receiving this e-mail because you have been invited to collaborate "
"on the project \"%(project_title)s\" by %(user_full_name)s."
msgstr ""
-"Vous recevez cet e-mail parce que vous avez été invité à collaborer au "
+"Vous recevez ce courriel parce que vous avez été invité à collaborer au "
"projet \"%(project_title)s\" par %(user_full_name)s."
#: projects/templates/projects/email/project_invite_message.txt:8
@@ -2631,21 +2634,21 @@ msgstr "Mise à jour du statut des tâches"
#: projects/templates/projects/issue_send.html:27
#: projects/templates/projects/project_detail_issues.html:59
msgid "Send task"
-msgstr "Envoyer la tâche"
+msgstr "Lancer la tâche"
#: projects/templates/projects/issue_form.html:7
#: projects/templates/projects/issue_form.html:9
msgid "Update task"
-msgstr "Tâche de mise à jour"
+msgstr "Mise à jour de la tâche"
#: projects/templates/projects/issue_send.html:29
msgid "Sending a task will set the status to \"in progress\"."
-msgstr "L'envoi d'une tâche fait passer le statut à \"en cours\"."
+msgstr "Le lancement d'une tâche fera passer le statut à \"en cours\"."
#: projects/templates/projects/issue_send_email.html:4
#: projects/templates/projects/issue_send_email.html:30
msgid "Send by mail"
-msgstr "Envoyer par courrier"
+msgstr "Envoyer par courriel"
#: projects/templates/projects/issue_send_integrations.html:3
msgid "Send via integration"
@@ -2667,7 +2670,7 @@ msgstr "Cette tâche a déjà été envoyée en utilisant cette intégration."
#: projects/templates/projects/issue_send_message.txt:1
msgid "To whom it may concern,"
-msgstr "A qui cela peut concerner,"
+msgstr "À qui de droit,"
#: projects/templates/projects/issue_send_message.txt:3
#, python-format
@@ -2693,7 +2696,7 @@ msgstr "Pièces jointes"
#: projects/templates/projects/membership_confirm_delete.html:17
#: projects/templates/projects/project_detail_memberships.html:65
msgid "Delete membership"
-msgstr "Supprimer l'adhésion"
+msgstr "Supprimer le rattachement"
#: projects/templates/projects/membership_confirm_delete.html:12
#, python-format
@@ -2708,7 +2711,7 @@ msgstr ""
#: projects/templates/projects/membership_form.html:11
#: projects/templates/projects/project_detail_memberships.html:55
msgid "Update membership"
-msgstr "Mettre à jour l'adhésion"
+msgstr "Mettre à jour le rattachement"
#: projects/templates/projects/membership_form.html:15
msgid "Invite member to project"
@@ -2725,8 +2728,9 @@ msgstr ""
"Vous pouvez inviter un nouveau membre à participer à ce projet et lui "
"attribuer l'un des rôles suivants : Invité (qui ne peut que lire), "
"Auteur (qui peut répondre aux questions), Gestionnaire (qui "
-"peut en outre créer des stp, exporter le projet, importer des valeurs et "
-"mettre à jour les paramètres du projet) ou Propriétaire (comme vous)."
+"peut en outre créer des snapshot, exporter le projet, importer des valeurs "
+"et mettre à jour les paramètres du projet) ou Propriétaire (comme "
+"vous)."
#: projects/templates/projects/membership_form.html:28
msgid ""
@@ -2734,7 +2738,7 @@ msgid ""
"here), or by their e-mail address."
msgstr ""
"Les utilisateurs peuvent être invités par leur nom d'utilisateur (s'ils ont "
-"déjà un compte ici), ou par leur adresse électronique."
+"déjà un compte ici), ou par leur adresse courriel."
#: projects/templates/projects/membership_form.html:32
msgid ""
@@ -2797,8 +2801,8 @@ msgstr "Supprimer le projet"
msgid ""
"You are about to permanently delete the project %(object)s."
msgstr ""
-"Vous êtes sur le point de supprimer définitivement le %(object)s"
-"strong> du projet."
+"Vous êtes sur le point de supprimer définitivement le projet "
+"%(object)s."
#: projects/templates/projects/project_confirm_delete.html:17
#, python-format
@@ -2817,13 +2821,13 @@ msgstr "Les projets descendants seront préservés."
#: projects/templates/projects/project_detail_memberships.html:61
#: projects/templates/projects/project_detail_sidebar.html:36
msgid "Leave project"
-msgstr "Projet de congé"
+msgstr "Quitter le projet"
#: projects/templates/projects/project_confirm_leave.html:10
#, python-format
msgid "You are about to leave the project %(object)s."
msgstr ""
-"Vous êtes sur le point de quitter le projet %(object)s."
+"Vous êtes sur le point de quitter le projet %(object)s."
#: projects/templates/projects/project_confirm_leave.html:16
msgid ""
@@ -2878,7 +2882,7 @@ msgstr ""
#: projects/templates/projects/project_detail_invites.html:15
#: projects/templates/projects/project_detail_memberships.html:21
msgid "E-Mail"
-msgstr "E-mail"
+msgstr "Courriel"
#: projects/templates/projects/project_detail_issues.html:21
#: tasks/templates/tasks/export/tasks.html:35
@@ -2928,18 +2932,18 @@ msgstr "de"
#: projects/templates/projects/project_detail_memberships_help.html:4
msgid ""
"Here you can see who can access the project and invite additional members. "
-"You can use the user roles to manage which rights the benefits have. Unless "
-"you are the last owner, you can leave the project with the button next to "
-"your name."
+"You can use the user roles to manage which rights the users have. Unless you "
+"are the last owner, you can leave the project with the button next to your "
+"name."
msgstr ""
"Ici, vous pouvez voir qui peut accéder au projet et inviter des membres "
"complémentaires. Vous pouvez utiliser les rôles d'utilisateur pour gérer les "
-"droits des bénéficiaires. À moins que vous ne soyez le dernier propriétaire, "
+"droits des utilisateurs. À moins que vous ne soyez le dernier propriétaire, "
"vous pouvez quitter le projet en cliquant sur le bouton à côté de votre nom."
#: projects/templates/projects/project_detail_sidebar.html:17
msgid "Answer questions"
-msgstr "Répondez aux questions"
+msgstr "Répondre aux questions"
#: projects/templates/projects/project_detail_sidebar.html:19
msgid "View questions"
@@ -2986,7 +2990,7 @@ msgstr "Retour à l'aperçu des projets"
#: projects/templates/projects/project_import.html:160
#: projects/templates/projects/project_import_form.html:18
msgid "Import values"
-msgstr "Valeurs d'importation"
+msgstr "Importer les valeurs"
#: projects/templates/projects/project_detail_sidebar.html:147
msgid "Import from file"
@@ -2994,7 +2998,7 @@ msgstr "Importation à partir d'un fichier"
#: projects/templates/projects/project_detail_sidebar.html:155
msgid "Import from parent project"
-msgstr "Importation du projet parent"
+msgstr "Importation depuis le projet parent"
#: projects/templates/projects/project_detail_sidebar.html:163
msgid "Import directly"
@@ -3010,16 +3014,16 @@ msgstr "Créé"
#: projects/templates/projects/snapshot_form.html:9
#: projects/templates/projects/snapshot_form.html:11
msgid "Update snapshot"
-msgstr "Mise à jour de l'instantané"
+msgstr "Mise à jour du snapshot"
#: projects/templates/projects/project_detail_snapshots.html:54
#: projects/templates/projects/snapshot_rollback.html:7
msgid "Rollback to snapshot"
-msgstr "Retour à l'instantané"
+msgstr "Retour au snapshot"
#: projects/templates/projects/project_detail_snapshots.html:62
msgid "Export snapshot"
-msgstr "Exporter l'instantané"
+msgstr "Exporter le snapshot"
#: projects/templates/projects/project_detail_snapshots.html:92
msgid "No snapshots found."
@@ -3032,10 +3036,10 @@ msgid ""
"create views, and the project can also be reset to a previous snapshot if "
"needed."
msgstr ""
-"Les snapshots vous permettent de sauvegarder toutes les réponses à un "
-"moment donné et de préserver une certaine étape du projet. Plus tard, "
-"l'troisieme peut être utilisé pour créer des vues, et le projet peut "
-"également être réinitialisé à un snapshot précédent si nécessaire."
+"Les instantanés vous permettent de sauvegarder toutes les réponses à un "
+"moment donné et de préserver une certaine étape du projet. Plus "
+"tard,l'instantané peut être utilisé pour créer des vues, et le projet peut "
+"également être réinitialisé à un instantané précédent si nécessaire."
#: projects/templates/projects/project_detail_views.html:19 views/models.py:136
msgid "View"
@@ -3043,7 +3047,7 @@ msgstr "Vue"
#: projects/templates/projects/project_detail_views.html:38
msgid "Display view"
-msgstr "Affichage de la vue"
+msgstr "Afficher la vue"
#: projects/templates/projects/project_detail_views.html:57
msgid "No views are configured for this project."
@@ -3075,7 +3079,7 @@ msgstr ""
#: projects/templates/projects/project_error.html:15
msgid "You will be redirected shortly."
-msgstr "Vous serez redirigé sous peu."
+msgstr "Vous serez redirigé tout de suite."
#: projects/templates/projects/project_form.html:25
msgid ""
@@ -3086,15 +3090,15 @@ msgstr ""
#: projects/templates/projects/project_form.html:27
msgid "Save tasks"
-msgstr "Sauver des tâches"
+msgstr "Enregistrer les tâches"
#: projects/templates/projects/project_form.html:32
msgid "Save views"
-msgstr "Mise à jour des vues"
+msgstr "Enregistrer les vues"
#: projects/templates/projects/project_form.html:37
msgid "Save project"
-msgstr "Projet save"
+msgstr "Enregistrer le projet"
#: projects/templates/projects/project_form.html:43
msgid "Create new project"
@@ -3146,12 +3150,12 @@ msgstr "Question"
#: projects/templates/projects/project_import.html:52
#: projects/templates/projects/project_import.html:116
msgid "Current answer"
-msgstr "Courant réponse"
+msgstr "Réponse actuelle"
#: projects/templates/projects/project_import.html:54
#: projects/templates/projects/project_import.html:118
msgid "Imported answer"
-msgstr "L'importation a échoué"
+msgstr "Réponse importée"
#: projects/templates/projects/project_import.html:65
#: projects/templates/projects/project_import.html:129
@@ -3161,7 +3165,7 @@ msgstr "Titre d'un ensemble."
#: projects/templates/projects/project_import.html:67
#: projects/templates/projects/project_import.html:131
msgid "Not available in this catalog."
-msgstr "Le titre de ce catalogue."
+msgstr "Pas disponible dans ce catalogue."
#: projects/templates/projects/project_import.html:81
#: projects/templates/projects/project_import.html:145
@@ -3196,8 +3200,8 @@ msgid ""
"this form to send an email to the %(site_name)s support\""
msgstr ""
"Si vous avez une question ou un commentaire, n'hésitez pas à nous contacter. "
-"Vous pouvez utiliser ce formulaire pour envoyer un courriel à l'équipe "
-"d'assistance de %(site_name)s »."
+"Vous pouvez utiliser ce formulaire pour envoyer un courriel au support de "
+"%(site_name)s »."
#: projects/templates/projects/project_interview_done.html:5
msgid "Done!"
@@ -3226,15 +3230,16 @@ msgid ""
"item\" field' (). Please "
"contact support if the problem persists."
msgstr ""
-"Multiple answers exist in the database. This can happen due some technical "
-"problem in the past. You can remove unwanted answers using the « Remove "
-"item » field' (). Please "
-"contact support if the problem persists."
+"Des doublons de réponses existent dans la base de données. Ceci a pu arriver "
+"a cause de problèmes technique. Vous pouvez supprimer les réponses "
+"surperflues en utilisant le champ « supprimer l'objet » (). Veuillez contacter le support si ce "
+"problème persiste."
#: projects/templates/projects/project_interview_navigation_help.html:4
msgid "Grey entries will be conditionally skipped based on your input."
msgstr ""
-"Les entrées grises seront ignorées sous condition en fonction de vos données."
+"Les entrées grises seront ignorées sous condition en fonction de votre input."
#: projects/templates/projects/project_interview_page_tabs_help.html:4
msgid ""
@@ -3249,7 +3254,7 @@ msgstr ""
"supérieur droit."
#: projects/templates/projects/project_view.html:90
-#: projects/views/project.py:145
+#: projects/views/project.py:137
msgid "Error"
msgstr "Erreur"
@@ -3285,7 +3290,7 @@ msgid ""
"strong>. All newer values will be deleted."
msgstr ""
"Vous êtes sur le point de réinitialiser toutes les valeurs au dernier "
-"snapshot %(title)s. Toutes les nouvelles valeurs seront "
+"instantané %(title)s. Toutes les nouvelles valeurs seront "
"supprimées."
#: projects/templates/projects/snapshot_rollback.html:17
@@ -3318,8 +3323,8 @@ msgid ""
"An existing value for this attribute/set_prefix/set_index/collection_index "
"was found."
msgstr ""
-"Une valeur existante pour cet attribut/set_prefix/set_index/collection_index "
-"a été trouvée."
+"Une valeur existante pour cet attribute/set_prefix/set_index/"
+"collection_index a été trouvée."
#: projects/validators.py:92
msgid "The file quota for this project has been reached."
@@ -3329,42 +3334,41 @@ msgstr "Le quota de fichiers pour ce projet a été atteint."
msgid "Enter a valid datetime."
msgstr "Saisissez une date valide."
-#: projects/views/project.py:125
+#: projects/views/project.py:117
msgid "Sorry, your invitation has been expired."
msgstr "Désolé, votre invitation a expiré."
-#: projects/views/project.py:128
+#: projects/views/project.py:120
#, python-format
msgid "Sorry, but this invitation is for the user \"%s\"."
msgstr "Désolé, mais cette invitation est pour l'utilisateur \"%s\"."
-#: projects/views/project.py:142
+#: projects/views/project.py:134
msgid "Sorry, the invitation link is not valid."
msgstr "Désolé, le lien d'invitation n'est pas valide."
-#: projects/views/project_update.py:81 projects/views/project_update.py:86
-#: projects/views/project_update.py:91
+#: projects/views/project_update.py:79 projects/views/project_update.py:84
+#: projects/views/project_update.py:89
msgid "Update visibility"
msgstr "Mise à jour de la visibilité"
-#: projects/views/project_update.py:82 projects/views/project_update.py:87
-#: projects/views/project_update.py:89 projects/views/project_update.py:92
-#: projects/views/project_update.py:94
+#: projects/views/project_update.py:80 projects/views/project_update.py:85
+#: projects/views/project_update.py:87 projects/views/project_update.py:90
+#: projects/views/project_update.py:92
msgid "Remove visibility"
msgstr "Supprimer la visibilité"
-#: projects/views/project_update.py:84
+#: projects/views/project_update.py:82
msgid "Make visible for this site"
msgstr "Rendre visible ce site"
-#: projects/views/project_update.py:97
+#: projects/views/project_update.py:95
msgid "Make visible"
msgstr "Rendre visible"
-#: projects/viewsets.py:659
+#: projects/viewsets.py:666
msgid "You reached the file quota for this project."
-msgstr ""
-"Le titre de ce projet.Vous avez atteint le quota de dossiers pour ce projet."
+msgstr "Vous avez atteint le quota de fichiers pour ce projet."
#: questions/constants.py:16
msgid "Yes/No"
@@ -3384,7 +3388,7 @@ msgstr "Sélectionnez le menu déroulant"
#: questions/constants.py:20
msgid "Select drop-down (free)"
-msgstr "Sélectionner la liste déroulante (gratuit)"
+msgstr "Sélectionnez le menu déroulant (libre)"
#: questions/constants.py:21
msgid "Range slider"
@@ -3398,25 +3402,25 @@ msgstr "Sélecteur de date"
msgid "File upload"
msgstr "Téléchargement de fichiers"
-#: questions/models/catalog.py:37
+#: questions/models/catalog.py:38
msgid "The Uniform Resource Identifier of this catalog (auto-generated)."
msgstr ""
"Identificateur de ressource uniforme de ce catalogue (généré "
"automatiquement)."
-#: questions/models/catalog.py:42
+#: questions/models/catalog.py:43
msgid "The prefix for the URI of this catalog."
msgstr "Préfixe de l'URI de ce catalogue."
-#: questions/models/catalog.py:47
+#: questions/models/catalog.py:48
msgid "The path for the URI of this catalog."
msgstr "Le chemin d'accès à l'URI de ce catalogue."
-#: questions/models/catalog.py:52
+#: questions/models/catalog.py:53
msgid "Additional internal information about this catalog."
msgstr "Informations internes complémentaires sur ce catalogue."
-#: questions/models/catalog.py:57
+#: questions/models/catalog.py:58
msgid ""
"Designates whether this catalog (and its sections, question sets and "
"questions) can be changed."
@@ -3424,113 +3428,113 @@ msgstr ""
"Désigne si ce catalogue (et ses sections, ensembles de questions et "
"questions) peut être modifié."
-#: questions/models/catalog.py:62
+#: questions/models/catalog.py:63
msgid "The position of this catalog in lists."
msgstr "La position de ce catalogue dans les listes."
-#: questions/models/catalog.py:66 questions/models/section.py:121
+#: questions/models/catalog.py:67 questions/models/section.py:121
msgid "Sections"
msgstr "Sections"
-#: questions/models/catalog.py:67
+#: questions/models/catalog.py:68
msgid "The sections of this catalog."
msgstr "Les sections de ce catalogue."
-#: questions/models/catalog.py:72
+#: questions/models/catalog.py:73
msgid "The sites this catalog belongs to (in a multi site setup)."
msgstr ""
"Les sites auxquels ce catalogue appartient (dans une configuration multi-"
"sites)."
-#: questions/models/catalog.py:77
+#: questions/models/catalog.py:78
msgid "The sites that can edit this catalog (in a multi site setup)."
msgstr ""
"Les sites qui peuvent éditer ce catalogue (dans une configuration multi-"
"sites)."
-#: questions/models/catalog.py:82
+#: questions/models/catalog.py:83
msgid "The groups for which this catalog is active."
msgstr "Les groupes pour lesquels ce catalogue est actif."
-#: questions/models/catalog.py:86 questions/models/page.py:86
+#: questions/models/catalog.py:87 questions/models/page.py:86
#: questions/models/questionset.py:81 questions/models/section.py:69
#: tasks/models.py:71 views/models.py:78
msgid "Title (primary)"
-msgstr "Titre (primaire)"
+msgstr "Titre (principal)"
-#: questions/models/catalog.py:87
+#: questions/models/catalog.py:88
msgid "The title for this catalog (in the primary language)."
-msgstr "Le titre de ce catalogue (dans la langue principale)."
+msgstr "Le titre de ce catalogue (dans la première langue)."
-#: questions/models/catalog.py:91 questions/models/page.py:91
+#: questions/models/catalog.py:92 questions/models/page.py:91
#: questions/models/questionset.py:86 questions/models/section.py:74
#: tasks/models.py:76 views/models.py:83
msgid "Title (secondary)"
-msgstr "Titre (secondaire)"
+msgstr "Titre (deuxième langue)"
-#: questions/models/catalog.py:92
+#: questions/models/catalog.py:93
msgid "The title for this catalog (in the secondary language)."
-msgstr "Le titre de ce catalogue (dans la langue secondaire)."
+msgstr "Le titre de ce catalogue (dans la deuxième langue)."
-#: questions/models/catalog.py:96 questions/models/page.py:96
+#: questions/models/catalog.py:97 questions/models/page.py:96
#: questions/models/questionset.py:91 questions/models/section.py:79
#: tasks/models.py:81 views/models.py:88
msgid "Title (tertiary)"
-msgstr "Titre (tertiaire)"
+msgstr "Titre (troisième langue)"
-#: questions/models/catalog.py:97
+#: questions/models/catalog.py:98
msgid "The title for this catalog (in the tertiary language)."
-msgstr "Le titre de ce catalogue (dans la langue tertiaire)."
+msgstr "Le titre de ce catalogue (dans la troisième langue)."
-#: questions/models/catalog.py:101 questions/models/page.py:101
+#: questions/models/catalog.py:102 questions/models/page.py:101
#: questions/models/questionset.py:96 questions/models/section.py:84
#: tasks/models.py:86 views/models.py:93
msgid "Title (quaternary)"
-msgstr "Titre (quaternaire)"
+msgstr "Titre (quatrième langue)"
-#: questions/models/catalog.py:102
+#: questions/models/catalog.py:103
msgid "The title for this catalog (in the quaternary language)."
-msgstr "Le titre de ce catalogue (en langue quaternaire)."
+msgstr "Le titre de ce catalogue (dans la quatrième langue)."
-#: questions/models/catalog.py:106 questions/models/page.py:106
+#: questions/models/catalog.py:107 questions/models/page.py:106
#: questions/models/questionset.py:101 questions/models/section.py:89
#: tasks/models.py:91 views/models.py:98
msgid "Title (quinary)"
-msgstr "Titre (quinaire)"
+msgstr "Titre (cinquième langue)"
-#: questions/models/catalog.py:107
+#: questions/models/catalog.py:108
msgid "The title for this catalog (in the quinary language)."
-msgstr "Le titre de ce catalogue (en langage quinaire)."
+msgstr "Le titre de ce catalogue (dans la cinquième langue)."
-#: questions/models/catalog.py:112
+#: questions/models/catalog.py:113
msgid "The help text for this catalog (in the primary language)."
-msgstr "Le texte d'aide pour ce catalogue (dans la langue principale)."
+msgstr "Le texte d'aide pour ce catalogue (dans la première langue)."
-#: questions/models/catalog.py:117
+#: questions/models/catalog.py:118
msgid "The help text for this catalog (in the secondary language)."
-msgstr "Le texte d'aide pour ce catalogue (dans la langue secondaire)."
+msgstr "Le texte d'aide pour ce catalogue (dans la deuxième langue)."
-#: questions/models/catalog.py:122
+#: questions/models/catalog.py:123
msgid "The help text for this catalog (in the tertiary language)."
-msgstr "Le texte d'aide pour ce catalogue (dans la langue tertiaire)."
+msgstr "Le texte d'aide pour ce catalogue (dans la troisième langue)."
-#: questions/models/catalog.py:127
+#: questions/models/catalog.py:128
msgid "The help text for this catalog (in the quaternary language)."
-msgstr "Le texte d'aide de ce catalogue (en langage quaternaire)."
+msgstr "Le texte d'aide de ce catalogue (dans la quatrième langue)."
-#: questions/models/catalog.py:132
+#: questions/models/catalog.py:133
msgid "The help text for this catalog (in the quinary language)."
-msgstr "Le texte d'aide pour ce catalogue (en langage quinaire)."
+msgstr "Le texte d'aide pour ce catalogue (dans la cinquième langue)."
-#: questions/models/catalog.py:136 tasks/models.py:147 views/models.py:128
+#: questions/models/catalog.py:137 tasks/models.py:147 views/models.py:128
msgid "Available"
-msgstr "Disponible sur"
+msgstr "Disponible"
-#: questions/models/catalog.py:137
+#: questions/models/catalog.py:138
msgid "Designates whether this catalog is generally available for projects."
msgstr "Désigne si ce catalogue est généralement disponible pour les projets."
-#: questions/models/catalog.py:143 tasks/models.py:50 views/models.py:52
+#: questions/models/catalog.py:144 tasks/models.py:50 views/models.py:52
msgid "Catalogs"
msgstr "Catalogues"
@@ -3579,7 +3583,7 @@ msgstr "Ensembles de questions"
#: questions/models/page.py:72
msgid "The question sets of this page."
-msgstr "Les questions de cette page."
+msgstr "Les ensembles de questions de cette page."
#: questions/models/page.py:77
msgid "The questions of this page."
@@ -3593,103 +3597,103 @@ msgstr ""
#: questions/models/page.py:87
msgid "The title for this page (in the primary language)."
-msgstr "Le titre de cette page (dans la langue principale)."
+msgstr "Le titre de cette page (dans la première langue)."
#: questions/models/page.py:92
msgid "The title for this page (in the secondary language)."
-msgstr "Le titre de cette page (dans la langue secondaire)."
+msgstr "Le titre de cette page (dans la deuxième langue)."
#: questions/models/page.py:97
msgid "The title for this page (in the tertiary language)."
-msgstr "Le titre de cette page (dans la langue tertiaire)."
+msgstr "Le titre de cette page (dans la troisième langue)."
#: questions/models/page.py:102
msgid "The title for this page (in the quaternary language)."
-msgstr "Le titre de cette page (dans la langue quaternaire)."
+msgstr "Le titre de cette page (dans la quatrième langue)."
#: questions/models/page.py:107
msgid "The title for this page (in the quinary language)."
-msgstr "Le titre de cette page (en langage quinaire)."
+msgstr "Le titre de cette page (dans la cinquième langue)."
#: questions/models/page.py:111 questions/models/section.py:94
msgid "Short title (primary)"
-msgstr "Titre abrégé (primaire)"
+msgstr "Titre abrégé (principal)"
#: questions/models/page.py:112
msgid ""
"The short title for this page (in the primary language), used in the "
"navigation."
msgstr ""
-"Le titre court de cette page (dans la langue principale), utilisé dans la "
+"Le titre court de cette page (dans la première langue), utilisé dans la "
"navigation."
#: questions/models/page.py:116 questions/models/section.py:99
msgid "Short title (secondary)"
-msgstr "Titre abrégé (secondaire)"
+msgstr "Titre abrégé (deuxième langue)"
#: questions/models/page.py:117
msgid ""
"The short title for this page (in the secondary language), used in the "
"navigation."
msgstr ""
-"Le titre court de cette page (dans la langue secondaire), utilisé dans la "
+"Le titre court de cette page (dans la deuxième langue), utilisé dans la "
"navigation."
#: questions/models/page.py:121 questions/models/section.py:104
msgid "Short title (tertiary)"
-msgstr "Titre abrégé (tertiaire)"
+msgstr "Titre abrégé (troisième langue)"
#: questions/models/page.py:122
msgid ""
"The short title for this page (in the tertiary language), used in the "
"navigation."
msgstr ""
-"Le titre court de cette page (dans la langue tertiaire), utilisé dans la "
+"Le titre court de cette page (dans la troisième langue), utilisé dans la "
"navigation."
#: questions/models/page.py:126 questions/models/section.py:109
msgid "Short title (quaternary)"
-msgstr "Titre abrégé (quaternaire)"
+msgstr "Titre abrégé (quatrième langue)"
#: questions/models/page.py:127
msgid ""
"The short title for this page (in the quaternary language), used in the "
"navigation."
msgstr ""
-"Le titre court de cette page (dans la langue quaternaire), utilisé dans la "
+"Le titre court de cette page (dans la quatrième langue), utilisé dans la "
"navigation."
#: questions/models/page.py:131 questions/models/section.py:114
msgid "Short title (quinary)"
-msgstr "Titre abrégé (quinaire)"
+msgstr "Titre abrégé (cinquième langue)"
#: questions/models/page.py:132
msgid ""
"The short title for this page (in the quinary language), used in the "
"navigation."
msgstr ""
-"Le titre court de cette page (en langage quinaire), utilisé dans la "
+"Le titre court de cette page (dans la cinquième langue), utilisé dans la "
"navigation."
#: questions/models/page.py:137
msgid "The help text for this page (in the primary language)."
-msgstr "Le texte d'aide pour cette page (dans la langue principale)."
+msgstr "Le texte d'aide pour cette page (dans la première langue)."
#: questions/models/page.py:142
msgid "The help text for this page (in the secondary language)."
-msgstr "Le texte d'aide pour cette page (dans la langue secondaire)."
+msgstr "Le texte d'aide pour cette page (dans la deuxième langue)."
#: questions/models/page.py:147
msgid "The help text for this page (in the tertiary language)."
-msgstr "Le texte d'aide pour cette page (dans la langue tertiaire)."
+msgstr "Le texte d'aide pour cette page (dans la troisième langue)."
#: questions/models/page.py:152
msgid "The help text for this page (in the quaternary language)."
-msgstr "Le texte d'aide de cette page (dans le langage quaternaire)."
+msgstr "Le texte d'aide de cette page (dans le quatrième langue)."
#: questions/models/page.py:157
msgid "The help text for this page (in the quinary language)."
-msgstr "Le texte d'aide pour cette page (dans le langage quinaire)."
+msgstr "Le texte d'aide pour cette page (dans le cinquième langue)."
#: questions/models/page.py:161 questions/models/question.py:157
#: questions/models/questionset.py:131
@@ -3698,43 +3702,43 @@ msgstr "Nom (principal)"
#: questions/models/page.py:162
msgid "The name displayed for this page (in the primary language)."
-msgstr "Le nom affiché pour cette page (dans la langue principale)."
+msgstr "Le nom affiché pour cette page (dans la première langue)."
#: questions/models/page.py:166 questions/models/question.py:162
#: questions/models/questionset.py:136
msgid "Name (secondary)"
-msgstr "Nom (secondaire)"
+msgstr "Nom (deuxième langue)"
#: questions/models/page.py:167
msgid "The name displayed for this page (in the secondary language)."
-msgstr "Le nom affiché pour cette page (dans la langue secondaire)."
+msgstr "Le nom affiché pour cette page (dans la deuxième langue)."
#: questions/models/page.py:171 questions/models/question.py:167
#: questions/models/questionset.py:141
msgid "Name (tertiary)"
-msgstr "Nom (tertiaire)"
+msgstr "Nom (troisième langue)"
#: questions/models/page.py:172
msgid "The name displayed for this page (in the tertiary language)."
-msgstr "Le nom affiché pour cette page (dans la langue tertiaire)."
+msgstr "Le nom affiché pour cette page (dans la troisième langue)."
#: questions/models/page.py:176 questions/models/question.py:172
#: questions/models/questionset.py:146
msgid "Name (quaternary)"
-msgstr "Nom (quaternaire)"
+msgstr "Nom (quatrième langue)"
#: questions/models/page.py:177
msgid "The name displayed for this page (in the quaternary language)."
-msgstr "Le nom affiché pour cette page (dans la langue quaternaire)."
+msgstr "Le nom affiché pour cette page (dans la quatrième langue)."
#: questions/models/page.py:181 questions/models/question.py:177
#: questions/models/questionset.py:151
msgid "Name (quinary)"
-msgstr "Nom (quinaire)"
+msgstr "Nom (cinquième langue)"
#: questions/models/page.py:182
msgid "The name displayed for this page (in the quinary language)."
-msgstr "Le nom affiché pour cette page (dans le langage quinaire)."
+msgstr "Le nom affiché pour cette page (dans le cinquième langue)."
#: questions/models/page.py:187
msgid "List of conditions evaluated for this page."
@@ -3790,67 +3794,68 @@ msgstr ""
#: questions/models/question.py:73
msgid "The help text for this question (in the primary language)."
-msgstr "Le texte d'aide pour cette question (dans la langue principale)."
+msgstr "Le texte d'aide pour cette question (dans la première langue)."
#: questions/models/question.py:78
msgid "The help text for this question (in the secondary language)."
-msgstr "Le texte d'aide pour cette question (dans la langue secondaire)."
+msgstr "Le texte d'aide pour cette question (dans la deuxième langue)."
#: questions/models/question.py:83
msgid "The help text for this question (in the tertiary language)."
-msgstr "Le texte d'aide pour cette question (dans la langue tertiaire)."
+msgstr "Le texte d'aide pour cette question (dans la troisième langue)."
#: questions/models/question.py:88
msgid "The help text for this question (in the quaternary language)."
-msgstr "Le texte d'aide pour cette question (en langue quaternaire)."
+msgstr "Le texte d'aide pour cette question (dans la quatrième langue)."
#: questions/models/question.py:93
msgid "The help text for this question (in the quinary language)."
-msgstr "Le texte d'aide pour cette question (en langage quinaire)."
+msgstr "Le texte d'aide pour cette question (dans la cinquième langue)."
#: questions/models/question.py:98
msgid "The text for this question (in the primary language)."
-msgstr "Le texte de cette question (dans la langue principale)."
+msgstr "Le texte de cette question (dans la première langue)."
#: questions/models/question.py:103
msgid "The text for this question (in the secondary language)."
-msgstr "Le texte de cette question (dans la langue secondaire)."
+msgstr "Le texte de cette question (dans la deuxième langue)."
#: questions/models/question.py:108
msgid "The text for this question (in the tertiary language)."
-msgstr "Le texte de cette question (dans la langue tertiaire)."
+msgstr "Le texte de cette question (dans la troisième langue)."
#: questions/models/question.py:113
msgid "The text for this question (in the quaternary language)."
-msgstr "Le texte de cette question (en langue quaternaire)."
+msgstr "Le texte de cette question (dans la quatrième langue)."
#: questions/models/question.py:118
msgid "The text for this question (in the quinary language)."
-msgstr "Le texte de cette question (en langue quinaire)."
+msgstr "Le texte de cette question (dans la cinquième langue)."
#: questions/models/question.py:123
msgid "The default text value for this question (in the primary language)."
msgstr ""
-"Valeur du texte par défaut pour cette question (dans la langue principale)."
+"Valeur du texte par défaut pour cette question (dans la première langue)."
#: questions/models/question.py:128
msgid "The default text value for this question (in the secondary language)."
msgstr ""
-"Valeur du texte par défaut pour cette question (dans la langue secondaire)."
+"Valeur du texte par défaut pour cette question (dans la deuxième langue)."
#: questions/models/question.py:133
msgid "The default text value for this question (in the tertiary language)."
msgstr ""
-"Valeur du texte par défaut pour cette question (dans la langue tertiaire)."
+"Valeur du texte par défaut pour cette question (dans la troisième langue)."
#: questions/models/question.py:138
msgid "The default text value for this question (in the quaternary language)."
msgstr ""
-"Valeur du texte par défaut pour cette question (dans la langue quaternaire)."
+"Valeur du texte par défaut pour cette question (dans la quatrième langue)."
#: questions/models/question.py:143
msgid "The default text value for this question (in the quinary language)."
-msgstr "Valeur du texte par défaut pour cette question (en langage quinaire)."
+msgstr ""
+"Valeur du texte par défaut pour cette question (dans la cinquième langue)."
#: questions/models/question.py:147
msgid "Default option"
@@ -3877,23 +3882,23 @@ msgstr ""
#: questions/models/question.py:158
msgid "The name displayed for this question (in the primary language)."
-msgstr "Le nom affiché pour cette question (dans la langue principale)."
+msgstr "Le nom affiché pour cette question (dans la première langue)."
#: questions/models/question.py:163
msgid "The name displayed for this question (in the secondary language)."
-msgstr "Le nom affiché pour cette question (dans la langue secondaire)."
+msgstr "Le nom affiché pour cette question (dans la deuxième langue)."
#: questions/models/question.py:168
msgid "The name displayed for this question (in the tertiary language)."
-msgstr "Le nom affiché pour cette question (dans la langue tertiaire)."
+msgstr "Le nom affiché pour cette question (dans la troisième langue)."
#: questions/models/question.py:173
msgid "The name displayed for this question (in the quaternary language)."
-msgstr "Le nom affiché pour cette question (dans la langue quaternaire)."
+msgstr "Le nom affiché pour cette question (dans la quatrième langue)."
#: questions/models/question.py:178
msgid "The name displayed for this question (in the quinary language)."
-msgstr "Le nom affiché pour cette question (dans le langage quinaire)."
+msgstr "Le nom affiché pour cette question (dans le cinquième langue)."
#: questions/models/question.py:182
msgid "Widget type"
@@ -3910,7 +3915,7 @@ msgstr "Type de valeur pour cette question."
#: questions/models/question.py:192
#: questions/templates/questions/export/question.html:60
msgid "Minimum"
-msgstr "Le minimum"
+msgstr "Minimum"
#: questions/models/question.py:193
msgid "Minimal value for this question."
@@ -3928,14 +3933,13 @@ msgstr "Valeur maximale pour cette question."
#: questions/models/question.py:202
#: questions/templates/questions/export/question.html:62
msgid "Step"
-msgstr "Étape"
+msgstr "Pas"
#: questions/models/question.py:203
msgid ""
"Step in which the value for this question can be incremented/decremented."
msgstr ""
-"Étape dans laquelle la valeur de cette question peut être incrémentée/"
-"décrémentée."
+"Pas par lequel la valeur de cette question peut être incrémentée/décrémentée."
#: questions/models/question.py:208
msgid "Unit for this question."
@@ -3973,7 +3977,7 @@ msgstr "Le chemin de l'URI de cet ensemble de questions."
#: questions/models/questionset.py:46
msgid "Additional internal information about this question set."
-msgstr "Informations internes complémentaires sur cette série de questions."
+msgstr "Informations internes complémentaires sur cet ensemble de questions."
#: questions/models/questionset.py:51
msgid ""
@@ -3983,7 +3987,7 @@ msgstr ""
#: questions/models/questionset.py:57
msgid "The attribute this question set belongs to."
-msgstr "L'attribut auquel appartient cette série de questions."
+msgstr "L'attribut auquel appartient cet ensemble de questions."
#: questions/models/questionset.py:62
msgid "The question sets of this question set."
@@ -3991,7 +3995,7 @@ msgstr "Les questions de cet ensemble de questions."
#: questions/models/questionset.py:67
msgid "The questions of this question set."
-msgstr "Les questions de cette série de questions."
+msgstr "Les questions de cet ensemble de questions."
#: questions/models/questionset.py:72
msgid "Designates whether this question set is a collection."
@@ -4000,81 +4004,82 @@ msgstr "Indique si cet ensemble de questions est une collection."
#: questions/models/questionset.py:77
msgid "The sites that can edit this questionset (in a multi site setup)."
msgstr ""
-"Les sites qui peuvent éditer ce jeu de questions (dans une configuration "
-"multi-sites)."
+"Les sites qui peuvent éditer cet ensemble de questions (dans une "
+"configuration multi-sites)."
#: questions/models/questionset.py:82
msgid "The title for this question set (in the primary language)."
-msgstr "Le titre de cette ensemble de questions (dans la langue principale)."
+msgstr "Le titre de cet ensemble de questions (dans la première langue)."
#: questions/models/questionset.py:87
msgid "The title for this question set (in the secondary language)."
-msgstr "Le titre de cette ensemble de questions (dans la langue secondaire)."
+msgstr "Le titre de cet ensemble de questions (dans la deuxième langue)."
#: questions/models/questionset.py:92
msgid "The title for this question set (in the tertiary language)."
-msgstr "Le titre de cette ensemble de questions (dans la langue troisieme)."
+msgstr "Le titre de cet ensemble de questions (dans la troisième langue)."
#: questions/models/questionset.py:97
msgid "The title for this question set (in the quaternary language)."
-msgstr "Le titre de cette ensemble de questions (dans la langue quarternaire)."
+msgstr "Le titre de cet ensemble de questions (dans la quatrième langue)."
#: questions/models/questionset.py:102
msgid "The title for this question set (in the quinary language)."
-msgstr "Le titre de cette ensemble de questions (dans la langue quinaire)."
+msgstr "Le titre de cet ensemble de questions (dans la cinquième langue)."
#: questions/models/questionset.py:107
msgid "The help text for this question set (in the primary language)."
msgstr ""
-"Le texte d'aide pour cet ensemble de questions (dans la langue principale)."
+"Le texte d'aide pour cet ensemble de questions (dans la première langue)."
#: questions/models/questionset.py:112
msgid "The help text for this question set (in the secondary language)."
msgstr ""
-"Le texte d'aide pour cet ensemble de questions (dans la langue secondaire)."
+"Le texte d'aide pour cet ensemble de questions (dans la deuxième langue)."
#: questions/models/questionset.py:117
msgid "The help text for this question set (in the tertiary language)."
msgstr ""
-"Le texte d'aide pour cet ensemble de questions (dans la langue tertiaire)."
+"Le texte d'aide pour cet ensemble de questions (dans la troisième langue)."
#: questions/models/questionset.py:122
msgid "The help text for this question set (in the quaternary language)."
msgstr ""
-"Le texte d'aide pour cet ensemble de questions (en langage quaternaire)."
+"Le texte d'aide pour cet ensemble de questions (dans la quatrième langue)."
#: questions/models/questionset.py:127
msgid "The help text for this question set (in the quinary language)."
-msgstr "Le texte d'aide pour cet ensemble de questions (en langage quinaire)."
+msgstr ""
+"Le texte d'aide pour cet ensemble de questions (dans la cinquième langue)."
#: questions/models/questionset.py:132
msgid "The name displayed for this question set (in the primary language)."
msgstr ""
-"Le nom affiché pour cet ensemble de questions (dans la langue principale)."
+"Le nom affiché pour cet ensemble de questions (dans la première langue)."
#: questions/models/questionset.py:137
msgid "The name displayed for this question set (in the secondary language)."
msgstr ""
-"Le nom affiché pour cet ensemble de questions (dans la langue secondaire)."
+"Le nom affiché pour cet ensemble de questions (dans la deuxième langue)."
#: questions/models/questionset.py:142
msgid "The name displayed for this question set (in the tertiary language)."
msgstr ""
-"Le nom affiché pour cet ensemble de questions (dans la langue tertiaire)."
+"Le nom affiché pour cet ensemble de questions (dans la troisième langue)."
#: questions/models/questionset.py:147
msgid "The name displayed for this question set (in the quaternary language)."
msgstr ""
-"Le nom affiché pour cet ensemble de questions (dans la langue quarternaire)."
+"Le nom affiché pour cet ensemble de questions (dans la quatrième langue)."
#: questions/models/questionset.py:152
msgid "The name displayed for this question set (in the quinary language)."
msgstr ""
-"Le nom affiché pour cet ensemble de questions (dans la langue quinaire)."
+"Le nom affiché pour cet ensemble de questions (dans la cinquième langue)."
#: questions/models/questionset.py:157
msgid "List of conditions evaluated for this question set."
-msgstr "Liste des conditions évaluées pour cette série de questions."
+msgstr "Liste des conditions évaluées pour cette ensemble de questions."
#: questions/models/questionset.py:162
#: questions/templates/questions/export/questionset.html:4
@@ -4104,7 +4109,7 @@ msgid ""
"Designates whether this section (and its question sets and questions) can be "
"changed."
msgstr ""
-"Désigne si cette section (et ses séries de questions) peut être modifiée."
+"Désigne si cette section (et ses ensembles de questions) peut être modifiée."
#: questions/models/section.py:60
msgid "The pages of this section."
@@ -4118,30 +4123,30 @@ msgstr ""
#: questions/models/section.py:70
msgid "The title for this section (in the primary language)."
-msgstr "Le titre de cette section (dans la langue principale)."
+msgstr "Le titre de cette section (dans la première langue)."
#: questions/models/section.py:75
msgid "The title for this section (in the secondary language)."
-msgstr "Le titre de cette section (dans la langue secondaire)."
+msgstr "Le titre de cette section (dans la deuxième langue)."
#: questions/models/section.py:80
msgid "The title for this section (in the tertiary language)."
-msgstr "Le titre de cette section (dans la langue tertiaire)."
+msgstr "Le titre de cette section (dans la troisième langue)."
#: questions/models/section.py:85
msgid "The title for this section (in the quaternary language)."
-msgstr "Le titre de cette section (dans la langue quaternaire)."
+msgstr "Le titre de cette section (dans la quatrième langue)."
#: questions/models/section.py:90
msgid "The title for this section (in the quinary language)."
-msgstr "Le titre de cette section (en langage quinaire)."
+msgstr "Le titre de cette section (dans la cinquième langue)."
#: questions/models/section.py:95
msgid ""
"The short title for this section (in the primary language), used in the "
"navigation."
msgstr ""
-"Le titre court de cette section (dans la langue principale), utilisé dans la "
+"Le titre court de cette section (dans la première langue), utilisé dans la "
"navigation."
#: questions/models/section.py:100
@@ -4149,15 +4154,15 @@ msgid ""
"The short title for this section (in the secondary language), used in the "
"navigation."
msgstr ""
-"Le titre abrégé de cette section (dans la langue secondaire), utilisé dans "
-"la navigation."
+"Le titre abrégé de cette section (dans la deuxième langue), utilisé dans la "
+"navigation."
#: questions/models/section.py:105
msgid ""
"The short title for this section (in the tertiary language), used in the "
"navigation."
msgstr ""
-"Le titre court de cette section (dans la langue tertiaire), utilisé dans la "
+"Le titre court de cette section (dans la troisième langue), utilisé dans la "
"navigation."
#: questions/models/section.py:110
@@ -4165,15 +4170,15 @@ msgid ""
"The short title for this section (in the quaternary language), used in the "
"navigation."
msgstr ""
-"Le titre abrégé de cette section (dans la langue quaternaire), utilisé dans "
-"la navigation."
+"Le titre abrégé de cette section (dans la quatrième langue), utilisé dans la "
+"navigation."
#: questions/models/section.py:115
msgid ""
"The short title for this section (in the quinary language), used in the "
"navigation."
msgstr ""
-"Le titre court de cette section (en langage quinaire), utilisé dans la "
+"Le titre court de cette section (dans la cinquième langue), utilisé dans la "
"navigation."
#: questions/models/section.py:120
@@ -4199,7 +4204,7 @@ msgstr ""
msgid "If the \"Yes/No\" widget is used, the value type must be \"Boolean\"."
msgstr ""
"Si le widget \"Oui/Non\" est utilisé, le type de valeur doit être "
-"\"booléen\"."
+"\"Boolean\"."
#: questions/templates/questions/export/page.html:28
#: questions/templates/questions/export/question.html:48
@@ -4264,7 +4269,7 @@ msgstr "Erreur d'intégration"
#: services/views.py:21
msgid "Something went wrong. Please contact support."
-msgstr "Quelque chose a mal tourné. Veuillez contacter l'assistance."
+msgstr "Quelque chose a mal tourné. Veuillez contacter le support."
#: tasks/models.py:21
msgid "The Uniform Resource Identifier of this task (auto-generated)."
@@ -4317,43 +4322,43 @@ msgstr "Les groupes pour lesquels cette tâche est active."
#: tasks/models.py:72
msgid "The title for this task (in the primary language)."
-msgstr "Le titre de cette tâche (dans la langue principale)."
+msgstr "Le titre de cette tâche (dans la première langue)."
#: tasks/models.py:77
msgid "The title for this task (in the secondary language)."
-msgstr "Le titre de cette tâche (dans la langue secondaire)."
+msgstr "Le titre de cette tâche (dans la deuxième langue)."
#: tasks/models.py:82
msgid "The title for this task (in the tertiary language)."
-msgstr "Le titre de cette tâche (dans la langue tertiaire)."
+msgstr "Le titre de cette tâche (dans la troisième langue)."
#: tasks/models.py:87
msgid "The title for this task (in the quaternary language)."
-msgstr "Le titre de cette tâche (dans la langue quarternaire)."
+msgstr "Le titre de cette tâche (dans la quatrième langue)."
#: tasks/models.py:92
msgid "The title for this task (in the quinary language)."
-msgstr "Le titre de cette tâche (dans la langue quinaire)."
+msgstr "Le titre de cette tâche (dans la cinquième langue)."
#: tasks/models.py:97
msgid "The text for this task (in the primary language)."
-msgstr "Le texte de cette tâche (dans la langue principale)."
+msgstr "Le texte de cette tâche (dans la première langue)."
#: tasks/models.py:102
msgid "The text for this task (in the secondary language)."
-msgstr "Le texte de cette tâche (dans la langue secondaire)."
+msgstr "Le texte de cette tâche (dans la deuxième langue)."
#: tasks/models.py:107
msgid "The text for this task (in the tertiary language)."
-msgstr "Le texte de cette tâche (dans la langue tertiaire)."
+msgstr "Le texte de cette tâche (dans la troisième langue)."
#: tasks/models.py:112
msgid "The text for this task (in the quaternary language)."
-msgstr "Le texte de cette tâche (dans la langue quarternaire)."
+msgstr "Le texte de cette tâche (dans la quatrième langue)."
#: tasks/models.py:117
msgid "The text for this task (in the quinary language)."
-msgstr "Le texte de cette tâche (dans la langue quinaire)."
+msgstr "Le texte de cette tâche (dans la cinquième langue)."
#: tasks/models.py:121 tasks/templates/tasks/export/tasks.html:39
msgid "Start date attribute"
@@ -4373,8 +4378,8 @@ msgid ""
"end date attribute is given, the start date attribute sets also the end "
"date)."
msgstr ""
-"L'attribut qui définit la date de fin de cette tâche (facultatif, si non "
-"l'attribut de date de fin est donné, l'attribut de date de début définit "
+"L'attribut qui définit la date de fin de cette tâche (facultatif, si aucun "
+"attribut de date de fin est donné, l'attribut de date de début définit "
"également la date de fin)."
#: tasks/models.py:132 tasks/templates/tasks/export/tasks.html:41
@@ -4383,7 +4388,7 @@ msgstr "Jours avant"
#: tasks/models.py:133
msgid "Additional days before the start date."
-msgstr "Jours complémentaires avant la date de début."
+msgstr "Jours supplémentaires avant la date de début."
#: tasks/models.py:137 tasks/templates/tasks/export/tasks.html:42
msgid "Days after"
@@ -4391,7 +4396,7 @@ msgstr "Des jours après"
#: tasks/models.py:138
msgid "Additional days after the end date."
-msgstr "Jours complémentaires après la date de fin."
+msgstr "Jours supplémentaires après la date de fin."
#: tasks/models.py:143
msgid "The list of conditions evaluated for this task."
@@ -4456,47 +4461,47 @@ msgstr "Modèle"
#: views/models.py:74
msgid "The template for this view, written in Django template language."
-msgstr "Le modèle de cette vue, écrit en langage de modèle Django."
+msgstr "Le modèle de cette vue, écrit en language Django."
#: views/models.py:79
msgid "The title for this view (in the primary language)."
-msgstr "Le titre de cette vue (dans la langue principale)."
+msgstr "Le titre de cette vue (dans la première langue)."
#: views/models.py:84
msgid "The title for this view (in the secondary language)."
-msgstr "Le titre de cette vue (dans la langue secondaire)."
+msgstr "Le titre de cette vue (dans la deuxième langue)."
#: views/models.py:89
msgid "The title for this view (in the tertiary language)."
-msgstr "Le titre de cette vue (dans la langue tertiaire)."
+msgstr "Le titre de cette vue (dans la troisième langue)."
#: views/models.py:94
msgid "The title for this view (in the quaternary language)."
-msgstr "Le titre de cette vue (en langage quaternaire)."
+msgstr "Le titre de cette vue (dans la quatrième langue)."
#: views/models.py:99
msgid "The title for this view (in the quinary language)."
-msgstr "Le titre de cette vue (en langage quinaire)."
+msgstr "Le titre de cette vue (dans la cinquième langue)."
#: views/models.py:104
msgid "The help text for this view (in the primary language)."
-msgstr "Le texte d'aide pour cette vue (dans la langue principale)."
+msgstr "Le texte d'aide pour cette vue (dans la première langue)."
#: views/models.py:109
msgid "The help text for this view (in the secondary language)."
-msgstr "Le texte d'aide pour cette vue (dans la langue secondaire)."
+msgstr "Le texte d'aide pour cette vue (dans la deuxième langue)."
#: views/models.py:114
msgid "The help text for this view (in the tertiary language)."
-msgstr "Le texte d'aide pour cette vue (dans la langue tertiaire)."
+msgstr "Le texte d'aide pour cette vue (dans la troisième langue)."
#: views/models.py:119
msgid "The help text for this view (in the quaternary language)."
-msgstr "Le texte d'aide pour cette vue (dans la langue quarternaire)."
+msgstr "Le texte d'aide pour cette vue (dans la quatrième langue)."
#: views/models.py:124
msgid "The help text for this view (in the quinary language)."
-msgstr "Le texte d'aide pour cette vue (dans la langue quinaire)."
+msgstr "Le texte d'aide pour cette vue (dans la cinquième langue)."
#: views/models.py:129
msgid "Designates whether this view is generally available for projects."
@@ -4514,339 +4519,3 @@ msgstr "fichier"
#: views/templatetags/view_tags.py:210
msgid "Set"
msgstr "Ensemble"
-
-#~ msgid "Session Login"
-#~ msgstr "Connexion à la session"
-
-#~ msgid "You are logged in as: "
-#~ msgstr "Vous êtes connecté en tant que: "
-
-#~ msgid "Viewing as an anonymous user"
-#~ msgstr "Visualisation en tant qu'utilisateur anonyme"
-
-#~ msgid "Powered by "
-#~ msgstr "Propulsé par "
-
-#~ msgid "Autocomplete"
-#~ msgstr "Autocomplétion"
-
-#~ msgid "Free autocomplete"
-#~ msgstr "Autocomplétion vide"
-
-#~ msgid "Proceed"
-#~ msgstr "Procéder"
-
-#~ msgid "Skip"
-#~ msgstr "Sauter"
-
-#~ msgid "Save"
-#~ msgstr "Enregistrer"
-
-#~ msgid "Save and proceed"
-#~ msgstr "Enregistrez et continuez"
-
-#~ msgid "Complete questionnaire"
-#~ msgstr "Compléter le questionnaire"
-
-#~ msgid "Save and complete questionnaire"
-#~ msgstr "Sauvegarder et compléter le questionnaire"
-
-#~ msgid "This is a default answer that can be customized."
-#~ msgstr "Il s'agit d'une réponse par défaut qui peut être personnalisée."
-
-#~ msgid "Erase input"
-#~ msgstr "Effacer l'entrée"
-
-#~ msgid "Please type and select."
-#~ msgstr "Veuillez taper et sélectionner."
-
-#~ msgid "Currently:"
-#~ msgstr "Actuellement:"
-
-#~ msgid "Update:"
-#~ msgstr "Mise à jour:"
-
-#~ msgid "No options are available."
-#~ msgstr "Aucune option n'est disponible."
-
-#~ msgid "Please select"
-#~ msgstr "Veuillez sélectionner"
-
-#~ msgid "You are about to permanently delete this tab."
-#~ msgstr "Vous êtes sur le point de supprimer définitivement cet onglet."
-
-#~ msgid ""
-#~ "This includes all given answers for this tab on all pages, not just this "
-#~ "one."
-#~ msgstr ""
-#~ "Cela inclut toutes les réponses données pour cet onglet sur toutes les "
-#~ "pages, et pas seulement celle-ci."
-
-#~ msgid "Delete"
-#~ msgstr "Supprimer"
-
-#~ msgid "Please give the tab a meaningful name."
-#~ msgstr "Veuillez donner un nom significatif à l'onglet."
-
-#, python-format
-#~ msgid "(%(section_count)s of %(section_total)s)"
-#~ msgstr "(%(section_count)s de %(section_total)s)"
-
-#, python-format
-#~ msgid "(%(page_count)s of %(page_total)s)"
-#~ msgstr "(%(page_count)s de %(page_total)s)"
-
-#~ msgid "Using the navigation will save your input."
-#~ msgstr ""
-#~ "L'utilisation de la navigation vous permettra d'économiser vos données."
-
-#~ msgid ""
-#~ "Please note that using the navigation will discard any unsaved input."
-#~ msgstr ""
-#~ "Veuillez noter que l'utilisation de la navigation annulera toute saisie "
-#~ "non sauvegardée."
-
-#~ msgid "Reload page"
-#~ msgstr "Recharger la page"
-
-#~ msgid "Back to my projects"
-#~ msgstr "Retour à mes projets"
-
-#~ msgid "(optional)"
-#~ msgstr "(facultatif)"
-
-#~ msgid "Edit tab"
-#~ msgstr "Onglet Modifier"
-
-#~ msgid "Remove tab"
-#~ msgstr "Supprimer l'onglet"
-
-#~ msgid "Remove block"
-#~ msgstr "Supprimer le bloc"
-
-#~ msgid ""
-#~ "An error occurred while saving the answer. Please contact support if this "
-#~ "problem persists."
-#~ msgstr ""
-#~ "Une erreur s'est produite lors de l'enregistrement de la réponse. "
-#~ "Veuillez contacter le support si ce problème persiste."
-
-#~ msgid "Overview"
-#~ msgstr "Aperçu"
-
-#~ msgid "Progress"
-#~ msgstr "Progression"
-
-#~ msgid ""
-#~ "This field could not be saved, since somebody else did so while you were "
-#~ "editing. You will need to reload the page to make changes, but your input "
-#~ "will be overwritten."
-#~ msgstr ""
-#~ "Ce champ n'a pas pu être sauvegardé, car quelqu'un d'autre l'a fait "
-#~ "pendant que vous étiez en train de le modifier. Vous devrez recharger la "
-#~ "page pour apporter des modifications, mais vos données seront écrasées."
-
-#~ msgid ""
-#~ "This field could not be saved, since somebody else removed it while you "
-#~ "were editing. You will need to reload the page to proceed, but your input "
-#~ "will be lost."
-#~ msgstr ""
-#~ "Ce champ n'a pas pu être sauvegardé, car quelqu'un d'autre l'a supprimé "
-#~ "pendant que vous le modifiez. Vous devrez recharger la page pour "
-#~ "continuer, mais vos données seront perdues."
-
-#~ msgid "GitHub repository"
-#~ msgstr "Dépôt GitHub"
-
-#~ msgid "Please use the form username/repository or organization/repository."
-#~ msgstr ""
-#~ "Veuillez utiliser le formulaire nom d'utilisateur/dépôt ou organisation/"
-#~ "dépôt."
-
-#~ msgid "File path"
-#~ msgstr "Chemin du fichier"
-
-#~ msgid "Branch, tag, or commit"
-#~ msgstr "Branch, tag, ou commit"
-
-#~ msgid "GitLab repository"
-#~ msgstr "Dépôt GitLab"
-
-#~ msgid "Add GitHub integration"
-#~ msgstr "Ajouter l'intégration de GitHub"
-
-#~ msgid "The GitHub repository to send issues to."
-#~ msgstr "Le dépôt GitHub pour l'envoi des sujets."
-
-#~ msgid "Add GitLab integration"
-#~ msgstr "Ajouter l'intégration de GitLab"
-
-#~ msgid "Send to GitLab"
-#~ msgstr "Envoyer à GitLab"
-
-#, python-brace-format
-#~ msgid ""
-#~ "This integration allow the creation of issues in arbitrary repositories "
-#~ "on {self.gitlab_url}. The upload of attachments is not supported by "
-#~ "GitLab."
-#~ msgstr ""
-#~ "Cette intégration permet la création de problèmes dans des dépôts "
-#~ "arbitraires sur {self.gitlab_url}. Le téléchargement de pièces jointes "
-#~ "n'est pas supporté par GitLab."
-
-#~ msgid "The secret for a GitLab webhook to close a task."
-#~ msgstr "Le secret d'un webhook GitLab pour fermer une tâche."
-
-#~ msgid "item"
-#~ msgstr "article"
-
-#~ msgid "items"
-#~ msgstr "articles"
-
-#~ msgid "sets"
-#~ msgstr "ensembles"
-
-#, python-format
-#~ msgid "Add %(name)s"
-#~ msgstr "Ajouter %(name)s"
-
-#, python-format
-#~ msgid ""
-#~ "You are about to permanently delete the %(name)s %(object)s"
-#~ "strong>."
-#~ msgstr ""
-#~ "Vous êtes sur le point de supprimer définitivement les %(name)s "
-#~ "%(object)s."
-
-#~ msgid ""
-#~ "Entries with might be skipped based on your input."
-#~ msgstr ""
-#~ "Les entrées avec peuvent être ignorées en fonction de votre saisie."
-
-#, python-format
-#~ msgid "Update %(name)s"
-#~ msgstr "Mettre à jour %(name)s"
-
-#, python-format
-#~ msgid "Remove %(name)s"
-#~ msgstr "Supprimer %(name)s"
-
-#, python-format
-#~ msgid "View all projects on %(site)s"
-#~ msgstr "Voir tous les projets sur %(site)s"
-
-#~ msgid "Filter projects"
-#~ msgstr "Filtrer les projets"
-
-#~ msgid "Search project title"
-#~ msgstr "Recherche de projets"
-
-#, python-format
-#~ msgid ""
-#~ "%(number_of_filtered_projects)s of %(number_of_projects)s projects shown"
-#~ msgstr ""
-#~ "%(number_of_filtered_projects)s des %(number_of_projects)s projets "
-#~ "présentés"
-
-#~ msgid "Import existing project"
-#~ msgstr "Importer un projet existant"
-
-#~ msgid "Pending invitations"
-#~ msgstr "Invitations en cours"
-
-#~ msgid "Click on one of the links to join the projects."
-#~ msgstr "Cliquez sur l'un des liens pour rejoindre les projets."
-
-#~ msgid "Last changed"
-#~ msgstr "Dernière modification"
-
-#~ msgid "All catalogs"
-#~ msgstr "Tous les catalogues"
-
-#, python-format
-#~ msgid "All projects on %(site)s"
-#~ msgstr "Tous les projets sur %(site)s"
-
-#~ msgid "Plural name (primary)"
-#~ msgstr "Nom pluriel (principal)"
-
-#~ msgid "The plural name displayed for this page in the primary language."
-#~ msgstr "Le nom pluriel affiché pour cette page dans la langue principale."
-
-#~ msgid "Plural name (secondary)"
-#~ msgstr "Nom pluriel (secondaire)"
-
-#~ msgid "The plural name displayed for this page in the secondary language."
-#~ msgstr "Le nom pluriel affiché pour cette page dans la langue secondaire."
-
-#~ msgid "Plural name (tertiary)"
-#~ msgstr "Nom pluriel (tertiaire)"
-
-#~ msgid "The plural name displayed for this page in the tertiary language."
-#~ msgstr "Le nom pluriel affiché pour cette page dans la langue tertiaire."
-
-#~ msgid "Plural name (quaternary)"
-#~ msgstr "Nom pluriel (quaternaire)"
-
-#~ msgid "The plural name displayed for this page in the quaternary language."
-#~ msgstr "Le nom pluriel affiché pour cette page dans la langue quaternaire."
-
-#~ msgid "Plural name (quinary)"
-#~ msgstr "Nom pluriel (quinaire)"
-
-#~ msgid "The plural name displayed for this page in the quinary language."
-#~ msgstr "Le nom pluriel affiché pour cette page dans le langage quinaire."
-
-#~ msgid "The plural name displayed for this question in the primary language."
-#~ msgstr "Nom pluriel affiché pour cette question dans la langue principale."
-
-#~ msgid ""
-#~ "The plural name displayed for this question in the secondary language."
-#~ msgstr "Nom pluriel affiché pour cette question dans la langue secondaire."
-
-#~ msgid ""
-#~ "The plural name displayed for this question in the tertiary language."
-#~ msgstr "Nom pluriel affiché pour cette question dans la langue tertiaire."
-
-#~ msgid ""
-#~ "The plural name displayed for this question in the quaternary language."
-#~ msgstr "Nom pluriel affiché pour cette question dans la langue quaternaire."
-
-#~ msgid "The plural name displayed for this question in the quinary language."
-#~ msgstr "Nom pluriel affiché pour cette question dans la langue quinaire."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the primary language."
-#~ msgstr ""
-#~ "Nom pluriel affiché pour cette ensemble de questions dans la langue "
-#~ "primaire."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the secondary language."
-#~ msgstr ""
-#~ "Nom pluriel affiché pour cette ensemble de questions dans la langue "
-#~ "secondaire."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the tertiary language."
-#~ msgstr ""
-#~ "Nom pluriel affiché pour cette ensemble de questions dans la troisiéme "
-#~ "langue."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the quaternary "
-#~ "language."
-#~ msgstr ""
-#~ "Nom pluriel affiché pour cette ensemble de questions dans la langue "
-#~ "quaternaire."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the quinary language."
-#~ msgstr ""
-#~ "Nom pluriel affiché pour cette ensemble de questions dans la langue "
-#~ "quinaire."
-
-#~ msgid "Verbose name plural"
-#~ msgstr "Nom verbeux pluriel"
diff --git a/rdmo/locale/fr/LC_MESSAGES/djangojs.mo b/rdmo/locale/fr/LC_MESSAGES/djangojs.mo
index 1e8ec083e3..98fad663d1 100644
Binary files a/rdmo/locale/fr/LC_MESSAGES/djangojs.mo and b/rdmo/locale/fr/LC_MESSAGES/djangojs.mo differ
diff --git a/rdmo/locale/fr/LC_MESSAGES/djangojs.po b/rdmo/locale/fr/LC_MESSAGES/djangojs.po
index a5771e4d66..c12133100f 100644
--- a/rdmo/locale/fr/LC_MESSAGES/djangojs.po
+++ b/rdmo/locale/fr/LC_MESSAGES/djangojs.po
@@ -2,52 +2,60 @@ msgid ""
msgstr ""
"Project-Id-Version: RDMO\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-07-04 11:19+0000\n"
-"PO-Revision-Date: 2025-07-04 13:26+0200\n"
-"Last-Translator: Yonny CARDENAS, Gautier DEBAECKER, Nadia LAJILI, Gino "
-"MARCHETTI \n"
+"POT-Creation-Date: 2025-12-12 13:02+0100\n"
+"PO-Revision-Date: 2025-12-09 07:13+0100\n"
+"Last-Translator: Giacomo Lanza \n"
"Language-Team: RDMO \n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.6\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+"X-Generator: Poedit 3.8\n"
#: core/assets/js/components/Modal.js:20
#: management/assets/js/components/common/Modals.js:16
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Close"
msgstr "Fermer"
#: core/assets/js/components/Modal.js:26
#: management/assets/js/components/common/Buttons.js:19
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Save"
-msgstr "Sauvegarder"
+msgstr "Enregistrer"
#: core/assets/js/components/SearchField.js:35
#: core/assets/js/components/SearchField.js:43
#: projects/assets/js/projects/utils/translations.js:15
+#: projects/static/projects/js/projects.js:2
msgid "Search"
msgstr "Recherche"
#: core/assets/js/components/SearchField.js:39
#: management/assets/js/components/common/Filter.js:12
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Reset"
-msgstr "Réinitialisation"
+msgstr "Réinitialiser"
#: core/assets/js/components/UploadDropZone.js:17
+#: projects/static/projects/js/projects.js:2
#, javascript-format
msgid "%s has unsupported file type"
msgstr "%s a un type de fichier non supporté"
#: core/assets/js/components/UploadDropZone.js:28
+#: projects/static/projects/js/projects.js:2
msgid "Drop the file here ..."
msgstr "Déposez le fichier ici ..."
#: core/assets/js/components/UploadDropZone.js:32
+#: projects/static/projects/js/projects.js:2
msgid "Drag and drop a file here or click to select a file"
msgstr "Glisser-déposer un fichier ici ou cliquer pour sélectionner un fichier"
@@ -57,12 +65,14 @@ msgstr "Glisser-déposer un fichier ici ou cliquer pour sélectionner un fichier
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageButtons.js:11
#: projects/assets/js/interview/components/sidebar/Buttons.js:22
+#: projects/static/projects/js/interview.js:2
msgid "Back"
msgstr "Retour"
#: management/assets/js/components/common/Buttons.js:13
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageHead.js:166
+#: projects/static/projects/js/interview.js:2
msgid "Create"
msgstr "Créer"
@@ -75,6 +85,7 @@ msgstr "Créer et continuer l'édition"
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageHead.js:176
#: projects/assets/js/interview/components/main/questionset/QuestionSetCopySet.js:31
+#: projects/static/projects/js/interview.js:2
msgid "Copy"
msgstr "Copier"
@@ -86,7 +97,7 @@ msgstr "Copier et continuer l'édition"
#: management/assets/js/components/common/Buttons.js:19
#: management/static/management/js/management.js:2
msgid "Save and continue editing"
-msgstr "Sauvegarder et continuer l'édition"
+msgstr "Enregistrer et continuer l'édition"
#: management/assets/js/components/common/Buttons.js:39
#: management/assets/js/components/import/common/ImportSelectCheckbox.js:9
@@ -98,6 +109,7 @@ msgstr "Nouveau"
#: management/assets/js/components/common/Modals.js:19
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:8
+#: projects/static/projects/js/interview.js:2
msgid "Delete"
msgstr "Supprimer"
@@ -119,12 +131,12 @@ msgstr "Tous les préfixes URI"
#: management/assets/js/components/common/Forms.js:16
#: management/static/management/js/management.js:2
msgid "Upload file"
-msgstr "Télécharger le fichier"
+msgstr "Téléverser le fichier"
#: management/assets/js/components/common/Forms.js:18
#: management/static/management/js/management.js:2
msgid "Select file"
-msgstr "Sélectionner le fichier xml"
+msgstr "Sélectionner le fichier"
#: management/assets/js/components/common/Forms.js:23
#: management/static/management/js/management.js:2
@@ -150,7 +162,7 @@ msgstr "Ajouter votre site"
#: management/assets/js/components/common/Links.js:133
#: management/static/management/js/management.js:2
msgid "Hide elements"
-msgstr "Masquer des éléments"
+msgstr "Cacher des éléments"
#: management/assets/js/components/common/Links.js:133
#: management/static/management/js/management.js:2
@@ -173,28 +185,34 @@ msgstr "XML (complet)"
#: management/assets/js/components/sidebar/ElementsSidebar.js:107
#: management/static/management/js/management.js:2
msgid "CSV comma separated"
-msgstr "CSV séparé par des virgules"
+msgstr ""
#: management/assets/js/components/common/Links.js:161
#: management/assets/js/components/sidebar/ElementsSidebar.js:112
#: management/static/management/js/management.js:2
msgid "CSV semicolon separated"
-msgstr "CSV séparés par des points-virgules"
+msgstr ""
#: management/assets/js/components/common/Links.js:193
#: management/static/management/js/management.js:2
+#, fuzzy
+#| msgid "Show filters"
msgid "Show less"
-msgstr "Montrer moins"
+msgstr "Afficher les filtres"
#: management/assets/js/components/common/Links.js:194
#: management/static/management/js/management.js:2
+#, fuzzy
+#| msgid "Load more"
msgid "Show more"
-msgstr "Afficher plus"
+msgstr "Voir plus"
#: management/assets/js/components/common/Links.js:242
#: management/static/management/js/management.js:2
+#, fuzzy
+#| msgid "Hide all"
msgid "Hide"
-msgstr "Cacher"
+msgstr "Cacher tout"
#: management/assets/js/components/common/Links.js:242
#: management/assets/js/components/sidebar/ImportSidebar.js:81
@@ -212,6 +230,7 @@ msgstr "Cet attribut est en lecture seule"
#: management/assets/js/components/element/Attribute.js:44
#: management/assets/js/constants/elements.js:49
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Attribute"
msgstr "Attribut"
@@ -288,7 +307,8 @@ msgstr "Ce catalogue est en lecture seule"
#: management/assets/js/components/element/Catalog.js:58
#: management/assets/js/constants/elements.js:44
#: management/static/management/js/management.js:2
-#: projects/assets/js/interview/components/sidebar/Overview.js:30
+#: projects/assets/js/interview/components/sidebar/Overview.js:35
+#: projects/static/projects/js/interview.js:2
msgid "Catalog"
msgstr "Catalogue"
@@ -307,6 +327,7 @@ msgstr "Cette condition est en lecture seule"
#: management/assets/js/components/element/Condition.js:37
#: management/assets/js/constants/elements.js:52
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Condition"
msgstr "Condition"
@@ -322,7 +343,7 @@ msgid ""
"This condition will be added to the option set %s."
msgstr ""
-"Cette condition sera ajoutée au jeu d'options %s."
#: management/assets/js/components/edit/EditCondition.js:64
@@ -382,6 +403,7 @@ msgstr "Cette option est en lecture seule"
#: management/assets/js/components/element/Option.js:37
#: management/assets/js/constants/elements.js:51
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Option"
msgstr "Option"
@@ -397,26 +419,26 @@ msgid ""
"This option will be added to the option set %s"
"code>."
msgstr ""
-"Cette option sera ajoutée au jeu d'options %s"
-"code>."
+"Cette option sera ajoutée à l'options %s."
#: management/assets/js/components/edit/EditOptionSet.js:45
#: management/assets/js/components/element/OptionSet.js:35
#: management/static/management/js/management.js:2
msgid "This option set is read only"
-msgstr "Ce jeu d'options est en lecture seule"
+msgstr "Cet ensemble d'options est en lecture seule"
#: management/assets/js/components/edit/EditOptionSet.js:52
#: management/assets/js/components/element/OptionSet.js:47
#: management/assets/js/constants/elements.js:50
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Option set"
-msgstr "Jeu d'options"
+msgstr "Ensemble d'options"
#: management/assets/js/components/edit/EditOptionSet.js:54
#: management/static/management/js/management.js:2
msgid "Create option set"
-msgstr "Créer un jeu d'options"
+msgstr "Créer un ensemble d'options"
#: management/assets/js/components/edit/EditOptionSet.js:61
#: management/static/management/js/management.js:2
@@ -425,7 +447,7 @@ msgid ""
"This option set will be added to the question %s."
msgstr ""
-"Ce jeu d'options sera ajouté à la question %s."
#: management/assets/js/components/edit/EditOptionSet.js:99
@@ -486,7 +508,7 @@ msgstr "Créer une nouvelle question"
#: management/assets/js/components/edit/EditQuestionSet.js:74
#: management/static/management/js/management.js:2
msgid "Create new question set"
-msgstr "Créer une nouvelle série de questions"
+msgstr "Créer un nouvel ensemble de questions"
#: management/assets/js/components/edit/EditPage.js:80
#: management/assets/js/components/element/Page.js:45
@@ -498,6 +520,7 @@ msgstr "Cette page est en lecture seule"
#: management/assets/js/components/element/Page.js:60
#: management/assets/js/constants/elements.js:46
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Page"
msgstr "Page"
@@ -519,7 +542,7 @@ msgstr ""
#: management/assets/js/components/edit/EditQuestion.js:44
#: management/static/management/js/management.js:2
msgid "Add existing optionset"
-msgstr "Ajouter un jeu d'options existant"
+msgstr "Ajouter un ensemble d'options existant"
#: management/assets/js/components/edit/EditQuestion.js:45
#: management/static/management/js/management.js:2
@@ -536,6 +559,7 @@ msgstr "Cette question est en lecture seule"
#: management/assets/js/components/element/Question.js:48
#: management/assets/js/constants/elements.js:48
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Question"
msgstr "Question"
@@ -589,23 +613,28 @@ msgstr "Conditions"
#: management/assets/js/components/sidebar/ElementsSidebar.js:54
#: management/static/management/js/management.js:2
msgid "Option sets"
-msgstr "Jeux d'options"
+msgstr "Ensemble d'options"
#: management/assets/js/components/edit/EditQuestion.js:163
#: management/static/management/js/management.js:2
+#, fuzzy
+#| msgid "Changed"
msgid "Range"
-msgstr "Gamme"
+msgstr "Modifié"
#: management/assets/js/components/edit/EditQuestion.js:179
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/question/QuestionDefault.js:9
+#: projects/static/projects/js/interview.js:2
msgid "Default"
msgstr "Défaut"
#: management/assets/js/components/edit/EditQuestion.js:199
#: management/static/management/js/management.js:2
+#, fuzzy
+#| msgid "Edit"
msgid "Editors"
-msgstr "Rédacteurs en chef"
+msgstr "Modifier"
#: management/assets/js/components/edit/EditQuestionSet.js:80
#: management/assets/js/components/element/QuestionSet.js:44
@@ -617,6 +646,7 @@ msgstr "Cet ensemble de questions est en lecture seule"
#: management/assets/js/components/element/QuestionSet.js:59
#: management/assets/js/constants/elements.js:47
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Question set"
msgstr "Ensemble de questions"
@@ -665,6 +695,7 @@ msgstr "Cette section est en lecture seule"
#: management/assets/js/components/element/Section.js:54
#: management/assets/js/constants/elements.js:45
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Section"
msgstr "Section"
@@ -693,6 +724,7 @@ msgstr "Cette tâche est en lecture seule"
#: management/assets/js/components/element/Task.js:53
#: management/assets/js/constants/elements.js:53
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Task"
msgstr "Tâche"
@@ -711,6 +743,7 @@ msgstr "Cette vue est en lecture seule"
#: management/assets/js/components/element/View.js:48
#: management/assets/js/constants/elements.js:54
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "View"
msgstr "Vue"
@@ -730,6 +763,7 @@ msgstr "Modifier"
#: management/assets/js/components/edit/common/OrderedMultiSelect.js:65
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/questionset/QuestionSetRemoveSet.js:25
+#: projects/static/projects/js/interview.js:2
msgid "Remove"
msgstr "Retirer"
@@ -882,17 +916,17 @@ msgstr "Exporter l'option"
#: management/assets/js/components/element/OptionSet.js:36
#: management/static/management/js/management.js:2
msgid "View option set nested"
-msgstr "Afficher le jeu d'options imbriquées"
+msgstr "Afficher l'ensemble d'options imbriquées"
#: management/assets/js/components/element/OptionSet.js:37
#: management/static/management/js/management.js:2
msgid "Edit option set"
-msgstr "Modifier le jeu d'options"
+msgstr "Modifier l'ensemble d'options"
#: management/assets/js/components/element/OptionSet.js:38
#: management/static/management/js/management.js:2
msgid "Copy option set"
-msgstr "Copier le jeu d'options"
+msgstr "Copier l'ensemble d'options"
#: management/assets/js/components/element/OptionSet.js:39
#: management/static/management/js/management.js:2
@@ -902,17 +936,17 @@ msgstr "Ajouter une option"
#: management/assets/js/components/element/OptionSet.js:40
#: management/static/management/js/management.js:2
msgid "Unlock option set"
-msgstr "Déverrouiller le jeu d'options"
+msgstr "Déverrouiller l'ensemble d'options"
#: management/assets/js/components/element/OptionSet.js:40
#: management/static/management/js/management.js:2
msgid "Lock option set"
-msgstr "Verrouiller le jeu d'options"
+msgstr "Verrouiller l'ensemble d'options"
#: management/assets/js/components/element/OptionSet.js:42
#: management/static/management/js/management.js:2
msgid "Export option set"
-msgstr "Exporter le jeu d'options"
+msgstr "Exporter l'ensemble d'options"
#: management/assets/js/components/element/Page.js:46
#: management/static/management/js/management.js:2
@@ -984,13 +1018,14 @@ msgstr "Exporter la question"
#: management/assets/js/components/element/Question.js:53
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/question/QuestionOptional.js:6
+#: projects/static/projects/js/interview.js:2
msgid "This is an optional question."
msgstr "Il s'agit d'une question facultative."
#: management/assets/js/components/element/Question.js:53
#: management/static/management/js/management.js:2
msgid "optional"
-msgstr "optionnel"
+msgstr "facultatif"
#: management/assets/js/components/element/Question.js:58
#: management/static/management/js/management.js:2
@@ -1020,8 +1055,8 @@ msgstr ""
#: management/static/management/js/management.js:2
msgid "Warning: Some of the language specific fields are not set properly."
msgstr ""
-"Avertissement : Certains champs spécifiques à la langue ne sont pas "
-"correctement définis."
+"Attention : Certains champs spécifiques à la langue ne sont pas correctement "
+"définis."
#: management/assets/js/components/element/QuestionSet.js:45
#: management/static/management/js/management.js:2
@@ -1121,7 +1156,7 @@ msgstr "Verrouiller la tâche"
#: management/assets/js/components/element/Task.js:48
#: management/static/management/js/management.js:2
msgid "Export task"
-msgstr "Exporter la âche"
+msgstr "Exporter la tâche"
#: management/assets/js/components/element/View.js:32
#: management/static/management/js/management.js:2
@@ -1190,7 +1225,7 @@ msgstr "Filtrer les attributs"
#: management/assets/js/components/elements/Views.js:49
#: management/static/management/js/management.js:2
msgid "Filter editors"
-msgstr "Filtre éditeurs"
+msgstr "Filtrer les éditeurs"
#: management/assets/js/components/elements/Attributes.js:42
#: management/assets/js/components/elements/Catalogs.js:51
@@ -1246,7 +1281,7 @@ msgstr "Filtrer les conditions"
#: management/assets/js/components/nested/NestedOptionSet.js:36
#: management/static/management/js/management.js:2
msgid "Filter option sets"
-msgstr "Filtrer les jeux d'options"
+msgstr "Filtrer les ensembles d'options"
#: management/assets/js/components/elements/Options.js:30
#: management/assets/js/components/elements/Options.js:52
@@ -1386,6 +1421,7 @@ msgstr "Modifié"
#: management/assets/js/components/import/ImportSuccessElement.js:16
#: management/static/management/js/management.js:2
#: projects/assets/js/projects/utils/constants.js:8
+#: projects/static/projects/js/projects.js:2
msgid "Created"
msgstr "Créée"
@@ -1414,7 +1450,7 @@ msgstr "Afficher uniquement les éléments nouveaux et modifiés (%s)"
#: management/assets/js/components/import/common/ImportFilters.js:26
#: management/static/management/js/management.js:2
msgid "Filter URI"
-msgstr "URI du filtre"
+msgstr "Filtrer l'URI"
#: management/assets/js/components/import/common/ImportFilters.js:41
#: management/static/management/js/management.js:2
@@ -1450,7 +1486,9 @@ msgstr[1] ""
#: management/assets/js/components/info/AttributeInfo.js:43
#: management/static/management/js/management.js:2
-#, javascript-format
+#, fuzzy, javascript-format
+#| msgid "This attribute has one descendant."
+#| msgid_plural "This attribute has %scendants."
msgid "This attribute has one descendant."
msgid_plural "This attribute has %s descendants."
msgstr[0] "Cet attribut a un descendant."
@@ -1461,8 +1499,8 @@ msgstr[1] "Cet attribut a %s descendants."
#, javascript-format
msgid "This attribute is used in one condition."
msgid_plural "This attribute is used in %s conditions."
-msgstr[0] "Cet attribut est utilisé à une condition."
-msgstr[1] "Cet attribut est utilisé dans les %s conditions."
+msgstr[0] "Cet attribut est utilisé dans une condition."
+msgstr[1] "Cet attribut est utilisé dans %s conditions."
#: management/assets/js/components/info/AttributeInfo.js:74
#: management/static/management/js/management.js:2
@@ -1470,15 +1508,15 @@ msgstr[1] "Cet attribut est utilisé dans les %s conditions."
msgid "This attribute is used in one page."
msgid_plural "This attribute is used in %s pages."
msgstr[0] "Cet attribut est utilisé dans une page."
-msgstr[1] "Cet attribut est utilisé dans les pages %s."
+msgstr[1] "Cet attribut est utilisé dans %s pages ."
#: management/assets/js/components/info/AttributeInfo.js:89
#: management/static/management/js/management.js:2
#, javascript-format
msgid "This attribute is used in one questionset."
msgid_plural "This attribute is used in %s questionsets."
-msgstr[0] "Cet attribut est utilisé dans un jeu de questions."
-msgstr[1] "Cet attribut est utilisé dans les %s questionsets."
+msgstr[0] "Cet attribut est utilisé dans un ensemble de questions."
+msgstr[1] "Cet attribut est utilisé dans %s ensembles de questions."
#: management/assets/js/components/info/AttributeInfo.js:104
#: management/static/management/js/management.js:2
@@ -1486,7 +1524,7 @@ msgstr[1] "Cet attribut est utilisé dans les %s questionsets."
msgid "This attribute is used in one question."
msgid_plural "This attribute is used in %s questions."
msgstr[0] "Cet attribut est utilisé dans une question."
-msgstr[1] "Cet attribut est utilisé dans les %s questions."
+msgstr[1] "Cet attribut est utilisé dans %s questions."
#: management/assets/js/components/info/AttributeInfo.js:119
#: management/static/management/js/management.js:2
@@ -1494,7 +1532,7 @@ msgstr[1] "Cet attribut est utilisé dans les %s questions."
msgid "This attribute is used in one task."
msgid_plural "This attribute is used in %s tasks."
msgstr[0] "Cet attribut est utilisé dans une tâche."
-msgstr[1] "Cet attribut est utilisé dans les tâches %s."
+msgstr[1] "Cet attribut est utilisé dans %s tâches ."
#: management/assets/js/components/info/CatalogInfo.js:9
#: management/static/management/js/management.js:2
@@ -1509,8 +1547,8 @@ msgstr[1] "Ce catalogue est utilisé dans %s projets."
#, javascript-format
msgid "This condition is used for one optionset."
msgid_plural "This condition is used for %s optionsets."
-msgstr[0] "Cette condition est utilisée pour un jeu d'options."
-msgstr[1] "Cette condition est utilisée pour %s optionsets."
+msgstr[0] "Cette condition est utilisée pour un ensemble d'options."
+msgstr[1] "Cette condition est utilisée pour %s ensembles d'options."
#: management/assets/js/components/info/ConditionInfo.js:48
#: management/static/management/js/management.js:2
@@ -1525,8 +1563,8 @@ msgstr[1] "Cette condition est utilisée pour %s pages."
#, javascript-format
msgid "This condition is used for one questionset."
msgid_plural "This condition is used for %s questionsets."
-msgstr[0] "Cette condition est utilisée pour un jeu de questions."
-msgstr[1] "Cette condition est utilisée pour %s questionsets."
+msgstr[0] "Cette condition est utilisée pour un ensemble de questions."
+msgstr[1] "Cette condition est utilisée pour %s ensembles de questions."
#: management/assets/js/components/info/ConditionInfo.js:78
#: management/static/management/js/management.js:2
@@ -1534,7 +1572,7 @@ msgstr[1] "Cette condition est utilisée pour %s questionsets."
msgid "This condition is used for one question."
msgid_plural "This condition is used for %s questions."
msgstr[0] "Cette condition est utilisée pour une question."
-msgstr[1] "Cette condition est utilisée pour les %s questions."
+msgstr[1] "Cette condition est utilisée pour %s questions."
#: management/assets/js/components/info/ConditionInfo.js:93
#: management/static/management/js/management.js:2
@@ -1549,8 +1587,10 @@ msgstr[1] "Cette condition est utilisée pour %s tâches."
#, javascript-format
msgid "This option is used for %s values in one project."
msgid_plural "This option is used for %s values in %s projects."
-msgstr[0] "This option is used for %s values in one project."
-msgstr[1] "This option is used for %s values in %s projects."
+msgstr[0] ""
+"Cette option est utilisé comme %s valeurs dans un projet."
+msgstr[1] ""
+"Cette option est utilisé comme %s valeurs dans %s projets."
#: management/assets/js/components/info/OptionInfo.js:26
#: management/static/management/js/management.js:2
@@ -1558,7 +1598,7 @@ msgstr[1] "This option is used for %s values in %s projects."
msgid "This option is used in one condition."
msgid_plural "This option is used in %s conditions."
msgstr[0] "Cette option est utilisée dans une condition."
-msgstr[1] "Cette option est utilisée dans les %s conditions."
+msgstr[1] "Cette option est utilisée dans %s conditions."
#: management/assets/js/components/info/OptionSetInfo.js:21
#: management/static/management/js/management.js:2
@@ -1566,7 +1606,7 @@ msgstr[1] "Cette option est utilisée dans les %s conditions."
msgid "This option set is used in one question."
msgid_plural "This option set is used in %s questions."
msgstr[0] "Ce jeu d'options est utilisé dans une question."
-msgstr[1] "Ce jeu d'options est utilisé dans les %s questions."
+msgstr[1] "Ce jeu d'options est utilisé dans %s questions."
#: management/assets/js/components/info/PageInfo.js:21
#: management/static/management/js/management.js:2
@@ -1574,7 +1614,7 @@ msgstr[1] "Ce jeu d'options est utilisé dans les %s questions."
msgid "This page is used in one section."
msgid_plural "This page is used in %s sections."
msgstr[0] "Cette page est utilisée dans une section."
-msgstr[1] "Cette page est utilisée dans les %s sections."
+msgstr[1] "Cette page est utilisée dans %s sections."
#: management/assets/js/components/info/QuestionInfo.js:24
#: management/static/management/js/management.js:2
@@ -1609,7 +1649,7 @@ msgstr[1] "Cet ensemble de questions est utilisé dans %s pages."
msgid "This section is used in one catalog."
msgid_plural "This section is used in %s catalogs."
msgstr[0] "Cette section est utilisée dans un catalogue."
-msgstr[1] "Cette section est utilisée dans les catalogues %s."
+msgstr[1] "Cette section est utilisée dans %s catalogues."
#: management/assets/js/components/info/TaskInfo.js:9
#: management/static/management/js/management.js:2
@@ -1656,6 +1696,7 @@ msgstr "Vous êtes sur le point de supprimer définitivement l'attribut :"
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:21
#: projects/assets/js/interview/components/main/questionset/QuestionSetRemoveSet.js:29
+#: projects/static/projects/js/interview.js:2
msgid "This action cannot be undone!"
msgstr "Cette action ne peut pas être annulée!"
@@ -1699,12 +1740,13 @@ msgstr "Vous êtes sur le point de supprimer définitivement l'option :"
#: management/assets/js/components/modals/DeleteOptionSetModal.js:7
#: management/static/management/js/management.js:2
msgid "Delete option set"
-msgstr "Supprimer le jeu d'options"
+msgstr "Supprimer l'ensemble d'options"
#: management/assets/js/components/modals/DeleteOptionSetModal.js:9
#: management/static/management/js/management.js:2
msgid "You are about to permanently delete the option set:"
-msgstr "Vous êtes sur le point de supprimer définitivement le jeu d'options :"
+msgstr ""
+"Vous êtes sur le point de supprimer définitivement l'ensemble d'options :"
#: management/assets/js/components/modals/DeletePageModal.js:7
#: management/static/management/js/management.js:2
@@ -1735,7 +1777,7 @@ msgstr "Supprimer l'ensemble de questions"
#: management/static/management/js/management.js:2
msgid "You are about to permanently delete the question set:"
msgstr ""
-"Vous êtes sur le point de supprimer définitivement la série de questions :"
+"Vous êtes sur le point de supprimer définitivement l'ensemble de questions :"
#: management/assets/js/components/modals/DeleteSectionModal.js:7
#: management/static/management/js/management.js:2
@@ -1786,8 +1828,10 @@ msgstr "Exporter tous les éléments visibles."
#: management/assets/js/components/sidebar/ElementsSidebar.js:130
#: management/static/management/js/management.js:2
+#, fuzzy
+#| msgid "Import from file"
msgid "Import an RDMO XML file."
-msgstr "Importer un fichier XML RDMO."
+msgstr "Importer depuis un fichier"
#: management/assets/js/components/sidebar/ImportSidebar.js:30
#: management/static/management/js/management.js:2
@@ -1805,7 +1849,7 @@ msgstr "Importer les éléments"
msgid "Import one element"
msgid_plural "Import %s elements"
msgstr[0] "Importer un élément"
-msgstr[1] "Importer %s éléments"
+msgstr[1] "Importer %s des éléments"
#: management/assets/js/components/sidebar/ImportSidebar.js:52
#: management/static/management/js/management.js:2
@@ -1820,7 +1864,7 @@ msgstr "Tout sélectionner"
#: management/assets/js/components/sidebar/ImportSidebar.js:63
#: management/static/management/js/management.js:2
msgid "Select changed"
-msgstr "Sélection modifiée"
+msgstr "Sélectionner les modifications"
#: management/assets/js/components/sidebar/ImportSidebar.js:69
#: management/static/management/js/management.js:2
@@ -1850,7 +1894,7 @@ msgstr "Cacher tout"
#: management/assets/js/components/sidebar/ImportSidebar.js:103
#: management/static/management/js/management.js:2
msgid "Hide changes"
-msgstr "Masquer les changements"
+msgstr "Cacher les changements"
#: management/assets/js/components/sidebar/ImportSidebar.js:125
#: management/assets/js/components/sidebar/ImportSidebar.js:126
@@ -1859,131 +1903,164 @@ msgid "Set URI prefix for all elements"
msgstr "Définir le préfixe URI pour tous les éléments"
#: projects/assets/js/interview/components/main/Breadcrumb.js:17
+#: projects/static/projects/js/interview.js:2
+#, fuzzy
+#| msgid "My projects"
msgid "My Projects"
msgstr "Mes projets"
#: projects/assets/js/interview/components/main/Contact.js:26
#: projects/assets/js/interview/components/main/question/QuestionContact.js:7
+#: projects/static/projects/js/interview.js:2
msgid "Contact support"
msgstr "Contacter le support"
#: projects/assets/js/interview/components/main/Contact.js:27
+#: projects/static/projects/js/interview.js:2
msgid "Send message"
msgstr "Envoyer un message"
#: projects/assets/js/interview/components/main/Done.js:20
+#: projects/static/projects/js/interview.js:2
msgid "View answers"
msgstr "Voir les réponses"
#: projects/assets/js/interview/components/main/Done.js:24
#: projects/assets/js/interview/components/main/Errors.js:33
+#: projects/static/projects/js/interview.js:2
msgid "Back to project overview"
msgstr "Retour à l'aperçu du projet"
#: projects/assets/js/interview/components/main/Errors.js:30
-#: projects/assets/js/interview/components/sidebar/Overview.js:58
+#: projects/assets/js/interview/components/sidebar/Overview.js:63
+#: projects/static/projects/js/interview.js:2
msgid "Reload page"
msgstr "Recharger la page"
#: projects/assets/js/interview/components/main/Search.js:67
+#: projects/static/projects/js/interview.js:2
msgid "Search for project or snapshot title, or answer text ..."
msgstr ""
-"Recherchez le titre d'un projet ou d'un instantané, ou répondez au texte ..."
+"Recherchez le titre d'un projet ou d'un snapshot, ou répondez au texte ..."
#: projects/assets/js/interview/components/main/Search.js:69
+#: projects/static/projects/js/interview.js:2
msgid "No answers match your search."
msgstr "Aucune réponse ne correspond à votre recherche."
#: projects/assets/js/interview/components/main/Search.js:71
#: projects/assets/js/interview/components/main/Search.js:115
#: projects/assets/js/interview/components/main/widget/SelectInput.js:94
+#: projects/static/projects/js/interview.js:2
msgid "Loading ..."
msgstr "Chargement ..."
#: projects/assets/js/interview/components/main/Search.js:82
-#: projects/assets/js/interview/components/sidebar/Overview.js:27
+#: projects/assets/js/interview/components/sidebar/Overview.js:32
+#: projects/static/projects/js/interview.js:2
msgid "Project"
msgstr "Projet"
#: projects/assets/js/interview/components/main/Search.js:86
+#: projects/static/projects/js/interview.js:2
msgid "Snapshot"
-msgstr "Instantané"
+msgstr "Snapshot"
#: projects/assets/js/interview/components/main/Search.js:92
#: projects/assets/js/interview/components/main/Search.js:97
+#: projects/static/projects/js/interview.js:2
msgid "Tab"
msgstr "Onglet"
#: projects/assets/js/interview/components/main/Search.js:111
+#: projects/static/projects/js/interview.js:2
msgid "Restrict the search to a particular project ..."
msgstr "Limiter la recherche à un projet particulier ..."
#: projects/assets/js/interview/components/main/Search.js:113
+#: projects/static/projects/js/interview.js:2
msgid "No projects matching your search."
msgstr "Aucun projet ne correspond à votre recherche."
#: projects/assets/js/interview/components/main/Search.js:141
+#: projects/static/projects/js/interview.js:2
msgid "Include snapshots in the search"
-msgstr "Inclure les instantanés dans la recherche"
+msgstr "Inclure les snapshots dans la recherche"
#: projects/assets/js/interview/components/main/page/PageButtons.js:18
#: projects/assets/js/interview/components/sidebar/Buttons.js:15
+#: projects/static/projects/js/interview.js:2
msgid "Proceed"
-msgstr "Procéder"
+msgstr "Continuer"
#: projects/assets/js/interview/components/main/page/PageButtons.js:23
+#: projects/static/projects/js/interview.js:2
msgid "Complete questionnaire"
-msgstr "Complete questionnaire"
+msgstr "Finaliser questionnaire"
#: projects/assets/js/interview/components/main/page/PageHead.js:33
#: projects/assets/js/interview/components/main/page/PageHead.js:175
+#: projects/static/projects/js/interview.js:2
msgid "Copy tab"
-msgstr "Onglet Copier"
+msgstr "Copier l'onglet"
#: projects/assets/js/interview/components/main/page/PageHead.js:34
+#: projects/static/projects/js/interview.js:2
msgid "Add tab"
msgstr "Ajouter un onglet"
#: projects/assets/js/interview/components/main/page/PageHead.js:35
+#: projects/static/projects/js/interview.js:2
msgid "Edit tab"
-msgstr "Onglet Modifier"
+msgstr "Modifier l'onglet"
#: projects/assets/js/interview/components/main/page/PageHead.js:36
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:87
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:80
+#: projects/static/projects/js/interview.js:2
msgid "Reuse answers"
msgstr "Réutiliser les réponses"
#: projects/assets/js/interview/components/main/page/PageHead.js:37
+#: projects/static/projects/js/interview.js:2
msgid "Remove tab"
msgstr "Supprimer l'onglet"
#: projects/assets/js/interview/components/main/page/PageHead.js:165
+#: projects/static/projects/js/interview.js:2
msgid "Create tab"
-msgstr "Onglet Créer"
+msgstr "Créer un onglet"
#: projects/assets/js/interview/components/main/page/PageHead.js:186
+#: projects/static/projects/js/interview.js:2
msgid "Update tab"
-msgstr "Onglet de mise à jour"
+msgstr "Mettre à jour l'onglet"
#: projects/assets/js/interview/components/main/page/PageHead.js:187
+#: projects/static/projects/js/interview.js:2
msgid "Update"
msgstr "Mise à jour"
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:8
+#: projects/static/projects/js/interview.js:2
msgid "Delete tab"
msgstr "Supprimer l'onglet"
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:14
+#: projects/static/projects/js/interview.js:2
#, javascript-format
msgid "You are about to permanently delete the tab named: %s"
-msgstr "You are about to permanently delete the tab named: %s"
+msgstr ""
+"Vous êtes sur le point de supprimer définitivement l'onglet suivant : "
+"%s"
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:17
+#: projects/static/projects/js/interview.js:2
msgid "You are about to permanently delete this tab."
msgstr "Vous êtes sur le point de supprimer définitivement cet onglet."
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:20
+#: projects/static/projects/js/interview.js:2
msgid ""
"This includes all given answers for this tab on all pages, not just this one."
msgstr ""
@@ -1991,39 +2068,52 @@ msgstr ""
"pages, et pas seulement celle-ci."
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:59
+#: projects/static/projects/js/interview.js:2
msgid "You can add a new tab using the create button."
-msgstr "Vous pouvez ajouter un nouvel onglet à l'aide du bouton « Créer »."
+msgstr ""
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:65
#: projects/assets/js/projects/utils/constants.js:4
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Name"
msgstr "Nom"
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:81
+#: projects/static/projects/js/interview.js:2
msgid "Please give the tab a meaningful name."
-msgstr "Veuillez donner un nom significatif à l'onglet."
+msgstr ""
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:93
+#: projects/static/projects/js/interview.js:2
+#, fuzzy
+#| msgid ""
+#| "You can reuse an answer from a similar question in any project you have "
+#| "access to."
msgid ""
"You can populate this tab with answers from a similar tab in any project you "
"are allowed to access."
msgstr ""
-"Vous pouvez remplir cet onglet avec des réponses provenant d'un onglet "
-"similaire dans n'importe quel projet auquel vous êtes autorisé à accéder."
+"Vous pouvez réutiliser une réponse à une question similaire dans n'importe "
+"quel projet auquel vous avez accès."
#: projects/assets/js/interview/components/main/page/PageHeadReuseModal.js:43
+#: projects/static/projects/js/interview.js:2
msgid "Reuse tab"
-msgstr "Onglet Réutilisation"
+msgstr "Réutiliser l'onglet"
#: projects/assets/js/interview/components/main/page/PageHeadReuseModal.js:43
+#: projects/static/projects/js/interview.js:2
msgid "Reuse"
-msgstr "Réutilisation"
+msgstr "Réutiliser"
#: projects/assets/js/interview/components/main/page/PageHeadReuseModal.js:48
+#: projects/static/projects/js/interview.js:2
msgid "Answers"
msgstr "Réponses"
#: projects/assets/js/interview/components/main/page/PageHeadReuseModal.js:54
+#: projects/static/projects/js/interview.js:2
msgid ""
"You can populate this tab with answers from a similar tab in any project you "
"have access to. This only affects questions that don't already have an "
@@ -2034,6 +2124,7 @@ msgstr ""
"que les questions qui n'ont pas encore de réponse."
#: projects/assets/js/interview/components/main/question/QuestionAddValue.js:21
+#: projects/static/projects/js/interview.js:2
msgid "Add answer"
msgstr "Ajouter une réponse"
@@ -2041,23 +2132,28 @@ msgstr "Ajouter une réponse"
#: projects/assets/js/interview/components/main/question/QuestionCopyValue.js:14
#: projects/assets/js/interview/components/main/question/QuestionCopyValues.js:10
#: projects/assets/js/interview/components/main/question/QuestionCopyValues.js:11
+#: projects/static/projects/js/interview.js:2
msgid "Apply this answer to all tabs where this question is empty"
msgstr "Appliquer cette réponse à tous les onglets où cette question est vide"
#: projects/assets/js/interview/components/main/question/QuestionCopyValues.js:16
+#: projects/static/projects/js/interview.js:2
msgid "Apply to all"
-msgstr "Postuler à tous"
+msgstr "Appliquer à tous"
#: projects/assets/js/interview/components/main/question/QuestionDefault.js:8
+#: projects/static/projects/js/interview.js:2
msgid "This is a default answer that can be customized."
msgstr "Il s'agit d'une réponse par défaut qui peut être personnalisée."
#: projects/assets/js/interview/components/main/question/QuestionEraseValue.js:11
#: projects/assets/js/interview/components/main/question/QuestionEraseValues.js:11
+#: projects/static/projects/js/interview.js:2
msgid "Erase input"
msgstr "Effacer l'entrée"
#: projects/assets/js/interview/components/main/question/QuestionError.js:8
+#: projects/static/projects/js/interview.js:2
msgid ""
"This field could not be saved, since somebody else did so while you were "
"editing. You will need to reload the page to make changes, but your input "
@@ -2068,10 +2164,12 @@ msgstr ""
"apporter des modifications, mais vos données seront écrasées."
#: projects/assets/js/interview/components/main/question/QuestionError.js:11
+#: projects/static/projects/js/interview.js:2
msgid "You reached the file quota for this project."
msgstr "Vous avez atteint le quota de fichiers pour ce projet."
#: projects/assets/js/interview/components/main/question/QuestionError.js:17
+#: projects/static/projects/js/interview.js:2
msgid ""
"This field could not be saved, since somebody else removed it while you were "
"editing. You will need to reload the page to proceed, but your input will be "
@@ -2082,39 +2180,47 @@ msgstr ""
"mais vos données seront perdues."
#: projects/assets/js/interview/components/main/question/QuestionError.js:23
+#: projects/static/projects/js/interview.js:2
msgid "An unknown error occurred, please contact support"
msgstr "Une erreur inconnue s'est produite, veuillez contacter le support"
#: projects/assets/js/interview/components/main/question/QuestionOptional.js:7
+#: projects/static/projects/js/interview.js:2
msgid "Optional"
-msgstr "En option"
+msgstr "Facultatif"
#: projects/assets/js/interview/components/main/question/QuestionRemoveValue.js:7
+#: projects/static/projects/js/interview.js:2
msgid "Remove answer"
msgstr "Supprimer la réponse"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:57
+#: projects/static/projects/js/interview.js:2
msgid "Append"
msgstr "Ajouter"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:62
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:85
+#: projects/static/projects/js/interview.js:2
msgid "Replace"
msgstr "Remplacer"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:68
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:72
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:85
+#: projects/static/projects/js/interview.js:2
msgid "Reuse answer"
-msgstr "Réponse à la question de la réutilisation"
+msgstr "Réutiliser la réponse"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:76
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:90
+#: projects/static/projects/js/interview.js:2
msgid "Answer"
msgstr "Réponse"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:88
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:103
+#: projects/static/projects/js/interview.js:2
msgid ""
"You can reuse an answer from a similar question in any project you have "
"access to."
@@ -2123,112 +2229,140 @@ msgstr ""
"quel projet auquel vous avez accès."
#: projects/assets/js/interview/components/main/questionset/QuestionSetCopySet.js:31
+#: projects/static/projects/js/interview.js:2
msgid "Copy block"
-msgstr "Bloc de copies"
+msgstr "Copier le bloc"
#: projects/assets/js/interview/components/main/questionset/QuestionSetRemoveSet.js:25
+#: projects/static/projects/js/interview.js:2
msgid "Remove block"
msgstr "Retirer le bloc"
#: projects/assets/js/interview/components/main/questionset/QuestionSetRemoveSet.js:28
+#: projects/static/projects/js/interview.js:2
msgid "You are about to permanently remove this block."
msgstr "Vous êtes sur le point de supprimer définitivement ce bloc."
#: projects/assets/js/interview/components/main/widget/FileInput.js:29
+#: projects/static/projects/js/interview.js:2
msgid "Current file:"
-msgstr "Dossier en cours :"
+msgstr "Fichier actuel :"
#: projects/assets/js/interview/components/main/widget/FileInput.js:35
+#: projects/static/projects/js/interview.js:2
msgid "No file stored."
msgstr "Aucun fichier n'est stocké."
#: projects/assets/js/interview/components/main/widget/FileInput.js:48
+#: projects/static/projects/js/interview.js:2
msgid "Drop the files here ..."
msgstr "Déposez les fichiers ici ..."
#: projects/assets/js/interview/components/main/widget/FileInput.js:50
+#: projects/static/projects/js/interview.js:2
msgid "Drag 'n drop some files here, or click to select files."
msgstr ""
"Glissez-déposez des fichiers ici, ou cliquez pour sélectionner des fichiers."
-#: projects/assets/js/interview/components/main/widget/RadioInput.js:57
+#: projects/assets/js/interview/components/main/widget/RadioInput.js:68
+#: projects/static/projects/js/interview.js:2
msgid "No options are available."
msgstr "Aucune option n'est disponible."
#: projects/assets/js/interview/components/main/widget/SelectInput.js:90
+#: projects/static/projects/js/interview.js:2
msgid "Select ..."
msgstr "Sélectionner ..."
#: projects/assets/js/interview/components/main/widget/SelectInput.js:93
+#: projects/static/projects/js/interview.js:2
msgid "No options found"
msgstr "Aucune option trouvée"
#: projects/assets/js/interview/components/main/widget/YesNoInput.js:40
+#: projects/static/projects/js/interview.js:2
msgid "Yes"
msgstr "Oui"
#: projects/assets/js/interview/components/main/widget/YesNoInput.js:52
+#: projects/static/projects/js/interview.js:2
msgid "No"
msgstr "Non"
-#: projects/assets/js/interview/components/main/widget/common/AdditionalTextInput.js:22
-#: projects/assets/js/interview/components/main/widget/common/AdditionalTextareaInput.js:21
+#: projects/assets/js/interview/components/main/widget/common/AdditionalTextInput.js:11
+#: projects/assets/js/interview/components/main/widget/common/AdditionalTextareaInput.js:11
+#: projects/static/projects/js/interview.js:2
msgid "Additional input"
msgstr "Données supplémentaires"
#: projects/assets/js/interview/components/main/widget/common/Unit.js:21
+#: projects/static/projects/js/interview.js:2
msgid "The unit for this answer."
-msgstr "L'unité de cette réponse."
+msgstr "L'unité pour cette réponse."
#: projects/assets/js/interview/components/sidebar/Navigation.js:12
+#: projects/static/projects/js/interview.js:2
msgid "Navigation"
msgstr "Navigation"
#: projects/assets/js/interview/components/sidebar/NavigationLink.js:6
+#: projects/static/projects/js/interview.js:2
#, javascript-format
msgid "(%s of %s)"
msgstr "(%s de %s)"
#: projects/assets/js/interview/components/sidebar/NavigationLink.js:18
+#: projects/static/projects/js/interview.js:2
msgid "Complete"
msgstr "Compléter"
-#: projects/assets/js/interview/components/sidebar/Overview.js:21
+#: projects/assets/js/interview/components/sidebar/Overview.js:26
+#: projects/static/projects/js/interview.js:2
msgid "Overview"
-msgstr "Vue d'ensemble"
+msgstr "Aperçu"
-#: projects/assets/js/interview/components/sidebar/Overview.js:39
+#: projects/assets/js/interview/components/sidebar/Overview.js:44
+#: projects/static/projects/js/interview.js:2
msgid "Hide management panels"
-msgstr "Masquer les panneaux de gestion"
+msgstr "Cacher les panneaux de gestion"
-#: projects/assets/js/interview/components/sidebar/Overview.js:39
+#: projects/assets/js/interview/components/sidebar/Overview.js:44
+#: projects/static/projects/js/interview.js:2
msgid "Show management panels"
-msgstr "Panneaux de gestion des spectacles"
+msgstr "Montrer les panneaux de gestion"
-#: projects/assets/js/interview/components/sidebar/Overview.js:49
+#: projects/assets/js/interview/components/sidebar/Overview.js:54
+#: projects/static/projects/js/interview.js:2
msgid "You don't have write access to this project."
-msgstr "Vous n'avez pas d'accès en écriture à ce projet."
+msgstr "Vous n'avez pas d'accès en écriture sur ce projet."
-#: projects/assets/js/interview/components/sidebar/Overview.js:50
+#: projects/assets/js/interview/components/sidebar/Overview.js:55
+#: projects/static/projects/js/interview.js:2
msgid "read only"
msgstr "en lecture seule"
-#: projects/assets/js/interview/components/sidebar/Overview.js:61
+#: projects/assets/js/interview/components/sidebar/Overview.js:66
+#: projects/static/projects/js/interview.js:2
msgid "Back to my projects"
msgstr "Retour à mes projets"
#: projects/assets/js/interview/components/sidebar/Progress.js:10
#: projects/assets/js/projects/components/main/Projects.js:39
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
#, javascript-format
msgid "%s of %s"
msgstr "%s de %s"
#: projects/assets/js/interview/components/sidebar/Progress.js:14
#: projects/assets/js/projects/utils/constants.js:7
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Progress"
-msgstr "Progrès"
+msgstr "Avancement"
#: projects/assets/js/interview/constants/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid ""
"These links take you directly to the elements in the management interface. "
"This part of the page is visible to you, because you are either an Admin, "
@@ -2242,185 +2376,207 @@ msgstr ""
#: projects/assets/js/projects/components/helper/PendingInvitations.js:22
#: projects/assets/js/projects/utils/translations.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Accept"
msgstr "Accepter"
#: projects/assets/js/projects/components/helper/PendingInvitations.js:26
#: projects/assets/js/projects/utils/translations.js:4
+#: projects/static/projects/js/projects.js:2
msgid "Decline"
-msgstr "Déclin"
+msgstr "Refuser"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:82
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:81
+#: projects/static/projects/js/projects.js:2
+#, fuzzy
+#| msgid "Filter catalogs"
msgid "Filter by catalog"
-msgstr "Filtrer par catalogue"
+msgstr "Filtrer les catalogues"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:88
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:87
+#: projects/static/projects/js/projects.js:2
+#, fuzzy
+#| msgid "Delete catalog"
msgid "Select catalog"
-msgstr "Sélectionner un catalogue"
+msgstr "Supprimer le catalogue"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:95
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:94
+#: projects/static/projects/js/projects.js:2
msgid "Filter by created date"
-msgstr "Filtrer par date de création"
+msgstr ""
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:107
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:141
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:106
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:140
+#: projects/static/projects/js/projects.js:2
msgid "Select start date"
-msgstr "Sélectionner la date de début"
+msgstr ""
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:120
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:154
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:119
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:153
+#: projects/static/projects/js/projects.js:2
+#, fuzzy
+#| msgid "Select all"
msgid "Select end date"
-msgstr "Sélectionner la date de fin"
+msgstr "Tout sélectionner"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:129
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:128
+#: projects/static/projects/js/projects.js:2
msgid "Filter by last changed date"
-msgstr "Filtrer par date de dernière modification"
+msgstr ""
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:168
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:167
#: projects/assets/js/projects/utils/translations.js:14
+#: projects/static/projects/js/projects.js:2
msgid "Reset all filters"
msgstr "Réinitialiser tous les filtres"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:172
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:171
#: projects/assets/js/projects/utils/translations.js:6
+#: projects/static/projects/js/projects.js:2
msgid "Hide filters"
-msgstr "Masquer les filtres"
+msgstr "Cacher les filtres"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:172
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:171
#: projects/assets/js/projects/utils/translations.js:17
+#: projects/static/projects/js/projects.js:2
msgid "Show filters"
msgstr "Afficher les filtres"
#: projects/assets/js/projects/components/helper/ProjectImport.js:11
+#: projects/static/projects/js/projects.js:2
msgid "Import directly"
msgstr "Importer directement"
#: projects/assets/js/projects/components/helper/ProjectImport.js:27
#: projects/assets/js/projects/utils/translations.js:8
+#: projects/static/projects/js/projects.js:2
msgid "Import from file"
-msgstr "Importation d'un fichier"
+msgstr "Importer depuis un fichier"
#: projects/assets/js/projects/components/main/Projects.js:25
#: projects/assets/js/projects/components/main/Projects.js:204
#: projects/assets/js/projects/utils/translations.js:13
+#: projects/static/projects/js/projects.js:2
msgid "Pending invitations"
msgstr "Invitations en attente"
#: projects/assets/js/projects/components/main/Projects.js:31
#: projects/assets/js/projects/components/main/Projects.js:216
#: projects/assets/js/projects/utils/translations.js:7
+#: projects/static/projects/js/projects.js:2
msgid "Import project"
msgstr "Importer un projet"
#: projects/assets/js/projects/components/main/Projects.js:36
+#: projects/static/projects/js/projects.js:2
#, javascript-format
msgid "%s of %s projects are displayed"
msgstr "%s de %s projets sont affichés"
#: projects/assets/js/projects/components/main/Projects.js:50
#: projects/assets/js/projects/utils/translations.js:18
+#: projects/static/projects/js/projects.js:2
msgid "View all projects"
msgstr "Voir tous les projets"
#: projects/assets/js/projects/components/main/Projects.js:50
#: projects/assets/js/projects/utils/translations.js:19
+#: projects/static/projects/js/projects.js:2
msgid "View my projects"
msgstr "Voir mes projets"
#: projects/assets/js/projects/components/main/Projects.js:51
#: projects/assets/js/projects/utils/translations.js:11
+#: projects/static/projects/js/projects.js:2
msgid "My projects"
msgstr "Mes projets"
#: projects/assets/js/projects/components/main/Projects.js:51
#: projects/assets/js/projects/utils/translations.js:3
+#: projects/static/projects/js/projects.js:2
msgid "All projects"
msgstr "Tous les projets"
#: projects/assets/js/projects/components/main/Projects.js:55
+#: projects/static/projects/js/projects.js:2
msgid "Copy project"
msgstr "Copier le projet"
#: projects/assets/js/projects/components/main/Projects.js:56
+#: projects/static/projects/js/projects.js:2
msgid "Update project"
msgstr "Actualiser le projet"
#: projects/assets/js/projects/components/main/Projects.js:57
+#: projects/static/projects/js/projects.js:2
msgid "Delete project"
msgstr "Supprimer le projet"
#: projects/assets/js/projects/components/main/Projects.js:107
+#: projects/static/projects/js/projects.js:2
msgid "Scroll to top"
-msgstr "Défiler vers le haut"
+msgstr ""
#: projects/assets/js/projects/components/main/Projects.js:113
#: projects/assets/js/projects/utils/translations.js:10
+#: projects/static/projects/js/projects.js:2
msgid "Load more"
-msgstr "En savoir plus"
+msgstr "Voir plus"
#: projects/assets/js/projects/components/main/Projects.js:219
#: projects/assets/js/projects/utils/translations.js:12
+#: projects/static/projects/js/projects.js:2
msgid "New project"
msgstr "Nouveau projet"
#: projects/assets/js/projects/components/main/Projects.js:232
#: projects/assets/js/projects/utils/translations.js:16
+#: projects/static/projects/js/projects.js:2
msgid "Search projects"
msgstr "Recherche de projets"
#: projects/assets/js/projects/utils/constants.js:5
+#: projects/static/projects/js/projects.js:2
msgid "Role"
msgstr "Rôle"
#: projects/assets/js/projects/utils/constants.js:6
#: projects/assets/js/projects/utils/constants.js:17
+#: projects/static/projects/js/projects.js:2
msgid "Owner"
msgstr "Propriétaire"
#: projects/assets/js/projects/utils/constants.js:9
+#: projects/static/projects/js/projects.js:2
msgid "Last changed"
msgstr "Dernière modification"
#: projects/assets/js/projects/utils/constants.js:10
+#: projects/static/projects/js/projects.js:2
msgid "Actions"
msgstr "Actions"
#: projects/assets/js/projects/utils/constants.js:14
+#: projects/static/projects/js/projects.js:2
msgid "Author"
msgstr "Auteur"
#: projects/assets/js/projects/utils/constants.js:15
+#: projects/static/projects/js/projects.js:2
msgid "Guest"
msgstr "Invité"
#: projects/assets/js/projects/utils/constants.js:16
+#: projects/static/projects/js/projects.js:2
msgid "Manager"
msgstr "Gestionnaire"
#: projects/assets/js/projects/utils/translations.js:5
+#: projects/static/projects/js/projects.js:2
msgid "Filter"
-msgstr "Filtre"
+msgstr "Filtrer"
#: projects/assets/js/projects/utils/translations.js:9
+#: projects/static/projects/js/projects.js:2
msgid "Load all"
msgstr "Charger tout"
-
-#~ msgid "attribute"
-#~ msgstr "attribut"
-
-#, javascript-format
-#~ msgid "Add %s"
-#~ msgstr "Ajouter %s"
-
-#, javascript-format
-#~ msgid "Create new %s"
-#~ msgstr "Créer un nouveau %s"
-
-#~ msgid "catalog"
-#~ msgstr "catalogue"
-
-#~ msgid "task"
-#~ msgstr "tâche"
-
-#~ msgid "created"
-#~ msgstr "créé"
diff --git a/rdmo/locale/it/LC_MESSAGES/django.mo b/rdmo/locale/it/LC_MESSAGES/django.mo
index 5fcbb9e340..1dd6277e05 100644
Binary files a/rdmo/locale/it/LC_MESSAGES/django.mo and b/rdmo/locale/it/LC_MESSAGES/django.mo differ
diff --git a/rdmo/locale/it/LC_MESSAGES/django.po b/rdmo/locale/it/LC_MESSAGES/django.po
index 5adbf94a23..8c3ecb8e0c 100644
--- a/rdmo/locale/it/LC_MESSAGES/django.po
+++ b/rdmo/locale/it/LC_MESSAGES/django.po
@@ -2,16 +2,16 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-07-04 11:19+0000\n"
+"POT-Creation-Date: 2025-12-12 13:02+0100\n"
"PO-Revision-Date: \n"
-"Last-Translator: Dario Pilori \n"
+"Last-Translator: Giacomo Lanza \n"
"Language-Team: \n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.6\n"
+"X-Generator: Poedit 3.8\n"
#: accounts/apps.py:7
msgid "Accounts"
@@ -27,7 +27,7 @@ msgstr "Cognome"
#: accounts/forms.py:81 core/constants.py:22 projects/models/invite.py:28
msgid "E-mail"
-msgstr "E-mail"
+msgstr "Posta elettronica"
#: accounts/forms.py:85
msgid "Password"
@@ -45,194 +45,194 @@ msgstr ""
msgid "Consent could not be saved. Please try again."
msgstr "Non è stato possibile salvare il consenso. Riprovare."
-#: accounts/models.py:27 options/models.py:181 questions/models/question.py:97
+#: accounts/models.py:28 options/models.py:181 questions/models/question.py:97
#: tasks/models.py:96
msgid "Text (primary)"
-msgstr "Testo (lingua principale)"
+msgstr "Testo (prima lingua)"
-#: accounts/models.py:28
+#: accounts/models.py:29
msgid "The text for this additional field (in the primary language)."
-msgstr "Il testo di questo campo aggiuntivo (nella lingua principale)."
+msgstr "Il testo di questo campo aggiuntivo (nella prima lingua)."
-#: accounts/models.py:32 options/models.py:186 questions/models/question.py:102
+#: accounts/models.py:33 options/models.py:186 questions/models/question.py:102
#: tasks/models.py:101
msgid "Text (secondary)"
msgstr "Testo (seconda lingua)"
-#: accounts/models.py:33
+#: accounts/models.py:34
msgid "The text for this additional field (in the secondary language)."
-msgstr "Il testo di questo campo aggiuntivo (nella lingua secondaria)."
+msgstr "Il testo di questo campo aggiuntivo (nella seconda lingua)."
-#: accounts/models.py:37 options/models.py:191 questions/models/question.py:107
+#: accounts/models.py:38 options/models.py:191 questions/models/question.py:107
#: tasks/models.py:106
msgid "Text (tertiary)"
msgstr "Testo (terza lingua)"
-#: accounts/models.py:38
+#: accounts/models.py:39
msgid "The text for this additional field (in the tertiary language)."
-msgstr "Il testo di questo campo aggiuntivo (nella lingua secondaria)."
+msgstr "Il testo di questo campo aggiuntivo (nella terza lingua)."
-#: accounts/models.py:42 options/models.py:196 questions/models/question.py:112
+#: accounts/models.py:43 options/models.py:196 questions/models/question.py:112
#: tasks/models.py:111
msgid "Text (quaternary)"
msgstr "Testo (quarta lingua)"
-#: accounts/models.py:43
+#: accounts/models.py:44
msgid "The text for this additional field (in the quaternary language)."
-msgstr "Il testo di questo campo aggiuntivo (nella lingua quaternaria)."
+msgstr "Il testo di questo campo aggiuntivo (nella quarta lingua)."
-#: accounts/models.py:47 options/models.py:201 questions/models/question.py:117
+#: accounts/models.py:48 options/models.py:201 questions/models/question.py:117
#: tasks/models.py:116
msgid "Text (quinary)"
msgstr "Testo (quinta lingua)"
-#: accounts/models.py:48
+#: accounts/models.py:49
msgid "The text for this additional field (in the quinary language)."
-msgstr "Il testo di questo campo aggiuntivo (nel linguaggio quinario)."
+msgstr "Il testo di questo campo aggiuntivo (nella quinta lingua)."
-#: accounts/models.py:52 options/models.py:206 questions/models/catalog.py:111
+#: accounts/models.py:53 options/models.py:206 questions/models/catalog.py:112
#: questions/models/page.py:136 questions/models/question.py:72
#: questions/models/questionset.py:106 views/models.py:103
msgid "Help (primary)"
-msgstr "Aiuto (lingua principale)"
+msgstr "Aiuto (prima lingua)"
-#: accounts/models.py:53
+#: accounts/models.py:54
msgid ""
"The help text to be displayed next to the input element (in the primary "
"language)."
msgstr ""
-"Il testo di aiuto da visualizzare accanto all'elemento di input (nella "
-"lingua principale)."
+"Il testo di aiuto da visualizzare accanto all'elemento di input (nella prima "
+"lingua)."
-#: accounts/models.py:57 options/models.py:211 questions/models/catalog.py:116
+#: accounts/models.py:58 options/models.py:211 questions/models/catalog.py:117
#: questions/models/page.py:141 questions/models/question.py:77
#: questions/models/questionset.py:111 views/models.py:108
msgid "Help (secondary)"
msgstr "Aiuto (seconda lingua)"
-#: accounts/models.py:58
+#: accounts/models.py:59
msgid ""
"The help text to be displayed next to the input element (in the secondary "
"language)."
msgstr ""
"Il testo di aiuto da visualizzare accanto all'elemento di input (nella "
-"lingua secondaria)."
+"seconda lingua)."
-#: accounts/models.py:62 options/models.py:216 questions/models/catalog.py:121
+#: accounts/models.py:63 options/models.py:216 questions/models/catalog.py:122
#: questions/models/page.py:146 questions/models/question.py:82
#: questions/models/questionset.py:116 views/models.py:113
msgid "Help (tertiary)"
msgstr "Aiuto (terza lingua)"
-#: accounts/models.py:63
+#: accounts/models.py:64
msgid ""
"The help text to be displayed next to the input element (in the tertiary "
"language)."
msgstr ""
-"Il testo di aiuto da visualizzare accanto all'elemento di input (nella "
-"lingua terziaria)."
+"Il testo di aiuto da visualizzare accanto all'elemento di input (nella terza "
+"lingua)."
-#: accounts/models.py:67 options/models.py:221 questions/models/catalog.py:126
+#: accounts/models.py:68 options/models.py:221 questions/models/catalog.py:127
#: questions/models/page.py:151 questions/models/question.py:87
#: questions/models/questionset.py:121 views/models.py:118
msgid "Help (quaternary)"
msgstr "Aiuto (quarta lingua)"
-#: accounts/models.py:68
+#: accounts/models.py:69
msgid ""
"The help text to be displayed next to the input element (in the quaternary "
"language)."
msgstr ""
"Il testo di aiuto da visualizzare accanto all'elemento di input (nella "
-"lingua quaternaria)."
+"quarta lingua)."
-#: accounts/models.py:72 options/models.py:226 questions/models/catalog.py:131
+#: accounts/models.py:73 options/models.py:226 questions/models/catalog.py:132
#: questions/models/page.py:156 questions/models/question.py:92
#: questions/models/questionset.py:126 views/models.py:123
msgid "Help (quinary)"
msgstr "Aiuto (quinta lingua)"
-#: accounts/models.py:73
+#: accounts/models.py:74
msgid ""
"The help text to be displayed next to the input element (in the quinary "
"language)."
msgstr ""
-"Il testo di aiuto da visualizzare accanto all'elemento di input (in lingua "
-"quinaria)."
+"Il testo di aiuto da visualizzare accanto all'elemento di input (nella "
+"quinta lingua)."
-#: accounts/models.py:76
+#: accounts/models.py:77
msgid "Required"
msgstr "Richiesto"
-#: accounts/models.py:77
+#: accounts/models.py:78
msgid "Designates whether this additional field is required."
msgstr "Indica se questo campo aggiuntivo è richiesto."
-#: accounts/models.py:82
+#: accounts/models.py:83
msgid "Additional field"
msgstr "Campo aggiuntivo"
-#: accounts/models.py:83
+#: accounts/models.py:84
msgid "Additional fields"
msgstr "Campi addizionali"
-#: accounts/models.py:106
+#: accounts/models.py:107
msgid "Additional field value"
msgstr "Valore del campo aggiuntivo"
-#: accounts/models.py:107
+#: accounts/models.py:108
msgid "Additional field values"
msgstr "Valori del campo aggiuntivo"
-#: accounts/models.py:124
+#: accounts/models.py:125
msgid "Consent field value"
msgstr "Valore del campo di conferma"
-#: accounts/models.py:125
+#: accounts/models.py:126
msgid "Consent field values"
-msgstr "Valore dei campi di conferma"
+msgstr "Valori dei campi di conferma"
-#: accounts/models.py:181
+#: accounts/models.py:182
msgid "Member"
msgstr "Membro"
-#: accounts/models.py:182
+#: accounts/models.py:183
msgid "The sites for which this user is a member."
msgstr "I siti dei quali l'utente è membro."
-#: accounts/models.py:186 projects/constants.py:9
+#: accounts/models.py:187 projects/constants.py:9
#: projects/models/membership.py:13
msgid "Manager"
msgstr "Gestore"
-#: accounts/models.py:187
+#: accounts/models.py:188
msgid "The sites for which this user is manager."
msgstr "I siti dei quali l'utente è gestore."
-#: accounts/models.py:191
+#: accounts/models.py:192
msgid "Editor"
msgstr "Editore"
-#: accounts/models.py:192
+#: accounts/models.py:193
msgid "The sites for which this user is an editor."
msgstr "I siti per i quali questo utente è un editore."
-#: accounts/models.py:196
+#: accounts/models.py:197
msgid "Reviewer"
msgstr "Recensore"
-#: accounts/models.py:197
+#: accounts/models.py:198
msgid "The sites for which this user is a reviewer."
msgstr "I siti per i quali questo utente è un recensore."
-#: accounts/models.py:202 projects/models/invite.py:33
+#: accounts/models.py:203 projects/forms.py:278 projects/models/invite.py:33
#: projects/models/membership.py:30
#: projects/templates/projects/project_detail_invites.html:16
#: projects/templates/projects/project_detail_memberships.html:22
msgid "Role"
msgstr "Ruolo"
-#: accounts/models.py:203
+#: accounts/models.py:204
msgid "Roles"
msgstr "Ruoli"
@@ -259,11 +259,12 @@ msgstr ""
#: accounts/templates/account/email.html:6
msgid "E-mail Addresses"
-msgstr "Indirizzi e-mail"
+msgstr "Indirizzi di posta elettronica"
#: accounts/templates/account/email.html:10
msgid "The following e-mail addresses are associated with your account:"
-msgstr "I seguenti indirizzi e-mail sono associati al vostro account:"
+msgstr ""
+"I seguenti indirizzi di posta elettronica sono associati al vostro account:"
#: accounts/templates/account/email.html:26
msgid "Primary"
@@ -298,20 +299,22 @@ msgid ""
"You currently do not have any e-mail address set up. You should really add "
"an e-mail address so you can receive notifications, reset your password, etc."
msgstr ""
-"Al momento non è stato configurato alcun indirizzo e-mail. Un indirizzo e-"
-"mail è importante per ricevere notifiche, reimpostare la password, ..."
+"Al momento non è stato configurato alcun indirizzo di posta elettronica. Un "
+"indirizzo di posta elettronica è importante per ricevere notifiche, "
+"reimpostare la password, ..."
#: accounts/templates/account/email.html:56
msgid "Add E-mail Address"
-msgstr "Aggiungi un indirizzo e-mail"
+msgstr "Aggiungi un indirizzo di posta elettronica"
#: accounts/templates/account/email.html:63
msgid "Add E-mail"
-msgstr "Aggiungi e-mail"
+msgstr "Aggiungi posta elettronica"
#: accounts/templates/account/email.html:71
msgid "Do you really want to remove the selected e-mail address?"
-msgstr "Confermare la rimozione dell'indirizzo e-mail selezionato?"
+msgstr ""
+"Confermare la rimozione dell'indirizzo di posta elettronica selezionato?"
#: accounts/templates/account/email/password_reset_key_message.txt:1
#: projects/templates/projects/email/project_invite_message.txt:1
@@ -325,9 +328,10 @@ msgid ""
"%(site_domain)s will be reset. It can be safely ignored if you did not "
"request a password reset. Click the link below to reset your password."
msgstr ""
-"Hai ricevuto questa e-mail perché è stata richiesta la reimpostazione della "
-"password su %(site_domain)s. Se non hai richiesto la reimpostazione, ignora "
-"questo messaggio. Altrimenti, apri il link per reimpostare la password."
+"Hai ricevuto questo messaggio di posta elettronica perché è stata richiesta "
+"la reimpostazione della password su %(site_domain)s. Se non hai richiesto la "
+"reimpostazione, ignora questo messaggio. Altrimenti, apri il link per "
+"reimpostare la password."
#: accounts/templates/account/email/password_reset_key_message.txt:11
#, python-format
@@ -348,7 +352,7 @@ msgstr "Reimpostazione della password"
#: accounts/templates/account/email_confirm.html:7
msgid "Confirm E-mail Address"
-msgstr "Confermare indirizzo e-mail"
+msgstr "Confermare indirizzo di posta elettronica"
#: accounts/templates/account/email_confirm.html:14
#, python-format
@@ -356,8 +360,8 @@ msgid ""
"Please confirm that %(email)s is an e-mail "
"address for user %(user_display)s."
msgstr ""
-"Confermare che %(email)s è un indirizzo e-"
-"mail per l'utente %(user_display)s."
+"Confermare che %(email)s è un indirizzo di "
+"posta elettronica per l'utente %(user_display)s."
#: accounts/templates/account/email_confirm.html:21
msgid "Confirm"
@@ -436,8 +440,8 @@ msgid ""
"Forgotten your password? Enter your e-mail address below, and we'll send you "
"an e-mail allowing you to reset it."
msgstr ""
-"Password dimenticata? Inserire il proprio indirizzo e-mail per ricevere una "
-"mail di reimpostazione password."
+"Password dimenticata? Inserire il proprio indirizzo di posta elettronica per "
+"ricevere una e-mail di reimpostazione password."
#: accounts/templates/account/password_reset.html:21
msgid "Reset my password"
@@ -575,7 +579,7 @@ msgstr "Avete accettato le condizioni di utilizzo."
#: accounts/templates/account/verification_sent.html:7
#: accounts/templates/account/verified_email_required.html:6
msgid "Verify your e-mail address"
-msgstr "Confermare il proprio indirizzo e-mail"
+msgstr "Confermare il proprio indirizzo di posta elettronica"
#: accounts/templates/account/verification_sent.html:11
msgid ""
@@ -594,7 +598,7 @@ msgid ""
"address."
msgstr ""
"Questa parte del sito richiede una verifica dell'identità. Per questo "
-"motivo, è necessario verificare il proprio indirizzo e-mail."
+"motivo, è necessario verificare il proprio indirizzo di posta elettronica."
#: accounts/templates/account/verified_email_required.html:15
msgid ""
@@ -613,7 +617,8 @@ msgid ""
"mail address."
msgstr ""
"Attenzione: è ancora possibile cambiare il proprio indirizzo e-mail."
+"href=\"%(email_url)s\">cambiare il proprio indirizzo di posta elettronica"
+"a>."
#: accounts/templates/profile/profile_remove_closed.html:6
#: accounts/templates/profile/profile_remove_failed.html:6
@@ -680,7 +685,7 @@ msgid ""
msgstr ""
"Inserire le informazioni aggiornate del proprio account. La password può "
"essere cambiata con l'apposito modulo. Per "
-"modificare il proprio indirizzo e-mail, visitare questa pagina."
#: accounts/templates/profile/profile_update_form.html:33
@@ -799,7 +804,7 @@ msgstr "Condizioni"
#: options/models.py:19 options/models.py:151
#: options/templates/options/export/option.html:5
#: options/templates/options/export/optionset.html:5
-#: questions/models/catalog.py:36 questions/models/page.py:35
+#: questions/models/catalog.py:37 questions/models/page.py:35
#: questions/models/question.py:27 questions/models/questionset.py:30
#: questions/models/section.py:34
#: questions/templates/questions/export/catalog.html:6
@@ -819,7 +824,7 @@ msgstr ""
"automaticamente)."
#: conditions/models.py:40 domain/models.py:20 options/models.py:24
-#: options/models.py:156 questions/models/catalog.py:41
+#: options/models.py:156 questions/models/catalog.py:42
#: questions/models/page.py:40 questions/models/question.py:32
#: questions/models/questionset.py:35 questions/models/section.py:39
#: tasks/models.py:25 views/models.py:27
@@ -831,7 +836,7 @@ msgid "The prefix for the URI of this condition."
msgstr "Il prefisso dell'URI per questa condizione."
#: conditions/models.py:45 options/models.py:29 options/models.py:161
-#: questions/models/catalog.py:46 questions/models/page.py:45
+#: questions/models/catalog.py:47 questions/models/page.py:45
#: questions/models/question.py:37 questions/models/questionset.py:40
#: questions/models/section.py:44 tasks/models.py:30 views/models.py:32
msgid "URI Path"
@@ -844,7 +849,7 @@ msgstr "Il percorso dell'URI di questa condizione."
#: conditions/models.py:50
#: conditions/templates/conditions/export/conditions.html:21
#: domain/models.py:35 options/models.py:34 options/models.py:166
-#: questions/models/catalog.py:51 questions/models/page.py:50
+#: questions/models/catalog.py:52 questions/models/page.py:50
#: questions/models/question.py:42 questions/models/questionset.py:45
#: questions/models/section.py:49
#: questions/templates/questions/export/catalog.html:12
@@ -863,7 +868,7 @@ msgid "Additional internal information about this condition."
msgstr "Informazioni interne addizionali su questa condizione."
#: conditions/models.py:55 domain/models.py:40 options/models.py:39
-#: options/models.py:171 questions/models/catalog.py:56
+#: options/models.py:171 questions/models/catalog.py:57
#: questions/models/page.py:55 questions/models/question.py:47
#: questions/models/questionset.py:50 questions/models/section.py:54
#: tasks/models.py:40 views/models.py:42
@@ -875,7 +880,7 @@ msgid "Designates whether this condition can be changed."
msgstr "Indica se questa condizione può essere cambiata."
#: conditions/models.py:60 domain/models.py:45 options/models.py:49
-#: options/models.py:176 questions/models/catalog.py:76
+#: options/models.py:176 questions/models/catalog.py:77
#: questions/models/page.py:81 questions/models/question.py:67
#: questions/models/questionset.py:76 questions/models/section.py:64
#: tasks/models.py:61 views/models.py:63
@@ -984,7 +989,7 @@ msgstr "Opzione"
msgid "File"
msgstr "File"
-#: core/imports.py:601
+#: core/imports.py:600
msgid "You have no permissions to import"
msgstr "Non avete i permessi per importare"
@@ -1162,7 +1167,7 @@ msgstr "Azzerare le sovrapposizioni del tutorial"
#: core/templates/core/base_navigation_account.html:4
msgid "Update e-mail"
-msgstr "Aggiorna e-mail"
+msgstr "Aggiorna posta elettronica"
#: core/templates/core/bootstrap_form_field.html:69
msgid ""
@@ -1241,42 +1246,42 @@ msgstr "Un elemento superiore è bloccato."
msgid "The element is locked."
msgstr "L'elemento è bloccato."
-#: core/xml.py:27
+#: core/xml.py:26
msgid "This file does not exists."
msgstr "Questo file non esiste."
-#: core/xml.py:36 core/xml.py:90
+#: core/xml.py:35 core/xml.py:89
msgid "XML Parsing Error"
msgstr "Errore di parsing XML"
-#: core/xml.py:41
+#: core/xml.py:40
msgid ""
"The content of the XML file does not consist of well-formed data or markup."
msgstr ""
"Il contenuto del file XML non è costituito da dati o markup ben formati."
-#: core/xml.py:43
+#: core/xml.py:42
msgid "This XML does not contain RDMO content."
msgstr "Questo XML non contiene dati RDMO."
-#: core/xml.py:60
+#: core/xml.py:59
msgid ""
"The \"required\" attribute in this RDMO XML file is not a valid version."
msgstr ""
"L'attributo “required” in questo file XML RDMO non è una versione valida."
-#: core/xml.py:67
+#: core/xml.py:66
msgid "This RDMO XML file requires a newer RDMO version to be imported."
msgstr ""
"Questo file RDMO XML richiede una versione RDMO più recente per essere "
"importato."
-#: core/xml.py:78
+#: core/xml.py:77
msgid "The \"version\" attribute in this RDMO XML file is not a valid version."
msgstr ""
"L'attributo “version” di questo file XML RDMO non è una versione valida."
-#: core/xml.py:91 core/xml.py:103
+#: core/xml.py:90 core/xml.py:102
msgid "This is not a valid RDMO XML file."
msgstr "Questo non è un file XML RDMO valido."
@@ -1401,12 +1406,12 @@ msgstr "Importa"
msgid "Import elements"
msgstr "Importa elementi"
-#: management/viewsets.py:41 management/viewsets.py:77 projects/viewsets.py:370
-#: projects/viewsets.py:371 projects/viewsets.py:542
+#: management/viewsets.py:40 management/viewsets.py:76 projects/viewsets.py:379
+#: projects/viewsets.py:380 projects/viewsets.py:549
msgid "This field may not be blank."
msgstr "Questo campo non può essere vuoto."
-#: management/viewsets.py:79
+#: management/viewsets.py:78
msgid "This is not a valid RDMO import JSON."
msgstr "Questo non è un JSON di importazione RDMO valido."
@@ -1446,7 +1451,7 @@ msgid "Designates whether this option set (and its options) can be changed."
msgstr ""
"Indica se questo insieme di opzioni (e le sue opzioni) può essere cambiato."
-#: options/models.py:44 questions/models/catalog.py:61 tasks/models.py:45
+#: options/models.py:44 questions/models/catalog.py:62 tasks/models.py:45
#: views/models.py:47
msgid "Order"
msgstr "Ordine"
@@ -1525,43 +1530,43 @@ msgstr ""
#: options/models.py:182
msgid "The text for this option (in the primary language)."
-msgstr "Il testo di questa opzione (nella lingua principale)."
+msgstr "Il testo di questa opzione (nella prima lingua)."
#: options/models.py:187
msgid "The text for this option (in the secondary language)."
-msgstr "Il testo di questa opzione (nella lingua secondaria)."
+msgstr "Il testo di questa opzione (nella seconda lingua)."
#: options/models.py:192
msgid "The text for this option (in the tertiary language)."
-msgstr "Il testo di questa opzione (nella lingua terziaria)."
+msgstr "Il testo di questa opzione (nella terza lingua)."
#: options/models.py:197
msgid "The text for this option (in the quaternary language)."
-msgstr "Il testo di questa opzione (nella lingua quaternaria)."
+msgstr "Il testo di questa opzione (nella quarta lingua)."
#: options/models.py:202
msgid "The text for this option (in the quinary language)."
-msgstr "Il testo di questa opzione (in lingua quinaria)."
+msgstr "Il testo di questa opzione (nella quinta lingua)."
#: options/models.py:207
msgid "The help text for this option (in the primary language)."
-msgstr "Il testo della guida per questa opzione (nella lingua principale)."
+msgstr "Il testo della guida per questa opzione (nella prima lingua)."
#: options/models.py:212
msgid "The help text for this option (in the secondary language)."
-msgstr "Il testo di aiuto per questa opzione (nella lingua secondaria)."
+msgstr "Il testo di aiuto per questa opzione (nella seconda lingua)."
#: options/models.py:217
msgid "The help text for this option (in the tertiary language)."
-msgstr "Il testo di aiuto per questa opzione (nella lingua terziaria)."
+msgstr "Il testo di aiuto per questa opzione (nella terza lingua)."
#: options/models.py:222
msgid "The help text for this option (in the quaternary language)."
-msgstr "Il testo di aiuto per questa opzione (in lingua quaternaria)."
+msgstr "Il testo di aiuto per questa opzione (nella quarta lingua)."
#: options/models.py:227
msgid "The help text for this option (in the quinary language)."
-msgstr "Il testo di aiuto per questa opzione (in lingua quinaria)."
+msgstr "Il testo di aiuto per questa opzione (nella quinta lingua)."
#: options/models.py:231 questions/models/question.py:122
msgid "Default text value (primary)"
@@ -1573,7 +1578,7 @@ msgid ""
"primary language)."
msgstr ""
"Il valore di testo predefinito per l'input aggiuntiva di questa opzione "
-"(nella lingua principale)."
+"(nella prima lingua)."
#: options/models.py:236 questions/models/question.py:127
msgid "Default text value (secondary)"
@@ -1585,7 +1590,7 @@ msgid ""
"secondary language)."
msgstr ""
"Il valore di testo predefinito per l'input aggiuntiva di questa opzione "
-"(nella lingua secondaria)."
+"(nella seconda lingua)."
#: options/models.py:241 questions/models/question.py:132
msgid "Default text value (tertiary)"
@@ -1597,7 +1602,7 @@ msgid ""
"tertiary language)."
msgstr ""
"Il valore di testo predefinito per l'input aggiuntivo di questa opzione "
-"(nella lingua terziaria)."
+"(nella terza lingua)."
#: options/models.py:246 questions/models/question.py:137
msgid "Default text value (quaternary)"
@@ -1609,7 +1614,7 @@ msgid ""
"quaternary language)."
msgstr ""
"Il valore di testo predefinito per l'input aggiuntivo di questa opzione "
-"(nella lingua quaternaria)."
+"(nella quarta lingua)."
#: options/models.py:251 questions/models/question.py:142
msgid "Default text value (quinary)"
@@ -1621,7 +1626,7 @@ msgid ""
"quinary language)."
msgstr ""
"Il valore di testo predefinito per l'input aggiuntivo di questa opzione "
-"(nella lingua quinaria)."
+"(nella quinta lingua)."
#: options/models.py:256
msgid "View text (primary)"
@@ -1629,8 +1634,7 @@ msgstr "Visualizza il testo (primario)"
#: options/models.py:257
msgid "The view text for this option (in the primary language)."
-msgstr ""
-"Il testo di visualizzazione di questa opzione (nella lingua principale)."
+msgstr "Il testo di visualizzazione di questa opzione (nella prima lingua)."
#: options/models.py:261
msgid "View text (secondary)"
@@ -1638,8 +1642,7 @@ msgstr "Visualizza il testo (secondario)"
#: options/models.py:262
msgid "The view text for this option (in the secondary language)."
-msgstr ""
-"Il testo di visualizzazione di questa opzione (nella lingua secondaria)."
+msgstr "Il testo di visualizzazione di questa opzione (nella seconda lingua)."
#: options/models.py:266
msgid "View text (tertiary)"
@@ -1647,8 +1650,7 @@ msgstr "Visualizza il testo (terziario)"
#: options/models.py:267
msgid "The view text for this option (in the tertiary language)."
-msgstr ""
-"Il testo di visualizzazione di questa opzione (nella lingua terziaria)."
+msgstr "Il testo di visualizzazione di questa opzione (nella terza lingua)."
#: options/models.py:271
msgid "View text (quaternary)"
@@ -1656,8 +1658,7 @@ msgstr "Visualizza il testo (quaternario)"
#: options/models.py:272
msgid "The view text for this option (in the quaternary language)."
-msgstr ""
-"Il testo di visualizzazione di questa opzione (nella lingua quaternaria)."
+msgstr "Il testo di visualizzazione di questa opzione (nella quarta lingua)."
#: options/models.py:276
msgid "View text (quinary)"
@@ -1665,7 +1666,7 @@ msgstr "Visualizza il testo (quinario)"
#: options/models.py:277
msgid "The view text for this option (in the quinary language)."
-msgstr "Il testo di visualizzazione di questa opzione (in lingua quinaria)."
+msgstr "Il testo di visualizzazione di questa opzione (nella quinta lingua)."
#: options/models.py:281 options/templates/options/export/option.html:17
msgid "Additional input"
@@ -1759,7 +1760,7 @@ msgid "Reset overlays"
msgstr "Azzerare le sovrapposizioni"
#: projects/admin.py:82 projects/models/visibility.py:20
-#: questions/models/catalog.py:71 tasks/models.py:56 views/models.py:58
+#: questions/models/catalog.py:72 tasks/models.py:56 views/models.py:58
msgid "Sites"
msgstr "Siti"
@@ -1796,17 +1797,17 @@ msgid "Editing tasks is disabled."
msgstr "La modifica delle attività è disabilitata."
#: projects/forms.py:213 projects/forms.py:231
-#: projects/serializers/v1/__init__.py:111
+#: projects/serializers/v1/__init__.py:108
msgid "Editing views is disabled."
msgstr "La modifica delle viste è disabilitata."
#: projects/forms.py:274
msgid "Username or e-mail"
-msgstr "Nome utente o e-mail"
+msgstr "Nome utente o posta elettronica"
#: projects/forms.py:276
msgid "The username or e-mail of the new user."
-msgstr "Il nome utente o l'e-mail del nuovo utente."
+msgstr "Il nome utente o la posta elettronica del nuovo utente."
#: projects/forms.py:288
msgid "Add member silently"
@@ -1818,10 +1819,10 @@ msgid ""
"via e-mail, when you check the following checkbox."
msgstr ""
"Come gestore del sito o amministratore, puoi aggiungere direttamente gli "
-"utenti senza notificarli via e-mail, quando selezioni la seguente casella di "
-"controllo."
+"utenti senza notificarli via posta elettronica, quando selezioni la seguente "
+"casella di controllo."
-#: projects/forms.py:304 projects/serializers/v1/__init__.py:214
+#: projects/forms.py:304 projects/serializers/v1/__init__.py:211
msgid "The user is already a member of the project."
msgstr "L'utente è già membro del progetto."
@@ -1887,21 +1888,21 @@ msgstr "Destinatari"
msgid "Enter recipients line by line"
msgstr "Inserire i destinatari linea per linea"
-#: projects/imports.py:242
+#: projects/imports.py:239
msgid "Import project from this URL"
msgstr "Importa il progetto da questo URL"
-#: projects/mixins.py:79 projects/mixins.py:96 projects/mixins.py:111
-#: projects/mixins.py:134 projects/mixins.py:152 projects/mixins.py:167
-#: projects/mixins.py:202
+#: projects/mixins.py:80 projects/mixins.py:97 projects/mixins.py:112
+#: projects/mixins.py:135 projects/mixins.py:153 projects/mixins.py:168
+#: projects/mixins.py:203
msgid "Import error"
msgstr "Errore di importazione"
-#: projects/mixins.py:80 projects/mixins.py:153 projects/mixins.py:203
+#: projects/mixins.py:81 projects/mixins.py:154 projects/mixins.py:204
msgid "There has been an error with your import."
msgstr "C'è stato un errore nell'importazione."
-#: projects/mixins.py:97
+#: projects/mixins.py:98
msgid ""
"There has been an error with your import. No uploaded or retrieved file "
"could be found."
@@ -1909,7 +1910,7 @@ msgstr ""
"C'è stato un errore con la tua importazione. Nessun file caricato o "
"recuperato è stato trovato."
-#: projects/mixins.py:135
+#: projects/mixins.py:136
msgid "Files of this type cannot be imported."
msgstr "Questa tipologia di file non può essere importata."
@@ -2169,7 +2170,7 @@ msgstr "Una descrizione di questo progetto (facoltativa)."
#: projects/models/project.py:54
#: projects/templates/projects/project_detail_header.html:24
#: projects/templates/projects/project_import.html:31
-#: questions/models/catalog.py:142
+#: questions/models/catalog.py:143
#: questions/templates/questions/export/catalog.html:3
msgid "Catalog"
msgstr "Catalogo"
@@ -2344,7 +2345,7 @@ msgid "The sites for which the project is visible (in a multi site setup)."
msgstr ""
"I siti per i quali il progetto è visibile (in una configurazione multi-sito)."
-#: projects/models/visibility.py:25 questions/models/catalog.py:81
+#: projects/models/visibility.py:25 questions/models/catalog.py:82
#: tasks/models.py:66 views/models.py:68
msgid "Group"
msgstr "Gruppo"
@@ -2425,27 +2426,27 @@ msgstr "L'URL del progetto a cui inviare i compiti."
msgid "The secret for a webhook to close a task (optional)."
msgstr "Il segreto di un webhook per chiudere un'attività (opzionale)."
-#: projects/serializers/v1/__init__.py:219
+#: projects/serializers/v1/__init__.py:216
msgid "A user with that e-mail is already a member of the project."
msgstr "Un utente con quell'e-mail è già membro del progetto."
-#: projects/serializers/v1/__init__.py:227
+#: projects/serializers/v1/__init__.py:224
msgid "Either user or e-mail needs to be provided."
msgstr "È necessario indicare l'utente o l'e-mail."
-#: projects/serializers/v1/__init__.py:229
+#: projects/serializers/v1/__init__.py:226
msgid "User and e-mail are mutually exclusive."
-msgstr "Utente e e-mail si escludono a vicenda."
+msgstr "Utente e indirizzo di posta elettronica si escludono a vicenda."
-#: projects/serializers/v1/page.py:121
+#: projects/serializers/v1/page.py:120
msgid "entry"
-msgstr "ingresso"
+msgstr "elemento"
-#: projects/serializers/v1/page.py:160
+#: projects/serializers/v1/page.py:159
msgid "block"
msgstr "blocco"
-#: projects/serializers/v1/page.py:223
+#: projects/serializers/v1/page.py:222
msgid "set"
msgstr "raccolta"
@@ -2509,7 +2510,9 @@ msgstr "Se non hai ancora un account, sarai reindirizzato di conseguenza."
#: projects/templates/projects/email/project_invite_message.txt:14
msgid "If you were not expecting this invitation, you can ignore this e-mail."
-msgstr "Se non ti aspettavi questo invito, puoi ignorare questa e-mail."
+msgstr ""
+"Se non ti aspettavi questo invito, puoi ignorare questo messaggio di posta "
+"elettronica."
#: projects/templates/projects/email/project_invite_subject.txt:1
#, python-format
@@ -2604,11 +2607,11 @@ msgstr "L'invio di un'attività imposterà lo stato a \"in corso\"."
#: projects/templates/projects/issue_send_email.html:4
#: projects/templates/projects/issue_send_email.html:30
msgid "Send by mail"
-msgstr "Invia via mail"
+msgstr "Invia per posta elettronica"
#: projects/templates/projects/issue_send_integrations.html:3
msgid "Send via integration"
-msgstr "Invia via integrazione"
+msgstr "Invia per integrazione"
#: projects/templates/projects/issue_send_integrations.html:10
#: projects/templates/projects/project_detail_integrations.html:20
@@ -2694,15 +2697,15 @@ msgid ""
"here), or by their e-mail address."
msgstr ""
"Gli utenti possono essere invitati dal loro nome utente (se hanno già un "
-"account qui), o dal loro indirizzo e-mail."
+"account qui), o dal loro indirizzo di posta elettronica."
#: projects/templates/projects/membership_form.html:32
msgid ""
"Users will receive an e-mail with a link to join the project with the "
"assigned role."
msgstr ""
-"Gli utenti riceveranno un'e-mail con un link per unirsi al progetto con il "
-"ruolo assegnato."
+"Gli utenti riceveranno un messaggio di posta elettronica con un link per "
+"unirsi al progetto con il ruolo assegnato."
#: projects/templates/projects/membership_form.html:35
msgid "Invite member"
@@ -2883,14 +2886,14 @@ msgstr "di"
#: projects/templates/projects/project_detail_memberships_help.html:4
msgid ""
"Here you can see who can access the project and invite additional members. "
-"You can use the user roles to manage which rights the benefits have. Unless "
-"you are the last owner, you can leave the project with the button next to "
-"your name."
+"You can use the user roles to manage which rights the users have. Unless you "
+"are the last owner, you can leave the project with the button next to your "
+"name."
msgstr ""
"Qui puoi vedere chi può accedere al progetto e invitare altri membri. Puoi "
-"usare i ruoli utente per gestire quali diritti hanno i benefici. A meno che "
-"tu non sia l'ultimo proprietario, puoi lasciare il progetto con il pulsante "
-"accanto al tuo nome."
+"usare i ruoli utente per gestire quali privilegi hanno gli utenti. A meno "
+"che tu non sia l'ultimo proprietario, puoi lasciare il progetto con il "
+"pulsante accanto al tuo nome."
#: projects/templates/projects/project_detail_sidebar.html:17
msgid "Answer questions"
@@ -3147,7 +3150,7 @@ msgid ""
"this form to send an email to the %(site_name)s support\""
msgstr ""
"Se avete domande o feedback, contattateci: potete utilizzare questo modulo "
-"per inviare un'e-mail al supporto di %(site_name)s”."
+"per inviare un messaggio di posta elettronica al supporto di %(site_name)s”."
#: projects/templates/projects/project_interview_done.html:5
msgid "Done!"
@@ -3199,7 +3202,7 @@ msgstr ""
"modificare o eliminare le schede utilizzando i pulsanti in alto a destra."
#: projects/templates/projects/project_view.html:90
-#: projects/views/project.py:145
+#: projects/views/project.py:137
msgid "Error"
msgstr "Errore"
@@ -3277,39 +3280,39 @@ msgstr "La quota di file per questo progetto è stata raggiunta."
msgid "Enter a valid datetime."
msgstr "Inserire una data valida."
-#: projects/views/project.py:125
+#: projects/views/project.py:117
msgid "Sorry, your invitation has been expired."
msgstr "Spiacente, il tuo invito è scaduto."
-#: projects/views/project.py:128
+#: projects/views/project.py:120
#, python-format
msgid "Sorry, but this invitation is for the user \"%s\"."
msgstr "Spiacente, ma questo invito è per l'utente \"%s\"."
-#: projects/views/project.py:142
+#: projects/views/project.py:134
msgid "Sorry, the invitation link is not valid."
msgstr "Spiacente, il link di invito non è valido."
-#: projects/views/project_update.py:81 projects/views/project_update.py:86
-#: projects/views/project_update.py:91
+#: projects/views/project_update.py:79 projects/views/project_update.py:84
+#: projects/views/project_update.py:89
msgid "Update visibility"
msgstr "Rendere visibile"
-#: projects/views/project_update.py:82 projects/views/project_update.py:87
-#: projects/views/project_update.py:89 projects/views/project_update.py:92
-#: projects/views/project_update.py:94
+#: projects/views/project_update.py:80 projects/views/project_update.py:85
+#: projects/views/project_update.py:87 projects/views/project_update.py:90
+#: projects/views/project_update.py:92
msgid "Remove visibility"
msgstr "Rimuovere la visibilità"
-#: projects/views/project_update.py:84
+#: projects/views/project_update.py:82
msgid "Make visible for this site"
msgstr "Rendere visibile questo sito"
-#: projects/views/project_update.py:97
+#: projects/views/project_update.py:95
msgid "Make visible"
msgstr "Rendere visibile"
-#: projects/viewsets.py:659
+#: projects/viewsets.py:666
msgid "You reached the file quota for this project."
msgstr "Hai raggiunto la quota di file per questo progetto."
@@ -3345,24 +3348,24 @@ msgstr "Raccoglitore di date"
msgid "File upload"
msgstr "Caricamento dei file"
-#: questions/models/catalog.py:37
+#: questions/models/catalog.py:38
msgid "The Uniform Resource Identifier of this catalog (auto-generated)."
msgstr ""
"L'Uniform Resource Identifier di questo catalogo (generato automaticamente)."
-#: questions/models/catalog.py:42
+#: questions/models/catalog.py:43
msgid "The prefix for the URI of this catalog."
msgstr "Il prefisso dell'URI per questo catalogo."
-#: questions/models/catalog.py:47
+#: questions/models/catalog.py:48
msgid "The path for the URI of this catalog."
msgstr "Il percorso dell'URI di questo catalogo."
-#: questions/models/catalog.py:52
+#: questions/models/catalog.py:53
msgid "Additional internal information about this catalog."
-msgstr "Informazioni interne addizionali su questo catalogo."
+msgstr "Informazioni interne aggiuntive su questo catalogo."
-#: questions/models/catalog.py:57
+#: questions/models/catalog.py:58
msgid ""
"Designates whether this catalog (and its sections, question sets and "
"questions) can be changed."
@@ -3370,111 +3373,111 @@ msgstr ""
"Indica se questo catalogo (e le sue sezioni, set di domande e domande) può "
"essere cambiato."
-#: questions/models/catalog.py:62
+#: questions/models/catalog.py:63
msgid "The position of this catalog in lists."
msgstr "La posizione di questo catalogo nelle liste."
-#: questions/models/catalog.py:66 questions/models/section.py:121
+#: questions/models/catalog.py:67 questions/models/section.py:121
msgid "Sections"
msgstr "Sezioni"
-#: questions/models/catalog.py:67
+#: questions/models/catalog.py:68
msgid "The sections of this catalog."
msgstr "Le sezioni di questo catalogo."
-#: questions/models/catalog.py:72
+#: questions/models/catalog.py:73
msgid "The sites this catalog belongs to (in a multi site setup)."
msgstr "Il sito a cui appartiene questo catalogo (per setup multi sito)."
-#: questions/models/catalog.py:77
+#: questions/models/catalog.py:78
msgid "The sites that can edit this catalog (in a multi site setup)."
msgstr ""
"I siti che possono modificare questo catalogo (in una configurazione multi-"
"sito)."
-#: questions/models/catalog.py:82
+#: questions/models/catalog.py:83
msgid "The groups for which this catalog is active."
msgstr "I gruppi per i quali questo catalogo è attivo."
-#: questions/models/catalog.py:86 questions/models/page.py:86
+#: questions/models/catalog.py:87 questions/models/page.py:86
#: questions/models/questionset.py:81 questions/models/section.py:69
#: tasks/models.py:71 views/models.py:78
msgid "Title (primary)"
-msgstr "Titolo (lingua principale)"
+msgstr "Titolo (prima lingua)"
-#: questions/models/catalog.py:87
+#: questions/models/catalog.py:88
msgid "The title for this catalog (in the primary language)."
-msgstr "Il titolo di questo catalogo (nella lingua principale)."
+msgstr "Il titolo di questo catalogo (nella prima lingua)."
-#: questions/models/catalog.py:91 questions/models/page.py:91
+#: questions/models/catalog.py:92 questions/models/page.py:91
#: questions/models/questionset.py:86 questions/models/section.py:74
#: tasks/models.py:76 views/models.py:83
msgid "Title (secondary)"
msgstr "Titolo (seconda lingua)"
-#: questions/models/catalog.py:92
+#: questions/models/catalog.py:93
msgid "The title for this catalog (in the secondary language)."
-msgstr "Il titolo di questo catalogo (nella lingua secondaria)."
+msgstr "Il titolo di questo catalogo (nella seconda lingua)."
-#: questions/models/catalog.py:96 questions/models/page.py:96
+#: questions/models/catalog.py:97 questions/models/page.py:96
#: questions/models/questionset.py:91 questions/models/section.py:79
#: tasks/models.py:81 views/models.py:88
msgid "Title (tertiary)"
msgstr "Titolo (terza lingua)"
-#: questions/models/catalog.py:97
+#: questions/models/catalog.py:98
msgid "The title for this catalog (in the tertiary language)."
-msgstr "Il titolo di questo catalogo (nella lingua terziaria)."
+msgstr "Il titolo di questo catalogo (nella terza lingua)."
-#: questions/models/catalog.py:101 questions/models/page.py:101
+#: questions/models/catalog.py:102 questions/models/page.py:101
#: questions/models/questionset.py:96 questions/models/section.py:84
#: tasks/models.py:86 views/models.py:93
msgid "Title (quaternary)"
msgstr "Titolo (quarta lingua)"
-#: questions/models/catalog.py:102
+#: questions/models/catalog.py:103
msgid "The title for this catalog (in the quaternary language)."
-msgstr "Il titolo di questo catalogo (in lingua quaternaria)."
+msgstr "Il titolo di questo catalogo (nella quarta lingua)."
-#: questions/models/catalog.py:106 questions/models/page.py:106
+#: questions/models/catalog.py:107 questions/models/page.py:106
#: questions/models/questionset.py:101 questions/models/section.py:89
#: tasks/models.py:91 views/models.py:98
msgid "Title (quinary)"
msgstr "Titolo (quinta lingua)"
-#: questions/models/catalog.py:107
+#: questions/models/catalog.py:108
msgid "The title for this catalog (in the quinary language)."
-msgstr "Il titolo di questo catalogo (in lingua quinaria)."
+msgstr "Il titolo di questo catalogo (nella quinta lingua)."
-#: questions/models/catalog.py:112
+#: questions/models/catalog.py:113
msgid "The help text for this catalog (in the primary language)."
-msgstr "Il testo di aiuto per questo catalogo (nella lingua principale)."
+msgstr "Il testo di aiuto per questo catalogo (nella prima lingua)."
-#: questions/models/catalog.py:117
+#: questions/models/catalog.py:118
msgid "The help text for this catalog (in the secondary language)."
-msgstr "Il testo di aiuto per questo catalogo (nella lingua secondaria)."
+msgstr "Il testo di aiuto per questo catalogo (nella seconda lingua)."
-#: questions/models/catalog.py:122
+#: questions/models/catalog.py:123
msgid "The help text for this catalog (in the tertiary language)."
-msgstr "Il testo di aiuto per questo catalogo (nella lingua terziaria)."
+msgstr "Il testo di aiuto per questo catalogo (nella terza lingua)."
-#: questions/models/catalog.py:127
+#: questions/models/catalog.py:128
msgid "The help text for this catalog (in the quaternary language)."
-msgstr "Il testo di aiuto per questo catalogo (in lingua quaternaria)."
+msgstr "Il testo di aiuto per questo catalogo (nella quarta lingua)."
-#: questions/models/catalog.py:132
+#: questions/models/catalog.py:133
msgid "The help text for this catalog (in the quinary language)."
-msgstr "Il testo di aiuto per questo catalogo (in linguaggio quinario)."
+msgstr "Il testo di aiuto per questo catalogo (nella quinta lingua)."
-#: questions/models/catalog.py:136 tasks/models.py:147 views/models.py:128
+#: questions/models/catalog.py:137 tasks/models.py:147 views/models.py:128
msgid "Available"
msgstr "Disponibile"
-#: questions/models/catalog.py:137
+#: questions/models/catalog.py:138
msgid "Designates whether this catalog is generally available for projects."
msgstr "Indica se questo catalogo è disponibile generalmente per progetti."
-#: questions/models/catalog.py:143 tasks/models.py:50 views/models.py:52
+#: questions/models/catalog.py:144 tasks/models.py:50 views/models.py:52
msgid "Catalogs"
msgstr "Cataloghi"
@@ -3538,23 +3541,23 @@ msgstr ""
#: questions/models/page.py:87
msgid "The title for this page (in the primary language)."
-msgstr "Il titolo di questa pagina (nella lingua principale)."
+msgstr "Il titolo di questa pagina (nella prima lingua)."
#: questions/models/page.py:92
msgid "The title for this page (in the secondary language)."
-msgstr "Il titolo di questa pagina (nella lingua secondaria)."
+msgstr "Il titolo di questa pagina (nella seconda lingua)."
#: questions/models/page.py:97
msgid "The title for this page (in the tertiary language)."
-msgstr "Il titolo di questa pagina (nella lingua terziaria)."
+msgstr "Il titolo di questa pagina (nella terza lingua)."
#: questions/models/page.py:102
msgid "The title for this page (in the quaternary language)."
-msgstr "Il titolo di questa pagina (in lingua quaternaria)."
+msgstr "Il titolo di questa pagina (nella quarta lingua)."
#: questions/models/page.py:107
msgid "The title for this page (in the quinary language)."
-msgstr "Il titolo di questa pagina (in lingua quinaria)."
+msgstr "Il titolo di questa pagina (nella quinta lingua)."
#: questions/models/page.py:111 questions/models/section.py:94
msgid "Short title (primary)"
@@ -3565,7 +3568,7 @@ msgid ""
"The short title for this page (in the primary language), used in the "
"navigation."
msgstr ""
-"Il titolo breve di questa pagina (nella lingua principale), utilizzato nella "
+"Il titolo breve di questa pagina (nella prima lingua), utilizzato nella "
"navigazione."
#: questions/models/page.py:116 questions/models/section.py:99
@@ -3577,7 +3580,7 @@ msgid ""
"The short title for this page (in the secondary language), used in the "
"navigation."
msgstr ""
-"Il titolo breve di questa pagina (nella lingua secondaria), utilizzato nella "
+"Il titolo breve di questa pagina (nella seconda lingua), utilizzato nella "
"navigazione."
#: questions/models/page.py:121 questions/models/section.py:104
@@ -3589,7 +3592,7 @@ msgid ""
"The short title for this page (in the tertiary language), used in the "
"navigation."
msgstr ""
-"Il titolo breve di questa pagina (nella lingua terziaria), utilizzato nella "
+"Il titolo breve di questa pagina (nella terza lingua), utilizzato nella "
"navigazione."
#: questions/models/page.py:126 questions/models/section.py:109
@@ -3601,7 +3604,7 @@ msgid ""
"The short title for this page (in the quaternary language), used in the "
"navigation."
msgstr ""
-"Il titolo breve di questa pagina (in lingua quaternaria), utilizzato nella "
+"Il titolo breve di questa pagina (nella quarta lingua), utilizzato nella "
"navigazione."
#: questions/models/page.py:131 questions/models/section.py:114
@@ -3613,37 +3616,37 @@ msgid ""
"The short title for this page (in the quinary language), used in the "
"navigation."
msgstr ""
-"Il titolo breve di questa pagina (in lingua quinaria), utilizzato nella "
+"Il titolo breve di questa pagina (nella quinta lingua), utilizzato nella "
"navigazione."
#: questions/models/page.py:137
msgid "The help text for this page (in the primary language)."
-msgstr "Il testo di aiuto per questa pagina (nella lingua principale)."
+msgstr "Il testo di aiuto per questa pagina (nella prima lingua)."
#: questions/models/page.py:142
msgid "The help text for this page (in the secondary language)."
-msgstr "Il testo di aiuto di questa pagina (nella lingua secondaria)."
+msgstr "Il testo di aiuto di questa pagina (nella seconda lingua)."
#: questions/models/page.py:147
msgid "The help text for this page (in the tertiary language)."
-msgstr "Il testo di aiuto di questa pagina (nella lingua terziaria)."
+msgstr "Il testo di aiuto di questa pagina (nella terza lingua)."
#: questions/models/page.py:152
msgid "The help text for this page (in the quaternary language)."
-msgstr "Il testo di aiuto di questa pagina (in lingua quaternaria)."
+msgstr "Il testo di aiuto di questa pagina (nella quarta lingua)."
#: questions/models/page.py:157
msgid "The help text for this page (in the quinary language)."
-msgstr "Il testo di aiuto di questa pagina (in lingua quinaria)."
+msgstr "Il testo di aiuto di questa pagina (nella quinta lingua)."
#: questions/models/page.py:161 questions/models/question.py:157
#: questions/models/questionset.py:131
msgid "Name (primary)"
-msgstr "Nome (lingua principale)"
+msgstr "Nome (prima lingua)"
#: questions/models/page.py:162
msgid "The name displayed for this page (in the primary language)."
-msgstr "Il nome visualizzato per questa pagina (nella lingua principale)."
+msgstr "Il nome visualizzato per questa pagina (nella prima lingua)."
#: questions/models/page.py:166 questions/models/question.py:162
#: questions/models/questionset.py:136
@@ -3652,7 +3655,7 @@ msgstr "Nome (seconda lingua)"
#: questions/models/page.py:167
msgid "The name displayed for this page (in the secondary language)."
-msgstr "Il nome visualizzato per questa pagina (nella lingua secondaria)."
+msgstr "Il nome visualizzato per questa pagina (nella seconda lingua)."
#: questions/models/page.py:171 questions/models/question.py:167
#: questions/models/questionset.py:141
@@ -3661,7 +3664,7 @@ msgstr "Nome (terza lingua)"
#: questions/models/page.py:172
msgid "The name displayed for this page (in the tertiary language)."
-msgstr "Il nome visualizzato per questa pagina (nella lingua terziaria)."
+msgstr "Il nome visualizzato per questa pagina (nella terza lingua)."
#: questions/models/page.py:176 questions/models/question.py:172
#: questions/models/questionset.py:146
@@ -3670,7 +3673,7 @@ msgstr "Nome (quarta lingua)"
#: questions/models/page.py:177
msgid "The name displayed for this page (in the quaternary language)."
-msgstr "Il nome visualizzato per questa pagina (nella lingua quaternaria)."
+msgstr "Il nome visualizzato per questa pagina (nella quarta lingua)."
#: questions/models/page.py:181 questions/models/question.py:177
#: questions/models/questionset.py:151
@@ -3679,7 +3682,7 @@ msgstr "Nome (quinta lingua)"
#: questions/models/page.py:182
msgid "The name displayed for this page (in the quinary language)."
-msgstr "Il nome visualizzato per questa pagina (nella lingua quinaria)."
+msgstr "Il nome visualizzato per questa pagina (nella quinta lingua)."
#: questions/models/page.py:187
msgid "List of conditions evaluated for this page."
@@ -3734,31 +3737,31 @@ msgstr ""
#: questions/models/question.py:73
msgid "The help text for this question (in the primary language)."
-msgstr "Il testo di aiuto per questa domanda (nella lingua principale)."
+msgstr "Il testo di aiuto per questa domanda (nella prima lingua)."
#: questions/models/question.py:78
msgid "The help text for this question (in the secondary language)."
-msgstr "Il testo di aiuto per questa domanda (nella lingua secondaria)."
+msgstr "Il testo di aiuto per questa domanda (nella seconda lingua)."
#: questions/models/question.py:83
msgid "The help text for this question (in the tertiary language)."
-msgstr "Il testo di aiuto per questa domanda (nella lingua terziaria)."
+msgstr "Il testo di aiuto per questa domanda (nella terza lingua)."
#: questions/models/question.py:88
msgid "The help text for this question (in the quaternary language)."
-msgstr "Il testo di aiuto per questa domanda (in lingua quaternaria)."
+msgstr "Il testo di aiuto per questa domanda (nella quarta lingua)."
#: questions/models/question.py:93
msgid "The help text for this question (in the quinary language)."
-msgstr "Il testo di aiuto per questa domanda (in lingua quinaria)."
+msgstr "Il testo di aiuto per questa domanda (nella quinta lingua)."
#: questions/models/question.py:98
msgid "The text for this question (in the primary language)."
-msgstr "Il testo di questa domanda (nella lingua principale)."
+msgstr "Il testo di questa domanda (nella prima lingua)."
#: questions/models/question.py:103
msgid "The text for this question (in the secondary language)."
-msgstr "Il testo per questa domanda (nella lingua secondaria)."
+msgstr "Il testo per questa domanda (nella seconda lingua)."
#: questions/models/question.py:108
msgid "The text for this question (in the tertiary language)."
@@ -3766,36 +3769,36 @@ msgstr "Il testo di questa domanda (nella lingua del terziario)."
#: questions/models/question.py:113
msgid "The text for this question (in the quaternary language)."
-msgstr "Il testo di questa domanda (in lingua quaternaria)."
+msgstr "Il testo di questa domanda (nella quarta lingua)."
#: questions/models/question.py:118
msgid "The text for this question (in the quinary language)."
-msgstr "Il testo di questa domanda (in lingua quinaria)."
+msgstr "Il testo di questa domanda (nella quinta lingua)."
#: questions/models/question.py:123
msgid "The default text value for this question (in the primary language)."
msgstr ""
-"Il valore di testo predefinito per questa domanda (nella lingua principale)."
+"Il valore di testo predefinito per questa domanda (nella prima lingua)."
#: questions/models/question.py:128
msgid "The default text value for this question (in the secondary language)."
msgstr ""
-"Il valore di testo predefinito per questa domanda (nella lingua secondaria)."
+"Il valore di testo predefinito per questa domanda (nella seconda lingua)."
#: questions/models/question.py:133
msgid "The default text value for this question (in the tertiary language)."
msgstr ""
-"Il valore di testo predefinito per questa domanda (nella lingua terziaria)."
+"Il valore di testo predefinito per questa domanda (nella terza lingua)."
#: questions/models/question.py:138
msgid "The default text value for this question (in the quaternary language)."
msgstr ""
-"Il valore di testo predefinito per questa domanda (nella lingua quaternaria)."
+"Il valore di testo predefinito per questa domanda (nella quarta lingua)."
#: questions/models/question.py:143
msgid "The default text value for this question (in the quinary language)."
msgstr ""
-"Il valore di testo predefinito per questa domanda (nella lingua quinaria)."
+"Il valore di testo predefinito per questa domanda (nella quinta lingua)."
#: questions/models/question.py:147
msgid "Default option"
@@ -3817,28 +3820,28 @@ msgid ""
"The default external id for this question. To be used with dynamic "
"optionsets."
msgstr ""
-"L'id esterno predefinito per questa domanda. Da usare con i set di opzioni "
-"dinamiche."
+"L'identificativo esterno predefinito per questa domanda. Da usare con i set "
+"di opzioni dinamiche."
#: questions/models/question.py:158
msgid "The name displayed for this question (in the primary language)."
-msgstr "Il nome visualizzato per questa domanda (nella lingua principale)."
+msgstr "Il nome visualizzato per questa domanda (nella prima lingua)."
#: questions/models/question.py:163
msgid "The name displayed for this question (in the secondary language)."
-msgstr "Il nome visualizzato per questa domanda (nella lingua secondaria)."
+msgstr "Il nome visualizzato per questa domanda (nella seconda lingua)."
#: questions/models/question.py:168
msgid "The name displayed for this question (in the tertiary language)."
-msgstr "Il nome visualizzato per questa domanda (nella lingua terziaria)."
+msgstr "Il nome visualizzato per questa domanda (nella terza lingua)."
#: questions/models/question.py:173
msgid "The name displayed for this question (in the quaternary language)."
-msgstr "Il nome visualizzato per questa domanda (nella lingua quaternaria)."
+msgstr "Il nome visualizzato per questa domanda (nella quarta lingua)."
#: questions/models/question.py:178
msgid "The name displayed for this question (in the quinary language)."
-msgstr "Il nome visualizzato per questa domanda (nel linguaggio quinario)."
+msgstr "Il nome visualizzato per questa domanda (nella quinta lingua)."
#: questions/models/question.py:182
msgid "Widget type"
@@ -3950,11 +3953,11 @@ msgstr ""
#: questions/models/questionset.py:82
msgid "The title for this question set (in the primary language)."
-msgstr "Il titolo di questa serie di domande (nella lingua principale)."
+msgstr "Il titolo di questa serie di domande (nella prima lingua)."
#: questions/models/questionset.py:87
msgid "The title for this question set (in the secondary language)."
-msgstr "Il titolo di questa serie di domande (nella lingua secondaria)."
+msgstr "Il titolo di questa serie di domande (nella seconda lingua)."
#: questions/models/questionset.py:92
msgid "The title for this question set (in the tertiary language)."
@@ -3962,56 +3965,51 @@ msgstr "Il titolo di questa serie di domande (nella lingua del terziario)."
#: questions/models/questionset.py:97
msgid "The title for this question set (in the quaternary language)."
-msgstr "Il titolo di questa serie di domande (in lingua quaternaria)."
+msgstr "Il titolo di questa serie di domande (nella quarta lingua)."
#: questions/models/questionset.py:102
msgid "The title for this question set (in the quinary language)."
-msgstr "Il titolo di questa serie di domande (in lingua quinaria)."
+msgstr "Il titolo di questa serie di domande (nella quinta lingua)."
#: questions/models/questionset.py:107
msgid "The help text for this question set (in the primary language)."
-msgstr "Il testo di aiuto per questo set di domande (nella lingua principale)."
+msgstr "Il testo di aiuto per questo set di domande (nella prima lingua)."
#: questions/models/questionset.py:112
msgid "The help text for this question set (in the secondary language)."
-msgstr "Il testo di aiuto per questo set di domande (nella lingua secondaria)."
+msgstr "Il testo di aiuto per questo set di domande (nella seconda lingua)."
#: questions/models/questionset.py:117
msgid "The help text for this question set (in the tertiary language)."
-msgstr "Il testo di aiuto per questo set di domande (nella lingua terziaria)."
+msgstr "Il testo di aiuto per questo set di domande (nella terza lingua)."
#: questions/models/questionset.py:122
msgid "The help text for this question set (in the quaternary language)."
-msgstr "Il testo di aiuto per questo set di domande (in lingua quaternaria)."
+msgstr "Il testo di aiuto per questo set di domande (nella quarta lingua)."
#: questions/models/questionset.py:127
msgid "The help text for this question set (in the quinary language)."
-msgstr "Il testo di aiuto per questo set di domande (in lingua quinaria)."
+msgstr "Il testo di aiuto per questo set di domande (nella quinta lingua)."
#: questions/models/questionset.py:132
msgid "The name displayed for this question set (in the primary language)."
-msgstr ""
-"Il nome visualizzato per questo set di domande (nella lingua principale)."
+msgstr "Il nome visualizzato per questo set di domande (nella prima lingua)."
#: questions/models/questionset.py:137
msgid "The name displayed for this question set (in the secondary language)."
-msgstr ""
-"Il nome visualizzato per questo set di domande (nella lingua secondaria)."
+msgstr "Il nome visualizzato per questo set di domande (nella seconda lingua)."
#: questions/models/questionset.py:142
msgid "The name displayed for this question set (in the tertiary language)."
-msgstr ""
-"Il nome visualizzato per questo set di domande (nella lingua terziaria)."
+msgstr "Il nome visualizzato per questo set di domande (nella terza lingua)."
#: questions/models/questionset.py:147
msgid "The name displayed for this question set (in the quaternary language)."
-msgstr ""
-"Il nome visualizzato per questo set di domande (nella lingua quaternaria)."
+msgstr "Il nome visualizzato per questo set di domande (nella quarta lingua)."
#: questions/models/questionset.py:152
msgid "The name displayed for this question set (in the quinary language)."
-msgstr ""
-"Il nome visualizzato per questo set di domande (nel linguaggio quinario)."
+msgstr "Il nome visualizzato per questo set di domande (nella quinta lingua)."
#: questions/models/questionset.py:157
msgid "List of conditions evaluated for this question set."
@@ -4059,46 +4057,46 @@ msgstr ""
#: questions/models/section.py:70
msgid "The title for this section (in the primary language)."
-msgstr "Il titolo di questa sezione (nella lingua principale)."
+msgstr "Il titolo di questa sezione (nella prima lingua)."
#: questions/models/section.py:75
msgid "The title for this section (in the secondary language)."
-msgstr "Il titolo di questa sezione (nella lingua secondaria)."
+msgstr "Il titolo di questa sezione (nella seconda lingua)."
#: questions/models/section.py:80
msgid "The title for this section (in the tertiary language)."
-msgstr "Il titolo di questa sezione (nella lingua terziaria)."
+msgstr "Il titolo di questa sezione (nella terza lingua)."
#: questions/models/section.py:85
msgid "The title for this section (in the quaternary language)."
-msgstr "Il titolo di questa sezione (in lingua quaternaria)."
+msgstr "Il titolo di questa sezione (nella quarta lingua)."
#: questions/models/section.py:90
msgid "The title for this section (in the quinary language)."
-msgstr "Il titolo di questa sezione (nel linguaggio quinario)."
+msgstr "Il titolo di questa sezione (nella quinta lingua)."
#: questions/models/section.py:95
msgid ""
"The short title for this section (in the primary language), used in the "
"navigation."
msgstr ""
-"Il titolo breve di questa sezione (nella lingua principale), utilizzato "
-"nella navigazione."
+"Il titolo breve di questa sezione (nella prima lingua), utilizzato nella "
+"navigazione."
#: questions/models/section.py:100
msgid ""
"The short title for this section (in the secondary language), used in the "
"navigation."
msgstr ""
-"Il titolo breve di questa sezione (nella lingua secondaria), utilizzato "
-"nella navigazione."
+"Il titolo breve di questa sezione (nella seconda lingua), utilizzato nella "
+"navigazione."
#: questions/models/section.py:105
msgid ""
"The short title for this section (in the tertiary language), used in the "
"navigation."
msgstr ""
-"Il titolo breve di questa sezione (nella lingua terziaria), utilizzato nella "
+"Il titolo breve di questa sezione (nella terza lingua), utilizzato nella "
"navigazione."
#: questions/models/section.py:110
@@ -4106,7 +4104,7 @@ msgid ""
"The short title for this section (in the quaternary language), used in the "
"navigation."
msgstr ""
-"Il titolo breve di questa sezione (in lingua quaternaria), utilizzato nella "
+"Il titolo breve di questa sezione (nella quarta lingua), utilizzato nella "
"navigazione."
#: questions/models/section.py:115
@@ -4114,8 +4112,8 @@ msgid ""
"The short title for this section (in the quinary language), used in the "
"navigation."
msgstr ""
-"Il titolo breve di questa sezione (nel linguaggio quinario), utilizzato "
-"nella navigazione."
+"Il titolo breve di questa sezione (nella quinta lingua), utilizzato nella "
+"navigazione."
#: questions/models/section.py:120
#: questions/templates/questions/export/section.html:3
@@ -4256,43 +4254,43 @@ msgstr "I gruppi per i quali questa attività è attiva."
#: tasks/models.py:72
msgid "The title for this task (in the primary language)."
-msgstr "Il titolo di questo compito (nella lingua principale)."
+msgstr "Il titolo di questo compito (nella prima lingua)."
#: tasks/models.py:77
msgid "The title for this task (in the secondary language)."
-msgstr "Il titolo di questo compito (nella lingua secondaria)."
+msgstr "Il titolo di questo compito (nella seconda lingua)."
#: tasks/models.py:82
msgid "The title for this task (in the tertiary language)."
-msgstr "Il titolo di questo compito (nella lingua terziaria)."
+msgstr "Il titolo di questo compito (nella terza lingua)."
#: tasks/models.py:87
msgid "The title for this task (in the quaternary language)."
-msgstr "Il titolo di questo compito (in lingua quaternaria)."
+msgstr "Il titolo di questo compito (nella quarta lingua)."
#: tasks/models.py:92
msgid "The title for this task (in the quinary language)."
-msgstr "Il titolo di questo compito (nel linguaggio quinario)."
+msgstr "Il titolo di questo compito (nella quinta lingua)."
#: tasks/models.py:97
msgid "The text for this task (in the primary language)."
-msgstr "Il testo per questo compito (nella lingua principale)."
+msgstr "Il testo per questo compito (nella prima lingua)."
#: tasks/models.py:102
msgid "The text for this task (in the secondary language)."
-msgstr "Il testo per questo compito (nella lingua secondaria)."
+msgstr "Il testo per questo compito (nella seconda lingua)."
#: tasks/models.py:107
msgid "The text for this task (in the tertiary language)."
-msgstr "Il testo per questo compito (in lingua terziaria)."
+msgstr "Il testo per questo compito (nella terza lingua)."
#: tasks/models.py:112
msgid "The text for this task (in the quaternary language)."
-msgstr "Il testo per questo compito (in lingua quaternaria)."
+msgstr "Il testo per questo compito (nella quarta lingua)."
#: tasks/models.py:117
msgid "The text for this task (in the quinary language)."
-msgstr "Il testo per questo compito (in lingua quinaria)."
+msgstr "Il testo per questo compito (nella quinta lingua)."
#: tasks/models.py:121 tasks/templates/tasks/export/tasks.html:39
msgid "Start date attribute"
@@ -4397,43 +4395,43 @@ msgstr ""
#: views/models.py:79
msgid "The title for this view (in the primary language)."
-msgstr "Il titolo di questa vista (nella lingua principale)."
+msgstr "Il titolo di questa vista (nella prima lingua)."
#: views/models.py:84
msgid "The title for this view (in the secondary language)."
-msgstr "Il titolo di questa vista (nella lingua secondaria)."
+msgstr "Il titolo di questa vista (nella seconda lingua)."
#: views/models.py:89
msgid "The title for this view (in the tertiary language)."
-msgstr "Il titolo di questa vista (nella lingua terziaria)."
+msgstr "Il titolo di questa vista (nella terza lingua)."
#: views/models.py:94
msgid "The title for this view (in the quaternary language)."
-msgstr "Il titolo di questa vista (in lingua quaternaria)."
+msgstr "Il titolo di questa vista (nella quarta lingua)."
#: views/models.py:99
msgid "The title for this view (in the quinary language)."
-msgstr "Il titolo di questa vista (in linguaggio quinario)."
+msgstr "Il titolo di questa vista (nella quinta lingua)."
#: views/models.py:104
msgid "The help text for this view (in the primary language)."
-msgstr "Il testo di aiuto per questa vista (nella lingua principale)."
+msgstr "Il testo di aiuto per questa vista (nella prima lingua)."
#: views/models.py:109
msgid "The help text for this view (in the secondary language)."
-msgstr "Il testo di aiuto per questa vista (nella lingua secondaria)."
+msgstr "Il testo di aiuto per questa vista (nella seconda lingua)."
#: views/models.py:114
msgid "The help text for this view (in the tertiary language)."
-msgstr "Il testo di aiuto per questa vista (nella lingua terziaria)."
+msgstr "Il testo di aiuto per questa vista (nella terza lingua)."
#: views/models.py:119
msgid "The help text for this view (in the quaternary language)."
-msgstr "Il testo di aiuto per questa vista (in lingua quaternaria)."
+msgstr "Il testo di aiuto per questa vista (nella quarta lingua)."
#: views/models.py:124
msgid "The help text for this view (in the quinary language)."
-msgstr "Il testo di aiuto per questa vista (in linguaggio quinario)."
+msgstr "Il testo di aiuto per questa vista (nella quinta lingua)."
#: views/models.py:129
msgid "Designates whether this view is generally available for projects."
@@ -4451,347 +4449,3 @@ msgstr "file"
#: views/templatetags/view_tags.py:210
msgid "Set"
msgstr "Raccolta"
-
-#~ msgid "Session Login"
-#~ msgstr "Accesso alla sessione"
-
-#~ msgid "You are logged in as: "
-#~ msgstr "Sei loggato come: "
-
-#~ msgid "Viewing as an anonymous user"
-#~ msgstr "Visualizzazione come utente anonimo"
-
-#~ msgid "Powered by "
-#~ msgstr "Alimentato da "
-
-#~ msgid "Autocomplete"
-#~ msgstr "Autocompletamento"
-
-#~ msgid "Free autocomplete"
-#~ msgstr "Completamento automatico vuoto"
-
-#~ msgid "Proceed"
-#~ msgstr "Continua"
-
-#~ msgid "Skip"
-#~ msgstr "Salta"
-
-#~ msgid "Save"
-#~ msgstr "Salva"
-
-#~ msgid "Save and proceed"
-#~ msgstr "Salva e continua"
-
-#~ msgid "Complete questionnaire"
-#~ msgstr "Completare il questionario"
-
-#~ msgid "Save and complete questionnaire"
-#~ msgstr "Salvare e completare il questionario"
-
-#~ msgid "This is a default answer that can be customized."
-#~ msgstr "Questa è una risposta predefinita che può essere personalizzata."
-
-#~ msgid "Erase input"
-#~ msgstr "Pulisci ingresso"
-
-#~ msgid "Please type and select."
-#~ msgstr "Si prega di digitare e selezionare."
-
-#~ msgid "Currently:"
-#~ msgstr "Attualmente:"
-
-#~ msgid "Update:"
-#~ msgstr "Aggiornamento:"
-
-#~ msgid "No options are available."
-#~ msgstr "Nessuna opzione è disponibile."
-
-#~ msgid "Please select"
-#~ msgstr "Selezionare"
-
-#~ msgid "You are about to permanently delete this tab."
-#~ msgstr "Si sta per eliminare definitivamente questa scheda."
-
-#~ msgid ""
-#~ "This includes all given answers for this tab on all pages, not just this "
-#~ "one."
-#~ msgstr ""
-#~ "Questo include tutte le risposte date per questa scheda in tutte le "
-#~ "pagine, non solo in questa."
-
-#~ msgid "Delete"
-#~ msgstr "Elimina"
-
-#~ msgid "Please give the tab a meaningful name."
-#~ msgstr "Si prega di dare alla scheda un nome significativo."
-
-#, python-format
-#~ msgid "(%(section_count)s of %(section_total)s)"
-#~ msgstr "(%(section_count)s di %(section_total)s)"
-
-#, python-format
-#~ msgid "(%(page_count)s of %(page_total)s)"
-#~ msgstr "(%(page_count)s di %(page_total)s)"
-
-#~ msgid "Using the navigation will save your input."
-#~ msgstr "L'uso della navigazione salverà il tuo input."
-
-#~ msgid ""
-#~ "Please note that using the navigation will discard any unsaved input."
-#~ msgstr ""
-#~ "Si prega di notare che l'utilizzo della navigazione eliminerà qualsiasi "
-#~ "input non salvato."
-
-#~ msgid "Reload page"
-#~ msgstr "Ricarica la pagina"
-
-#~ msgid "Back to my projects"
-#~ msgstr "Torna ai miei progetti"
-
-#~ msgid "(optional)"
-#~ msgstr "(opzionale)"
-
-#~ msgid "Edit tab"
-#~ msgstr "Scheda Modifica"
-
-#~ msgid "Remove tab"
-#~ msgstr "Rimuovere la scheda"
-
-#~ msgid "Remove block"
-#~ msgstr "Rimuovere il blocco"
-
-#~ msgid ""
-#~ "An error occurred while saving the answer. Please contact support if this "
-#~ "problem persists."
-#~ msgstr ""
-#~ "Si è verificato un errore durante il salvataggio della risposta. "
-#~ "Contattare l'assistenza se il problema persiste."
-
-#~ msgid "Overview"
-#~ msgstr "Panoramica"
-
-#~ msgid "Progress"
-#~ msgstr "Progresso"
-
-#~ msgid ""
-#~ "This field could not be saved, since somebody else did so while you were "
-#~ "editing. You will need to reload the page to make changes, but your input "
-#~ "will be overwritten."
-#~ msgstr ""
-#~ "Non è stato possibile salvare questo campo, poiché qualcun altro lo ha "
-#~ "fatto mentre si stava modificando. È necessario ricaricare la pagina per "
-#~ "apportare le modifiche, ma i dati inseriti verranno sovrascritti."
-
-#~ msgid ""
-#~ "This field could not be saved, since somebody else removed it while you "
-#~ "were editing. You will need to reload the page to proceed, but your input "
-#~ "will be lost."
-#~ msgstr ""
-#~ "Non è stato possibile salvare questo campo, poiché qualcun altro lo ha "
-#~ "rimosso durante la modifica. È necessario ricaricare la pagina per "
-#~ "procedere, ma i dati inseriti andranno persi."
-
-#, python-format
-#~ msgid "View all projects on %(site)s"
-#~ msgstr "Visualizza tutti i progetti in %(site)s"
-
-#~ msgid "Filter projects"
-#~ msgstr "Filtra i progetti"
-
-#~ msgid "Search project title"
-#~ msgstr "Ricerca titolo del progetto"
-
-#, python-format
-#~ msgid ""
-#~ "%(number_of_filtered_projects)s of %(number_of_projects)s projects shown"
-#~ msgstr ""
-#~ "%(number_of_filtered_projects)s di %(number_of_projects)s progetti "
-#~ "mostrati"
-
-#~ msgid "Import existing project"
-#~ msgstr "Importazione di un progetto esistente"
-
-#~ msgid "Pending invitations"
-#~ msgstr "Inviti in sospeso"
-
-#~ msgid "Click on one of the links to join the projects."
-#~ msgstr "Clicca su uno dei link per unirti ai progetti."
-
-#~ msgid "Last changed"
-#~ msgstr "Ultima modifica"
-
-#~ msgid "All catalogs"
-#~ msgstr "Tutti i cataloghi"
-
-#, python-format
-#~ msgid "All projects on %(site)s"
-#~ msgstr "Tutti i progetti su %(site)s"
-
-#~ msgid "GitHub repository"
-#~ msgstr "Repository GitHub"
-
-#~ msgid "Please use the form username/repository or organization/repository."
-#~ msgstr ""
-#~ "Si prega di utilizzare il modulo nome utente/repository o organizzazione/"
-#~ "repository."
-
-#~ msgid "File path"
-#~ msgstr "Percorso dei file"
-
-#~ msgid "Branch, tag, or commit"
-#~ msgstr "Branch, tag o commit"
-
-#~ msgid "GitLab repository"
-#~ msgstr "Repository GitLab"
-
-#~ msgid "Add GitHub integration"
-#~ msgstr "Aggiungi integrazione GitHub"
-
-#~ msgid "The GitHub repository to send issues to."
-#~ msgstr "Il repository GitHub al quale inviare issues."
-
-#~ msgid "Add GitLab integration"
-#~ msgstr "Aggiungere l'integrazione di GitLab"
-
-#~ msgid "Send to GitLab"
-#~ msgstr "Invia a GitLab"
-
-#, python-brace-format
-#~ msgid ""
-#~ "This integration allow the creation of issues in arbitrary repositories "
-#~ "on {self.gitlab_url}. The upload of attachments is not supported by "
-#~ "GitLab."
-#~ msgstr ""
-#~ "Questa integrazione consente la creazione di problemi in repository "
-#~ "arbitrari su {self.gitlab_url}. Il caricamento di allegati non è "
-#~ "supportato da GitLab."
-
-#~ msgid "The secret for a GitLab webhook to close a task."
-#~ msgstr "Il segreto per un webhook di GitLab per chiudere un compito."
-
-#~ msgid "item"
-#~ msgstr "elemento"
-
-#~ msgid "items"
-#~ msgstr "elementi"
-
-#~ msgid "sets"
-#~ msgstr "raccolte"
-
-#, python-format
-#~ msgid "Add %(name)s"
-#~ msgstr "Aggiungi %(name)s"
-
-#, python-format
-#~ msgid ""
-#~ "You are about to permanently delete the %(name)s %(object)s"
-#~ "strong>."
-#~ msgstr ""
-#~ "%(name)s %(object)s sta per essere eliminato "
-#~ "permanentemente."
-
-#~ msgid ""
-#~ "Entries with might be skipped based on your input."
-#~ msgstr ""
-#~ "Le voci con potrebbero essere saltate in base al tuo input."
-
-#, python-format
-#~ msgid "Update %(name)s"
-#~ msgstr "Aggiorna %(name)s"
-
-#, python-format
-#~ msgid "Remove %(name)s"
-#~ msgstr "Rimuovi %(name)s"
-
-#~ msgid "Plural name (primary)"
-#~ msgstr "Nome plurale (lingua principale)"
-
-#~ msgid "The plural name displayed for this page in the primary language."
-#~ msgstr ""
-#~ "Il nome plurale visualizzato per questa pagina nella lingua principale."
-
-#~ msgid "Plural name (secondary)"
-#~ msgstr "Nome plurale (seconda lingua)"
-
-#~ msgid "The plural name displayed for this page in the secondary language."
-#~ msgstr ""
-#~ "Il nome plurale visualizzato per questa pagina nella lingua secondaria."
-
-#~ msgid "Plural name (tertiary)"
-#~ msgstr "Nome plurale (terza lingua)"
-
-#~ msgid "The plural name displayed for this page in the tertiary language."
-#~ msgstr ""
-#~ "Il nome plurale visualizzato per questa pagina nella lingua terziaria."
-
-#~ msgid "Plural name (quaternary)"
-#~ msgstr "Nome plurale (quarta lingua)"
-
-#~ msgid "The plural name displayed for this page in the quaternary language."
-#~ msgstr ""
-#~ "Il nome plurale visualizzato per questa pagina nella lingua quaternaria."
-
-#~ msgid "Plural name (quinary)"
-#~ msgstr "Nome plurale (quinta lingua)"
-
-#~ msgid "The plural name displayed for this page in the quinary language."
-#~ msgstr ""
-#~ "Il nome plurale visualizzato per questa pagina nella lingua quinaria."
-
-#~ msgid "The plural name displayed for this question in the primary language."
-#~ msgstr ""
-#~ "Il nome plurale visualizzato per questa domanda nella lingua principale."
-
-#~ msgid ""
-#~ "The plural name displayed for this question in the secondary language."
-#~ msgstr ""
-#~ "Il nome plurale visualizzato per questa domanda nella seconda lingua."
-
-#~ msgid ""
-#~ "The plural name displayed for this question in the tertiary language."
-#~ msgstr "Il nome plurale visualizzato per questa domanda nella terza lingua."
-
-#~ msgid ""
-#~ "The plural name displayed for this question in the quaternary language."
-#~ msgstr ""
-#~ "Il nome plurale visualizzato per questa domanda nella quarta lingua."
-
-#~ msgid "The plural name displayed for this question in the quinary language."
-#~ msgstr ""
-#~ "Il nome plurale visualizzato per questa domanda nella quinta lingua."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the primary language."
-#~ msgstr ""
-#~ "Il nome plurale visualizzato per questo set di domande nella lingua "
-#~ "principale."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the secondary language."
-#~ msgstr ""
-#~ "Il nome plurale visualizzato per questo set di domande nella lingua "
-#~ "secondaria."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the tertiary language."
-#~ msgstr ""
-#~ "Il nome plurale visualizzato per questo set di domande nella lingua "
-#~ "terziaria."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the quaternary "
-#~ "language."
-#~ msgstr ""
-#~ "Il nome plurale visualizzato per questo set di domande nella lingua "
-#~ "quaternaria."
-
-#~ msgid ""
-#~ "The plural name displayed for this question set in the quinary language."
-#~ msgstr ""
-#~ "Il nome plurale visualizzato per questo set di domande nella lingua "
-#~ "quinaria."
-
-#~ msgid "Verbose name plural"
-#~ msgstr "Nome plurale lungo"
diff --git a/rdmo/locale/it/LC_MESSAGES/djangojs.mo b/rdmo/locale/it/LC_MESSAGES/djangojs.mo
index 04cc36f233..249f20e488 100644
Binary files a/rdmo/locale/it/LC_MESSAGES/djangojs.mo and b/rdmo/locale/it/LC_MESSAGES/djangojs.mo differ
diff --git a/rdmo/locale/it/LC_MESSAGES/djangojs.po b/rdmo/locale/it/LC_MESSAGES/djangojs.po
index 3088aa0650..0c3f048f1c 100644
--- a/rdmo/locale/it/LC_MESSAGES/djangojs.po
+++ b/rdmo/locale/it/LC_MESSAGES/djangojs.po
@@ -2,51 +2,60 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2025-07-04 11:19+0000\n"
+"POT-Creation-Date: 2025-12-12 13:02+0100\n"
"PO-Revision-Date: \n"
-"Last-Translator: Dario Pilori \n"
+"Last-Translator: Giacomo Lanza \n"
"Language-Team: \n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"X-Generator: Poedit 3.6\n"
+"X-Generator: Poedit 3.8\n"
#: core/assets/js/components/Modal.js:20
#: management/assets/js/components/common/Modals.js:16
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Close"
msgstr "Chiudi"
#: core/assets/js/components/Modal.js:26
#: management/assets/js/components/common/Buttons.js:19
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Save"
msgstr "Salva"
#: core/assets/js/components/SearchField.js:35
#: core/assets/js/components/SearchField.js:43
#: projects/assets/js/projects/utils/translations.js:15
+#: projects/static/projects/js/projects.js:2
msgid "Search"
msgstr "Ricerca"
#: core/assets/js/components/SearchField.js:39
#: management/assets/js/components/common/Filter.js:12
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Reset"
msgstr "Reset"
#: core/assets/js/components/UploadDropZone.js:17
+#: projects/static/projects/js/projects.js:2
#, javascript-format
msgid "%s has unsupported file type"
msgstr "%s ha un tipo di file non supportato"
#: core/assets/js/components/UploadDropZone.js:28
+#: projects/static/projects/js/projects.js:2
msgid "Drop the file here ..."
msgstr "Lasciate il file qui..."
#: core/assets/js/components/UploadDropZone.js:32
+#: projects/static/projects/js/projects.js:2
msgid "Drag and drop a file here or click to select a file"
msgstr "Trascinare e rilasciare un file qui o fare clic per selezionarlo"
@@ -56,12 +65,14 @@ msgstr "Trascinare e rilasciare un file qui o fare clic per selezionarlo"
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageButtons.js:11
#: projects/assets/js/interview/components/sidebar/Buttons.js:22
+#: projects/static/projects/js/interview.js:2
msgid "Back"
msgstr "Indietro"
#: management/assets/js/components/common/Buttons.js:13
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageHead.js:166
+#: projects/static/projects/js/interview.js:2
msgid "Create"
msgstr "Creare"
@@ -74,6 +85,7 @@ msgstr "Creare e continuare a modificare"
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageHead.js:176
#: projects/assets/js/interview/components/main/questionset/QuestionSetCopySet.js:31
+#: projects/static/projects/js/interview.js:2
msgid "Copy"
msgstr "Copia"
@@ -97,6 +109,7 @@ msgstr "Nuovo"
#: management/assets/js/components/common/Modals.js:19
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:8
+#: projects/static/projects/js/interview.js:2
msgid "Delete"
msgstr "Elimina"
@@ -211,6 +224,7 @@ msgstr "Questo attributo è di sola lettura"
#: management/assets/js/components/element/Attribute.js:44
#: management/assets/js/constants/elements.js:49
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Attribute"
msgstr "Attributo"
@@ -289,7 +303,8 @@ msgstr "Questo catalogo è di sola lettura"
#: management/assets/js/components/element/Catalog.js:58
#: management/assets/js/constants/elements.js:44
#: management/static/management/js/management.js:2
-#: projects/assets/js/interview/components/sidebar/Overview.js:30
+#: projects/assets/js/interview/components/sidebar/Overview.js:35
+#: projects/static/projects/js/interview.js:2
msgid "Catalog"
msgstr "Catalogo"
@@ -308,6 +323,7 @@ msgstr "Questa condizione è di sola lettura"
#: management/assets/js/components/element/Condition.js:37
#: management/assets/js/constants/elements.js:52
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Condition"
msgstr "Condizione"
@@ -384,6 +400,7 @@ msgstr "Questa opzione è di sola lettura"
#: management/assets/js/components/element/Option.js:37
#: management/assets/js/constants/elements.js:51
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Option"
msgstr "Opzione"
@@ -412,6 +429,7 @@ msgstr "Questo set di opzioni è di sola lettura"
#: management/assets/js/components/element/OptionSet.js:47
#: management/assets/js/constants/elements.js:50
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Option set"
msgstr "Raccolta di opzioni"
@@ -500,6 +518,7 @@ msgstr "Questa pagina è di sola lettura"
#: management/assets/js/components/element/Page.js:60
#: management/assets/js/constants/elements.js:46
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Page"
msgstr "Pagina"
@@ -538,6 +557,7 @@ msgstr "Questa domanda è di sola lettura"
#: management/assets/js/components/element/Question.js:48
#: management/assets/js/constants/elements.js:48
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Question"
msgstr "Domanda"
@@ -601,6 +621,7 @@ msgstr "Gamma"
#: management/assets/js/components/edit/EditQuestion.js:179
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/question/QuestionDefault.js:9
+#: projects/static/projects/js/interview.js:2
msgid "Default"
msgstr "Predefinito"
@@ -619,6 +640,7 @@ msgstr "Questo set di domande è di sola lettura"
#: management/assets/js/components/element/QuestionSet.js:59
#: management/assets/js/constants/elements.js:47
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Question set"
msgstr "Raccolta di domande"
@@ -667,6 +689,7 @@ msgstr "Questa sezione è di sola lettura"
#: management/assets/js/components/element/Section.js:54
#: management/assets/js/constants/elements.js:45
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Section"
msgstr "Sezione"
@@ -695,6 +718,7 @@ msgstr "Questo task è di sola lettura"
#: management/assets/js/components/element/Task.js:53
#: management/assets/js/constants/elements.js:53
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "Task"
msgstr "Attività"
@@ -713,6 +737,7 @@ msgstr "Questa vista è di sola lettura"
#: management/assets/js/components/element/View.js:48
#: management/assets/js/constants/elements.js:54
#: management/static/management/js/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid "View"
msgstr "Visualizza"
@@ -732,6 +757,7 @@ msgstr "Modifica"
#: management/assets/js/components/edit/common/OrderedMultiSelect.js:65
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/questionset/QuestionSetRemoveSet.js:25
+#: projects/static/projects/js/interview.js:2
msgid "Remove"
msgstr "Rimuovi"
@@ -986,6 +1012,7 @@ msgstr "Esportare domanda"
#: management/assets/js/components/element/Question.js:53
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/question/QuestionOptional.js:6
+#: projects/static/projects/js/interview.js:2
msgid "This is an optional question."
msgstr "Questa è una domanda facoltativa."
@@ -1388,6 +1415,7 @@ msgstr "Modificato"
#: management/assets/js/components/import/ImportSuccessElement.js:16
#: management/static/management/js/management.js:2
#: projects/assets/js/projects/utils/constants.js:8
+#: projects/static/projects/js/projects.js:2
msgid "Created"
msgstr "Creato"
@@ -1658,6 +1686,7 @@ msgstr "Si sta per eliminare definitivamente l'attributo:"
#: management/static/management/js/management.js:2
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:21
#: projects/assets/js/interview/components/main/questionset/QuestionSetRemoveSet.js:29
+#: projects/static/projects/js/interview.js:2
msgid "This action cannot be undone!"
msgstr "Questa azione non può essere annullata!"
@@ -1860,132 +1889,162 @@ msgid "Set URI prefix for all elements"
msgstr "Impostare il prefisso URI per tutti gli elementi"
#: projects/assets/js/interview/components/main/Breadcrumb.js:17
+#: projects/static/projects/js/interview.js:2
msgid "My Projects"
msgstr "I miei progetti"
#: projects/assets/js/interview/components/main/Contact.js:26
#: projects/assets/js/interview/components/main/question/QuestionContact.js:7
+#: projects/static/projects/js/interview.js:2
msgid "Contact support"
msgstr "Contatta l'assistenza"
#: projects/assets/js/interview/components/main/Contact.js:27
+#: projects/static/projects/js/interview.js:2
msgid "Send message"
msgstr "Invia il messaggio"
#: projects/assets/js/interview/components/main/Done.js:20
+#: projects/static/projects/js/interview.js:2
msgid "View answers"
msgstr "Visualizza le risposte"
#: projects/assets/js/interview/components/main/Done.js:24
#: projects/assets/js/interview/components/main/Errors.js:33
+#: projects/static/projects/js/interview.js:2
msgid "Back to project overview"
msgstr "Torna alla panoramica del progetto"
#: projects/assets/js/interview/components/main/Errors.js:30
-#: projects/assets/js/interview/components/sidebar/Overview.js:58
+#: projects/assets/js/interview/components/sidebar/Overview.js:63
+#: projects/static/projects/js/interview.js:2
msgid "Reload page"
msgstr "Ricarica la pagina"
#: projects/assets/js/interview/components/main/Search.js:67
+#: projects/static/projects/js/interview.js:2
msgid "Search for project or snapshot title, or answer text ..."
msgstr ""
"Cercate il titolo del progetto o dell'istantanea, oppure il testo della "
"risposta ..."
#: projects/assets/js/interview/components/main/Search.js:69
+#: projects/static/projects/js/interview.js:2
msgid "No answers match your search."
msgstr "Nessuna risposta corrisponde alla vostra ricerca."
#: projects/assets/js/interview/components/main/Search.js:71
#: projects/assets/js/interview/components/main/Search.js:115
#: projects/assets/js/interview/components/main/widget/SelectInput.js:94
+#: projects/static/projects/js/interview.js:2
msgid "Loading ..."
msgstr "Caricamento ..."
#: projects/assets/js/interview/components/main/Search.js:82
-#: projects/assets/js/interview/components/sidebar/Overview.js:27
+#: projects/assets/js/interview/components/sidebar/Overview.js:32
+#: projects/static/projects/js/interview.js:2
msgid "Project"
msgstr "Progetto"
#: projects/assets/js/interview/components/main/Search.js:86
+#: projects/static/projects/js/interview.js:2
msgid "Snapshot"
msgstr "Istantanea"
#: projects/assets/js/interview/components/main/Search.js:92
#: projects/assets/js/interview/components/main/Search.js:97
+#: projects/static/projects/js/interview.js:2
msgid "Tab"
msgstr "Scheda"
#: projects/assets/js/interview/components/main/Search.js:111
+#: projects/static/projects/js/interview.js:2
msgid "Restrict the search to a particular project ..."
msgstr "Limitare la ricerca a un particolare progetto ..."
#: projects/assets/js/interview/components/main/Search.js:113
+#: projects/static/projects/js/interview.js:2
msgid "No projects matching your search."
msgstr "Nessun progetto corrispondente alla vostra ricerca."
#: projects/assets/js/interview/components/main/Search.js:141
+#: projects/static/projects/js/interview.js:2
msgid "Include snapshots in the search"
msgstr "Includere le istantanee nella ricerca"
#: projects/assets/js/interview/components/main/page/PageButtons.js:18
#: projects/assets/js/interview/components/sidebar/Buttons.js:15
+#: projects/static/projects/js/interview.js:2
msgid "Proceed"
msgstr "Procedere"
#: projects/assets/js/interview/components/main/page/PageButtons.js:23
+#: projects/static/projects/js/interview.js:2
msgid "Complete questionnaire"
msgstr "Completare il questionario"
#: projects/assets/js/interview/components/main/page/PageHead.js:33
#: projects/assets/js/interview/components/main/page/PageHead.js:175
+#: projects/static/projects/js/interview.js:2
msgid "Copy tab"
-msgstr "Scheda Copia"
+msgstr "Copia scheda"
#: projects/assets/js/interview/components/main/page/PageHead.js:34
+#: projects/static/projects/js/interview.js:2
msgid "Add tab"
msgstr "Aggiungi scheda"
#: projects/assets/js/interview/components/main/page/PageHead.js:35
+#: projects/static/projects/js/interview.js:2
msgid "Edit tab"
-msgstr "Scheda Modifica"
+msgstr "Modifica scheda"
#: projects/assets/js/interview/components/main/page/PageHead.js:36
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:87
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:80
+#: projects/static/projects/js/interview.js:2
msgid "Reuse answers"
-msgstr "Riutilizzare le risposte"
+msgstr "Riutilizza le risposte"
#: projects/assets/js/interview/components/main/page/PageHead.js:37
+#: projects/static/projects/js/interview.js:2
msgid "Remove tab"
-msgstr "Rimuovere la scheda"
+msgstr "Rimuovi scheda"
#: projects/assets/js/interview/components/main/page/PageHead.js:165
+#: projects/static/projects/js/interview.js:2
msgid "Create tab"
-msgstr "Scheda Crea"
+msgstr "Crea scheda"
#: projects/assets/js/interview/components/main/page/PageHead.js:186
+#: projects/static/projects/js/interview.js:2
msgid "Update tab"
-msgstr "Scheda di aggiornamento"
+msgstr "Aggiornare scheda"
#: projects/assets/js/interview/components/main/page/PageHead.js:187
+#: projects/static/projects/js/interview.js:2
msgid "Update"
msgstr "Aggiornamento"
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:8
+#: projects/static/projects/js/interview.js:2
msgid "Delete tab"
-msgstr "Scheda Elimina"
+msgstr "Elimina scheda"
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:14
+#: projects/static/projects/js/interview.js:2
#, javascript-format
msgid "You are about to permanently delete the tab named: %s"
-msgstr "You are about to permanently delete the tab named: %s"
+msgstr ""
+"Si sta per eliminare definitivamente la seguente scheda: %s"
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:17
+#: projects/static/projects/js/interview.js:2
msgid "You are about to permanently delete this tab."
msgstr "Si sta per eliminare definitivamente questa scheda."
#: projects/assets/js/interview/components/main/page/PageHeadDeleteModal.js:20
+#: projects/static/projects/js/interview.js:2
msgid ""
"This includes all given answers for this tab on all pages, not just this one."
msgstr ""
@@ -1993,19 +2052,24 @@ msgstr ""
"non solo in questa."
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:59
+#: projects/static/projects/js/interview.js:2
msgid "You can add a new tab using the create button."
msgstr "È possibile aggiungere una nuova scheda utilizzando il pulsante Crea."
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:65
#: projects/assets/js/projects/utils/constants.js:4
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Name"
msgstr "Nome"
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:81
+#: projects/static/projects/js/interview.js:2
msgid "Please give the tab a meaningful name."
msgstr "Si prega di dare alla scheda un nome significativo."
#: projects/assets/js/interview/components/main/page/PageHeadFormModal.js:93
+#: projects/static/projects/js/interview.js:2
msgid ""
"You can populate this tab with answers from a similar tab in any project you "
"are allowed to access."
@@ -2014,18 +2078,22 @@ msgstr ""
"qualsiasi progetto a cui si ha accesso."
#: projects/assets/js/interview/components/main/page/PageHeadReuseModal.js:43
+#: projects/static/projects/js/interview.js:2
msgid "Reuse tab"
-msgstr "Scheda Riutilizzo"
+msgstr "Riutilizzare scheda"
#: projects/assets/js/interview/components/main/page/PageHeadReuseModal.js:43
+#: projects/static/projects/js/interview.js:2
msgid "Reuse"
msgstr "Riutilizzo"
#: projects/assets/js/interview/components/main/page/PageHeadReuseModal.js:48
+#: projects/static/projects/js/interview.js:2
msgid "Answers"
msgstr "Risposte"
#: projects/assets/js/interview/components/main/page/PageHeadReuseModal.js:54
+#: projects/static/projects/js/interview.js:2
msgid ""
"You can populate this tab with answers from a similar tab in any project you "
"have access to. This only affects questions that don't already have an "
@@ -2036,6 +2104,7 @@ msgstr ""
"hanno già una risposta."
#: projects/assets/js/interview/components/main/question/QuestionAddValue.js:21
+#: projects/static/projects/js/interview.js:2
msgid "Add answer"
msgstr "Aggiungi risposta"
@@ -2043,24 +2112,29 @@ msgstr "Aggiungi risposta"
#: projects/assets/js/interview/components/main/question/QuestionCopyValue.js:14
#: projects/assets/js/interview/components/main/question/QuestionCopyValues.js:10
#: projects/assets/js/interview/components/main/question/QuestionCopyValues.js:11
+#: projects/static/projects/js/interview.js:2
msgid "Apply this answer to all tabs where this question is empty"
msgstr ""
"Applicare questa risposta a tutte le schede in cui questa domanda è vuota"
#: projects/assets/js/interview/components/main/question/QuestionCopyValues.js:16
+#: projects/static/projects/js/interview.js:2
msgid "Apply to all"
msgstr "Si applica a tutti"
#: projects/assets/js/interview/components/main/question/QuestionDefault.js:8
+#: projects/static/projects/js/interview.js:2
msgid "This is a default answer that can be customized."
msgstr "Si tratta di una risposta predefinita che può essere personalizzata."
#: projects/assets/js/interview/components/main/question/QuestionEraseValue.js:11
#: projects/assets/js/interview/components/main/question/QuestionEraseValues.js:11
+#: projects/static/projects/js/interview.js:2
msgid "Erase input"
msgstr "Cancellazione dell'ingresso"
#: projects/assets/js/interview/components/main/question/QuestionError.js:8
+#: projects/static/projects/js/interview.js:2
msgid ""
"This field could not be saved, since somebody else did so while you were "
"editing. You will need to reload the page to make changes, but your input "
@@ -2071,10 +2145,12 @@ msgstr ""
"le modifiche, ma i dati inseriti verranno sovrascritti."
#: projects/assets/js/interview/components/main/question/QuestionError.js:11
+#: projects/static/projects/js/interview.js:2
msgid "You reached the file quota for this project."
msgstr "È stata raggiunta la quota di file per questo progetto."
#: projects/assets/js/interview/components/main/question/QuestionError.js:17
+#: projects/static/projects/js/interview.js:2
msgid ""
"This field could not be saved, since somebody else removed it while you were "
"editing. You will need to reload the page to proceed, but your input will be "
@@ -2085,39 +2161,47 @@ msgstr ""
"procedere, ma i dati inseriti andranno persi."
#: projects/assets/js/interview/components/main/question/QuestionError.js:23
+#: projects/static/projects/js/interview.js:2
msgid "An unknown error occurred, please contact support"
msgstr "Si è verificato un errore sconosciuto, contattare l'assistenza"
#: projects/assets/js/interview/components/main/question/QuestionOptional.js:7
+#: projects/static/projects/js/interview.js:2
msgid "Optional"
msgstr "Opzionale"
#: projects/assets/js/interview/components/main/question/QuestionRemoveValue.js:7
+#: projects/static/projects/js/interview.js:2
msgid "Remove answer"
msgstr "Rimuovere la risposta"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:57
+#: projects/static/projects/js/interview.js:2
msgid "Append"
msgstr "Appendice"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:62
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:85
+#: projects/static/projects/js/interview.js:2
msgid "Replace"
msgstr "Sostituire"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:68
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:72
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:85
+#: projects/static/projects/js/interview.js:2
msgid "Reuse answer"
msgstr "Risposta di riutilizzo"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:76
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:90
+#: projects/static/projects/js/interview.js:2
msgid "Answer"
msgstr "Risposta"
#: projects/assets/js/interview/components/main/question/QuestionReuseValue.js:88
#: projects/assets/js/interview/components/main/question/QuestionReuseValues.js:103
+#: projects/static/projects/js/interview.js:2
msgid ""
"You can reuse an answer from a similar question in any project you have "
"access to."
@@ -2126,111 +2210,139 @@ msgstr ""
"progetto a cui si ha accesso."
#: projects/assets/js/interview/components/main/questionset/QuestionSetCopySet.js:31
+#: projects/static/projects/js/interview.js:2
msgid "Copy block"
msgstr "Blocco copia"
#: projects/assets/js/interview/components/main/questionset/QuestionSetRemoveSet.js:25
+#: projects/static/projects/js/interview.js:2
msgid "Remove block"
msgstr "Rimuovere il blocco"
#: projects/assets/js/interview/components/main/questionset/QuestionSetRemoveSet.js:28
+#: projects/static/projects/js/interview.js:2
msgid "You are about to permanently remove this block."
msgstr "State per rimuovere definitivamente questo blocco."
#: projects/assets/js/interview/components/main/widget/FileInput.js:29
+#: projects/static/projects/js/interview.js:2
msgid "Current file:"
msgstr "Fascicolo attuale:"
#: projects/assets/js/interview/components/main/widget/FileInput.js:35
+#: projects/static/projects/js/interview.js:2
msgid "No file stored."
msgstr "Nessun file memorizzato."
#: projects/assets/js/interview/components/main/widget/FileInput.js:48
+#: projects/static/projects/js/interview.js:2
msgid "Drop the files here ..."
msgstr "Lasciate i file qui ..."
#: projects/assets/js/interview/components/main/widget/FileInput.js:50
+#: projects/static/projects/js/interview.js:2
msgid "Drag 'n drop some files here, or click to select files."
msgstr "Trascinare qui i file o fare clic per selezionarli."
-#: projects/assets/js/interview/components/main/widget/RadioInput.js:57
+#: projects/assets/js/interview/components/main/widget/RadioInput.js:68
+#: projects/static/projects/js/interview.js:2
msgid "No options are available."
msgstr "Non sono disponibili opzioni."
#: projects/assets/js/interview/components/main/widget/SelectInput.js:90
+#: projects/static/projects/js/interview.js:2
msgid "Select ..."
msgstr "Selezionare ..."
#: projects/assets/js/interview/components/main/widget/SelectInput.js:93
+#: projects/static/projects/js/interview.js:2
msgid "No options found"
msgstr "Nessuna opzione trovata"
#: projects/assets/js/interview/components/main/widget/YesNoInput.js:40
+#: projects/static/projects/js/interview.js:2
msgid "Yes"
msgstr "Si"
#: projects/assets/js/interview/components/main/widget/YesNoInput.js:52
+#: projects/static/projects/js/interview.js:2
msgid "No"
msgstr "No"
-#: projects/assets/js/interview/components/main/widget/common/AdditionalTextInput.js:22
-#: projects/assets/js/interview/components/main/widget/common/AdditionalTextareaInput.js:21
+#: projects/assets/js/interview/components/main/widget/common/AdditionalTextInput.js:11
+#: projects/assets/js/interview/components/main/widget/common/AdditionalTextareaInput.js:11
+#: projects/static/projects/js/interview.js:2
msgid "Additional input"
msgstr "Ingresso aggiuntivo"
#: projects/assets/js/interview/components/main/widget/common/Unit.js:21
+#: projects/static/projects/js/interview.js:2
msgid "The unit for this answer."
msgstr "L'unità per questa risposta."
#: projects/assets/js/interview/components/sidebar/Navigation.js:12
+#: projects/static/projects/js/interview.js:2
msgid "Navigation"
msgstr "Navigazione"
#: projects/assets/js/interview/components/sidebar/NavigationLink.js:6
+#: projects/static/projects/js/interview.js:2
#, javascript-format
msgid "(%s of %s)"
msgstr "(%s di %s)"
#: projects/assets/js/interview/components/sidebar/NavigationLink.js:18
+#: projects/static/projects/js/interview.js:2
msgid "Complete"
msgstr "Completo"
-#: projects/assets/js/interview/components/sidebar/Overview.js:21
+#: projects/assets/js/interview/components/sidebar/Overview.js:26
+#: projects/static/projects/js/interview.js:2
msgid "Overview"
msgstr "Panoramica"
-#: projects/assets/js/interview/components/sidebar/Overview.js:39
+#: projects/assets/js/interview/components/sidebar/Overview.js:44
+#: projects/static/projects/js/interview.js:2
msgid "Hide management panels"
msgstr "Nascondere i pannelli di gestione"
-#: projects/assets/js/interview/components/sidebar/Overview.js:39
+#: projects/assets/js/interview/components/sidebar/Overview.js:44
+#: projects/static/projects/js/interview.js:2
msgid "Show management panels"
msgstr "Mostra i pannelli di gestione"
-#: projects/assets/js/interview/components/sidebar/Overview.js:49
+#: projects/assets/js/interview/components/sidebar/Overview.js:54
+#: projects/static/projects/js/interview.js:2
msgid "You don't have write access to this project."
msgstr "Non avete accesso in scrittura a questo progetto."
-#: projects/assets/js/interview/components/sidebar/Overview.js:50
+#: projects/assets/js/interview/components/sidebar/Overview.js:55
+#: projects/static/projects/js/interview.js:2
msgid "read only"
msgstr "solo lettura"
-#: projects/assets/js/interview/components/sidebar/Overview.js:61
+#: projects/assets/js/interview/components/sidebar/Overview.js:66
+#: projects/static/projects/js/interview.js:2
msgid "Back to my projects"
msgstr "Torna ai miei progetti"
#: projects/assets/js/interview/components/sidebar/Progress.js:10
#: projects/assets/js/projects/components/main/Projects.js:39
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
#, javascript-format
msgid "%s of %s"
msgstr "%s di %s"
#: projects/assets/js/interview/components/sidebar/Progress.js:14
#: projects/assets/js/projects/utils/constants.js:7
+#: projects/static/projects/js/interview.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Progress"
msgstr "Progressi"
#: projects/assets/js/interview/constants/management.js:2
+#: projects/static/projects/js/interview.js:2
msgid ""
"These links take you directly to the elements in the management interface. "
"This part of the page is visible to you, because you are either an Admin, "
@@ -2244,185 +2356,201 @@ msgstr ""
#: projects/assets/js/projects/components/helper/PendingInvitations.js:22
#: projects/assets/js/projects/utils/translations.js:2
+#: projects/static/projects/js/projects.js:2
msgid "Accept"
msgstr "Accettare"
#: projects/assets/js/projects/components/helper/PendingInvitations.js:26
#: projects/assets/js/projects/utils/translations.js:4
+#: projects/static/projects/js/projects.js:2
msgid "Decline"
msgstr "Declino"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:82
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:81
+#: projects/static/projects/js/projects.js:2
msgid "Filter by catalog"
msgstr "Filtrare per catalogo"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:88
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:87
+#: projects/static/projects/js/projects.js:2
msgid "Select catalog"
msgstr "Seleziona il catalogo"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:95
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:94
+#: projects/static/projects/js/projects.js:2
msgid "Filter by created date"
msgstr "Filtrare per data di creazione"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:107
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:141
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:106
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:140
+#: projects/static/projects/js/projects.js:2
msgid "Select start date"
msgstr "Selezionare la data di inizio"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:120
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:154
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:119
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:153
+#: projects/static/projects/js/projects.js:2
msgid "Select end date"
msgstr "Selezionare la data di fine"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:129
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:128
+#: projects/static/projects/js/projects.js:2
msgid "Filter by last changed date"
msgstr "Filtrare per data di ultima modifica"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:168
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:167
#: projects/assets/js/projects/utils/translations.js:14
+#: projects/static/projects/js/projects.js:2
msgid "Reset all filters"
msgstr "Azzeramento di tutti i filtri"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:172
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:171
#: projects/assets/js/projects/utils/translations.js:6
+#: projects/static/projects/js/projects.js:2
msgid "Hide filters"
msgstr "Nascondere i filtri"
-#: projects/assets/js/projects/components/helper/ProjectFilters.js:172
+#: projects/assets/js/projects/components/helper/ProjectFilters.js:171
#: projects/assets/js/projects/utils/translations.js:17
+#: projects/static/projects/js/projects.js:2
msgid "Show filters"
msgstr "Mostra filtri"
#: projects/assets/js/projects/components/helper/ProjectImport.js:11
+#: projects/static/projects/js/projects.js:2
msgid "Import directly"
msgstr "Importazione diretta"
#: projects/assets/js/projects/components/helper/ProjectImport.js:27
#: projects/assets/js/projects/utils/translations.js:8
+#: projects/static/projects/js/projects.js:2
msgid "Import from file"
msgstr "Importazione da file"
#: projects/assets/js/projects/components/main/Projects.js:25
#: projects/assets/js/projects/components/main/Projects.js:204
#: projects/assets/js/projects/utils/translations.js:13
+#: projects/static/projects/js/projects.js:2
msgid "Pending invitations"
msgstr "Inviti in sospeso"
#: projects/assets/js/projects/components/main/Projects.js:31
#: projects/assets/js/projects/components/main/Projects.js:216
#: projects/assets/js/projects/utils/translations.js:7
+#: projects/static/projects/js/projects.js:2
msgid "Import project"
msgstr "Importazione del progetto"
#: projects/assets/js/projects/components/main/Projects.js:36
+#: projects/static/projects/js/projects.js:2
#, javascript-format
msgid "%s of %s projects are displayed"
msgstr "Vengono visualizzati %s di %s progetti"
#: projects/assets/js/projects/components/main/Projects.js:50
#: projects/assets/js/projects/utils/translations.js:18
+#: projects/static/projects/js/projects.js:2
msgid "View all projects"
msgstr "Visualizza tutti i progetti"
#: projects/assets/js/projects/components/main/Projects.js:50
#: projects/assets/js/projects/utils/translations.js:19
+#: projects/static/projects/js/projects.js:2
msgid "View my projects"
msgstr "Visualizza i miei progetti"
#: projects/assets/js/projects/components/main/Projects.js:51
#: projects/assets/js/projects/utils/translations.js:11
+#: projects/static/projects/js/projects.js:2
msgid "My projects"
msgstr "I miei progetti"
#: projects/assets/js/projects/components/main/Projects.js:51
#: projects/assets/js/projects/utils/translations.js:3
+#: projects/static/projects/js/projects.js:2
msgid "All projects"
msgstr "Tutti i progetti"
#: projects/assets/js/projects/components/main/Projects.js:55
+#: projects/static/projects/js/projects.js:2
msgid "Copy project"
msgstr "Copia progetto"
#: projects/assets/js/projects/components/main/Projects.js:56
+#: projects/static/projects/js/projects.js:2
msgid "Update project"
msgstr "Aggiornamento progetto"
#: projects/assets/js/projects/components/main/Projects.js:57
+#: projects/static/projects/js/projects.js:2
msgid "Delete project"
msgstr "Cancellare il progetto"
#: projects/assets/js/projects/components/main/Projects.js:107
+#: projects/static/projects/js/projects.js:2
msgid "Scroll to top"
msgstr "Scorri in alto"
#: projects/assets/js/projects/components/main/Projects.js:113
#: projects/assets/js/projects/utils/translations.js:10
+#: projects/static/projects/js/projects.js:2
msgid "Load more"
msgstr "Per saperne di più"
#: projects/assets/js/projects/components/main/Projects.js:219
#: projects/assets/js/projects/utils/translations.js:12
+#: projects/static/projects/js/projects.js:2
msgid "New project"
msgstr "Nuovo progetto"
#: projects/assets/js/projects/components/main/Projects.js:232
#: projects/assets/js/projects/utils/translations.js:16
+#: projects/static/projects/js/projects.js:2
msgid "Search projects"
msgstr "Progetti di ricerca"
#: projects/assets/js/projects/utils/constants.js:5
+#: projects/static/projects/js/projects.js:2
msgid "Role"
msgstr "Ruolo"
#: projects/assets/js/projects/utils/constants.js:6
#: projects/assets/js/projects/utils/constants.js:17
+#: projects/static/projects/js/projects.js:2
msgid "Owner"
msgstr "Proprietario"
#: projects/assets/js/projects/utils/constants.js:9
+#: projects/static/projects/js/projects.js:2
msgid "Last changed"
msgstr "Ultima modifica"
#: projects/assets/js/projects/utils/constants.js:10
+#: projects/static/projects/js/projects.js:2
msgid "Actions"
msgstr "Azioni"
#: projects/assets/js/projects/utils/constants.js:14
+#: projects/static/projects/js/projects.js:2
msgid "Author"
msgstr "Autore"
#: projects/assets/js/projects/utils/constants.js:15
+#: projects/static/projects/js/projects.js:2
msgid "Guest"
msgstr "Ospite"
#: projects/assets/js/projects/utils/constants.js:16
+#: projects/static/projects/js/projects.js:2
msgid "Manager"
msgstr "Direttore"
#: projects/assets/js/projects/utils/translations.js:5
+#: projects/static/projects/js/projects.js:2
msgid "Filter"
msgstr "Filtro"
#: projects/assets/js/projects/utils/translations.js:9
+#: projects/static/projects/js/projects.js:2
msgid "Load all"
msgstr "Caricare tutti"
-
-#~ msgid "catalog"
-#~ msgstr "catalogo"
-
-#~ msgid "task"
-#~ msgstr "attività"
-
-#~ msgid "created"
-#~ msgstr "creato"
-
-#~ msgid "attribute"
-#~ msgstr "attributo"
-
-#, javascript-format
-#~ msgid "Add %s"
-#~ msgstr "Aggiungi %s"
-
-#, javascript-format
-#~ msgid "Create new %s"
-#~ msgstr "Creare un nuovo %s"
diff --git a/rdmo/management/imports.py b/rdmo/management/imports.py
index 6bbffc0e7f..38036cdd3e 100644
--- a/rdmo/management/imports.py
+++ b/rdmo/management/imports.py
@@ -1,7 +1,6 @@
import copy
import logging
from collections import OrderedDict
-from typing import Optional
from django.conf import settings
from django.contrib.sites.shortcuts import get_current_site
@@ -57,7 +56,7 @@
def import_elements(uploaded_elements: OrderedDict,
save: bool = True,
- request: Optional[HttpRequest] = None) -> list[dict]:
+ request: HttpRequest | None = None) -> list[dict]:
imported_elements = []
uploaded_elements_initial_ordering = {uri: n for n, uri in enumerate(uploaded_elements.keys())}
uploaded_uris = set(uploaded_elements.keys())
@@ -94,9 +93,9 @@ def import_elements(uploaded_elements: OrderedDict,
def import_element(
- element: Optional[dict] = None,
+ element: dict | None = None,
save: bool = True,
- request: Optional[HttpRequest] = None,
+ request: HttpRequest | None = None,
current_site = None
) -> dict:
diff --git a/rdmo/management/managers.py b/rdmo/management/managers.py
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/rdmo/management/rules.py b/rdmo/management/rules.py
index 7d71fc2420..4fbfed13c0 100644
--- a/rdmo/management/rules.py
+++ b/rdmo/management/rules.py
@@ -6,16 +6,8 @@
@rules.predicate
def is_editor(user) -> bool:
- ''' Checks if any editor role exists for the user '''
- return user.role.editor.exists()
-
-
-@rules.predicate
-def is_editor_for_current_site(user) -> bool:
- ''' Checks if any editor role exists for the user '''
- if not is_editor(user):
- return False # if the user is not an editor, return False
- return user.role.editor.filter(id=settings.SITE_ID).exists()
+ ''' Checks if any editor role exists for the user on the current site '''
+ return user.role.is_editor
@rules.predicate
@@ -26,11 +18,11 @@ def is_element_editor(user, obj) -> bool:
if obj.id is None: # for _add_object permissions
# if the element does not exist yet, it can be created by all users with an editor role
- return is_editor(user)
+ return user.role.is_editor
if not obj.editors.exists():
# if the element has no editors, it is editable by all users with an editor role
- return is_editor(user)
+ return user.role.is_editor
# else, return whether the user is an editor for the object
return user.role.editor.filter(id__in=obj.editors.all()).exists()
@@ -38,16 +30,8 @@ def is_element_editor(user, obj) -> bool:
@rules.predicate
def is_reviewer(user) -> bool:
- ''' Checks if any reviewer role exists for the user '''
- return user.role.reviewer.exists()
-
-
-@rules.predicate
-def is_reviewer_for_current_site(user) -> bool:
- ''' Checks if any reviewer role exists for the user '''
- if not is_reviewer(user):
- return False # if the user is not an reviewer, return False
- return user.role.reviewer.filter(id=settings.SITE_ID).exists()
+ ''' Checks if any reviewer role exists for the user on the current site '''
+ return user.role.is_reviewer
@rules.predicate
@@ -58,7 +42,7 @@ def is_element_reviewer(user, obj) -> bool:
# if the element has no editors, it is reviewable by all reviewers
if not obj.editors.exists():
- return is_reviewer(user)
+ return user.role.is_reviewer
# else, return whether the user is a reviewer for of the object
return user.role.reviewer.filter(id__in=obj.editors.all()).exists()
@@ -67,6 +51,9 @@ def is_element_reviewer(user, obj) -> bool:
@rules.predicate
def is_legacy_reviewer(user) -> bool:
''' Checks if the user has all the view permissions an editor or reviewer needs '''
+ if settings.MULTISITE:
+ return False
+
return user.has_perms((
'auth.view_group',
'conditions.view_condition',
@@ -85,11 +72,22 @@ def is_legacy_reviewer(user) -> bool:
# Add rules
+# this rule will be removed in RDMO 3.0
rules.add_rule('management.can_view_management',
is_authenticated & (is_superuser |
- is_editor_for_current_site |
- is_reviewer_for_current_site |
+ is_editor |
+ is_reviewer |
is_legacy_reviewer))
+# this perm is checked in the ManagementView
+rules.add_perm('management.view_management',
+ is_authenticated & (is_superuser |
+ is_editor |
+ is_reviewer |
+ is_legacy_reviewer))
+
+# Add permissions for the upload and import viewsets
+rules.add_perm('management.upload_files', is_authenticated & is_editor)
+rules.add_perm('management.import_elements', is_authenticated & is_editor)
# Model Permissions for sites and group
@@ -147,7 +145,7 @@ def is_legacy_reviewer(user) -> bool:
rules.add_perm('tasks.change_task_object', is_element_editor)
rules.add_perm('tasks.delete_task_object', is_element_editor)
# toggle current site field perm
-rules.add_perm('tasks.change_task_toggle_site', is_editor_for_current_site)
+rules.add_perm('tasks.change_task_toggle_site', is_editor)
# Model Permissions for views
rules.add_perm('views.view_view', is_editor | is_reviewer)
@@ -159,7 +157,7 @@ def is_legacy_reviewer(user) -> bool:
rules.add_perm('views.change_view_object', is_element_editor)
rules.add_perm('views.delete_view_object', is_element_editor)
# toggle current site field perm
-rules.add_perm('views.change_view_toggle_site', is_editor_for_current_site)
+rules.add_perm('views.change_view_toggle_site', is_editor)
# Model permissions for catalogs
rules.add_perm('questions.view_catalog', is_editor | is_reviewer)
@@ -171,7 +169,7 @@ def is_legacy_reviewer(user) -> bool:
rules.add_perm('questions.change_catalog_object', is_element_editor)
rules.add_perm('questions.delete_catalog_object', is_element_editor)
# toggle current site field perm
-rules.add_perm('questions.change_catalog_toggle_site', is_editor_for_current_site)
+rules.add_perm('questions.change_catalog_toggle_site', is_editor)
# Model permissions for sections
rules.add_perm('questions.view_section', is_editor | is_reviewer)
diff --git a/rdmo/management/tests/e2e/test_frontend_import_options.py b/rdmo/management/tests/e2e/test_frontend_import_options.py
index ce7b079aeb..748e66137a 100644
--- a/rdmo/management/tests/e2e/test_frontend_import_options.py
+++ b/rdmo/management/tests/e2e/test_frontend_import_options.py
@@ -1,4 +1,3 @@
-# ruff: noqa: F811
import pytest
from playwright.sync_api import Page, expect
diff --git a/rdmo/management/tests/e2e/test_frontend_import_questions.py b/rdmo/management/tests/e2e/test_frontend_import_questions.py
index 5d1e156c95..512e0b5ef9 100644
--- a/rdmo/management/tests/e2e/test_frontend_import_questions.py
+++ b/rdmo/management/tests/e2e/test_frontend_import_questions.py
@@ -1,4 +1,3 @@
-# ruff: noqa: F811
import pytest
from playwright.sync_api import expect
diff --git a/rdmo/management/tests/e2e/test_frontend_management_catalog_copy.py b/rdmo/management/tests/e2e/test_frontend_management_catalog_copy.py
index c130484088..537ff1b193 100644
--- a/rdmo/management/tests/e2e/test_frontend_management_catalog_copy.py
+++ b/rdmo/management/tests/e2e/test_frontend_management_catalog_copy.py
@@ -1,4 +1,3 @@
-# ruff: noqa: F811
import pytest
from playwright.sync_api import Page, expect
diff --git a/rdmo/management/tests/e2e/test_frontend_management_elements.py b/rdmo/management/tests/e2e/test_frontend_management_elements.py
index 9f82e114e0..9ca313234b 100644
--- a/rdmo/management/tests/e2e/test_frontend_management_elements.py
+++ b/rdmo/management/tests/e2e/test_frontend_management_elements.py
@@ -1,4 +1,3 @@
-# ruff: noqa: F811
import re
from urllib.parse import urlparse
diff --git a/rdmo/management/tests/helpers_import_elements.py b/rdmo/management/tests/helpers_import_elements.py
index 49fc3bae9e..c995142085 100644
--- a/rdmo/management/tests/helpers_import_elements.py
+++ b/rdmo/management/tests/helpers_import_elements.py
@@ -1,7 +1,6 @@
import random
from collections import OrderedDict
from functools import partial
-from typing import Optional, Union
from rdmo.core.imports import ImportElementFields, track_changes_on_element
from rdmo.management.import_utils import initialize_import_element_dict
@@ -32,7 +31,7 @@ def filter_changed_fields(element, updated_fields=None) -> bool:
return True
return _changed
-def get_changed_elements(elements: list[dict]) -> dict[str, dict[str,Union[bool,str]]]:
+def get_changed_elements(elements: list[dict]) -> dict[str, dict[str,bool | str]]:
changed_elements = {}
for element in elements:
@@ -47,14 +46,14 @@ def get_changed_elements(elements: list[dict]) -> dict[str, dict[str,Union[bool,
return changed_elements
-def _test_helper_filter_updated_and_changed(elements: list[dict], updated_fields: Optional[tuple]) -> list[dict]:
+def _test_helper_filter_updated_and_changed(elements: list[dict], updated_fields: tuple | None) -> list[dict]:
filter_func = partial(filter_changed_fields, updated_fields=updated_fields)
changed_elements = filter(filter_func, elements)
return list(changed_elements)
def _test_helper_change_fields_elements(elements,
- fields_to_update: Optional[tuple] = None,
+ fields_to_update: tuple | None = None,
n=3) -> OrderedDict:
""" elements test preparation function """
diff --git a/rdmo/management/tests/test_import_conditions.py b/rdmo/management/tests/test_import_conditions.py
index 01a52d99b5..63d8080d45 100644
--- a/rdmo/management/tests/test_import_conditions.py
+++ b/rdmo/management/tests/test_import_conditions.py
@@ -20,7 +20,7 @@ def test_create_conditions(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'conditions.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == Condition.objects.count() == 15
assert all(element['created'] is True for element in imported_elements)
@@ -30,7 +30,7 @@ def test_create_conditions(db, settings):
def test_update_conditions(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'conditions.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == 15
assert all(element['created'] is False for element in imported_elements)
@@ -51,7 +51,7 @@ def test_update_conditions_with_changed_fields(db, settings, updated_fields):
assert all(element['updated'] is True for element in imported_elements)
assert len(imported_and_changed) == len(changed_elements)
# compare two ordered lists with "updated_and_changed" dicts
- for test, imported in zip(changed_elements, imported_and_changed):
+ for test, imported in zip(changed_elements, imported_and_changed, strict=True):
assert test[ImportElementFields.DIFF] == imported[ImportElementFields.DIFF]
@@ -59,7 +59,7 @@ def test_create_legacy_conditions(db, settings):
Condition.objects.all().delete()
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'legacy' / 'conditions.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == Condition.objects.count() == 15
assert all(element['created'] is True for element in imported_elements)
@@ -69,7 +69,7 @@ def test_create_legacy_conditions(db, settings):
def test_update_legacy_conditions(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'legacy' / 'conditions.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == 15
assert all(element['created'] is False for element in imported_elements)
diff --git a/rdmo/management/tests/test_import_domain.py b/rdmo/management/tests/test_import_domain.py
index 0386691313..116464c288 100644
--- a/rdmo/management/tests/test_import_domain.py
+++ b/rdmo/management/tests/test_import_domain.py
@@ -20,7 +20,7 @@ def test_create_domain(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'attributes.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == Attribute.objects.count() == 86
assert all(element['created'] is True for element in imported_elements)
@@ -30,7 +30,7 @@ def test_create_domain(db, settings):
def test_update_domain(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'attributes.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements)
assert all(element['created'] is False for element in imported_elements)
@@ -42,8 +42,10 @@ def test_update_attributes_with_changed_fields(db, settings, updated_fields):
_change_count = Attribute.objects.count() / 2
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'attributes.xml'
elements, root = read_xml_and_parse_to_root_and_elements(xml_file)
+
# import initial elements from xml
- _el = import_elements(elements, save=True)
+ import_elements(elements, save=True)
+
# update the elements and call import again
updated_elements = _test_helper_change_fields_elements(elements, fields_to_update=updated_fields, n=_change_count)
changed_elements = _test_helper_filter_updated_and_changed(updated_elements.values(), updated_fields=updated_fields)
@@ -54,8 +56,9 @@ def test_update_attributes_with_changed_fields(db, settings, updated_fields):
assert all(element['created'] is False for element in imported_elements)
assert all(element['updated'] is True for element in imported_elements)
assert len(imported_and_changed) == len(changed_elements)
+
# compare two ordered lists with "updated_and_changed" dicts
- for test, imported in zip(changed_elements, imported_and_changed):
+ for test, imported in zip(changed_elements, imported_and_changed, strict=True):
assert test[ImportElementFields.DIFF] == imported[ImportElementFields.DIFF]
@@ -64,7 +67,7 @@ def test_create_legacy_domain(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'legacy' / 'domain.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == 86
assert Attribute.objects.count() == 86
@@ -75,7 +78,7 @@ def test_create_legacy_domain(db, settings):
def test_update_legacy_domain(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'legacy' / 'domain.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == 86
assert all(element['created'] is False for element in imported_elements)
diff --git a/rdmo/management/tests/test_import_options.py b/rdmo/management/tests/test_import_options.py
index c132139c47..84707cd0e0 100644
--- a/rdmo/management/tests/test_import_options.py
+++ b/rdmo/management/tests/test_import_options.py
@@ -108,7 +108,7 @@ def test_update_optionsets_with_changed_fields(db, settings, updated_fields, del
assert all(element[ImportElementFields.UPDATED] is True for element in imported_elements)
assert len(imported_and_changed) == len(changed_elements)
# compare two ordered lists with "updated_and_changed" dicts
- for test, imported in zip(changed_elements, imported_and_changed):
+ for test, imported in zip(changed_elements, imported_and_changed, strict=True):
assert test[ImportElementFields.DIFF] == imported[ImportElementFields.DIFF]
@@ -122,7 +122,7 @@ def test_update_optionsets_from_changed_xml(db, settings, delete_all_objects):
assert OptionSet.objects.count() + Option.objects.count() == 13
# Act, import from xml optionsets-1.xml that contains changes
xml_file_1 = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'updated-and-changed' / 'optionsets-1.xml'
- elements_1, root_1 = read_xml_and_parse_to_root_and_elements(xml_file_1)
+ elements_1, _ = read_xml_and_parse_to_root_and_elements(xml_file_1)
imported_elements_1 = import_elements(elements_1, save=False)
assert imported_elements_1
assert [i for i in imported_elements_1 if i[ImportElementFields.DIFF]]
@@ -149,7 +149,7 @@ def test_update_optionsets_from_changed_xml(db, settings, delete_all_objects):
# get the ordered options (via .optionset_options) for this optionset from the db
optionset_1 = OptionSet.objects.get(uri=test_optionset['original']['uri'])
optionset_1_options = optionset_1.optionset_options.order_by('order').values_list('option__uri',flat=True)
- for _test, _db in zip(test_optionset_changed_options, optionset_1_options):
+ for _test, _db in zip(test_optionset_changed_options, optionset_1_options, strict=True):
assert _test == _db
# Import again and test that there are no changes detected
@@ -203,7 +203,7 @@ def test_update_options_with_changed_fields(db, settings, updated_fields, delete
assert all(element[ImportElementFields.UPDATED] is True for element in imported_elements)
assert len(imported_and_changed) == len(changed_elements)
# compare two ordered lists with "updated_and_changed" dicts
- for test, imported in zip(changed_elements, imported_and_changed):
+ for test, imported in zip(changed_elements, imported_and_changed, strict=True):
assert test[ImportElementFields.DIFF] == imported[ImportElementFields.DIFF]
diff --git a/rdmo/management/tests/test_import_questions.py b/rdmo/management/tests/test_import_questions.py
index ee584e96f4..71bc5e9499 100644
--- a/rdmo/management/tests/test_import_questions.py
+++ b/rdmo/management/tests/test_import_questions.py
@@ -30,7 +30,7 @@ def test_create_catalogs(db, settings, shuffle, delete_all_objects):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'catalogs.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file, shuffle_elements=shuffle)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file, shuffle_elements=shuffle)
assert len(root) == len(imported_elements) == 148
assert Catalog.objects.count() == 2
@@ -57,7 +57,7 @@ def test_create_catalogs(db, settings, shuffle, delete_all_objects):
def test_update_catalogs(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'catalogs.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == 148
@@ -82,7 +82,7 @@ def test_update_catalogs_with_changed_fields(db, settings, updated_fields, delet
assert all(element['updated'] is True for element in imported_elements)
assert len(imported_and_changed) == len(changed_elements)
# compare two ordered lists with "updated_and_changed" dicts
- for test, imported in zip(changed_elements, imported_and_changed):
+ for test, imported in zip(changed_elements, imported_and_changed, strict=True):
assert test[ImportElementFields.DIFF] == imported[ImportElementFields.DIFF]
@@ -91,7 +91,7 @@ def test_create_sections(db, settings, delete_all_objects):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'sections.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == 146
assert Section.objects.count() == 6
@@ -105,7 +105,7 @@ def test_create_sections(db, settings, delete_all_objects):
def test_update_sections(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'sections.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == 146
assert all(element['created'] is False for element in imported_elements)
@@ -129,7 +129,7 @@ def test_update_sections_with_changed_fields(db, settings, updated_fields, delet
assert all(element['updated'] is True for element in imported_elements)
assert len(imported_and_changed) == len(changed_elements)
# compare two ordered lists with "updated_and_changed" dicts
- for test, imported in zip(changed_elements, imported_and_changed):
+ for test, imported in zip(changed_elements, imported_and_changed, strict=True):
assert test[ImportElementFields.DIFF] == imported[ImportElementFields.DIFF]
@@ -138,7 +138,7 @@ def test_create_pages(db, settings, delete_all_objects):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'pages.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == 140
assert Page.objects.count() == 48
@@ -151,7 +151,7 @@ def test_create_pages(db, settings, delete_all_objects):
def test_update_pages(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'pages.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == 140
assert all(element['created'] is False for element in imported_elements)
@@ -175,7 +175,7 @@ def test_update_pages_with_changed_fields(db, settings, updated_fields, delete_a
assert all(element['updated'] is True for element in imported_elements)
assert len(imported_and_changed) == len(changed_elements)
# compare two ordered lists with "updated_and_changed" dicts
- for test, imported in zip(changed_elements, imported_and_changed):
+ for test, imported in zip(changed_elements, imported_and_changed, strict=True):
assert test[ImportElementFields.DIFF] == imported[ImportElementFields.DIFF]
@@ -184,7 +184,7 @@ def test_create_questionsets(db, settings, delete_all_objects):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'questionsets.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == 10 # two questionsets appear twice in the export file
assert len(imported_elements) == 8
@@ -197,7 +197,7 @@ def test_create_questionsets(db, settings, delete_all_objects):
def test_update_questionsets(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'questionsets.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == 10 # two questionsets appear twice in the export file
assert len(imported_elements) == 8
@@ -223,7 +223,7 @@ def test_update_questionsets_with_changed_fields(db, settings, updated_fields, d
assert all(element['updated'] is True for element in imported_elements)
assert len(imported_and_changed) == len(changed_elements)
# compare two ordered lists with "updated_and_changed" dicts
- for test, imported in zip(changed_elements, imported_and_changed):
+ for test, imported in zip(changed_elements, imported_and_changed, strict=True):
assert test[ImportElementFields.DIFF] == imported[ImportElementFields.DIFF]
@@ -233,7 +233,7 @@ def test_create_questions(db, settings, shuffle, delete_all_objects):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'questions.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file, shuffle_elements=shuffle)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file, shuffle_elements=shuffle)
assert len(root) == len(imported_elements) == 89
assert Question.objects.count() == 89
@@ -244,7 +244,7 @@ def test_create_questions(db, settings, shuffle, delete_all_objects):
def test_update_questions(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'questions.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == 89
assert all(element['created'] is False for element in imported_elements)
@@ -268,7 +268,7 @@ def test_update_questions_with_changed_fields(db, settings, updated_fields, dele
assert all(element['updated'] is True for element in imported_elements)
assert len(imported_and_changed) == len(changed_elements)
# compare two ordered lists with "updated_and_changed" dicts
- for test, imported in zip(changed_elements, imported_and_changed):
+ for test, imported in zip(changed_elements, imported_and_changed, strict=True):
assert test[ImportElementFields.DIFF] == imported[ImportElementFields.DIFF]
@@ -278,7 +278,7 @@ def test_create_legacy_questions(db, settings, shuffle, delete_all_objects):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'legacy' / 'questions.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file, shuffle_elements=shuffle)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file, shuffle_elements=shuffle)
assert len(root) == len(imported_elements) == 147
assert Catalog.objects.count() == 1
@@ -305,7 +305,7 @@ def test_create_legacy_questions(db, settings, shuffle, delete_all_objects):
def test_update_legacy_questions(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'legacy' / 'questions.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == 147
assert all(element['created'] is False for element in imported_elements)
diff --git a/rdmo/management/tests/test_import_tasks.py b/rdmo/management/tests/test_import_tasks.py
index bd88542bcb..49cd33c2c3 100644
--- a/rdmo/management/tests/test_import_tasks.py
+++ b/rdmo/management/tests/test_import_tasks.py
@@ -21,7 +21,7 @@ def test_create_tasks(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'tasks.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == Task.objects.count() == 2
assert all(element['created'] is True for element in imported_elements)
@@ -31,7 +31,7 @@ def test_create_tasks(db, settings):
def test_update_tasks(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'tasks.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == 2
assert all(element['created'] is False for element in imported_elements)
@@ -52,7 +52,7 @@ def test_update_tasks_with_changed_fields(db, settings, updated_fields):
assert all(element['updated'] is True for element in imported_elements)
assert len(imported_and_changed) == len(changed_elements)
# compare two ordered lists with "updated_and_changed" dicts
- for test, imported in zip(changed_elements, imported_and_changed):
+ for test, imported in zip(changed_elements, imported_and_changed, strict=True):
assert test[ImportElementFields.DIFF] == imported[ImportElementFields.DIFF]
@@ -61,7 +61,7 @@ def test_create_legacy_tasks(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'legacy' / 'tasks.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == Task.objects.count() == 2
assert all(element['created'] is True for element in imported_elements)
@@ -71,7 +71,7 @@ def test_create_legacy_tasks(db, settings):
def test_update_legacy_tasks(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'legacy' / 'tasks.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == 2
assert all(element['created'] is False for element in imported_elements)
diff --git a/rdmo/management/tests/test_import_views.py b/rdmo/management/tests/test_import_views.py
index 7fe08f1378..3381c042a7 100644
--- a/rdmo/management/tests/test_import_views.py
+++ b/rdmo/management/tests/test_import_views.py
@@ -21,7 +21,7 @@ def test_create_tasks(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'views.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == View.objects.count() == 3
assert all(element['created'] is True for element in imported_elements)
@@ -31,7 +31,7 @@ def test_create_tasks(db, settings):
def test_update_tasks(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'views.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == 3
assert all(element['created'] is False for element in imported_elements)
@@ -52,7 +52,7 @@ def test_update_views_with_changed_fields(db, settings, updated_fields):
assert all(element['updated'] is True for element in imported_elements)
assert len(imported_and_changed) == len(changed_elements)
# compare two ordered lists with "updated_and_changed" dicts
- for test, imported in zip(changed_elements, imported_and_changed):
+ for test, imported in zip(changed_elements, imported_and_changed, strict=True):
assert test[ImportElementFields.DIFF] == imported[ImportElementFields.DIFF]
@@ -61,7 +61,7 @@ def test_create_legacy_tasks(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'legacy' / 'views.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == View.objects.count() == 3
assert all(element['created'] is True for element in imported_elements)
@@ -71,7 +71,7 @@ def test_create_legacy_tasks(db, settings):
def test_update_legacy_tasks(db, settings):
xml_file = Path(settings.BASE_DIR) / 'xml' / 'elements' / 'legacy' / 'views.xml'
- elements, root, imported_elements = parse_xml_and_import_elements(xml_file)
+ _, root, imported_elements = parse_xml_and_import_elements(xml_file)
assert len(root) == len(imported_elements) == 3
assert all(element['created'] is False for element in imported_elements)
diff --git a/rdmo/management/tests/test_merge_attributes.py b/rdmo/management/tests/test_merge_attributes.py
index edc880745d..9d88d53d9b 100644
--- a/rdmo/management/tests/test_merge_attributes.py
+++ b/rdmo/management/tests/test_merge_attributes.py
@@ -1,18 +1,14 @@
import io
from string import Template
-from typing import Union
import pytest
from django.core.management import CommandError, call_command
-from rdmo.conditions.models import Condition
from rdmo.domain.models import Attribute
-from rdmo.options.models import Option
-from rdmo.questions.models import Page, Question, QuestionSet, Section
from rdmo.views.models import View
-ElementType = Union[Section, Page, QuestionSet, Question, Option, Condition]
+# the element type can be Section, Page, QuestionSet, Question, Option, Condition
ATTRIBUTE_RELATED_MODELS_FIELDS = [i for i in Attribute._meta.get_fields()
if i.is_relation and not i.many_to_many
diff --git a/rdmo/management/tests/test_view_multisite.py b/rdmo/management/tests/test_view_multisite.py
new file mode 100644
index 0000000000..9d2d5b2b17
--- /dev/null
+++ b/rdmo/management/tests/test_view_multisite.py
@@ -0,0 +1,15 @@
+import pytest
+
+from django.urls import reverse
+
+from rdmo.core.tests.constants import multisite_users
+from rdmo.core.tests.utils import multisite_status_map
+
+
+@pytest.mark.parametrize('username,password', multisite_users)
+def test_list(db, client, username, password):
+ client.login(username=username, password=password)
+
+ url = reverse('management')
+ response = client.get(url)
+ assert response.status_code == multisite_status_map['management'][username]
diff --git a/rdmo/management/tests/test_viewset_import.py b/rdmo/management/tests/test_viewset_import.py
index 5d3929c26d..3e733fd572 100644
--- a/rdmo/management/tests/test_viewset_import.py
+++ b/rdmo/management/tests/test_viewset_import.py
@@ -14,13 +14,13 @@
status_map = {
'list': {
- 'editor': 405, 'reviewer': 405, 'api': 405, 'user': 405, 'anonymous': 401
+ 'editor': 405, 'reviewer': 403, 'api': 405, 'user': 403, 'anonymous': 401
},
'create': {
- 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 200, 'anonymous': 401
+ 'editor': 200, 'reviewer': 403, 'api': 200, 'user': 403, 'anonymous': 401
},
'create_error': {
- 'editor': 400, 'reviewer': 400, 'api': 400, 'user': 400, 'anonymous': 401
+ 'editor': 400, 'reviewer': 403, 'api': 400, 'user': 403, 'anonymous': 401
}
}
diff --git a/rdmo/management/tests/test_viewset_import_multisite.py b/rdmo/management/tests/test_viewset_import_multisite.py
index d4083ac421..06697ddf28 100644
--- a/rdmo/management/tests/test_viewset_import_multisite.py
+++ b/rdmo/management/tests/test_viewset_import_multisite.py
@@ -2,22 +2,11 @@
from django.urls import reverse
+from rdmo.core.tests.constants import multisite_status_map as status_map
from rdmo.core.tests.constants import multisite_users as users
from rdmo.core.tests.utils import get_obj_perms_status_code
from rdmo.questions.models import Catalog, Page, Question, QuestionSet, Section
-status_map = {
- 'list': {
- 'default': 405, 'anonymous': 401
- },
- 'create': {
- 'default': 200, 'anonymous': 401
- },
- 'create_error': {
- 'default': 400, 'anonymous': 401
- }
-}
-
catalog_uri_paths = [
'catalog',
'catalog2',
@@ -36,7 +25,10 @@ def test_list(db, client, username, password):
url = reverse(urlnames['list'])
response = client.get(url)
- assert response.status_code == status_map['list'].get(username, status_map['list']['default']), response.json()
+ if status_map['upload-import'].get(username) == 200:
+ assert response.status_code == 405, response.json()
+ else:
+ assert response.status_code == status_map['upload-import'].get(username), response.json()
@pytest.mark.parametrize('username,password', users)
@@ -48,7 +40,7 @@ def test_create_create(db, client, username, password, json_data, delete_all_obj
url = reverse(urlnames['list'])
response = client.post(url, json_data, content_type='application/json')
- assert response.status_code == status_map['create'].get(username, status_map['create']['default']), response.json()
+ assert response.status_code == status_map['upload-import'].get(username), response.json()
if response.status_code == 200:
for element in response.json():
@@ -66,12 +58,12 @@ def test_create_update(db, client, username, password, json_data):
url = reverse(urlnames['list'])
response = client.post(url, json_data, content_type='application/json')
- assert response.status_code == status_map['create'].get(username, status_map['create']['default']), response.json()
+ assert response.status_code == status_map['upload-import'].get(username), response.json()
if response.status_code == 200:
for element in response.json():
assert element.get('created') is False
- obj_perm_status_code = get_obj_perms_status_code(element.get('uri_path'), username, 'update')
+ obj_perm_status_code = get_obj_perms_status_code(element.get('uri_path'), username, 'upload-import')
if obj_perm_status_code == 200:
assert element.get('updated') is True
else:
@@ -91,9 +83,9 @@ def test_create_update_certain_catalog(db, client, username, password, catalog_u
url = reverse(urlnames['list'])
response = client.post(url, instance_data, content_type='application/json')
- assert response.status_code == status_map['create'].get(username, status_map['create']['default']), response.json()
+ assert response.status_code == status_map['upload-import'].get(username), response.json()
if response.status_code == 200:
- obj_perm_status_code = get_obj_perms_status_code(catalog_uri_path, username, 'update')
+ obj_perm_status_code = get_obj_perms_status_code(catalog_uri_path, username, 'upload-import')
for element in response.json():
assert element.get('created') is False
if obj_perm_status_code == 200:
@@ -108,8 +100,11 @@ def test_create_empty(db, client, username, password):
url = reverse(urlnames['list'])
response = client.post(url, {}, content_type='application/json')
- assert response.status_code == status_map['create_error'].get(username, status_map['create_error']['default']), \
- response.json()
+ if status_map['upload-import'].get(username) == 200:
+ assert response.status_code == 400, response.json()
+ assert 'This field may not be blank.' in response.json()['elements'], response.json()['elements']
+ else:
+ assert response.status_code == status_map['upload-import'].get(username), response.json()
@pytest.mark.parametrize('username,password', users)
@@ -120,5 +115,8 @@ def test_create_error(db, client, username, password):
url = reverse(urlnames['list'])
response = client.post(url, json_data, content_type='application/json')
- assert response.status_code == status_map['create_error'].get(username, status_map['create_error']['default']), \
- response.json()
+ if status_map['upload-import'].get(username) == 200:
+ assert response.status_code == 400, response.json()
+ assert 'This field may not be blank.' in response.json()['elements'], response.json()['elements']
+ else:
+ assert response.status_code == status_map['upload-import'].get(username), response.json()
diff --git a/rdmo/management/tests/test_viewset_upload.py b/rdmo/management/tests/test_viewset_upload.py
index cd0517dbea..006c1d7fe9 100644
--- a/rdmo/management/tests/test_viewset_upload.py
+++ b/rdmo/management/tests/test_viewset_upload.py
@@ -19,13 +19,13 @@
status_map = {
'list': {
- 'editor': 405, 'reviewer': 405, 'api': 405, 'user': 405, 'anonymous': 401
+ 'editor': 405, 'reviewer': 403, 'api': 405, 'user': 403, 'anonymous': 401
},
'create': {
- 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 200, 'anonymous': 401
+ 'editor': 200, 'reviewer': 403, 'api': 200, 'user': 403, 'anonymous': 401
},
'create_error': {
- 'editor': 400, 'reviewer': 400, 'api': 400, 'user': 400, 'anonymous': 401
+ 'editor': 400, 'reviewer': 403, 'api': 400, 'user': 403, 'anonymous': 401
}
}
diff --git a/rdmo/management/views.py b/rdmo/management/views.py
index 82a9bc1a28..df0a66fb3f 100644
--- a/rdmo/management/views.py
+++ b/rdmo/management/views.py
@@ -3,7 +3,6 @@
from django.contrib.auth.mixins import LoginRequiredMixin
from django.views.generic import TemplateView
-from rules import test_rule
from rules.contrib.views import PermissionRequiredMixin as RulesPermissionRequiredMixin
from rdmo.core.views import CSRFViewMixin, PermissionRedirectMixin, StoreIdViewMixin
@@ -14,7 +13,4 @@
class ManagementView(LoginRequiredMixin, PermissionRedirectMixin, RulesPermissionRequiredMixin,
CSRFViewMixin, StoreIdViewMixin, TemplateView):
template_name = 'management/management.html'
-
- def has_permission(self):
- # Use test_rule from rules for permissions check
- return test_rule('management.can_view_management', self.request.user, self.request.site)
+ permission_required = 'management.view_management'
diff --git a/rdmo/management/viewsets.py b/rdmo/management/viewsets.py
index 2b5ec2d295..360af00840 100644
--- a/rdmo/management/viewsets.py
+++ b/rdmo/management/viewsets.py
@@ -10,7 +10,7 @@
from rest_framework.serializers import ValidationError
from rdmo.core.imports import handle_uploaded_file
-from rdmo.core.permissions import CanToggleElementCurrentSite
+from rdmo.core.permissions import CanToggleElementCurrentSite, HasPermission
from rdmo.core.utils import get_model_field_meta, is_truthy
from rdmo.core.xml import parse_xml_to_elements
@@ -22,7 +22,6 @@
class MetaViewSet(viewsets.ViewSet):
-
permission_classes = (IsAuthenticated, )
def list(self, request, *args, **kwargs):
@@ -30,8 +29,8 @@ def list(self, request, *args, **kwargs):
class UploadViewSet(viewsets.ViewSet):
-
- permission_classes = (IsAuthenticated, )
+ permission_classes = [HasPermission]
+ permission_required = 'management.upload_files'
def create(self, request, *args, **kwargs):
# step 1: store xml file as tmp file
@@ -65,8 +64,8 @@ def create(self, request, *args, **kwargs):
class ImportViewSet(viewsets.ViewSet):
-
- permission_classes = (IsAuthenticated, )
+ permission_classes = [HasPermission]
+ permission_required = 'management.import_elements'
def create(self, request, *args, **kwargs):
# step 1: store xml file as tmp file
diff --git a/rdmo/options/renderers/mixins.py b/rdmo/options/renderers/mixins.py
index c96b2a4165..6c021dfafd 100644
--- a/rdmo/options/renderers/mixins.py
+++ b/rdmo/options/renderers/mixins.py
@@ -47,7 +47,7 @@ def render_option(self, xml, option):
self.render_text_element(xml, 'uri_path', {}, option['uri_path'])
self.render_text_element(xml, 'dc:comment', {}, option['comment'])
- for lang_code, lang_string, lang_field in get_languages():
+ for lang_code, _lang_string, _lang_field in get_languages():
self.render_text_element(xml, 'text', {'lang': lang_code}, option[f'text_{lang_code}'])
self.render_text_element(xml, 'help', {'lang': lang_code}, option[f'help_{lang_code}'])
self.render_text_element(xml, 'default_text', {'lang': lang_code}, option[f'default_text_{lang_code}'])
diff --git a/rdmo/options/tests/test_viewset_options_multisite.py b/rdmo/options/tests/test_viewset_options_multisite.py
index 6834c6597e..f3060223ce 100644
--- a/rdmo/options/tests/test_viewset_options_multisite.py
+++ b/rdmo/options/tests/test_viewset_options_multisite.py
@@ -53,7 +53,7 @@ def test_detail(db, client, username, password):
for instance in instances:
url = reverse(urlnames['detail'], args=[instance.pk])
response = client.get(url)
- assert response.status_code == status_map['detail'][username], response.json()
+ assert response.status_code == get_obj_perms_status_code(instance, username, 'detail'), response.json()
@pytest.mark.parametrize('username,password', users)
@@ -98,11 +98,14 @@ def test_update_multisite(db, client, username, password):
@pytest.mark.parametrize('username,password', users)
-def test_delete_multisite(db, client, username, password):
+def test_delete(db, client, username, password):
client.login(username=username, password=password)
instances = Option.objects.all()
for instance in instances:
+ editors = list(instance.editors.values_list('domain', flat=True))
url = reverse(urlnames['detail'], args=[instance.pk])
response = client.delete(url)
- assert response.status_code == get_obj_perms_status_code(instance, username, 'delete')
+ assert response.status_code == get_obj_perms_status_code(
+ instance, username, 'delete', editors=editors
+ ), response.json()
diff --git a/rdmo/options/tests/test_viewset_optionsets_multisite.py b/rdmo/options/tests/test_viewset_optionsets_multisite.py
index 55bd2a30eb..9c32a3c947 100644
--- a/rdmo/options/tests/test_viewset_optionsets_multisite.py
+++ b/rdmo/options/tests/test_viewset_optionsets_multisite.py
@@ -29,7 +29,7 @@ def test_detail(db, client, username, password):
for instance in instances:
url = reverse(urlnames['detail'], args=[instance.pk])
response = client.get(url)
- assert response.status_code == status_map['detail'][username], response.json()
+ assert response.status_code == get_obj_perms_status_code(instance, username, 'detail'), response.json()
@pytest.mark.parametrize('username,password', users)
@@ -40,7 +40,7 @@ def test_nested(db, client, username, password):
for instance in instances:
url = reverse(urlnames['nested'], args=[instance.pk])
response = client.get(url)
- assert response.status_code == status_map['detail'][username], response.json()
+ assert response.status_code == get_obj_perms_status_code(instance, username, 'nested'), response.json()
@pytest.mark.parametrize('username,password', users)
@@ -119,14 +119,17 @@ def test_update_m2m_multisite(db, client, username, password):
@pytest.mark.parametrize('username,password', users)
-def test_delete_multisite(db, client, username, password):
+def test_delete(db, client, username, password):
client.login(username=username, password=password)
instances = OptionSet.objects.all()
for instance in instances:
+ editors = list(instance.editors.values_list('domain', flat=True))
url = reverse(urlnames['detail'], args=[instance.pk])
response = client.delete(url)
- assert response.status_code == get_obj_perms_status_code(instance, username, 'delete'), response.json()
+ assert response.status_code == get_obj_perms_status_code(
+ instance, username, 'delete', editors=editors
+ ), response.json()
@pytest.mark.parametrize('username,password', users)
@@ -137,7 +140,7 @@ def test_detail_export(db, client, username, password):
for instance in instances:
url = reverse(urlnames['detail_export'], args=[instance.pk])
response = client.get(url)
- assert response.status_code == status_map['detail'][username], response.content
+ assert response.status_code == get_obj_perms_status_code(instance, username, 'detail'), response.json()
if response.status_code == 200:
root = et.fromstring(response.content)
diff --git a/rdmo/projects/answers.py b/rdmo/projects/answers.py
new file mode 100644
index 0000000000..a85a0ce7c6
--- /dev/null
+++ b/rdmo/projects/answers.py
@@ -0,0 +1,274 @@
+from collections import defaultdict
+
+from rdmo.core.utils import markdown2html
+
+from .models.value import Value
+
+
+class AnswerTree:
+
+ def __init__(self, catalog, values, verbose=None):
+ self.catalog = catalog
+ self.values = values
+ self.verbose = tuple(verbose or ())
+
+ self.sets = values.compute_sets()
+ self.conditions = catalog.conditions.in_bulk()
+
+ # buffer for the resolved conditions: self.resolved_conditions[element][parent_set]
+ self.resolved_conditions = defaultdict(lambda: defaultdict(dict))
+
+ def compute(self):
+ # Main function of this class, which Computes the answer tree recursively.
+ # First, it computes the catalog, section, and page nodes.
+ # Then, it alternates between (value)set and questionset nodes until it reaches
+ # the question nodes, which include the corresponding values as well as how much
+ # this question counts to the count and total values for the progress.
+ return self.compute_element_node(self.catalog)
+
+ def compute_element_node(self, element, parent_set=None):
+ # recursive function, which will be called for each element
+ element_type = element._meta.model_name
+
+ element_node = {
+ 'id': element.id,
+ 'model': element._meta.label_lower,
+ 'show': True, # init show flag
+ }
+
+ if element_type in self.verbose:
+ # optionally, add the rendered title, help and texts
+ element_node.update({
+ 'uri': element.uri
+ })
+
+ if element_type in ['catalog', 'page', 'questionset']:
+ element_node.update({
+ 'title': markdown2html(element.title),
+ 'help': markdown2html(element.help)
+ })
+ elif element_type == 'section':
+ element_node.update({
+ 'title': markdown2html(element.title)
+ })
+ elif element_type == 'question':
+ element_node.update({
+ 'text': markdown2html(element.text),
+ 'help': markdown2html(element.help)
+ })
+
+ if element_type in ('page', 'questionset', 'question'):
+ # for pages, questionsets and questions evaluate conditions
+ if element.has_conditions:
+ result = self.resolve_conditions(element, parent_set)
+
+ # if the element is not shown, break the recursion
+ if not result:
+ element_node['show'] = False
+ element_node['count'] = 0
+ element_node['total'] = 0
+
+ return element_node
+
+ if element_type in ('catalog', 'section'):
+ # for catalogs and sections we recurse to the next level of elements (sections, pages)
+ element_node['elements'] = [
+ self.compute_element_node(child_element)
+ for child_element in element.elements
+ ]
+
+ # find the first element
+ if element_type in self.verbose:
+ element_node['first'] = element_node['elements'][0]['id']
+
+ # aggregate count and total from the child elements
+ element_node['count'] = sum(child_node['count'] for child_node in element_node['elements'])
+ element_node['total'] = sum(child_node['total'] for child_node in element_node['elements'])
+
+ elif element_type in ('page', 'questionset'):
+ # for pages and questionsets we first compute the sets for the element ...
+ element_sets = self.compute_element_sets(element, parent_set)
+
+ # ... and then create a set node for each set (the recursion continues in compute_set_node)
+ element_node['sets'] = [
+ self.compute_set_node(element, element_set)
+ for element_set in element_sets
+ ]
+
+ # aggregate count and total from the set nodes
+ element_node['count'] = sum(set_node['count'] for set_node in element_node['sets'])
+ element_node['total'] = sum(set_node['total'] for set_node in element_node['sets'])
+
+ elif element_type == 'question':
+ # for questions we add the text and the values and compute if this question
+ # can be considered empty, meaning it has no or only empty values
+ element_node['values'] = self.compute_element_values(element, parent_set)
+ element_node['is_empty'] = all(value['is_empty'] for value in element_node['values'])
+
+ # the question only counts for the progress if is not considered empty
+ element_node['count'] = 1 if not element_node['is_empty'] else 0
+
+ # whether the question counts for the total number depends on if it is optional
+ if element.is_optional:
+ # optional questions only count if they are not empty
+ element_node['total'] = 1 if not element_node['is_empty'] else 0
+ else:
+ # regular questions count if they have any values
+ element_node['total'] = 1 if element_node['values'] else 0
+
+ return element_node
+
+ def compute_set_node(self, element, element_set):
+ # recursive function, which will be called for each set in pages and questionsets
+ set_prefix, set_index = element_set
+
+ set_node = {
+ 'set_prefix': set_prefix,
+ 'set_index': set_index
+ }
+
+ # compute the next level of nodes
+ set_node['elements'] = [
+ self.compute_element_node(child_element, element_set)
+ for child_element in element.elements
+ ]
+
+ # aggregate count and total from the element nodes
+ set_node['count'] = sum(element_node['count'] for element_node in set_node['elements'])
+ set_node['total'] = sum(element_node['total'] for element_node in set_node['elements'])
+
+ return set_node
+
+ def compute_element_sets(self, element, parent_set):
+ # computes the required sets for each page/questionset
+ element_sets = set()
+
+ # compute the level in the page/questionsets hierarchy
+ level = self.compute_set_level(parent_set)
+
+ # for pages, add the sets for the attribute of the page
+ if parent_set is None and element.attribute:
+ element_sets.update(
+ (set_prefix, set_index)
+ for set_prefix, set_index in self.sets[element.attribute.id]
+ if set_prefix == '' # only include sets for pages
+ )
+
+ # for each descendant find the sets and add the set for this element, which is
+ # needed to "reach" the descendant set
+ for descendant in element.descendants:
+ if descendant.attribute and descendant.attribute.id in self.sets:
+ descendant_sets = self.filter_descendant_sets(descendant, parent_set)
+
+ if descendant in element.elements:
+ # for the direct children (i.e. questions), we add just the sets
+ element_sets.update(descendant_sets)
+ else:
+ # for the other descendants (i.e. questions in questionsets), we need
+ # to split the set_prefix according to the level we are in
+ for descendant_set_prefix, _ in descendant_sets:
+ element_set = self.compute_ancestor_set(descendant_set_prefix, level)
+ if element_set is not None:
+ element_sets.add(element_set)
+
+ # create one empty set for non-collection pages/questionsets
+ if not element.is_collection:
+ set_prefix = self.compute_child_set_prefix(parent_set)
+ element_sets.add((set_prefix, 0))
+
+ return sorted(element_sets)
+
+ def compute_element_values(self, element, parent_set):
+ set_prefix, set_index = parent_set
+
+ # filter the values for this element and set
+ element_values = list(filter(lambda v: all((
+ v.attribute == element.attribute,
+ v.set_prefix == set_prefix,
+ v.set_index == set_index,
+ )), self.values))
+
+ if element_values:
+ # if there are values, return them
+ return [
+ self.compute_value_node(value)
+ for value in element_values
+ ]
+ else:
+ # if no value is present, create one empty value
+ return [
+ self.compute_value_node(Value())
+ ]
+
+ def compute_value_node(self, value=None):
+ if 'value' in self.verbose:
+ return value.as_dict
+ else:
+ return {
+ 'collection_index': value.collection_index,
+ 'is_empty': value.is_empty
+ }
+
+ def resolve_conditions(self, element, parent_set):
+ # cache each resolved condition in self.resolved_conditions
+ if self.resolved_conditions.get(element, {}).get(parent_set) is None:
+ if parent_set:
+ set_prefix, set_index = parent_set
+ self.resolved_conditions[element][parent_set] = any(
+ self.conditions[condition.id].resolve(self.values, set_prefix, set_index)
+ for condition in element.conditions.all()
+ )
+ else:
+ self.resolved_conditions[element][parent_set] = any(
+ self.conditions[condition.id].resolve(self.values)
+ for condition in element.conditions.all()
+ )
+
+ return self.resolved_conditions[element][parent_set]
+
+ def filter_descendant_sets(self, descendant, parent_set):
+ # find descendant sets and only include sets which are below the provided parent set
+ descendant_sets = self.sets[descendant.attribute.id]
+
+ if parent_set:
+ child_set_prefix = self.compute_child_set_prefix(parent_set)
+
+ return {
+ (set_prefix, set_index)
+ for set_prefix, set_index in descendant_sets
+ if set_prefix == child_set_prefix or set_prefix.startswith(f'{child_set_prefix}|')
+ }
+ else:
+ return descendant_sets
+
+ @staticmethod
+ def compute_set_level(parent_set):
+ # compute the level in the page/questionsets hierarchy from a parent set
+ # if no parent set is provided the level is 0
+ if parent_set:
+ set_prefix, _ = parent_set
+ return set_prefix.count('|') + 1
+ else:
+ return 0
+
+ @staticmethod
+ def compute_child_set_prefix(parent_set):
+ # compute the set_prefix for child sets from a parent set
+ if parent_set:
+ set_prefix, set_index = parent_set
+ if set_prefix:
+ return f'{set_prefix}|{set_index}'
+ else:
+ return str(set_index)
+ else:
+ return ''
+
+ @staticmethod
+ def compute_ancestor_set(descendant_set_prefix, level):
+ # compute the ancestor set of a given level for a descendant set
+ # exclude sets with an empty set_prefix, this can happen in wrongly configured
+ # catalogs, when a page and one of the descendant have the same attribute
+ if descendant_set_prefix:
+ parts = descendant_set_prefix.split('|')
+ if level < len(parts):
+ return ('|'.join(parts[:level]) if level else '', int(parts[level]))
diff --git a/rdmo/projects/assets/js/interview/components/main/page/Page.js b/rdmo/projects/assets/js/interview/components/main/page/Page.js
index 2dac2431bd..d6b8b7c679 100644
--- a/rdmo/projects/assets/js/interview/components/main/page/Page.js
+++ b/rdmo/projects/assets/js/interview/components/main/page/Page.js
@@ -46,7 +46,12 @@ const Page = ({ config, settings, templates, overview, page, sets, values, fetch
}
}, [page.id])
- const isManager = (overview.is_superuser || overview.is_editor || overview.is_reviewer)
+ const isManager = overview.permissions?.can_view_management
+ const disabled = (
+ !overview.permissions?.can_add_value ||
+ !overview.permissions?.can_change_value ||
+ !overview.permissions?.can_delete_value
+ )
return (