From db72992889af4a33aee7391f6f9dc935777af393 Mon Sep 17 00:00:00 2001
From: unaibrrgn <75972112+unaibrrgn@users.noreply.github.com>
Date: Mon, 18 Dec 2023 13:57:07 +0100
Subject: [PATCH 01/36] #329 Issue fixed
---
.../web/controller/RegistryManagerUsersAdd.java | 11 ++++++-----
.../configuration.properties.orig | 3 +++
.../localizations/LocalizationBundle_en.properties | 3 +++
3 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/sources/Re3gistry2/src/main/java/eu/europa/ec/re3gistry2/web/controller/RegistryManagerUsersAdd.java b/sources/Re3gistry2/src/main/java/eu/europa/ec/re3gistry2/web/controller/RegistryManagerUsersAdd.java
index ec77c34e..f26276f6 100644
--- a/sources/Re3gistry2/src/main/java/eu/europa/ec/re3gistry2/web/controller/RegistryManagerUsersAdd.java
+++ b/sources/Re3gistry2/src/main/java/eu/europa/ec/re3gistry2/web/controller/RegistryManagerUsersAdd.java
@@ -240,19 +240,20 @@ private void processRequest(HttpServletRequest request, HttpServletResponse resp
String subject = systemLocalization.getString(BaseConstants.KEY_EMAIL_SUBJECT_NEW_REGISTRATION);
String body;
+ final Properties configurationProperties = Configuration.getInstance().getProperties();
if (loginType.equals(BaseConstants.KEY_PROPERTY_LOGIN_TYPE_SHIRO)) {
- String host = request.getHeader(BaseConstants.KEY_PROPERTY_HOST);
- URL activationUrl = new URL(host.concat(WebConstants.PAGE_PATH_ACTIVATE).concat("?").concat(BaseConstants.KEY_PROPERTY_CODE).concat("="+codeActivation.getCode()));
- URL deletionUrl = new URL(host.concat(WebConstants.PAGE_PATH_ACTIVATE).concat("?").concat(BaseConstants.KEY_PROPERTY_CODE).concat("="+codeDeletion.getCode()));
+ String mailHost = configurationProperties.getProperty(BaseConstants.KEY_MAIL_HOST);
+ String activationUrl = mailHost.concat(WebConstants.PAGE_PATH_ACTIVATE).concat("?").concat(BaseConstants.KEY_PROPERTY_CODE).concat("="+codeActivation.getCode());
+ String deletionUrl = mailHost.concat(WebConstants.PAGE_PATH_ACTIVATE).concat("?").concat(BaseConstants.KEY_PROPERTY_CODE).concat("="+codeDeletion.getCode());
body = systemLocalization.getString(BaseConstants.KEY_EMAIL_BODY_NEW_REGISTRATION);
body = (body != null)
? body.replace("{name}", name)
.replace("{email}", email)
.replace("{key}", key)
- .replace("{acceptLink}",activationUrl.toString())
- .replace("{deleteLink}",deletionUrl.toString())
+ .replace("{acceptLink}",activationUrl)
+ .replace("{deleteLink}",deletionUrl)
: "";
} else {
body = systemLocalization.getString(BaseConstants.KEY_EMAIL_BODY_ECAS_NEW_REGISTRATION);
diff --git a/sources/Re3gistry2/src/main/resources/configurations_files/configuration.properties.orig b/sources/Re3gistry2/src/main/resources/configurations_files/configuration.properties.orig
index 4b8acae2..a44fe707 100644
--- a/sources/Re3gistry2/src/main/resources/configurations_files/configuration.properties.orig
+++ b/sources/Re3gistry2/src/main/resources/configurations_files/configuration.properties.orig
@@ -188,6 +188,9 @@ mail.text.subject.bulkimport.success=Re3gistry - bulk import {itemclass} success
mail.text.subject.bulkimport.error=Re3gistry - bulk import {itemclass} error
mail.text.body.bulkimport.success=Dear {name}, The bulk import has been completed with success.
mail.text.body.bulkimport.error=Dear {name}, The bulk import has been completed with some error(s) when importing the file. {errors} Than retry to load the file.
+
+mail.text.option.newregistration=Dear {name}, Your account within Re3gistry has been successfully created. Use the following credentials to access the management interface and set your password: Username: {email} Password: {key} Please change your password after the first access. Click here to activate your account. To ignore this invitation, please click here . This activation code will expire in 24 hours Re3gistry manager
This email has been automatically generated, please do not reply to it.
+
### Webapp properties ####
web.application_root_url=applicationrooturl
diff --git a/sources/Re3gistry2/src/main/resources/localizations/LocalizationBundle_en.properties b/sources/Re3gistry2/src/main/resources/localizations/LocalizationBundle_en.properties
index c13b50d7..b74961af 100644
--- a/sources/Re3gistry2/src/main/resources/localizations/LocalizationBundle_en.properties
+++ b/sources/Re3gistry2/src/main/resources/localizations/LocalizationBundle_en.properties
@@ -653,6 +653,9 @@ mail.text.body.itemaction.proposedby= proposed by
mail.text.body.itemaction.was= was
mail.text.body.itemaction.actionmadeby=. The action was made by
+mail.text.option.newregistration=Dear {name}, Your account within Re3gistry has been successfully created. Use the following credentials to access the management interface and set your password: Username: {email} Password: {key} Please change your password after the first access. Click here to activate your account. To ignore this invitation, please click here . This activation code will expire in 24 hours Re3gistry managerThis email has been automatically generated, please do not reply to it.
+
+
#tooltiop add registry
registry.tooltip=Target registry where the register that you are about to create will be sitting
registry.path.tooltip=This option allows to include the 'registry' word for all the elements belonging to the register that you are about to create
From 47a2a20e2d1cd765645331ef9682aa300c14c222 Mon Sep 17 00:00:00 2001
From: unaibrrgn <75972112+unaibrrgn@users.noreply.github.com>
Date: Tue, 9 Jan 2024 14:04:12 +0100
Subject: [PATCH 02/36] Centered exclamation sign.
Centered the exclamation sign from an failed email verification on the login form.
---
sources/Re3gistry2/src/main/webapp/res/css/re3gistry2.css | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sources/Re3gistry2/src/main/webapp/res/css/re3gistry2.css b/sources/Re3gistry2/src/main/webapp/res/css/re3gistry2.css
index 081bdbce..ac07680f 100644
--- a/sources/Re3gistry2/src/main/webapp/res/css/re3gistry2.css
+++ b/sources/Re3gistry2/src/main/webapp/res/css/re3gistry2.css
@@ -421,7 +421,7 @@ footer {
position: absolute;
left: -20px;
z-index: 9;
- top: 27%;
+ top: 150px;
color: #dc3545; }
.with-errors {
From 183dff59ebf514ecb3146366699e63660dcc21a6 Mon Sep 17 00:00:00 2001
From: unaibrrgn <75972112+unaibrrgn@users.noreply.github.com>
Date: Thu, 11 Jan 2024 08:09:27 +0100
Subject: [PATCH 03/36] #354 Fixed
---
.../handler/RegItemhistoryHandler.java | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/sources/Re3gistry2JavaAPI/src/main/java/eu/europa/ec/re3gistry2/javaapi/handler/RegItemhistoryHandler.java b/sources/Re3gistry2JavaAPI/src/main/java/eu/europa/ec/re3gistry2/javaapi/handler/RegItemhistoryHandler.java
index 978cac05..35149e72 100644
--- a/sources/Re3gistry2JavaAPI/src/main/java/eu/europa/ec/re3gistry2/javaapi/handler/RegItemhistoryHandler.java
+++ b/sources/Re3gistry2JavaAPI/src/main/java/eu/europa/ec/re3gistry2/javaapi/handler/RegItemhistoryHandler.java
@@ -56,6 +56,8 @@
import eu.europa.ec.re3gistry2.model.uuidhandlers.RegItemhistoryUuidHelper;
import eu.europa.ec.re3gistry2.model.uuidhandlers.RegLocalizationhistoryUuidHelper;
import eu.europa.ec.re3gistry2.model.uuidhandlers.RegRelationhistoryUuidHelper;
+import java.util.ArrayList;
+import static java.util.Collections.max;
import java.util.Date;
import java.util.List;
import java.util.ResourceBundle;
@@ -139,17 +141,19 @@ public String copyRegItemToRegItemhistory(RegItem regItem) throws Exception {
int minVersion = regItemhistoryManager.getMinVersionByLocalidAndRegItemClass(maxVersionRegItemhistory.getLocalid(), maxVersionRegItemhistory.getRegItemclass()).getVersionnumber();
if (minVersion == 0) {
List regItemHistoryList = regItemhistoryManager.getByLocalidAndRegItemClass(maxVersionRegItemhistory.getLocalid(), maxVersionRegItemhistory.getRegItemclass());
+ ArrayList versions = new ArrayList<>();
for (RegItemhistory regItemhistoryItem : regItemHistoryList) {
- int itemHistoryVersionupdated = regItemhistoryItem.getVersionnumber() + 1;
- maxVersionRegItemhistory.setVersionnumber(itemHistoryVersionupdated);
+ versions.add(regItemhistoryItem.getVersionnumber());
+ }
+// int itemHistoryVersionupdated = regItemhistoryItem.getVersionnumber() + 1;
+ maxVersionRegItemhistory.setVersionnumber(max(versions)+1);
regItemhistoryManager.update(maxVersionRegItemhistory);
- }
}
versionNumber = maxVersion + 1;
} else {
//history starts with 1
-//it was 0 before the release 2.3.2: versionNumber = 0;
+ //it was 0 before the release 2.3.2: versionNumber = 0;
versionNumber = 1;
}
} catch (NoResultException e) {
@@ -162,7 +166,12 @@ public String copyRegItemToRegItemhistory(RegItem regItem) throws Exception {
String newRegItemhistoryUuid = RegItemhistoryUuidHelper.getUuid(regItem.getLocalid(), regItemCollection, regItem.getRegItemclass(), regItem, versionNumber);
newRegItemhistory.setUuid(newRegItemhistoryUuid);
- newRegItemhistory.setVersionnumber(versionNumber);
+ if(versionNumber==0){
+ newRegItemhistory.setVersionnumber(versionNumber+1);
+ }else{
+ newRegItemhistory.setVersionnumber(versionNumber);
+ }
+
newRegItemhistory.setLocalid(regItem.getLocalid());
newRegItemhistory.setRegItemclass(regItem.getRegItemclass());
newRegItemhistory.setInsertdate(new Date());
From 440fff64053563aa1c1a05dbaae973f13f8330b9 Mon Sep 17 00:00:00 2001
From: EnekoRuiz
Date: Fri, 26 Jan 2024 10:21:04 +0100
Subject: [PATCH 04/36] #292 issue fix
Added another field when creating an item that contains a reference link.
---
.../src/main/webapp/jsp/addItem.jsp | 3 +
.../javaapi/handler/RegBulkImportHandler.java | 66 +++++++++++++++++--
.../handler/RegItemproposedHandler.java | 29 +++++---
3 files changed, 83 insertions(+), 15 deletions(-)
diff --git a/sources/Re3gistry2/src/main/webapp/jsp/addItem.jsp b/sources/Re3gistry2/src/main/webapp/jsp/addItem.jsp
index 957a1df2..29742931 100644
--- a/sources/Re3gistry2/src/main/webapp/jsp/addItem.jsp
+++ b/sources/Re3gistry2/src/main/webapp/jsp/addItem.jsp
@@ -368,6 +368,9 @@
%><%
} else {
%> ="0" value="" name="<%=inputName%>"<%=((regFieldmapping.getRequired()) ? " required" : "")%> maxlength="<%=configuration.getProperties().getProperty("application.input.maxlength")%>" /><%
+ if(regFieldmapping.getRegField().getLocalid().equalsIgnoreCase("ReferenceLink")){
+ %> ="0" value="" name="<%=inputName%>"<%=((regFieldmapping.getRequired()) ? " required" : "")%> maxlength="<%=configuration.getProperties().getProperty("application.input.maxlength")%>" /><%
+ }
}
if (regFieldmapping.getRequired()) {
diff --git a/sources/Re3gistry2JavaAPI/src/main/java/eu/europa/ec/re3gistry2/javaapi/handler/RegBulkImportHandler.java b/sources/Re3gistry2JavaAPI/src/main/java/eu/europa/ec/re3gistry2/javaapi/handler/RegBulkImportHandler.java
index d8002b5b..9186cc39 100644
--- a/sources/Re3gistry2JavaAPI/src/main/java/eu/europa/ec/re3gistry2/javaapi/handler/RegBulkImportHandler.java
+++ b/sources/Re3gistry2JavaAPI/src/main/java/eu/europa/ec/re3gistry2/javaapi/handler/RegBulkImportHandler.java
@@ -32,6 +32,7 @@
import eu.europa.ec.re3gistry2.base.utility.exceptions.UnauthorizedUserException;
import eu.europa.ec.re3gistry2.crudimplementation.RegActionManager;
import eu.europa.ec.re3gistry2.crudimplementation.RegFieldManager;
+import eu.europa.ec.re3gistry2.crudimplementation.RegFieldtypeManager;
import eu.europa.ec.re3gistry2.crudimplementation.RegFieldmappingManager;
import eu.europa.ec.re3gistry2.crudimplementation.RegGroupManager;
import eu.europa.ec.re3gistry2.crudimplementation.RegItemManager;
@@ -185,6 +186,9 @@ private static StringBuilder generateCsvFileBuffer(List regFiel
for (RegFieldmapping field : regFieldMappingListWithoutStatus) {
writer.append("|");
writer.append(field.getRegField().getLocalid());
+ if(field.getHashref()){
+ writer.append("|ref");
+ }
}
return writer;
@@ -451,15 +455,23 @@ private void checkHeaderFields(List headerListSplitted, CsvHeader csvHea
private StringBuilder findWrongFields(List headerListSplitted, ArrayList fieldsHeader) {
RegFieldManager regFieldManager = new RegFieldManager(entityManager);
-
+ RegFieldtypeManager regFieldTypeManager = new RegFieldtypeManager(entityManager);
StringBuilder wrongFields = new StringBuilder();
for (int i = 2; i < headerListSplitted.size(); i++) {
final String fieldString = headerListSplitted.get(i);
try {
- RegField customFieldField = regFieldManager.getByLocalid(fieldString);
- fieldsHeader.add(customFieldField);
+ if(fieldString.equalsIgnoreCase("ref")){
+ RegField myRegField = new RegField();
+ myRegField.setUuid("ref");
+ myRegField.setRegFieldtype(regFieldTypeManager.get("1"));
+ fieldsHeader.add(myRegField);
+ } else{
+ RegField customFieldField = regFieldManager.getByLocalid(fieldString);
+ fieldsHeader.add(customFieldField);
+ }
+
} catch (Exception exx) {
if (fieldString.startsWith(BaseConstants.KEY_BULK_COLLECTION)) {
@@ -1302,6 +1314,21 @@ private void storeProposedItemsBulkEdit(HashMap refMaps = new HashMap();
+ for (Map.Entry> items : itemsBulkImport.entrySet()) {
+ HashMap map = items.getValue().get(0).getRegFieldsHashMap();
+ Iterator> iterator = map.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry entry = iterator.next();
+ if (entry.getKey().getUuid().equalsIgnoreCase("ref")) {
+ refMaps.put(items.getKey(), entry.getValue());
+
+ iterator.remove();
+ }
+ }
+ }
+
RegItem regItemExistentAlready = null;
Map.Entry> any = itemsBulkImport.entrySet().iterator().next();
@@ -1330,7 +1357,15 @@ private void storeProposedItemsBulkEdit(HashMap fields = items.getValue().get(0).getRegFieldsHashMap();
RegItem regItemIterator = regItemManager.getByLocalidAndRegItemClass(items.getKey(), regItemclassChild);
String language = items.getValue().get(0).getLanguage().getUuid();
- regItemproposedHandler.completeCopyRegItemToRegItemporposedBulkEdit(regItemIterator, regUser, fields, additionLines, language);
+
+ for (Map.Entry refIndex : refMaps.entrySet()){
+ if(refIndex.getKey().equalsIgnoreCase(items.getKey())){
+ ref = refMaps.get(items.getKey());
+ }
+ }
+
+ regItemproposedHandler.completeCopyRegItemToRegItemporposedBulkEdit(regItemIterator, regUser, fields, additionLines, language, ref);
+ ref = null;
}
} catch (Exception ex) {
throw new Exception();
@@ -1342,6 +1377,19 @@ private void storeProposedItemsBulkEdit(HashMap array, RegLanguagecode fieldLanguage, RegLanguagecode masterLanguage) throws Exception {
HashMap map = fieldsBulkImport.getRegFieldsHashMap();
HashMap mapCollection = fieldsBulkImport.getRegFieldsCollectionHashMap();
+ String ref = null;
+ RegField fieldDelete = null;
+ Iterator> iterator = map.entrySet().iterator();
+ while (iterator.hasNext()) {
+ Map.Entry entry = iterator.next();
+ if (entry.getKey().getUuid().equalsIgnoreCase("ref")) {
+ ref = entry.getValue();
+ iterator.remove();
+ }
+ }
+
+
+
for (Map.Entry entry : map.entrySet()) {
Object object = entry.getKey();
String fieldValue = entry.getValue();
@@ -1363,11 +1411,14 @@ private void storeItemFromBulk(FieldsBulkImport fieldsBulkImport, RegItem regIte
}
break;
default:
- storeLocalization(fieldLanguage, regItemproposed, regField, masterLanguage, fieldValue, localId, array);
+ storeLocalization(fieldLanguage, regItemproposed, regField, masterLanguage, fieldValue, localId, array, ref);
break;
}
}
}
+ if(entry.getKey().getUuid().equalsIgnoreCase("ReferenceLink")){
+ ref = null;
+ }
}
}
@@ -1898,7 +1949,7 @@ private String[] processFieldName(String key) {
return outs;
}
- private void storeLocalization(RegLanguagecode fieldLanguage, RegItemproposed regItemproposed, RegField regField, RegLanguagecode masterLanguage, String fieldValue, String localId, ArrayList array) throws Exception {
+ private void storeLocalization(RegLanguagecode fieldLanguage, RegItemproposed regItemproposed, RegField regField, RegLanguagecode masterLanguage, String fieldValue, String localId, ArrayList array, String ref) throws Exception {
RegLocalizationproposedManager regLocalizationproposedManager = new RegLocalizationproposedManager(entityManager);
RegLocalizationproposed regLocalizationproposed = new RegLocalizationproposed();
@@ -1916,6 +1967,9 @@ private void storeLocalization(RegLanguagecode fieldLanguage, RegItemproposed re
regLocalizationproposed.setRegLocalizationReference(null);
regLocalizationproposed.setValue(fieldValue);
regLocalizationproposed.setHref(null);
+ if(ref!=null){
+ regLocalizationproposed.setHref(ref);
+ }
regLocalizationproposed.setRegAction(regItemproposed.getRegAction());
regLocalizationproposedManager.add(regLocalizationproposed);
diff --git a/sources/Re3gistry2JavaAPI/src/main/java/eu/europa/ec/re3gistry2/javaapi/handler/RegItemproposedHandler.java b/sources/Re3gistry2JavaAPI/src/main/java/eu/europa/ec/re3gistry2/javaapi/handler/RegItemproposedHandler.java
index 7af5df24..6c26379b 100644
--- a/sources/Re3gistry2JavaAPI/src/main/java/eu/europa/ec/re3gistry2/javaapi/handler/RegItemproposedHandler.java
+++ b/sources/Re3gistry2JavaAPI/src/main/java/eu/europa/ec/re3gistry2/javaapi/handler/RegItemproposedHandler.java
@@ -1400,14 +1400,22 @@ private String updateFields(RegItemproposed regItemproposed, Map requestParamete
value = (value.length() == 0) ? "" : InputSanitizerHelper.sanitizeInput(value);
// Getting the eventual href
+
String hrefFieldName = processFieldHrefName(key);
- String[] paramHrefs = (String[]) requestParameters.get(hrefFieldName);
+ String[] paramHrefs = (String[]) requestParameters.get(key);
String href = "";
- if (paramHrefs != null) {
- //For each value there is just one link
- href = paramHrefs[0];
- // !!! Sanitizing form input
- href = InputSanitizerHelper.sanitizeInput(href);
+ if(paramHrefs.length>1){
+ href = paramHrefs[1];
+ }
+
+ else {
+ paramHrefs = (String[]) requestParameters.get(hrefFieldName);
+ if (paramHrefs != null){
+ //For each value there is just one link
+ href = paramHrefs[0];
+ // !!! Sanitizing form input
+ href = InputSanitizerHelper.sanitizeInput(href);
+ }
}
try {
@@ -1772,7 +1780,7 @@ private RegLocalizationproposed getRegLocalizationproposedInCurrentLanguage(RegL
return regLocalizationproposed;
}
- private void copyRegLocalizationsToRegLocalizationproposedBulkEdit(RegItem regItem, RegItemproposed regItemproposed, String checkDeleteUuid, HashMap fields, String language) throws Exception {
+ private void copyRegLocalizationsToRegLocalizationproposedBulkEdit(RegItem regItem, RegItemproposed regItemproposed, String checkDeleteUuid, HashMap fields, String language, String ref) throws Exception {
RegLocalizationManager regLocalizationManager = new RegLocalizationManager(entityManager);
RegLocalizationproposedManager regLocalizationproposedManager = new RegLocalizationproposedManager(entityManager);
@@ -1838,6 +1846,9 @@ private void copyRegLocalizationsToRegLocalizationproposedBulkEdit(RegItem regIt
} else {
newRegLocalizationproposed.setValue(entry.getValue());
}
+ if(entry.getKey().getLocalid().equalsIgnoreCase("ReferenceLink")){
+ regLocalization.setHref(ref);
+ }
}
}
@@ -2102,7 +2113,7 @@ public RegItemproposed completeCopyRegItemToRegItemporposed(RegItem regItem, Reg
return regItemproposed;
}
- public RegItemproposed completeCopyRegItemToRegItemporposedBulkEdit(RegItem regItem, RegUser regUser, HashMap fields, ArrayList additionLines, String language) throws Exception {
+ public RegItemproposed completeCopyRegItemToRegItemporposedBulkEdit(RegItem regItem, RegUser regUser, HashMap fields, ArrayList additionLines, String language, String ref) throws Exception {
RegItemproposed regItemproposed = null;
synchronized (sync) {
if (!entityManager.getTransaction().isActive()) {
@@ -2130,7 +2141,7 @@ public RegItemproposed completeCopyRegItemToRegItemporposedBulkEdit(RegItem regI
if (!entityManager.getTransaction().isActive()) {
entityManager.getTransaction().begin();
}
- copyRegLocalizationsToRegLocalizationproposedBulkEdit(regItem, regItemproposed, null, fields, language);
+ copyRegLocalizationsToRegLocalizationproposedBulkEdit(regItem, regItemproposed, null, fields, language, ref);
entityManager.getTransaction().commit();
}
return regItemproposed;
From 621a4651d3bd6cbbbe939d39bbfa6a90f8ecff0b Mon Sep 17 00:00:00 2001
From: EnekoRuiz
Date: Fri, 26 Jan 2024 10:26:54 +0100
Subject: [PATCH 05/36] #349 issue fix
---
.../eu/europa/ec/re3gistry2/web/utility/jsp/JspHelper.java | 5 ++++-
.../re3gistry2/web/utility/jsp/JspHelperNewProposedItem.java | 4 ++++
2 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/sources/Re3gistry2/src/main/java/eu/europa/ec/re3gistry2/web/utility/jsp/JspHelper.java b/sources/Re3gistry2/src/main/java/eu/europa/ec/re3gistry2/web/utility/jsp/JspHelper.java
index 03e5861d..13cd4a2d 100644
--- a/sources/Re3gistry2/src/main/java/eu/europa/ec/re3gistry2/web/utility/jsp/JspHelper.java
+++ b/sources/Re3gistry2/src/main/java/eu/europa/ec/re3gistry2/web/utility/jsp/JspHelper.java
@@ -1127,7 +1127,10 @@ private static String handleRegLocalizationSimpleValues(RegLocalization regLocal
? ((regLocalizationproposed.getValue() != null && regLocalizationproposed.getValue().length() > 0) ? regLocalizationproposed.getValue() : "")
: ((currentLanguageLocalization != null && currentLanguageLocalization.getValue() != null && currentLanguageLocalization.getValue().length() > 0)
? currentLanguageLocalization.getValue() : ""));
-
+ if (inputValue.contains("\"")) {
+ inputValue = inputValue.replace("\"", """);
+ }
+
// Getting input name
String inputName = regFieldmapping.getUuid() + BaseConstants.KEY_FORM_FIELD_NAME_INDEXKEY + ((currentLanguageLocalization != null) ? currentLanguageLocalization.getFieldValueIndex() : regLocalization.getFieldValueIndex()) + BaseConstants.KEY_FORM_FIELD_NAME_REFERENCEKEY + ((currentLanguageLocalization != null) ? currentLanguageLocalization.getUuid() : ((regLocalizationproposed != null) ? regLocalizationproposed.getUuid() : ""));
diff --git a/sources/Re3gistry2/src/main/java/eu/europa/ec/re3gistry2/web/utility/jsp/JspHelperNewProposedItem.java b/sources/Re3gistry2/src/main/java/eu/europa/ec/re3gistry2/web/utility/jsp/JspHelperNewProposedItem.java
index 9c127bf9..a86c9d46 100644
--- a/sources/Re3gistry2/src/main/java/eu/europa/ec/re3gistry2/web/utility/jsp/JspHelperNewProposedItem.java
+++ b/sources/Re3gistry2/src/main/java/eu/europa/ec/re3gistry2/web/utility/jsp/JspHelperNewProposedItem.java
@@ -672,6 +672,10 @@ private static String handleRegLocalizationproposedSimpleValues(RegLocalizationp
? ((currentLanguageLocalizationproposed.getValue() != null && currentLanguageLocalizationproposed.getValue().length() > 0)
? currentLanguageLocalizationproposed.getValue() : "")
: "");
+
+ if (inputValue.contains("\"")) {
+ inputValue = inputValue.replace("\"", """);
+ }
// Calculating if it is a new or updated content
String newContentClass = "";
From 39fdffe0795fef384589fd724a9b69d0a910e96b Mon Sep 17 00:00:00 2001
From: unaibrrgn <75972112+unaibrrgn@users.noreply.github.com>
Date: Fri, 26 Jan 2024 13:27:08 +0100
Subject: [PATCH 06/36] #286 Partial issue fix
Mainly corrected language selector, added default spanish translations
---
.../configuration.properties | 10 +-
.../configuration.properties.orig | 4 +-
.../LocalizationBundle_en.properties | 2 +
.../LocalizationBundle_es.properties | 672 ++++++++++++++++++
.../LocalizationBundle_it.properties | 670 +++++++++++++++++
.../main/webapp/jsp/includes/header.inc.jsp | 133 ++--
.../main/webapp/jsp/includes/pageend.inc.jsp | 4 +
.../bootstrap-4.3.1-dist/css/bootstrap.css | 2 +-
8 files changed, 1408 insertions(+), 89 deletions(-)
create mode 100644 sources/Re3gistry2/src/main/resources/localizations/LocalizationBundle_es.properties
create mode 100644 sources/Re3gistry2/src/main/resources/localizations/LocalizationBundle_it.properties
diff --git a/sources/Re3gistry2/src/main/resources/configurations_files/configuration.properties b/sources/Re3gistry2/src/main/resources/configurations_files/configuration.properties
index 4a190a28..c2d88a14 100644
--- a/sources/Re3gistry2/src/main/resources/configurations_files/configuration.properties
+++ b/sources/Re3gistry2/src/main/resources/configurations_files/configuration.properties
@@ -36,11 +36,15 @@ application.persistenceunitname=Re3gistry2
application.version=Version: 2.4.2
# Localization
-application.language.available=en
-#application.language.available=en-it
+application.language.available=en-it-es
+#application.language.available=it
+#application.language.available=es
application.language.label.en=English (en)
-#application.language.label.it=Italiano (it)
+application.language.label.it=Italiano (it)
+application.language.label.es=Espanol (es)
+#application.language.defaultLocale=it
application.language.defaultLocale=en
+#application.language.defaultLocale=es
application.default.name = Re3gistry2
diff --git a/sources/Re3gistry2/src/main/resources/configurations_files/configuration.properties.orig b/sources/Re3gistry2/src/main/resources/configurations_files/configuration.properties.orig
index 4b8acae2..2caef4b5 100644
--- a/sources/Re3gistry2/src/main/resources/configurations_files/configuration.properties.orig
+++ b/sources/Re3gistry2/src/main/resources/configurations_files/configuration.properties.orig
@@ -37,9 +37,9 @@ application.version=Version: 2.0.0
# Localization
application.language.available=en
-#application.language.available=en-it
+application.language.available=it
application.language.label.en=English (en)
-#application.language.label.it=Italiano (it)
+application.language.label.it=Italiano (it)
application.language.defaultLocale=en
# ECAS base URL (authetication method)
diff --git a/sources/Re3gistry2/src/main/resources/localizations/LocalizationBundle_en.properties b/sources/Re3gistry2/src/main/resources/localizations/LocalizationBundle_en.properties
index c669d79c..1b7dc7c4 100644
--- a/sources/Re3gistry2/src/main/resources/localizations/LocalizationBundle_en.properties
+++ b/sources/Re3gistry2/src/main/resources/localizations/LocalizationBundle_en.properties
@@ -32,6 +32,8 @@ property.localeid=en
# Main labels
label.title=Re3gistry
label.subtitle=Reference codes management tool
+label.language.current=English
+label.language.current.code=en
# Common labels
label.ec=European Commission
diff --git a/sources/Re3gistry2/src/main/resources/localizations/LocalizationBundle_es.properties b/sources/Re3gistry2/src/main/resources/localizations/LocalizationBundle_es.properties
new file mode 100644
index 00000000..043fc8e4
--- /dev/null
+++ b/sources/Re3gistry2/src/main/resources/localizations/LocalizationBundle_es.properties
@@ -0,0 +1,672 @@
+#
+# Copyright 2007,2016 EUROPEAN UNION
+# Licensed under the EUPL, Version 1.2 or - as soon they will be approved by
+# the European Commission - subsequent versions of the EUPL (the "Licence");
+# You may not use this work except in compliance with the Licence.
+# You may obtain a copy of the Licence at:
+#
+# https://ec.europa.eu/isa2/solutions/european-union-public-licence-eupl_en
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the Licence is distributed on an "AS IS" basis,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the Licence for the specific language governing permissions and
+# limitations under the Licence.
+#
+# Date: 2020/05/11
+# Authors:
+# European Commission, Joint Research Centre - jrc-inspire-support@ec.europa.eu
+#
+# This work was supported by the Interoperability solutions for public
+# administrations, businesses and citizens programme (http://ec.europa.eu/isa2)
+# through Action 2016.10: European Location Interoperability Solutions for e-Government (ELISE)
+# for e-Government (ELISE)
+#
+
+#### COMMON PROPERTIES ####
+
+# Locale related properties
+property.dateformat=yyyy-MM-dd HH:mm:ss
+property.localeid=es
+
+# Main labels
+label.title=Re3gistry
+label.subtitle=Herramienta de gesti\u00f3n de c\u00f3digos de referencia
+label.language.current=Espa\u00f1ol
+label.language.current.code=es
+
+# Common labels
+label.ec=Comisi\u00f3n Europea
+label.eclogo=Logotipo de la Comisi\u00f3n Europea
+label.about=Acerca de
+label.privacy=Pol\u00edtica de privacidad
+label.contact=Contacto
+label.legal=Aviso legal
+label.togglenavi=Alternar navegaci\u00f3n
+label.details=Detalles
+label.login=Iniciar sesi\u00f3n
+label.logout=Cerrar sesi\u00f3n
+label.private=\u00c1rea privada
+label.email=Correo electr\u00f3nico
+label.uri=URI
+label.footerlogo=Logotipo de INSPIRE
+label.headeralert=
+label.notranslation=Algunos elementos pueden no estar disponibles en el idioma seleccionado. Se est\u00e1n mostrando los elementos en el idioma principal en su lugar.
+label.masterlanguage=Idioma principal
+label.language=Idioma
+label.value=Valor
+label.href=Enlace
+label.ishyperlinked=Es hiperenlazado
+label.remove=Eliminar
+label.add=A\u00f1adir
+label.save=Guardar
+label.savechanges=Guardar cambios
+label.changepassword=Cambiar contrase\u00f1a
+label.discard=Descartar propuesta de elemento
+label.discardcurrentchanges=Descartar propuesta
+label.discardaction=Descartar acci\u00f3n
+label.map=Guardar
+label.saveclarification=Guardar aclaraci\u00f3n
+label.supersede=Suplantar
+label.invalidate=Invalidar
+label.retire=Retirar
+label.manageitemclass=Gestionar estructura
+label.managefields=Gestionar campos
+label.containeditems=Elementos disponibles
+label.proposeditems=Nuevos elementos propuestos
+label.additem=A\u00f1adir elemento
+warning.item.cannot.beedited=No se puede editar el elemento actual porque el estado est\u00e1 establecido en {0}
+label.itemclassmanagemessage=Este elemento no permite tener subelementos. Considere cambiar sus propiedades en la gesti\u00f3n de la clase de contenido .
+label.itemclassmanagemessagenomanage=Este elemento no permite tener subelementos.
+label.noregisters=No hay registros en este registro.
+label.translationnotavailable=La traducci\u00f3n para algunos de los campos de la etiqueta no est\u00e1 disponible en el idioma seleccionado. Puede Agregar traducciones faltantes .
+label.itemclassdetail=Detalle de clase de contenido
+label.itemclasstype=Tipo
+label.parentitemclass=Padre
+label.baseuri=URI base
+label.dataprocedureorder=Orden de procedimiento de datos
+label.moreactions=M\u00e1s acciones
+label.editfields=Editar campos
+label.addregisteritemclass=A\u00f1adir una clase de contenido secundaria
+label.additemitemclass=A\u00f1adir una clase de contenido secundaria
+label.addchilditemitemclass=A\u00f1adir clase de elemento secundaria
+label.itemclasslist=Lista de clases de contenido
+label.registrycontentclasslist=Lista de clases de contenido del registro
+label.registercontentclasslist=Lista de clases de contenido del registro
+label.itemcontentclasslist=Lista de clases de contenido del elemento
+label.type=Tipo
+label.parent=Padre
+label.addparent=A\u00f1adir padre
+label.addparent.firstinsert=Este campo se puede agregar despu\u00e9s del primer guardado del elemento
+label.addrelation.firstinsert=Este campo se puede agregar despu\u00e9s del primer guardado del elemento
+label.procedureorder=Orden de procedimiento
+label.actions=Acciones
+label.showfieldforitemclass=Campos disponibles para el
+label.listorder=Orden de visualizaci\u00f3n
+label.label=Etiqueta
+label.masterlanguagelabel=Etiqueta del idioma principal
+label.hidden=Oculto
+label.multivalued=Multivaluado
+label.required=Requerido
+label.tablevisible=Mostrar en la tabla
+label.nocollection=Sin padre de colecci\u00f3n para este elemento
+label.nosuccessor=Sin sucesor para este elemento
+label.nopredecessor=Sin predecesor para este elemento
+label.noparent=Sin padre para este elemento
+label.nosuccessorpredecessor=Este campo se valora durante una suplantaci\u00f3n o invalidaci\u00f3n.
+label.collectionnotapplicable=No aplicable en este nivel
+label.addregister=A\u00f1adir registro
+label.additemclass=A\u00f1adir clase de contenido
+label.field=Campo
+label.fieldtype=Tipo de campo
+label.registry=El sistema no tiene ning\u00fan registro
+label.localid=ID local
+label.contentclasslocalid=ID local de la clase de contenido
+label.referencenoavailable=Referencia no disponible
+label.itemclass=Clase de contenido
+label.itemclassreference=Referencia de clase de contenido
+label.fieldrequired=Este campo es obligatorio
+label.fielduriinfo=La URI acepta solo letras (Aa-zZ), n\u00fameros (0-9) y . - _
+label.fieldnoeditableuri=La URI de un elemento no se puede cambiar
+label.completerequiredfields=Por favor, verifique los errores en el formulario
+label.js.customcomfirmexit=Esta p\u00e1gina est\u00e1 solicitando confirmaci\u00f3n para abandonarla. Los datos que ha ingresado pueden no guardarse. \u00bfContinuar?
+label.patternerror.date=Este es un campo de fecha; verifique su entrada
+label.patternerror.number=Este es un campo num\u00e9rico; verifique su entrada
+label.restoreoriginalrelation=Restaurar la relaci\u00f3n original
+label.listfields=Ver/gestionar campos
+label.field.map=A\u00f1adir campo
+label.field.unmap=Quitar campo
+label.addNewField=Crear un nuevo campo
+label.continue=Continuar
+label.nofieldsmapped=Parece que no hay campos asignados para esta clase de contenido. Por favor, agregue campos a esta clase de contenido.
+label.hiddenpublicinterface=Este campo est\u00e1 oculto en la interfaz p\u00fablica.
+label.proposalnotowner=No puede editar la propuesta porque no es el propietario.
+label.proposalnotdraft=La propuesta se ha enviado, por lo que no se puede editar m\u00e1s.
+label.creationdate=Fecha de creaci\u00f3n
+label.startdate=Fecha de inicio
+label.insertdate=Fecha de inserci\u00f3n
+label.editdate=Fecha de edici\u00f3n
+label.status=Estado
+label.backto=Volver a
+label.actionslist=Lista de acciones
+label.actiondetails=Detalles de la acci\u00f3n
+label.userowner=Usuario (propietario)
+label.label=Etiqueta
+label.listofchangesinactionproposed=Lista de cambios propuestos para esta acci\u00f3n
+label.listofchangesrejected=Historial de cambios propuestos en esta acci\u00f3n
+label.listofchangespublished=Lista de cambios publicados en esta acci\u00f3n
+label.noaction=No hay acciones disponibles
+label.user=Usuario
+label.cancel=Cancelar
+label.close=Cerrar
+label.submit=Enviar
+label.next=Siguiente
+label.new=Nuevo
+label.changeneeded=Cambio necesario
+label.requestedchange=Solicitud de cambio
+label.viewdetail=Ver detalle
+label.rejectmessage=Mensaje de rechazo
+label.by=por
+label.group=Grupo
+label.groupedby=Agrupado por
+label.register=Registro
+label.registry=Registro
+label.submittedby=Enviado por
+label.approvedby=Aprobado por
+label.rejectedby=Rechazado por
+label.actionon=Acci\u00f3n en
+label.updatelabel=Clic para editar la etiqueta de la acci\u00f3n e ingresar para enviar la modificaci\u00f3n
+label.proposalInvalidation=Esta es una propuesta de invalidaci\u00f3n, por lo tanto, no se puede editar m\u00e1s.
+label.proposalRetirement=Esta es una propuesta de retiro, por lo tanto, no se puede editar m\u00e1s.
+label.proposalSuperseded=Esta es una propuesta de suplantaci\u00f3n, por lo tanto, no se puede editar m\u00e1s.
+label.keeppath=\u00bfIncluir la palabra 'registro' en la ruta de la URI?
+label.uripreview=Vista previa de la URI
+label.definition=Definici\u00f3n
+label.procedureorder.notice=* La columna "Orden de procedimiento" permite ordenar la clase de contenido para los procedimientos masivos. Es importante que cada clase de contenido principal est\u00e9 antes que su clase de contenido secundaria.
+label.contenttype.legend=Leyenda del tipo de contenido
+label.contenttype.legend.registry= Registro
+label.contenttype.legend.register= Registro
+label.contenttype.legend.item= Elemento
+label.note=Nota
+label.error=Error
+label.successreordering=La fila se ha reordenado con \u00e9xito.
+label.edit=Editar
+label.changesautosaved=Nota: los cambios realizados en la tabla (casillas de verificaci\u00f3n) se guardan autom\u00e1ticamente.
+label.changesautosaved.cache=Los cambios en la estructura requieren la ejecuci\u00f3n de un nuevo cach\u00e9.
+label.fieldchangelabelnote=Nota: las etiquetas de los campos se comparten entre varias clases de contenido. El cambio en la etiqueta de un campo ser\u00e1 visible en todos los registros/elementos donde ese campo est\u00e9 asociado.
+label.maxchars=m\u00e1x. caracteres {0}
+label.userslist=Lista de usuarios
+label.userdetails=Detalles del usuario
+label.name=Nombre
+label.ssoref=Referencia SSO
+label.enable=Habilitar
+label.enabled=Habilitado
+label.disable=Deshabilitar
+label.disabled=Deshabilitado
+label.enableuser=Habilitar usuario
+label.disableuser=Deshabilitar usuario
+label.deleteuser=Eliminar usuario
+label.changepassword=Cambiar contrase\u00f1a
+label.associatedgroups=Grupos asociados
+label.addgroup=A\u00f1adir un grupo
+label.resetpassword=Restablecer contrase\u00f1a
+label.users=Usuarios
+label.groups=Grupos
+label.website=Sitio web
+label.associatedusers=Usuarios asociados
+label.adduser=A\u00f1adir usuario
+label.removefromthisgroup=Quitar de este grupo
+label.nogroup=No se encontraron grupos
+label.childrenitems=Elementos secundarios
+label.nofieldstoshow=No hay campos para mostrar en la tabla. Verifique la configuraci\u00f3n de la clase de contenido.
+label.operationsuccess=La operaci\u00f3n se ha completado con \u00e9xito
+label.externalvalue=\u00bfEs un valor externo?
+label.registerfederationexport=Exportar federaci\u00f3n de registro
+label.on=Activado
+label.off=Desactivado
+label.termsofuse=T\u00e9rminos de uso
+label.cookies=Cookies
+label.pendingitems=Lista de sus elementos pendientes
+label.registrystatus=Estado p\u00fablico del registro, si '/' est\u00e1 presente: estado de la propuesta
+label.dashboard=panel de control
+label.sessionexpiring.title=Advertencia de expiraci\u00f3n de sesi\u00f3n
+label.sessionexpiring.text=La sesi\u00f3n expirar\u00e1 en 10 minutos debido a la inactividad del usuario. Guarde sus datos para renovar la sesi\u00f3n y evitar la p\u00e9rdida de datos.
+label.dataexport=Exportar datos
+label.solr=Solr
+label.solrdescription=Esta funcionalidad le permite iniciar una reindexaci\u00f3n completa en Solr de los elementos publicados.
+label.solrstartindexing=Iniciar indexaci\u00f3n completa de Solr
+label.solrrunning=Una indexaci\u00f3n completa est\u00e1 en curso actualmente. Espere hasta que termine para iniciar una nueva.
+label.cache=Cach\u00e9
+label.cache.class=Clase de cach\u00e9
+label.cachingdescription=Esta funcionalidad le permite iniciar una re-cach\u00e9 completa de los elementos publicados.
+label.cachestartindexing=Cach\u00e9 todo
+label.cachestartindexing.masterlanguage=Cach\u00e9 todo - Idioma principal
+label.removecache=Eliminar cach\u00e9
+label.cacheallrunning=Una cach\u00e9 completa est\u00e1 en curso actualmente. Espere hasta que termine para iniciar una nueva.
+label.cacheactionrunning=Una cach\u00e9 de la acci\u00f3n publicada anteriormente est\u00e1 en curso actualmente. Espere hasta que termine para iniciar una nueva.
+label.filterlabel=Filtrar etiqueta
+label.description=Descripci\u00f3n
+label.public=P\u00fablico
+label.yes=S\u00ed
+label.no=No
+label.csrferror=Se produjo un error gen\u00e9rico al realizar la acci\u00f3n solicitada. Consulte los registros del sistema para obtener m\u00e1s informaci\u00f3n.
+
+# Errors
+error.generic=Se produjo un error gen\u00e9rico al realizar la acci\u00f3n solicitada. Consulte los registros del sistema para obtener m\u00e1s informaci\u00f3n.
+error.itemclass.localid.available=El ID local especificado para la clase de contenido ya est\u00e1 disponible en el sistema.
+error.noemptyvaluesfornewfield=No se puede agregar un nuevo valor con una cadena vac\u00eda.
+error.item.localid.available=El ID local especificado para el elemento ya est\u00e1 disponible en el sistema.
+error.wrongorder=El orden no es v\u00e1lido. Una clase de contenido debe estar siempre despu\u00e9s de su padre en el orden de procedimiento.
+error.itemclass.notdeletable.childcontentclassassociated=No se puede eliminar esta clase de contenido porque tiene algunas clases de contenido secundarias asociadas.
+error.itemclass.notdeletable.itemsassociated=No se puede eliminar esta clase de contenido porque tiene algunos elementos asociados.
+success.itemclass.deletable=La clase de contenido se ha eliminado con \u00e9xito.
+success.itemclass.editable=La clase de contenido se ha editado con \u00e9xito.
+error.itemclass.noteditable=Esta clase de contenido no se puede editar porque tiene algunas clases de contenido secundarias o algunos elementos asociados.
+error.user.available=Este usuario ya est\u00e1 disponible en la base de datos.
+error.user.notavailable=Este usuario NO est\u00e1 disponible en la base de datos.
+error.installafion.flag=Error durante la creaci\u00f3n del archivo de instalaci\u00f3n completado
+success.resetpassword=Su contrase\u00f1a se ha restablecido con \u00e9xito. Por favor, revise su correo electr\u00f3nico e intente iniciar sesi\u00f3n.
+error.resetpassword=Se han encontrado algunos errores. Por favor, ingresa nuevamente el correo electr\u00f3nico e intenta restablecer la contrase\u00f1a.
+error.field.exit.localid=El campo que est\u00e1s intentando crear ya est\u00e1 presente en el sistema. Por favor, int\u00e9ntalo nuevamente usando un Local ID diferente.
+error.field.exit.label=El campo que est\u00e1s intentando crear ya est\u00e1 presente en el sistema. Por favor, int\u00e9ntalo nuevamente usando una etiqueta diferente.
+
+# Menu labels
+menu.home.label=Admin
+menu.migration.label=Herramienta de Migraci\u00f3n
+menu.solrIndexer.label=Indizador Solr
+menu.browse.label=Contenido
+menu.field.label=Gestionar Campos
+menu.itemclass.label=Estructura
+menu.submittingorganisations.label=Organizaciones de Env\u00edo
+menu.controlbody.label=\u00d3rgano de Control
+menu.registermanager.label=Administrador de Registro
+menu.registrymanager.label=Administrador de Registro
+
+
+# Footer menu
+footer.c1.title=INSPIRE
+footer.c1.i1=Knowledge Base
+footer.c1.l1=http://inspire.ec.europa.eu/
+footer.c1.i2=Legislation
+footer.c1.l2=http://inspire.ec.europa.eu/legislation
+footer.c1.i3=Library
+footer.c1.l3=http://inspire.ec.europa.eu/library
+footer.c1.i4=Themes
+footer.c1.l4=http://inspire.ec.europa.eu/Themes
+footer.c1.i5=Thematic Clusters
+footer.c1.l5=http://inspire.ec.europa.eu/thematic-clusters
+
+footer.c2.title=NEWS & EVENTS
+footer.c2.i1=News
+footer.c2.l1=http://inspire.ec.europa.eu/news
+footer.c2.i2=Events
+footer.c2.l2=http://inspire.ec.europa.eu/Events
+footer.c2.i3=Conferences
+footer.c2.l3=https://inspire.ec.europa.eu/portfolio/inspire-conferences
+footer.c2.i4=RSS feed
+footer.c2.l4=https://inspire.ec.europa.eu/news_rss
+
+footer.c3.title=INSPIRE Tools
+footer.c3.i1=Toolkit
+footer.c3.l1=http://inspire.ec.europa.eu/inspire-tools
+footer.c3.i2=Geoportal
+footer.c3.l2=http://inspire-geoportal.ec.europa.eu/
+footer.c3.i3=Validator
+footer.c3.l3=ttp://inspire-sandbox.jrc.ec.europa.eu/validator/
+footer.c3.i4=Registry
+footer.c3.l4=http://inspire.ec.europa.eu/registry/
+footer.c3.i5=Data Specification toolkit
+footer.c3.l5=http://inspire-regadmin.jrc.ec.europa.eu/dataspecification/
+
+footer.c4.title=Registry
+footer.c4.i1=Home
+footer.c4.l1=
+footer.c4.i2=Content
+footer.c4.l2=
+footer.c4.i3=Structure
+footer.c4.l3=
+footer.c4.i4=Help
+footer.c4.l4=
+footer.c4.i5=About
+footer.c4.l5=
+
+
+# Page specific labels
+login.label.title=Iniciar sesi\u00f3n
+login.ecas.label.title=EU Login
+login.label.ecaslogin=Iniciar sesi\u00f3n
+login.label.username=Nombre de usuario
+login.label.email=Correo electr\u00f3nico
+login.label.password=Contrase\u00f1a
+login.text.placeholder.email=Correo electr\u00f3nico
+login.text.placeholder.password=Contrase\u00f1a
+login.label.signin=Iniciar sesi\u00f3n
+login.label.logout=Cerrar sesi\u00f3n
+login.text.loginmessage=Ser\u00e1s redirigido al sitio web del Servicio de Autenticaci\u00f3n de la Comisi\u00f3n Europea (EU Login).
+login.text.error.usernotavailable=Tu usuario no est\u00e1 disponible en el sistema.
+login.text.error.usernotenabled=Tu usuario no est\u00e1 habilitado en el sistema.
+login.text.error.usernotloggedin=Est\u00e1s intentando acceder a un \u00e1rea privada. Por favor, completa el inicio de sesi\u00f3n con tus credenciales.
+login.text.error.signin.faild=Error al iniciar sesi\u00f3n.
+login.text.error.credentialerror= Tu contrase\u00f1a no coincide.
+login.text.error.unknownaccount=No se encontr\u00f3 el nombre de usuario.
+login.text.error.lockedAccountException=La cuenta est\u00e1 bloqueada. Por favor, contacta a tu administrador para desbloquearla.
+login.forgot.password=\u00bfOlvidaste tu contrase\u00f1a?
+login.reset.password.title=Restablecer contrase\u00f1a
+login.reset.password.description=Ingresa tu direcci\u00f3n de correo electr\u00f3nico para solicitar un restablecimiento de contrase\u00f1a
+
+index.label.title=Bienvenido a tu panel de administraci\u00f3n
+index.text.temporary-message=Esta es una p\u00e1gina de inicio temporal. Se llenar\u00e1 m\u00e1s adelante con una visi\u00f3n general de la actividad m\u00e1s reciente del usuario.
+
+index.label.migration.title=Migraci\u00f3n
+index.label.migration.start=Iniciar migraci\u00f3n
+index.label.migration.completed=Migraci\u00f3n completada
+index.label.migration.error=Error de migraci\u00f3n
+index.label.migration.dbaddress=Direcci\u00f3n
+index.label.migration.dbport=Puerto
+index.label.migration.dbname=Nombre
+index.label.migration.dbusername=Nombre de usuario
+index.label.migration.dbpassword=Contrase\u00f1a
+index.text.migration.temporary-text=Este es un panel temporal para probar la herramienta de migraci\u00f3n.
+
+index.label.solrindexer.title=Indizador Solr
+index.label.solrindexer.start.field.full=Iniciar indexaci\u00f3n completa de campos
+index.label.solrindexer.start.field.single=Iniciar indexaci\u00f3n de campos por ID
+index.label.solrindexer.start.item.full=Iniciar indexaci\u00f3n completa de elementos
+index.label.solrindexer.start.item.single=Iniciar indexaci\u00f3n de elementos por ID
+index.label.solrindexer.start.itemhistory.full=Iniciar indexaci\u00f3n completa del historial de elementos
+index.label.solrindexer.start.itemhistory.single=Iniciar indexaci\u00f3n del historial de elementos por ID
+index.label.solrindexer.completed=Indexaci\u00f3n completada
+index.label.solrindexer.error=Error de indexaci\u00f3n
+index.text.solrindexer.temporary-text=Este es un panel temporal para probar la indexaci\u00f3n de Solr.
+
+about.label.title=Acerca de
+
+activate.label.title=Cuenta activada
+activate.body=Tu cuenta ahora est\u00e1 activada.
+activate.body.login=Por favor, inicia sesi\u00f3n aqu\u00ed para empezar a usar Re3gistry. Encuentra la documentaci\u00f3n del usuario aqu\u00ed .
+userDeleted.body=Tu cuenta ha sido eliminada exitosamente.
+
+help.label.title=Ayuda
+
+status.label.title=Estado
+
+browse.label.title=Gestionar el contenido
+browse.text.welcome-message=Navega y gestiona el registro
+
+itemclass.label.title=Gestionar la estructura
+
+field.label.title = Gestionar campos
+contentclass.label.title=Panel de estructuras
+
+addItem.label.title = Agregar un elemento
+addItem.text.informative=Selecciona la clase de elemento relacionada con el nuevo registro. Cada clase de elemento no puede estar asociada a m\u00e1s de un registro. Si ves solo clases de elementos "deshabilitadas" en la lista desplegable a continuaci\u00f3n, significa que se necesita crear una nueva clase de elemento para el nuevo registro.
+addItem.text.textlink=Si a\u00fan no lo has agregado, puedes hacerlo aqu\u00ed .
+addItem.text.insertinmaserlanguage=Por favor, ingresa el elemento en el idioma principal del sistema ({0}). Las traducciones adicionales se pueden agregar m\u00e1s tarde.
+
+addRegister.label.title = Agregar un nuevo registro
+
+addItemclass.label.title = Agregar una clase de contenido
+
+mapField.label.title=Agregar campo
+mapField.label.informative=Est\u00e1s incluyendo un campo adicional a la clase de elemento {0} .
+mapField.label.textcreatenewfield=\u00bfEl campo no est\u00e1 en la lista? Crea uno nuevo:
+mapField.label.textselectfield=Selecciona un campo existente de la lista:
+mapField.label.insertnew=Con este formulario, puedes crear un nuevo campo para ser utilizado en las clases de contenido.
+mapField.label.labelinmasterlanguage=Etiqueta en el idioma principal
+
+submittingorganisations.label.title=Panel de Organizaciones de Env\u00edo
+submittingorganisations.label.submit=Enviar a \u00d3rgano de Control
+submittingorganisations.label.changelog=Registro de cambios
+submittingorganisations.label.issuetracker=Enlace del sistema de seguimiento de problemas
+submittingorganisations.label.readchangerequest=Leer la solicitud de cambio
+submittingorganisations.label.notifychange=Notificar cambio implementado
+submittingorganisations.label.modal.submitaction=Enviar acci\u00f3n
+submittingorganisations.label.modal.submitdesc=Est\u00e1s a punto de enviar la acci\u00f3n seleccionada.
+submittingorganisations.label.modal.submitdescnotice=Puedes proporcionar un registro de cambios aqu\u00ed abajo. El texto proporcionado a continuaci\u00f3n ser\u00e1 visible en el front-end de gesti\u00f3n y en el feed RSS p\u00fablico.
+submittingorganisations.label.modal.issue=Puedes agregar un enlace a un problema relacionado con estas acciones.
+submittingorganisations.label.modal.field.required=Este campo es obligatorio.
+
+controlbody.label.title=Panel del \u00d3rgano de Control
+controlbody.label.approve=Aprobar
+controlbody.label.approvewithchanges=Aprobar con cambios
+controlbody.label.reject=Rechazar
+controlbody.label.modal.approvewithchanges.description=Est\u00e1s a punto de aprobar con cambios la acci\u00f3n seleccionada. Por favor, proporciona la descripci\u00f3n de los cambios solicitados.
+controlbody.label.modal.reject.description=Est\u00e1s a punto de rechazar la acci\u00f3n seleccionada. Por favor, proporciona una descripci\u00f3n para el rechazo aqu\u00ed abajo.
+controlbody.label.approve.confirm=\u00bfConfirmar la aprobaci\u00f3n?
+
+registermanager.label.title=Panel del Administrador de Registro
+registermanager.label.changespublish=Verificar cambios y publicar
+registermanager.label.publish=Publicar
+registermanager.label.publish.confirm=\u00bfConfirmar la publicaci\u00f3n?
+
+registrymanager.label.title=Panel del Administrador de Registro
+registrymanager.label.changespublish=Verificar cambios y publicar
+registrymanager.label.publish=Publicar
+registrymanager.label.publish.confirm=\u00bfConfirmar la publicaci\u00f3n?
+
+user.label.updatesuccess=El usuario se ha actualizado correctamente.
+
+group.label.updatesuccess=El grupo se ha actualizado correctamente.
+
+discard.proposal.confirm=\u00bfEst\u00e1s seguro de que deseas descartar la propuesta?
+discard.action.confirm=\u00bfEst\u00e1s seguro de que deseas descartar la acci\u00f3n?
+discard.field.confirm=\u00bfEst\u00e1s seguro de que deseas eliminar el campo?
+discard.contentclass.confirm=\u00bfEst\u00e1s seguro de que deseas eliminar la clase de contenido?
+
+profile.label.title = Perfil de usuario
+
+application.default.name = Re3gistry2
+
+
+#installation fileds
+
+installation.main.title=Asistente de instalaci\u00f3n de Re3gistry
+installation.admin.username=Nombre de usuario
+installation.admin.password=Contrase\u00f1a
+installation.admin.email.example=nombre@ejemplo.com
+installation.admin.sso.example=referenciasso
+installation.admin.confirmation.password=Confirmar contrase\u00f1a
+
+installation.re3gistry.welcome.description=Este asistente te guiar\u00e1 a trav\u00e9s de los pasos necesarios para instalar y configurar el software Re3gistry.
+
+installation.steps.welcome=Bienvenida
+installation.steps.welcome.title=Bienvenido al asistente de configuraci\u00f3n de Re3gistry
+installation.steps.adminuser=Administrador del registro
+installation.steps.profile=Tipo de instalaci\u00f3n
+installation.steps.setup=Configuraci\u00f3n
+installation.steps.summary=Resumen
+installation.steps.install=Instalar
+
+installation.button.continue=Continuar
+installation.button.saveandcontinue=Guardar y continuar
+installation.button.back=Atr\u00e1s
+installation.button.saveandstart.system=Instalar
+installation.button.saveandstart.migration=Guardar e iniciar la migraci\u00f3n
+
+installation.admin.choose.title=Credenciales del administrador del registro
+installation.admin.choose.description=Selecciona un nombre de usuario y una contrase\u00f1a para el administrador del registro. El rol de administrador del registro se otorgar\u00e1 con permisos completos.
+installation.admin.ecas.choose.description=Selecciona un nombre de usuario para el administrador del registro. El rol de administrador del registro se otorgar\u00e1 con permisos completos. El nombre de usuario debe ser una cuenta v\u00e1lida de EU Login.
+installation.admin.email.description=Ingresa una direcci\u00f3n de correo electr\u00f3nico; esta ser\u00e1 el nombre de usuario del administrador del registro.
+installation.admin.ecas.email.description=Ingresa una cuenta v\u00e1lida de EU Login; esta ser\u00e1 el nombre de usuario del administrador del registro.
+installation.admin.ecas.sso.description=Ingresa la referencia SSO asociada a tu cuenta de EU Login.
+installation.admin.password.description=Establece la contrase\u00f1a que utilizar\u00e1 el administrador del registro.
+installation.admin.password.confirmation.description=Establece la contrase\u00f1a que utilizar\u00e1 el administrador del registro y conf\u00edrmala en el campo siguiente.
+installation.ahead.continue=Para continuar, haz clic en 'Continuar'.
+installation.ahead.save.continue=Para continuar, haz clic en 'Guardar y continuar'.
+installation.ahead.install.continue=Para continuar con la instalaci\u00f3n, haz clic en 'Instalar'.
+
+installation.error.creation.user=Se produjo un error al crear el usuario del administrador del registro.
+installation.error=Ha ocurrido un error durante la instalaci\u00f3n de Re3gistry, por favor revisa tus configuraciones.
+migration.error=Ha ocurrido un error durante la migraci\u00f3n de Re3gistry, por favor revisa tus configuraciones.
+read.more=Leer m\u00e1s
+
+installation.profile.choose.title=Tipo de instalaci\u00f3n
+installation.profile.choose.description=Elige el tipo de instalaci\u00f3n que deseas realizar.
+
+installation.profile.migration.description=Elige esta opci\u00f3n si deseas actualizar una instancia preexistente de Re3gistry. Esta opci\u00f3n mantendr\u00e1 tus configuraciones y contenido.
+installation.profile.migration.description.note=Toma en cuenta que esta opci\u00f3n solo funcionar\u00e1 en una instancia existente que est\u00e9 ejecutando Re3gistry versi\u00f3n 1.3.X
+installation.profile.cleaninstallation.description=Elige esta opci\u00f3n si deseas instalar el software Re3gistry por primera vez y crear un registro desde cero.
+installation.success.login=El software Re3gistry se ha instalado correctamente. Puedes comenzar a gestionar el contenido de tu registro iniciando sesi\u00f3n.
+installation.success.login.congratulations=\u00a1Felicidades!
+
+installation.migration.title=Migraci\u00f3n de Re3gistry (desde 1.3.x)
+installation.migration.description=Para migrar el contenido existente de tu Re3gistry a la versi\u00f3n m\u00e1s reciente del software, ingresa los detalles de la base de datos donde actualmente almacenas el contenido de Re3gistry.
+
+installation.installation.title=Instalaci\u00f3n
+installation.migration.title=Migraci\u00f3n
+installation.migration.summary.title=Resumen de migraci\u00f3n
+installation.migration.summary.database=Detalles de la base de datos desde donde se migrar\u00e1 el contenido:
+installation.migration.summary.content=Contenido identificado en la base de datos
+installation.migration.summary.register.belonging=Registros encontrados:
+installation.cleaninstallation.title=Instalaci\u00f3n de Re3gistry
+installation.cleaninstallation.title.summary=Resumen de la instalaci\u00f3n
+installation.cleaninstallation.configuration.description=Los siguientes campos de configuraci\u00f3n permitir\u00e1n la creaci\u00f3n del registro.
+installation.cleaninstallation.configuration.new.registry.description=El registro que est\u00e1s a punto de crear se ver\u00e1 as\u00ed:
+installation.cleaninstallation.languages.description=Configuraci\u00f3n de idiomas
+installation.cleaninstallation.languages.summary.description=Has elegido los IDIOMAS del sistema y principal.
+installation.cleaninstallation.fileds.description=Configuraci\u00f3n del registro
+installation.cleaninstallation.fileds.summary.description=Tu nuevo registro se ver\u00e1 as\u00ed:
+installation.choose.system.language=Idiomas del sistema
+installation.choose.system.languages=Elige los idiomas del sistema
+installation.choose.system.language.description=Los idiomas del sistema son los idiomas admitidos y manejados por Re3gistry. Ten en cuenta que puedes seleccionar uno o m\u00e1s idiomas del sistema.
+installation.master.language=Idioma principal
+installation.choose.master.language=Elige el idioma principal
+installation.choose.master.language.description=El idioma principal es el que utiliza Re3gistry para gestionar el multiling\u00fcismo. Ten en cuenta que esto requerir\u00e1 que todo el contenido est\u00e9 disponible en el idioma principal elegido.
+
+installation.clean.registry.localid=ID local
+installation.clean.registry.localid.description=El ID local formar\u00e1 parte de la URL p\u00fablica, generalmente la ruta despu\u00e9s del nombre de dominio: http://ejemplo.com/registro
+installation.clean.registry.baseuri=URI base
+installation.clean.registry.baseuri.description=La URI base formar\u00e1 parte de la URL p\u00fablica, generalmente deber\u00eda coincidir con tu propio nombre de dominio: http://ejemplo.com /registro
+installation.clean.registry.id=ID
+installation.clean.registry.label=Etiqueta
+installation.clean.registry.label.description=La etiqueta del registro ser\u00e1 el 't\u00edtulo' de la instancia de Re3gistry y se mostrar\u00e1 en la p\u00e1gina de inicio del registro.
+installation.clean.registry.content.summary=Resumen del contenido
+installation.clean.registry.content.summary.description=Este texto debe describir brevemente qu\u00e9 estar\u00e1 disponible en tu instancia de Re3gistry y se mostrar\u00e1 en la p\u00e1gina de inicio del registro.
+
+installation.workflow.title=Tipo de flujo de trabajo
+installation.workflow.description=Selecciona el modelo de gobernanza que deseas aplicar al registro.
+installation.workflow.iso19135.title=Siguiendo ISO 19135
+installation.workflow.iso19135.description=Recomendado si planeas recibir contribuciones de diferentes organizaciones y gestionarlas siguiendo un proceso de gobernanza formal y estandarizado.
+installation.workflow.simplified.title=Flujo de trabajo simplificado
+installation.workflow.simplified.description=Recomendado si la gesti\u00f3n de datos se manejar\u00e1 completamente internamente en la misma organizaci\u00f3n o dentro de un peque\u00f1o grupo de colaboradores, sin requerir un proceso formal.
+
+installation.finalstep.title=Progreso de la instalaci\u00f3n
+installation.finalstep.description.1=Re3gistry est\u00e1 en proceso de instalaci\u00f3n.
+installation.finalstep.description.2=Puedes cerrar esta pesta\u00f1a si lo deseas.
+installation.finalstep.description.3=Una vez que la instalaci\u00f3n haya finalizado, recibir\u00e1s un correo electr\u00f3nico a
+installation.finalstep.description.4=con el informe de instalaci\u00f3n.
+
+changepassword.title=Cambiar contrase\u00f1a
+changepassword.old.password=Contrase\u00f1a actual
+changepassword.new.password=Nueva contrase\u00f1a
+changepassword.confirm.new.password=Confirmar nueva contrase\u00f1a
+passwrod.updated= Tu contrase\u00f1a ha sido actualizada
+name.updated=Tu nombre ha sido actualizado
+
+label.bulkimport=Importaci\u00f3n masiva
+label.bulkedit=Edici\u00f3n masiva
+label.start.bulkimport=Iniciar importaci\u00f3n masiva
+label.start.bulkedit=Iniciar edici\u00f3n masiva
+template=Plantilla
+download.template.bulkimport=Descargar plantilla de importaci\u00f3n masiva
+download.template.bulkedit=Descargar plantilla de edici\u00f3n masiva
+template.bulkimport.title=Descargar archivo CSV de plantilla para importaci\u00f3n masiva
+template.bulkedit.title=Descargar archivo CSV de plantilla para edici\u00f3n masiva
+load.template.bulkimport.title=Cargar archivo CSV de plantilla para iniciar importaci\u00f3n masiva
+load.template.bulkimport.title=Cargar archivo CSV de plantilla para iniciar edici\u00f3n masiva
+reset=Restablecer
+choose=Elegir
+choose.csv.file=Elegir un archivo CSV
+choose.file=Elegir un archivo
+
+bulkimport.error.header=No se pudieron encontrar los campos {fields} en el archivo proporcionado, por favor utiliza uno de los siguientes campos existentes: {expectedFields} o revisa la plantilla para ver la estructura esperada.
+bulkimport.error.localization=No se pudo insertar el \u00edtem con ID local {localid} en la l\u00ednea {line} en el idioma {language} porque el \u00edtem no est\u00e1 disponible en el idioma principal.
+bulkimport.error.itemreference=Algunos \u00edtems que enlazan a referencias no pudieron ser insertados porque a\u00fan no existen o son incorrectos.
+bulk.import.success=El proceso de importaci\u00f3n masiva se ha completado con \u00e9xito.
+bulk.edit.success=El proceso de edici\u00f3n masiva se ha completado con \u00e9xito.
+bulk.import.error=El proceso masivo se ha completado con los siguientes errores:
+bulk.import.error.emptyfile=El proceso masivo no puede completarse porque el archivo no contiene ning\u00fan \u00edtem.
+bulk.edit.error.emptyfile=El proceso masivo no puede completarse porque el archivo no contiene ning\u00fan \u00edtem.
+bulk.import.error.emptyrequired=El proceso de importaci\u00f3n masiva no puede completarse porque el archivo no contiene datos en el campo requerido: {fields} en la l\u00ednea: {line}.
+bulk.edit.error.emptyrequired=El proceso de edici\u00f3n masiva no puede completarse porque el archivo no contiene datos en el campo requerido: {fields} en la l\u00ednea: {line}.
+bulk.import.error.file=El proceso masivo se ha completado con errores. El archivo no pudo procesarse debido a un formato incorrecto.
+bulk.import.error.header.localid=El encabezado del archivo no contiene la columna "ID local".
+bulk.import.error.header.language=El encabezado del archivo no contiene la columna "Idioma".
+bulk.import.error.language.notexistent=El idioma {language} en la l\u00ednea {line} no est\u00e1 disponible en el sistema. Revisa cu\u00e1les son los idiomas admitidos por el sistema.
+bulk.import.error.parent.notexistent=El \u00edtem padre con el ID local {parentLocalID} para el \u00edtem con ID local {localid} en la l\u00ednea {line} no existe a\u00fan, a\u00fan es un borrador o es incorrecto. El sistema espera un \u00edtem V\u00c1LIDO.
+bulk.import.error.collection.notexistent=La colecci\u00f3n con ID local {collectionlocalid} para el \u00edtem con ID local {itemLocalID} en la l\u00ednea {line} no existe a\u00fan o es incorrecta.
+bulk.import.error.relationreferenceitem.notexistent=La referencia de relaci\u00f3n para el \u00edtem con ID local {localid} en la l\u00ednea {line} para el campo {field} con el valor {fieldValue} a\u00fan no existe o es incorrecta. Aseg\u00farate de que haya sido aprobada previamente. El sistema espera un \u00edtem V\u00c1LIDO.
+bulk.import.error.missingmasterlanguage=El masivo no puede completarse porque falta el idioma principal {language} para el \u00edtem {itemLocalID}.
+bulk.import.error.solveerrors=Pero por favor, resuelve desde la interfaz los siguientes errores.
+
+# Importaci\u00f3n a granel
+bulk.import.error.emptylanguage=La importaci\u00f3n a granel no puede completarse porque el idioma est\u00e1 vac\u00edo: l\u00ednea {linea}
+bulk.import.error.wronglanguage=La importaci\u00f3n a granel no puede completarse porque el idioma no existe: l\u00ednea {linea}
+bulk.import.error.format=La importaci\u00f3n a granel no puede completarse porque el formato de la plantilla no es correcto: l\u00ednea {linea}
+bulk.import.error.duplicate=La importaci\u00f3n a granel no puede completarse porque el LocalID {localid} est\u00e1 duplicado.
+bulk.import.localId.spaces=La operaci\u00f3n a granel no puede completarse debido a espacios en el LocalID {localid}.
+bulk.edit.error.localId=La edici\u00f3n a granel no puede completarse porque el LocalID {localid} no existe.
+
+# Correo
+mail.text.subject.success=Re3gistry - instalaci\u00f3n exitosa
+mail.text.body.success=El software Re3gistry se ha instalado correctamente. Puede comenzar a administrar el contenido de su registro iniciando sesi\u00f3n.
+mail.text.subject.error=Re3gistry - error de instalaci\u00f3n
+mail.text.body.error=Se ha producido un error durante la instalaci\u00f3n de Re3gistry, por favor revise su configuraci\u00f3n.
+mail.text.subject.newregistration=Re3gistry - Su cuenta se ha agregado correctamente al sistema
+mail.text.error.newregistration=Estimado/a {name}, Su cuenta se ha creado correctamente y ahora est\u00e1 habilitada. Puede acceder a la interfaz de gesti\u00f3n utilizando las siguientes credenciales: Usuario: {email} Clave: {key} Cambie su clave despu\u00e9s del primer acceso, por favor.
+mail.text.error.ecas.newregistration=Estimado/a {name}, Su cuenta se ha creado correctamente y ahora est\u00e1 habilitada. Puede acceder a la interfaz de gesti\u00f3n utilizando las credenciales de inicio de sesi\u00f3n de la UE.
+mail.text.subject.resetpassword.registration=Re3gistry - Su cuenta se ha actualizado correctamente en el sistema
+mail.text.error.resetpassword.registration=Estimado/a {name}, Su cuenta se ha actualizado correctamente y ahora est\u00e1 habilitada. Puede acceder a la interfaz de gesti\u00f3n utilizando las siguientes credenciales: Usuario: {email} Clave: {key} Cambie su clave despu\u00e9s del primer acceso, por favor.
+
+mail.text.subject.solr.success=Re3gistry - indexaci\u00f3n SOLR exitosa
+mail.text.body.solr.success=El software Re3gistry ha completado la indexaci\u00f3n SOLR con \u00e9xito. Puede comenzar a administrar el contenido de su registro iniciando sesi\u00f3n.
+mail.text.subject.solr.error=Re3gistry - error de indexaci\u00f3n SOLR
+mail.text.body.solr.error=Se ha producido un error durante la indexaci\u00f3n SOLR de Re3gistry, por favor revise su configuraci\u00f3n.
+mail.text.subject.cache.success=Re3gistry - \u00e9xito completo del CACHE
+mail.text.body.cache.success=El software Re3gistry ha completado con \u00e9xito el CACHE de todos los elementos. Puede comenzar a administrar el contenido de su registro iniciando sesi\u00f3n.
+mail.text.subject.cache.error=Re3gistry - error completo del CACHE
+mail.text.body.cache.error=Se ha producido un error durante el CACHE de todos los elementos de Re3gistry, por favor revise su configuraci\u00f3n.
+mail.text.subject.item.publised={label} ha sido publicado
+mail.text.body.item.publised={label} ha sido publicado con \u00e9xito. El registro de cambios asociado a esta acci\u00f3n es: {changelog}
+
+mail.text.subject.bulkimport.success=Re3gistry - proceso de importaci\u00f3n a granel {itemclass} exitoso
+mail.text.subject.bulkimport.error=Re3gistry - error en el proceso de importaci\u00f3n a granel {itemclass}
+mail.text.body.bulkimport.success=Estimado/a {name}, El proceso de importaci\u00f3n a granel se ha completado con \u00e9xito. Para m\u00e1s detalles, acceda a la interfaz de gesti\u00f3n . Saludos cordiales, Equipo Re3gistry de INSPIRE
+mail.text.body.bulkimport.error=Estimado/a {name}, El proceso de importaci\u00f3n a granel se ha completado con algunos errores al cargar el archivo. Corrija los siguientes errores: {errors} y vuelva a intentar cargar el archivo. Saludos cordiales, Equipo Re3gistry de INSPIRE
+
+mail.text.subject.bulkedit.success=Re3gistry - proceso de edici\u00f3n a granel {itemclass} exitoso
+mail.text.subject.bulkedit.error=Re3gistry - error en el proceso de edici\u00f3n a granel {itemclass}
+mail.text.body.bulkedit.success=Estimado/a {name}, El proceso de edici\u00f3n a granel se ha completado con \u00e9xito. Para m\u00e1s detalles, acceda a la interfaz de gesti\u00f3n . Saludos cordiales, Equipo Re3gistry de INSPIRE
+mail.text.body.bulkedit.error=Estimado/a {name}, El proceso de edici\u00f3n a granel se ha completado con algunos errores al cargar el archivo. Corrija los siguientes errores: {errors} y vuelva a intentar cargar el archivo. Saludos cordiales, Equipo Re3gistry de INSPIRE
+
+mail.text.subject.groupschanged=Cambios en los grupos de usuario de {contact}
+mail.text.body.groupschanged= Estimado/a {user}, Los grupos asociados con su usuario {id} han cambiado.
+mail.text.body.groupschanged.add=Ha sido agregado a los siguientes grupos:
+mail.text.body.groupschanged.remove=Ya no est\u00e1 en los siguientes grupos:
+mail.text.body.groupschanged.ending= Acceda a los detalles de su p\u00e1gina de perfil de usuario en la interfaz de gesti\u00f3n para obtener m\u00e1s informaci\u00f3n: {name} {contact} gerente.
+mail.text.body.groupschanged.ending.contact=Software de registro
+mail.text.body.groupschanged.ending.contact.webpage=https://github.com/ec-jrc/re3gistry
+
+mail.text.body.itemaction.basebody=Los siguientes elementos han cambiado:
+mail.text.body.itemaction.acceptedwithchanges=aceptado con cambios
+mail.text.body.itemaction.notaccepted=no aceptado
+mail.text.body.itemaction.rejected=rechazado
+mail.text.body.itemaction.basebody.controlbody=Se realizaron acciones en el \u00d3rgano de Control
+mail.text.body.itemaction.basebody.submitting=Se realizaron acciones en las Organizaciones que Presentan
+mail.text.body.itemaction.proposedby= propuesto por
+mail.text.body.itemaction.was= fue
+mail.text.body.itemaction.actionmadeby=. La acci\u00f3n fue realizada por
+
+# Consejo de agregar registro
+registry.tooltip=Registro de destino donde se ubicar\u00e1 el registro que est\u00e1 a punto de crear
+registry.path.tooltip=Esta opci\u00f3n permite incluir la palabra 'registro' para todos los elementos pertenecientes al registro que est\u00e1 a punto de crear
+registry.localid.tooltip=Fragmento de la URI que har\u00e1 referencia al registro que est\u00e1 a punto de crear. Vea la secci\u00f3n de vista previa para entender c\u00f3mo se ver\u00e1 p\u00fablicamente.
+registry.label.tooltip=Proporcione un nombre legible para el registro
+registry.contentsummary.tooltip=Proporcione una breve descripci\u00f3n del registro que est\u00e1 a punto de crear
+registry.registerowner.tooltip=Seleccione de la lista desplegable la parte que posee el registro
+registry.registermanager.tooltip=Seleccione de la lista desplegable la parte responsable de la actualizaci\u00f3n y gesti\u00f3n del registro
+registry.controlbody.tooltip=Seleccione de la lista desplegable la parte responsable de decidir sobre las propuestas presentadas
+registry.submittingorganization.tooltip=Seleccione de la lista desplegable la parte responsable de proponer cambios en el contenido del registro
+
+operation.cacheinprogress=La cach\u00e9 de los elementos publicados est\u00e1 en progreso. Podr\u00e1 ver los cambios publicados muy pronto.
+operation.remove.cache.success=La cach\u00e9 se ha eliminado con \u00e9xito.
diff --git a/sources/Re3gistry2/src/main/resources/localizations/LocalizationBundle_it.properties b/sources/Re3gistry2/src/main/resources/localizations/LocalizationBundle_it.properties
new file mode 100644
index 00000000..23ffd168
--- /dev/null
+++ b/sources/Re3gistry2/src/main/resources/localizations/LocalizationBundle_it.properties
@@ -0,0 +1,670 @@
+#
+# Copyright 2007,2016 EUROPEAN UNION
+# Licensed under the EUPL, Version 1.2 or - as soon they will be approved by
+# the European Commission - subsequent versions of the EUPL (the "Licence");
+# You may not use this work except in compliance with the Licence.
+# You may obtain a copy of the Licence at:
+#
+# https://ec.europa.eu/isa2/solutions/european-union-public-licence-eupl_en
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the Licence is distributed on an "AS IS" basis,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the Licence for the specific language governing permissions and
+# limitations under the Licence.
+#
+# Date: 2020/05/11
+# Authors:
+# European Commission, Joint Research Centre - jrc-inspire-support@ec.europa.eu
+#
+# This work was supported by the Interoperability solutions for public
+# administrations, businesses and citizens programme (http://ec.europa.eu/isa2)
+# through Action 2016.10: European Location Interoperability Solutions for e-Government (ELISE)
+# for e-Government (ELISE)
+#
+
+#### COMMON PROPERTIES ####
+
+# Locale related properties
+property.dateformat=yyyy-MM-dd HH:mm:ss
+property.localeid=en
+
+# Main labels
+label.title=Re3gistry
+label.subtitle=Reference codes management tool
+
+# Common labels
+label.ec=European Commission
+label.eclogo=European Commission logo
+label.about=About
+label.privacy=Privacy policy
+label.contact=Contact
+label.legal=Legal notice
+label.togglenavi=Toggle navigation
+label.details=Details
+label.login=Iniciar sesion
+label.logout=Sign out
+label.private=Private area
+label.email=E-mail
+label.uri=URI
+label.footerlogo=INSPIRE logo
+label.headeralert=
+label.notranslation=Some items may not be available in the selected language. Showing items in the master language instead.
+label.masterlanguage=Master language
+label.language=Language
+label.value=Value
+label.href=Link
+label.ishyperlinked=Is hyperlinked
+label.remove=Remove
+label.add=Add
+label.save=Save
+label.savechanges=Save changes
+label.changepassword=Change password
+label.discard=Discard item proposal
+label.discardcurrentchanges=Discard proposal
+label.discardaction=Discard action
+label.map=Save
+label.saveclarification=Save clarification
+label.supersede=Supersede
+label.invalidate=Invalidate
+label.retire=Retire
+label.manageitemclass=Manage structure
+label.managefields=Manage fields
+label.containeditems=Available items
+label.proposeditems=New items proposed
+label.additem=Add item
+warning.item.cannot.beedited=The current item cannot be edited because the status is set to {0}
+label.itemclassmanagemessage= This item does not allow to have sub-elements. Consider changing its properties in the content class management .
+label.itemclassmanagemessagenomanage=This item does not allow to have sub-elements.
+label.noregisters=There are no registers in this registry.
+label.translationnotavailable=The translation for some of the fields label is not available in the selected language. You can Add missing translations .
+label.itemclassdetail=Content class detail
+label.itemclasstype=Type
+label.parentitemclass=Parent
+label.baseuri=Base URI
+label.dataprocedureorder=Data procedure order
+label.moreactions=More actions
+label.editfields=Edit fields
+label.addregisteritemclass=Add a child content class
+label.additemitemclass=Add a child content class
+label.addchilditemitemclass=Add child item class
+label.itemclasslist=Content class list
+label.registrycontentclasslist=Registry content class
+label.registercontentclasslist=Register content class
+label.itemcontentclasslist=Item content class
+label.type=Type
+label.parent=Parent
+label.addparent=Add parent
+label.addparent.firstinsert=This field can be added after the first save of the item
+label.addrelation.firstinsert=This field can be added after the first save of the item
+label.procedureorder=Procedure order
+label.actions=Actions
+label.showfieldforitemclass=Fields available for the
+label.listorder=Display order
+label.label=Label
+label.masterlanguagelabel=Master language label
+label.hidden=Hidden
+label.multivalued=Multivalued
+label.required=Required
+label.tablevisible=Show in table
+label.nocollection=No collection parent for this item
+label.nosuccessor=No successor for this item
+label.nopredecessor=No predecessor for this item
+label.noparent=No parent for this item
+label.nosuccessorpredecessor=This field is valorized during a supersession or invalidation.
+label.collectionnotapplicable=Not applicable at this level
+label.addregister=Add register
+label.additemclass=Add content class
+label.field=Field
+label.fieldtype=Field type
+label.registry=The system does not have any registry
+label.localid=Local ID
+label.contentclasslocalid=Content class local ID
+label.referencenoavailable=Reference not available
+label.itemclass=Content class
+label.itemclassreference=Content class reference
+label.fieldrequired=This field is required
+label.fielduriinfo=The URI accepts only letters (Aa-zZ), numbers (0-9) and . - _
+label.fieldnoeditableuri=The URI of an item cannot be changed
+label.completerequiredfields=Please check the errors in the form
+label.js.customcomfirmexit=This page is asking you to confirm that you want to leave - data you have entered may not be saved. Continue?
+label.patternerror.date=This is a date field; check your input
+label.patternerror.number=This is a numeric field; check your input
+label.restoreoriginalrelation=Restore the original relation
+label.listfields=View/manage fields
+label.field.map=Add field
+label.field.unmap=Remove field
+label.addNewField=Create a new field
+label.continue=Continue
+label.nofieldsmapped=It seems that there are no fields mapped for this content class. Please add fields to this content class.
+label.hiddenpublicinterface=This field is hidden in the public interface.
+label.proposalnotowner=You can not edit the proposal because you are not the owner.
+label.proposalnotdraft=The proposal has been submitted therefore it cannot be edited anymore.
+label.creationdate=Creation date
+label.startdate=Start date
+label.insertdate=Insert date
+label.editdate=Edit date
+label.status=Status
+label.backto=Back to
+label.actionslist=Actions list
+label.actiondetails=Action details
+label.userowner=User (owner)
+label.label=Label
+label.listofchangesinactionproposed=List of changes proposed to this action
+label.listofchangesrejected=History of changes proposed in this action
+label.listofchangespublished=List of changes published in this action
+label.noaction=No actions available
+label.user=User
+label.cancel=Cancel
+label.close=Close
+label.submit=Submit
+label.next=Next
+label.new=new
+label.changeneeded=change needed
+label.requestedchange=Change request
+label.viewdetail=View detail
+label.rejectmessage=Reject message
+label.by=by
+label.group=Group
+label.groupedby=Grouped by
+label.register=Register
+label.registry=Registry
+label.submittedby=Submitted by
+label.approvedby=Accepted by
+label.rejectedby=Rejected by
+label.actionon=Action on
+label.updatelabel=Click to edit the label of the action and enter to submit the modification
+label.proposalInvalidation=This is a invalidation proposal, therefore it cannot be edited any more.
+label.proposalRetirement=This is a retirement proposal, therefore it cannot be edited any more.
+label.proposalSuperseded=This is a supersession proposal, therefore it cannot be edited any more.
+label.keeppath=Include 'registry' word in the URI path?
+label.uripreview=URI preview
+label.definition=Definition
+label.procedureorder.notice=* The column "Procedure order" allows ordering of the content class for the bulk procedures. It is important that every parent content class is before its child content class.
+label.contenttype.legend=Content type legend
+label.contenttype.legend.registry= Registry
+label.contenttype.legend.register= Register
+label.contenttype.legend.item= Item
+label.note=Note
+label.error=Error
+label.successreordering=The row has been successfully reordered.
+label.edit=Edit
+label.changesautosaved=Note: the changes done in the table (check boxes) are automatically saved.
+label.changesautosaved.cache=Changes in the structure requires the execution of a new cache.
+label.fieldchangelabelnote=Note: the fields' labels are shared between more content class. The change to a field's label will be visible in all the registers/items where that field is associated.
+label.maxchars=max chars {0}
+label.userslist=Users list
+label.userdetails=User details
+label.name=Name
+label.ssoref=SSO reference
+label.enable=Enable
+label.enabled=Enabled
+label.disable=Disable
+label.disabled=Disabled
+label.enableuser=Enable user
+label.disableuser=Disable user
+label.deleteuser=Delete user
+label.changepassword=Change password
+label.associatedgroups=Associated groups
+label.addgroup=Add a group
+label.resetpassword=Reset password
+label.users=Users
+label.groups=Groups
+label.website=Web site
+label.associatedusers=Associated users
+label.adduser=Add user
+label.removefromthisgroup=Remove from this group
+label.nogroup=No groups found
+label.childrenitems=Children items
+label.nofieldstoshow=No fields to show in the table. Check the content class configuration
+label.operationsuccess=The operation has been completed with success
+label.externalvalue=Is it an external value?
+label.externalitemsnocontained=This is an external item. It cannot have other associated items.
+label.registerfederationexport=Register Federation export
+label.on=On
+label.off=Off
+label.termsofuse=Terms of use
+label.cookies=Cookies
+label.pendingitems=List of your pending items
+label.registrystatus=Public registry status, if '/' is present - status of the proposal
+label.dashboard=dashboard
+label.sessionexpiring.title=Session expiring warning
+label.sessionexpiring.text=The session will expire in 10 minutes due to user inactivity. Please save your data to renew the session and avoid data loss.
+label.dataexport=Data export
+label.solr=Solr
+label.solrdescription=This functionality lets you start a full re-index on Solr of the published items.
+label.solrstartindexing=Start Solr full indexing
+label.solrrunning=A complete indexing is currently running. Please wait until it finishes to start a new one.
+label.cache=Cache
+label.cache.class=Cache class
+label.cachingdescription=This functionality lets you start a full re-caching of the published items.
+label.cachestartindexing=Cache All
+label.cachestartindexing.masterlanguage=Cache all - Master language
+label.removecache=Remove cache
+label.cacheallrunning=A complete caching is currently running. Please wait until it finishes to start a new one.
+label.cacheactionrunning=A caching of the previous published action is currently running. Please wait until it finishes to start a new one.
+label.filterlabel=Filter label
+label.description=Description
+label.public=Public
+label.yes=Yes
+label.no=no
+label.csrferror=A generic error occurred while performing the requested action. Please check the system logs to have more information.
+
+# Errors
+error.generic=A generic error occurred while performing the requested action. Please check the system logs to have more information.
+error.itemclass.localid.available=The local id specified for the content class is already available in the system.
+error.noemptyvaluesfornewfield=A new value cannot be added with empty string.
+error.item.localid.available=The local id specified for the item is already available in the system.
+error.wrongorder=The order is not valid. A content class shall be always after his father in the procedure order.
+error.itemclass.notdeletable.childcontentclassassociated=This content class cannot be deleted because it has some child content classes associated.
+error.itemclass.notdeletable.itemsassociated=This content class cannot be deleted because it has some items associated.
+success.itemclass.deletable=The content class has been deleted with success.
+success.itemclass.editable=The content class has been edited with success.
+error.itemclass.noteditable=This content class cannot be edited because it has some child content classes or some items associated.
+error.user.available=This user is already available in the database.
+error.user.notavailable=This user is NOT available in the database.
+error.installafion.flag=Error during the creation of the installation completed file
+success.resetpassword=Your password has been reseted with success. Please check you email and try to login.
+error.resetpassword=There has been encountered some errors. Please insert again the email and try to reset.
+error.field.exit.localid=The field that you are trying to create is already present in the system. Please try again using a different Local ID.
+error.field.exit.label=The field that you are trying to create is already present in the system. Please try again using a different Label.
+
+# Menu labels
+menu.home.label=Admin
+menu.migration.label=Migration tool
+menu.solrIndexer.label=Solr Indexer
+menu.browse.label=Content
+menu.field.label=Manage fields
+menu.itemclass.label=Structure
+menu.submittingorganisations.label=Submitting Organisations
+menu.controlbody.label=Control Body
+menu.registermanager.label=Register Manager
+menu.registrymanager.label=Registry Manager
+
+# Footer menu
+footer.c1.title=INSPIRE
+footer.c1.i1=Knowledge Base
+footer.c1.l1=http://inspire.ec.europa.eu/
+footer.c1.i2=Legislation
+footer.c1.l2=http://inspire.ec.europa.eu/legislation
+footer.c1.i3=Library
+footer.c1.l3=http://inspire.ec.europa.eu/library
+footer.c1.i4=Themes
+footer.c1.l4=http://inspire.ec.europa.eu/Themes
+footer.c1.i5=Thematic Clusters
+footer.c1.l5=http://inspire.ec.europa.eu/thematic-clusters
+
+footer.c2.title=NEWS & EVENTS
+footer.c2.i1=News
+footer.c2.l1=http://inspire.ec.europa.eu/news
+footer.c2.i2=Events
+footer.c2.l2=http://inspire.ec.europa.eu/Events
+footer.c2.i3=Conferences
+footer.c2.l3=https://inspire.ec.europa.eu/portfolio/inspire-conferences
+footer.c2.i4=RSS feed
+footer.c2.l4=https://inspire.ec.europa.eu/news_rss
+
+footer.c3.title=INSPIRE Tools
+footer.c3.i1=Toolkit
+footer.c3.l1=http://inspire.ec.europa.eu/inspire-tools
+footer.c3.i2=Geoportal
+footer.c3.l2=http://inspire-geoportal.ec.europa.eu/
+footer.c3.i3=Validator
+footer.c3.l3=ttp://inspire-sandbox.jrc.ec.europa.eu/validator/
+footer.c3.i4=Registry
+footer.c3.l4=http://inspire.ec.europa.eu/registry/
+footer.c3.i5=Data Specification toolkit
+footer.c3.l5=http://inspire-regadmin.jrc.ec.europa.eu/dataspecification/
+
+footer.c4.title=Registry
+footer.c4.i1=Home
+footer.c4.l1=
+footer.c4.i2=Content
+footer.c4.l2=
+footer.c4.i3=Structure
+footer.c4.l3=
+footer.c4.i4=Help
+footer.c4.l4=
+footer.c4.i5=About
+footer.c4.l5=
+
+
+# Page specific labels
+login.label.title=Effettua il login
+login.ecas.label.title=EU Login
+login.label.ecaslogin=Effettua il login
+login.label.username=Username
+login.label.email=E-mail
+login.label.password=Password
+login.text.placeholder.email=E-mail
+login.text.placeholder.password=Password
+login.label.signin=Effettua il login
+login.label.logout=Sign out
+login.text.loginmessage=You will be redirected to the European Commission Authentication Service (EU Login) website
+login.text.error.usernotavailable=Your user is not available in the system.
+login.text.error.usernotenabled=Your user is not enabled in the system.
+login.text.error.usernotloggedin=You are trying to access a private area. Please complete the login using your credentials.
+login.text.error.signin.faild=Sign in failed
+login.text.error.credentialerror= Your password does not match.
+login.text.error.unknownaccount=The username was not found.
+login.text.error.lockedAccountException=The account is locked. Please contact your administrator to unlock it.
+login.forgot.password=Forgot password?
+login.reset.password.title=Reset password
+login.reset.password.description=Please enter your email address to request a password reset
+
+index.label.title=Welcome to your administration panel
+index.text.temporary-message=This is a temporary home page. It will be filled later with an overview of the latest activity of the user.
+
+index.label.migration.title=Migration
+index.label.migration.start=Start migration
+index.label.migration.completed=Migration completed
+index.label.migration.error=Migration error
+index.label.migration.dbaddress=Address
+index.label.migration.dbport=Port
+index.label.migration.dbname=Name
+index.label.migration.dbusername=Username
+index.label.migration.dbpassword=Password
+index.text.migration.temporary-text=This is a temporary panel to test the migration tool.
+
+index.label.solrindexer.title=Solr Indexer
+index.label.solrindexer.start.field.full=Start field indexing full
+index.label.solrindexer.start.field.single=Start field indexing by id
+index.label.solrindexer.start.item.full=Start item indexing full
+index.label.solrindexer.start.item.single=Start item indexing by id
+index.label.solrindexer.start.itemhistory.full=Start item history indexing full
+index.label.solrindexer.start.itemhistory.single=Start item history indexing by id
+index.label.solrindexer.completed=Indexing completed
+index.label.solrindexer.error=Indexing error
+index.text.solrindexer.temporary-text=This is a temporary panel to test the Solr indexing.
+
+about.label.title=About
+
+activate.label.title=Account activated
+activate.body=Your account is now activated.
+activate.body.login=Please log in here to start using Re3gistry. Find user documentation here .
+userDeleted.body=Your account has been succesfully deleted.
+
+help.label.title=Help
+
+status.label.title=Status
+
+browse.label.title=Manage the content
+browse.text.welcome-message=Browse and manage the registry
+
+itemclass.label.title=Manage the structure
+
+field.label.title = Manage fields
+contentclass.label.title=Structure dashboard
+
+addItem.label.title = Add an item
+addItem.text.informative=Select the item class related to the new register. Each item class cannot be associated to more than one register. If you see only "disabled" item classes in the select box below, it means that a new item class for the new register needs to be created.
+addItem.text.textlink=If you did not add it yet, you can do it here .
+addItem.text.insertinmaserlanguage=Please enter the item in the system master language ({0}). Any additional translation can be added later.
+
+addRegister.label.title = Add a new register
+
+addItemclass.label.title = Add a content class
+
+mapField.label.title=Add field
+mapField.label.informative=You are including an additional field to the item class {0} .
+mapField.label.textcreatenewfield=The field is not in the list? Create a new one:
+mapField.label.textselectfield=Select an existing field from the list:
+mapField.label.insertnew=Using this form you can create a new field to be used in the content classes
+mapField.label.labelinmasterlanguage=Label in the master language
+
+submittingorganisations.label.title=Submitting Organisations dashboard
+submittingorganisations.label.submit=Submit to Control Body
+submittingorganisations.label.changelog=Changelog
+submittingorganisations.label.issuetracker=Issue tracker link
+submittingorganisations.label.readchangerequest=Read the change request
+submittingorganisations.label.notifychange=Notify change implemented
+submittingorganisations.label.modal.submitaction=Submit action
+submittingorganisations.label.modal.submitdesc=You are about to submit the selected action.
+submittingorganisations.label.modal.submitdescnotice=You can provide a change log here below. The text provided below will be visible in the management front-end and public RSS feed.
+submittingorganisations.label.modal.issue=You can add a link to a issue related to this actions
+submittingorganisations.label.modal.field.required=This field is required.
+
+controlbody.label.title=Control body dashboard
+controlbody.label.approve=Approve
+controlbody.label.approvewithchanges=Approve with changes
+controlbody.label.reject=Reject
+controlbody.label.modal.approvewithchanges.description=You are about to approve with changes the selected action. Please provide the description of the requested changes.
+controlbody.label.modal.reject.description=You are about to reject the selected action. Please provide a description for the rejection here below.
+controlbody.label.approve.confirm=Confirm the approval?
+
+registermanager.label.title=Register manager dashboard
+registermanager.label.changespublish=Check changes and publish
+registermanager.label.publish=Publish
+registermanager.label.publish.confirm=Confirm the publication?
+
+registrymanager.label.title=Registry manager dashboard
+registrymanager.label.changespublish=Check changes and publish
+registrymanager.label.publish=Publish
+registrymanager.label.publish.confirm=Confirm the publication?
+
+user.label.updatesuccess=The user has been successfully updated.
+
+group.label.updatesuccess=The group has been successfully updated.
+
+discard.proposal.confirm=Are you sure you want to discard the proposal?
+discard.action.confirm=Are you sure you want to discard the action?
+discard.field.confirm=Are you sure you want to remove the field?
+discard.contentclass.confirm=Are you sure you want to remove the content class?
+
+profile.label.title = User profile
+
+application.default.name = Re3gistry2
+
+#installation fileds
+
+installation.main.title=Re3gistry installation wizard
+installation.admin.username=Username
+installation.admin.password=Password
+installation.admin.email.example=name@example.com
+installation.admin.sso.example=ssoreference
+installation.admin.confirmation.password=Confirm Password
+
+installation.re3gistry.welcome.description=This wizard will take you through the steps required to install and configure the Re3gistry software.
+
+installation.steps.welcome=Welcome
+installation.steps.welcome.title=Welcome to the Re3gistry set up wizard
+installation.steps.adminuser=Registry manager
+installation.steps.profile=Installation type
+installation.steps.setup=Set up
+installation.steps.summary=Summary
+installation.steps.install=Install
+
+installation.button.continue=Continue
+installation.button.saveandcontinue=Save and continue
+installation.button.back=Back
+installation.button.saveandstart.system=Install
+installation.button.saveandstart.migration=Save and start the migration
+
+installation.admin.choose.title=Registry manager credentials
+installation.admin.choose.description=Select a username and password for the registry manager. The registry manager role will be granted with the full permissions.
+installation.admin.ecas.choose.description=Select a username for the registry manager. The registry manager role will be granted with the full permissions. The username should be a EU Login valid account.
+installation.admin.email.description=Enter an email address, this will be the username of the registry manager.
+installation.admin.ecas.email.description=Enter a valid EU Login account, this will be the username of the registry manager.
+installation.admin.ecas.sso.description=Enter the SSO reference associated with your EU Login account
+installation.admin.password.description=Set the password to be used by the registry manager.
+installation.admin.password.confirmation.description=Set the password to be used by the registry manager, and confirm it in the field below.
+installation.ahead.continue=To go ahead, click on \u2018Continue\u2019.
+installation.ahead.save.continue=To go ahead, click on \u2018Save and continue\u2019.
+installation.ahead.install.continue=To go ahead with the installation, click on \u2018Install\u2019.
+
+installation.error.creation.user=There has been an error while creating the Registry manager user.
+installation.error=An error has occurred during the Re3gistry installation, please review your settings.
+migration.error=An error has occurred during the Re3gistry migration, please review your settings.
+read.more=Read more
+
+installation.profile.choose.title=Installation type
+installation.profile.choose.description=Choose the installation type you wish to perform.
+
+installation.profile.migration.description=Choose this option if you want to upgrade a preexisting Re3gistry instance. This option will keep your settings and content.
+installation.profile.migration.description.note=Note that this option will work only on an existing instance running on Re3gistry version 1.3.X
+installation.profile.cleaninstallation.description=Choose this option if you want to install the Re3gistry software for the first time and to create a registry from scratch.
+installation.success.login=The Re3gistry software has been properly installed. You can start managing your registry content by signing in.
+installation.success.login.congratulations=Congratulations!
+
+installation.migration.title=Re3gistry migration (from 1.3.x)
+installation.migration.description=To migrate your existing Re3gistry content to the newer version of the software, please, enter the details of the database where you are currently storing the Re3gistry content.
+
+installation.installation.title=Installation
+installation.migration.title=Migration
+installation.migration.summary.title=Migration summary
+installation.migration.summary.database=Database details from where the content will be migrated:
+installation.migration.summary.content=Content identified in the database
+installation.migration.summary.register.belonging=Registers found:
+installation.cleaninstallation.title=Re3gistry installation
+installation.cleaninstallation.title.summary=Installation summary
+installation.cleaninstallation.configuration.description=The following configuration fields would allow the creation of the registry.
+installation.cleaninstallation.configuration.new.registry.description=The registry that you are about to create will look as follows:
+installation.cleaninstallation.languages.description=Language configuration
+installation.cleaninstallation.languages.summary.description=You have chosen the system and master LANGUAGES
+installation.cleaninstallation.fileds.description=Registry configuration
+installation.cleaninstallation.fileds.summary.description=Your new registry is going to look like
+installation.choose.system.language=System languages
+installation.choose.system.languages=Choose the system languages
+installation.choose.system.language.description=The system languages are the languages supported and handled by the Re3gistry. Note that you can select one or more system languages.
+installation.master.language=Master language
+installation.choose.master.language=Choose the master language
+installation.choose.master.language.description=The master language is the one used by the Re3gistry to handle multilingualism. Note that this will require all content to be available in the chosen master language.
+
+installation.clean.registry.localid=Local ID
+installation.clean.registry.localid.description=The local ID will be part of the public URL, generally the path following the domain name: http://example.com/registry
+installation.clean.registry.baseuri=Base URI
+installation.clean.registry.baseuri.description=The base URI will be part of the public URL, generally this should match with your own domain name: http://example.com /registry
+installation.clean.registry.id=ID
+installation.clean.registry.label=Label
+installation.clean.registry.label.description=The label of the registry will be the \u2018title\u2019 of the Re3gistry instance. It will be shown in the registry\u2019s landing page.
+installation.clean.registry.content.summary=Content summary
+installation.clean.registry.content.summary.description=This text should describe shortly what would be available under your Re3gistry instance. It will be shown in the registry\u2019s landing page.
+
+installation.workflow.title=Type of workflow
+installation.workflow.description=Select the governance model you would like the registry to apply.
+installation.workflow.iso19135.title=Following ISO 19135
+installation.workflow.iso19135.description=Recommended if you plan to receive contributions from different organisations and manage them following a formal and standardised governance process.
+installation.workflow.simplified.title=Simplified workflow
+installation.workflow.simplified.description=Recommended if the data management will be handled entirely internally in the same organisation, or within a small group of contributors, not requiring such formal process.
+
+installation.finalstep.title=Installation progress
+installation.finalstep.description.1=The Re3gistry is in process of installation.
+installation.finalstep.description.2=You can close this tab if you wish.
+installation.finalstep.description.3= Once the installation will be over you will be receiving and email to
+installation.finalstep.description.4=with the installation report.
+
+changepassword.title=Change password
+changepassword.old.password=Current password
+changepassword.new.password=New password
+changepassword.confirm.new.password=Confirm new password
+passwrod.updated= Your password has been updated
+name.updated=Your name has been updated
+
+label.bulkimport=Bulk import
+label.bulkedit=Bulk edit SPANISH
+label.start.bulkimport=Start bulk import
+label.start.bulkedit=Start bulk edit SPANISH
+template=Template
+download.template.bulkimport=Download template bulk import
+download.template.bulkedit=Download template bulk edit
+template.bulkimport.title=Download template CSV file for the bulk import
+template.bulkedit.title=Download template CSV file for the bulk edit
+load.template.bulkimport.title=Load template CSV file to start the bulk import
+load.template.bulkimport.title=Load template CSV file to start the bulk edit
+reset=Reset
+choose=Choose
+choose.csv.file=Choose a CSV file
+choose.file=Choose a file
+
+bulkimport.error.header=The field(s) {fields} could not be found in the file provided, please use one of the following existing fields: {expectedFields} or review the template to see the expected structure.
+bulkimport.error.localization=The item with localid {localid} in line {line} in language {language} could not be inserted because the item is not available in the master language.
+bulkimport.error.itemreference=Some items linking to references could not be inserted because they do not exist yet or they are incorrect.
+
+bulk.import.success=The bulk import process has been complete with success.
+bulk.edit.success=The bulk edit process has been complete with success.
+bulk.import.error=The bulk process has been complete with the following errors:
+bulk.import.error.emptyfile=The bulk process cannot be complete because the file does not contain any item.
+bulk.edit.error.emptyfile=The bulk process cannot be complete because the file does not contain any item.
+bulk.import.error.emptyrequired=The bulk import process cannot be complete because the file does not contain data on required field: {fields} on line: {line}.
+bulk.edit.error.emptyrequired=The bulk edit process cannot be complete because the file does not contain data on required field: {fields} on line: {line}.
+bulk.import.error.file=The bulk process has been complete with errors. The file could not be processed because of a wrong format.
+bulk.import.error.header.localid=The header of the file does not contain the "LocalID" column.
+bulk.import.error.header.language=The header of the file does not contain the "Language" column.
+bulk.import.error.language.notexistent=The language {language} in line {line} is not available in the system. Review which are are the languages handled by the system.
+bulk.import.error.parent.notexistent=The parent with the localID {parentLocalID} for the item with localid {localid} in line {line} does not exist yet, is still a draft or it is incorrect. The system is expecting a VALID item.
+bulk.import.error.collection.notexistent=The collection with localid {collectionlocalid} for the item with localID {itemLocalID} in line {line} does not exist yet or it is incorrect.
+bulk.import.error.relationreferenceitem.notexistent=The relation reference for the item with localid {localid} in line {line} for the field {field} with the value {fieldValue} does not exist yet or it is incorrect, make sure it has been previously approved. The system is expecting a VALID item.
+bulk.import.error.missingmasterlanguage=The bulk cannot be completed because the master language {language} for item {itemLocalID} is missing.
+bulk.import.error.solveerrors=BUT please solve from the interface the following errors
+bulk.import.error.emptylanguage= The bulk cannot be complete because the language is empty: line {line}
+bulk.import.error.wronglanguage= The bulk cannot be complete because the language does not exist: line {line}
+bulk.import.error.format=The bulk cannot be completed because the template format is not correct: line {line}
+bulk.import.error.duplicate=The bulk cannot be completed because the LocalID {localid} is duplicated.
+bulk.import.localId.spaces = The bulk operation cannot be completed due to spaces in the LocalID {localid}.
+bulk.edit.error.localId = The bulk edit cannot be completed because the LocalID {localid} does not exist.
+
+
+# Mail
+mail.text.subject.success=Re3gistry - installation success
+mail.text.body.success=The Re3gistry software has been properly installed. You can start managing your registry content by signing in.
+mail.text.subject.error=Re3gistry - installation error
+mail.text.body.error=An error has occurred during the Re3gistry installation, please review your settings.
+mail.text.subject.newregistration=Re3gistry - Your account has been successfully added to the system
+mail.text.error.newregistration=Dear {name}, Your account has been successfully created and it is now enabled. You can access the management interface using the following credentials: Username: {email} Key: {key} Please change your key after the first access.
+mail.text.error.ecas.newregistration=Dear {name}, Your account has been successfully created and it is now enabled. You can access the management interface using the EU Login credentials.
+mail.text.subject.resetpassword.registration=Re3gistry - Your account has been successfully updated in the system
+mail.text.error.resetpassword.registration=Dear {name}, Your account has been successfully updated and it is now enabled. You can access the management interface using the following credentials: Username: {email} Key: {key} Please change your key after the first access.
+
+
+mail.text.subject.solr.success=Re3gistry - SOLR indexing success
+mail.text.body.solr.success=The Re3gistry software has complete the SOLR indexing with success. You can start managing your registry content by signing in.
+mail.text.subject.solr.error=Re3gistry - SOLR indexing error
+mail.text.body.solr.error=An error has occurred during the Re3gistry SOLR indexing, please review your settings.
+mail.text.subject.cache.success=Re3gistry - complete CACHE success
+mail.text.body.cache.success=The Re3gistry software has has complete the CACHE all items with success. You can start managing your registry content by signing in.
+mail.text.subject.cache.error=Re3gistry - complete CACHE error
+mail.text.body.cache.error=An error has occurred during the Re3gistry CACHE all items, please review your settings.
+mail.text.subject.item.publised={label} had been published
+mail.text.body.item.publised= {label} had been published successfully. The changelog associated with this action is: {changelog}
+
+mail.text.subject.bulkimport.success=Re3gistry - bulk import process {itemclass} success
+mail.text.subject.bulkimport.error=Re3gistry - bulk import process {itemclass} error
+mail.text.body.bulkimport.success=Dear {name}, The bulk import process has been completed with success. For more details please access the management interface . Best regards, INSPIRE Re3gistry Team
+mail.text.body.bulkimport.error=Dear {name}, The bulk import process has been completed with some error(s) when importing the file. Please correct the following errors: {errors} and retry to load the file. Best regards, INSPIRE Re3gistry Team
+
+mail.text.subject.bulkedit.success=Re3gistry - bulk edit process {itemclass} success
+mail.text.subject.bulkedit.error=Re3gistry - bulk edit process {itemclass} error
+mail.text.body.bulkedit.success=Dear {name}, The bulk edit process has been completed with success. For more details please access the management interface . Best regards, INSPIRE Re3gistry Team
+mail.text.body.bulkedit.error=Dear {name}, The bulk edit process has been completed with some error(s) when importing the file. Please correct the following errors: {errors} and retry to load the file. Best regards, INSPIRE Re3gistry Team
+
+mail.text.subject.groupschanged=Changes to {contact} user groups
+mail.text.body.groupschanged= Dear {user}, The group(s) associated with your user {id} have changed.
+mail.text.body.groupschanged.add=You have been added to the group(s):
+mail.text.body.groupschanged.remove=You are no longer in the group(s):
+mail.text.body.groupschanged.ending= Access your user profile page details in the management interface for more information: {name} {contact} manager.
+mail.text.body.groupschanged.ending.contact=Registry software
+mail.text.body.groupschanged.ending.contact.webpage=https://github.com/ec-jrc/re3gistry
+
+mail.text.body.itemaction.basebody=The following item(s) were changed:
+mail.text.body.itemaction.acceptedwithchanges=accepted with changes
+mail.text.body.itemaction.notaccepted=not accepted
+mail.text.body.itemaction.rejected=rejected
+mail.text.body.itemaction.basebody.controlbody=Actions on the Control Body were made
+mail.text.body.itemaction.basebody.submitting=Actions on the Submitting Organizations were made
+mail.text.body.itemaction.proposedby= proposed by
+mail.text.body.itemaction.was= was
+mail.text.body.itemaction.actionmadeby=. The action was made by
+
+#tooltiop add registry
+registry.tooltip=Target registry where the register that you are about to create will be sitting
+registry.path.tooltip=This option allows to include the 'registry' word for all the elements belonging to the register that you are about to create
+registry.localid.tooltip=Piece of the URI that will refer to the register that you are about to create. See the preview section to understand how it will look like when public
+registry.label.tooltip=Provide a human-readable name of the register
+registry.contentsummary.tooltip=Provide a short description on the register you are about to create
+registry.registerowner.tooltip=Select from the dropdown list the party owning the register
+registry.registermanager.tooltip=Select from the dropdown list the party responsible for the update and management of the register
+registry.controlbody.tooltip=Select from the dropdown list the party responsible for deciding on the proposals submitted
+registry.submittingorganization.tooltip=Select from the dropdown list the party responsible for proposing changes on the register content
+
+operation.cacheinprogress=The caching of the published items is in progress. You will be able to see the changes published very shortly
+operation.remove.cache.success=The cache has been removed with success.
diff --git a/sources/Re3gistry2/src/main/webapp/jsp/includes/header.inc.jsp b/sources/Re3gistry2/src/main/webapp/jsp/includes/header.inc.jsp
index 0a9458d4..6b61da2f 100644
--- a/sources/Re3gistry2/src/main/webapp/jsp/includes/header.inc.jsp
+++ b/sources/Re3gistry2/src/main/webapp/jsp/includes/header.inc.jsp
@@ -23,6 +23,13 @@
* through Action 2016.10: European Location Interoperability Solutions for e-Government (ELISE)
*/
--%>
+<%@page import="java.util.ArrayList"%>
+<%@page import="java.util.Arrays"%>
+<%@page import="eu.europa.ec.re3gistry2.model.RegLanguagecode"%>
+<%@page import="java.util.List"%>
+<%@page import="javax.persistence.EntityManager"%>
+<%@page import="eu.europa.ec.re3gistry2.base.utility.PersistenceFactory"%>
+<%@page import="eu.europa.ec.re3gistry2.crudimplementation.RegLanguagecodeManager"%>
<%@page import="eu.europa.ec.re3gistry2.base.utility.Configuration"%>
<%@page import="eu.europa.ec.re3gistry2.base.utility.WebConstants"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
@@ -36,12 +43,16 @@
href="https://inspire-sandbox.jrc.ec.europa.eu/registry"
aria-label="European Commission">
-
+
+
+
+
<%@include file="menu.inc.jsp" %>
diff --git a/sources/Re3gistry2/src/main/webapp/jsp/includes/pageend.inc.jsp b/sources/Re3gistry2/src/main/webapp/jsp/includes/pageend.inc.jsp
index 1613f9f4..4594e8e4 100644
--- a/sources/Re3gistry2/src/main/webapp/jsp/includes/pageend.inc.jsp
+++ b/sources/Re3gistry2/src/main/webapp/jsp/includes/pageend.inc.jsp
@@ -47,6 +47,10 @@
+
+
+
+ <%@include file="includes/footer.inc.jsp" %>
+ <%@include file="includes/pageend.inc.jsp" %>
+