From da0852abdc699b54a8f44cdd564da6ec6e9b47ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Garc=C3=ADa?= Date: Mon, 11 Mar 2024 08:16:19 +0100 Subject: [PATCH 01/15] Documentation / GeoNetwork 4.4 doing a release fixes (#7648) --- .../docs/contributing/doing-a-release.md | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/docs/manual/docs/contributing/doing-a-release.md b/docs/manual/docs/contributing/doing-a-release.md index 8a5e2356f90..c69cddb6178 100644 --- a/docs/manual/docs/contributing/doing-a-release.md +++ b/docs/manual/docs/contributing/doing-a-release.md @@ -91,7 +91,7 @@ with the following utilities: ***sed***, ***xmlstarlet*** and ***sftp***. 3. Create change log page: `docs/manual/docs/overview/change-log/` ``` shell - cat < docs/manual/docs/overview/changes/version-$newversion.md + cat < docs/manual/docs/overview/change-log/version-$version.md # Version $version GeoNetwork $version is a minor release. @@ -110,9 +110,9 @@ with the following utilities: ***sed***, ***xmlstarlet*** and ***sftp***. EOF - git log --pretty='format:* %N' $previousversion.. | grep -v "^* $" >> docs/manual/docs/overview/changes/version-$newversion.md + git log --pretty='format:* %N' $previousversion.. | grep -v "^* $" >> docs/manual/docs/overview/change-log/version-$version.md - cat < docs/manual/docs/overview/changes/version-$newversion.md + cat < docs/manual/docs/overview/change-log/version-$version.md and more \... see [$version issues](https://github.com/geonetwork/core-geonetwork/issues?q=is%3Aissue+milestone%3A$version+is%3Aclosed) and [pull requests](https://github.com/geonetwork/core-geonetwork/pulls?page=3&q=is%3Apr+milestone%3A$version+is%3Aclosed) for full details. EOF @@ -164,7 +164,7 @@ with the following utilities: ***sed***, ***xmlstarlet*** and ***sftp***. # Download Jetty and create the installer cd ../release - mvn clean install -Djetty-download,bundle + mvn clean install -Pjetty-download,bundle # Deploy to osgeo repository (requires credentials in ~/.m2/settings.xml) cd .. @@ -186,10 +186,12 @@ with the following utilities: ***sed***, ***xmlstarlet*** and ***sftp***. # Set version number to SNAPSHOT ./update-version.sh $newversion $nextversion + nextversionnosnapshot=${nextversion//[-SNAPSHOT]/} + # Add SQL migration step for the next version - mkdir web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v442 - cat < web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v442/migrate-default.sql - UPDATE Settings SET value='4.4.2' WHERE name='system/platform/version'; + mkdir web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v${nextversionnosnapshot//[.]/} + cat < web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v${nextversionnosnapshot//[.]/}/migrate-default.sql + UPDATE Settings SET value='${nextversionnosnapshot}' WHERE name='system/platform/version'; UPDATE Settings SET value='SNAPSHOT' WHERE name='system/platform/subVersion'; EOF vi web/src/main/webResources/WEB-INF/config-db/database_migration.xml @@ -231,7 +233,7 @@ with the following utilities: ***sed***, ***xmlstarlet*** and ***sftp***. ``` shell md5 -r web/target/geonetwork.war > web/target/geonetwork.war.md5 - md5 -r release/target/GeoNetwork-$newversion/geonetwork-bundle-$newversion.zip > release/target/GeoNetwork-$newversion/geonetwork-bundle-$newversion.zip.md5 + md5 -r release/target/GeoNetwork-$version/geonetwork-bundle-$newversion.zip > release/target/GeoNetwork-$version/geonetwork-bundle-$newversion.zip.md5 ``` On sourceforge first: From 97c2e71d496e163cc5de336d605c3de23bf7b1d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Garc=C3=ADa?= Date: Tue, 12 Mar 2024 10:03:20 +0100 Subject: [PATCH 02/15] Extend proxy to manage duplicated parameters (#7456) * Extend URITemplateProxyServlet to support urls with a duplicated parameter with different values, like: param1=value1¶m1=value2¶m1=value3 * Fix wrong init parameter name --- .../geonet/proxy/URITemplateProxyServlet.java | 139 ++++++++++++++++-- 1 file changed, 124 insertions(+), 15 deletions(-) diff --git a/web/src/main/java/org/fao/geonet/proxy/URITemplateProxyServlet.java b/web/src/main/java/org/fao/geonet/proxy/URITemplateProxyServlet.java index 9eadcb43892..11bf5dab9a2 100644 --- a/web/src/main/java/org/fao/geonet/proxy/URITemplateProxyServlet.java +++ b/web/src/main/java/org/fao/geonet/proxy/URITemplateProxyServlet.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2001-2023 Food and Agriculture Organization of the + * Copyright (C) 2001-2024 Food and Agriculture Organization of the * United Nations (FAO-UN), United Nations World Food Programme (WFP) * and United Nations Environment Programme (UNEP) * @@ -27,10 +27,13 @@ import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpEntityEnclosingRequest; import org.apache.http.HttpRequest; +import org.apache.http.NameValuePair; import org.apache.http.auth.AuthScope; import org.apache.http.auth.UsernamePasswordCredentials; import org.apache.http.client.CredentialsProvider; import org.apache.http.client.HttpClient; +import org.apache.http.client.utils.URIUtils; +import org.apache.http.client.utils.URLEncodedUtils; import org.apache.http.entity.BufferedHttpEntity; import org.apache.http.entity.InputStreamEntity; import org.apache.http.impl.client.BasicCredentialsProvider; @@ -47,6 +50,7 @@ import org.fao.geonet.repository.MetadataLinkRepository; import org.fao.geonet.repository.specification.LinkSpecs; import org.fao.geonet.utils.Log; +import org.mitre.dsmiley.httpproxy.ProxyServlet; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.env.SystemEnvironmentPropertySource; import org.springframework.http.HttpHeaders; @@ -60,6 +64,8 @@ import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -71,24 +77,34 @@ * * @author delawen */ -public class URITemplateProxyServlet extends org.mitre.dsmiley.httpproxy.URITemplateProxyServlet { +public class URITemplateProxyServlet extends ProxyServlet { public static final String P_FORWARDEDHOST = "forwardHost"; public static final String P_FORWARDEDHOSTPREFIXPATH = "forwardHostPrefixPath"; + /* Rich: + * It might be a nice addition to have some syntax that allowed a proxy arg to be "optional", that is, + * don't fail if not present, just return the empty string or a given default. But I don't see + * anything in the spec that supports this kind of construct. + * Notionally, it might look like {?host:google.com} would return the value of + * the URL parameter "?hostProxyArg=somehost.com" if defined, but if not defined, return "google.com". + * Similarly, {?host} could return the value of hostProxyArg or empty string if not present. + * But that's not how the spec works. So for now we will require a proxy arg to be present + * if defined for this proxy URL. + */ + protected static final Pattern TEMPLATE_PATTERN = Pattern.compile("\\{(.+?)\\}"); private static final Logger LOGGER = Log.createLogger("URITemplateProxyServlet"); private static final long serialVersionUID = 4847856943273604410L; private static final String P_SECURITY_MODE = "securityMode"; private static final String P_IS_SECURED = "isSecured"; - private static final String TARGET_URI_NAME = "targetUri"; - private static final String P_EXCLUDE_HOSTS = "excludeHosts"; - private static final String P_ALLOW_PORTS = "allowPorts"; + private static final String ATTR_QUERY_STRING = + URITemplateProxyServlet.class.getSimpleName() + ".queryString"; /* * These are the "hop-by-hop" headers that should not be copied. * http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html Overriding - * parent + * parent. */ static { String[] headers = new String[]{ @@ -107,14 +123,13 @@ public class URITemplateProxyServlet extends org.mitre.dsmiley.httpproxy.URITemp protected String doForwardHostPrefixPath = ""; protected boolean isSecured = false; protected SECURITY_MODE securityMode; + protected String targetUriTemplate;//has {name} parts @Autowired MetadataLinkRepository metadataLinkRepository; private String username; private String password; - // Regular expression pattern with the hosts to prevent access through the proxy private Pattern excludeHostsPattern; - // Allowed ports allowed to access through the proxy private Set allowPorts = new HashSet<>(Arrays.asList(80, 443)); @@ -159,12 +174,12 @@ protected void initTarget() throws ServletException { // If not set externally try to use the value from web.xml if (StringUtils.isBlank(targetUriTemplate)) { - super.initTarget(); + targetUriTemplate = getConfigParam(P_TARGET_URI); + if (StringUtils.isBlank(targetUriTemplate)) { + throw new ServletException(P_TARGET_URI + " is required in web.xml or set externally"); + } } - if (targetUriTemplate == null) { - throw new ServletException(P_TARGET_URI + " is required in web.xml or set externally"); - } this.getServletContext().setAttribute(this.getServletName() + "." + P_TARGET_URI, targetUriTemplate); @@ -195,7 +210,7 @@ protected void initTarget() throws ServletException { String additionalAllowPorts = getConfigValue(P_ALLOW_PORTS); if (StringUtils.isBlank(additionalAllowPorts)) { - additionalAllowPorts = getConfigParam(P_EXCLUDE_HOSTS); + additionalAllowPorts = getConfigParam(P_ALLOW_PORTS); } if (StringUtils.isNotBlank(additionalAllowPorts)) { @@ -395,7 +410,7 @@ protected void service(HttpServletRequest servletRequest, HttpServletResponse se switch (securityMode) { case NONE: - super.service(servletRequest, servletResponse); + internalService(servletRequest, servletResponse); break; case DB_LINK_CHECK: boolean proxyCallAllowed = false; @@ -445,7 +460,7 @@ protected void service(HttpServletRequest servletRequest, HttpServletResponse se } if (proxyCallAllowed) { - super.service(servletRequest, servletResponse); + internalService(servletRequest, servletResponse); } break; } @@ -481,6 +496,100 @@ private boolean isUrlAllowed(HttpServletRequest servletRequest) { } } + /** + * Updated method from {{@link org.mitre.dsmiley.httpproxy.URITemplateProxyServlet#service(HttpServletRequest, HttpServletResponse)}} + * to support a parameter repeated with different values. The original code doesn't support these cases: + * param1=value1¶m1=value2¶m1=value3 + *

+ * Example: when proxing Kibana requests like this failed using org.mitre.dsmiley.httpproxy.URITemplateProxyServlet: + *

+ * http://localhost:8080/geonetwork/dashboards/api/index_patterns/_fields_for_wildcard?pattern=gn-records& + * meta_fields=_source&meta_fields=_id&meta_fields=_type&meta_fields=_index&meta_fields=_score + * + * @param servletRequest + * @param servletResponse + * @throws ServletException + * @throws IOException + */ + private void internalService(HttpServletRequest servletRequest, HttpServletResponse servletResponse) + throws ServletException, IOException { + //First collect params + /* + * Do not use servletRequest.getParameter(arg) because that will + * typically read and consume the servlet InputStream (where our + * form data is stored for POST). We need the InputStream later on. + * So we'll parse the query string ourselves. A side benefit is + * we can keep the proxy parameters in the query string and not + * have to add them to a URL encoded form attachment. + */ + String requestQueryString = servletRequest.getQueryString(); + String queryString = ""; + if (requestQueryString != null) { + queryString = "?" + requestQueryString;//no "?" but might have "#" + } + int hash = queryString.indexOf('#'); + if (hash >= 0) { + queryString = queryString.substring(0, hash); + } + List pairs; + try { + //note: HttpClient 4.2 lets you parse the string without building the URI + pairs = URLEncodedUtils.parse(new URI(queryString), StandardCharsets.UTF_8); + } catch (URISyntaxException e) { + throw new ServletException("Unexpected URI parsing error on " + queryString, e); + } + + LinkedHashMap> params = new LinkedHashMap<>(); + for (NameValuePair pair : pairs) { + params.computeIfAbsent(pair.getName(), k -> new ArrayList<>()).add(pair.getValue()); + } + + //Now rewrite the URL + StringBuilder urlBuf = new StringBuilder();//note: StringBuilder isn't supported by Matcher in Java < 9 + Matcher matcher = TEMPLATE_PATTERN.matcher(targetUriTemplate); + while (matcher.find()) { + String arg = matcher.group(1); + List replacementValues = params.remove(arg); //note we remove + + if (replacementValues == null) { + throw new ServletException("Missing HTTP parameter " + arg + " to fill the template"); + } + String replacement = String.join(",", replacementValues); + matcher.appendReplacement(urlBuf, replacement); + } + matcher.appendTail(urlBuf); + String newTargetUri = urlBuf.toString(); + servletRequest.setAttribute(ATTR_TARGET_URI, newTargetUri); + URI targetUriObj; + try { + targetUriObj = new URI(newTargetUri); + } catch (Exception e) { + throw new ServletException("Rewritten targetUri is invalid: " + newTargetUri, e); + } + servletRequest.setAttribute(ATTR_TARGET_HOST, URIUtils.extractHost(targetUriObj)); + + //Determine the new query string based on removing the used names + StringBuilder newQueryBuf = new StringBuilder(queryString.length()); + for (Map.Entry> nameVal : params.entrySet()) { + for (String name : nameVal.getValue()) { + if (newQueryBuf.length() > 0) + newQueryBuf.append('&'); + + newQueryBuf.append(nameVal.getKey()).append('='); + if (name != null) + newQueryBuf.append(URLEncoder.encode(name, StandardCharsets.UTF_8)); + } + } + servletRequest.setAttribute(ATTR_QUERY_STRING, newQueryBuf.toString()); + + super.service(servletRequest, servletResponse); + } + + @Override + protected String rewriteQueryStringFromRequest(HttpServletRequest servletRequest, String queryString) { + return (String) servletRequest.getAttribute(ATTR_QUERY_STRING); + } + private enum SECURITY_MODE { NONE, From 54005279e1b6f04acf1fb57a269477855688c7b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Garc=C3=ADa?= Date: Tue, 12 Mar 2024 14:56:55 +0100 Subject: [PATCH 03/15] ISO19139 / Index online resources application profile element encoded as anchor (#7798) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * ISO19139 / Index online resources application profile element encoded as anchor * Update schemas/iso19139/src/main/plugin/iso19139/index-fields/index.xsl Co-authored-by: François Prunayre * ISO19115-3.2008 / Index online resources application profile element encoded as anchor --------- Co-authored-by: François Prunayre --- .../src/main/plugin/iso19115-3.2018/index-fields/index.xsl | 2 +- .../iso19139/src/main/plugin/iso19139/index-fields/index.xsl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/index-fields/index.xsl b/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/index-fields/index.xsl index 43354267871..1ef4f780a95 100644 --- a/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/index-fields/index.xsl +++ b/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/index-fields/index.xsl @@ -1307,7 +1307,7 @@ "nilReason": "", "function":"", - "applicationProfile":"", + "applicationProfile":"", "group": } diff --git a/schemas/iso19139/src/main/plugin/iso19139/index-fields/index.xsl b/schemas/iso19139/src/main/plugin/iso19139/index-fields/index.xsl index 2624e80b072..c8029f09819 100644 --- a/schemas/iso19139/src/main/plugin/iso19139/index-fields/index.xsl +++ b/schemas/iso19139/src/main/plugin/iso19139/index-fields/index.xsl @@ -1161,7 +1161,7 @@ "nilReason": "", "function":"", - "applicationProfile":"", + "applicationProfile":"", "group": } - + - + From 392e12cf72701ae9903432ab93a4053459cb8cc5 Mon Sep 17 00:00:00 2001 From: Elena Robu Date: Wed, 13 Mar 2024 08:22:09 +0000 Subject: [PATCH 07/15] add necessary welsh language files for translating the application (#7851) * add necessary welsh language files for translating the application * update loc-wel-default.sql with the welsh translations * include welsh string translations --- web-ui/download-from-transifex.sh | 1 + .../resources/catalog/js/CatController.js | 6 +- .../resources/catalog/locales/cy-admin.json | 1494 +++++++++++++++++ .../resources/catalog/locales/cy-core.json | 588 +++++++ .../resources/catalog/locales/cy-editor.json | 450 +++++ .../resources/catalog/locales/cy-gnui.json | 28 + .../resources/catalog/locales/cy-search.json | 556 ++++++ .../main/resources/catalog/locales/cy-v4.json | 426 +++++ .../WEB-INF/config-db/initial_data.xml | 4 + .../WEB-INF/config-spring-geonetwork.xml | 1 + .../setup/sql/data/loc-wel-default.sql | 545 ++++++ 11 files changed, 4097 insertions(+), 2 deletions(-) create mode 100644 web-ui/src/main/resources/catalog/locales/cy-admin.json create mode 100644 web-ui/src/main/resources/catalog/locales/cy-core.json create mode 100644 web-ui/src/main/resources/catalog/locales/cy-editor.json create mode 100644 web-ui/src/main/resources/catalog/locales/cy-gnui.json create mode 100644 web-ui/src/main/resources/catalog/locales/cy-search.json create mode 100644 web-ui/src/main/resources/catalog/locales/cy-v4.json create mode 100644 web/src/main/webapp/WEB-INF/classes/setup/sql/data/loc-wel-default.sql diff --git a/web-ui/download-from-transifex.sh b/web-ui/download-from-transifex.sh index 6aadf404ce4..f3e72045e98 100755 --- a/web-ui/download-from-transifex.sh +++ b/web-ui/download-from-transifex.sh @@ -59,6 +59,7 @@ l=( 'nl::nl' 'cs::cs_CZ' 'ca::ca' + 'cy::cy' 'pt::pt_BR' 'fi::fi' 'is::is' diff --git a/web-ui/src/main/resources/catalog/js/CatController.js b/web-ui/src/main/resources/catalog/js/CatController.js index a184b6359b7..d5973a2cd8c 100644 --- a/web-ui/src/main/resources/catalog/js/CatController.js +++ b/web-ui/src/main/resources/catalog/js/CatController.js @@ -109,7 +109,8 @@ rus: "ru", slo: "sk", fin: "fi", - swe: "sv" + swe: "sv", + wel: "cy" }, isLogoInHeader: false, logoInHeaderPosition: "left", @@ -1672,7 +1673,8 @@ chi: "中文", slo: "Slovenčina", swe: "Svenska", - dan: "Dansk" + dan: "Dansk", + wel: "Cymraeg" }; $scope.url = ""; $scope.gnUrl = gnGlobalSettings.gnUrl; diff --git a/web-ui/src/main/resources/catalog/locales/cy-admin.json b/web-ui/src/main/resources/catalog/locales/cy-admin.json new file mode 100644 index 00000000000..17b2090ed65 --- /dev/null +++ b/web-ui/src/main/resources/catalog/locales/cy-admin.json @@ -0,0 +1,1494 @@ +{ + "NEW": "New", + "abstract": "Crynodeb", + "accessConstraints": "Access constraints", + "activity_days": "Number of days of activity", + "activity_months": "Number of months of activity", + "add-resource-id": "Compute resource identifiers", + "addAFormatter": "Add a formatter", + "addKeyword": "Add keyword", + "addNewLogo": "Add new logo", + "addOrUpdateStandards": "Add or update standards", + "addStandard": "Ychwanegu", + "configureYourAvatar": "To associate an image with your account, define a globally recognized avatar for your email at gravatar.", + "addThesaurus": "Add thesaurus", + "advancedCssProps": "Advanced properties", + "allowedCategories": "Allowed Categories", + "allowedCategoriesDescriptionHelp": "Categories that can be applied to this group", + "harvesterBatchEdits": "Batch edits", + "harvesterBatchEditsHelp": "Batch edits allow to update harvested records. It can be use to add, replace or delete element.", + "andNodeLogo": "and logo", + "applyXSLToRecord": "XSL transformation to apply", + "applyXSLToRecordHelp": "The referenced XSL transform will be applied to each metadata record before it is added to Geonetwork", + "arcsde-database": "Database", + "arcsde-databaseHelp": "The ArcSDE database name", + "arcsde-port": "Port", + "arcsde-portHelp": "The ArcSDE port", + "arcsde-server": "Server", + "addNewFilter": "Add filter", + "arcsde-serverHelp": "The ArcSDE server hostname", + "arcsde-version": "ArcSDE version", + "arcsde-versionHelp": "Select the ArcSDE version. The ArcSDE data model vary from different versions.", + "arcsde-version-8": "ArcSDE 8", + "arcsde-version-9": "ArcSDE 9 and higher", + "arcsde-connection": "Connection type", + "arcsde-connection-sde": "ArcSDE service", + "arcsde-connection-database": "Database direct connection", + "arcsde-connection-databaseHelp": "Select the database used by ArcSDE. JDBC drivers for the selected database must be installed in GeoNetwork", + "arcsde-connection-database-type": "Database type", + "arcsde-connectionHelp": "Connect to ArcSDE using either ArcSDE process or a direct connection to the database.", + "arcsde-oracle": "Oracle", + "arcsde-sqlserver": "SQL Server", + "arcsde-postgres": "Postgres", + "asKeywordIdentifier": "as keyword identifier", + "availableStandards": "Standards available", + "avgSearchesPerDay": "Mean searches by day", + "avgSearchesPerMonth": "Mean searches by month", + "avgViewsPerDay": "Mean views by day", + "avgViewsPerMonth": "Mean views by month", + "batchProcess": "Batch process", + "testMailConfiguration": "Test mail configuration", + "keywordCreationError": "Error creating keyword", + "categoryDeleteError": "Error while removing category", + "basicCssProps": "Basic properties", + "batchProcessParameters": "Process parameters", + "batchProcessTypeUnsupported": "Process type {{type}} unsupported", + "massive-search-and-replace": "Search and replace", + "schemaVersion": "Schema version:", + "appMinorVersionSupported": "Application minor version supported:", + "appMajorVersionSupported": "Application major version supported:", + "readwriteUUID": "UUID mode read/write:", + "schematronRules": "Standard schematron rules available", + "chooseAUiConfiguration": "Choose UI configuration", + "addUiSettings": "Add a new UI configuration", + "createNewUiConfiguration": "Create a new configuration.", + "uiConfiguration-help": "The identifier can be used in the URL to enable one config using the ui parameter.", + "uiConfigurationName": "UI configuration identifier", + "noConfigDefinedUsingTheDefault": "No UI configuration defined. The default is used.", + "createDefaultUiConfig": "Create a default UI configuration", + "deleteUiSettings": "Delete UI configuration", + "vacuum-none": "None (ie. preserve empty elements)", + "vacuum-element": "Remove elements with empty values after replacement", + "vacuum-record": "Remove all empty elements in the record after replacement", + "bestRated": "Highest rated", + "broader": "Broader", + "byGroupOwner": "By group", + "byHarvest": "Harvested or not", + "byOwner": "By owner", + "bySchema": "By standard", + "bySource": "By source catalog", + "byStatus": "Current workflow status", + "byTemplate": "Records, templates or directory entries", + "byValidity": "By validation status", + "cancel": "Diddymu", + "cantDeleteGroupHavingRecords": "This group contains records. Move all records to another group to be able to remove it.", + "cantDeleteUserHavingRecords": "A user with records can't be deleted. Transfer records to another user.", + "catalogInformation": "Catalog information", + "host.name": "Hostname", + "envInformation": "Environment variables", + "categories": "Categorïau", + "categoryDescriptionHelp": "Default category for metadata created in this group", + "categoryName": "Dynodwr", + "categoryUpdated": "Category updated", + "cssstyle": "CSS & Style", + "chooseAFile": "Choose a file", + "chooseAServiceType": "Choose a service type", + "chooseFormatter": "Choose a formatter package to upload", + "formatterUploadError": "Error occurred while loading formatter", + "chooseLogos": "Choose or drop images here", + "chooseProcess": "Choose", + "chooseRecordsToUpdate": "Select records to process", + "chooseSourceEditor": "Select editor to transfer records from", + "chooseThesaurus": "Choose or drop files here", + "clearJsCache": "Clear JS & CSS cache", + "jsCacheCleared": "JS cache cleared. Next page load will trigger cache build.", + "clearJsCacheHelp": "This option is made for developers. When making changes to Javascript, CSS or Less files, 2 options: remove wro4j-cache database in the data directory and restart the application or try to simply reload the model and the cache clicking this button. The cache will be flushed and recreated on next page load. Check the WRO4J model.", + "cloneHarvester": "Clone", + "configureFormatter": "Configure formatter", + "configureProcess": "Configure a process", + "configurl": "REST API configuration URL", + "confirmDeleteSchematronCriteria": "Are you sure you want to delete the Criteria?", + "confirmDeleteSchematronCriteriaGroup": "Are you sure you want to delete the Criteria Group?", + "contact-updater": "Contact updater (searching using contact email)", + "contactAsXML": "XML snippet to insert to replace the matching contact", + "contactAsXML-help": "

Example:
<gmd:CI_ResponsibleParty xmlns:gco=\"http://www.isotc211.org/2005/gco\" xmlns:gmd=\"http://www.isotc211.org/2005/gmd\"><gmd:individualName><gco:CharacterString>A new user</gco:CharacterString></gmd:individualName><gmd:organisationName><gco:CharacterString>Organisation</gco:CharacterString></gmd:organisationName><gmd:contactInfo><gmd:CI_Contact><gmd:address><gmd:CI_Address><gmd:electronicMailAddress><gco:CharacterString>newemail@organisation.org</gco:CharacterString></gmd:electronicMailAddress></gmd:CI_Address></gmd:address></gmd:CI_Contact></gmd:contactInfo><gmd:role><gmd:CI_RoleCode codeListValue=\"pointOfContact\" codeList=\"http://www.isotc211.org/2005/resources/codeList.xml#CI_RoleCode\"/></gmd:role></gmd:CI_ResponsibleParty>", + "contentStatistics": "Content statistics", + "validationStatistics": "Validation", + "createKeyword": "Ychwanegu", + "createReport": "Create report", + "createThesaurus": "Creu", + "enableThesaurusHelp": "In multinode mode, use this option to enable or disable a thesaurus for this node.", + "createThesaurusTitle": "Create thesaurus", + "criteria": "Criteria", + "criteriaValue": "Value", + "cron-0 0 12 * * ?": "Fire at 12pm (noon) every day", + "cron-0 0/5 14 * * ?": "Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day", + "cron-0 15 10 * * ?": "Fire at 10:15am every day", + "cron-0 15 10 15 * ?": "Fire at 10:15am on the 15th day of every month", + "cron-0 15 10 ? * MON-FRI": "Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday", + "harvesterTimeZoneHelp": "Time in cron expression will be interpreted as in {{timeZoneTransl}} {{zoneOffset}} timezone.", + "csvExport": "Export as CSV", + "duplicatedValueFoundHarvesterName": "An harvester with that name already exists. Choose another one.", + "duplicatedValueFoundUserName": "A user with that name already exists. Choose another one.", + "duplicatedValueFoundUserEmail": "A user with that email already exists. Choose another one.", + "csw": "CSW", + "simpleurl": "Simple URL", + "csw-FailedToParseCapabilities": "Error while parsing GetCapabilities", + "csw-capabilitiesUrlHelp": "CSW URL with or without GetCapabilities parameters", + "csw-category": "Category for harvested records", + "csw-harvesterAddFilter": "Add Filter", + "csw-harvesterBboxFilter": "BBOX filter", + "csw-harvesterConditionAnd": "AND", + "csw-harvesterConditionOr": "OR", + "csw-harvesterOperatorEqual": "EQUAL", + "csw-harvesterOperatorGreaterThan": "GREATER THAN", + "csw-harvesterOperatorGreaterThanOrEqualTo": "GREATER THAN OR EQUAL TO", + "csw-harvesterOperatorIsNull": "IS NULL", + "csw-harvesterOperatorIsNotNull": "IS NOT NULL", + "csw-harvesterOperatorNotEqual": "NOT EQUAL", + "csw-harvesterOperatorNotLike": "NOT LIKE", + "csw-harvesterOperatorLike": "LIKE", + "csw-harvesterOperatorLessThan": "LESS THAN", + "csw-harvesterOperatorLessThanOrEqualTo": "LESS THAN OR EQUAL TO", + "csw-harvesterValuePlaceholder": "Filter value", + "csw-record": "Dublin Core - CSW", + "csw-record-acr": "CSW-DC", + "csw-record-help": "Metadata records produced by CSW services.", + "csw-rejectDuplicateResource": "Check for duplicate resources based on the resource identifier", + "csw-rejectDuplicateResourceHelp": "Comparison is made on the element 'gmd:identificationInfo/*/gmd:citation/gmd:CI_Citation/gmd:identifier/*/gmd:code/gco:CharacterString'. It only applies to records in ISO19139 or ISO profiles.", + "cswCapabilitiesAdvProperties": "Advanced configuration", + "noCswCriteriaFoundInCapabilities": "No search criteria found in capabilities. All records will be harvested from that server.", + "CswCriteriaFoundInCapabilities": "Optionally use one or more search criteria below to restrict the records to harvest. For the 'like' operator use '%' for wildCard, '_' for single char and '\\' for escape char.", + "errorRetrievingCswCapabilities": "Error occurred while retrieving service capabilities. Check service URL or current status.", + "cswRequest": "CSW request", + "cswResponse": "CSW response", + "cswSampleGetRequest": "CSW Get request examples", + "cswService": "CSW Service", + "cswStatistics": "CSW statistics", + "csw-outputSchema": "Output Schema", + "csw-outputSchemaHelp": "The URI identifier of the metadata standard to request from the CSW server. The server must support the standard. The supported standards are listed in the CSW Capabilities document under the GetRecordById operation.", + "csw-outputSchemaOptions": "Typical Output Schemas", + "csw-dublinCore": "Dublin Core", + "csw-iso19139": "ISO 19139", + "csw-recommendedValues": "Recommended values", + "xpathFilter": "XPath filter", + "xpathFilter-help": "When record is retrived from remote server, check an XPath expression to accept or discard the record. The XPath must use namespaces of the schema of the record (eg. gmd, gco, srv for ISO19139) and must return a boolean value. For example, to filter record with status = completed 'count(.//gmd:status/*[@codeListValue = 'completed']) > 0'.", + "currentCatalogLogo": "Current catalog logo", + "customConfiguration": "Custom ...", + "customizeElementSet": "Customize element set", + "customizeElementSetHelp": "Define elements to be included in your custom element set here. Each element must be identified by its full XPATH from the document root. These elements and their descendants will be included in responses to CSW GetRecord requests with ElementSetName=FULL. To revert to the default ElementSetName=FULL responses, delete all elements from this list.", + "data.codeListDir": "Thesaurus folder:", + "data.configDir": "Configuration folder:", + "data.dataDir": "Data directory:", + "data.formatterPath": "Formatter directory:", + "data.htmlCacheDir": "HTML cache directory:", + "data.indexConfigDir": "Index configuration folder:", + "data.resources": "Resources folder:", + "data.backupDir": "Backup folder:", + "data.schemaPluginsDir": "Standard folder:", + "data.schemaPublicationDir": "Schema publication folder:", + "data.subversionPath": "Subversion repository:", + "data.geonetworkDataDir": "Base directory:", + "databaseStatus": "Database status", + "db.maxactive": "Maximum number of connections", + "db.numactive": "Active connections", + "db.numidle": "Available connections", + "db.openattempt": "Statws", + "db.url": "JDBC URL", + "db.type": "Math", + "db.version": "Version", + "db.driver": "JDBC Driver", + "db.driverVersion": "JDBC Driver Version", + "db.username": "Username", + "db.schema": "Schema", + "db.name": "Name", + "dbInformation": "Database", + "dbUrl": "Database", + "defineCatalogLogo": "Define the logo to use for the catalog", + "defineUserGroupsPerProfile": "Select user groups per profile", + "deleteCategory": "Dileu", + "deleteGroup": "Dileu", + "deleteHarvester": "Dileu", + "deleteHarvesterHelp": "Delete harvester and all related records", + "deleteHarvesterHistory": "Dileu", + "deleteHarvesterRecords": "Remove {{records}} records", + "assignHarvestedRecordToLocalNode": "Assign {{records}} records to local node", + "deleteHarvesterRecordsHelp": "Delete all node's records", + "deleteThesaurus": "Dileu", + "deleteUser": "Dileu", + "description": "Description", + "details": "Details", + "disabled": "Disabled", + "dublin-core": "Dublin Core", + "dublin-core-acr": "DC", + "dublin-core-help": "The Dublin Core metadata standard", + "dupNameWarning": "There is already a group with that name. Change the name.", + "emailToSearch": "Email to search", + "emptyPortal": "Portal {{portal}} is empty. You can check its configuration or create or import records.", + "emptyCatalogShouldBeFilled": "The catalog is empty, you probably want to import new records or configure a harvester. You could also insert all templates, all samples or both.", + "enable": "Enable", + "disable": "Disable", + "enableAllowedCategories": "Enable Allowed Categories", + "exportLogAsZIP": "Allforio (ZIP)", + "facetIndicatorHelp": "Statistics by records are defined based on facets configuration and may represent only the most frequent values.", + "fees": "Fees", + "ifRecordExistAppendPrivileges": "If record exist (eg. already harvested from another source), append privileges defined below.", + "ifRecordExistAppendPrivilegesHelp": "Only applies on update and if action on UUID collision is set to overwrite record. If enabled, privileges are not removed on update. So if you want to reset privileges, you need to remove those records first and trigger the harvester again.", + "filesystem-beforeScript": "Script to run before harvesting", + "filesystem-beforeScriptHelp": "Can be used to do a rsync or something similar. Runs nothing if empty.", + "filesystem-checkFileLastModifiedForUpdate": "Update catalog record only if file was updated", + "filesystem-checkFileLastModifiedForUpdateHelp": "Update catalog record only if file was updated", + "filesystem-directory": "Cyfeiriadur", + "filesystem-directoryHelp": "File path to the directory to harvest on the server", + "filesystem-nodelete": "Keep catalog record even if deleted at source", + "filesystem-nodeleteHelp": "Keep catalog record even if deleted at source", + "filesystem-recurse": "Also search in subfolders", + "filesystem-recurseHelp": "If true then the subfolders will also be searched for metadata", + "flyTo": "Fly to", + "formatter": "Formatter", + "formatterFileUpdateError": "Error occurred while saving {{file}}", + "formatterFileUpdated": "{{file}} saved.", + "formatterRemovalError": "Error occurred while removing formatter.", + "formatterUploadHelp": "A formatter is a ZIP containing a set of file defining a custom metadata layout.", + "formatterClearCache": "Clear Formatter Cache", + "formatterCacheHelp": "Formatters are responsible for all metadata views. In order to improve performance the output values are cached when a request is made. The cache is automatically updated when the metadata is updated but when the formatter's themselves are modified, the cache must be cleared so that the new output will be created", + "formatterCacheCleared": "The cached values in the Formatter Cache have been successfully cleared", + "formatCacheClearFailure": "An error occurred while attempting to clear the formatter cache", + "fromLocalFile": "From local file", + "fromURL": "From URL", + "geoPREST-anyHelp": "Lucene syntax help", + "geoPREST-host": "URL", + "geoPREST-hostHelp": "The url of the geoPREST server", + "geonetwork-createRemoteCategory": "Set category if it exists locally", + "geonetwork-createRemoteCategoryHelp": "If true then use the category set on the metadata in the remote server also locally (assuming it exists locally)", + "geonetwork-customCriteria": "Custom criteria", + "geonetwork-customCriteriaHelp": "Define whatever criteria are supported by the remote node and not available in the predifined filters (eg. 'similarity' set to '1' for non fuzzy search). You may specify multiple criteria separated by ';' (eg. _schema;siteId with values iso19139;7fc45be3-9aba-4198-920c-b8737112d522)", + "geonetwork-host": "Catalog URL", + "geonetwork-hostHelp": "URL with catalog name only eg. http://www.fao.org/geonetwork.", + "geonetwork-mefFormatFull": "Use full MEF format", + "geonetwork-mefFormatFullHelp": "Recommended to retrieve remote files.", + "geonetwork-useChangeDateForUpdate": "Use change date for comparison", + "geonetwork-useChangeDateForUpdateHelp": "Use change date to detect changes on remote server. This will not update minor changes but improves speed on harvester.", + "geonetwork-xslfilter": "XSL filter name to apply", + "geonetwork-xslfilterHelp": "The XSL filter is applied to each metadata record", + "simpleurl-urlHelp": "URL pointing to JSON or XML documents. If harvesting more than one URL, add one line for each.", + "loopElement": "Element to loop on", + "simpleurl-configHelper": "Sample configurations which can help setting up the harvester:", + "simpleurl-configHelper-help": "Depending on the target URL and the type of documents to harvest each configuration illustrate of to configure the harvester to extract the metadata records from the remote document.", + "simpleurl-loopElementHelp": "For each element, one metadata record is created. For JSON document, points to a property. For XML document, points using XPath. eg. '.' if the element at the root of the XML document is a metadata document like 'mdb:MD_Metadata'.", + "simpleurl-pagination": "Pagination parameters (optional)", + "numberOfRecordPath": "Element for the number of records to collect", + "simpleurl-numberOfRecordPathHelp": "JSON property or XPath to the element containing the number of records to collect. This information is used to compute the number of pages in case pagination is needed to collect all records.", + "recordIdPath": "Element for the UUID of each record", + "simpleurl-recordIdPathHelp": "JSON property or XPath to the UUID of the record. eg. 'mdb:metadataIdentifier/*/mcc:code/*/text()' for XML document in ISO19115-3.", + "pageFromParam": "From URL parameter", + "simpleurl-pageFromParamHelp": "", + "pageSizeParam": "Size URL parameter", + "simpleurl-pageSizeParamHelp": "", + "groupDeleteError": "Error when deleting group", + "groupDeleteConfirm": "Do you really want to delete the group?", + "userDeleteError": "Error when deleting user", + "userDeleteConfirm": "Do you really want to delete the user?", + "groupDescription": "Description", + "groupDescriptionHelp": "A short description of the group.", + "groupEmail": "Ebost", + "groupEmailHelp": "Email for receiving notification", + "groupName": "Name", + "groupNameHelp": "Identifier for the group. Do not forget to add translation for the label.", + "groupRecord": "record found for", + "groupRecords": "records found for", + "groupUpdateError": "Error when updating group", + "groupUpdated": "Group updated.", + "groupWebsite": "Website", + "groupWebsiteHelp": "Website containing information about the group.", + "groupLogo": "Logo", + "groupLogoHelp": "Logo to use for representing the group.", + "groups": "Grwpiau", + "chooseOrDropResource": "Choose or drop resource here", + "harvestedRecordPrivileges": "Privileges for harvested records", + "harvester": "Harvester", + "harvesterSetting": "Catalog harvesters", + "harvesterReport": "Catalog harvester report", + "harvester-arcsde": "ArcSDE", + "harvester-arcsdeHelp": "Harvest metadata records from an ArcSDE database.", + "harvester-simpleurl": "Simple URL", + "harvester-csw": "OGC CSW 2.0.2", + "harvester-cswHelp": "Harvest from a CSW server", + "harvester-filesystem": "Cyfeiriadur", + "harvester-filesystemHelp": "Harvest from a directory on the server", + "harvester-geoPREST": "GeoPortal REST", + "harvester-geoPRESTHelp": "Harvest from an ESRI GeoPortal using the REST API.", + "harvester-geonetwork": "GeoNetwork (from 2.1 to 3.x)", + "harvester-geonetwork20": "GeoNetwork (2.0)", + "harvester-geonetwork20Help": "Harvest GeoNetwork node in 2.0 or lower version. Please note that harvesting old GeoNetwork nodes is unsafe. The old nodes do not have unique site ids and this could cause unpredictable results (like removing nodes from other harvestings).", + "harvester-geonetworkHelp": "Harvest from another GeoNetwork catalog.", + "harvester-oaipmh": "OAI/PMH", + "harvester-oaipmhHelp": "Harvest using OAI Protocol for metadata harvesting 2.0", + "harvester-ogcwxs": "OGC Web Services", + "harvester-ogcwxsHelp": "Harvest the GetCapabilities document from an OGC server (eg. WMS, WFS, WCS, SOS, WPS, CSW).", + "harvester-thredds": "Thredds catalog", + "harvester-threddsHelp": "The THREDDS Data Server (TDS) is a web server that provides metadata and data access for scientific datasets, using OPeNDAP, OGC WMS and WCS, HTTP, and other remote data access protocols.", + "harvester-webdav": "WebDAV / WAF", + "harvester-webdavHelp": "Harvest from a remote WebDAV or WAF server", + "harvester-wfsfeatures": "OGC WFS GetFeature", + "harvester-wfsfeaturesHelp": "Create metadata records or directory entries from WFS features.", + "harvesterResponseProcessing": "Configure response processing for", + "harvesterError": "Harvest error", + "harvesterFilter": "Search filter", + "harvesterGroup": "Grŵp", + "harvesterUser": "Defnyddiwr", + "harvesterUserHelp": "User who owns the harvested records", + "harvesterGroupHelp": "Group which owns the harvested records. Only the catalog administrator or user admin of this group can manage this node.", + "harvesterHistory": "Harvester history", + "harvesterIcon": "Logo", + "harvesterIconHelp": "Image describing the remote node.", + "harvesterIdentification": "Dull adnabod", + "harvesterIsRunning": "Harvester is running!", + "harvesterConnectionConfiguration": "Configure connection to", + "harvesterName": "Node name", + "harvesterNameHelp": "The name describing the remote node.", + "harvesterOverrideUUID": "Action on UUID collision", + "harvesterOverrideUUID-skip": "Skip record (default)", + "harvesterOverrideUUID-overwrite": "Overwrite record", + "harvesterOverrideUUID-random": "Create new UUID", + "harvesterOverrideUUIDHelp": "When a harvester finds the same uuid on a record collected by another method (another harvester, importer, dashboard editor,...), should this record be skipped (default), overriden or generate a new UUID?", + "harvesterRecords": "Harvested records", + "harvesterSchedule": "Schedule", + "harvesterScheduleinactive": "Failed to activate harvester.", + "harvesterTotalRecords": "Total", + "harvesterUpdatedRecords": "Updated", + "harvesterUnchangedRecords": "Unchanged", + "harvesterType": "Node type", + "harvesterUpdated": "Harvester updated", + "harvesterUpdateError": "Error on updating harvester", + "harvesterValidate": "Validate records before import", + "harvesterValidateHelp": "Invalid records will be rejected. Validation is based on the standard validation (ie. XSD, Schematrons).", + "index.lucene.config": "Lucene configuration", + "index.path": "Index directory", + "index.size": "Total index size (kb)", + "index.size.lucene": "Lucene index size (kb)", + "catalogueAdminTools": "Catalogue admin tools", + "indexInformation": "Index", + "indexingInProgress": "Indexing in progress ...", + "indexingRecordsRelatedToTheThesaurus": "Records related to this thesaurus are being indexed ...", + "thesaurusCreationError": "Error on creation of the thesaurus", + "thesaurusUpdateError": "Error on updating the thesaurus", + "thesaurusUploadError": "Error on upload of the thesaurus", + "thesaurusDeleteError": "Error on deleting the thesaurus", + "thesaurusTitleRequired": "The thesaurus title is required", + "information": "Information", + "inspireatom-errors": "Errors:", + "inspireatom-harvestedfeeds": "Harvested feeds:", + "inspireatom-loadAtomHarvesterReport": "Atom harvester report", + "inspireatom-totalprocessed": "Total processed:", + "invalid": "Annilys", + "io": "Import/Export", + "isAdministrator": "Is an administrator?", + "java.version": "JVM version", + "java.vm.name": "JVM name", + "java.vm.vendor": "JVM vendor", + "keywordCoordinates": "Coordinates", + "keywordDefinition": "Diffiniad", + "keywordIdentifier": "Dynodwr", + "keywordLabel": "Label", + "keywordNotAvailableInThisLanguage": "Keyword not available in current language", + "keywordRelation": "Relation", + "keywords-mapper": "Keyword mapper", + "language": "Iaith", + "lastRun": "Last run", + "latestNews": "Newyddion diweddaraf", + "layer": "haen", + "listOfSchemas": "Standards available", + "loadReport": "Import report", + "loadSampleReport": "Samples imported for standards", + "loadSamplesForSelectedSchema": "Load samples for selected standards", + "loadSchemaSamplesOrTemplates": "Load samples and templates for metadata standards", + "loadTemplatesForSelectedSchema": "Load templates for selected standards", + "loadTemplatesReport": "Templates imported for standards", + "logFile": "Log file", + "logoUpdated": "Catalog logo updated", + "logoUploadHelp": "Drag & drop here one or more images to add to the catalog list of logos", + "main.home": "Old search", + "main.search.suggest": "Suggestion", + "mainContentStatistics": "Catalog content statistics", + "mainSearchStatistics": "Main statistics", + "manageCSW": "CSW", + "manageCategory": "Categori", + "manageDirectory": "Cyfeiriadur", + "manageGroups": "Manage groups", + "manageLogo": "Logo", + "manageMapServers": "Map servers", + "manageThesaurus": "Thesaurus", + "manageMetadataIdentifierTemplates": "Metadata Identifier templates", + "manageUsers": "Manage users", + "ui-bingKey": "Bing Map Key", + "ui-bingKey-help": "Hostname related key for Bing Map tiles. You must get your own key here.", + "mapserverConfiguration": "URL configuration", + "mapserverDescription": "Description", + "mapserverName": "Name", + "mapservers": "Map servers", + "massive-content-update": "Batch replacer", + "maxNumberOfKeywords": "Number of keywords returned", + "metadata/resourceIdentifierPrefix": "Resource identifier prefix", + "metadata/resourceIdentifierPrefix-help": "In the editor, a suggestion provides the capability to compute the resource identifier automatically. This identifier is computed by concatenating this prefix with the metadata identifier (eg. http://localhost:8080/geonetwork/srv/a1fd6bb7-6425-48b6-bca3-13c9e1bc4ab1).", + "mdPopularity": "Most popular records", + "mem.free": "Total free memory", + "mem.total": "Total memory", + "metadata.select": "Selection", + "metadataAndTemplates": "Metadata & templates", + "metadataFormatter": "Formatter", + "metadataIdentifierTemplateName": "Name", + "metadataIdentifierTemplateTemplate": "Templed", + "metadataIdentifierTemplateUpdated": "Metadata identifier template saved successfully", + "metadataIdentifierTemplateUpdateError": "An error occurred saving the Metadata identifier template", + "metadataIdentifierTemplateDeleted": "Metadata identifier template deleted successfully", + "metadataIdentifierTemplateDeletedError": "An error occurred deleting the Metadata identifier template", + "metadataInternalId": "Choose a metadata internal identifier", + "metadataStatus": "Gwybodaeth metadata", + "metadataWithIndexingErrors": "Metadata with indexing errors", + "indexRecordsWithErrors": "Index records with errors", + "top10IndexingErrors": "Top 10 indexing errors:", + "metadataErrorReport": "Error report", + "moreExamples": "More examples", + "moreStandardInfo": "More information ...", + "mostPopular": "Mwyaf poblogaidd", + "mostPopularRecords": "Metadata record popularity", + "namespace": "Namespace", + "narrower": "Narrower", + "totalHarvestedNonTemplateMetadata": "Number of harvested records", + "totalNonTemplateMetadata": "Number of records", + "totalPublicMetadata": "Number of public metadata records", + "totalSubTemplateMetadata": "Number of directory entries", + "totalTemplateMetadata": "Number of templates", + "newCategory": "New category", + "newEmptyThesaurus": "New thesaurus", + "newGroup": "New group", + "newHarvester": "Harvest from", + "newMapServer": "New server", + "newMetadataIdentifierTemplate": "New metadata identifier template", + "newUrlPrefix": "Replace prefix by", + "newUser": "New user", + "noCommitAvailable": "No activity recorded. Enable versioning on metadata records to follow changes.", + "noHarvesterHistory": "No harvester history available.", + "nostatus": "No status", + "notYetSupported": "Not supported yet", + "numberOfSearch": "Number of searches", + "numberOfSearchTimeline": "Number of searches", + "oaipmh-FailedToGetSetsAndPrefix": "Failed to retrieve sets and prefixes. Check server URL", + "oaipmh-url": "URL", + "oaipmh-urlHelp": "The oaipmh server url", + "ogcwxs-datasetTemplateUuid": "Build dataset metadata records from a template", + "ogcwxs-datasetTemplateUuidHelp": "Choose a template to use as a basis in which GetCapabilities information are injected. When using this mode, records created on first run are reused and updated. This allows to edit those records.", + "ogcwxs-serviceTemplateUuid": "Build service metadata record from a template", + "ogcwxs-serviceTemplateUuidHelp": "This allows on the first run, to use a template and inject GetCapabilities information in it. On following executions, the generated record on the first run is reused and updated. This mode allows editing the service metadata record and adding more details on all properties that are not synchronized with the GetCapabilities document (ie. title, abstract, keywords, extent, fees, ...).", + "ogcwxs-createMetadataForEachLayer": "Create record for each {{metadataTemplateType}} only using GetCapabilities information.", + "ogcwxs-createMetadataForEachLayerHelp": "Create record for each {{metadataTemplateType}} only using GetCapabilities information.", + "ogcwxs-createMetadataForEachLayerUsingMetadataURL": "Import record for each {{metadataTemplateType}} using MetadataURL attributes.", + "ogcwxs-createMetadataForEachLayerUsingMetadataURLHelp": "Only if metadataUrl is existing, if not use the GetCapabilities only or combine GetCapabilities information with a template selected below", + "ogcwxs-createThumbnails": "Create thumbnail", + "ogcwxs-createThumbnailsHelp": "During harvesting, for each layer a GetMap request is made based on the layer's bounding box. Only for WMS service.", + "ogcwxs-datasetCategory": "Category for dataset metadata", + "ogcwxs-metadataLanguage": "Iaith metadata", + "ogcwxs-outputSchema": "Output schema", + "ogcwxs-serviceCategory": "Category for service metadata", + "ogcwxs-topicCategory": "ISO category", + "oneRunOnly": "Only one run", + "oneRunOnlyHelp": "This harvester will run once only.", + "os.arch": "System architecture", + "os.name": "System name", + "prefix": "Prefix", + "process": "process", + "properties": "Field", + "pushStyleInWorkspace": "Push style in the workspace", + "q": "Chwilio", + "qi": "Internal search", + "rdf.search": "RDF", + "recordWithNoTitle": "- Record with no title / wrongly indexed -", + "rebuildIndex": "Reindex records", + "dropIndexAndRebuild": "Delete index and reindex", + "dropFeaturesIndexAndRebuild": "Delete and create data index", + "dropFeaturesIndexAndRebuild-help": "Remove completely the index containing data and recreate it. It does not reindex the data. Check data harvesting console to relaunch harvesting.", + "rebuildIndexHelp": "While rebuilding index, search may return incomplete results and the CSW GetRecords operation can be disabled (if you selected the option in the settings). Use this function, when catalog traffic is low. It's recommended to rebuild index manually from here when making changes directly in the database. If you change index mapping (cf. records.json), then you have to click on 'Delete index and reindex'.", + "recordsAuthor": "Metadata records authors", + "recordsBy": "Record's statistics by", + "recordsByCategory": "Records by category", + "recordsInGroup": "record(s) found in group", + "recordsIndexed": "records indexed.", + "recordsOrigin": "Metadata records origin", + "recordsState": "Records state", + "recordsStatistics": "Metadata statistics", + "recordsType": "Type of metadata records", + "refreshHarvester": "Refresh harvester", + "reindexRecords": "Reindex {{records}} related record(s)", + "reindexRecords-help": "After updating keywords and when records are using XLinks, records using this thesaurus should be reindexed (due to the XLinks cache system).", + "related": "Related", + "reloadLuceneConfig": "Reload index configuration", + "reloadLuceneConfigHelp": "If the changes made in the configuration alter the index structure (eg. modifying analyzer), it's recommended to rebuild the index.", + "removeLogo": "Remove logo", + "removeStandard": "Tynnu", + "replace": "Replace", + "reportDateCurrentMonth": "Current month", + "reportDateCurrentYear": "Current year", + "reportDatePreviousMonth": "Previous month", + "reportDatePreviousYear": "Previous year", + "reportDateSelect": "-Select a date range-", + "reportFileDownloadMetadata": "Metadata file downloads", + "reportFileDownloadMetadata-description": "Select criteria to extract a data download history. The report results can be imported into MS Access and Excel.", + "reportFileDownloadMetadata-downloadDateBegin": "Download date (begin)", + "reportFileDownloadMetadata-downloadDateEnd": "Download date (end)", + "reportFileDownloadMetadata-title": "Metadata file downloads report", + "reportFileUploadMetadata": "Metadata file uploads", + "reportFileUploadMetadata-description": "Select criteria to extract a data upload history. The report results can be imported into MS Access and Excel.", + "reportFileUploadMetadata-title": "Metadata file uploads report", + "reportFileUploadMetadata-uploadDateBegin": "Upload date (begin)", + "reportFileUploadMetadata-uploadDateEnd": "Upload date (end)", + "reportHarvester": "Harvesters report", + "reportInternalMetadata": "Internal metadata", + "reportInternalMetadata-description": "Select criteria to extract a list of internal records and the record owner’s information. This will allow for a record review to ensure completeness of records or if necessary the deletion of “blank” or “test” records. The report results can be imported into MS Access and Excel.", + "reportInternalMetadata-metadataCreationDateBegin": "Metadata creation date (begin)", + "reportInternalMetadata-metadataCreationDateEnd": "Metadata creation date (end)", + "reportInternalMetadata-title": "Internal metadata report", + "reportUpdatedMetadata": "Updated metadata", + "reportUpdatedMetadata-description": "This report allows the extract of a list of updated records and the record owner’s information for a specified last updated date range for import into Microsoft Access and Excel. This will allow for a review of records to ensure the currency of records or if necessary the deletion of old or expired records. The report results can be imported into MS Access and Excel.", + "reportUpdatedMetadata-metadataChangeDateBegin": "Metadata change date (begin)", + "reportUpdatedMetadata-metadataChangeDateEnd": "Metadata change date (end)", + "reportUpdatedMetadata-title": "Updated metadata report", + "reportUsers": "Users access", + "reportUsers-description": "Select criteria to extract a list of user names, emails and last login date. The report results can be imported into MS Access and Excel.", + "reportUsers-title": "Users access report", + "reportUsers-userLoginDateBegin": "User login date (begin)", + "reportUsers-userLoginDateEnd": "User login date (end)", + "requestFrom": "request(s) from", + "requirementDISABLED": "Ignore this group, the schematron will not run even if criteria match", + "requirementREPORT_ONLY": "Only Report errors, does not affect validity of metadata", + "requirementREQUIRED": "Required to be valid", + "rss.search": "RSS", + "runCSWRequest": "Send CSW request", + "runHarvester": "Harvest", + "runProcess": "Run", + "saveCategory": "Cadw", + "saveFile": "Save file", + "saveGroup": "Cadw", + "saveHarvester": "Cadw", + "saveOrder": "Save order", + "saveSettings": "Save settings", + "saveUser": "Cadw", + "schematron": "Validation", + "schematronApplicationCriteria": "Schematron Applicability", + "schematronDescriptionAlwaysAccept": "This criteria always passes", + "schematronDescriptionGeneric": "This criteria passes when the metadata has '{{type}}' with the value '{{value}}'", + "schematronDescriptionXpath": "This criteria passes when the XPath is true: '{{value}}'", + "schematronInfo": "The selected Schematron will be used to validate a metadata when all the criteria in one of the following groups evaluate to true for the metadata.", + "schematrons": "Schematrons", + "schematronDelete": "Dileu", + "schematronCopy": "Copy", + "search": "Chwilio", + "searchFieldsAndTerms": "Main search fields and terms", + "searchFieldsStatistics": "Criteria used by search services", + "searchIp": "Search by IP address", + "searchStatisticExport": "Create CSV file to download", + "searchStatistics": "Search statistics", + "searchStatisticsTitle": "Search statistics", + "searchTermsStatistics": "Statistics for field:", + "searches": "searches", + "service": "Gwasanaeth", + "serviceDescription": "Service description", + "serviceFilter": "Filters", + "serviceUrl": "URL Gwasanaeth", + "set": "Set", + "settingsUpdated": "Settings updated.", + "sortTemplate": "Sort metadata templates", + "sourceGroup": "Source group", + "standardFilePath": "Path to standard ZIP archive", + "standardLoadHelp": "In order to update an existing standard use its identifier.", + "standardName": "Standard identifier", + "standardRecordUUID": "UUID of local metadata record with GeoNetwork Metadata Schema Archive (URL) as online resource", + "standardUrl": "URL to standard ZIP archive", + "standards": "Standards", + "standardsDeleteError": "Error while deleting standards", + "statisticsTablesExport": "Export statistic tables", + "status": "Statws", + "sourceTranslations": "Translate source label", + "stylerurl": "Styler URL", + "system": "System settings", + "system/ui": "User interface configuration", + "system/ui/defaultView": "Choose the user interface to use", + "system/autodetect": "Language detection", + "system/autodetect/enable": "Enable auto-detecting search request language", + "system/autodetect/enable-help": "If set, the search language is automatically detected. Note that this doesn't work very well for short search terms.", + "system/cors": "CORS configuration", + "system/cors/allowedHosts": "CORS allowed hosts", + "system/cors/allowedHosts-help": "CORS can be configured using CORSResponseFilter allowedHosts parameters in WEB-INF/web.xml. If this parameter is set to 'db'. Then this setting apply, if not, this setting is ignored. Comma separated list of allowed hosts for which CORS headers are added. Use '*' to allow to all. Use '' to disable CORS. More details about CORS here https://en.wikipedia.org/wiki/Cross-origin_resource_sharing.", + "system/autofixing": "Metadata update", + "system/autofixing/enable": "Automatic Fixes", + "system/autofixing/enable-help": "When enabled, GeoNetwork automatically applies certain fixes when you save metadata (eg. last update date). Don't disable this option unless you know what you're doing (ie. update-fixed-info.xsl will not be applied anymore if disabled).", + "system/clickablehyperlinks": "Link in metadata records", + "system/clickablehyperlinks/enable": "Clickable hyperlinks", + "system/clickablehyperlinks/enable-help": "If set, GeoNetwork will display clickable hyperlinks in the metadata.", + "system/documentation": "Documentation configuration", + "system/documentation/url": "Base manual url", + "system/documentation/url-help": "Base application manual url. Defaults to the official manual page (https://docs.geonetwork-opensource.org/{version}/{lang}) and can be customised to use a self hosted documentation with a custom branding. The url can contain \\{\\{lang\\}\\} placeholder, to display the manual in different languages when available, and \\{\\{version\\}\\} placeholder to use the application version.", + "system/publication": "Publication", + "system/publication/doi/doienabled": "Allow creation of Digital Object Identifier (DOI)", + "system/publication/doi/doipattern": "DOI pattern", + "system/publication/doi/doipattern-help": "Default is '\\{\\{uuid\\}\\}' but the DOI structure can be customized with database id and/or record group eg. 'example-\\{\\{groupOwner\\}\\}-\\{\\{id\\}\\}'", + "system/publication/doi/doienabled-help": "A Digital Object Identifier (DOI) is an alphanumeric string assigned to uniquely identify an object. It is tied to a metadata description of the object as well as to a digital location, such as a URL, where all the details about the object are accessible. More information available on DataCite website.", + "system/publication/doi/doipublicurl": "The final DOI URL prefix", + "system/publication/doi/doipublicurl-help": "Keep it empty to use the default https://doi.org prefix. Use https://mds.test.datacite.org/doi when using the test API.", + "system/publication/doi/doiurl": "The DataCite API endpoint", + "system/publication/doi/doiurl-help": "Usually https://mds.datacite.org or https://mds.test.datacite.org for testing.", + "system/publication/doi/doiusername": "Your DataCite username", + "system/publication/doi/doipassword": "Your DataCite password", + "system/publication/doi/doipassword-help": "All requests to the MDS API require authentication. For this reason, only traffic via a secure connection (HTTPS) is supported. The DataCite Metadata Store (MDS) uses HTTP Basic authentication. You can obtain an account here.", + "system/publication/doi/doikey": "Your DataCite prefix", + "system/publication/doi/doikey-help": "Usually looks like 10.xxxx. You will be allowed to register DOI names only under the prefixes that have been assigned to you.", + "system/publication/doi/doilandingpagetemplate": "DOI landing page URL template", + "system/publication/doi/doilandingpagetemplate-help": "The URL to use to register the DOI. A good default for GeoNetwork is http://localhost:8080/geonetwork/srv/resources/records/\\{\\{uuid\\}\\}. The landing page URL MUST contains the UUID of the record.", + "system/csw": "Catalog Service for the Web (CSW)", + "system/csw/capabilityRecordUuid": "Record to use for GetCapabilities", + "system/csw/capabilityRecordUuid-help": "Choose the record to be used to build custom GetCapabilities document. If none exist, create a service metadata record (using ISO19139 or 19115-3 standards). To have a capabilities document with the main information required, set title, abstract, point of contact, keywords, constraints. If you need INSPIRE support also set properly the record main language and additional languages, INSPIRE themes and INSPIRE conformity.", + "system/csw/enable": "CSW enabled", + "system/csw/enabledWhenIndexing": "Enable CSW even when catalog is indexing", + "system/csw/enabledWhenIndexing-help": "This is usually recommended. If not, when the catalog is indexing (eg. during editing, harvesting, actions on selection), CSW GetRecords operation response will return an exception. A reason to disable CSW during indexing is to avoid to have the catalog returning incomplete responses due to not completely up to date index.", + "system/csw/enable-help": "Enable CSW and all virtual CSW services. When not enable, an exception is returned.", + "system/csw/metadataPublic": "Inserted metadata is public", + "system/csw/metadataPublic-help": "When a transaction insert a new record via the CSW-T protocol, automatically publish the record to all users.", + "system/csw/transactionUpdateCreateXPath": "Create element if it does not exist when using XPath in CSW transaction.", + "system/csw/transactionUpdateCreateXPath-help": "If not checked, only existing elements can be updated.", + "system/feedback": "Adborth", + "system/feedback/email": "Ebost", + "system/feedback/email-help": "This is the administrator's email address used to send feedback.", + "system/feedback/mailServer/host": "SMTP host", + "system/feedback/mailServer/host-help": "The SMTP host and port parameters are used to send emails to GeoNetwork's users when a resource is downloaded.", + "system/feedback/mailServer/password": "Cyfrinair", + "system/feedback/mailServer/port": "SMTP port", + "system/feedback/mailServer/ssl": "Use SSL", + "system/feedback/mailServer/tls": "Use TLS", + "system/feedback/mailServer/username": "Enw defnyddiwr", + "system/feedback/mailServer/ignoreSslCertificateErrors": "Ignore errors caused by the mail server's SSL certificate", + "system/harvester": "Harvesters", + "system/harvester/enableEditing": "Allow editing on harvested records", + "system/harvester/enablePrivilegesManagement": "Only allow privileges management on harvested records", + "system/harvester/enablePrivilegesManagement-help": "Do not enable editing for only privileges management. Configure the harvester to append to existing privileges if record exists.", + "system/harvester/disabledHarvesterTypes": "Disabled harvester protocols", + "system/harvester/disabledHarvesterTypes-help": "Comma or space separated list of disabled harvested protocols. For example: arcsde, csw, filesystem, geonetwork, geonetwork20, geoPREST, oaipmh, ogcwxs, thredds, wfsfeatures.", + "system/harvesting": "Harvester", + "system/harvesting/mail/enabled": "Activate harvester notification", + "system/harvesting/mail/level1": "... on success", + "system/harvesting/mail/level2": "... on warning", + "system/harvesting/mail/level3": "... on error", + "system/harvesting/mail/recipient": "Email notification to", + "system/harvesting/mail/subject": "Subject", + "system/harvesting/mail/template": "Success template", + "system/harvesting/mail/template-help": "You can use the following strings on both template and subject. They will be replaced by the actual value. Total number of metadata imported: $$total$$. Number of metadata added: $$added$$. Number of metadata updated: $$updated$$. Number of metadata unchanged: $$unchanged$$. Number of metadata unretrievable: $$unretrievable$$. Number of metadata removed: $$removed$$. How many metadata does not validate: $$doesNotValidate$$. Harvester Name: $$harvesterName$$. Harvester Type: $$harvesterType$$. Error Message: $$errorMsg$$", + "system/harvesting/mail/templateError": "Error template", + "system/harvesting/mail/templateWarning": "Warning template", + "system/hidewithheldelements": "Metadata / ISO19139 / Nil reason attribute withheld", + "system/hidewithheldelements/enable": "Hide Withheld Elements", + "system/hidewithheldelements/enableLogging": "Enable logging", + "system/hidewithheldelements/keepMarkedElement": "Keep Marked Element", + "system/indexoptimizer": "Index optimization", + "system/indexoptimizer/at/hour": "Awr", + "system/indexoptimizer/at/min": "Minutes", + "system/indexoptimizer/at/sec": "Sec", + "system/indexoptimizer/enable": "Enable index optimizer", + "system/indexoptimizer/interval": "Interval", + "system/indexoptimizer/interval/day": "Diwrnod", + "system/indexoptimizer/interval/hour": "Awr", + "system/indexoptimizer/interval/min": "Min", + "system/inspire": "INSPIRE Directive configuration", + "system/inspire/enable": "INSPIRE", + "system/inspire/enableSearchPanel": "INSPIRE search panel", + "system/inspire/atom": "Atom feed", + "system/inspire/atomSchedule": "Schedule for feed retrieval", + "system/inspire/atomProtocol": "Atom protocol value", + "system/inspire/atomExecute": "Execute harvester", + "system/inspire/atomRemote": "Remote", + "system/inspire/atomDisabled": "Disabled", + "system/inspire/enable-help": "Enable INSPIRE CSW (ie. language support and INSPIRE GetCapabilities document) and INSPIRE indexing. INSPIRE themes thesaurus MUST be installed to properly index themes and annexes. Note: It does not enable the INSPIRE editor view mode (see iso19139/layout/config-editor.xml).", + "system/inspire/enableSearchPanel-help": "Enable search panel (Ext search only).", + "system/inspire/remotevalidation/url": "INSPIRE remote validation URL", + "system/inspire/remotevalidation/url-placeholder": "https://inspire.ec.europa.eu/validator/", + "system/inspire/remotevalidation/url-help": "To enable the remote validation.", + "system/inspire/remotevalidation/urlquery": "INSPIRE remote validation URL (Query)", + "system/inspire/remotevalidation/urlquery-placeholder": "https://inspire.ec.europa.eu/validator/", + "system/inspire/remotevalidation/urlquery-help": "When using the official INSPIRE validator, in order to preserve the quotas, configure this end-point with the value https://inspire.ec.europa.eu/validator/. It will be used for all operations except the one accessed via /v2/TestRuns, that will use the API gateway URL (INSPIRE remote validation URL). If you use your own instance of the INSPIRE validator, leave this value empty.", + "system/intranet": "Intranet", + "system/intranet/network": "Network", + "system/intranet/network-help": "The network and netmask parameters are used to identify internal connections to the catalogue, that is, to identify the intranet group. It can be a comma separated list of IP addresses.", + "system/intranet/netmask": "Netmask", + "system/intranet/netmask-help": "Define as many netmask and IP addresses.", + "system/localrating": "Metadata rating", + "system/localrating/enable": "Local rating", + "system/localrating/enable-help": "If set, GeoNetwork will calculate user ratings for metadata from this node only (not distributed among other GeoNetwork nodes).", + "system/localrating/notificationGroups": "Groups to notify in case of rating", + "system/localrating/notificationGroups-help": "List of groups, separated by the char |, to notify in case of rating (for 'Notify the group(s) emails' notification level)", + "system/metadata": "Metadata configuration", + "system/metadata/prefergrouplogo": "Prefer Group Logo", + "system/users": "Groups & users", + "system/users/identicon": "User identicon", + "system/users/identicon-help": "Set to '' for no icon. Use 'gravatar' to use default gravatar mode. Icon type can be defined using: mp, identicon, monsterid, wavatar, retro, robohash and forced using configuration like 'gravatar:identicon' or 'gravatar:retro:y' to force usage of default icon. See Gravatar documentation for more options.", + "system/metadata/allThesaurus": "Virtual 'All' Thesaurus", + "system/metadata/thesaurusNamespace": "Local thesaurus namespace pattern", + "system/metadata/thesaurusNamespace-help": "Based on this pattern, when creating a new thesaurus a namespace will be suggested. The pattern can contain \\{\\{type\\}\\} and \\{\\{filename\\}\\} placeholder for substitution.", + "system/metadata/validation/removeSchemaLocation": "Remove schema location for validation", + "system/metadata/validation/removeSchemaLocation-help": "If true, the schemaLocation attribute in root element of the metadata is removed during validation and on metadata save. It ensures that the schemaLocation used for the metadata is always the local schema one", + "system/metadata/history/enabled": "Enable record history recording", + "system/metadata/history/enabled-help": "When true, every event that alters metadata records is registered in the database.", + "system/metadata/allThesaurus-help": "If true then a virtual thesaurus will be created that contains all keywords in all other thesauri. This is useful in editor when the name of the thesaurus is unimportant and only the keyword is important. In order to ensure that the correct keyword blocks are maintained (with correct thesaurus name) enabling this will also enable a transform in update-fixed-info that will assign the keyword in the 'all' thesaurus to keyword blocks with the correct thesaurus for the keyword", + "system/metadataprivs": "Metadata privileges", + "system/metadataprivs/usergrouponly": "Only set privileges to user's groups", + "system/metadataprivs/publicationbyrevieweringroupowneronly": "Publication by users reviewer in record group only", + "system/metadataprivs/publicationbyrevieweringroupowneronly-help": "Allow publication by administrator and reviewer member of record group. If false, then also all users reviewer in group with editing rights can publish/unpublish a record.", + "system/metadataprivs/publication/notificationLevel": "Notification level when a metadata is published / unpublished", + "system/metadataprivs/publication/notificationLevel-help": "Define which users to alert when a metadata is published / unpublished", + "system/metadataprivs/publication/notificationGroups": "Groups to notify when a metadata is published / unpublished", + "system/metadataprivs/publication/notificationGroups-help": "List of groups, separated by the char |, to notify when a metadata is published / unpublished (for 'Notify the group(s) emails' notification level)", + "system/metadatacreate": "Metadata create", + "system/metadatacreate/generateUuid": "Generate UUID", + "system/metadatacreate/generateUuid-help": "GeoNetwork assigns a random metadata UUID to the metadata created by a user (default). To assign the metadata UUID manually disable this option and fill the metadata UUID prefix.", + "system/metadatacreate/preferredGroup": "Preferred metadata group owner", + "system/metadatacreate/preferredGroup-help": "Select the default group owner selected in the metadata creation page.", + "system/metadatacreate/preferredTemplate": "Preferred metadata template", + "system/metadatacreate/preferredTemplate-help": "Select the default template selected in the metadata creation page.", + "system/oai": "Open Archive Initiative (OAI-PMH) Provider", + "system/oai/cachesize": "Cachesize", + "system/oai/cachesize-help": "The number of OAI resultSets that can be stored in the Cache.", + "system/oai/mdmode": "Datesearch", + "system/oai/mdmode-help": "Influences the behaviour of OAI when parameters from or until are supplied. If set to temporal extent, the temporal extent of the date described by the metadata is searched. If set to modification date, the date at which the metadata was last modified is searched. Please note: restart GeoNetwork to make this change active.", + "system/oai/mdmode-valueModificationDate": "Modification date", + "system/oai/mdmode-valueTemporaExtent": "Maint tymhorol", + "system/oai/tokentimeout": "ResumptionToken Timeout", + "system/oai/tokentimeout-help": "The number of seconds a OAI resultset stays in the cache and can be scrolled using the OAI resumptionToken Please note: restart GeoNetwork to make this change active.", + "system/oai/maxrecords": "Maximum records", + "system/oai/maxrecords-help": "Number of maximum records to return in OAI responses", + "system/platform": "Catalog", + "system/platform/subVersion": "Minor version", + "system/platform/subVersion-help": "Sub-version:", + "system/platform/svnUuid": "SVN UUID", + "system/platform/version": "Version", + "system/platform/version-help": "Version:", + "system/proxy": "Proxy server", + "system/proxy/host": "Proxy Host", + "system/proxy/host-help": "If set, GeoNetwork will use the provided proxy parameters when accessing remote nodes. For example, this is used during the harvesting.", + "system/proxy/password": "Proxy user password", + "system/proxy/port": "Proxy port", + "system/proxy/use": "Use proxy", + "system/proxy/username": "Proxy username", + "system/proxy/ignorehostlist": "Ignore host list", + "system/proxy/ignorehostlist-help": "To bypass specific hosts enter a specific IP address or host name such as www.mydomain.com or an address range using wildcards, such as 192.168.2.*. Use | to separate the different host values.", + "system/requestedLanguage": "Search & language", + "system/requestedLanguage/ignorechars": "Characters to ignore when analyzing text", + "system/requestedLanguage/ignored": "Ignore requested language for search results.", + "system/requestedLanguage/only": "Search only in requested language", + "system/requestedLanguage/only-value1": "All documents in all languages (No preferences)", + "system/requestedLanguage/only-value2": "Prefer documents with translations in the requested language", + "system/requestedLanguage/only-value3": "Prefer documents whose language is the requested language", + "system/requestedLanguage/only-value4": "Translations in requested language", + "system/requestedLanguage/only-value5": "Document language is the requested language", + "system/requestedLanguage/only-value6": "Prefer documents having translations in the UI language", + "system/requestedLanguage/only-value7": "Only documents having translations in the UI language", + "system/requestedLanguage/only-value8": "Prefer documents having the same language as the UI language", + "system/requestedLanguage/only-value9": "Only documents having the same language as the UI language", + "system/requestedLanguage/preferUiLanguage": "Prefer UI Language", + "system/requestedLanguage/preferUiLanguage-help": "If autodetect search language is enabled, enabling this will ensure that the metadata loaded will still have the translations provided in the UI Language when possible. If disabled then the translations will be in the detected search language.", + "system/requestedLanguage/sorted": "Search results in requested language sorted on top", + "system/searchStats": "Search statistics", + "system/searchStats/enable": "Enable", + "system/searchStats/enable-help": "If set, statistics on searches will be collected and stored in the database.", + "system/security": "Security", + "system/security/passwordEnforcement/maxLength": "Password max. length", + "system/security/passwordEnforcement/minLength": "Password min. length", + "system/security/passwordEnforcement/usePattern": "Password restrictions", + "system/security/passwordEnforcement/usePattern-help": "Require that the password must contain at least 1 uppercase, 1 lowercase, 1 number and 1 symbol", + "system/selectionmanager": "Metadata Search Results", + "system/selectionmanager/maxrecords": "Maximum selected records", + "system/server": "Catalog server", + "system/server/host": "Host", + "system/server/host-help": "The server's host and port are used to create URLs to the GeoNetwork server. For example, they are used during metadata editing to create resource links and when returning the server's capabilities during a CS/W request.", + "system/server/port": "Port", + "system/server/protocol": "Preferred Protocol", + "system/server/log": "Log level", + "system/index": "Index options", + "metadata/url": "Link to metadata", + "metadata/url/sitemapDoiFirst": "Use DOI for sitemap URL if present", + "metadata/url/sitemapLinkUrl": "Sitemap and permalink URL template", + "metadata/url/sitemapLinkUrl-help": "URL template to build the links to metadata document in the catalogue sitemap. String
  • \\{\\{UUID\\}\\} will be replaced by the metadata UUID
  • \\{\\{LANG\\}\\} will be replaced by the request language
  • \\{\\{RESOURCEID\\}\\} will be replaced by the resource identifier
For example, for the template http://www.example.com/external/metadata/html?uuid=\\{\\{UUID\\}\\} the resulting URL in sitemap document would be http://www.example.com/external/metadata/html?uuid=this-is-the-actual-uuid. If not set, the default URL is used.", + "metadata/url/dynamicAppLinkUrl": "Portal URL template", + "metadata/url/dynamicAppLinkUrl-help": "Link in the landing page to open the catalogue application. If not set, the default app is used.", + "system/server/timeZone": "Timezone", + "system/server/timeZone-help": "Sets the timezone used to store dates in the database and interpret the time in cron expression specified in the harvesters Frequency field. If not set the JVM default timezone will be used. GeoNetwork uses the timezone definitions available in the JVM. Time zones definitions can change frequently. Please keep updated your JVM to get the latest timezones definition or use the tzupdater tool available for download from the Java SE Download Page.", + "system/site": "Catalog description", + "system/site/name": "Catalog name", + "system/site/name-help": "The name displayed in different places (eg. news feed).", + "system/site/organization": "Sefydliad", + "system/site/siteId": "Catalogue identifier", + "system/site/siteId-help": "Unique catalogue identifier. After changing the site identifier, users should update the index and the logo from the administration panel.", + "system/site/svnUuid": "SVN UUID", + "system/site/svnUuid-help": "Subversion repository unique identifier", + "metadata/vcs": "Version Control System (VCS)", + "metadata/vcs/enable": "Enable VCS", + "metadata/vcs/enable-help": "Once enabled, VCS is using SVN to record metadata changes. This feature is experimental. It is also not operational on NFS filesystem. Once enabled, the application needs a restart.", + "system/threadedindexing": "Indexing", + "system/threadedindexing/maxthreads": "Number of indexing threads", + "system/userSelfRegistration": "User self-registration", + "system/userSelfRegistration/enable": "Enable self-registration", + "system/userSelfRegistration/enable-help": "When enabled, make sure a mail server is also configured.", + "system/userSelfRegistration/recaptcha/enable": "Enable re-captcha", + "system/userSelfRegistration/recaptcha/enable-help": "Enabling re-captcha will protect you and your users from spam and abuse. This is highly recommended when you enable feedback or self-registration. Create your re-captcha key on https://www.google.com/recaptcha/", + "system/userSelfRegistration/recaptcha/publickey": "Re-captcha public key", + "system/userSelfRegistration/recaptcha/secretkey": "Re-captcha secret key", + "userFeedbackList": "Last user feedbacks", + "system/userFeedback": "User feedback", + "system/userFeedback/enable": "Enable application feedback", + "system/userFeedback/enable-help": "Enabling this option allows to send feedback about the application to the system administrator. It requires the mail server is also configured.", + "system/userFeedback/metadata/enable": "Enable metadata feedback", + "system/userFeedback/metadata/enable-help": "Enabling this option allows to feedback to the metadata owner and system administrator about metadata record. It requires the mail server is also configured.", + "system/xlinkResolver": "Metadata XLink", + "system/xlinkResolver/enable": "Enable XLink resolution", + "system/xlinkResolver/enable-help": "If set, XLinks to metadata fragments in records will be resolved.", + "system/xlinkResolver/localXlinkEnable": "Enable local XLink", + "system/xlinkResolver/localXlinkEnable-help": "Local XLinks are using local:/// URL to make references to related sections instead of HTTP URL. Local XLinks are usually faster than HTTP XLinks.", + "system/xlinkResolver/ignore": "Elements to ignore by XLink resolution", + "system/xlinkResolver/ignore-help": "Comma separated list of elements to ignore by XLink resolution", + "metadata/workflow": "Metadata workflow", + "metadata/workflow/automaticUnpublishInvalidMd": "Automatic unpublication of invalid metadata", + "metadata/workflow/automaticUnpublishInvalidMd-help": "Automatically unpublishes metadata that is edited that becomes not valid according to xsd or schematron rules.", + "metadata/workflow/allowSubmitApproveInvalidMd": "Allow submission/approval of invalid metadata", + "metadata/workflow/allowSubmitApproveInvalidMd-help": "Allows the submission/approval of metadata that is not valid according to xsd or schematron rules.", + "metadata/workflow/allowPublishNonApprovedMd": "Allow publication of non-approved metadata", + "metadata/workflow/allowPublishNonApprovedMd-help": "Allows the publication of metadata that is not approved.", + "metadata/workflow/allowPublishInvalidMd": "Allow publication of invalid metadata", + "metadata/workflow/allowPublishInvalidMd-help": "Allows the publication of metadata that is not valid according to xsd or schematron rules.", + "metadata/workflow/draftWhenInGroup": "Activate workflow for record created in", + "metadata/workflow/enable": "Galluogi llif gwaith", + "draftWhenInGroup-all": "Any group", + "draftWhenInGroup-selection": "Selected groups", + "metadata/workflow/draftWhenInGroup-help": "Regular expression for matching groups where record needs to be set with draft status automatically. eg. MYOCEAN-.* to match all groups starting with MYOCEAN-, GROUP1|GROUP2 to match GROUP1 or GROUP2.", + "metadata/workflow/forceValidationOnMdSave": "Force validation on metadata save", + "metadata/workflow/forceValidationOnMdSave-help": "When the metadata is saved force validation check", + "metadata/import": "Metadata import", + "metadata/import/restrict": "Restrict import to schemas", + "metadata/import/restrict-help": "List of all allowed schemas for metadata to be imported. If the metadata schema is not allowed, then the import is not done. No value means all schemas allowed.", + "metadata/import/userprofile": "Minimum user profile allowed to import metadata", + "metadata/import/userprofile-help": "Minimum user profile allowed to import metadata (Editor, Reviewer or Administrator). The default value is Editor.", + "metadata/delete": "Metadata delete", + "metadata/delete/profilePublishedMetadata": "Minimum user profile allowed to delete published metadata", + "metadata/delete/profilePublishedMetadata-help": "Minimum user profile allowed to delete published metadata (Editor, Reviewer or Administrator). The default value is Editor.", + "metadata/batchediting": "Metadata Batch Editing", + "metadata/batchediting/accesslevel": "Select the minimum user profile allowed to access batch editing", + "metadata/batchediting/accesslevel-help": "Select the minimum user profile allowed to access batch editing (Editor, Reviewer or Administrator). The default value is Editor.", + "metadata/publication": "Metadata publication", + "metadata/publication/profilePublishMetadata": "Minimum user profile allowed to publish metadata", + "metadata/publication/profilePublishMetadata-help": "Minimum user profile allowed to publish metadata (Reviewer or Administrator). The default value is Reviewer.", + "metadata/publication/profileUnpublishMetadata": "Minimum user profile allowed to un-publish metadata", + "metadata/publication/profileUnpublishMetadata-help": "Minimum user profile allowed to un-publish metadata (Reviewer or Administrator). The default value is Reviewer.", + "filterStatusByAuthor": "Status author", + "filterStatusByOwner": "Status owner", + "filterStatusByRecordId": "Record identifier", + "filterStatusFromDate": "Status after date", + "filterStatusToDate": "Status before date", + "systemInformation": "System information", + "criticalSystemStatus": "Critical System Checks", + "warningSystemStatus": "Non-critical System Checks", + "CswGetCapabilitiesHealthCheck": "CSW GetCapabilities operation", + "DashboardAppHealthCheck": "Dashboard application", + "CswGetRecordsHealthCheck": "CSW GetRecords operation", + "DatabaseHealthCheck": "Database Connection", + "DeadlockedThreadsHealthCheck": "Dead locked threads", + "IndexHealthCheck": "Remote index", + "NoIndexErrorsHealthCheck": "Metadata index errors", + "FreeConnectionsHealthCheck": "Available connections in database", + "Free file handles": "Sufficient free file handles", + "HarvestersHealthCheck": "No harvesting errors", + "targetEditor": "Target editor", + "targetGroup": "Target group & editor", + "testCSW": "CSW test", + "testFormatter": "Test formatter", + "testProcess": "Test", + "thesaurus": "Thesaurus", + "thesaurusClass": "Thesaurus type", + "thesaurusExternalHelp": "External thesauri are in read only mode.", + "thesaurusIdentifier": "File name", + "thesaurusNamespace": "Namespace", + "thesaurusPlaceHelp": "Thesauri of type place contain bounding boxes of each concept. They could be used to automatically compute record extent from keywords.", + "thesaurusTitle": "Teitl", + "thesaurusDescription": "Description", + "customizeNamespace": "Customize namespace", + "thesaurusUploadHelp": "Thesauri in SKOS format are supported. File could have xml or rdf extensions.", + "thesaurusUrl": "URL", + "recordsRemoved": "record(s) removed", + "recordsTransfered": "record(s) transferred", + "recordsHarvestedIn": "record(s) harvested in", + "themesCssProps": "Schemas and Themes", + "thredds-serviceUrlHelp": "Thredds catalog URL - must end in catalog.xml", + "thredds-createServiceMd": "Create ISO19119 metadata for all services in the thredds catalog", + "thredds-createServiceMdHelp": "Create ISO19119 metadata for all services in the thredds catalog. Typically these are opendap, OGC WMS and the thredds Netcdf subset service. All files in the catalog will be inserted in the operatesOn section of the service record.", + "thredds-metadataLanguage": "Iaith", + "thredds-outputSchema": "Select schema for output metadata records", + "thredds-datasetTitle": "Dataset Title", + "thredds-datasetTitleHelp": "Enter the Title for the dataset. Default is catalog url.", + "thredds-datasetAbstract": "Dataset Abstract", + "thredds-datasetAbstractHelp": "Enter the Abstract for the dataset. Default is 'Thredds Dataset'.", + "thredds-serviceTypeHelp": "Choose WMS, NetcdfSubset, dods", + "thredds-topic": "ISO19115 Topic category for output metadata records", + "thredds-serviceCategory": "Geonetwork category to assign to service metadata records", + "thredds-datasetCategory": "Geonetwork category to assign to dataset metadata records", + "time": "Amser", + "totalNumberOfRecords": "records in the catalog", + "totalNumberOfRecordsHelp": "Total number of records visible to you.", + "totalSearches": "Total number of searches", + "searchesWithNoHits": "Total number of searches with no result", + "transfertPriv": "Transfer", + "transfertPrivs": "Transfer ownership", + "translationForCategory": "Translations for", + "translationForGroup": "Translations for", + "typeOfServiceUsed": "Type of services used for search", + "unchecked": "Not checked", + "updateCategory": "Diweddaru", + "updateGroup": "Update group", + "updateHarvester": "Update harvester", + "updateKeyword": "Cadw", + "updateMapServer": "Diweddaru", + "updateStandard": "Diweddaru", + "updateUser": "Update user", + "uploadThesaurus": "Uwchlwytho", + "useCtrlClickToUnselect": "Use CTRL + click to unselect a group", + "aReviewerInAGroupIsAlsoAnEditor": "A reviewer in a group will also be set editor of this group", + "url-host-relocator": "URL replacer", + "urlPrefix": "URL prefix to search", + "urlUpdater": "Update URLs in metadata records", + "use": "Use", + "useAccount": "Remote authentication", + "useLogoForCatalog": "Use it for the node", + "useLogoForCatalogFavicon": "Use it for the node favorite icon", + "userRecord": "record found for", + "userRecords": "records found for", + "userUpdateError": "User can't be created or updated", + "userUpdated": "User updated", + "users": "Users", + "valid": "Dilys", + "value": "Value", + "history": "Record history (events, workflow and tasks)", + "versionHistory": "Versioning log", + "vcshistory": "Versioning control system history", + "versioning": "Versioning", + "viewDEBUG": "View debug", + "viewHTML": "View HTML", + "viewXML": "View XML", + "visibleToAll": "Public", + "visibleToNobody": "Private", + "wcsurl": "WCS service URL", + "webdav-recurse": "Also search in subfolders", + "webdav-recurseHelp": "Search Webdav subfolders for metadata.", + "webdav-subtype": "Type of protocol", + "webdav-subtypeHelp": "Type of protocol", + "webdav-url": "URL", + "webdav-urlHelp": "The Webdav server url", + "wfsfeature-recordsCategory": "Category for output metadata records", + "wfsfeature-subtemplateCategory": "Category for directory entries", + "wfsfeatures-createSubtemplates": "Create subtemplates", + "wfsfeatures-createSubtemplatesHelp": "Create subtemplates for each WFS feature", + "wfsfeatures-metadataLanguage": "Iaith", + "wfsfeatures-metadataLanguageHelp": "The language of the metadata language", + "wfsfeatures-outputSchema": "Safon metadata", + "wfsfeatures-outputSchemaHelp": "The output schema to request from the output schema", + "wfsfeatures-query": "OGC WFS GetFeature Query", + "wfsfeatures-queryHelp": "The WFS GetFeature Query to use for fetching the features", + "wfsfeatures-streamFeatures": "Save large response to disk", + "wfsfeatures-streamFeaturesHelp": "If the response is large, save it to disk instead of keeping it in memory", + "wfsfeatures-stylesheet": "Stylesheet to create fragments", + "wfsfeatures-stylesheetHelp": "The stylesheet to apply to each feature for creating the metadata from each feature", + "wfsfeatures-templateId": "Select template to combine with fragments", + "wfsfeatures-templateIdHelp": "Select template to combine with fragments", + "wfsurl": "WFS service URL", + "wmsurl": "WMS service URL", + "workspace": "Workspace", + "workspace-help": "Namespace prefix and namespace URL corresponding to the workspace data has to be published in.", + "xlinkCacheHelp": "XLink cache to insert directory entries in metadata records. When updating directories, it may be needed to clear the cache of XLink in case the entries are not updated in related records.", + "xlinkCacheCleared": "XLink cache cleared", + "xml.relation": "Link query", + "system.xslt.factory": "System XSLT factory", + "xslt.factory": "XSLT factory", + "z3950-clearConfig": "Clear Z3950 Server Configuration", + "z3950-clearConfigHelp": "Clear Z3950 Server Configuration", + "z3950-host": "Host", + "z3950-hostHelp": "z3950 server host", + "z3950-port": "Port", + "z3950-portPort": "z3950 server port", + "NOVALIDATION": "Accept all metadata without validation", + "XSDVALIDATION": "Accept metadata that are XSD Valid", + "SCHEMATRONVALIDATION": "Accept metadata that are XSD and Schematron Valid", + "production": "Production", + "development": "Development", + "logoRemoved": "Logo removed", + "testing": "Testing", + "profileUpdated": "System Profile has been updated", + "profileUpdatedFailed": "Failure updating System Profile", + "GNIDX-XSL": "XSLT transform error", + "GNIDX-GEOWRITE": "Error writing geometry to spatial index", + "GNIDX-GEO": "Error indexing geometry", + "GNIDX-BADNUMVALUE": "Error converting lucene index value to a number", + "indexingErrors": "Indexing Errors", + "indexingError-warning": "Indexing Warning", + "indexingError-error": "Indexing Error", + "manageSources": "Sources", + "threadStatus": "Thread Status", + "doSaveConfirm": "Do you want to save your changes?", + "unsavedChangesWarning": "You have unsaved changes\n\nDo you still want to leave the page and lose your changes?", + "uiConfigUpdateError": "Error saving user interface configuration", + "selectForError": "Click to see error message", + "map/config": "Configuration for maps", + "map/proj4js": "List of CRS", + "region": "Region API", + "region/getmap": "GetMap request", + "region/getmap/background": "Background map, URL or Named Layer ID", + "region/getmap/mapproj": "Map projection", + "region/getmap/summaryWidth": "Summary width", + "region/getmap/useGeodesicExtents": "Display geodesic extents", + "region/getmap/useGeodesicExtents-help": "By default, the displayed metadata extents are planar (i.e. rectangular). If you enable this option, the metadata extents will become geodesic. If the map uses a projected coordinate system, this may lead to non-rectangular extents (e.g. trapezoid).", + "region/getmap/width": "Lled", + "metadata/editor": "Metadata editor configuration", + "metadata/editor/schemaConfig": "Standard configuration", + "metadata/backuparchive": "Backup archive", + "metadata/backuparchive/enable": "Enable", + "metadata/backuparchive/enable-help": "Activate nightly backup archive on server. Add a download archive button in admin/tools interface.", + "downloadBackupArchive": "Download backup archive", + "downloadBackupArchiveHelp": "Download a MEF file containing all inner metadatas of the catalog (non harvested including templates).", + "APITest": "API doc & test", + "APIHelp": "Documentation and testing page for the GeoNetwork API. Learn how to use the REST API.", + "triggerBackupArchive": "Generate backup archive", + "triggerBackupArchiveHelp": "Backup archive are done nightly but you can trigger it manually.", + "generatingArchiveBackup": "The generation of a backup archive has started.", + "ui/config": "Search app configuration", + "ui/config-help": "Configure the search application. Define main options of the layout and modules of the search interface.", + "ui": "User interface", + "logActivity": "Activity", + "serviceUrlHelp": "Web service URL without GetCapabilities parameters", + "serviceTypeHelp": "Math o wasanaeth", + "selectExistingLogo": "Select from existing logos", + "versionInformation": "Version Information", + "git.tags": "Current git tag (if any)", + "git.commit.id": "Commit hash", + "git.branch": "Branch base for the build", + "git.commit.id.describe-short": "Inferred version", + "git.build.time": "Timestamp of the build", + "testClientConfig": "Test client configuration", + "resetDefaultConfig": "Reset configuration", + "ui-mod-header": "Top toolbar", + "ui-mod-footer": "Footer", + "ui-mod-cookieWarning": "Cookie warning", + "ui-createPageTpl": "New metadata page layout", + "ui-createPageTpl-horizontal": "Horizontal", + "ui-createPageTpl-vertical": "Vertical", + "ui-createPageTpl-other": "Custom", + "ui-resultViewTpls-icon": "Icon", + "ui-resultViewTpls-tplUrl": "HTML template URL", + "ui-resultViewTpls-tooltip": "Tooltip", + "ui-resultViewTpls-relatedTypes": "(optional) Related types to load", + "ui-resultViewTpls-source": "(optional) Fields to exclude", + "ui-languages": "List of languages", + "ui-filters": "Filters", + "ui-minUserProfileToCreateTemplate": "Which minimum profile is required to manage/create template?", + "ui-minUserProfileToCreateTemplate-help": "Can be one of: '', 'Editor', 'Reviewer', 'UserAdmin', 'Administrator'. Depending on the user highest profile, user may not be able to import a record as a template or subtemplate, save a record as a template in the editor or manage directory templates. This applies only to the user interface, not to the API. '' means that all users can create template.", + "ui-facetTabField": "Facet field to display using tabs", + "ui-facetTabField-help": "Tab field is displayed above search results.", + "ui-filters-help": "Add extra filters to add to any search queries. See the documentation for more information.", + "ui-languages-help": "Define the list of languages in the language selector", + "ui-mod-home": "Hafan", + "ui-appUrl": "Application URL", + "ui-appUrl-help": "URL which can contain the following variables between '{' and '}':
  • node for the current portal
  • lang for 3 letters language code
  • isoLang for 2 letters language code.
", + "ui-advancedSearchTemplate": "Template for advanced search form", + "ui-advancedSearchTemplate-help": "Allows the customization of the advanced search form with a custom template.", + "ui-mod-search": "Search application", + "ui-hitsperpageValues": "Number of records per page", + "ui-paginationInfo": "Default number of records per page", + "ui-sortbyValues": "Type of sort options", + "ui-sortBy": "Default sort by option", + "ui-facetsSummaryType": "Type of facet", + "ui-facetsSummaryType-help": "List of facets is defined in the config-summary.xml file but the user can select a different set of facets. Default is 'details'. Other options: 'manager'.", + "ui-resultViewTpls": "List of templates for search results", + "ui-resultTemplate": "Default template used for search results", + "ui-formatter": "List of formatter for record view", + "ui-formatter-conditional-views": "Conditional views", + "ui-formatter-help": "Configure which formatter to use and optionally add conditional views to load formatter depending on record properties. eg. [\n {\n \"if\": {\n \"standardName\": [\n \"ISO 19115:2003/19139 - EMODNET - BATHYMETRY\",\n \"ISO 19115:2003/19139 - EMODNET - HYDROGRAPHY\"\n ]\n },\n \"url\": \"/formatters/xsl-view?root=div&view=emodnetHydrography\"}]", + "ui-downloadFormatter": "List of formatter for record export", + "ui-linkTypes": "List of link types", + "ui-mod-map": "Map application", + "ui-map": "Default map context to use", + "ui-projection": "Map projection", + "ui-projectionList": "List of map projections to display bounding box coordinates in", + "ui-useOSM": "Use OSM", + "ui-useOSM-help": "Use OSM", + "ui-scoreConfig": "Search result score configuration", + "ui-scoreConfig-help": "See Elasticsearch documentation", + "ui-autocompleteConfig": "Autocompletion configuration", + "ui-autocompleteConfig-help": "Configuration must have a query.multi_match.query which will be set on autocompletion.", + "ui-facetConfig": "Facets configuration", + "ui-facetConfig-help": "This configuration is used to display facets, using either bucket aggregations (terms, filters and histogram are currently supported). See Elasticsearch documentation for more information.", + "ui-listOfServices": "List of preferred OGC services", + "ui-listOfServices-help": "If none defined, service metadata records are proposed to the users", + "ui-storage": "User preference persistence", + "ui-storage-help": "'' or 'sessionStorage' or 'localStorage'. An empty value means that the viewer map will not be saved when leaving the application and restored when coming back.", + "ui-switcherProjectionList": "Projections to display maps into", + "ui-switcherProjectionList-help": "These are the projections to show on the projections switcher of the main map. Remember to complete the definition if it is not already available.", + "ui-isExportMapAsImageEnabled": "Export map as image", + "ui-isExportMapAsImageEnabled-help": "This requires CORS to be enabled on the WMS services used in the map application. If not sure, you should disable that option as it may cause trouble displaying WMS layers.", + "ui-is3DModeAllowed": "Allow 3D mode", + "ui-is3DModeAllowed-help": "If enabled, user can switch the map to 3D mode. The map viewer needs to be enabled also. If you don't want to enable the 3D mode for all users, adding 'catalog.search?with3d' in the URL will also load 3D mode.", + "ui-singleTileWMS": "Use a single tile for WMS services", + "ui-singleTileWMS-help": "If enabled, a single image is requested to the WMS service, otherwise tiles are requested. When the 3D mode is enabled, the value of this setting is ignored and it's used tiling as 3D mode doesn't support single tiles.", + "ui-isUserRecordsOnly": "Only my records", + "ui-isUserRecordsOnly-help": "If enabled, the checkbox \"Only my records\" will be checked by default in the editor dashboard", + "ui-isFilterTagsDisplayed": "Display filter tags in dashboard", + "ui-isFilterTagsDisplayed-help": "If enabled, display the list of filters applied in the dashboard and the batch editor dashboard", + "ui-isFilterTagsDisplayedInSearch": "Display filter tags in the search results", + "ui-isFilterTagsDisplayedInSearch-help": "If enabled, display the list of filters applied in the search results page", + "ui-searchMapPlacement": "Search result map placement", + "searchMapPlacement-facets": "Above search filter", + "searchMapPlacement-results": "Lower right to results", + "searchMapPlacement-": "Not display", + "ui-searchMapPlacement-help": "Define where to display the search results map highlighting records bounding box.", + "ui-showStatusFooterFor": "Highlight status in the record footer", + "ui-showStatusFooterFor-help": "List of codelist values (eg. completed,historicalArchive,obsolete,superseded) for which the footer has the status background color.", + "ui-showBatchDropdown": "Show the selection dropdown in the search page", + "ui-showBatchDropdown-help": "When enabled the user is able to select records in the search results and change the records in batch", + "map/isMapViewerEnabled": "Enable Map Viewer", + "map/isMapViewerEnabled-help": "If unselected, the map tab will be disabled and will not be used.", + "ui-isSaveMapInCatalogAllowed": "Allow users to save maps as metadata record", + "ui-isSaveMapInCatalogAllowed-help": "From the map viewer, user can set the map title and abstract and save the map directly with the OWS context in the catalog as a metadata record.", + "ui-isAccessible": "Make the Map accessible", + "ui-isAccessible-help": "When the Map is accessible it can be used with a keyboard and will work when it has the focus. Note: when the Map is accessible zoom in and out with a mouse won't work until the map has the focus", + "ui-advancedConfig": "JSON configuration", + "ui-workflowAssistApps": "List of workflow assist apps", + "ui-workflowAssistApps-help": "External Workflow assist applications. For example: App url: https://www.example.com/{isoLang}/{uuid} Label Key: WorkflowAssistApps-example-label. (this key should present in *-custom.json for translations.). URL can contain the following variables between '{' and '}':
  • uuid for the current metadata uuid
  • lang for 3 letters language code
  • isoLang for 2 letters language code.
", + "ui-workflowAssistApps-appUrl": "URL", + "ui-workflowAssistApps-appLabelKey": "Label Key", + "ui-mod-admin": "Consol gweinyddol", + "ui-mod-editor": "Editor application", + "ui-mod-authentication": "Authentication", + "ui-mod-workflowHelper": "Workflow assist", + "ui-signinUrl": "Sign in application URL", + "ui-signoutUrl": "Sign out application URL", + "ui-signinUrl-help": "URL of the home page. Can contain the following variables between 2 opening and closing '{':
  • node for the current portal
  • lang for 3 letters language code
  • isoLang for 2 letters language code.
", + "ui-signoutUrl-help": "URL of the home page. Can contain the following variables between 2 opening and closing '{':
  • node for the current portal
  • lang for 3 letters language code
  • isoLang for 2 letters language code.
", + "ui-mod-global": "General options", + "ui-humanizeDates": "Humanize dates", + "ui-humanizeDates-help": "For selected dates, if checked, show the date in human friendly format, for example \"3 days ago\". If not set, show the full date.", + "ui-searchMapLayers": "Search Map Layers", + "ui-searchMapLayers-help": "Optional. Define here layers that will be used in the search map. Type can be: wmts, osm, bing_aerial, stamen, etc.", + "ui-viewerMapLayers": "Viewer Map Layers", + "ui-viewerMapLayers-help": "Optional. Define here background layers to add on top of layers in the default map context.", + "ui-disabledTools": "Optional Map Viewer Tools", + "ui-disabledTools-help": "You can decide to show or hide these tools in the map viewer. Selected tools will be shown to the users.", + "ui-graticuleOgcService": "OGC Service to use as graticule", + "ui-graticuleOgcService-help": "Optional. For now, only WMS services are supported.", + "ui-usersearches": "User custom searches", + "ui-savedSelection": "Saved selections", + "ui-enabled": "Enabled", + "ui-displayFeaturedSearchesPanel": "Display featured user searches panel in home page", + "confirmDeleteThesaurus": "Are you sure you want to delete this thesaurus?", + "confirmDeleteKeyword": "Are you sure you want to delete this keyword?", + "switchLangTo": "Switch language...", + "showResultsCount": "Show {{count}} results", + "keywordMissingValue": "missing value", + "editKeyword": "Edit keyword", + "allLanguage": "Pob un", + "allLanguage-help": "Display all languages", + "oneLanguage": "One", + "oneLanguage-help": "Choose one language to edit using the selector", + "ui-mod-geocoder": "Gazetteer", + "ui-geocoder-help": "Insert the url of Gazetteer service and the behaviour (alt or default)", + "ui-mapExtent": "DEPRECATED! Map Extent", + "ui-mapExtent-help": "DEPRECATED! Extent coordinates to use for maps other that viewer and search maps.", + "ui-mapBackgroundLayer": "DEPRECATED! Map Background Layer", + "ui-mapBackgroundLayer-help": "DEPRECATED! Define here the background layer to use for maps other that viewer and search maps.", + "ui-map-viewer": "Viewer Map Configuration", + "ui-map-viewer-help": "This configuration is used for the viewer map. Every parameter is optional. The context is applied first, then the extent and layers. Supported types are: osm, bing_aerial, wmts, wms.", + "ui-map-search": "Search Map Configuration", + "ui-map-search-help": "This configuration is used for the search map. Every parameter is optional. The context is applied first, then the extent and layers. Supported types are: osm, bing_aerial, wmts, wms.", + "ui-map-editor": "Editor Maps Configuration", + "ui-map-editor-help": "This configuration is used for the editor maps (bounding box and geometry editor). Every parameter is optional. The context is applied first, then the extent and layers. Supported types are: osm, bing_aerial, stamen, wmts, wms.", + "ui-map-thumbnail": "Metadata Thumbnail Map Configuration", + "ui-map-thumbnail-help": "This configuration is used for the metadata editor map to generate thumbnails. Every parameter is optional. The context is applied first, then the extent and layers. Supported types are: osm, bing_aerial, stamen, wmts, wms.", + "mapConfigContext": "Path to the context file (XML)", + "mapConfigContext-help": "URL to the map context file which can contain the variable lang, for 3 letters language code, between '{' and '}'", + "mapConfigExtent": "Extent, expressed in current projection", + "mapConfigLayers": "Layer objects in JSON: {\"type\"=\"XXX\",\"arg1\":\"YYY\",...}", + "mapConfigSearchGeodesicExtents": "Display geodesic extents for metadata results", + "mapConfigSearchGeodesicExtents-help": "By default, the displayed metadata extents are planar (i.e. rectangular). If you enable this option, the metadata extents will become geodesic. If the map uses a projected coordinate system, this may lead to non-rectangular extents (e.g. trapezoid).", + "system/xlinkResolver/referencedDeletionAllowed": "Allow deletion of subtemplates referenced through an xlink.", + "system/xlinkResolver/referencedDeletionAllowed-help": "Checked means allow.", + "ui-grid": "Search results configuration", + "gridConfigRelatedTypes": "Related metadata types to query", + "gridConfigRelatedTypes-help": "Possible types include children, parent, services, fcats, datasets, sibling.", + "gnBackgroundCss": "Background", + "styleVariable-gnBackgroundImage": "Image", + "styleVariable-gnBackgroundColor": "Lliw", + "gnMenubarCss": "Menubar", + "styleVariable-gnMenubarBackground": "Background", + "styleVariable-gnMenubarBackgroundActive": "Background when active", + "styleVariable-gnMenubarColor": "Lliw", + "styleVariable-gnMenubarColorHover": "Color on mouse hover", + "styleVariable-gnMenubarBorderColor": "Border color", + "gnBottombarCss": "Bottombar", + "styleVariable-gnBottombarBackground": "Background", + "styleVariable-gnBottombarBackgroundHover": "Background color on hover", + "styleVariable-gnBottombarColor": "Lliw", + "styleVariable-gnBottombarColorHover": "Color on mouse over", + "styleVariable-gnBottombarBorderColor": "Border color", + "gnTopicsCss": "Pwnc", + "styleVariable-gnTopicsBackgroundColor": "Background", + "gnInfoCss": "Info", + "styleVariable-gnInfoBackgroundColor": "Background", + "gnResultcardsCss": "Result Card", + "styleVariable-gnResultcardBackgroundColor": "Background", + "styleVariable-gnResultcardTitleBackgroundColor": "Title background", + "gnResultsCss": "Result", + "styleVariable-gnResultsBackgroundColor": "Background", + "gnMdViewCss": "Metadata view", + "styleVariable-gnMdViewBackgroundColor": "Background", + "gnCssStyleIntroMessage": "Properties defined here replace the default system properties. An empty field restores the corresponding default value.", + "exportSettings": "Export settings", + "uploadSettings": "Upload settings", + "settingsUpdateError": "Error during settings update", + "restoreDefaultSettings": "Restore default settings", + "restoreDefaultStyleConfirm": "Confirm to restore default default style values. Current changes will be lost.", + "gnUploadCssStyle": "Upload a JSON style file", + "record-links": "Record links analysis", + "recordLinksDashboard": "Record links analysis", + "recordLinksDashboardSubtitle": "Here are listed all record links analyzed. For each link, the history of all checks is provided.", + "downloadAsCsv": "Download (CSV)", + "downloadAsCsv-help": "Export link analysis as CSV format. Limited to 20000 links. Use the page parameter if you need more than that.", + "lastCheck": "Last check", + "associatedRecords": "Associated records", + "wfs-indexing": "Feature harvesters", + "wfsIndexingTitle": "WFS Indexing Dashboard", + "wfsIndexingSubtitle": "Here are listed the ongoing and finished jobs for indexing features from remote WFS services. Once indexed, features can then be filtered according to their attributes and the filter applied to the original map layer.", + "wfsIndexingFeatureType": "Math o nodwedd", + "wfsIndexingMetadata": "Associated metadata", + "wfsIndexingMetadataNotFound": "Metadata could not be found.", + "wfsIndexingMetadataUuid": "Metadata UUID", + "wfsIndexingRefreshError": "An error occurred when refreshing the list:", + "wfsIndexingError": "Error encountered", + "fromRegistry": "From registry", + "registry-help": "Re3gistry software is a tool to publish registers. Registers provide a means to assign identifiers to items and their labels, definitions and descriptions (in different languages). The INSPIRE registry provides a central access point to a number of centrally managed INSPIRE registers.", + "registryChooseLanguages": "Choose one or more language", + "registryChooseLanguages-help": "Select languages you need depending on the languages you are using in your metadata. Depending on the number of languages selected, a multilingual thesaurus will be created.", + "registryUrl": "Registry URL", + "registryChooseType": "Choose registry item class", + "registryChooseItem": "Choose registry collection", + "registryUseInspireOne": "Use INSPIRE registry", + "validatorUseInspireOne": "Use INSPIRE validator", + "registryFailedToLoadItem": "Failed to load item collection.", + "registryNoItemFound": "No collection found. Choose another item class.", + "registryNoLanguage": "One language is required.", + "registryNoClassFound": "No class found in that registry. Check the URL?", + "registryFailedToLoadClass": "No class found in that registry. Check the URL?", + "indexInEsDoneError": "There is an error with the index. See the logs for details", + "indexInEsDone": "The indexing operation was successfull", + "ui-externalViewer": "External viewer", + "ui-externalViewer-enabled": "Use an external viewer", + "ui-externalViewer-enabled-help": "When using map-related functionalities, the user will be redirected to a third party application. Will disable the default Geonetwork map.
Please note that most settings within this section will not be effective anymore.", + "ui-externalViewer-baseUrl": "Viewer base URL", + "ui-externalViewer-baseUrl-help": "This URL must point to the external viewer application and will be used when the user clicks on the 'map' tab. Mandatory.", + "ui-externalViewer-urlTemplate": "Viewer URL template", + "ui-externalViewer-urlTemplate-help": "This URL will be used to add layers to the external viewer. Available tokens are: ${md.uuid}, ${md.id}, ${md.url}, ${service.url}, ${service.type}, ${service.name}, ${service.title}. Mandatory.", + "ui-externalViewer-valuesSeparator": "Values separator", + "ui-externalViewer-valuesSeparator-help": "This will be used when the user requests visualization of multiple layers.", + "ui-externalViewer-openNewWindow": "Open new window", + "ui-externalViewer-openNewWindow-help": "If checked, the external viewer will be opened in a new tab/window.", + "projectionSwitcherTool": "Projection Switcher Tool", + "ui-minx": "Min X", + "ui-maxx": "Max X", + "ui-miny": "Min Y", + "ui-maxy": "Max Y", + "ui-minlon": "Min Lon", + "ui-maxlon": "Max Lon", + "ui-minlat": "Min Lat", + "ui-maxlat": "Max Lat", + "ui-worldExtent": "World Extent", + "ui-extent": "Extent", + "ui-resolutions": "Resolutions", + "ui-definition": "Diffiniad", + "ui-label": "Label", + "ui-code": "Cod", + "ui-getProj": "Retrieve projection settings from {{value}}", + "ui-extent-help": "This is the default extent of the map for this projection in projected units (e.g. metre). This is a mandatory field if the projection is not already defined in GeoNetwork.", + "ui-worldExtent-help": "This is the maximum world extent of the map for this projection in degrees (longitude-latitude). This is a mandatory field if the projection is not already defined in GeoNetwork.", + "ui-label-help": "Label to show on the user interface to identify this projection. This is a mandatory field.", + "ui-code-help": "EPSG unique identifier for this projection e.g. 'EPSG:4326'. This is a mandatory field. Click the globe button to auto-populate all settings.", + "ui-resolutions-help": "Allowed resolutions (zooms) for this projection. This is an optional field.", + "ui-definition-help": "Definition for Proj4 library. This is a mandatory field if the projection is not defined already in GeoNetwork. Without a definition, the map can't work.", + "ui-mod-recordview": "Record View", + "ui-isSocialbarEnabled": "Show Social bar", + "ui-isSocialbarEnabled-help": "Show the button bar with all the social buttons (facebook, twitter, etc.)", + "ui-showStatusWatermarkFor": "Show a watermark", + "ui-showStatusWatermarkFor-help": "List of codelist values (eg. completed,historicalArchive,obsolete,superseded) for which the record status as a watermark displayed through the text", + "ui-showStatusTopBarFor": "Show status bar", + "ui-showStatusTopBarFor-help": "List of codelist values (eg. completed,historicalArchive,obsolete,superseded) for which the record status as a bar at the top of the record", + "ui-isLogoInHeader": "Show the logo in header", + "ui-isLogoInHeader-help": "Show the logo in the header, above the navigation bar. The logo in the navigation bar will be removed. Only for the public pages (not the editor or admin).", + "ui-logoInHeaderPosition": "Position of logo", + "ui-logoInHeaderPosition-help": "Position of the logo in the header", + "ui-isHeaderFixed": "Fix the header", + "ui-isHeaderFixed-help": "The header is fixed and stays at the top of the page. Attention: when the option [Show the logo in header] is also selected, the header needs a set height. This can be done under [CSS & Style] > [Header] > [Height]", + "ui-sortKeywordsAlphabetically": "Sort keywords / categories / topic categories alphabetically", + "ui-sortKeywordsAlphabetically-help": "Display the keywords / categories / topic categories sorted alphabetically. If not enabled are displayed in the order that are assigned to the metadata.", + "left": "Left", + "center": "Center", + "right": "Right", + "gnHeaderCss": "Header", + "styleVariable-gnHeaderBackground": "Background", + "usersInGroup": "Users in group", + "removeSource": "Tynnu", + "addSubPortal": "Add portal", + "subPortalGroupOwner": "User admin group", + "subPortalGroupOwnerHelp": "Users with the user admin profile for this group will be able to manage this portal (ie. change name, logo, filter, user interface configuration).", + "sources-help": "There are 3 types of sources: the main catalogue, a sub-portal which can be a subset of the main catalogue, and harvesters.", + "sourceUpdated": "Source updated", + "source-harvester": "Harvester", + "source-subportal": "Portal", + "source-portal": "Main catalogue", + "sourceUuid": "Dynodwr", + "sourceUuid-help": "Unique identifier of the portal used in the URL. MUST be composed of letters, numbers, '-' and '_' only.", + "sourceUrlInfo": "This portal is accessible from here and the CSW endpoint from here", + "sourceName": "Name", + "sourceName-help": "Portal short name. MUST be composed of letters, numbers, '-' and '_' only. Once created, use the translations to define labels to be displayed in the toolbar.", + "sourceFilter": "Search filter", + "sourceFilter-help": "Additional search criteria to be added to any searches made in the portal. This is a lucene expression. eg. +keyword:inspire", + "displayInHeaderSwitcher": "Display in the portal switcher", + "displayInHeaderSwitcher-help": "If enabled the portal will displayed on the list of available portals in the site header portal selector", + "sourceLogo": "Logo", + "sourceLogo-help": "Portal logo to be displayed in the toolbar.", + "sourceUiConfig": "User interface configuration", + "sourceUiConfig-help": "See user interface tab to create new configuration.", + "ui-editorIndentType": "Editor page indent type", + "ui-editorIndentType-default": "Default, minimal indents", + "ui-editorIndentType-colored": "Colored indents", + "filterSettings": "Filter settings", + "filterPlaceHolder": "e.g. INSPIRE", + "filterReset": "Reset the filter", + "distributedSearch": "Distributed search", + "distributedSearchHelp": "Enables the distributed search in remote server (if the remote server supports it). When this option is enabled, the remote catalog cascades the search to the Federated CSW servers that has configured.", + "hopCount": "Hop count", + "hopCountHelp": "Control the maximum number of message hops (default to 2) before the search is terminated in a distributed search.", + "ui-showSocialBarInFooter": "Show Social bar", + "ui-showSocialBarInFooter-help": "Show the button bar with all the social buttons (facebook, twitter, etc.) in the footer of GeoNetwork", + "ui-showApplicationInfoAndLinksInFooter": "Show GeoNetwork version and links", + "ui-showApplicationInfoAndLinksInFooter-help": "Show the application version and links in the catalog page footer", + "ui-fluidLayout": "Fluid container for Home and Search", + "ui-fluidLayout-help": "If enabled, the layout of the application has a full width container, when disabled the layout has a fixed width and centered container", + "ui-fluidEditorLayout": "Fluid container for the Editor", + "ui-fluidEditorLayout-help": "If enabled, the layout of the application has a full width container, when disabled the layout has a fixed width and centered container", + "ui-fluidHeaderLayout": "Fluid container for Header and Top menu", + "ui-fluidHeaderLayout-help": "If enabled, the layout of the header and top menu has a full width container, when disabled the layout has a fixed width and centered container", + "ui-showGNName": "Show the catalog name in the Top menu", + "ui-showGNName-help": "If enabled, the name of GeoNetwork will be shown in the top menu, when disabled the name will be hidden", + "ui-cookieWarningMoreInfoLink": "Link to more info about cookies", + "ui-cookieWarningMoreInfoLink-help": "If not empty this link will be shown in the Cookie Warning widget inviting the user to look for more information about cookies", + "ui-cookieWarningRejectLink": "URL where the user will be redirected if Reject cookies is chosen", + "ui-cookieWarningRejectLink-help": "If not empty the user will be redirected to this URL on cookies rejection. If empty GeoNework will redirect teh user to the last visited URL (history.back())", + "styleVariable-gnMenubarBackgroundHover": "Background color on hover", + "styleVariable-gnMenubarColorActive": "Color when active", + "metadata/pdfReport": "Metadata selection - pdf report", + "metadata/pdfReport/coverPdf": "Cover pdf", + "metadata/pdfReport/coverPdf-help": "URL of the cover pdf for the PDF report. If not defined, no cover page is added to the report.", + "metadata/pdfReport/introPdf": "Introduction pages pdf", + "metadata/pdfReport/introPdf-help": "URL of the pdf with the introduction pages for the PDF report. If not defined, no introduction pages are added to the report.", + "metadata/pdfReport/headerLeft": "Header text (left)", + "metadata/pdfReport/headerLeft-help": "The following template values are allowed: {date}, {siteInfo}.", + "metadata/pdfReport/headerRight": "Header text (right)", + "metadata/pdfReport/headerRight-help": "The following template values are allowed: {date}, {siteInfo}.", + "metadata/pdfReport/footerLeft": "Footer text (left)", + "metadata/pdfReport/footerLeft-help": "The following template values are allowed: {date}, {siteInfo}.", + "metadata/pdfReport/footerRight": "Footer text (right)", + "metadata/pdfReport/tocPage": "Add table of contents (TOC) page", + "metadata/pdfReport/pdfName": "Report file name", + "metadata/pdfReport/pdfName-help": "Report file name. The following template fields are allowed to be used: {year}, {month}, {day}, {date} and {datetime}. Template fields are replaced with the related date values. {date} uses 'yyyyMMdd' format and {datetime} uses 'yyyyMMddHHmmss' format.", + "metadata/pdfReport/headerLogoFileName": "Top banner file name", + "metadata/pdfReport/headerLogoFileName-help": "When a file is given, the pdf will be generated using this image as its top banner instead of its default one. Please add this image using the add new logo feature.", + "metadata/csvReport": "Metadata selection - csv export", + "metadata/csvReport/csvName": "CSV export file name", + "metadata/csvReport/csvName-help": "Export metadata in CSV format file name. The following template fields are allowed to be used: {year}, {month}, {day}, {date} and {datetime}. Template fields are replaced with the related date values. {date} uses 'yyyyMMdd' format and {datetime} uses 'yyyyMMddHHmmss' format.", + "gnSearchCss": "Search Box", + "styleVariable-gnSearchOutlineColor": "Border color for when the search box has the focus", + "styleVariable-gnSearchButtonBackgroundColor": "Background color for the search button", + "styleVariable-gnSearchButtonColor": "Text color for the search button", + "analyzeLinks": "Analyze all records", + "analyzeLinks-help": "For all records in the catalogue, extract links and analyze URL status.", + "refreshLinks": "Adnewyddu", + "removeAllLinksAndStatus": "Remove all", + "removeAllLinksAndStatusConfirm": "Are you sure to remove all links and status history?", + "moreLinks": "More links ...", + "ui-defaultSearchString": "Default search", + "ui-defaultSearchString-help": "This configuration lets you define a default filter for the search. The syntax is the one used in the angular facet query array.", + "ui-autoFitOnLayer": "Always zoom on data", + "ui-autoFitOnLayer-help": "If checked, the map will automatically zoom on data when adding a layer from a record. Otherwise, a message will be shown to let the user zoom on data manually.", + "styleVariable-gnHeaderHeight": "Height", + "styleVariable-gnSearchBackgroundColor": "Background color", + "confirmDeletecategory": "Are you sure you want to delete this category?", + "ui-mod-page": "Static pages", + "logoHeight": "Logo height", + "logoSelect": "Logo Selection", + "filterLogo": "Filter on the logo name", + "ui-addWMSLayersToMap": "Add WMS layers from metadata to the map viewer", + "ui-urlLayerParam": "URL parameter with the layer name", + "ui-addWMSLayersToMap-urlLayerParam": "URL parameter with the layer name", + "ui-addWMSLayersToMap-urlLayerParam-help": "If the WMS layer name is configured in the metadata resource url, configure the url parameter that contains the layer name.", + "confirmRemoveLogo": "Are you sure you want to delete this logo?", + "groupRemoved": "Group removed", + "userRemoved": "User removed", + "ui-relatedFacetConfig": "Related records facets config", + "ui-relatedFacetConfig-help": "This configuration is used to display facets for metadata relations, using either bucket aggregations (terms, filters and histogram are currently supported). See Elasticsearch documentation for more information.", + "ui-mainThesaurus": "Thesaurus keywords to highlight", + "ui-mainThesaurus-help": "Choose thesaurus that you want keywords to be displayed as badges.", + "confirmUiDelete": "Are you sure you want to delete this UI configuration?", + "ui-searchResultContact": "Results / Default type of contacts to display in the search results", + "ui-searchResultContact-help": "Select the default type of contacts to display in the search results. If the metadata doesn't have contacts of the selected type, the contact organisation for the resource is displayed (if available).", + "Org": "Contact organisation for the metadata", + "OrgForResource": "Contact organisation for the resource", + "OrgForDistribution": "Contact organisation for distribution", + "notificationLevel-statusUserOwner": "Notify the status owner user", + "notificationLevel-catalogueAdministrator": "Notify catalogue administrator mail address defined in the Settings > Feedback", + "notificationLevel-catalogueProfileAdministrator": "Notify the catalogue administrators", + "notificationLevel-catalogueProfileUserAdmin": "Notify the catalogue user administrators", + "notificationLevel-catalogueProfileReviewer": "Notify the catalogue reviewers", + "notificationLevel-catalogueProfileEditor": "Notify the catalogue editors", + "notificationLevel-catalogueProfileRegisteredUser": "Notify the catalogue registered user", + "notificationLevel-catalogueProfileGuest": "Notify the catalogue guest", + "notificationLevel-recordProfileReviewer": "Notify the reviewers part of the record group owner", + "notificationLevel-recordUserAuthor": "Notify the record author", + "notificationLevel-recordGroupEmail": "Notify the group(s) emails", + "confirmMapserverDelete": "Are you sure you want to delete this Map server?", + "confirmSourceDelete": "Are you sure you want to delete this portal?", + "confirmMetadataIdentifierTemplateDelete": "Are you sure you want to delete this metadata identifier template?", + "uiConfigDeleteError": "Error deleting user interface configuration", + "sourceRemoved": "Source removed", + "sourceRemovedError": "Error while removing the source", + "saveThesaurus": "Cadw", + "manageStaticPages": "Static pages", + "newStaticPage": "New static page", + "updateStaticPage": "Update static page", + "confirmStaticPageDelete": "Are you sure you want to delete the static page?", + "staticPageUpdated": "Static page updated", + "staticPageUpdateError": "Error occurred while saving the static page", + "staticPageDeleteError": "Error while removing the static page", + "staticPageRemoved": "Static page removed", + "chooseStaticPageFile": "Choose or drop static page file here", + "ui-topCustomMenu": "Header custom menu items", + "ui-topCustomMenu-help": "List of static page IDs associated with the header section to display:
  • When a list is provided, the links are displayed in the order provided and only for the pages listed.
  • When a list is not provided, all static pages configured for the header section are displayed, with no guaranteed order.
  • .\nPages can be inserted in between catalogue default menu which are:
    [\"gn-site-name-menu\",\n    \"gn-portal-switcher\",\n    \"gn-search-menu\",\n    \"gn-map-menu\",\n    \"gn-contribute-menu\",\n    \"gn-admin-menu\"]
    . Insert a page as a simple menu using its id eg.
    \"documentation\"
    or as a submenu using an object:
    {\"Quick search\": [\n  \"searchForAfrica\", \n  \"forReview\"\n]}
    ", + "ui-footerCustomMenu": "Footer custom menu items", + "ui-footerCustomMenu-help": "List of static page IDs associated with the footer section to display:
    • When a list is provided, the links are displayed in the order provided and only for the pages listed.
    • When a list is not provided, all static pages configured for the footer section are displayed, with no guaranteed order.
    • ", + "es.url": "Elasticsearch server", + "es.version": "Elasticsearch version", + "es.index": "Index name", + "systemPropertiesProxyConfiguration": "Using http proxy settings in system properties.", + "app.version": "Application version", + "app.subVersion": "Application minor version", + "fieldRequired": "Mae angen y gwerth", + "fieldTooLong": "Mae'r gwerth yn rhy hir", + "fieldTooShort": "Mae'r gwerth yn rhy fyr", + "fieldEmailNotValid": "Mae angen cyfeiriad e-bost dilys", + "formConfirmExit": "The form has changes, if you exit the changes will be lost. Do you want to exit on the page?" +} \ No newline at end of file diff --git a/web-ui/src/main/resources/catalog/locales/cy-core.json b/web-ui/src/main/resources/catalog/locales/cy-core.json new file mode 100644 index 00000000000..b5bc573c952 --- /dev/null +++ b/web-ui/src/main/resources/catalog/locales/cy-core.json @@ -0,0 +1,588 @@ +{ + "Administrator": "Gweinyddwr", + "all": "popeth", + "allInPage": "popeth yn y dudalenv", + "addToSelection": "Ychwanegu at...", + "removeFromSelection": "Cael gwared o...", + "AnonymousUserlist": "Cofnodion dewisol", + "MapLayerlist": "Ychwanegu at restr mapiau", + "basket": "Basged", + "emptyBasket": "Basged yn wag", + "searchSelectedRecord": "Chwilio cofnodion", + "advanced": "Uwch", + "basic": "Sylfaenol", + "none": "dim un", + "indexNotAvailable": "Dim gwasanaeth chwilio ar gael ar hyn o bryd!", + "BadParameterEx": "Paramedr anghywir", + "Editor": "Golygydd", + "Keywords": "Geiriau allweddol", + "crs": "Cydlynu system gyfeirio", + "search": "Chwilio", + "METADATA": "Metadata", + "RegisteredUser": "Defnyddiwr cofrestredig", + "Reviewer": "Adolygydd", + "SUB_TEMPLATE": "Cofnod cyfeiriadur", + "TEMPLATE_OF_SUB_TEMPLATE": "Templed ar gyfer cofnod cyfeiriadur", + "TEMPLATE": "Templed", + "indexWFSFeatures": "Data mynegai", + "reindexWFSFeatures": "Data glân a mynegai", + "docTypeNotIndexed": "Nodweddion heb eu mynegeio.", + "recordType-y": "TempledTempled", + "recordType-n": "Metadata", + "recordType-s": "Cofnod cyfeiriadur", + "recordType-t": "Templed ar gyfer cofnod cyfeiriadur", + "UserAdmin": "Gweinyddwr defnyddiwr", + "duplicatedValueFound": "Mae gwerth '{{value}}' eisoes yn bodoli. Dewiswch un arall.", + "duplicatedValueFoundHarvesterName": "Mae enw cynaeafwr '{{value}}' eisoes yn bodoli. Argymhellir dewis enw arall.", + "tooManyItemsInSelection": "Gormod o eitemau yn cael eu dewis. Uchafswm yr eitemau {{maxSize}} a ganiateir.", + "categories": "Categorïau", + "learnTheApi": "Dysgwch sut i ddefnyddio'r catalog REST API.", + "category": "Categori", + "groupOwner": "Grŵp", + "groupPublished": "Cyhoeddwyd yn y grŵp hwnnw", + "indexingError": "Gwall mynegeio", + "source": "Catalog", + "addRecordToSelection": "Ychwanegu at y dewis", + "removeRecordFromSelection": "Dileu o'r dewis", + "indexRecord": "Cofnod mynegai", + "indexRecords": "Cofnodion mynegai", + "previousKeywords": "Blaenorol", + "previousPage": "Tudalen flaenorol", + "nextPage": "Tudalen nesaf", + "chooseImage": "Dewiswch neu ollwng delwedd yma", + "topConcepts": "Prif Gysyniad (au)", + "viewSelectionOnly": "Dewis yn unig", + "add": "Ychwanegu", + "address": "Cyfeiriad", + "personal": "Personol", + "gnToggle": "Dangos/cuddio adrannau", + "cookieWarning": "Mae'r wedudalen hon yn defnyddio cwcis. Os byddwch yn parhau i ddefnyddio'r dudalen hon, byddwn yn cymryd yn ganiataol eich bod yn derbyn hyn.", + "moreOnCookie": "Eisiau gwybod mwy am y neges hon?", + "acceptCookie": "Derbyn", + "rejectCookie": "Dewch â mi oddi yma", + "adminConsole": "Consol gweinyddol", + "loadCapabilitiesLayers": "Llwytho haenau gwasanaeth", + "any": "Testun llawn", + "anyPlaceHolder": "Chwilio...", + "VALID": "Dilys", + "INVALID": "Annilys", + "clickToFilterOn": "Canolbwyntio ar ", + "NEVER_CALCULATED": "Erioed wedi'i ddilysu", + "validStatus-1": "Dilys", + "validStatus-0": "Annilys", + "validStatus--1": "Erioed wedi'i ddilysu", + "lastInspireValidationStatus": "Statws dilysu INSPIRE diwethaf", + "validInspireStatus--1": "INSPIRE erioed wedi’i ddilysu", + "validInspireStatus-1": "INSPIRE yn ddilys", + "validInspireStatus-0": "INSPIRE annilys", + "wfsNoOutputFormats": "Ni ddarganfuwyd unrhyw fformat allbwn yng ngallu’r gwasanaeth lawrlwytho.", + "fre": "Français", + "roh": "Romanian", + "ara": "عربي", + "kor": "Corëeg", + "by": "gan", + "cat": "Catalan", + "swe": "Svenska", + "catalog": "catalog", + "chi": "中文", + "city": "Dinas", + "cl_status": "Statws", + "associatedResources": "Adnoddau cysylltiedig", + "brothersAndSisters": "Brodyr a Chwiorydd", + "moreInfoOnRecord": "mwy …", + "comments": "Sylw", + "country": "Gwlad", + "validateLinks": "Dilysu cysylltiadau cofnod", + "metadataLinksValidated": "Dechreuodd dilysu cyswllt.", + "validateSelectedRecordConfirm": "Ydych chi wir eisiau dilysu'r cofnod(ion) {{selectedCount}} a ddewiswyd?", + "validateLinksSelectedRecordConfirm": "Ydych chi wir eisiau dilysu dolenni o'r cofnod(ion) {{selectedCount}} a ddewiswyd ?", + "validateSelectedRecordINSPIREConfirm": "Ydych chi wir eisiau dilysu'r cofnod(ion) {{selectedCount}} a ddewiswyd yn y dilysydd INSPIRE?", + "restoreValueFromHistoryConfirm": "Cadarnhau i adfer yr elfen gyfredol o’r hanes", + "regions": "Rhanbarthau", + "gemetKeywords": "Geiriau allweddol GEMET", + "createAnAccount": "Creu cyfrif", + "createDateYear": "Blwyddyn greu", + "createDateYears": "Blynyddoedd", + "dataset": "Set ddata", + "day": "Diwrnod", + "deleteRecordConfirm": "Ydych chi wir eisiau dileu o '{{resourceTitle}}'?", + "deleteSelectedRecordConfirm": "Ydych chi wir eisiau dileu'r cofnod(ion) a ddewiswyd {{selectedCount}}?", + "cofirmEditApproved": "Bydd golygu cofnod cymeradwy yn dod ag ef yn ôl i'w gyflwr drafft. Ydych chi am barhau?", + "denominators": "Graddfa", + "docNotFound": "Rhybudd! Tudalen {{page}} ddim wedi ei chanfod yn y ddogfennaeth.", + "docPageNotFoundAtUrl": "Nid yw'r dudalen ddogfennaeth ar gael yn URL:", + "dut": "Nederlands", + "east": "Dwyrain", + "addThoseCategories": "Uno wedi ei ddewis", + "replaceByThoseCategories": "Diweddaru", + "categoriesBatchAlert": "Wrth ddiweddaru categorïau, gall defnyddiwr ddewis uno'r categorïau newydd â'r rhai presennol neu eu disodli.

      Bydd clicio ar Merge selected dde yn ychwanegu (gwi rio gyda +) neu dynnu (blwch gwirio gyda -) categorïau dethol.

      Bydd clicio ar Di weddariad yn tynnu categorïau cofnodion ac yna ychwanegu (gwirio gyda +) neu ddileu (blwch gwirio gyda -) categorïau.", + "editorBoard": "Ychwanegu cofnod newydd", + "contribute": "Cyfrannu", + "email": "Ebost", + "eng": "Saesneg", + "errorEmailAddressAlreadyRegistered": "Cyfeiriad e-bost sydd eisoes wedi'i gofrestru.", + "errorIs": "Gwall yw ", + "featureCatalog": "Catalog nodwedd", + "frequency": "Amlder", + "feebackSent": "Mae eich neges wedi'i hanfon at y rheolwr catalog.", + "feedbackNotEnable": "Nid yw adborth wedi'i alluogi.", + "filter": "Hidlo", + "filterSearch": "Arddangos opsiynau chwilio", + "fin": "Suomeksi", + "forgetDetails": "Wedi anghofio eich manylion?", + "forgetDetailsInfo": "Defnyddiwch adfer cyfrinair i'w ailosod.", + "from": "O", + "collapseAllFacet": "Cwympo pob agwedd", + "expandAllFacet": "Ehangu pob agwedd", + "ger": "Deutsch", + "groupOwners": "Grwpiau", + "hour": "Awr", + "inspireThemes": "Themâu INSPIRE", + "inspireThemesURI": "Themâu INSPIRE", + "inspiretheme": "Thema INSPIRE", + "inspireNotAllowedError": "Ni chaniateir defnyddio'r adnodd", + "inspireNotFoundError": "Ni ddarganfuwyd yr adnodd", + "inspireServiceError": "Gwall dilysu o bell: gwiriwch yr URL", + "inspireNotAcceptableError": "Nid yw sgema metadata yn cael ei gefnogi", + "inspirePopupReportTitle": "Adroddiad dilysu INSPIRE", + "inspirePopupReportText": "Daeth y profion dilysu i ben gyda statws: ", + "inspirePopupReportLink": "Cliciwch yma am fwy o fanylion", + "notAllowedError": "Ni chaniateir i broffil cyfredol", + "notFoundError": "Ni ddarganfuwyd yr adnodd", + "internalServerError": "Gwall Gweinydd Mewnol", + "recordRestored": "Cofnod wedi'i adfer", + "confirmRestore": "Ydych chi am drosysgrifnu'r data cyfredol gyda'r gwerthoedd a gadwyd yn y cofnod a ddewiswyd?", + "ita": "Italiano", + "keyword": "Gair allweddol", + "keywordFilter": "Hidlo gair allweddol", + "keywords": "Geiriau allweddol", + "recordOwner": "Perchennog y cofnod", + "groupRecordOwner": "Grŵp perchennog y cofnod", + "map": "Map", + "makeYourMap": "Map", + "metadataPOCs": "Cysylltwch ar gyfer y metadata", + "month": "Mis", + "msgNoCatalogInfo": "Ni allwyd adfer gwybodaeth catalog.", + "msgNoUserInfo": "Ni allwyd adfer manylion defnyddiwr.", + "msgUserAuthenticated": "Defnyddiwr {{enw defnyddiwr}} wedi'i ddilysu.", + "name": "Name", + "needAnAccount": "Angen cyfrif?", + "needAnAccountInfo": "Yna cofrestrwch i'r dde, dim ond munud y mae'n ei gymryd.", + "needHelp": "Angen help", + "newAccountInfo": "Pan fyddwch yn gofyn am gyfrif bydd e-bost yn cael ei anfon atoch gyda'ch manylion defnyddiwr. Os gofynnir am broffil defnyddiwr uwch, bydd gweinyddwr y catalog yn dadansoddi eich cais ac yn dychwelyd atoch.", + "next": "Nesaf", + "noFileSelected": "Ni ddewiswyd ffeil", + "noRecordFound": "Ni ddarganfuwyd unrhyw gofnod.", + "nor": "Norwyeg", + "bboxIdentifier": "Dynodwr daearyddol", + "bboxDescription": "Disgrifiad daearyddol", + "north": "Gogledd", + "metadataAuthor": "Cofnod a grëwyd gan y defnyddiwr", + "zarooResult": " Dim canlyniadau!", + "Clear": "Clirio", + "ClearTitle": "Clirio ymholiad chwilio cyfredol, hidlwyr a mathau.", + "hitsPerPage": "Cofnodion fesul tudalen", + "chooseRecordsPerPage": "Cliciwch i ddewis nifer y cofnodion fesul tudalen", + "sortedBy": "Trefnwyd yn ôl {{field}}", + "sortBy-dateStampDesc": "diweddariadau diwethaf", + "sortBy-createDateDesc": "cofnodion newydd", + "sortBy-resourceTitleObject.default.sort": "teitl (esgynnol)", + "sortBy-resourceTitleObject.default.sortDesc": "teitl (disgynnol)", + "sortBy-relevance": "perthnasedd", + "sortBy-ratingDesc": "sgôr", + "rating": "sgôr", + "popularity": "poblogrwydd", + "sortBy-popularityDesc": "poblogrwydd", + "sortBy-denominatorDesc": "graddfa isel yn gyntaf", + "sortBy-denominatorAsc": "graddfa uchel yn gyntaf", + "selected": "dewiswyd", + "actionsOnSelection": "Dewiswch weithred i'w chymhwyso i'r dewis cyfredol...", + "clickToSelect": "Cliciwch i ddewis/ddad-ddewis...", + "notifications": "Hysbysiadau", + "orgName": "Cyswllt ar gyfer yr adnodd", + "orgNames": "Cyswllt ar gyfer yr adnodd", + "orgNamesTree": "Cyswllt ar gyfer yr adnodd", + "topicCat": "Pwnc", + "topicCats": "Pynciau", + "organisation": "Sefydliad", + "organization": "Sefydliad", + "atomChooseLayerToAdd": "Dewis ffynhonnell", + "mapLoadError": "Methwyd llwytho map o '{{url}}'.", + "emptyMapLoadError": "Mae'r map o '{{url}}' yn wag.", + "privilegesUpdated": "Breintiau wedi'u diweddaru.", + "privilegesUpdatedError": "Digwyddodd gwall wrth ddiweddaru breintiau.", + "password": "Cyfrinair", + "passwordMinlength": "Rhaid i gyfrinair gynnwys o leiaf {{length}} nod!", + "passwordNotMatching": "Nid yw'r cyfrinair yn cyfateb!", + "passwordMaxlength": "Rhaid i gyfrinair gynnwys {{length}} nod ar y mwyaf!", + "passwordPattern": "Rhaid i gyfrinair gynnwys o leiaf 1 brif lythyren, 1 lythyren fach, 1 rhif ac 1 symbol. Mae'r symbolau yn cynnwys: `~! @#$%^&* () -_=+ [] {}\\ |; :'”,. <>/? ') ;", + "passwordOld": "Hen gyfrinair", + "passwordRepeat": "Ailadrodd cyfrinair", + "groupNameMaxlength": "Ni all enw'r grŵp fod yn fwy na 255 nod!", + "categoryNameMaxlength": "Ni all enw categori fod yn fwy na 255 nod!", + "portalNameMaxlength": "Ni all enw porth fod yn fwy na 255 nod!", + "portalIdMaxlength": "Ni all dynodwr porth fod yn fwy na 255 nod!", + "groupDescriptionMaxlength": "Ni all disgrifiad grŵp fod yn fwy na 255 nod!", + "groupEmailMaxlength": "Ni all e-bost grŵp fod yn fwy na 128 nod!", + "pol": "Pwyleg", + "por": "Português", + "poweredBy": "Wedi'i bweru gan GeoNetwork opensource", + "previous": "Blaenorol", + "profile": "Proffil defnyddiwr", + "recoverPassword": "Wedi anghofio eich cyfrinair", + "register": "Cofrestru", + "rememberMe": "Cofiwch fi", + "requestedProfile": "Proffil y gofynnwyd amdano", + "resetPassword": "Ailosod cyfrinair", + "resetPasswordTitle": "Ailosod cyfrinair {{user}}.", + "resetPasswordError": "Digwyddodd gwall wrth ailosod cyfrinair", + "rus": "Русский", + "save": "Cadw", + "scrollTop": "Sgroliwch i'r brig", + "selectAll": "Pob un", + "selectNone": "Dim un", + "send": "Anfon", + "startVersioning": "Dechreuwch Fersiynu", + "startVersioning-help": "Cadw hanes fersiwn (beta)", + "setMetadataGroup": "Newid grŵp metadata", + "setMetadataCategories": "Newid categorïau metadata", + "sendAComment": "Anfonwch sylw atom", + "sendPasswordLinkToMyEmail": "Anfonwch ddolen gyfrinair i'm e-bost", + "service": "Gwasanaeth", + "serviceType": "Math o wasanaeth", + "serviceTypes": "Mathau o wasanaethau", + "signIn": "Mewngofnodi", + "signedInAs": "Mewngofnodwyd fel", + "signout": "Allgofnodi", + "signoutDescription": "Rydych chi eisoes wedi mewngofnodi, cliciwch ar y botwm i allgofnodi.", + "somethingWrong": "Aeth rhywbeth o'i le!", + "south": "De", + "siblings": "Adnoddau cysylltiedig", + "sourceDatasets": "Setiau data ffynhonnell", + "isSourceOfDatasets": "Mae'n set ddata ffynhonnell o", + "spa": "Español", + "spatialRepresentationTypes": "Mathau o gynrychiolaeth", + "spatialRepresentationType": "Math o gynrychiolaeth", + "cl_spatialRepresentationType": "Math o gynrychiolaeth", + "state": "Cyflwr", + "staticMap": "Map statig", + "surname": "Cyfenw", + "title": "Teitl", + "to": "At", + "on": "ymlaen", + "off": "i ffwrdd", + "toggleScrollSpy": "Toglo llywio sgrolio", + "tur": "Türkçe", + "types": "Math o adnoddau", + "until": "Hyd nes", + "assignCategoryError": "Digwyddodd gwall wrth neilltuo categori '{{category}}'.", + "updatePassword": "Diweddaru", + "upload": "Uwchlwytho", + "uuid": "Dynodwr", + "url": "URL", + "resetUrl": "Ailosod URL", + "records": "cofnod(ion)", + "responsiblePartyEmail": "Cyswllt", + "call": "Ffonio", + "pleaseWait": "arhoswch os gwelwch yn dda", + "weblink": "Dolenni", + "downloads": "Lawrlwytho", + "maps": "Mapiau", + "resetOps": "Ailosod gweithrediad", + "addThoseOperations": "Uno wedi ei ddewis", + "replaceByThoseOperations": "Diweddaru", + "spatialExtent": "Maint gofodol", + "sessionIsAboutToBeCancelled": "Mae eich sesiwn ar fin cael ei chanslo!", + "sessionAlertMsg": "Olrheinwyd y gweithgaredd diwethaf {{StartEdat}} a bydd eich sesiwn yn dod i ben mewn {{WillBecancelledin}} e (yr amser anweithgarwch mwyaf yw {{length}} e). Dylech arbed eich gwaith os oes gennych unrhyw newidiadau heb eu cadw! Os na, byddwch yn cael eich datgysylltu yn fuan.", + "sessionWillExpireIn": "Bydd eich sesiwn yn dod i ben mewn {{remainingTime}} e. Cadwch eich gwaith!", + "sessionIsProbablyCancelled": "Mae'n debyg bod eich sesiwn wedi'i chanslo ar y gweinydd!", + "sessionAlertDisconnectedMsg": "Olrheinwyd y gweithgaredd diwethaf {{startedAt}} ac mae'n debyg bod eich sesiwn wedi dod i ben nawr (yr amser anweithgarwch mwyaf yw {{length}} e). Dylech ail-lwytho'r dudalen a gweld a yw eich sesiwn yn dal yn fyw neu fewngofnodi eto!", + "layersLoading": "Ychwanegu haenau at y map...", + "updateStatus": "Diweddaru statws cofnod", + "resourceContact": "Cyswllt ar gyfer yr adnodd", + "taskOwner": "Perchennog tasg", + "taskDueDate": "Dyddiad Dychwelyd", + "taskCloseDate": "Dyddiad cau", + "taskMessage": "Neges", + "restore": "Adfer", + "viewPreviousVersion": "Gweld Fersiwn Flaenorol", + "viewChangedVersion": "Gweld Fersiwn a Newidiwyd", + "triggerTask": "Tasg sbarduno", + "closeTask": "Cau tasg", + "enableWorkflow": "Galluogi llif gwaith", + "recordHistory": "Hanes", + "recordHistory-workflow": "Mae statws llif gwaith bellach yn {{text}}.", + "removeHistoryStep": "Dileu cam", + "workflowType": "Llif gwaith", + "taskType": "Tasg", + "eventType": "Digwyddiad", + "metadataViewLoadError": "Digwyddodd gwall wrth lwytho golwg metadata", + "metadataStatusUpdatedWithNoErrors": "Statws cofnod wedi'i ddiweddaru.", + "metadataStatusUpdatedErrors": "Digwyddodd gwall wrth ddiweddaru statws", + "changeCategoryError": "Digwyddodd gwall wrth ddiweddaru'r categori", + "statusLogMessage": "Neges", + "user": "Defnyddiwr", + "userDetails": "Manylion defnyddiwr", + "userPreferences": "Dewisiadau defnyddiwr", + "username": "Enw defnyddiwr", + "usernameHelp": "Enw i'w ddefnyddio wrth fewngofnodi", + "processError": "Gwall prosesu.", + "processFinished": "Prosesu wedi'i wneud.", + "processReport-done": "Nifer y cofnodion a broseswyd", + "processReportChangedRecords": "Newidiwyd", + "processReportErrors": "Cofnodion gyda gwall (au)", + "processReportFor": "Adroddiad ar gyfer y broses: ", + "processReportNoProcessFound": "Cofnodion gyda phroses heb ei diffinio yn eu safon", + "processReportNotChangedRecords": "Ni newidiwyd", + "processReportNotOwner": "Cofnodion na ellir eu golygu", + "processReportNullRecords": "Ni ddarganfuwyd cofnodion", + "processReportProcessedRecords": "Cofnodion wedi'u prosesu", + "processReportUnchangedRecords": "Cofnodion heb eu newid", + "processReportTotalRecords": "Cofnodion i'w prosesu", + "recordsProcessed": "cofnodion wedi'u prosesu", + "batchediting": "Golygu swp", + "west": "Gorllewin", + "year": "Blwyddyn", + "zip": "ZIP", + "validate": "Dilysu", + "validateInspire": "Dilysu INSPIRE o bell", + "delete": "Dileu", + "edit": "Golygu", + "duplicate": "Dyblygu", + "createChild": "Creu plentyn", + "privileges": "Breintiau", + "whoCanAccess": "Pwy sydd â mynediad", + "actions": "Camau gweithredu", + "reset": "Ailosod", + "stop": "Stop", + "isHarvested": "Cynaeafwyd", + "isHarvested-1": "Cynaeafwyd", + "isHarvested-0": "Lleol", + "y": "Ie", + "n": "Na", + "yes": "Ie", + "no": "Na", + "publishedForGroup": "Yn weladwy gan", + "_op0": "Yn weladwy gan", + "mdStatus": "Cynnydd llif gwaith", + "cl_status_text": "Statws", + "_status": "Statws", + "_schema": "Safon", + "checkCapabilityUrl": "Dychwelodd URL {{url}} statws '{{status}}'. Dylech wirio'r URL neu wirio bod y gwasanaeth yn rhedeg.", + "checkCapabilityUrlUnauthorized": "Dychwelodd URL {{url}} statws '{{status}}'. Mae hynny'n golygu bod y gwasanaeth hwn angen ei ddilysu. Ceisiwch gysylltu ag ef yn gyntaf.", + "failedToParseCapabilities": "Methwyd â dadansoddi'r ymateb gweithrediad GetCapability. Rhowch gynnig eto yn ddiweddarach neu cysylltwch â'r darparwr gwasanaeth.", + "checkProjectionUrlUnauthorized": "Dychwelodd URL {{url}} statws '{{status}}'. Mae hynny'n golygu bod y gwasanaeth hwn angen ei ddilysu. Ceisiwch gysylltu ag ef yn gyntaf.", + "checkProjectionUrl": "Dychwelodd URL {{url}} statws '{{status}}'. Gwiriwch yr URL a gwiriwch fod y gwasanaeth ar-lein.", + "failedToParseProjDefinition": "Methwyd â dosrannu'r ymateb diffiniad tafluniad. Rhowch gynnig eto yn nes ymlaen, cysylltwch â'r darparwr gwasanaeth, neu rhowch wybod am y mater hwn.", + "layerIsAlreadyInMap": "Mae haen '{{layer}}' o'r gwasanaeth '{{url}}' eisoes wedi'i llwytho yn y map cyfredol. Cliciwch yma i chwyddo.", + "layerStylesAvailable": " arddulliau haenau ar gael:", + "previewLegend": "Rhagolwg allwedd arddull.", + "layerWillBeAddedToMapButRecordNotFound": "Ni ddarganfuwyd cofnod cyfeirio UUID '{{uuid}}' '{{layer}}' o’r gwasanaeth '{{url}}' yn y catalog. Bydd haen yn cael ei hychwanegu at y map beth bynnag ac URL metadata yn cael eu canfod yn y ddogfen galluogrwydd.", + "layerNotfoundInCapability": "Haen ddim wedi’i chanfod '{{layer}}' yn y galluogrwydd {{type}}. Ceisiwch lwytho haen arall o'r gwasanaeth {{type}}?", + "layerNotAvailableInMapProj": "Nid yw'r gwasanaeth yn darparu'r haen yn y tafluniad map '{{proj}}'. Bydd yr haen yn cael ei hychwanegu at y map ond efallai na chaiff ei harddangos yn iawn.", + "layerCRSNotFound": "Nid yw'r haen yn darparu gwybodaeth system gyfeirio cydlynu. Gall hyn fod yn gysylltiedig â fersiwn WMS is na 1.3.0.", + "layerTileLoadError": "Aeth rhywbeth o'i le wrth lwytho teilsen ils '{{url | limitTo: 30}}... ' ar gyfer haen '{{layer}}'.", + "layerProtocolNotSupported": "Nid yw'r protocol canlynol yn cael ei gefnogi eto yn y syllwr map: {{type}}", + "getCapFailure": "Methodd cais WMS GetCapabilities", + "standards": "Safon metadata", + "documentStandard": "Safon metadata", + "metadataTypes": "Math o gofnod", + "_isTemplate": "Math o gofnod", + "_isHarvested": "Cynaeafwyd", + "isTemplatey": "Templed", + "isTemplates": "Cyfeiriadur", + "isTemplatet": "Templed ar gyfer cofnod cyfeiriadur", + "isTemplaten": "Cofnod", + "signinFailure": "Enw defnyddiwr neu gyfrinair anghywir.", + "featureType": "Math o nodwedd", + "featureTypeName": "Name", + "featureDefinition": "Diffiniad", + "featureCode": "Cod", + "featureIsAbstract": "Nodwedd haniaethol", + "featureAliases": "Enwau eraill", + "featureAttributeTable": "Tabl priodoleddau", + "attributeName": "Name", + "attributeDefinition": "Diffiniad", + "attributeCardinality": "Cardinoldeb:", + "attributeValues": "Rhestr o werthoedd", + "attributeType": "Math", + "attributeCode": "Cod", + "transfertPrivilegesFinished": "{{metadata}} cofnod(ion) a drosglwyddwyd.", + "valueName": "Name", + "xmlView": "Golwg XML", + "downloadRecord": "Lawrlwytho cofnod", + "manageRecord": "Rheoli cofnod", + "valueDefinition": "Diffiniad", + "toggleNavigation": "Llywio togl", + "valueCode": "Cod", + "addRecord": "Ychwanegu cofnod newydd", + "ImportRecord": "Mewngludo cofnodion newydd", + "directoryManager": "Rheoli cyfeiriadur", + "typeOfRecord": "Math o gofnod", + "load": "Llwytho", + "link-children": "Plant", + "link-parent": "Rhiant", + "link-hassources": "Mae'n set ddata ffynhonnell o", + "link-sources": "Setiau data ffynhonnell", + "link-siblings": "Brodyr a Chwiorydd", + "link-fcats": "Catalog nodwedd", + "link-associated": "Adnoddau cysylltiedig", + "indexAccessError": "Gwall yn ystod mynediad mynegai.", + "applyFilter": "Cymhwyso hidlydd cyfredol i'r map (adeiladu SLD i'w gymhwyso i'r haen WMS).", + "confirm": "IAWN", + "confirmDialogTitle": "Cadarnhau Gweithredu", + "close": "Cau", + "wpsSelectOutput": "Dewiswch allbwn...", + "drawGeometry": "Llunio", + "modifyGeometry": "Addasu", + "inputValueRequired": "angenrheidiol", + "inputValueRequiredError": "Mae angen gwerth ar gyfer y maes hwn", + "inputIsOverloaded": "Mae'r gwerth hwn wedi'i osod mewn hidlydd WFS", + "insertNewInputValue": "Ychwanegu gwerth ar gyfer y mewnbwn hwn", + "profileGraph": "Graff Proffil", + "_valid": "Dilysrwydd", + "dateToDate": "i", + "batchEditing": "Golygu swp", + "harvesters": "Cynaeafu", + "metadatasAndTemplates": "Metadata a thempledi", + "statisticsAndStatus": "Ystadegau a statws", + "reports": "Adroddiadau", + "reportLink": "Gweld adroddiad", + "reportGeneration": "Gwerthuso cofnod", + "classificationSystems": "Systemau dosbarthu", + "usersAndGroups": "Defnyddwyr a grwpiau", + "settings": "Gosodiadau", + "tools": "Offer", + "processesTool": "Defnyddiwch broses WPS", + "processesToolUrlDiscovery": "URL WPS", + "addLayersTool": "Ychwanegu haenau", + "layersTool": "Haenau rheolwyr", + "filterTool": "Nodweddion chwilio a hidlo", + "contextsTool": "Rheoli mapiau", + "printTool": "Argraffu map", + "legendTool": "Allwedd", + "mInteractionTool": "Mesurau", + "graticuleTool": "Arddangos graticiwlau", + "mousePositionTool": "Safle llygoden", + "syncAllLayersTool": "Cydamseru chwilio a phrif fap", + "drawVectorTool": "Anodi map", + "collapseAllFacetLabel": "Cwympo", + "expandAllFacetLabel": "Ehangu", + "resultXonY": "ymlaen", + "resolveCaptcha": "Datrys y captcha", + "resolutions": "Cydraniad", + "loginTitle": "Mewngofnodi", + "loginText": "Mewngofnodwch gyda'ch enw defnyddiwr a'ch cyfrinair i ychwanegu a golygu metadata.", + "siteLogo": "Logo", + "currentStatus": "Statws diwethaf", + "languageSwitcher": "Newidiwr iaith", + "userSearchNameMissing": "- enw ar goll -", + "featuredsearch": "Chwiliad dan sylw", + "avatar": "Avatar", + "first": "Cyntaf", + "createDoiForRecord": "Creu DOI ar gyfer y cofnod", + "createDoiForRecord-help": "Gellir creu DOI ar gofnodion cyhoeddus yn unig. Ar ôl ei greu mae'r DOI yn gysylltiedig â thudalen lanio ar gyfer y cofnod sy'n cael ei fewnosod yn yr adran dosbarthu cofnodion.", + "doiCreationTaskCheckAction": "Gwiriwch y rhag-amodau", + "doiCreationTaskCheckAction-help": "Gwiriwch ei bod yn bosibl cyflwyno cofnod i DataCite ar gyfer creu DOI. Mae terfynbwynt DataCite API wedi'i ffurfweddu yn y gosodiadau catalog, gyda DataCite mae’n ofynnol i rai meysydd gael eu poblogi, rhaid i'r cofnod fod yn gyhoeddus a darparu trosiad i'r fformat DataCite.", + "doiCreationTaskCreateAction": "Creu DOI", + "doiCreationTaskUpdateAction": "Diweddaru DOI", + "doiViewLink": "Gwirio URL DOI", + "doi": "DOI", + "doiCheckExistingMetadata": "Gwirio dogfen metadata DataCite", + "doiViewMetadata": "Metadata DataCite", + "doiCreationTaskCreateAction-help": "Creu’r DOI ar gyfer y cofnod a chau'r dasg", + "editorHome": "Bwrdd golygu", + "adminHome": "Crynodeb", + "allAdmins": "Gweinyddwyr", + "group": "Grŵp", + "sortLinksBy": "Trefnu yn ôl ", + "link-protocol": "Protocol", + "link-title": "Teitl", + "link-lUrl": "Url", + "showOptions": "Dangos opsiynau", + "projectionSwitcher": "Newidiwr Tafluniadau", + "projection": "Tafluniad", + "listTypeBlocks": "Newid i restr sydd wedi’i flocio", + "listTypeLarge": "Newid i restr fawr", + "listTypeSmall": "Newid i restr fach", + "layersWithWhiteSpaces": "Mae rhai haenau ar y map hwn yn cynnwys mannau gwyn ar eu henw. Efallai na fydd haenau â mannau gwyn yn cael eu hargraffu'n iawn.", + "unselected": "heb ei ddewis", + "indexingTaskUndefined": "Tasg mynegeio anhysbys (cyflwr annormal)", + "indexingTaskRunning": "Mynegeio {{total}} cofnod ...", + "indexingTaskFinished": "Mynegeio wedi gorffen, {{total}} cofnod wedi'u prosesu", + "indexingTaskFinishedWithErrors": "Mynegeio wedi gorffen, {{total}} cofnod wedi'u prosesu gyda {{errors}} gwall", + "indexingTaskCanceled": "Mynegeio wedi'i ganslo", + "inspireValidationTaskUndefined": "Tasg ddilysu INSPIRE anhysbys (cyflwr annormal)", + "inspireValidationTaskRunning": "Dilysu INSPIRE {{total}} cofnod...", + "inspireValidationTaskFinished": "Dilysu INSPIRE wedi gorffen, {{total}} cofnod wedi'u prosesu", + "inspireValidationTaskFinishedWithErrors": "dilysu INSPIRE wedi gorffen, {{total}} cofnod wedi'u prosesu gyda {{errors}} gwall", + "inspireValidationTaskCanceled": "Dilysu INSPIRE wedi'i ganslo", + "taskUndefined": "Cyflwr anhysbys (cyflwr annormal)", + "taskProbable": "Cyflwr tebygol", + "analyseRecordRunning": "{{total}} cofnod i'w dadansoddi…", + "analyseRecordFinished": "Dadansoddwch dros, {{total}} cofnod wedi'u prosesu", + "analyseRecordFinishedWithErrors": "Dadansoddwch dros, {{total}} cofnod wedi'u prosesu gyda {{errors}} gwall", + "testLinkRunning": "{{cyfanswm}} dolen i'w profi...", + "testLinkFinished": "Profi cysylltiadau dros, {{total}} doleni wedi'u profi", + "mdStatusButton-1": "Cyflwyno", + "mdStatusButton-2": "Cymeradwyo", + "mdStatusButton-3": "Ymddeol", + "mdStatusButton-4": "Cyflwyno", + "mdStatusTitle-draft-to-submitted-editor": "Cyflwyno i'w adolygu", + "mdStatusTitle-draft-to-submitted-reviewer": "Cyflwyno i'w adolygu", + "mdStatusTitle-retired-to-draft-editor": "Adfer cofnod i statws drafft", + "mdStatusTitle-retired-to-draft-reviewer": "Adfer cofnod i statws drafft", + "mdStatusTitle-submitted-to-draft-editor": "Canslo cyflwyniad cymeradwyaeth", + "mdStatusTitle-submitted-to-draft-reviewer": "Gwrthod cyflwyniad cymeradwyo", + "mdStatusTitle-submitted-to-approved-editor": "Cymeradwyo metadata", + "mdStatusTitle-submitted-to-approved-reviewer": "Cymeradwyo metadata", + "mdStatusTitle-approved-to-retired-editor": "Ymddeol metadata", + "mdStatusTitle-approved-to-retired-reviewer": "Ymddeol metadata", + "mdStatusTitle-draft-to-approved-reviewer": "Cymeradwyo metadata yn uniongyrchol", + "mdStatusWorkflowWithDraft": "{{metadataStatus}} (Copi gweithio yw {{draftStatus}})", + "cancel": "Diddymu", + "workflow": "Llif gwaith", + "metadataPublished": "Cyhoeddwyd metadata.", + "metadataPublishedError": "Digwyddodd gwall wrth gyhoeddi metadata.", + "metadataUnpublished": "Metadata heb ei gyhoeddi.", + "metadataUnpublishedError": "Digwyddodd gwall wrth ddad-gyhoeddi metadata.", + "categoriesUpdated": "Categorïau wedi'u diweddaru.", + "warnPublishDraft": "Wrth gyhoeddi cofnodion gyda llif gwaith wedi'i alluogi, bydd y statws yn newid i 'Cymeradwyo'. Ydych chi'n siŵr eich bod am barhau?", + "cancelWorkingCopy": "Canslo copi gweithio", + "deleteWorkingCopyRecordConfirm": "Ydych chi eisiau cael gwared o’r copi gwaith '{{resourceTitle}}' mewn gwirionedd?", + "workingCopy": "Copi gweithio", + "onTheWeb": "Mwy o wybodaeth ar-lein", + "pdfReportTocTitle": "Cynnwys", + "metadataValidated": "Metadata wedi'i ddilysu.", + "wmtsLayerNoUsableMatrixSet": "Ni ellid ychwanegu'r haen WMTS. Efallai y bydd hyn oherwydd nad oes yr un o'r tafluniadau a hysbysebir yn y gwasanaeth yn cyfateb i unrhyw un o dafluniadau hysbys y cais.", + "chooseRegion": "Dewiswch ranbarth", + "clickToDrawABox": "Cliciwch unwaith i alluogi rheolaeth a llunio blwch. Cliciwch eto i stopio tynnu llun.", + "drawRectangle": "Lluniwch y maint", + "clickToClearMapBox": "Cliciwch i glirio'r blwch map.", + "clearRectangle": "Maint clir", + "unselectChoiceNotAllowedTitle": "Dad-ddewis dewisiadau", + "unselectChoiceNotAllowed": "Ni ellir dileu rhai dewisiadau: {{notAllowedChoices}}", + "searchOptions": "Opsiynau chwilio", + "options": "Opsiynau", + "metadataInfoReport": "Gwybodaeth metadata", + "metadataErrorReport": "Gwallau metadata", + "copyToClipboard": "Copïwch y testun i'r clipfwrdd", + "textCopied": "Mae testun wedi'i gopïo i'r clipfwrdd.", + "metadataApproved": "Metadata wedi'i gymeradwyo.", + "metadataSubmitted": "Metadata wedi’i gyflwyno.", + "batchApproveTitle": "Cymeradwyaeth metadata swp", + "batchApproveInfo": "Mae'r opsiwn hwn yn cymeradwyo'r metadata a ddewiswyd sy'n eiddo i'r defnyddiwr. Yn ddiofyn, dim ond y metadata yn y statws 'cyflwynwyd' sy'n cael ei gymeradwyo, dewiswch yr opsiwn isod i gymeradwyo'n uniongyrchol y metadata nad yw yn y statws 'cyflwynwyd'.", + "batchApproveDirect": "Cymeradwyo'r metadata heb ei gwneud yn ofynnol bod mewn statws 'cyflwynwyd'", + "facet-mdStatus": "Cynnydd llif gwaith", + "skipLink": "Sgipio a mynd i'r cynnwys", + "batchSubmitTitle": "Cyflwyno metadata swp", + "batchSubmitInfo": "Mae'r opsiwn hwn yn cyflwyno'r metadata a ddewiswyd sy'n eiddo i'r defnyddiwr.", + "reviewerNotAllowedPublish": "Ni chaniateir i'r adolygydd gyhoeddi'r metadata", + "reviewerNotAllowedUnpublish": "Ni chaniateir i'r adolygydd ddad-gyhoeddi'r metadata", + "reviewerNotAllowedPublishUnpublish": "Ni chaniateir i'r adolygydd gyhoeddi / dad-gyhoeddi'r metadata", + "missingTitle": "Teitl coll", + "mapLegend": "Allwedd", + "quality": "Ansawdd", + "download": "Lawrlwytho", + "links": "Dolenni" +} \ No newline at end of file diff --git a/web-ui/src/main/resources/catalog/locales/cy-editor.json b/web-ui/src/main/resources/catalog/locales/cy-editor.json new file mode 100644 index 00000000000..4bccc81eafe --- /dev/null +++ b/web-ui/src/main/resources/catalog/locales/cy-editor.json @@ -0,0 +1,450 @@ +{ + "featureCatReplace": "Replace existing feature catalog?", + "add-extent-from-geokeywords": "Compute extent from keywords", + "add-extent-from-geokeywords-help": "Search all keywords from thesaurus of type 'place' and add matching extents.", + "addCRS-help": "Add new CRS", + "contactId": "Contact identifier", + "contactSetForMetadata": "Cysylltwch ar gyfer y metadata", + "contactSetForResource": "Cyswllt ar gyfer yr adnodd", + "contactReplace": "Replace existing contact", + "contactRole": "Contact role", + "addConcept": "Add concept to keyword list", + "moveToTopConcept": "Display top concepts", + "addContact": "Add contact", + "addContactAsLink-help": "Add a link to the contact in the contact directory. The contact will be updated if updated in the directory.", + "addContactAsText-help": "Default mode. Add the contact into the record.", + "addContactUsingXLink": "Add contact (using XLink)", + "addFromDictionnary": "Add from dictionary", + "addFromEPSGdb": "Add from EPSG database", + "addFromThesaurus": "Choose keywords from thesaurus", + "addKeywordNotFromThesaurus": "Add new keywords", + "addKeywordNotFromThesaurusHelp": "Add free text keyword. Populate this information only if you can't find appropriate keywords in the proposed thesauri.", + "addLinks": "Add links", + "addOnlinesrc": "Add online resource", + "updateOnlinesrc": "Update link", + "addOnlinesrcTitle": "New link", + "addThumbnail": "Add a thumbnail", + "addThumbnailTitle": "Add an overview to the current metadata", + "allChangesCanceled": "All changes cancelled.", + "allChangesSaved": "All changes saved", + "allLanguage": "Pob un", + "allLanguage-help": "Display all languages", + "applySuggestion": "Apply suggestion", + "assignToCatalog": "Assign to current catalog", + "assignToCategory": "Assign to category", + "assignToGroup": "Assign to group", + "associationType": "Association type", + "chooseContactRole": "Choose contact role", + "chooseEntry": "Search directory", + "clickToAddResource": "Click to select this resource", + "externalResourceManagement": "Click to go to external resource manager", + "beforeUnloadEditor": "You may have unsaved changes since last save {{timeAgo}}.", + "fieldIsRemoved": "This field will be removed", + "editRecords": "Edit selection", + "removeField": "Remove this field", + "addXpath-help": "Updating records using XPath needs careful definition of the changes. A change is defined by:", + "addXpathTitle": "an optional title", + "addXpathXpath": "a mandatory XPath to point to the element(s) to update. XPath may contain a filter expression.", + "addXpathInsertMode": "a type of update", + "xpath": "XPath", + "xpathValue": "Text or XML value", + "gn_create": "Create the element", + "gn_add": "Add the element or value (in all matching parents) or create it", + "gn_replace": "Replace the element or value (in all matching parents)", + "gn_delete": "Remove all matching elements", + "addXpathValue": "a value, which could be an XML snippet if the mode is not 'delete'", + "chooseASet": "1. Choose a set of records", + "defineEdits": "2. Define edits", + "confirmAndSave": "3. Apply changes", + "replaceColumns": "Replace existing columns", + "columnListAsCsv": "Column list as text", + "columnListSeparator": "Field separator", + "column": "Column", + "processNotFound": "Process not found", + "replaceListOfValues": "Replace existing list of values", + "listOfValuesAsCsv": "Value list as text", + "listOfValuesSeparator": "Field separator", + "changesToApply": "Changes to apply:", + "resetChanges": "Reset changes", + "createSetFromSearch": "Search and select records or", + "chooseAnExistingSet": "choose a predefined set", + "chooseASetOfRecordHelp": "Select one or more records before defining the elements to update. Only records that you can edit are proposed.", + "defineEditsHelp": "Depending on the type of records selected, the list of fields that you can update may change. When editing a mandatory field like title, the field is updated. When editing a field which can contain multiple values, the new value is added.", + "recordsInSelection": "record(s) in selection.", + "displaySelectionOnly": "View selection only", + "aboutToUpdateTheFollowing": "The following records will be updated:", + "updateDateStamp": "Update the modification date in the metadata document (for example, gmd:dateStamp for ISO 19139)", + "resetSearchToDisplayAll": "Click to display selected records. Use reset to display all.", + "availableSet": "Available set", + "noChangesToApply": "Define changes first in order to update selected records.", + "selectRecordsToEdit": "Select one or more records to edit.", + "tooManyRecordInSelForSearch": "There are too many (ie. {{count}}) records in current selection to be displayed here as a full list. But the process will run on the current selection (see first tab).", + "advancedBatchEditMode": "XPath mode", + "cancel": "Diddymu", + "cancelChangesFromNow": "Cancel all changes since the start of the editing session {{timeAgo}}.", + "cancelling": "Cancelling ...", + "chooseZeroOrMoreLayer": "Optionally, choose one or more layers from the service to be added in the distribution:", + "chooseZeroOrMoreLayerFromService": "Choose the layer published in this service corresponding to the selected record:", + "serviceContainsManyUrl": "Choose one URL in the {{count}} provided by", + "searchAservice": "Select a service from the catalog", + "searchAnApplication": "Select an application from the catalog", + "check": "Check", + "value": "Value", + "unit": "Unit", + "linkToServiceWithoutURLError": "No WMS URL found in that service. Choose a service with a WMS URL to be able to choose a layer.", + "linkToServiceError": "An error occurred when linking the dataset with the service", + "chooseAProj": "Select the projection to use to display coordinates (note: coordinates are always saved in the metadata record in WGS84).", + "chooseAType": "Choose a type", + "chooseOnlinesrc": "Choose or drop resource here", + "closeEditor": "Save & close", + "conceptBroader": "is more general than", + "conceptNarrower": "is more specific than", + "conceptRelated": "is related to", + "continent": "Continent", + "copyPaste": "Copy/Paste", + "country": "Gwlad", + "createA": "Create a", + "createChildOf": "Create a child record", + "createCopyOf": "Create copy", + "createMetadata": "Creu", + "createMetadataError": "Create metadata error", + "createMetadataForGroup": "Create and publish for group editors", + "createMetadataForGroup-help": "The record will be editable by all members of the group", + "createMetadataUniformResourceName": "Metadata Uniform Resource Name", + "createNewMetadata": "Add a new record", + "createSmall": "Create small", + "cantAddLinkToDataset": "Can't add link to target dataset. You probably can't edit that record. Updating the service only.", + "current": "current", + "datasetFound": "Dataset found and added to map preview", + "datasetNotFound": "Dataset not found - 404", + "datasets": "Datasets", + "dateMode": "Date or date time", + "description": "Description", + "directory": "Folder path", + "directoryEntries": "Entries", + "error": "Gwall", + "errors": "Error(s)", + "serviceDetachedToCurrentRecord": "Service detached from current record", + "featureCatalog": "Catalog nodwedd", + "file": "File", + "fileType": "Type of file", + "fromTemplate": "O", + "esriRestServiceUrl": "ESRI REST URL", + "generateUUID": "Generate UUID for inserted metadata", + "geopublisher": "Publish as WMS, WFS, WCS", + "gmd:CI_ResponsibleParty": "Organizations & contacts", + "cit:CI_Responsibility": "Organizations & contacts (ISO19115-3)", + "mdq:DQ_AbsoluteExternalPositionalAccuracy": "External position accuracy", + "mdq:DQ_DomainConsistency": "Domain consistency", + "mrd:MD_Format": "Fformatau", + "gmd:MD_Format": "Fformatau", + "gmd:EX_Extent": "Extents", + "gex:EX_Extent": "Extents", + "mcc:MD_BrowseGraphic": "Logos", + "gmd:MD_Distribution": "Online resources", + "mco:MD_Constraints": "Cyfyngiadau", + "mco:MD_LegalConstraints": "Cyfyngiadau cyfreithiol", + "mco:MD_SecurityConstraints": "Cyfyngiadau diogelwch", + "hasFeatureCatalog": "Using this feature catalog", + "importCPResult": "One record imported. Record identifier is: {{id}}
      UUID: {{uuid}}.", + "importEntry": "Import directory entry", + "importFromDir": "Import a set of files from a folder on the server", + "importFromDirReport": "{{success}}/{{records}} record(s) imported successfully in {{time}} seconds.", + "importRecords": "Import", + "importReport": "Import report", + "unsupportedFileExtension": "Only files with XML, ZIP or MEF extensions are supported.", + "inGroup": "In", + "initiativeType": "Initiative type", + "keywordInsertMode": "Insert keywords as", + "linkService": "Link service to metadata", + "linkToDataset": "Link to a dataset", + "linkToDatasetTitle": "Link a dataset to the current metadata", + "linkToFeatureCatalog": "Link to a feature catalog", + "linkToFeatureCatalogTitle": "Link a feature catalog to the current metadata", + "linkToParent": "Link to parent", + "linkToParentTitle": "Link a parent metadata record to the current metadata", + "linkToService": "Link to a service", + "linkToServiceTitle": "Link a service to the current metadata", + "linkToSibling": "Link to other resources", + "linkToSiblingTitle": "Link a resource to the current metadata", + "linkToSource": "Link to a source dataset", + "linkToSourceTitle": "Link a source dataset to the current metadata", + "linkUrl": "URL to remove", + "fileStore": "Metadata file store", + "filestoreUploadAFile": "or upload a new file", + "filestoreChooseAFile": "or choose a file from the filestore", + "openResource": "Open resource", + "linkMetadata": "Link metadata", + "setResourceStatus": "Change resource status. This will not update references which may be contained in the metadata document.", + "resourceUploadError": "Resource upload error", + "deleteResource": "Delete resource. This will not remove references which may be contained in the metadata document.", + "makeConceptCurrent": "Make this concept the current concept", + "mefFile": "MEF", + "metadataContent": "Metadata content", + "metadataNotFound": "Warning! Requested metadata with id {{id}} not found. Create a new one ?", + "metadataType": "Math o gofnod", + "hasDqMeasures": "With quality measures", + "generateThumbnail": "Generate thumbnail", + "generateThumbnail-help": "Thumbnail will be created and saved in the filestore. Use the filestore to add the thumbnail in the metadata record.", + "createAThumbnail": "Generate thumbnail using the view service", + "noTemplatesAvailable": "Warning! There is no templates available in the catalog. You should add or import some.", + "none": "Dim un", + "notFoundInThesaurus": "Warning! Keywords {{invalid}} not found in thesaurus. Others {{found}} were found in the thesaurus. 2 reasons:
      • keywords in this record are in a language that is not in the current user interface language
      • keywords does not exists in the thesaurus
      Those keywords will not be modified by this editing session unless you remove this thesaurus section.", + "ocean": "Ocean", + "isPublishedToAll": "Public", + "oneLanguage": "One", + "oneLanguage-help": "Choose one language to edit using the selector", + "onlinesrc": "Online resources", + "removeOnlinesrcConfirm": "Do you really want to remove the link to '{{url}}'?", + "removeThumbnailConfirm": "Do you really want to remove the overview '{{url}}'?", + "removeFileFromStoreConfirm": "Do you really want to remove '{{url}}' from the file store? This will not remove references to this file in the metadata record. You have to update the record manually.", + "onlineChooseDocType": "Link a", + "onlineDiscover": "Discover the resource", + "onlineDiscoverThumbnail": "Overview for the full resource or a subset", + "onlineDiscoverThumbnail-help": "Static image describing the resource", + "onlineDiscoverInApp": "Application using the resource", + "onlineDiscoverInApp-help": "eg. Thematic map viewer using this resource", + "onlineDiscoverMap": "Map of the resource", + "onlineDiscoverWMS": "View service WMS", + "onlineDiscoverWMS-help": "WMS service URL to be used in desktop GIS or other app", + "onlineDiscoverINSPIREView": "View service INSPIRE", + "onlineDiscoverINSPIREView-help": "WMS service conformant to INSPIRE technical guidelines on view service", + "onlineDiscoverWMTS": "View service WMTS", + "onlineDiscoverWMTS-help": "WMTS service URL to be used in desktop GIS or other app serving pre-rendered georeferenced map tiles over the Internet", + "onlineDiscoverArcGIS": "View service ArcGIS", + "onlineDiscoverArcGISTiled": "View service ArcGIS (Tiled)", + "onlineDiscoverArcGIS-help": "ArcGIS service URL to be used in desktop GIS or other app", + "onlineDiscoverKML": "View KML", + "onlineDiscoverKML-help": "KML or KMZ file to be used in Google apps to view data", + "localNetwork": "Download (local network)", + "localNetworkVectorFile": "Vector file", + "localNetworkRasterFile": "Raster file", + "localNetworkDBOracle": "Oracle", + "localNetworkDBPostgis": "PostGIS", + "onlineDownload": "Lawrlwytho", + "onlineDownloadKML": "Download as KML", + "onlineDownloadKML-help": "KML or KMZ file to be used in Google apps to download data", + "onlineDownloadFile": "Download a copy", + "onlineDownloadWWW": "Download from website", + "onlineDownloadWFS": "Download service WFS", + "onlineDownloadINSPIRE": "Download service INSPIRE", + "onlineDownloadINSPIREATOM": "Download from ATOM feed", + "onlineDownloadWCS": "Download service WCS", + "onlineUse": "Use the resource", + "onlineUseFcats": "Resource data model", + "onlineUseFcats-help": "Data model (or feature catalog) could be described directly in the metadata record using the content tab or by creating a link to a document (eg. pdf) from here.", + "onlineUseDQReport": "Data quality report", + "onlineUseDQTOR": "Data quality specification", + "onlineUseDQProdReport": "Data quality production report", + "onlineUseLegend": "Legend for the resource", + "onlineUseLegendLYR": "Style for the resource for ArcGIS (LYR)", + "onlineUseStyleSLD": "Style for the resource using SLD", + "onlineUseStyleQML": "Style for the resource for QGIS", + "onlineUseLimitation": "Use limitation", + "onlineAccessLimitation": "Access limitation", + "onlinesrcUploadHelp": "Drag & drop one resource here", + "onlineMore": "More information", + "onlineMoreWWW": "Website about the resource", + "onlineMoreFile": "Document about the resource", + "onlyErrors": "Show only errors", + "areYouSureToAddALinkWithError": "Current URL could not be retrieved by the catalog (may be an issue with the catalog proxy). You should check the link manually before adding it to the record?", + "addLinkAnyway": "Add link anyway", + "updateLinkAnyway": "Update link anyway", + "onlineFunction": "Swyddogaeth", + "applicationProfile": "Application profile", + "fileStoreNoFileMatching": "No file found matching filter ({{filter}}). Upload one if needed.", + "other": "Arall", + "onlineResourceName": "Resource name", + "protocol": "Protocol", + "runServiceError": "Error happened while calling service", + "overwriteFile": "Overwrite file if it exists", + "overview": "Trosolwg", + "overviews": "Overviews", + "overwrite": "Overwrite metadata with same UUID", + "parentMd": "Parent Metadata", + "print_layout": "Cynllun", + "print_scale": "Graddfa", + "process": "Process", + "publish": "Cyhoeddi", + "publishIn": "Publish {{layer}} in", + "publishSuccess": "Successful publication. Layer added to map preview", + "recommendedValues": "Recommended values", + "recursive": "Also search in subfolders", + "resetKeywordsAnyway": "Remove all keywords", + "resetInvalidKeywords": "Remove not found keywords only", + "saveAtimeAgo": "Last edit was {{timeAgo}}.", + "saveMetadataError": "Error while saving metadata. You should reload the editor.", + "saveMetadataSuccess": "All changes saved.", + "saveMetadata": "Save metadata", + "saveDraft": "Save draft", + "draftCanNoBeATemplateOrMinorEdit": "A draft cannot be a template and cannot use minor edit mode.", + "saveTemplate": "Save template", + "saveAsMetadata": "Save as metadata", + "saveAsTemplate": "Save as template", + "saveAndApprove": "Save and Approve", + "saveAndSubmit": "Save and Submit", + "saving": "Saving ...", + "schematron-rules-geonetwork": "Recommendations", + "schematron-rules-inspire": "INSPIRE rules", + "schematron-rules-iso": "ISO rules", + "searchACRS": "or search for a coordinate system ...", + "searchAreport": "Search for a quality report ...", + "searchAlogo": "Search for a logo ...", + "searchAextent": "Search for an extent ...", + "searchAresourceConstraints": "Search for a constraint statement ...", + "searchAconstraint": "Search for a constraint ...", + "searchAcontact": "Search for organisation or contact ...", + "searchAnOrganisation": "Search for an organisation ...", + "searchAformat": "Search for a format ...", + "setAndReplaceExtent": "Replace existing extent", + "setCRS": "Set coordinate reference system", + "setDynamicGraphicOverview": "Set graphic overview (using GetMap request URL)", + "setExtent": "Set extent", + "share": "Share", + "share-help": "Define who can view this record", + "sharingSettings": "Sharing settings", + "singleFile": "XML", + "suggestions": "Suggestions", + "removeThumbnail": "Remove thumbnail", + "thumbnailMaker": "Create thumbnail", + "thumbnailMaker-help": "All WMS layers registered in the metadata record are added to the map. Choose a layout, a scale, zoom to the area of interest to generate the thumbnail.", + "to-iso19139-keyword": "text (recommended)", + "to-iso19139-keyword-as-xlink": "link", + "to-iso19139-keyword-as-xlink-help": "Useful for creating a link between the record and the thesaurus. An xlink:href attribute is added to the gmd:descriptiveKeywords element.", + "to-iso19139-keyword-help": "Default mode. Insert keyword as simple text using gco:CharacterString element.", + "to-iso19139-keyword-with-anchor": "anchor", + "to-iso19139-keyword-with-anchor-help": "Useful for having an hyperlink on the keyword which usually is the keyword identifier. A gmx:Anchor element is used for each keywords.", + "to-iso19115-3.2018-keyword": "text", + "to-iso19115-3.2018-keyword-as-xlink": "link", + "to-iso19115-3.2018-keyword-as-xlink-help": "Useful for creating a link between the record and the thesaurus. An xlink:href attribute is added to the gmd:descriptiveKeywords element.", + "to-iso19115-3.2018-keyword-help": "Default mode. Insert keyword as simple text using gco:CharacterString element.", + "to-iso19115-3.2018-keyword-with-anchor": "anchor", + "to-iso19115-3.2018-keyword-with-anchor-help": "Useful for having an hyperlink on the keyword which usually is the keyword identifier. A gcx:Anchor element is used for each keywords.", + "toggleAttributes": "More details", + "toggleTooltips": "Tooltips", + "unknownType": "Eraill", + "unpublish": "Heb ei gyhoeddi", + "unpublishSuccess": "Successful unpublication", + "unsupportedSchemaAlert": "Metadata {{title}} is using {{schema}} standard. This is not supported by the editor. Return to editor board.", + "uploadFile": "Upload a file from your computer", + "uuidAction": "Record identifier processing", + "validate-help": "Check record against standard validation rules", + "validate-inspire": "Inspire validation", + "validate-inspire-help": "Check record against inspire validation rules", + "validationReport": "Validation", + "runValidation": "Run validation check", + "validationServiceError": "Server error", + "validationServiceErrorDetail": "Please check server's log files for more information.", + "fixedOnTop": "Always on top", + "whoCanAccess": "Pwy sydd â mynediad", + "wmsServiceUrl": "URL Gwasanaeth", + "xmlSnippet": "XML snippet", + "xsltToApply": "Apply XSLT conversion", + "yearAndMonthMode": "Year and month", + "yearMode": "Year only", + "uploadFileByUrl": "Upload a file from URL", + "noFileSelected": "Choose a file to load!", + "yourMetadata": "Your metadata", + "searchKeyword": "Chwilio...", + "searchTopicCategory": "Chwilio...", + "searchOrTypeKeyword": "Type or search ...", + "tagsAllowed": "tag(s) allowed", + "suggestionListError": "Oops, something went wrong when retrieving suggestions!", + "showHideErrors": "Show / hide errors", + "showHideSuccess": "Show / hide success", + "chooseAFragment": "Select element to add", + "chooseASourceRecord": "Choose a source record to add element from", + "sourceRecord": "Source record", + "deleteField": "Delete this field", + "deleteFieldSet": "Delete this fields set", + "toggleSection": "Toggle expand / collapse", + "editorBoardInfo": "Create or import new record from this page. Quickly access and manage all metadata records.", + "minorEditHelp": "Do not update timestamp on save", + "minorEdit": "Minor edit", + "notEvaluated": "Not evaluated", + "notConformant": "Not conformant", + "capabilitiesParseError": "Error parsing WMS capabilities", + "conformant": "Conformant", + "currentConcept": "Current concept", + "parentConcept": "Parent concept", + "moreSpecificConcept": "More specific concepts", + "associatedConcept": "Associated concepts", + "xsd": "Schema validation", + "youAreNotMemberOfAnyGroup": "You are not editor of any groups, so you can't create new records. Ask the catalogue administrator to set your role to editor in at least one group.", + "linkToXmlTab": "Some kind of errors can be fixed using XML editor.", + "directoryManagerSubtitle": "This screen allows you to edit directory entries such as contacts, formats, etc. including template management.", + "directoryManagerSubtitleImport": "Enter here the full XML content of an entry to import it to the database.", + "directoryManagerError": "Error when importing the full XML", + "directoryEntryTypes": "Entry Types", + "directoryTemplates": "Templates", + "addNewDirectoryEntry": "Add New Entry", + "addNewDirectoryTemplate": "Create a template", + "directoryEntryFromScratch": "Create an entry from scratch", + "directoryEntryInfo": "Owner: {{ownerName}}, updated on {{updateDate}}", + "directoryEntryPermissions": "Permissions", + "directoryEntryValidate": "Dilysu", + "directoryEntryReject": "Reject", + "directoryEntryToTemplate": "Convert to template", + "directoryEntryAssociatedMetadata": "Associated Metadata", + "directoryEntryEditor": "Entry Editor", + "directoryEntryEditing": "Currently editing:", + "directoryEntry-removeError-referenced": "You can't remove this subtemplate cause it is used in some records.", + "directoryManagerMode-newEntry": "New Entry", + "directoryManagerMode-editEntry": "Edit Entry", + "directoryManagerMode-newTemplate": "New Template", + "directoryManagerMode-editTemplate": "Edit Template", + "notADirectoryEntry": "Only directory entries can be converted to templates", + "notADirectoryEntryTemplate": "This entry is not a directory entry template.", + "saveAsDirectoryEntry": "Save as directory entry", + "confirmDeleteEntry": "Are you sure you want to delete this entry?", + "filterBy": "Filter by...", + "selectFormatAndProjection": "Select a format and projection system", + "inputGeometryText": "Geometry Text Input", + "inputGeometryIsValid": "The input geometry is valid and is now visible on the map.", + "inputGeometryIsInvalid": "An error was found in the input geometry:", + "inputGeometryHint": "Paste a geometry here in the selected format and projection system.", + "inputGeometryReadOnlyHint": "This geometry is read-only.", + "selectKeyword": "Ychwanegu geiriau allweddol", + "saveLinkToSibling": "Save link to other resource", + "addTheFollowingLinkInDataset": "Add the following link to the dataset (as an online source in the distribution section):", + "confirmCloseInvalidTitle": "Confirm editor close", + "confirmCloseInvalidMetadata": "The current metadata has been found to be invalid. Closing the editor will cause it to be unpublished (this can be changed in the application settings).

      Are you sure you want to proceed?", + "hotkeyDirectory": "Manage directories (eg. contact)", + "hotkeyImportRecord": "Mewngludo cofnodion newydd", + "hotkeyAddRecord": "Ychwanegu cofnod newydd", + "hotkeyBatchEdit": "Golygu swp", + "hotkeyEditorBoard": "Bwrdd golygu", + "cancelMetadataError": "Error, please reload the page", + "showMessages": "Show messages:", + "hotkeyAccessManager": "Access rights manager", + "searchByTitle": "Filter by title", + "accessManagerTitle": "Access rights by records", + "accessManagerChooseGroups": "Choose one or more groups", + "accessManagerChooseOperations": "Choose one or more operation types", + "status-no-status": "Workflow not active", + "badGmlProjectionCode": "The geometry projection {{srsName}} defined in the XML is not valid. Please edit the xml to fix the srs name or enter a new geometry.", + "draft": "Copi gweithio", + "link": "Link", + "link-text": "Link text", + "confirmCancelEdit": "Do you want to cancel all changes and close the editor?", + "allowEditGroupMembers": "Allow group editors to edit", + "wmsSelectedLayers": "Selected layers", + "wmsSelectedLayersNone": "No layers selected", + "remoteAssociatedMetadataTitlePlaceholder": "Remote associated metadata title", + "distributionPanel": "Distributions", + "onlineDiscoverWMSTitle": "Link to a WMS service", + "onlineDiscoverArcGISTitle": "Link to an ESRI service", + "suggest-add-info-from-wms": "Update with view service info (bbox, crs, overview)", + "suggest-create-featurecatalogue-from-wfs": "Add or replace data model", + "wmsLayerName": "Layer name", + "addOnlinesrc#API": "Add API", + "addOnlinesrc#API-help": "eg. view service, REST API", + "addOnlinesrc#onlineDownload|localNetwork": "Add download", + "addOnlinesrc#onlineDownload|localNetwork-help": "eg. file, download service, local network links", + "addOnlinesrc#onlineUseLegend": "Add portrayal", + "addOnlinesrc#onlineUseLegend-help": "eg. LYR, QML, SLD files", + "addOnlinesrc#links": "Add links", + "addOnlinesrc#links-help": "eg. web links", + "addOnlinesrc#quality": "Add quality info", + "addOnlinesrc#quality-help": "eg. specification, reports" +} \ No newline at end of file diff --git a/web-ui/src/main/resources/catalog/locales/cy-gnui.json b/web-ui/src/main/resources/catalog/locales/cy-gnui.json new file mode 100644 index 00000000000..1125cff8424 --- /dev/null +++ b/web-ui/src/main/resources/catalog/locales/cy-gnui.json @@ -0,0 +1,28 @@ +{ + "dropFile": "", + "facets.block.title.OrgForResource": "Organisation", + "facets.block.title.availableInServices": "Available for", + "facets.block.title.cl_hierarchyLevel.key": "Resource type", + "facets.block.title.cl_maintenanceAndUpdateFrequency.key": "Update frequency", + "facets.block.title.cl_spatialRepresentationType.key": "Spatial representation", + "facets.block.title.cl_status.key": "Status", + "facets.block.title.creationYearForResource": "Creation year", + "facets.block.title.resolutionScaleDenominator": "Scale", + "facets.block.title.tag": "Keywords", + "facets.block.title.tag.default": "Tag", + "facets.block.title.th_regions_tree.default": "Regions", + "nav.back": "Back", + "record.action.download": "Download", + "record.action.view": "View", + "record.more.details": "Read more", + "records": "records", + "results.layout.selectOne": "Results layout", + "results.records.hits.found": "{hits, plural, =0{No documents match the specified search.} one{} other{{hits} records found.}}", + "results.records.hits.found=0.help": "Suggestions:
      • Try other words
      • Specify fewer words
      ", + "results.sortBy.dateStamp": "Last updates", + "results.sortBy.popularity": "Popularity", + "results.sortBy.relevancy": "Relevancy", + "search.field.any.placeholder": "Search datasets, services and maps ...", + "search.field.sortBy": "Sort by", + "search.loading": "Loading ..." +} \ No newline at end of file diff --git a/web-ui/src/main/resources/catalog/locales/cy-search.json b/web-ui/src/main/resources/catalog/locales/cy-search.json new file mode 100644 index 00000000000..b2a663b93f9 --- /dev/null +++ b/web-ui/src/main/resources/catalog/locales/cy-search.json @@ -0,0 +1,556 @@ +{ + "rate": "Sgorio", + "clickToRate": "Cliciwch i sgorio", + "source": "Catalog(au)", + "title": "Teitl", + "abstract": "Crynodeb", + "topiccat": "Pwnc/Pynciau", + "contact": "Cyswllt", + "identifier": "Dynodwr adnoddau", + "drawAnExtentToFilter": "Lluniwch faint i gymhwyso hidlydd gofodol.", + "clickToRemoveSpatialFilter": "Lluniwch faint newydd ar y map neu cliciwch i gael gwared ar yr hidlydd gofodol.", + "chooseSpatialFilterType": "Dewiswch y math o chwilio gofodol (e.e. croestoriad, o fewn).", + "openLargeMap": "Gwyliwr map agored", + "type": "Math", + "noDataInCatalog": "Nid yw'r catalog yn cynnwys unrhyw wybodaeth ar hyn o bryd. Mewngofnodwch, ac yna llwytho samplau, cynaeafu neu fewnforio cofnodion.", + "archive": "Archif", + "archiveincluded": "Cynnwys yr hyn sydd wedi'i archifo", + "archiveexcluded": "Peidio â chynnwys yr hyn sydd wedi'i archifo", + "archiveonly": "Yr hyn sydd wedi’i archifo yn unig", + "What": "Beth?", + "downloadAllIn": "Lawrlwytho popeth", + "downloadInCurrentMapExtent": "... neu dim ond yn y golwg gyfredol", + "downloadFeature": "Lawrlwytho", + "opacity": "Didreiddedd", + "filterData": "Hidlo data", + "When": "Pryd?", + "Where": "Ble?", + "recordType": "Math o Gofnod?", + "searchPlaces": "Chwilio am le", + "switchFrom2DTo3D": "Newid o 2D i 3D", + "bbox": "bbox", + "backgroundMap": "Map cefndir:", + "checkIfDataIsDownloadableFromWfs": "Gwasanaeth lawrlwytho ar gael?", + "checkIfDataIsDownloadableFromWfsHelp": "Gwiriwch a yw'r haen hon ar gael gan ddefnyddio gwasanaeth WFS. Os ydyw, rhestrwch fformatau lawrlwytho sydd ar gael fel y cânt eu diffinio yng ngalluoedd y gwasanaeth.", + "saveMap": "Cadw map", + "downloadContext": "Lawrlwytho’r map cyfredol fel", + "saveMapAsContext": "Cyd-destun OGC (XML)", + "saveMapAsImage": "Delwedd PNG", + "saveMapInCatalog": "Cadwch y map cyfredol yn y catalog", + "saveMapInCatalogAction": "Cadw fel cofnod metadata", + "saveInCatalogAndPublish-help": "Creu cofnod metadata a'i wneud yn gyhoeddus.", + "saveMapInCatalogActionAndPublish": "Cadw fel cofnod cyhoeddus", + "mapSavedInCatalog": "Gweld cofnod metadata map.", + "mapAbstract": "Map haniaethol", + "loadAMap": "Llwytho map", + "noMaps": "Ni ddarganfuwyd unrhyw fapiau", + "topMaps": "Mapiau diweddaraf", + "uploadContext": "O'r ffeil", + "resetContext": "Map diofyn", + "kmlContext": "fformat KML", + "displayHeatMap": "Dangos map gwres", + "removeFeatures": "Cael gwared o nodweddion", + "refresh": "Adnewyddu", + "kmlFile": "{{layer}} (KML)", + "noRecordFoundWithResourceRegistered": "Ni ddarganfuwyd unrhyw gofnod gydag un neu fwy o haenau WMS wedi'u cofrestru.", + "noRecordFoundWithResourceRegisteredmap": "Ni ddarganfuwyd unrhyw gofnod gydag un neu fwy o fapiau wedi'u cofrestru.", + "tmsLinkDetails": "Cyhoeddir y set ddata hon yn y gwasanaeth golwg (TMS) sydd ar gael yn {{url}} gyda'r dynodwr {{layer}}.", + "esri:restLinkDetails": "Gwasanaeth ESRI REST {{url}}.", + "wmsLinkDetails": "Cyhoeddir y set ddata hon yn y gwasanaeth golwg (WMS) sydd ar gael yn {{url}} gydag enw haen {{layer}}.", + "wmsServiceLinkDetails": "Cyhoeddir y set ddata hon yn y gwasanaeth golwg (WMS) sydd ar gael yn {{url}}.", + "wmtsLinkDetails": "Cyhoeddir y set ddata hon yn y gwasanaeth golwg (WMTS) sydd ar gael yn {{url}} gyda'r dynodwr {{layer}}.", + "wmtsServiceLinkDetails": "Cyhoeddir y set ddata hon yn y gwasanaeth golwg (WMTS) sydd ar gael yn {{url}}.", + "wfsLinkDetails": "Cyhoeddir y set ddata hon yn y gwasanaeth lawrlwytho (WFS) sydd ar gael yn {{url}} gydag enw haen {{layer}}.", + "wfsServiceLinkDetails": "Cyhoeddir y set ddata hon yn y gwasanaeth lawrlwytho (WFS) sydd ar gael yn {{url}}.", + "wcsLinkDetails": "Cyhoeddir y set ddata hon yn y gwasanaeth lawrlwytho (WCS) sydd ar gael yn {{url}} gydag enw haen {{layer}}.", + "sosLinkDetails": "Cyhoeddir y set ddata hon yn y gwasanaeth arsylwi synhwyrydd (SOS) sydd ar gael yn {{url}} gydag enw {{layer}}.", + "atomDatasetsInFeed": "Setiau data ar gael", + "atomLinkDetails": "Cyhoeddir y set ddata hon yn y Porthiant Atom sydd ar gael yn {{url}} gydag enw {{layer}}.", + "otherLinkDetails": "Adnoddau eraill:", + "qualityLinkDetails": "Adroddiad ansawdd", + "featurecatalogueLinkDetails": "Catalog nodwedd", + "legendLinkDetails": "Allwedd", + "wmsCapabilitiesNotAvailable": "Methu gwirio'r ymateb GetCapacitats", + "wmsLayerNotAvailable": "Nid yw'r haen {{layerName}} ar gael yn y gwasanaeth WMS. Fodd bynnag, gallwch weld un o'r rhai sydd ar gael", + "wmsChooseLayerToAdd": "Dewiswch haen i'w hychwanegu at y map", + "wmtsCapabilitiesNotAvailable": "Methu gwirio'r ymateb GetCapacitats", + "wmtsLayerNotAvailable": "Nid yw'r haen {{layerName}} ar gael yn y gwasanaeth WMTS. Fodd bynnag, gallwch weld un o'r rhai sydd ar gael", + "wmtsChooseLayerToAdd": "Dewiswch haen i'w hychwanegu at y map", + "wfsCapabilitiesNotAvailable": "Methu gwirio'r ymateb GetCapacitats", + "wfsLayerNotAvailable": "Nid yw'r featuretype {{layerName}} ar gael yn y gwasanaeth WFS. Fodd bynnag, gallwch weld un o'r rhai sydd ar gael", + "wfsChooseLayerToAdd": "Dewiswch featuretype i'w ychwanegu at y map", + "wcsCapabilitiesNotAvailable": "Methu gwirio'r ymateb GetCapacitats", + "wcsLayerNotAvailable": "Nid yw'r sylw {{layerName}} ar gael yn y gwasanaeth WCS. Fodd bynnag, gallwch weld un o'r rhai sydd ar gael", + "wcsChooseLayerToAdd": "Dewiswch gwmpas i'w ychwanegu at y map", + "Unable_to_connect_to_service": "Methu cysylltu â'r gwasanaeth", + "databaseLayerDetails": "Cyhoeddir y set ddata hon yn y gronfa ddata {{url}} yn y tabl {{layer}}.", + "fileLayerDetails": "{{name}}. Mae'r set ddata hon ar gael ar y rhwydwaith lleol {{url}}.", + "wfsNotAvailable": "Nid yw WFS ar gael.", + "wfsFeatureNotIndexed": "Nid yw'r math o nodwedd {{wfsUrl}} # {{featureTypeName}} wedi cael ei fynegeio.", + "indexNotRunning": "Mynegai ddim ar gael", + "addToMap": "Ychwanegu at y map", + "addToMaponlinesrc": "Ychwanegu at y map", + "addServiceLayersToMaponlinesrc": "Ychwanegu haen gwasanaeth at y map", + "viewLayerInExternalViewer": "Gweld haen yn y gwyliwr allanol", + "mapLinkonlinesrc": "Llwytho map", + "openRecord": "Gweld cofnod", + "openRecordhasfeaturecat": "Cofnod cysylltiedig", + "openRecordfcat": "Catalog nodwedd", + "openRecordparent": "Cofnod rhiant", + "openRecordsources": "Set ddata ffynhonnell", + "openRecordchildren": "Cofnod plentyn", + "openRecordsibling": "Adnodd cysylltiedig", + "openRecordassociated": "Adnodd cysylltiedig", + "openPageonlinesrc": "Agor dolen", + "openRecordhassource": "Cofnod cysylltiedig", + "openRecordservices": "Gwasanaeth cysylltiedig", + "openRecorddatasets": "Set ddata gysylltiedig", + "downloadonlinesrc": "Lawrlwytho", + "fileLinkonlinesrc": "Lawrlwytho", + "openPage": "Agor dolen", + "defaultView": "Golygfa ddiofyn", + "full": "Golygfa lawn", + "securityConstraints": "Cyfyngiadau diogelwch", + "versionIdentifier": "Dynodwr fersiwn", + "otherConstraints": "Cyfyngiadau eraill", + "resourceConstraints": "Cyfyngiadau adnoddau", + "maintenanceAndUpdateFrequencies": "Diweddaru amleddau", + "legalConstraints": "Cyfyngiadau cyfreithiol", + "scale": "Graddfa", + "resolution": "Cydraniad", + "credit": "Credyd", + "classification": "Dosbarthiad", + "resourceStatus": "Statws", + "webserviceLinkonlinesrc": "Agor gwasanaeth", + "AU": "Unedau gweinyddol", + "drawOnMap": "Llunio ar y map", + "advancedForm": "Dangos opsiynau uwch", + "simpleForm": "Cuddio opsiynau uwch", + "restrictArea": "Cyfyngu ardal chwilio i", + "layer": "haen", + "nolayer": "Dim haen", + "layers": "haenau", + "layerAdded": "Ychwanegwyd haen '{{layer}}' at y map. Cliciwch yma i chwyddo ato.", + "layerAddedNoExtent": "Ychwanegwyd haen '{{layer}}' at y map.", + "localLayerFile": "{{layer}} (ffeil leol)", + "mostPopular": "Mwyaf poblogaidd", + "mapImportFailure": "Methwyd â mewnforio haen", + "recentChanges": "Newidiadau diweddar", + "homeTitle": "Chwilio am ‘geodata’ a ‘geoservices’", + "visualize": "Gweld", + "template": "Templed", + "valid": "Dilys", + "toEdit": "I Olygu", + "toPublish": "I Gyhoeddi", + "format": "Fformat", + "anyValue": "- Unrhyw -", + "unchecked": "Heb ei wirio", + "createDate": "Crëwyd", + "changeDate": "Addaswyd", + "publish": "Cyhoeddi", + "unpublish": "Heb ei gyhoeddi", + "View": "Gweld", + "Other": "Arall", + "export": "Allforio", + "exportXML": "Allforio (XML)", + "exportcheXML": "Allforio (XML)", + "exportGM03": "Allforio (GM03)", + "exportRDF": "Allforio (RDF)", + "exportCSV": "Allforio (CSV)", + "exportPDF": "Allforio (PDF)", + "exportMEF": "Allforio (ZIP)", + "welcomeText": "Yma fe welwch ddata, gwasanaethau a mapiau a mwy.", + "searchOver": "Chwilio setiau data, gwasanaethau a mapiau {{records}},...", + "browseBy": "Pori yn ôl", + "browseTopics": "Pori pynciau", + "browseTypes": "Pori adnoddau", + "versionDetails": "Wedi'i bweru gan GeoNetwork >{{platform}} {{version}}. {{subversion}}<", + "lastRecords": "Newyddion diweddaraf", + "preferredRecords": "Mwyaf poblogaidd", + "about": "Ynghylch", + "twitter": "Twitter", + "github": "Github", + "viewMore": "Mwy", + "listOfCategories": "Categorïau", + "formats": "Fformatau", + "addLayers": "Ychwanegu haenau", + "serviceUrl": "https://...", + "serviceUrlLabel": "URL Gwasanaeth", + "CurrentLayers": "Haenau", + "SearchLayer": "Chwilio", + "addLayerFromMaps": "Mapiau", + "addLayerFromServices": "Gwasanaethau", + "addLayerFromFiles": "Ffeiliau", + "chooseAservice": "Dewiswch wasanaeth", + "chooseAserviceHelp": "Cyflwynir yr holl wasanaethau sydd wedi'u cofrestru yn y catalog yma.", + "orTypeAServiceUrl": "teipiwch URL gwasanaeth {{type}}", + "addAllLayersToMap": "Ychwanegwch yr holl haenau {{number}} at y map", + "downloadsAndResources": "Lawrlwytho a dolenni", + "sourceCatalog": "Darparwyd gan", + "tempExtent": "Maint tymhorol", + "more": "mwy", + "less": "llai", + "overview": "Trosolwg", + "chooseAView": "Modd arddangos", + "metadataContact": "Cysylltwch ar gyfer y metadata", + "metadataRemoved": "{{title}} wedi'i ddileu.", + "extent": "Maint gofodol", + "aboutThisResource": "Ynglŷn â'r adnodd hwn", + "preview": "Rhagolwg", + "metadataInformation": "Gwybodaeth metadata", + "backTosearch": "Yn ôl i chwilio", + "backTomap": "Yn ôl i'r map", + "backTohome": "Yn ôl i'r hafan", + "shareOn": "Rhannu ar safleoedd cymdeithasol", + "updatedOn": "Diweddarwyd:", + "license": "Trwydded", + "constraints": "Cyfyngiadau", + "technicalInformation": "Gwybodaeth dechnegol", + "publicationDate": "Dyddiad cyhoeddi", + "creationDate": "Dyddiad creu", + "revisionDate": "Dyddiad adolygu", + "tempExtentBegin": "Cyfnod", + "updateFrequency": "Diweddaru amlder", + "lineage": "Llinach", + "identification": "Dull adnabod", + "metadata": "Metadata", + "mdLanguage": "Iaith metadata", + "mdContact": "Cyswllt metadata", + "parentIdentifier": "Dynodwr metadata rhiant", + "distributor": "Dosbarthwr", + "sourceDataset": "Set ddata ffynhonnell", + "metadataInXML": "Lawrlwytho metadata", + "language": "Iaith", + "metadataLanguage": "Iaith metadata", + "sendMail": "Anfon E-bost", + "newOwner": "Perchennog Newydd", + "updateCategories": "Diweddaru categorïau", + "updatePrivileges": "Diweddaru breintiau", + "exportSummary": "Crynodeb allforio", + "mdNew": "Metadata newydd", + "mdImport": "Mewnforio metadata", + "hotkeySortBy": "Yr opsiwn trefnu nesaf", + "hotkeyHome": "Hafan", + "hotkeyFocusToSearch": "Canolbwyntiwch i chwilio’r mewnbwn a dechrau teipio!", + "hotkeySearchTheCatalog": "Sbarduno chwiliad", + "hotkeyMap": "Lluniwch eich map!", + "hotkeyFirstPage": "Symud i'r dudalen gyntaf", + "hotkeyPreviousPage": "Symud i'r dudalen flaenorol", + "hotkeyNextPage": "Symud i'r dudalen nesaf", + "hotkeyLastPage": "Symud i'r dudalen olaf", + "hotkeySelectAll": "Dewiswch yr holl ganlyniadau chwilio", + "hotkeySelectAllInPage": "Dewiswch bopeth yn y dudalen gyfredol", + "hotkeyUnSelectAll": "Dad-ddewis pob cofnod", + "clickToSelectYear": "Cliciwch ar y bar i ddewis blwyddyn", + "what": "Beth?", + "when": "Pryd?", + "where": "Ble?", + "resourcesCreatedTheLast": "Adnoddau a grëwyd yn y diwethaf", + "recordsCreatedTheLast": "Cofnodion a grëwyd yn y diwethaf", + "today": "heddiw", + "yesterday": "ddoe", + "thisWeek": "yr wythnos hon", + "thisMonth": "y mis hwn", + "last3Months": "yn ystod y 3 mis diwethaf", + "last6Months": "yn ystod y 6 mis diwethaf", + "thisYear": "eleni", + "publishComplete": "Cyhoeddi Adroddiad", + "unpublishComplete": "Dadgyhoeddi Adroddiad", + "mdPublished": "Cyhoeddwyd metadata", + "mdUnpublished": "Metadata heb ei gyhoeddi", + "mdUnmodified": "Metadata heb ei effeithio", + "mdDisallowed": "Metadata cyfyngedig", + "mdNovalid": "Metadata ddim yn ddilys", + "metadataUnchanged": "Metadata heb ei addasu", + "accessRestricted": "Nid oes gennych ganiatâd i newid y metadata hwn", + "copiedToClip": "Testun wedi'i gopïo i'r clipfwrdd!", + "Layers": "Haenau", + "ManageLayers": "Rheoli haenau", + "Contexts": "Mapiau", + "Print": "Argraffu", + "PrintTheMap": "Argraffu map cyfredol", + "print_layout": "Cynllun", + "print_scale": "Graddfa", + "print_format": "Fformat", + "ZoomToMapMaxExtent": "Chwyddo i faint y map cychwynnol", + "ZoomToYourLocation": "Chwyddo ger eich safle", + "Auto": "Awto", + "Measure": "Mesur", + "measure_instruction": "Tynnwch linell ar y map a chanfod ei hyd yn y panel hwn", + "Annotations": "Anodiadau", + "Zoom": "Chwyddo", + "ZoomOut": "Chwyddo allan", + "ZoomIn": "Chwyddo i mewn", + "toggleMiniMap": "Dangos/cuddio map", + "Localisation": "Lleoli", + "ThemeLayers": "Haenau Thematig", + "AddALayer": "Ychwanegwch Haen o", + "LayerWMS": "WMS", + "LayerWFS": "WFS", + "LayerWMTS": "WMTS", + "LayerWCS": "Haen WCS", + "LayerSOS": "Haen SOS", + "LayerKML": "KML", + "mapFileName": "map", + "mapTitle": "Teitl map", + "mapComment": "Disgrifiad neu gredyd", + "LayerJSON": "ffeil Json", + "LayerRSS": "Gwasanaeth GeoRSS", + "LayerAtom": "Gwasanaeth Atom", + "LayerGML": "ffeil GML", + "MapContexts": "Mapiau", + "Measures": "Mesuriadau", + "BackgroundLayers": "Haenau cefndir", + "terrainProvider": "Tir:", + "terrainProvider-none": "Tir gwastad", + "terrainProvider-default": "Tir diofyn", + "Point": "Pwynt", + "Polygon": "Polygon", + "Linestring": "Llinell", + "Text": "Testun", + "tipDrawText": "Teipiwch rywfaint o destun a'i ollwng ar y map", + "Modify": "Addasu", + "Remove": "Tynnu", + "drawInstruction": "Dewiswch fath, lluniwch y gwrthrych. Cliciwch ddwywaith i orffen llinell neu bolygon. Gellir mewnosod testunau yn y maes testun ac yna eu hychwanegu at y map trwy glicio yn y map", + "help": "Help", + "textFillColor": "Llenwch lliw", + "textStrokeColor": "Lliw strôc", + "textStrokeWidth": "Lled strôc", + "textWidth": "Maint", + "textFont": "Ffont", + "textContent": "Testun i'w arddangos", + "drawFillColor": "Llenwch lliw", + "drawStrokeColor": "Lliw strôc", + "drawWidth": "Lled", + "drawRadius": "Radiws", + "drawColor": "Lliw", + "red": "coch", + "orange": "oren", + "blue": "glas", + "white": "gwyn", + "black": "du", + "yellow": "melyn", + "green": "gwyrdd", + "pink": "pinc", + "brown": "brown", + "purple": "porffor", + "gray": "llwyd", + "Results": "Canlyniadau", + "Legend": "Allwedd", + "otherKeywords": "Geiriau allweddol eraill", + "isValid": "Statws dilysu", + "isValidInspire": "Statws dilysu (INSPIRE)", + "Attribution": "Priodoli", + "layerDelete": "Cael gwared o haen", + "layerMetadata": "Metadata", + "layerVisible": "Gweladwy", + "layerMoveDown": "Symud haen i lawr", + "layerMoveUp": "Symud haen i fyny", + "layerExtentZoom": "Chwyddo i'r haen", + "maxExtentZoom": "Chwyddo i'r maint mwyaf", + "layerInfo": "Gwybodaeth am yr haen", + "Locations": "Lleoliadau", + "clear": "clirio", + "msgCanDropFileOnMap": "Sylwch y gallwch hefyd ollwng ffeil ar y map", + "UploadKMZfile": "Llwythwch ffeil KMZ", + "or": "neu", + "KMLfileURL": "URL ffeil KML", + "refineSearch": "Mireinio Chwilio", + "backToList": "Yn ôl i'r Rhestr", + "privilegesBatchAlert": "Bydd y breintiau yn cael eu diweddaru ar gyfer yr holl gofnodion y gellir eu golygu yn y dewis. Mae'r ffurflen fraint yn wag ac nid yw'n adlewyrchu breintiau cyfredol y cofnodion a ddewiswyd! Mae breintiau yn cael eu hailosod a'u disodli gan yr un newydd.

      Bydd clicio ar Merge selected yn ychwanegu (checked with +) neu’n tynnu (checkbox with -) breintiau wedi’u dewis.

      Bydd clicio ar Replace by selected yn cael gwared ar gategorïau cofnodion ac yna ychwanegu (checked with +) neu dynnu (blwch gwirio gyda -) breintiau wedi’u dewis.", + "permalink": "Permalink", + "permalinkTo": "Permalinkl i {{title}}", + "shareOnTwitter": "Rhannu ar Twitter", + "shareOnFacebook": "Rhannu ar Facebook", + "shareOnLinkedIn": "Rhannu ar LinkedIn", + "shareByEmail": "Rhannu trwy e-bost", + "zoomto": "Chwyddo I", + "recordNotFound": "Ni ddarganfuwyd y cofnod gyda'r dynodwr {{uuid}} neu ni chaiff ei rannu gyda chi. Ceisiwch fewngofnodi os oes gennych gyfrif.", + "intersectWith": "Yn croestori gyda", + "fullyOutsideOf": "Yn gyfangwbl y tu allan i", + "encloses": "Amgau", + "within": "O fewn", + "within_bbox": "O fewn", + "transferOwnership": "Trosglwyddo Perchnogaeth", + "selectNewOwner": "Dewis Perchennog Newydd", + "selectGroup": "Dewiswch Grŵp", + "loadUsersError": "Gwall yn llwytho defnyddwyr", + "loadUserGroupsError": "Gwall yn llwytho grwpiau defnyddwyr", + "transferOwnershipError": "Gwall wrth drosglwyddo perchnogaeth metadata", + "transferOwnershipSuccessMsg": "

      Trosglwyddwyd metadata yn llwyddiannus i Berchennog newydd.

      TrosglwyddwydT:
      {{done}}
      Ddim yn berchen:
      {{notOwner}}
      Heb ei ganfod:
      {{notFound}}
      ", + "filterGroup": "Grwpiau hidlo...", + "wpsLoadingProcessDescription": "Llwytho disgrifiad o'r broses...", + "wpsDescribeProcessFailed": "DescribeProcess wedi methu", + "wpsExecute": "Gweithredu", + "wpsExecuteFailed": "Gweithredu wedi methu", + "wpsErrorCodeReturned": "Dychwelodd y gweinydd y cod statws", + "time": "Amser", + "features": "nodwedd(ion)", + "noUsers": "Dim defnyddwyr", + "downloadLayer": "Lawrlwytho data", + "featureCount": "Cyfrif nodwedd", + "fbContact": "Cyswllt", + "fbName": "Enw", + "fbFunction": "Swyddogaeth", + "fbOrganization": "Sefydliad", + "fbPhone": "Ffôn", + "fbEmail": "Ebost", + "fbFeedback": "Adborth", + "fbCategory": "Categori", + "fbComments": "Sylwadau", + "fbQuestion": "Cwestiwn", + "fbError": "Gwall", + "fbCatMetadataContents": "Cynnwys Metadata", + "fbCatDataContents": "Cynnwys Data", + "fbCatServiceContents": "Cynnwys y Gwasanaeth", + "fbCatSupport": "Cefnogaeth", + "fbCatMapViewer": "Gwyliwr Mapiau", + "fbCatSearch": "Chwilio", + "fbCatOrganizations": "Sefydliadau", + "fbCatContentManagement": "Rheoli Cynnwys", + "fbCatMetadataImport": "Mewnforio metadata", + "fbCatMetadataEditing": "Golygu Metadata", + "fbCatHarvesting": "Cynaeafu", + "fbCatValidator": "Dilyswr", + "fbCatOthers": "Eraill", + "fbSendTo": "Anfon i", + "syncAllLayers": "Syncroneiddio pob haen (neu haenau cefndir yn unig) rhwng syllwr map a map trosolwg chwilio", + "mdvalid": "Metadata yn ddilys", + "mdinvalid": "Metadata yn annilys", + "mdinvalidcantpublish": "Ni ellir cyhoeddi metadata annilys", + "mdnonapprovedcantpublish": "Ni ellir cyhoeddi metadata heb ei gymeradwyo", + "mdnovalidation": "Nid oes gan metadata unrhyw wybodaeth ddilysu", + "setall": "Gosod yr holl freintiau", + "print_legend": "Allwedd", + "print_legend_field": "Cynnwys allweddau", + "landscape": "Tirwedd", + "overviewPrintTemplate": "Trosolwg", + "portrait": "Portread", + "wfsDownloadDataInstruction": "Dewis fformat data i'w lawrlwytho:", + "wfsTypenameNotAvailable": "Nid yw'r featuretype '{{typename}}' ar gael yn y gwasanaeth WFS. Gallwch ddewis o featuretypes sydd ar gael yn lle hynny", + "wfsChooseFeatureTypeToDownload": "Dewiswch featuretype i'w lawrlwytho", + "wpsGetCapError": "Gwall wrth ddadrannu galluoedd WPS: ", + "wpsByUrl": "Prosesau chwilio", + "wpsRecent": "Prosesau Diweddar", + "selection.indexing.count": "Dechreuwyd mynegeio ar gyfer y cofnod(ion) {{count}} a ddewiswyd.", + "selection.indexing.error": "Gwall yn ystod mynegeio dethol.", + "showLegend": "Dangos allwedd", + "hideLegend": "Cuddio allwedd", + "selectStyle": "Dewis arddull", + "setOpacity": "Gosod y didreiddedd", + "mdActions": "Camau gweithredu sydd ar gael", + "mdActions-view": "Gweladwy", + "mdActions-download": "Gellir ei lawrlwytho", + "mdActions-process": "Prosesadwy", + "GUFrate": "Sgorio", + "GUFnoRatings": "Dim sgorio  ", + "GUFfromRatingCountRatings": "o sgoriau {{ratingCount}}", + "GUFwaitingForApproval": "Aros am gymeradwyaeth", + "GUFseeAllFeedbacks": "Gweld yr holl adborth", + "GUFcommentsLastCommentOn": "Sylwadau {{userfeedbackCount}}, sylw olaf ar {{date}}.", + "GUFcountReviews": "{{userfeedbackCount}} Adolygiadau", + "GUFdeleteUserFeedback": "Dileu", + "GUFpublishUserFeedback": "Cyhoeddi", + "GUFclose": "Cau", + "GUFsave": "Cadw", + "GUFfeedbackOn": "Adborth ar:", + "GUFnoComments": "Dim sylwadau", + "GUFaddRating": "Ychwanegwch eich adolygiad", + "GUFplusAddRating": "Ychwanegwch eich adolygiad", + "GUFaddReview": "Ychwanegu adolygiad", + "GUFaddYourReview": "Ychwanegwch eich adolygiad", + "GUFaddYourReviewInfo": "Awgrymwch wedudalen, cais neu ddogfen sy'n cynnwys gwybodaeth ychwanegol sy'n berthnasol i (defnyddio) y set ddata hon.", + "GUFaddKeywords": "Ychwanegu geiriau allweddol", + "GUFcurrentScore": "Sgôr gyfredol", + "GUFuserInformation": "Gwybodaeth defnyddiwr", + "GUFgiveYourOpinionOnDifferentCategories": "Rhannu eich profiad sy’n gysylltiedig â gwahanol agweddau ar y set ddata hon", + "GUFgiveYourOpinionAboutTheDataset": "Rhannwch eich profiad gyda, gofynnwch gwestiwn ynglŷn â neu nodi sylw am y set ddata hon", + "GUFhelpUsImproveDataset": "Helpwch ni i wella'r set ddata fwy eto...", + "GUFcategories": "Categorïau", + "GUFyouAreLoggedInAs": "Rydych wedi mewngofnodi ar hyn o bryd fel {{authorNameValue}}", + "GUFyouAreNotLoggedInPleaseFillIn": "Nid ydych wedi mewngofnodi, llenwch eich enw, e-bost a'ch sefydliad", + "GUFshowUserNameInComments": "Dangos fy enw defnyddiwr mewn adolygiadau a sgoriau", + "GUFhideUserNameInPublic": "Cuddio fy enw ar adolygiadau cyhoeddus (ni fydd e-bost byth yn cael ei arddangos)", + "GUFanonymous": "Anhysbys", + "GUFratingsComments": "Sgorau a Sylwadau", + "GUFpublishConfirm": "Ydych chi am gyhoeddi'r sylw hwn?", + "GUFdeleteConfirm": "Ydych chi am ddileu'r sylw hwn?", + "GUFrequired": "Angenrheidiol", + "GUFtooLong": "Rhy hir", + "GUFnotValidFormat": "Ddim yn fformat dilys", + "clickToSelect": "Cliciwch i ddewis neu ddad-ddewis", + "filterDataDescription": "Dewiswch haen ar y map i ddechrau hidlo nodweddion cysylltiedig WFS (os oes rhai o gwbl). Mae'n rhaid i nodweddion fod wedi cael eu mynegeio gan weinyddwr yn gyntaf.", + "WPSDescription": "Rhowch URL terfynbwynt WPS i ddechrau defnyddio'r broses trwy ffurflen ddeinamig. Dangosir prosesau WPS a ddefnyddiwyd yn ddiweddar yn yr ail dab.", + "noLayersFound": "Ni ddarganfuwyd haenau", + "featuredUserSearches": "Chwiliadau sy'n cael sylw", + "userSearches": "Chwiliadau defnyddwyr", + "allLanguage": "Pob un", + "userSearch": "Chwilio defnyddiwr", + "createUserSearch": "Creu", + "manageUserSearches": "Rheoli", + "manageUserSearchesTitle": "Rheoli chwiliadau defnyddwyr", + "deleteUserSearchConfirm": "Ydych chi eisiau cael gwared ar y chwiliad mewn gwirionedd?", + "userSearchTblSearchName": "Chwilio enw", + "userSearchTblCreator": "Crëwr", + "userSearchTblCreationDate": "Dyddiad creu", + "userSearchTblGroups": "Grwpiau neilltuedig", + "userSearchRemoved": "Chwiliad defnyddiwr wedi'i dynnu", + "userSearchSaveHeader": "Cadw’r hidlydd chwilio cyfredol.", + "userSearchName": "Name", + "userSearchFeatured": "Yn cael sylw", + "userSearchFeaturedDisplayIn": "Dangosydd yn ymddangos yn", + "userSearchGroups": "Ar gyfer grwpiau", + "userSearchLogo": "Url Logo", + "userSearchUrl": "Chwilio url", + "userSearchUpdateUrl": "Diweddaru", + "userSearchFeaturedDisplayInHomePage": "Hafan", + "userSearchUpdated": "Chwiliad defnyddiwr wedi'i gadw", + "userSearchUpdatedError": "Gwall wrth gadw chwiliad defnyddiwr", + "seeDraft": "Mae gan y cofnod hwn fersiwn copi gweithio. Cliciwch yma i'w weld.", + "seeNoDraft": "Mae gan y cofnod hwn fersiwn wedi'i chymeradwyo a'i chyhoeddi. Cliciwch yma i'w gweld.", + "loadMoreResults": "llwytho mwy o ganlyniadau...", + "moreFacet": "{{count}} yn fwy", + "lessFacet": "{{count}} yn llai", + "allFacet": "popeth ({{count}})", + "initialFacet": "cychwynnol ({{count}})", + "removeThisFilter": "Tynnu'r hidlydd hwn", + "removeAllFilters": "Tynnu'r holl hidlyddion", + "creationDateFrom": "Adnoddau a grëwyd ar ôl", + "creationDateTo": "Adnoddau a grëwyd cyn", + "changeDateFrom": "Adnoddau a newidiwyd ar ôl", + "changeDateTo": "Adnoddau a newidiwyd cyn", + "dateFrom": "Cofnodion a ddiweddarwyd ar ôl", + "dateTo": "Cofnodion a ddiweddarwyd cyn", + "activeFilters": "Hidlyddion gweithredol", + "geometryFilter": "Blwch Terfyn", + "GUFname": "Eich Enw", + "GUFemail": "Eich Cyfeiriad E-bost", + "GUForganization": "Eich Sefydliad", + "mousePositionCopiedToClipboard": "Cyfesurynnau {{position}} wedi'u copïo i'r clipfwrdd.", + "mousePosition": "Safle", + "coordinateFormat": "Tafluniad a fformat", + "displayMousePosition": "Arddangos safle llygoden (Defnyddiwch y llwybr byr 'c' i gopïo safle i'r clipfwrdd).", + "copyMousePosition": "Copïwch safle'r llygoden i'r clipfwrdd", + "printUnsupportedLayerTypes": "Mae'r mathau canlynol o haenau yn bresennol ond ni ellir eu hargraffu", + "rssFeed": "Porthiant RSS", + "esriCapabilitiesFailed": "Gwall yn adfer dogfen galluoedd ESRI Rest.", + "esriCapabilitiesNoValid": "Nid yw'r ymateb yn ddogfen galluoedd ESRI Rest ddilys.", + "seriesComposedOf": "Yn cynnwys", + "seriesCoveringPeriod": "Cyfnod cwmpasu", + "approve": "Cymeradwyo", + "fieldRequired": "Mae angen y gwerth", + "fieldTooLong": "Mae'r gwerth yn rhy hir", + "fieldTooLongMax": "Mae'r gwerth yn rhy hir (uchafswm o {{maxChar}} nod)", + "fieldTooShort": "Mae'r gwerth yn rhy fyr", + "fieldEmailNotValid": "Mae angen cyfeiriad e-bost dilys", + "addLayerPrefix": "Ychwanegu haen", + "addLayerPostfix": "i'r map", + "submit": "Cyflwyno", + "indexingErrorMsg-invalidBounds": "Rhybudd / Maes resourceTemporalDateRange / Terfynau isaf ac uchaf yn wag neu ddim yn ddilys. Nid yw'r ystod dyddiad wedi'i mynegeio.", + "indexingErrorMsg-invalidDateFormat": "Rhybudd / Nid oedd dyddiad {{dateType}} gyda gwerth '{{date}}' yn fformat dyddiad dilys.", + "indexingErrorMsg-keywordNotFoundInThesaurus": "Rhybudd / Allweddair {{keyword}} heb ei ganfod yn {{thesaurus}}.", + "indexingErrorMsg-temporalDateRangeLowerGreaterThanUpper": "Rhybudd / Maes resourceTemporalDateRange / Ni all amrediad is amffiniad {{lowerBound}} fod yn fwy na'r arffin uchaf {{upperBound}}. Nid yw'r ystod dyddiad wedi'i mynegeio.", + "indexingErrorMsg-temporalRangeLowerGreaterThanUpper": "Rhybudd / Maes resourceTemporalDateRange / Ni all amrediad is wedi'i rwymo {{lowerBound}} fod yn fwy na'r arffin uchaf {{upperBound}}.", + "indexingErrorMsg-schemaNotRegistered": "Nid yw cofnod {{record}} / sgema '{{schema}}' wedi'i gofrestru yn y catalog hwn. Ei osod neu ddileu'r cofnodion hynny. Mae'r cofnod yn faner gwall mynegeio wedi'i mynegeio.", + "indexingErrorMsg-indexingStyleSheetError": "Mae dalen arddull mynegeio yn cynnwys gwallau: {{message}}\n Marcio'r metadata fel _indexingError=1 yn y mynegai." +} \ No newline at end of file diff --git a/web-ui/src/main/resources/catalog/locales/cy-v4.json b/web-ui/src/main/resources/catalog/locales/cy-v4.json new file mode 100644 index 00000000000..8c894c03911 --- /dev/null +++ b/web-ui/src/main/resources/catalog/locales/cy-v4.json @@ -0,0 +1,426 @@ +{ + "year(s)": "year(s)", + "month(s)": "month(s)", + "day(s)": "day(s)", + "hour(s)": "hour(s)", + "minute(s)": "minute(s)", + "second(s)": "second(s)", + "otherKeywords-place": "Place", + "otherKeywords-discipline": "Discipline", + "otherKeywords-stratum": "Stratum", + "otherKeywords-temporal": "Temporal", + "otherKeywords-theme": "Theme", + "otherKeywords-": "Keywords", + "link-datasets": "Service", + "link-services": "Service", + "isReplacedBy": "Replaced by", + "brothersAndSisters": "Siblings", + "openPagebrothersAndSisters": "Siblings", + "openPagesources": "Source", + "openPagehassource": "Is source dataset", + "languagesAndTranslations.manage": "Languages & translations", + "languages.manage": "Registered languages in database", + "languages.manage.help": "Language stored in database are used to store translations for database entity like group names, portal titles, ... Limiting the list of languages to the minimum simplify admin console entry forms.", + "translations.manage": "Manage translations", + "language.add": "Add other languages", + "language.added": "Language added.", + "language.added.error": "Error while adding language.", + "language.removed": "Language removed.", + "language.removal.error": "Error while removing language.", + "language.name": "Language", + "language.id": "Identifier", + "language.remove": "Remove language", + "layerName": "Layer name", + "layerNameTooltip": "A layer name from the GetCapabilities document", + "ogcServiceUrl": "Service URL", + "translation.addFor": "Add a new translation for", + "translation.add": "Add", + "translation.added": "Translation added", + "translation.added.error": "Error while adding translation", + "translations.remove.for": "Remove translation for ", + "translations.remove.all": "Remove all", + "translations.synch.all": "Synchronize with db languages", + "translations.synch.all.help": "For each db languages, check a key exist and add it if necessary.", + "translations.removed": "Translation removed", + "translations.removal.error": "Error while removing translation", + "translation.key": "Identifier", + "translation.value": "Translation", + "translations.save": "Save all translations", + "translation.table.view": "Table mode", + "translation.json.view": "JSON mode", + "remoteRecord": "Record from external catalog", + "chooseACatalogRecord": "Choose a catalog record", + "siblingListToAdd": "List of record links to add", + "orUseRemoteRecordUrl": "or link to a remote record", + "remoteRecordUrl-help": "Remote record can be linked to record in this catalog by pointing to an URL of the remote record. If the remote record is in a GeoNetwork catalog, the landing page of the record is recommended (eg. https://catalog/geonetwork/srv/api/records/{uuid}). For GeoNode, the HTML page can work. For others, XML document can be used (eg. API call or CSW GetRecordById request).", + "remoteRecordPropertiesError": "Failed to extract title and UUID for remote record. Check the target document.", + "remoteRecordUrlReturnedError": "Failed to access URL: ", + "ui-defaultTool": "Default active tool", + "ui-defaultToolAfterMapLoad": "Active tool after map load", + "ui-defaultToolAfterMapLoad-help": "User can open a map from different location (eg. home page maps, record view, map selector panel, URL). Define which tool panel to open by default after map is loaded. Can be empty to not activate any tool. 'layers' or 'legend' allows to easily view the list of layers in the map.", + "ui-searchOptions": "Search options", + "ui-languageStrategy": "Language strategy", + "ui-languageStrategy-help": "Language strategy can be:
      • searchInAllLanguages: search using any.* fields (more records are returned)
      • searchInDetectedLanguage: restrict the search to the language detected based on user search. If language detection fails, search in all languages.
      • searchInThatLanguage: Force a language using searchInThatLanguage:fre (recommended if only one language used)
      • searchInUILanguage: search in UI languages eg. full text field is any.langfre if French
      ", + "ui-languageWhitelist": "Language whitelist", + "ui-languageWhitelist-help": "Limit language detection to some languages only. If empty, the list of languages in catalogue records is used and if none found, mods.header.languages is used.", + "ui-queryBase": "Base query", + "ui-queryBase-help": "For a simple full text search on all fields use '${any}'. To give more importance to the title, use '${any} resourceTitleObject.default:(${any})^2'. See the documentation for more details. Use '${searchLang}' to set the detected language or '${uiLang}' for the user interface language.", + "anyFieldTitle": "Search. Type in to get suggestions. Use \" to search for phrases and exact match eg. \"reference grid\". Use q() for advanced querying eg. q(-cl_status_text:obsolete)", + "accessManager": "Access rights", + "facetIncludeFilter": "Filter values. Regular expression can be used using '/Land.*/'", + "allValuesExcept": "All values except", + "filterWithValue": "Filter with this value", + "indexNotAvailable": "No search service available currently!", + "facet-cat": "Category", + "cat": "Category", + "groupOwner": "Group", + "groupPublished": "Published in that group", + "indexingError": "Indexing error", + "source": "Catalog", + "ui-sortBy-help": "Define default sort by option. eg. 'relevance' to use the computed search score (see score configuration) or 'dateStamp#desc' to return last updated record first.", + "sortBy-validDesc": "validation status", + "sortBy-recordOwner": "owner", + "csw-sortByHelp": "Define sort option for GetRecords query. This can solve issue for large sets where some records may change on the remote node during harvesting and returned in different pages. Sorting by 'identifier:A' means by UUID with alphabetical order. Any CSW queryables can be used in combination with A or D for setting the ordering.", + "moreLikeThis": "Similar records", + "moreLikeType": "Similar ", + "readMore": "See more...", + "onTheWeb": "More online information", + "pdfReportTocTitle": "Contents", + "loadMoreResults": "load more results...", + "rating": "rating", + "popularity": "popularity", + "alternateTitle": "Also named: ", + "isHarvested-true": "Harvested", + "isHarvested-false": "Local", + "deleteRecordConfirm": "Do you really want to remove '{{resourceTitle}}'?", + "range-relation-intersects": "Intersects", + "range-relation-within": "Within", + "range-relation-contains": "Contains", + "documentStandard": "Metadata standard", + "cl_status_text": "Status", + "resourceTemporalDateRange": "Resource temporal coverage", + "facet-dateStamp": "Record update", + "facet-format": "Formats", + "facet-topic": "Topics", + "facet-inspireThemeUri": "INSPIRE themes", + "facet-cl_hierarchyLevel": "Type of resources", + "facet-resourceType": "Type of resources", + "facet-cl_resourceScope": "Type of resources", + "facet-cl_spatialRepresentationType": "Spatial representation type", + "facet-availableInServices": "Available in", + "availableInServices-availableInDownloadService": "Download service", + "availableInServices-availableInViewService": "View service", + "facet-th_gemet_tree": "Environmental tags", + "facet-th_regions_tree": "Regions", + "facet-th_httpinspireeceuropaeutheme-theme": "INSPIRE themes", + "facet-th_httpinspireeceuropaeutheme-theme_tree": "INSPIRE themes", + "facet-creationYearForResource": "Years", + "facet-resolutionScaleDenominator": "Scales", + "facet-cl_maintenanceAndUpdateFrequency": "Update frequencies", + "facet-cl_status": "Status", + "facet-tag": "Keywords", + "facet-resourceTemporalDateRange": "Temporal extent", + "facet-serviceType": "Service type", + "facet-cl_topic": "Topic", + "facet-valid": "Validation status", + "valid-1": "Valid", + "valid-0": "Invalid", + "valid--1": "Unknown", + "facet-valid_inspire": "INSPIRE validation status", + "valid_inspire-1": "Valid", + "valid_inspire-0": "Invalid", + "valid_inspire-3": "No rule applies", + "valid_inspire--1": "Unknown", + "inspireApiQuotaCurrentValue": "JRC INSPIRE validator API usage information", + "inspireApiQuotaValidation": "Number of validation:", + "inspireApiQuotaRemaining": "Remaining:", + "facet-OrgForResource": "Organizations", + "facet-sourceCatalogue": "Catalogues", + "facet-groupOwner": "Record groups", + "facet-recordOwner": "Record authors", + "facet-groupPublished": "Published in that group", + "facet-groupPublishedId": "Published in that group", + "facet-documentStandard": "Standards", + "facet-isHarvested": "Harvested", + "facet-isTemplate": "Record types", + "facet-schema": "Standards", + "facet-isPublishedToAll": "Access", + "facet-th_httpinspireeceuropaeumetadatacodelistPriorityDataset-PriorityDataset_tree": "INSPIRE Priority data set", + "isPublishedToAll-true": "Public records", + "isPublishedToAll-false": "Restricted records", + "dateTypeForStatus": "Date type", + "dateValueForStatus": "Date", + "indexRecordsWithErrors": "Index records with errors", + "top10IndexingErrors": "Top 10 indexing errors:", + "facet-indexingErrorMsg": "Indexing errors", + "facet-indexingWarningMsg": "Indexing warnings", + "facet-indexingErrorType": "Error types", + "rebuildIndex": "Reindex records", + "dropIndexAndRebuild": "Delete index and reindex", + "rebuildIndexHelp": "While rebuilding index, search may return incomplete results and the CSW GetRecords operation can be disabled (if you selected the option in the settings). Use this function, when catalog traffic is low. It's recommended to rebuild index manually from here when making changes directly in the database. If you change index mapping (cf. records.json), then you have to click on 'Delete index and reindex'.", + "indexInEsDoneError": "There is an error with the index. See the logs for details", + "indexInEsDone": "The indexing operation was successfull", + "indexCommit": "Commit index changes", + "indexCommit-help": "To use only if indexing task is hanging.", + "indexCommitError": "Error while committing index changes.", + "ui-moreLikeThisConfig": "More like this configuration", + "ui-moreLikeThisConfig-help": "Configuration must have a more_like_this.like which will be set with the record title to search for similar records.", + "ui-autocompleteConfig": "Autocompletion configuration", + "ui-autocompleteConfig-help": "Configuration must have a query.multi_match.query which will be set on autocompletion.", + "ui-facetConfig": "Facets configuration", + "ui-facetConfig-help": "This configuration is used to display facets, using either terms aggregations or filters. See the documentation for more information.", + "resourceEvents": "Resource events", + "resourceEdition": "Edition", + "resourceVerticalRange": "Vertical extent", + "searchBadRequest": "Query returned an error. Check the console for details.", + "searchInvalidResponse": "Query returned an invalid response. Check the console for details.", + "exactMatch": "Exact match", + "exactMatch-help": "Exact match means that '\"' are added to the search terms.", + "titleOnly": "Search in title only", + "titleOnly-help": "Search in title only.", + "gnbbox": "Geographical area", + "featuresInMapExtent": "Features in current map extent only", + "heatmapAvailableForPointOnly": "Heatmap only supported for point layer.", + "wfsIndexingEndDate": "Last indexing date", + "wfsIndexingScheduled": "Scheduled?", + "wfsIndexingNewSchedule": "Add WFS harvester", + "wfsIndexingCreateSchedule": "Save", + "wfsIndexingUpdateSchedule": "Update", + "wfsIndexingScheduleHelp": "", + "wfsIndexingJobSaved": "WFS indexing job saved.", + "wfsIndexingEditSchedule": "Schedule", + "wfsIndexingTrigger": "Start", + "wfsDeleteWfsIndexing": "Delete", + "wfsDeleteWfsIndexingSuccess": "Harvesting task removed.", + "wfsDeleteWfsIndexingError": "An error occurred while removing the task.", + "wfsIndexingTriggerSuccess": "Harvesting task started.", + "wfsIndexingTriggerError": "An error occurred while starting the task.", + "wfsHarvesterActions": "Actions", + "setAndReplaceOperations": "Replace operations", + "wxsServiceUrl": "Service URL", + "clearCheckboxFormChanges": "Clear modified checkbox state. Checkboxes with '-' means that those values will be removed from the selection.", + "addThoseCategories-help": "Add (checked with +) or remove (checkbox with -) selected categories.", + "replaceByThoseCategories-help": "Remove record categories and then add (checked with +) or remove (checkbox with -) selected categories.", + "clearValidationStatus": "Clear validation status", + "addThoseOperations-help": "Append (checked with +) or remove (checkbox with -) selected privileges.", + "privilegesNeededForPublicationRecordGroupOnly-true": "To publish a record, you need to be administrator or reviewer of record group", + "privilegesNeededForPublicationRecordGroupOnly-false": "To publish a record, you need to be administrator or reviewer of record group or reviewer of a group with editing rights.", + "replaceByThoseOperations-help": "Remove record priviliges and then add (checked with +) or remove (checkbox with -) selected privileges.", + "chooseASelection": "Choose a selection", + "e101": "Editor board selection [e101]", + "s101": "Search app selection [s101]", + "ui-moreLikeThisSameType": "More like this suggest records of the same type", + "ui-showPortalSwitcher": "Display portal menu in top menu", + "ui-dateFormat": "Date format", + "ui-dateFormat-help": "Format of the dates in record default view.", + "ui-showCitation": "Display citation", + "ui-showCitation-condition": "Rules to display the citation", + "ui-showCitation-condition-help": "eg. {'documentStandard': ['iso19115-3.2018']}", + "ui-locationThesaurus": "Location thesaurus", + "ui-locationThesaurus-help": "Place keywords to be displayed below the map preview", + "ui-internalThesaurus": "Internal thesaurus", + "ui-internalThesaurus-help": "Keywords to be displayed only for authenticated users. Usually thesaurus used for management purposes only.", + "ui-collectionTableConfig": "For series, configure column of datasets table list", + "ui-distributionConfig": "Links configuration", + "ui-allowRemoteRecordLink": "Allow remote record links", + "ui-distributionConfig-help": "Configure how to group links.", + "ui-timezone": "User interface time zone", + "ui-timezone-help": "The time zone to use to render date in default view and option to be added to editor date picker. If there is no need to handle multiple timezone in the catalog, set this value to the server timezone (see admin > settings). 'browser' indicate to use the browser timezone.", + "NoTimezone": "No timezone", + "YourTimezone": "Your timezone", + "CatalogTimezone": "Server timezone", + "CatalogUiTimezone": "Recommended timezone", + "wpsLineage": "Lineage", + "wpsStoreExecuteResponse": "Store execute response", + "wpsStatus": "Asynchronous", + "wpsOutputAsReference": "Get output as reference", + "wpsOutputAsReference-help": "Request response as a URL (which will be available for download on success).", + "wpsLoadReferenceInMap": "Load reference in map", + "wpsLoadReferenceInMap-help": "Try to download the reference URL with the response and load it on the map (needs to be GeoJSON response).", + "translationPackClearCache": "Clear translation packs cache", + "translationPackClearCache-help": "Required if you change JSON translation files of the Javascript application in catalog/locale, database translations or schema JSON translations.", + "translationPackCacheCleared": "Translation packs cache cleared.", + "translationPackCacheClearFailure": "Error occurred while clearing translation packs cache!", + "ui-isVegaEnabled": "Enable interactive graphics facets (using Vega)", + "ui-exactMatchToggle": "Display exact match toggle", + "ui-queryExactMatch": "Exact match query", + "ui-queryTitleExactMatch": "Exact match query on title only", + "facets.temporalRange.help": "Drag out a brush to select a data range or click on a bar on the lower chart. Click out the selected range to unset. Click the filter button to search.\n\nBlue series: current search, Grey series: all records.", + "facets.temporalRange.seriesLegend": "Blue series: current search, Grey series: all records", + "recordFormats": "Distribution formats:", + "recordFormatDownload": "Download as ", + "commonProtocols": "General protocols:", + "indexStatusSynchronized": "Records in index/db = {{indexStatus['index.count']}}/{{indexStatus['db.count']}}", + "indexStatusSynchronized-error": "When number of records is not equal in the database and in the index, check first that the catalogue point to the correct index. If yes, try to reindex the catalogue from admin > tools. If there is still a difference, check for indexing errors in the log file and fix the metadata record using the XML view.", + "IndexReadOnlyHealthCheck": "Index is in readonly mode", + "summary": "Summary", + "metadataRecords": "Metadata records", + "accessAndUseConstraints": "Access and use constraints", + "results": "Results", + "format-zip": "ZIP", + "facet-geometry": "Spatial filter", + "usingCswFromNode": "Using portal CSW: ", + "validateInspireUsingNode": "Remote INSPIRE validation using portal ", + "noINSPIRETestTokenAvailable": "INSPIRE validator returned an empty token. Validation status can't be checked now. Check you configuration and API key or retry later.", + "system/localrating/notificationLevel": "Rating notification level", + "system/localrating/notificationLevel-help": "Define which users to alert in case of rating.", + "system/inspire/remotevalidation/apikey": "API key", + "system/inspire/remotevalidation/apikey-help": "Users and organisations interested in receiving an API key will need to contact the Validator team by sending an e-mail to JRC-INSPIRE-SUPPORT AT ec.europa.eu and provide the following information: name of the organisation, responsible contact point and intended use of the API key.", + "system/inspire/remotevalidation/nodeid": "Portal identifier to use for the validation", + "system/inspire/remotevalidation/nodeid-help": "If null, the record is uploaded to the validator, if a node is defined, then the CSW url of this node is used, the validator will make a GetRecordById request to retrieve the record.", + "system/security/password/allowAdminReset": "Allow password reset by administrator", + "system/security/password/allowAdminReset-help": "If a mail server is configured, then users can reset password directly. For security reason, enable this option only if there is no mail server configured.", + "chooseOptionsToCustomize": "Choose an option to customize", + "ui/chooseAnOption-help": "Current user configuration is empty. Choose one or more option above or create a full configuration.", + "uiConfigForm": "Configuration form", + "uiConfigJsonForm": "JSON form", + "uiCurrentConfig": "Current configuration", + "uiBasicConfig": "Full configuration", + "uiRemoveDefaultOptions": "Remove default options", + "preferredOptions": "Preferred options", + "ui-full-configuration": "All default options (reset all current options)", + "ui-full-current-configuration": "All current configuration", + "ui-hitsPerPage": "Default number of records per page", + "ui-queryTitle": "Query for title only search", + "ui-related": "Results / Type of related records to search for", + "ui-includePortals": "User searches / Include portals", + "ui-list": "Record view list", + "ui-langDetector": "Lang detection", + "ui-nodeDetector": "Portal detection", + "ui-serviceDetector": "Service detection", + "ui-baseURLDetector": "Base URL detection", + "ui-detectors": "Detectors", + "pageId": "Page identifier", + "pageContent": "Page content", + "pageContentFile": "Page content file", + "pageLabel": "Page label", + "pageIcon": "Page icon", + "pageIcon-help": "Optionally, define a font-awesome icon. Example: 'fa-wrench'.", + "pageSection": "Page section", + "pageApiLink": "Page API link", + "uiRestorePrevious": "Restore last saved", + "onlyMyRecord": "Only my records", + "searchWithLang": "Languages", + "searchAllLanguages-help": "Define which language is giving priorities to some records.", + "searchInAllLanguages": "in all languages", + "searchInUILanguage": "in UI language", + "searchInDetectedLanguage": "in detected language", + "forceALanguage": "in language:", + "cite.dataset": "Cite dataset", + "cite.format.html": "Html", + "cite.format.text": "Text", + "cite.format.ris": "RIS", + "cite.format.ris.help": "Tag format developed by Research Information Systems.", + "cite.format.bibtex": "BibTex", + "cite.format.bibtex.help": "A BibTeX database file is formed by a list of entries, with each entry corresponding to a bibliographical item.", + "origin": "Origin", + "forMoreInformationContact": "For more information contact ", + "indexingErrorMessages": "{{count}} indexing warnings and/or errors", + "searchAndReplace": "Search and replace", + "xpathEdits": "XPath editing", + "batchEdits": "Form editing", + "addXpathCondition": "an optional condition", + "condition": "Condition", + "searchAndReplaceEditsHelp": "Use the database to run a search and replace operation.", + "addSearchAndReplace-help": "", + "searchValue": "Value", + "searchReplacement": "Replacement", + "previewChangesAsXml": "XML Preview", + "previewChangesAsHtml": "HTML Preview", + "previewChangesAsDiff": "Diff", + "previewChangesAsPatch": "Patch", + "noSearchAndReplaceChangesToApply": "Define a search value first.", + "regexpFlags": "Regular expression flags (depends on the database used)", + "processPreview": "Process preview", + "regexpFlags-m": "enables multiline mode", + "regexpFlags-n": "allows the period to match the newline character", + "regexpFlags-i": "enables case insensitive matching", + "regexpFlags-c": "disables case insensitive matching", + "createCollectionFromSelectionAs": "Create collection from selection as", + "supplementalInformation": "Supplemental Information", + "sourceDescription": "Source description", + "processSteps": "Process steps", + "orderingInstructions": "Ordering instructions", + "siblingsReverseLinks": "Other resources (other record links)", + "focusOnFrom": "Focus on resources from ", + "focusOn": "Focus on ", + "extentDescription": "Extent description", + "extentIdentifier": "Extent identifier", + "memberOf": "Member of:", + "keywordAnchorLink": "More information about ", + "facet-linkUrl": "Url", + "facet-linkProtocol": "Protocol", + "copyToClipboard": "Copy to clipboard.", + "copyUrlToClipboard": "Copy URL to clipboard.", + "copyHarvesterConfig": "Copy harvester config", + "copyListOfUuids": "Copy list of UUIDs", + "addHarvesterFromClipboard": "Paste harvester config", + "harvesterConfigIsNotJson": "The harvester config must be a JSON configuration.", + "harvesterConfigIsNotValid": "The harvester config does not look to be a valid configuration.", + "specificationConformance": "Specification conformance", + "toggleOptions": "Toggle filter options (open or close filter tree)", + "ui-showMosaic": "Show overview mosaic in home page", + "ui-showMaps": "Show latest maps in home page", + "ui-queryBaseOptions": "Search query options", + "ui-queryBaseOptions-help": "Check documentation for more details", + "sortBy": "Sort by", + "uuidMergePolicy": "UUID merge policy", + "filteringAndProcessing": "Filtering and processing response", + "recordCreationOptions": "Record creation options", + "batchEditConfigIsNotValid": "Batch edit configuration is invalid. It must be a JSON
      {\"insertMode\": \"gn_add\", \"xpath\": \"...\", \"value\": \"...\"}
      ", + "batchEditConfigIsNotJson": "Batch edit configuration is not JSON.", + "testLink": "Test", + "metadata/link": "Link analysis", + "metadata/link/excludedUrlPattern": "Exclude URL from link analysis", + "metadata/link/excludedUrlPattern-help": "eg. (https://resources.domain.org/datasets/.*|https://uri.domain.org/.*)", + "portals": "Change Portals", + "wmstime-info": "Browse {{layerName}} over time. This dataset provides data for {{instantNumber}} dates from {{start}} to {{end}}.", + "wmselevation-info": "Browse {{layerName}} elevation dimension. This dataset provides data for {{instantNumber}} elevations from {{start}} to {{end}}.", + "animationInterval": "Animation interval: ", + "layerParameter": "Settings", + "chooseFileToUpload": "Choose or drop a file here", + "atom.header": "Atom feeds", + "atom.noresults": "No atom feed available", + "atom.title": "Title", + "atom.content": "Content", + "atom.id": "Identifier", + "atom.rights": "Rights", + "atom.describedby": "Described by", + "atom.author": "Author", + "atom.updated": "Updated", + "setServiceConnectPoint": "Add service connect point", + "mimeType": "Format", + "uploadedResourceAlreadyExistException": "File {{file}} already exist in this record data store. Remove it first.", + "qualityMeasures": "Quality", + "measureType": "Type", + "measureName": "Measure", + "measureDescription": "Description", + "measureValue": "Value", + "measureDate": "Date", + "switchPortals": "Switch to another Portal", + "dataPreview": "Discover data", + "tableOfContents": "Table of Contents", + "staticPageFormat-LINK": "Web link", + "staticPageFormat-HTML": "HTML content displayed embedded in the app", + "staticPageFormat-HTMLPAGE": "HTML content displayed in a new browser tab", + "staticPageFormat-TEXT": "Plain text content", + "staticPageStatus-HIDDEN": "Visible only to the administrator", + "staticPageStatus-PRIVATE": "Visible to logged users", + "staticPageStatus-PUBLIC": "Visible to everyone", + "pageLink": "Link", + "pageSection-help": "Currently, the default UI view only supports TOP and FOOTER values. Custom UI views can make use of additional values.", + "application/vnd.geo+json": "GeoJSON", + "application/json": "JSON", + "shape-zip": "ESRI Shapefile", + "text/xml; subtype=gml/2.1.2": "GML 2.1.2", + "text/xml; subtype=gml/3.1.1": "GML 3.1.1", + "text/xml; subtype=gml/3.2": "GML 3.2", + "lastCreatedRecords": "Last created records", + "associationType": "Association type", + "initiativeType": "Initiative type", + "associatedTo": "Associated ", + "overviewDescription": "Overview description", + "overviewUrl": "Overview URL", + "restApiUrl": "REST API URL", + "filterHelp": "Please click on one of the buttons below to activate the filter" +} diff --git a/web/src/main/webResources/WEB-INF/config-db/initial_data.xml b/web/src/main/webResources/WEB-INF/config-db/initial_data.xml index 2aa89356172..893b6ae7cf8 100644 --- a/web/src/main/webResources/WEB-INF/config-db/initial_data.xml +++ b/web/src/main/webResources/WEB-INF/config-db/initial_data.xml @@ -115,6 +115,10 @@ + + + + diff --git a/web/src/main/webResources/WEB-INF/config-spring-geonetwork.xml b/web/src/main/webResources/WEB-INF/config-spring-geonetwork.xml index 7e045987083..641281129f2 100644 --- a/web/src/main/webResources/WEB-INF/config-spring-geonetwork.xml +++ b/web/src/main/webResources/WEB-INF/config-spring-geonetwork.xml @@ -101,6 +101,7 @@ spa swe tur + wel diff --git a/web/src/main/webapp/WEB-INF/classes/setup/sql/data/loc-wel-default.sql b/web/src/main/webapp/WEB-INF/classes/setup/sql/data/loc-wel-default.sql new file mode 100644 index 00000000000..65dce3ab573 --- /dev/null +++ b/web/src/main/webapp/WEB-INF/classes/setup/sql/data/loc-wel-default.sql @@ -0,0 +1,545 @@ +INSERT INTO Languages (id, name, isinspire) VALUES ('wel','Cymraeg', 'y'); + +-- Take care to table ID (related to other loc files) +INSERT INTO CategoriesDes (iddes, langid, label) VALUES (1,'wel','Mapiau & graffeg'); +INSERT INTO CategoriesDes (iddes, langid, label) VALUES (2,'wel','Setiau data'); +INSERT INTO CategoriesDes (iddes, langid, label) VALUES (3,'wel','Adnoddau rhyngweithiol'); +INSERT INTO CategoriesDes (iddes, langid, label) VALUES (4,'wel','Ceisiadau'); +INSERT INTO CategoriesDes (iddes, langid, label) VALUES (5,'wel','Astudiaethau achos, arferion gorau'); +INSERT INTO CategoriesDes (iddes, langid, label) VALUES (6,'wel','Trafodion y gynhadledd'); +INSERT INTO CategoriesDes (iddes, langid, label) VALUES (7,'wel','Llun'); +INSERT INTO CategoriesDes (iddes, langid, label) VALUES (8,'wel','Sain/Fideo'); +INSERT INTO CategoriesDes (iddes, langid, label) VALUES (9,'wel','Cyfeirlyfrau'); +INSERT INTO CategoriesDes (iddes, langid, label) VALUES (10,'wel','Adnoddau gwybodaeth eraill'); +INSERT INTO CategoriesDes (iddes, langid, label) VALUES (12,'wel','Cofrestri'); +INSERT INTO CategoriesDes (iddes, langid, label) VALUES (13,'wel','Samplau Corfforol'); + +INSERT INTO GroupsDes (iddes, langid, label) VALUES (-1,'wel','Gwestai'); +INSERT INTO GroupsDes (iddes, langid, label) VALUES (0,'wel','Mewnrwyd'); +INSERT INTO GroupsDes (iddes, langid, label) VALUES (1,'wel','I gyd'); +INSERT INTO GroupsDes (iddes, langid, label) VALUES (2,'wel','Grŵp sampl'); + +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (1,'wel','Afar'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (2,'wel','Abkhazian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (3,'wel','Achinese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (4,'wel','Acoli'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (5,'wel','Adangme'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (6,'wel','Adyghe; Adygei'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (7,'wel','Afro-Asiatic (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (8,'wel','Afrihili'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (9,'wel','Afrikaans'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (10,'wel','Ainu'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (11,'wel','Akan'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (12,'wel','Akkadian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (13,'wel','Albanian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (14,'wel','Aleut'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (15,'wel','Algonquian languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (16,'wel','Southern Altai'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (17,'wel','Amharic'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (18,'wel','English, Old (ca.450-1100)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (19,'wel','Angika'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (20,'wel','Apache languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (21,'wel','Arabic'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (22,'wel','Aramaic'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (23,'wel','Aragonese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (24,'wel','Armenian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (25,'wel','Mapudungun; Mapuche'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (26,'wel','Arapaho'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (27,'wel','Artificial (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (28,'wel','Arawak'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (29,'wel','Assamese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (30,'wel','Asturian; Bable'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (31,'wel','Athapascan languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (32,'wel','Australian languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (33,'wel','Avaric'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (34,'wel','Avestan'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (35,'wel','Awadhi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (36,'wel','Aymara'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (37,'wel','Azerbaijani'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (38,'wel','Banda languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (39,'wel','Bamileke languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (40,'wel','Bashkir'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (41,'wel','Baluchi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (42,'wel','Bambara'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (43,'wel','Balinese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (44,'wel','Basque'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (45,'wel','Basa'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (46,'wel','Baltic (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (47,'wel','Beja'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (48,'wel','Belarusian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (49,'wel','Bemba'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (50,'wel','Bengali'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (51,'wel','Berber (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (52,'wel','Bhojpuri'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (53,'wel','Bihari'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (54,'wel','Bikol'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (55,'wel','Bini; Edo'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (56,'wel','Bislama'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (57,'wel','Siksika'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (58,'wel','Bantu (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (59,'wel','Bosnian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (60,'wel','Braj'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (61,'wel','Breton'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (62,'wel','Batak languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (63,'wel','Buriat'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (64,'wel','Buginese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (65,'wel','Bulgarian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (66,'wel','Burmese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (67,'wel','Blin; Bilin'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (68,'wel','Caddo'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (69,'wel','Central American Indian (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (70,'wel','Galibi Carib'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (71,'wel','Catalan; Valencian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (72,'wel','Caucasian (Other)on liturgique; welux bulgare'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (73,'wel','Cebuano'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (74,'wel','Celtic (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (75,'wel','Chamorro'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (76,'wel','Chibcha'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (77,'wel','Chechen'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (78,'wel','Chagataier)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (79,'wel','Chinese(Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (80,'wel','Chuukese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (81,'wel','Mari'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (82,'wel','Chinook jargon'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (83,'wel','Choctaw'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (84,'wel','Chipewyan'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (85,'wel','Cherokee'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (86,'wel','Church Slavic; Old Slavonic; Church Sl'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (87,'wel','Chuvash'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (88,'wel','Cheyenne'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (89,'wel','Chamic languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (90,'wel','Coptic'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (91,'wel','Cornish'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (92,'wel','Corsican'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (93,'wel','Creoles and pidgins, English based (Ot'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (94,'wel','Creoles and pidgins, French-based (Oth'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (95,'wel','Creoles and pidgins, Portuguese-based '); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (96,'wel','Cree'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (97,'wel','Crimean Tatar; Crimean Turkish'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (98,'wel','Creoles and pidgins (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (99,'wel','Kashubian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (100,'wel','Cushitic (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (101,'wel','Czech'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (102,'wel','Dakota'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (103,'wel','Danish'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (104,'wel','Dargwa'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (105,'wel','Land Dayak languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (106,'wel','Delaware'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (107,'wel','Slave (Athapascan)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (108,'wel','Dogrib'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (109,'wel','Dinka'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (110,'wel','Divehi; Dhivehi; Maldivian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (111,'wel','Dogri'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (112,'wel','Dravidian (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (113,'wel','Lower Sorbian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (114,'wel','Duala'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (115,'wel','Dutch, Middle (ca.1050-1350)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (116,'wel','Dutch; Flemish'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (117,'wel','Dyula'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (118,'wel','Dzongkha'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (119,'wel','Efik'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (120,'wel','Egyptian (Ancient)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (121,'wel','Ekajuk'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (122,'wel','Elamite'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (123,'wel','English'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (124,'wel','English, Middle (1100-1500)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (125,'wel','Esperanto'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (126,'wel','Estonian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (127,'wel','Ewe'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (128,'wel','Ewondo'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (129,'wel','Fang'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (130,'wel','Faroese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (131,'wel','Fanti'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (132,'wel','Fijian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (133,'wel','Filipino; Pilipino'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (134,'wel','Finnish'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (135,'wel','Finno-Ugrian (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (136,'wel','Fon'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (137,'wel','French'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (138,'wel','French, Middle (ca.1400-1600)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (139,'wel','French, Old (842-ca.1400)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (140,'wel','Northern Frisian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (141,'wel','Eastern Frisian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (142,'wel','Western Frisian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (143,'wel','Fulah'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (144,'wel','Friulian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (145,'wel','Ga'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (146,'wel','Gayo'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (147,'wel','Gbaya'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (148,'wel','Germanic (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (149,'wel','Georgian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (150,'wel','German'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (151,'wel','Geez'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (152,'wel','Gilbertese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (153,'wel','Gaelic; Scottish Gaelic'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (154,'wel','Irish'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (155,'wel','Galician'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (156,'wel','Manx'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (157,'wel','German, Middle High (ca.1050-1500)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (158,'wel','German, Old High (ca.750-1050)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (159,'wel','Gondi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (160,'wel','Gorontalo'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (161,'wel','Gothicanguage Association)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (162,'wel','Grebo'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (163,'wel','Greek, Ancient (to 1453)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (164,'wel','Greek, Modern (1453-)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (165,'wel','Guarani'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (166,'wel','Swiss German; Alemannic'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (167,'wel','Gujarati'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (168,'wel','Gwich''in'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (169,'wel','Haida'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (170,'wel','Haitian; Haitian Creole'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (171,'wel','Hausa'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (172,'wel','Hawaiian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (173,'wel','Hebrew'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (174,'wel','Herero'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (175,'wel','Hiligaynon'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (176,'wel','Himachali'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (177,'wel','Hindi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (178,'wel','Hittite'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (179,'wel','Hmong'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (180,'wel','Hiri Motu'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (181,'wel','Upper Sorbian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (182,'wel','Hungarian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (183,'wel','Hupa'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (184,'wel','Iban'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (185,'wel','Igbo'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (186,'wel','Icelandic'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (187,'wel','Ido'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (188,'wel','Sichuan Yi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (189,'wel','Ijo languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (190,'wel','Inuktitut'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (191,'wel','Interlingue'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (192,'wel','Iloko'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (193,'wel','Interlingua (International Auxiliary L'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (194,'wel','Indic (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (195,'wel','Indonesian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (196,'wel','Indo-European (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (197,'wel','Ingush'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (198,'wel','Inupiaq'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (199,'wel','Iranian (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (200,'wel','Iroquoian languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (201,'wel','Italian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (202,'wel','Javanese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (203,'wel','Lojban'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (204,'wel','Japanese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (205,'wel','Judeo-Persian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (206,'wel','Judeo-Arabic'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (207,'wel','Kara-Kalpak'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (208,'wel','Kabyle'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (209,'wel','Kachin; Jingpho'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (210,'wel','Kalaallisut; Greenlandic'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (211,'wel','Kamba'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (212,'wel','Kannada'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (213,'wel','Karen languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (214,'wel','Kashmiri'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (215,'wel','Kanuri'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (216,'wel','Kawi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (217,'wel','Kazakh'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (218,'wel','Kabardian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (219,'wel','Khasi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (220,'wel','Khoisan (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (221,'wel','Central Khmer'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (222,'wel','Khotanese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (223,'wel','Kikuyu; Gikuyu'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (224,'wel','Kinyarwanda'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (225,'wel','Kirghiz; Kyrgyz'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (226,'wel','Kimbundu'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (227,'wel','Konkani'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (228,'wel','Komi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (229,'wel','Kongo'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (230,'wel','Korean'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (231,'wel','Kosraean'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (232,'wel','Kpelle'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (233,'wel','Karachay-Balkar'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (234,'wel','Karelian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (235,'wel','Kru languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (236,'wel','Kurukh'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (237,'wel','Kuanyama; Kwanyama'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (238,'wel','Kumyk'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (239,'wel','Kurdish'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (240,'wel','Kutenai'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (241,'wel','Ladino'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (242,'wel','Lahnda'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (243,'wel','Lamba'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (244,'wel','Lao'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (245,'wel','Latin'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (246,'wel','Latvian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (247,'wel','Lezghian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (248,'wel','Limburgan; Limburger; Limburgish'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (249,'wel','Lingala'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (250,'wel','Lithuanian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (251,'wel','Mongo'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (252,'wel','Lozi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (253,'wel','Luxembourgish; Letzeburgesch'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (254,'wel','Luba-Lulua'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (255,'wel','Luba-Katangaxon, Low'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (256,'wel','Ganda'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (257,'wel','Luiseno'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (258,'wel','Lunda'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (259,'wel','Luo (Kenya and Tanzania)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (260,'wel','Lushai'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (261,'wel','Macedonian00E5l'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (262,'wel','Madurese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (263,'wel','Magahi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (264,'wel','Marshallese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (265,'wel','Maithili'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (266,'wel','Makasarl Nepal Bhasa'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (267,'wel','Malayalam'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (268,'wel','Mandingo'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (269,'wel','Maori'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (270,'wel','Austronesian (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (271,'wel','Marathi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (272,'wel','Masai'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (273,'wel','Malay'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (274,'wel','Moksha'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (275,'wel','Mandar'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (276,'wel','Mende'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (277,'wel','Irish, Middle (900-1200)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (278,'wel','Mi''kmaq; Micmac'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (279,'wel','Minangkabau'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (280,'wel','Miscellaneous languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (281,'wel','Mon-Khmer (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (282,'wel','Malagasy'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (283,'wel','Maltese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (284,'wel','Manchu'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (285,'wel','Manipuri'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (286,'wel','Manobo languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (287,'wel','Mohawk'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (288,'wel','Moldavian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (289,'wel','Mongolian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (290,'wel','Mossi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (291,'wel','Multiple languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (292,'wel','Munda languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (293,'wel','Creek'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (294,'wel','Mirandese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (295,'wel','Marwari'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (296,'wel','Mayan languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (297,'wel','Erzya'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (298,'wel','Nahuatl languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (299,'wel','North American Indian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (300,'wel','Neapolitan'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (301,'wel','Nauru'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (302,'wel','Navajo; Navaho'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (303,'wel','Ndebele, South; South Ndebele'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (304,'wel','Ndebele, North; North Ndebele'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (305,'wel','Ndonga'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (306,'wel','Low German; Low Saxon; German, Low; Sa'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (307,'wel','Nepali'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (308,'wel','Nepal Bhasa; Newari'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (309,'wel','Nias'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (310,'wel','Niger-Kordofanian (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (311,'wel','Niuean'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (312,'wel','Norwegian Nynorsk; Nynorsk, Norwegian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (313,'wel','Bokmål, Norwegian; Norwegian Bokmål'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (314,'wel','Nogai'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (315,'wel','Norse, Old'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (316,'wel','Norwegian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (317,'wel','Pedi; Sepedi; Northern Sotho'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (318,'wel','Nubian languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (319,'wel','Classical Newari; Old Newari; Classica'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (320,'wel','Chichewa; Chewa; Nyanja'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (321,'wel','Nyamwezi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (322,'wel','Nyankole'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (323,'wel','Nyoro'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (324,'wel','Nzima'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (325,'wel','Occitan (post 1500); Provençal'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (326,'wel','Ojibwa'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (327,'wel','Oriya'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (328,'wel','Oromo'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (329,'wel','Osage'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (330,'wel','Ossetian; Ossetic'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (331,'wel','Turkish, Ottoman (1500-1928)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (332,'wel','Otomian languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (333,'wel','Papuan (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (334,'wel','Pangasinan'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (335,'wel','Pahlavi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (336,'wel','Pampanga'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (337,'wel','Panjabi; Punjabi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (338,'wel','Papiamento'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (339,'wel','Palauan'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (340,'wel','Persian, Old (ca.600-400 B.C.)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (341,'wel','Persian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (342,'wel','Philippine (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (343,'wel','Phoenician'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (344,'wel','Pali'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (345,'wel','Polish'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (346,'wel','Pohnpeian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (347,'wel','Portuguese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (348,'wel','Prakrit languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (349,'wel','Provençal, Old (to 1500)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (350,'wel','Pushto'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (351,'wel','Reserved for local use'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (352,'wel','Quechua'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (353,'wel','Rajasthani'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (354,'wel','Rapanui'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (355,'wel','Rarotongan; Cook Islands Maori'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (356,'wel','Romance (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (357,'wel','Romansh'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (358,'wel','Romany'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (359,'wel','Romanian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (360,'wel','Rundi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (361,'wel','Aromanian; Arumanian; Macedo-Romanian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (362,'wel','Russian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (363,'wel','Sandawe'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (364,'wel','Sango'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (365,'wel','Yakut'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (366,'wel','South American Indian (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (367,'wel','Salishan languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (368,'wel','Samaritan Aramaic'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (369,'wel','Sanskrit'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (370,'wel','Sasak'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (371,'wel','Santali'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (372,'wel','Serbian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (373,'wel','Sicilian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (374,'wel','Scots'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (375,'wel','Croatian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (376,'wel','Selkup'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (377,'wel','Semitic (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (378,'wel','Irish, Old (to 900)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (379,'wel','Sign Languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (380,'wel','Shan'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (381,'wel','Sidamo'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (382,'wel','Sinhala; Sinhalese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (383,'wel','Siouan languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (384,'wel','Sino-Tibetan (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (385,'wel','Slavic (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (386,'wel','Slovak'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (387,'wel','Slovenian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (388,'wel','Southern Sami'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (389,'wel','Northern Sami'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (390,'wel','Sami languages (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (391,'wel','Lule Sami'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (392,'wel','Inari Sami'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (393,'wel','Samoan'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (394,'wel','Skolt Sami'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (395,'wel','Shona'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (396,'wel','Sindhi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (397,'wel','Soninke'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (398,'wel','Sogdian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (399,'wel','Somali'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (400,'wel','Songhai languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (401,'wel','Sotho, Southern'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (402,'wel','Spanish; Castilian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (403,'wel','Sardinian; Zazaki'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (404,'wel','Sranan Tongo'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (405,'wel','Serer'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (406,'wel','Nilo-Saharan (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (407,'wel','Swati'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (408,'wel','Sukuma'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (409,'wel','Sundanese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (410,'wel','Susu'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (411,'wel','Sumerian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (412,'wel','Swahili'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (413,'wel','Swedish'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (414,'wel','Syriac'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (415,'wel','Tahitian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (416,'wel','Tai (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (417,'wel','Tamil'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (418,'wel','Tatar'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (419,'wel','Telugu'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (420,'wel','Timnendere)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (421,'wel','Tereno'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (422,'wel','Tetum'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (423,'wel','Tajik'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (424,'wel','Tagalog'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (425,'wel','Thai'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (426,'wel','Tibetan'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (427,'wel','Tigre'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (428,'wel','Tigrinya'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (429,'wel','Tiv'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (430,'wel','Tokelau'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (431,'wel','Klingon; tlhIngan-Hol'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (432,'wel','Tlingit'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (433,'wel','Tamashek'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (434,'wel','Tonga (Nyasa)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (435,'wel','Tonga (Tonga Islands)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (436,'wel','Tok Pisin'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (437,'wel','Tsimshian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (438,'wel','Tswana'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (439,'wel','Tsonga'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (440,'wel','Turkmen'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (441,'wel','Tumbuka'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (442,'wel','Tupi languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (443,'wel','Turkish'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (444,'wel','Altaic (Other)'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (445,'wel','Tuvalu'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (446,'wel','Twi'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (447,'wel','Tuvinian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (448,'wel','Udmurt'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (449,'wel','Ugaritic'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (450,'wel','Uighur; Uyghur'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (451,'wel','Ukrainian'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (452,'wel','Umbundu'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (453,'wel','Undetermined'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (454,'wel','Urdu'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (455,'wel','Uzbek'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (456,'wel','Vai'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (457,'wel','Venda'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (458,'wel','weltnamese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (459,'wel','Volapük'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (460,'wel','Votic'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (461,'wel','Wakashan languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (462,'wel','Walamo'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (463,'wel','Waray'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (464,'wel','Washo'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (465,'wel','Cymraeg'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (466,'wel','Sorbian languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (467,'wel','Walloon'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (468,'wel','Wolof'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (469,'wel','Kalmyk; Oirat'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (470,'wel','Xhosa'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (471,'wel','Yao'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (472,'wel','Yapese'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (473,'wel','Yiddish'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (474,'wel','Yoruba'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (475,'wel','Yupik languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (476,'wel','Zapotec'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (477,'wel','Zenaga'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (478,'wel','Zhuang; Chuang'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (479,'wel','Zande languages'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (480,'wel','Zulu'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (481,'wel','Zuni'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (482,'wel','No linguistic content'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (483,'wel','N''Ko'); +INSERT INTO IsoLanguagesDes (iddes, langid, label) VALUES (484,'wel','Zaza; Dimili; Dimli; Kirdki; Kirmanjki'); + +INSERT INTO OperationsDes (iddes, langid, label) VALUES (0,'wel','Cyhoeddi'); +INSERT INTO OperationsDes (iddes, langid, label) VALUES (1,'wel','Lawrlwytho'); +INSERT INTO OperationsDes (iddes, langid, label) VALUES (2,'wel','Golygu'); +INSERT INTO OperationsDes (iddes, langid, label) VALUES (3,'wel','Hysbysu'); +INSERT INTO OperationsDes (iddes, langid, label) VALUES (5,'wel','Map Rhyngweithiol'); +INSERT INTO OperationsDes (iddes, langid, label) VALUES (6,'wel','Yn cael sylw'); + +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (0,'wel','Anhysbys'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (1,'wel','Drafft'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (2,'wel','Cymeradwywyd'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (3,'wel','Wedi ymddeol'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (4,'wel','Cyflwynwyd'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (5,'wel','Gwrthodwyd'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (50,'wel','Cofnod wedi''i greu.'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (51,'wel','Cofnod wedi''i ddiweddaru.'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (52,'wel','Atodiad {{h.item1}} wedi''i ychwanegu.'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (53,'wel','Ymlyniad {{h.item1}} wedi''i ddileu'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (54,'wel','Perchennog wedi newid o {{h.item1}} i {{h.item2}}.'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (55,'wel','Newidiodd perchennog y grŵp o {{h.item1}} i {{h.item2}}'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (56,'wel','Breintiau wedi''u diweddaru.'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (57,'wel','Categori wedi''i newid. Nawr mae''r categorïau yn {{h.item1}}.'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (58,'wel','Dilysu wedi''i sbarduno. Y statws ymadael nawr yw {{h.item1}}.'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (59,'wel','Statws wedi''i newid o {{h.item1}} i {{h.item2}}.'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (60,'wel','Diweddarwyd y cofnod trwy broses {{h.item1}}.'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (61,'wel','Cofnod wedi''i ddileu.'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (62,'wel','Cofnod wedi''i fewnforio.'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (63,'wel','Cofnod wedi''i adfer.'); +INSERT INTO StatusValuesDes (iddes, langid, label) VALUES (100,'wel','Gofynnwyd am greu DOI.'); + +INSERT INTO SelectionsDes (iddes, langid, label) VALUES (0,'wel','Cofnodion a ffefrir'); +INSERT INTO SelectionsDes (iddes, langid, label) VALUES (1,'wel','Rhestr wylio'); + + +INSERT INTO GUF_RatingCriteriaDes (iddes, langid, label) VALUES (-1,'wel', 'Cyfartaledd'); +INSERT INTO GUF_RatingCriteriaDes (iddes, langid, label) VALUES (0,'wel', 'Cyflawnrwydd# A yw''r wybodaeth ar y dudalen hon yn ddigon cyflawn i wybod beth y gallwch ei ddisgwyl o''r set ddata hon?'); +INSERT INTO GUF_RatingCriteriaDes (iddes, langid, label) VALUES (1,'wel', 'Discoverability#A oedd hi''n hawdd dod o hyd i''r dudalen wybodaeth hon?'); +INSERT INTO GUF_RatingCriteriaDes (iddes, langid, label) VALUES (2,'wel', 'Darllenadwyedd#A oedd hi''n hawdd darllen a deall cynnwys y dudalen hon?'); +INSERT INTO GUF_RatingCriteriaDes (iddes, langid, label) VALUES (3,'wel', 'Ansawdd data# A yw''r set ddata yn cynnwys y wybodaeth yr oeddech yn ei disgwyl, a oes gan y set ddata ddigon o gywirdeb, a yw''r data yn ddilys/yn gyfoes?'); +INSERT INTO GUF_RatingCriteriaDes (iddes, langid, label) VALUES (4,'wel', 'Ansawdd gwasanaeth# Darperir y set ddata fel gwasanaeth neu deip cyfryngol sy''n hawdd gweithio ag ef?'); From 77756f279e3d9bc591a07ab386676c937ba23c46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Garc=C3=ADa?= Date: Wed, 13 Mar 2024 09:13:42 +0100 Subject: [PATCH 08/15] Release notes for GeoNetwork 4.29 / 3.12.12 versions --- docs/changes/changes3.12.12-0.txt | 64 +++++++++++++++++ docs/changes/changes4.2.9-0.txt | 70 +++++++++++++++++++ .../overview/change-log/maintenance/index.md | 3 +- .../docs/overview/change-log/stable/index.md | 3 +- .../overview/change-log/version-3.12.12.md | 24 +++++++ .../docs/overview/change-log/version-4.2.9.md | 18 +++++ docs/manual/mkdocs.yml | 2 + 7 files changed, 182 insertions(+), 2 deletions(-) create mode 100644 docs/changes/changes3.12.12-0.txt create mode 100644 docs/changes/changes4.2.9-0.txt create mode 100644 docs/manual/docs/overview/change-log/version-3.12.12.md create mode 100644 docs/manual/docs/overview/change-log/version-4.2.9.md diff --git a/docs/changes/changes3.12.12-0.txt b/docs/changes/changes3.12.12-0.txt new file mode 100644 index 00000000000..43a4fce6aa0 --- /dev/null +++ b/docs/changes/changes3.12.12-0.txt @@ -0,0 +1,64 @@ +================================================================================ +=== +=== GeoNetwork 3.12.12: List of changes +=== +================================================================================ +- Documentation / GeoNetwork 3.12 doing a release fixes (#7852) +- [Backport 3.12.x] GeoNetwork harvester / Check if a resource exists to save it, instead of trying to retrieve the file details, to avoid confusing NoSuchFileException exception (#7846) +- Harvesters / Reset harvester history pagination when selecting a harvester (#7836) +- Follow up of #7279 to unify the button links in the metadata detail page as done for the analog change in main branch (#7391) +- Remove invalid empty migration added accidentally in https://github.com/geonetwork/core-geonetwork/commit/93377dd1866a5ee3f5b0098bcd1dd6188c009771 (#7821) +- Doc / Editor configuration improvements (#7826) +- [Backport 3.12.x] Bump actions/setup-java from 4.0.0 to 4.1.0 (#7816) +- [Backport 3.12.x] Fix alignment of user enabled checkbox (#7772) +- Remove handlebars.js v2.0.0 (#7762) +- update 3.12.x branch to recent sphinx-build and crank up warnings +- Addressing docs glitch #7666 creating-group and authentication-mode +- Addressing docs glitch #7666 tutorials/deployment/index +- addressing docs-glitch in install-guide/configuring-database +- addressing docs-glitch in search-ui/enrichview and search-ui/loadview +- addressing docs-glitch in install-guide/map-print-setup +- addressing docs-glitch in publishing/managing-privileges +- corrected minor typo in install-guide/map-print-setup +- Fix conversion errors after switching to MkDocs +- manual review of mkdocs glitches +- [Backport 3.12.x] Create a metadata / Add dynamic and download privileges to the users in the same group (#7748) +- Metadata detail page - don't display the resources description duplicated (#6798) +- Use the generated metadata UUID for resource links when importing metadata with the option 'Generate UUID' (#7734) +- Remove unused jslint-maven-plugin +- [Backport 3.12.x] Bump org.json:json from 20140107 to 20240205 (#7723) +- [Backport 3.12.x] Github Actions / Bump stCarolas/setup-maven from 4 to 5 (#7719) +- [Backport 3.12.x] Bump commons-fileupload from 1.3.3 to 1.5 (#7698) +- Fix pdf link issue +- Fix mimetypes on attachments as some were incorrect. (#7676) +- Docs / Update copyright year +- Fix the grid on the homepage of the documentation (#7559) +- troubleshoot release module order of execution and profile acivation and handling of jetty folder +- Remember to include -Drelease flag so that all modules (even optional modules) are compiled and tested during QA +- [BP] Bump actions/setup-java from 3.12.0 to 4.0.0 (#7522) +- [BP] Service context null pointer (#7593) +- [BP] Overview not shown in PDF export when the overview image is stored in GeoNetwork and requires authentication to access it. Fixes #7540 (#7556) +- [BP] Update iso19139 csw-full.xsl (#7558) +- [BP] Add ownerId to geonet:info (#7547) +- [BP] Don't display header menu and footer in single metadata PDF export (#7532) +- [BP] Bump actions/setup-python from 4 to 5 (#7543) +- [BP] Remote INSPIRE Atom Feeds harvester - Remove duplicates by dataset identifier (#7491) +- [BP] When getting locale message, default locale to LocaleContextHolder when locale is null (#7516) +- [BP] Fix some cases that were not considering both message and description when displaying errors. (#7517) +- [BP] Docs / Fix the mike version to 2.0.0 and change the parameter --no-redirect to --alias-type=copy (changed in mike 2.0.0) (#7507) +- [BP] Check http links in documentation (#7496) +- [BP] Update manual links to use https://docs.geonetwork-opensource.org/ (#7487) +- [BP] Change the structure of the MkDocs assets. Stylesheets and logos are moved to the `overrides` directory (#7429) +- Fix publish link (#7479) +- Fix url link in full view. bracket ") " could be included in link (#7483) +- [BP] Batch edit access level for editor role (#7464) +- [BP] Add node identifier parameter for xlst processing. Required in skin.xsl (#7454) +- Fix other exceptions in tests related to (#6977) +- [BP] Remove exception class name from the error message (#6977) +- [BP] Fix cookies path when deployed on root "/" context (#7446) +- [BP] Fix exception handling from schematron validation so that it flags the metadata as invalid if there is an exception (#6978) +- [BP] Remove old password field for admins (#7417) +- [backport 3.12.x] Add documentation to GitHub workflows (#7414) +- [BP] Change the url the icon in the homepage is linking to (#7422) +- Remove changelog for latest and stable +- Correct canonical_version to stable diff --git a/docs/changes/changes4.2.9-0.txt b/docs/changes/changes4.2.9-0.txt new file mode 100644 index 00000000000..28b376d7ba9 --- /dev/null +++ b/docs/changes/changes4.2.9-0.txt @@ -0,0 +1,70 @@ +================================================================================ +=== +=== GeoNetwork 4.2.9: List of changes +=== +================================================================================ +- Fix startup error. Follow up #7456 (#7859) +- Documentation / GeoNetwork 4.2 doing a release fixes (#7647) +- [Backport 4.2.x] Extend proxy to manage duplicated parameters (#7854) +- [Backport 4.2.x] Configuration to restrict the hosts and ports accessible by the http proxy servlet (#7326) +- [Backport 4.2.x] GeoNetwork harvester / Check if a resource exists to save it, instead of trying to retrieve the file details, to avoid confusing NoSuchFileException exception (#7845) +- Standards / Formatter / Citation / Pick latest date (#7835) +- [Backport 4.2.x] INSPIRE / Add testsuite for IACS (#7834) +- [Backport 4.2.x] Harvester / Localfilesystem / Log properly to harvester log file. (#7833) +- [Backport 4.2.x] Record view / ISO19139 / ISO19115-3.2008 display the unit part in @uom attribute, not the full url (#7832) +- Harvesters / Reset harvester history pagination when selecting a harvester (#7831) +- Trigger metadata unpublish event when removing the privileges to the ALL group in the privileges dialog (#7828) +- Doc / Editor configuration improvements (#7827) +- Update lodash to version 4.17.21 (#7825) +- [Backport 4.2.x] Bump actions/setup-java from 4.0.0 to 4.1.0 (#7814) +- Record view / Don't add the associated resources in the metadata static page, this page doesn't include JS libs (#7797) +- [Backport 4.2.x] Decouple metadata user feedback from metadata rating feature (#7796) +- [Backport 4.2.x] Fix wrong manual links (#7793) +- [Backport 4.2.x] Additional ISO19139 German translations (#7788) +- [Backport 4.2.x] Replace the 'unlock' icon with the 'lock open' icon (#7787) +- [Backport 4.2.x] Removed @RequestHeader for "Accept" headers as it is not supported by openAPI specification (#7785) +- Fix missing MetadataStatusResponse and MetadataWorkflowStatusResponse in open api spec (#7783) +- Fix SpringDoc duplicate Schema name (#7781) +- [Backport 4.2.x] Fix duplicate GET operation on /{portal}/api/sources and missing /subportal endpoint (#7780) +- Spit getRecordAs @RequestMapping into getRecordAsJson and getRecordAsXML in order to fix duplicate operation Id - By having multiple @RequestMapping was causing to create operation id as getRecordAs and getRecordAs_1 +- [Backport 4.2.x] Fix alignment of user enabled checkbox (#7773) +- [Backport 4.2.x] Fix ISO19139 German labels (#7763) +- Remove handlebars.js v2.0.0 +- Reports / Fix extract user groups for non-admin users (#7746) +- Addressing docs glitch #7666 creating-group and authentication-mode +- Addressing docs glitch #7666 in installing-from-war-file, version-4.0.2 and tutorials/deployment/index +- addressing docs-glitch in install-guide/configuring-database +- addressing docs-glitch in search-ui/enrichview and search-ui/loadview +- addressing docs-glitch in install-guide/map-print-setup +- addressing docs-glitch in publishing/managing-privileges +- corrected minor typo in install-guide/map-print-setup +- Fix conversion errors after switching to MkDocs +- manual review of mkdocs glitches +- [Backport 4.2.x] Create a metadata / Add dynamic and download privileges to the users in the same group (#7744) +- Index / Add danish language. (#7736) +- [Backport 4.2.x] Documentation / Elasticsearch query endpoint - query samples (#7732) +- [Backport 4.2.x] Separate docs for _search and _msearch (#7731) +- Map viewer / Remove Stamen background layers - no longer available (#7730) +- Use the generated metadata UUID for resource links when importing metadata with the option 'Generate UUID' (#7729) +- Remove unused jslint-maven-plugin (#7727) +- [Backport 4.2.x] Bump org.json:json from 20140107 to 20240205 (#7724) +- [Backport 4.2.x] Github Actions / Bump stCarolas/setup-maven from 4 to 5 (#7720) +- Enable preemptive for csw requests with credentials (#5497) (#7716) +- [Backport 4.2.x] Add a role and feature matrix to the GeoNetwork documentation (#7709) +- Addressing docs translation glitch #7687- fixes creating-custom-editor +- Addressing docs translation glitch #7687- fixes adding-static-pages and configuring-search-fields +- [Backport 4.2.x] Bump commons-fileupload from 1.3.3 to 1.5 (#7699) +- [Backport 4.2.x] Remove empty class SourcesLib and deprecated/unused methods in ResourceLib / Sonarlint improvements (#7694) +- Update Springdoc so that it supports Map objects in the request parameters. By default injectable parameters are excluded from request parameters. Map is one of those object however it does occur where map objects are supplied as parameters and they should be added to open api spec. There are currently no cases where a map is injected on purpose into the request parameters. This will fix issues with missing request parameters documentation which are based on Map objects. +- Fix spring doc for attachment and keyword to better identify files resources being returned. Update attachment api "Get a metadata resource" should indicate that gets a file resource Also "Create a new resource" should identify that it consumes any resources Update keywords api "Download a thesaurus by name" should indicate that gets a file resource +- Fix springdoc so that enums names are used instead of toString This fixes bug where some apis will not execute correctly from the swagger pager due to the wrong enum value being supplied. i.e. visibility should be using enum values PUBLIC/PRIVATE instead of public/private in formatters/zip api, the format should be SIMPLE/PARTIAL/FULL instead of simple/partial/full +- Editor / Fix add element attribute (#7685) +- [Backport 4.2.x] Metadata editor / Fix javascript error in the add thumbnail option when the metadata has 1 WMS layer (#7684) +- [BP] Search results / Configure related records type depending on template. (#7376) +- Metadata editor / Fix javascript error when editing a metadata, due to undefined property in gnLinkToMetadata directive (#7682) +- Fix pdf link issue (#7681) +- Fix mimetypes on attachments as some were incorrect. (#7675) +- accidental localhost link in docs +- Docs / Update copyright year +- Bump github/codeql-action from 2 to 3 (#7662) +- Bump advanced-security/maven-dependency-submission-action from 3 to 4 (#7661) diff --git a/docs/manual/docs/overview/change-log/maintenance/index.md b/docs/manual/docs/overview/change-log/maintenance/index.md index a7939f78428..b5617fde87f 100644 --- a/docs/manual/docs/overview/change-log/maintenance/index.md +++ b/docs/manual/docs/overview/change-log/maintenance/index.md @@ -5,10 +5,11 @@ This series is under active use by our community, with regular improvements, doc ## Latest -* [Version 3.12.11](../version-3.12.11.md) +* [Version 3.12.12](../version-3.12.12.md) ## History +* [Version 3.12.11](../version-3.12.11.md) * [Version 3.12.10](../version-3.12.10.md) * [Version 3.12.9](../version-3.12.9.md) * [Version 3.12.8](../version-3.12.8.md) diff --git a/docs/manual/docs/overview/change-log/stable/index.md b/docs/manual/docs/overview/change-log/stable/index.md index e1e8d081652..ad5d4b53c6f 100644 --- a/docs/manual/docs/overview/change-log/stable/index.md +++ b/docs/manual/docs/overview/change-log/stable/index.md @@ -5,11 +5,12 @@ This series is under active use by our community, with regular improvements, doc ## Latest -- [Version 4.2.8](../version-4.2.8.md) +- [Version 4.2.9](../version-4.2.9.md) ## History +- [Version 4.2.8](../version-4.2.8.md) - [Version 4.2.7](../version-4.2.7.md) - [Version 4.2.6](../version-4.2.6.md) - [Version 4.2.5](../version-4.2.5.md) diff --git a/docs/manual/docs/overview/change-log/version-3.12.12.md b/docs/manual/docs/overview/change-log/version-3.12.12.md new file mode 100644 index 00000000000..79c6d07c10f --- /dev/null +++ b/docs/manual/docs/overview/change-log/version-3.12.12.md @@ -0,0 +1,24 @@ +# Version 3.12.12 + +GeoNetwork 3.12.12 is a minor release. + +## List of changes + +- Metadata + - [BP] [Fix exception handling from schematron validation so that it flags the metadata as invalid if there is an exception](https://github.com/geonetwork/core-geonetwork/pull/6978) + - [BP] [Overview not shown in PDF export when the overview image is stored in GeoNetwork and requires authentication to access it](https://github.com/geonetwork/core-geonetwork/pull/7556) + +- Administration + - [BP] [Harvesters / Reset harvester history pagination when selecting a harvester](https://github.com/geonetwork/core-geonetwork/pull/7836) + - [BP] [GeoNetwork harvester / Check if a resource exists to save it, instead of trying to retrieve the file details, to avoid confusing NoSuchFileException exception](https://github.com/geonetwork/core-geonetwork/pull/7846) + +- Other + - [BP] [Fix cookies path when deployed on root "/" context](https://github.com/geonetwork/core-geonetwork/pull/7446) + - [BP] [Remove exception class name from the error message](https://github.com/geonetwork/core-geonetwork/pull/6977) + - Update `org.json:json` from version 20140107 to 20240205 + - Update `commons-fileupload` from version 1.3.3 to 1.5 + - Documentation / Manual improvements + +and more \... see [3.12.12 issues](https://github.com/geonetwork/core-geonetwork/issues?q=is%3Aissue+milestone%3A3.12.12+is%3Aclosed) and [pull requests](https://github.com/geonetwork/core-geonetwork/pulls?page=3&q=is%3Apr+milestone%3A3.12.12+is%3Aclosed) for full details. + +**Full Changelog**: [here](https://github.com/geonetwork/core-geonetwork/compare/3.12.11...3.12.12) diff --git a/docs/manual/docs/overview/change-log/version-4.2.9.md b/docs/manual/docs/overview/change-log/version-4.2.9.md new file mode 100644 index 00000000000..875c88c9d5e --- /dev/null +++ b/docs/manual/docs/overview/change-log/version-4.2.9.md @@ -0,0 +1,18 @@ +# Version 4.2.9 {#version-429} + +GeoNetwork 4.2.9 release is a minor release. + +## List of changes + +Major changes: + +- [Create a metadata / Add dynamic and download privileges to the users in the same group](https://github.com/geonetwork/core-geonetwork/pull/7744) +- [Decouple metadata user feedback from metadata rating feature](https://github.com/geonetwork/core-geonetwork/pull/7796) +- [Extend http proxy to manage duplicated parameters](https://github.com/geonetwork/core-geonetwork/pull/7854) +- [Fix MIME-types on attachments](https://github.com/geonetwork/core-geonetwork/pull/7675) +- [Fix pdf link to the application website](https://github.com/geonetwork/core-geonetwork/pull/7681) +- Update `org.json:json` from version 20140107 to 20240205 +- Documentation / Manual improvements +- Documentation / API SpringDoc fixes + +and more \... see [4.2.9 issues](https://github.com/geonetwork/core-geonetwork/issues?q=is%3Aissue+milestone%3A4.2.9+is%3Aclosed) and [pull requests](https://github.com/geonetwork/core-geonetwork/pulls?page=3&q=is%3Apr+milestone%3A4.2.9+is%3Aclosed) for full details. diff --git a/docs/manual/mkdocs.yml b/docs/manual/mkdocs.yml index 9bc8ec5332e..59c5bded39b 100644 --- a/docs/manual/mkdocs.yml +++ b/docs/manual/mkdocs.yml @@ -154,6 +154,7 @@ nav: - overview/change-log/version-4.4.0.md - 'Stable': - overview/change-log/stable/index.md + - overview/change-log/version-4.2.9.md - overview/change-log/version-4.2.8.md - overview/change-log/version-4.2.7.md - overview/change-log/version-4.2.6.md @@ -165,6 +166,7 @@ nav: - overview/change-log/version-4.2.0.md - 'Maintenance': - overview/change-log/maintenance/index.md + - overview/change-log/version-3.12.12.md - overview/change-log/version-3.12.11.md - overview/change-log/version-3.12.10.md - overview/change-log/version-3.12.9.md From 5641db2d4272aef385a232006982f1c9f958ca74 Mon Sep 17 00:00:00 2001 From: Francois Prunayre Date: Wed, 13 Mar 2024 10:09:04 +0100 Subject: [PATCH 09/15] Release notes for GeoNetwork 4.4.3. --- .../docs/overview/change-log/latest/index.md | 3 +- .../docs/overview/change-log/version-4.4.3.md | 46 +++++++++++++++++++ docs/manual/mkdocs.yml | 1 + 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 docs/manual/docs/overview/change-log/version-4.4.3.md diff --git a/docs/manual/docs/overview/change-log/latest/index.md b/docs/manual/docs/overview/change-log/latest/index.md index d4306639288..8560067a361 100644 --- a/docs/manual/docs/overview/change-log/latest/index.md +++ b/docs/manual/docs/overview/change-log/latest/index.md @@ -6,9 +6,10 @@ This series is under active development by our community, with new features, imp ## Latest -- [Version 4.4.2](../version-4.4.2.md) +- [Version 4.4.3](../version-4.4.3.md) ## History +- [Version 4.4.2](../version-4.4.2.md) - [Version 4.4.1](../version-4.4.1.md) - [Version 4.4.0](../version-4.4.0.md) diff --git a/docs/manual/docs/overview/change-log/version-4.4.3.md b/docs/manual/docs/overview/change-log/version-4.4.3.md new file mode 100644 index 00000000000..25985a774f8 --- /dev/null +++ b/docs/manual/docs/overview/change-log/version-4.4.3.md @@ -0,0 +1,46 @@ +# Version 4.4.3 {#version-423} + +GeoNetwork 4.4.3 release is a minor release. + +## Migration notes + +### Java + +**Version 4.4 only works on Java 11.** + +### Index changes + +This version use Elasticsearch version 8 Java client, it is recommended to use an Elasticsearch version 8 server. +However version 7.15+ and 8+ have been tested. + +After update, don't forget to go to admin console --> tools --> Delete index and reindex. + +### Map + +[Stamen background layers are not available, update your maps](https://github.com/geonetwork/core-geonetwork/pull/7715). + + +## List of changes + +Major changes: + +- [Elasticssearch 8 upgrade](https://github.com/geonetwork/core-geonetwork/pull/7599) +- [Editor / Distribution panel improvements](https://github.com/geonetwork/core-geonetwork/pull/7468) +- [Thesaurus / Add support for codelist described using SDMX](https://github.com/geonetwork/core-geonetwork/pull/7790) +- [Thesaurus / Add support for thesaurus described using OWL format](https://github.com/geonetwork/core-geonetwork/pull/7674) +- [Thesaurus / Improve support of EU publication office SKOS format](https://github.com/geonetwork/core-geonetwork/pull/7673) +- [INSPIRE / Add testsuite for IACS](https://github.com/geonetwork/core-geonetwork/pull/7756) +- [Map viewer / Remove Stamen background layers - no longer available](https://github.com/geonetwork/core-geonetwork/pull/7715) +- [i18n / Add welsh language for user interface](https://github.com/geonetwork/core-geonetwork/pull/7851) +- [Index / Add danish language configuration](https://github.com/geonetwork/core-geonetwork/pull/7697) +- [Index / Translated the index warnings and errors](https://github.com/geonetwork/core-geonetwork/pull/7531) +- [Create a metadata / Add dynamic and download privileges to the users in the same group](https://github.com/geonetwork/core-geonetwork/pull/7744) +- [Decouple metadata user feedback from metadata rating feature](https://github.com/geonetwork/core-geonetwork/pull/7796) +- [Extend http proxy to manage duplicated parameters](https://github.com/geonetwork/core-geonetwork/pull/7854) +- [Fix MIME-types on attachments](https://github.com/geonetwork/core-geonetwork/pull/7675) +- [Fix pdf link to the application website](https://github.com/geonetwork/core-geonetwork/pull/7681) +- Update `org.json:json` from version 20140107 to 20240205 +- Documentation / Manual improvements +- Documentation / API SpringDoc fixes + +and more \... see [4.4.3 issues](https://github.com/geonetwork/core-geonetwork/issues?q=is%3Aissue+milestone%3A4.4.3+is%3Aclosed) and [pull requests](https://github.com/geonetwork/core-geonetwork/pulls?page=3&q=is%3Apr+milestone%3A4.4.3+is%3Aclosed) for full details. diff --git a/docs/manual/mkdocs.yml b/docs/manual/mkdocs.yml index 59c5bded39b..9c58d1c236b 100644 --- a/docs/manual/mkdocs.yml +++ b/docs/manual/mkdocs.yml @@ -149,6 +149,7 @@ nav: - overview/change-log/index.md - 'Latest': - overview/change-log/latest/index.md + - overview/change-log/version-4.4.3.md - overview/change-log/version-4.4.2.md - overview/change-log/version-4.4.1.md - overview/change-log/version-4.4.0.md From d7d36bfb4163b5432dfdf6bfb1fa77b86bb18da0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Garc=C3=ADa?= Date: Wed, 13 Mar 2024 10:47:15 +0100 Subject: [PATCH 10/15] Move version 3.12.x changelog to archive --- .../docs/overview/change-log/archive/index.md | 16 ++++++++++++++++ .../overview/change-log/maintenance/index.md | 15 --------------- 2 files changed, 16 insertions(+), 15 deletions(-) diff --git a/docs/manual/docs/overview/change-log/archive/index.md b/docs/manual/docs/overview/change-log/archive/index.md index 3c9dd91e5f5..824ca283152 100644 --- a/docs/manual/docs/overview/change-log/archive/index.md +++ b/docs/manual/docs/overview/change-log/archive/index.md @@ -18,6 +18,22 @@ Volunteers wishing to backport security fixes to older versions of GeoNetwork ar - [Version 4.0.0 Alpha.2](../version-4.0.0-alpha.2.md) - [Version 4.0.0 Alpha.1](../version-4.0.0-alpha.1.md) +## 3.12.x + +- [Version 3.12.12](../version-3.12.12.md) +- [Version 3.12.11](../version-3.12.11.md) +- [Version 3.12.10](../version-3.12.10.md) +- [Version 3.12.9](../version-3.12.9.md) +- [Version 3.12.8](../version-3.12.8.md) +- [Version 3.12.7](../version-3.12.7.md) +- [Version 3.12.6](../version-3.12.6.md) +- [Version 3.12.5](../version-3.12.5.md) +- [Version 3.12.4](../version-3.12.4.md) +- [Version 3.12.3](../version-3.12.3.md) +- [Version 3.12.3](../version-3.12.2.md) +- [Version 3.12.1](../version-3.12.1.md) +- [Version 3.12.0](../version-3.12.0.md) + ## 3.10.x - [Version 3.10.10](../version-3.10.10.md) diff --git a/docs/manual/docs/overview/change-log/maintenance/index.md b/docs/manual/docs/overview/change-log/maintenance/index.md index b5617fde87f..bced56a1b6a 100644 --- a/docs/manual/docs/overview/change-log/maintenance/index.md +++ b/docs/manual/docs/overview/change-log/maintenance/index.md @@ -5,19 +5,4 @@ This series is under active use by our community, with regular improvements, doc ## Latest -* [Version 3.12.12](../version-3.12.12.md) - ## History - -* [Version 3.12.11](../version-3.12.11.md) -* [Version 3.12.10](../version-3.12.10.md) -* [Version 3.12.9](../version-3.12.9.md) -* [Version 3.12.8](../version-3.12.8.md) -* [Version 3.12.7](../version-3.12.7.md) -* [Version 3.12.6](../version-3.12.6.md) -* [Version 3.12.5](../version-3.12.5.md) -* [Version 3.12.4](../version-3.12.4.md) -* [Version 3.12.3](../version-3.12.3.md) -* [Version 3.12.3](../version-3.12.2.md) -* [Version 3.12.1](../version-3.12.1.md) -* [Version 3.12.0](../version-3.12.0.md) From 45ab56ed4f2da2b9158cfedca1c32693db3f81d4 Mon Sep 17 00:00:00 2001 From: Jody Garnett Date: Wed, 13 Mar 2024 12:38:20 -0700 Subject: [PATCH 11/15] require maven 3.8.3 minimum for MNG-7214 fix This is required for https://issues.apache.org/jira/browse/MNG-7214 which avoids problems with competing javax annotations (example jsr250-api and javax.annotation-api) --- pom.xml | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 47993745350..ef36fc51c02 100644 --- a/pom.xml +++ b/pom.xml @@ -245,12 +245,36 @@ maven-toolchains-plugin 3.0.0 + + org.apache.maven.plugins + maven-enforcer-plugin + 3.4.1 + + org.apache.maven.plugins + maven-enforcer-plugin + + + enforce-maven + + enforce + + + + + 3.8.3 + + + + + + + maven-compiler-plugin 11 @@ -269,7 +293,6 @@ - org.apache.maven.plugins maven-resources-plugin UTF-8 @@ -295,7 +318,6 @@ - org.apache.maven.plugins maven-surefire-plugin org.fao.geonet.repository.AbstractSpringDataTest From 661906340463fb3c642d4959926d6f1fe62b24a8 Mon Sep 17 00:00:00 2001 From: Jody Garnett Date: Wed, 13 Mar 2024 13:01:01 -0700 Subject: [PATCH 12/15] Update linux workflow to maven 3.8.3 --- .github/workflows/linux.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index cff43db21d2..8d473643803 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -37,7 +37,7 @@ jobs: - name: Set up Maven uses: stCarolas/setup-maven@v5 with: - maven-version: 3.6.3 + maven-version: 3.8.3 - name: Build with Maven run: | mvn -B -ntp -V install -DskipTests=true -Dmaven.javadoc.skip=true -Drelease -Pwith-doc @@ -63,7 +63,7 @@ jobs: - name: Set up Maven uses: stCarolas/setup-maven@v5 with: - maven-version: 3.6.3 + maven-version: 3.8.3 - name: Test with maven run: | mvn -B resources:resources@copy-index-schema-to-source -f web From e354b17dfb06646549bc503ef5f6a1814ab5db7e Mon Sep 17 00:00:00 2001 From: Francois Prunayre Date: Thu, 14 Mar 2024 08:35:32 +0100 Subject: [PATCH 13/15] Update version to 4.4.3-0 --- .gitignore | 1 + cachingxslt/pom.xml | 2 +- common/pom.xml | 2 +- core/pom.xml | 2 +- csw-server/pom.xml | 2 +- datastorages/cmis/pom.xml | 2 +- datastorages/jcloud/pom.xml | 2 +- datastorages/pom.xml | 2 +- datastorages/s3/pom.xml | 2 +- docs/changes/changes4.4.3-0.txt | 117 ++++++++++++++++++ docs/manual/pom.xml | 2 +- docs/pom.xml | 2 +- doi/pom.xml | 2 +- domain/pom.xml | 2 +- es/es-dashboards/pom.xml | 2 +- es/pom.xml | 2 +- estest/pom.xml | 2 +- events/pom.xml | 2 +- harvesters/pom.xml | 2 +- healthmonitor/pom.xml | 2 +- index/pom.xml | 2 +- inspire-atom/pom.xml | 2 +- jmeter/pom.xml | 2 +- listeners/pom.xml | 2 +- messaging/pom.xml | 2 +- oaipmh/pom.xml | 2 +- pom.xml | 2 +- release/build.properties | 2 +- release/pom.xml | 2 +- schemas-test/pom.xml | 2 +- schemas/csw-record/pom.xml | 2 +- schemas/dublin-core/pom.xml | 2 +- schemas/iso19110/pom.xml | 2 +- schemas/iso19115-3.2018/pom.xml | 2 +- schemas/iso19139/pom.xml | 2 +- schemas/pom.xml | 2 +- schemas/schema-core/pom.xml | 2 +- sde/pom.xml | 2 +- services/pom.xml | 2 +- slave/pom.xml | 2 +- web-ui/pom.xml | 2 +- web/pom.xml | 2 +- .../setup/sql/data/data-db-default.sql | 2 +- .../sql/migrate/v443/migrate-default.sql | 2 +- workers/camelPeriodicProducer/pom.xml | 2 +- workers/pom.xml | 2 +- workers/wfsfeature-harvester/pom.xml | 2 +- wro4j/pom.xml | 2 +- 48 files changed, 164 insertions(+), 46 deletions(-) create mode 100644 docs/changes/changes4.4.3-0.txt diff --git a/.gitignore b/.gitignore index 5bb1036a3a4..36df50f9368 100644 --- a/.gitignore +++ b/.gitignore @@ -37,6 +37,7 @@ out/ package-lock.json rebel.xml release/jetty/* +release-build.sh schemas/*/doc/*/*.rst schematrons/.build target/ diff --git a/cachingxslt/pom.xml b/cachingxslt/pom.xml index d654a3e9917..c8a874f1f40 100644 --- a/cachingxslt/pom.xml +++ b/cachingxslt/pom.xml @@ -31,7 +31,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-SNAPSHOT + 4.4.3-0 diff --git a/common/pom.xml b/common/pom.xml index 0dbdf0ab22d..edf2c51f2e2 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -31,7 +31,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-SNAPSHOT + 4.4.3-0 diff --git a/core/pom.xml b/core/pom.xml index f9a6f76215e..1bf63749685 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/csw-server/pom.xml b/csw-server/pom.xml index 5ba962cc2a5..cc1f371c5b5 100644 --- a/csw-server/pom.xml +++ b/csw-server/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/datastorages/cmis/pom.xml b/datastorages/cmis/pom.xml index 9ee1af76782..3b776509b7c 100644 --- a/datastorages/cmis/pom.xml +++ b/datastorages/cmis/pom.xml @@ -28,7 +28,7 @@ gn-datastorages org.geonetwork-opensource.datastorage - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/datastorages/jcloud/pom.xml b/datastorages/jcloud/pom.xml index 01b948abb98..4963ca7772c 100644 --- a/datastorages/jcloud/pom.xml +++ b/datastorages/jcloud/pom.xml @@ -28,7 +28,7 @@ gn-datastorages org.geonetwork-opensource.datastorage - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/datastorages/pom.xml b/datastorages/pom.xml index 3a290e17019..0c31061a619 100644 --- a/datastorages/pom.xml +++ b/datastorages/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/datastorages/s3/pom.xml b/datastorages/s3/pom.xml index 26a0fcd7685..d9f0ed1caa9 100644 --- a/datastorages/s3/pom.xml +++ b/datastorages/s3/pom.xml @@ -28,7 +28,7 @@ gn-datastorages org.geonetwork-opensource.datastorage - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/docs/changes/changes4.4.3-0.txt b/docs/changes/changes4.4.3-0.txt new file mode 100644 index 00000000000..ce5661888d1 --- /dev/null +++ b/docs/changes/changes4.4.3-0.txt @@ -0,0 +1,117 @@ +================================================================================ +=== +=== GeoNetwork 4.4.3: List of changes +=== +================================================================================ +- Update linux workflow to maven 3.8.3 +- require maven 3.8.3 minimum for MNG-7214 fix +- Move version 3.12.x changelog to archive +- Release notes for GeoNetwork 4.4.3. +- Release notes for GeoNetwork 4.29 / 3.12.12 versions +- add necessary welsh language files for translating the application (#7851) +- Standard / ISO19115-3 / Batch edit may trigger error on creation date (#7712) +- Fix startup error. Follow up #7456 (#7858) +- i18n / Transifex update. (#7855) +- ISO19139 / Index online resources application profile element encoded as anchor (#7798) +- Extend proxy to manage duplicated parameters (#7456) +- Documentation / GeoNetwork 4.4 doing a release fixes (#7648) +- Indexing / ISO / Properly index all keywords even if in different thesaurus block +- Editor / Distribution / Properly refresh list link on last one (#7844) +- GeoNetwork harvester / Check if a resource exists to save it, instead of trying to retrieve the file details, to avoid confusing NoSuchFileException exception (#7577) +- Update README.md +- Update README.md +- Bump actions/upload-artifact from 3.1.0 to 4.3.1 +- Bump ossf/scorecard-action from 2.1.2 to 2.3.1 +- Harvesting / WFS Features / Do not skip attributes even if geom is invalid. +- Editor / Associated resource / Add button icon configuration. +- Editor / Distribution improvements - Update configuration for ISO19139 distributions as protocols are not categorized as ISO19115-3 protocols. (#7838) +- Standards / Formatter / Citation / Pick latest date +- INSPIRE / Add testsuite for IACS (#7756) +- Harvester / Localfilesystem / Log properly to harvester log file. (#7660) +- Harvester / WFS / No need to manually managed commit interval (#7737) +- Record view / ISO19139 / ISO19115-3.2008 display the unit part in @uom attribute, not the full url (#7791) +- Harvesters / Reset harvester history pagination when selecting a harvester +- Thesaurus / Improve support of EU publication office SKOS format (#7673) +- Create scorecard.yml +- Doc / Editor configuration improvements (#7776) +- Update lodash to version 4.17.21 +- Improve Elasticsearch manual installation to disable security for development +- Docker / Update docker compose in es module to Elasticsearch 8 (#7817) +- Trigger metadata unpublish event when removing the privileges to the ALL group in the privileges dialog +- Bump actions/setup-java from 4.0.0 to 4.1.0 (#7808) +- Translated the index warnings / errors. (#7531) +- minor typo fixes +- System setting for documentation url (#7782) +- Record view / Don't add the associated resources in the metadata static page, this page doesn't include JS libs +- Decouple metadata user feedback from metadata rating feature (#7770) +- Thesaurus / Add support for codelist described using SDMX +- Fix wrong manual links +- Standard / ISO19115-3 / Quality report / Index descriptive results +- Additional ISO19139 German translations (#7778) +- Update the `set privileges` popup with the new icon +- Replace the 'unlock' icon with the 'lock open' icon which is clearer. This new icon has more visual differences with the lock icon and it's therefore easier for a user to see the difference. +- Removed @RequestHeader for "Accept" headers as it is not supported by openAPI specification (#7572) +- Fix missing MetadataStatusResponse and MetadataWorkflowStatusResponse in open api spec (#7627) +- Fix SpringDoc duplicate Schema name Without this fix springdoc would randomly pick between 2 conflicting schemas and this could produce incorrect results in the open api spec. +- Merge getSubPortals into getSources so that there is only one GET api for the operation. This fixes the bug with 2 GET operation on /{portal}/api/sources +- Update services/src/main/java/org/fao/geonet/api/sources/SourcesApi.java +- Fix duplicate GET operation on /{portal}/api/sources Add missing /subportal endpoint. +- Spit getRecordAs @RequestMapping into getRecordAsJson and getRecordAsXML in order to fix duplicate operation Id - By having multiple @RequestMapping was causing to create operation id as getRecordAs and getRecordAs_1 +- Fix alignment of user enabled checkbox (#7764) +- Fix ISO19139 German labels (#7761) +- Remove handlebars.js v2.0.0 +- Fix query field name in OverviewIndexFieldUpdater to update the metadata overview in the index +- API / Category / Fix update fields +- Addressing docs glitch #7666 creating-group and authentication-mode +- Addressing docs glitch #7666 in installing-from-war-file, version-4.0.2 and tutorials/deployment/index +- addressing docs-glitch in install-guide/configuring-database +- addressing docs-glitch in search-ui/enrichview and search-ui/loadview +- addressing docs-glitch in install-guide/map-print-setup +- addressing docs-glitch in publishing/managing-privileges +- corrected minor typo in install-guide/map-print-setup +- Fix conversion errors after switching to MkDocs +- manual review of mkdocs glitches +- Reports / Fix extract user groups for non-admin users (#7742) +- Create a metadata / Add dynamic and download privileges to the users in the same group (#7679) +- Thesaurus / Add support for thesaurus described using OWL format +- Editor / Add view name class to facilitate custom styling +- Update SECURITY.md +- Index / Add danish language. (#7697) +- Standard / ISO19115-3 / Improve french translation for temporal extent (#7700) +- Standard / ISO19115-3 / Editor configuration / Improve date field configuration (#7702) +- Documentation / Elasticsearch query endpoint - query samples (#7722) +- remove mention of q query parameter +- Separate docs for _search and _msearch +- Map viewer / Remove Stamen background layers - no longer available +- Use the generated metadata UUID for resource links when importing metadata with the option 'Generate UUID' +- Elasticssearch 8 upgrade (#7599) +- Vertical extent label modification (#7604) +- Remove unused jslint-maven-plugin (#7725) +- Bump org.json:json from 20140107 to 20240205 (#7701) +- using gn- icon definitions for all types now +- Github Actions / Bump stCarolas/setup-maven from 4 to 5 (#7718) +- Enable preemptive for csw requests with credentials (#5497) (#7706) +- Add a role and feature matrix to the GeoNetwork documentation (#7686) +- Addressing docs translation glitch #7687- fixes adding-static-pages and configuring-search-fields (#7696) +- Automatic formatting +- Bump commons-fileupload from 1.3.3 to 1.5 (#6851) +- Remove empty class SourcesLib and deprecated/unused methods in ResourceLib / Sonarlint improvements (#7692) +- Fix spring doc for attachment and keyword to better identify files resources being returned. Update attachment api "Get a metadata resource" should indicate that gets a file resource Also "Create a new resource" should identify that it consumes any resources Update keywords api "Download a thesaurus by name" should indicate that gets a file resource +- Fix springdoc so that enums names are used instead of toString This fixes bug where some apis will not execute correctly from the swagger pager due to the wrong enum value being supplied. i.e. visibility should be using enum values PUBLIC/PRIVATE instead of public/private in formatters/zip api, the format should be SIMPLE/PARTIAL/FULL instead of simple/partial/full +- Update Springdoc so that it supports Map objects in the request parameters. By default injectable parameters are excluded from request parameters. Map is one of those object however it does occur where map objects are supplied as parameters and they should be added to open api spec. There are currently no cases where a map is injected on purpose into the request parameters. This will fix issues with missing request parameters documentation which are based on Map objects. +- Editor / Fix add element attribute (#7683) +- Metadata editor / Fix javascript error in the add thumbnail option when the metadata has 1 WMS layer (#7646) +- Add configuration to filter out Elasticsearch fields when download or dynamic privileges are not set +- Fix javascript error accessing the metadata detail page in gnMetadataSocialLink directive +- Metadata editor / Fix javascript error when editing a metadata, due to undefined property in gnLinkToMetadata directive +- Fix pdf link issue (#7667) +- Editor / Distribution improvements (#7468) +- Fix mimetypes on attachments as some were incorrect. (#7671) +- accidental localhost link in docs +- Docs / Update copyright year +- Bump github/codeql-action from 2 to 3 (#7552) +- Bump advanced-security/maven-dependency-submission-action from 3 to 4 (#7655) +- Formatter / Withheld element not always hidden. +- Change log for version 4.4.2 (#7654) +- Change log for version 4.2.8 +- Update version to 4.4.3-SNAPSHOT \ No newline at end of file diff --git a/docs/manual/pom.xml b/docs/manual/pom.xml index 68654e27401..0b625985424 100644 --- a/docs/manual/pom.xml +++ b/docs/manual/pom.xml @@ -27,7 +27,7 @@ gn-docs org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 gn-guide diff --git a/docs/pom.xml b/docs/pom.xml index e1c5e3b5c5c..0d1f664efd5 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 gn-docs diff --git a/doi/pom.xml b/doi/pom.xml index e0fb8dcbf9f..4df96bb0b73 100644 --- a/doi/pom.xml +++ b/doi/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/domain/pom.xml b/domain/pom.xml index 48d5cd34fa4..fa6618403dc 100644 --- a/domain/pom.xml +++ b/domain/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/es/es-dashboards/pom.xml b/es/es-dashboards/pom.xml index cc49025ac53..24e32460629 100644 --- a/es/es-dashboards/pom.xml +++ b/es/es-dashboards/pom.xml @@ -28,7 +28,7 @@ gn-es org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 diff --git a/es/pom.xml b/es/pom.xml index 5e6a40550da..39341677445 100644 --- a/es/pom.xml +++ b/es/pom.xml @@ -5,7 +5,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 gn-es diff --git a/estest/pom.xml b/estest/pom.xml index e9ba611bc41..e583bcd18a7 100644 --- a/estest/pom.xml +++ b/estest/pom.xml @@ -5,7 +5,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/events/pom.xml b/events/pom.xml index 8b8405f0b5e..a4c1300439d 100644 --- a/events/pom.xml +++ b/events/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 GeoNetwork Events diff --git a/harvesters/pom.xml b/harvesters/pom.xml index c830794b85b..1c9c9a6f93c 100644 --- a/harvesters/pom.xml +++ b/harvesters/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/healthmonitor/pom.xml b/healthmonitor/pom.xml index 805dae47790..8285db17cf7 100644 --- a/healthmonitor/pom.xml +++ b/healthmonitor/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/index/pom.xml b/index/pom.xml index 9e82d3e9130..e6851122406 100644 --- a/index/pom.xml +++ b/index/pom.xml @@ -5,7 +5,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 gn-index diff --git a/inspire-atom/pom.xml b/inspire-atom/pom.xml index 31849c58ccb..623482583b3 100644 --- a/inspire-atom/pom.xml +++ b/inspire-atom/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/jmeter/pom.xml b/jmeter/pom.xml index bf6daf9d308..61fbf92124c 100644 --- a/jmeter/pom.xml +++ b/jmeter/pom.xml @@ -29,7 +29,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-SNAPSHOT + 4.4.3-0 diff --git a/listeners/pom.xml b/listeners/pom.xml index d46c1217e63..40221100f28 100644 --- a/listeners/pom.xml +++ b/listeners/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 GeoNetwork Events diff --git a/messaging/pom.xml b/messaging/pom.xml index 54eb690f6d2..2f1c75168b9 100644 --- a/messaging/pom.xml +++ b/messaging/pom.xml @@ -5,7 +5,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/oaipmh/pom.xml b/oaipmh/pom.xml index efa7fe0facc..98e9f97cae1 100644 --- a/oaipmh/pom.xml +++ b/oaipmh/pom.xml @@ -30,7 +30,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-SNAPSHOT + 4.4.3-0 diff --git a/pom.xml b/pom.xml index ef36fc51c02..1f1c53ef86c 100644 --- a/pom.xml +++ b/pom.xml @@ -29,7 +29,7 @@ org.geonetwork-opensource geonetwork pom - 4.4.3-SNAPSHOT + 4.4.3-0 GeoNetwork opensource GeoNetwork opensource is a standards based, Free and Open Source catalog application to manage spatially referenced diff --git a/release/build.properties b/release/build.properties index e7183fe9410..ab4a6da1df5 100644 --- a/release/build.properties +++ b/release/build.properties @@ -6,7 +6,7 @@ supportEmail=geonetwork-users@lists.sourceforge.net # Application version properties version=4.4.3 -subVersion=SNAPSHOT +subVersion=0 # Java runtime properties javaVersion=11 diff --git a/release/pom.xml b/release/pom.xml index 920336a32a0..0033956e61b 100644 --- a/release/pom.xml +++ b/release/pom.xml @@ -7,7 +7,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-SNAPSHOT + 4.4.3-0 gn-release diff --git a/schemas-test/pom.xml b/schemas-test/pom.xml index 6df035d8937..c36908f66de 100644 --- a/schemas-test/pom.xml +++ b/schemas-test/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 jar diff --git a/schemas/csw-record/pom.xml b/schemas/csw-record/pom.xml index e1330565f50..769097b6c6f 100644 --- a/schemas/csw-record/pom.xml +++ b/schemas/csw-record/pom.xml @@ -5,7 +5,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 gn-schema-csw-record diff --git a/schemas/dublin-core/pom.xml b/schemas/dublin-core/pom.xml index 3a4ca0be9a1..4a00be58654 100644 --- a/schemas/dublin-core/pom.xml +++ b/schemas/dublin-core/pom.xml @@ -5,7 +5,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/schemas/iso19110/pom.xml b/schemas/iso19110/pom.xml index 45ed33c2e75..72f5a53c847 100644 --- a/schemas/iso19110/pom.xml +++ b/schemas/iso19110/pom.xml @@ -28,7 +28,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/schemas/iso19115-3.2018/pom.xml b/schemas/iso19115-3.2018/pom.xml index 695b783ee0b..ae4bdd8238f 100644 --- a/schemas/iso19115-3.2018/pom.xml +++ b/schemas/iso19115-3.2018/pom.xml @@ -6,7 +6,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/schemas/iso19139/pom.xml b/schemas/iso19139/pom.xml index 5920df665c1..1ca95b8a5a0 100644 --- a/schemas/iso19139/pom.xml +++ b/schemas/iso19139/pom.xml @@ -5,7 +5,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/schemas/pom.xml b/schemas/pom.xml index 978da36d5ca..b51eac723bb 100644 --- a/schemas/pom.xml +++ b/schemas/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/schemas/schema-core/pom.xml b/schemas/schema-core/pom.xml index ac845103a79..2fd4a553fa1 100644 --- a/schemas/schema-core/pom.xml +++ b/schemas/schema-core/pom.xml @@ -28,7 +28,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/sde/pom.xml b/sde/pom.xml index 14d205fe976..6e25d46f564 100644 --- a/sde/pom.xml +++ b/sde/pom.xml @@ -30,7 +30,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-SNAPSHOT + 4.4.3-0 diff --git a/services/pom.xml b/services/pom.xml index 949daa40507..a4fb98bc73a 100644 --- a/services/pom.xml +++ b/services/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/slave/pom.xml b/slave/pom.xml index 1c81b1b7f17..c038372ef18 100644 --- a/slave/pom.xml +++ b/slave/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 GeoNetwork Slave diff --git a/web-ui/pom.xml b/web-ui/pom.xml index e00c3b5e635..399616173c2 100644 --- a/web-ui/pom.xml +++ b/web-ui/pom.xml @@ -30,7 +30,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-SNAPSHOT + 4.4.3-0 org.geonetwork-opensource diff --git a/web/pom.xml b/web/pom.xml index 764ffe4f8b6..0162a6b0485 100644 --- a/web/pom.xml +++ b/web/pom.xml @@ -30,7 +30,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-SNAPSHOT + 4.4.3-0 diff --git a/web/src/main/webapp/WEB-INF/classes/setup/sql/data/data-db-default.sql b/web/src/main/webapp/WEB-INF/classes/setup/sql/data/data-db-default.sql index d97f9de74e0..ab09029d435 100644 --- a/web/src/main/webapp/WEB-INF/classes/setup/sql/data/data-db-default.sql +++ b/web/src/main/webapp/WEB-INF/classes/setup/sql/data/data-db-default.sql @@ -575,7 +575,7 @@ INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/site/siteId', '', 0, 120, 'n'); INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/site/organization', 'My organization', 0, 130, 'n'); INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/platform/version', '4.4.3', 0, 150, 'n'); -INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/platform/subVersion', 'SNAPSHOT', 0, 160, 'n'); +INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/platform/subVersion', '0', 0, 160, 'n'); INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/site/svnUuid', '', 0, 170, 'y'); INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/server/host', 'localhost', 0, 210, 'n'); diff --git a/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v443/migrate-default.sql b/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v443/migrate-default.sql index 5f7296a4f48..7ec56e18a99 100644 --- a/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v443/migrate-default.sql +++ b/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v443/migrate-default.sql @@ -1,5 +1,5 @@ UPDATE Settings SET value='4.4.3' WHERE name='system/platform/version'; -UPDATE Settings SET value='SNAPSHOT' WHERE name='system/platform/subVersion'; +UPDATE Settings SET value='0' WHERE name='system/platform/subVersion'; INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/documentation/url', 'https://docs.geonetwork-opensource.org/{{version}}/{{lang}}', 0, 570, 'n'); diff --git a/workers/camelPeriodicProducer/pom.xml b/workers/camelPeriodicProducer/pom.xml index e07a3144e12..596a170feed 100644 --- a/workers/camelPeriodicProducer/pom.xml +++ b/workers/camelPeriodicProducer/pom.xml @@ -5,7 +5,7 @@ gn-workers org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/workers/pom.xml b/workers/pom.xml index 63202f133cc..1ffd09a82e8 100644 --- a/workers/pom.xml +++ b/workers/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/workers/wfsfeature-harvester/pom.xml b/workers/wfsfeature-harvester/pom.xml index 9ee202702ef..157faa1925d 100644 --- a/workers/wfsfeature-harvester/pom.xml +++ b/workers/wfsfeature-harvester/pom.xml @@ -28,7 +28,7 @@ gn-workers org.geonetwork-opensource - 4.4.3-SNAPSHOT + 4.4.3-0 4.0.0 diff --git a/wro4j/pom.xml b/wro4j/pom.xml index 9213bf55bff..41d22fbeac8 100644 --- a/wro4j/pom.xml +++ b/wro4j/pom.xml @@ -7,7 +7,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-SNAPSHOT + 4.4.3-0 From 72b524c2377225f1b4a567069f7dee97d4523c79 Mon Sep 17 00:00:00 2001 From: Francois Prunayre Date: Thu, 14 Mar 2024 08:38:56 +0100 Subject: [PATCH 14/15] Update version to 4.4.4-SNAPSHOT --- cachingxslt/pom.xml | 2 +- common/pom.xml | 2 +- core/pom.xml | 2 +- csw-server/pom.xml | 2 +- datastorages/cmis/pom.xml | 2 +- datastorages/jcloud/pom.xml | 2 +- datastorages/pom.xml | 2 +- datastorages/s3/pom.xml | 2 +- docs/manual/pom.xml | 2 +- docs/pom.xml | 2 +- doi/pom.xml | 2 +- domain/pom.xml | 2 +- es/es-dashboards/pom.xml | 2 +- es/pom.xml | 2 +- estest/pom.xml | 2 +- events/pom.xml | 2 +- harvesters/pom.xml | 2 +- healthmonitor/pom.xml | 2 +- index/pom.xml | 2 +- inspire-atom/pom.xml | 2 +- jmeter/pom.xml | 2 +- listeners/pom.xml | 2 +- messaging/pom.xml | 2 +- oaipmh/pom.xml | 2 +- pom.xml | 2 +- release/build.properties | 6 +++--- release/pom.xml | 2 +- schemas-test/pom.xml | 2 +- schemas/csw-record/pom.xml | 2 +- schemas/dublin-core/pom.xml | 2 +- schemas/iso19110/pom.xml | 2 +- schemas/iso19115-3.2018/pom.xml | 2 +- schemas/iso19139/pom.xml | 2 +- schemas/pom.xml | 2 +- schemas/schema-core/pom.xml | 2 +- sde/pom.xml | 2 +- services/pom.xml | 2 +- slave/pom.xml | 2 +- web-ui/pom.xml | 2 +- web/pom.xml | 2 +- .../webResources/WEB-INF/config-db/database_migration.xml | 5 +++++ .../WEB-INF/classes/setup/sql/data/data-db-default.sql | 4 ++-- .../classes/setup/sql/migrate/v444/migrate-default.sql | 2 ++ workers/camelPeriodicProducer/pom.xml | 2 +- workers/pom.xml | 2 +- workers/wfsfeature-harvester/pom.xml | 2 +- wro4j/pom.xml | 2 +- 47 files changed, 55 insertions(+), 48 deletions(-) create mode 100644 web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v444/migrate-default.sql diff --git a/cachingxslt/pom.xml b/cachingxslt/pom.xml index c8a874f1f40..2c7d55b23c1 100644 --- a/cachingxslt/pom.xml +++ b/cachingxslt/pom.xml @@ -31,7 +31,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-0 + 4.4.4-SNAPSHOT diff --git a/common/pom.xml b/common/pom.xml index edf2c51f2e2..275b1544a3b 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -31,7 +31,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-0 + 4.4.4-SNAPSHOT diff --git a/core/pom.xml b/core/pom.xml index 1bf63749685..a3b490a3c17 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/csw-server/pom.xml b/csw-server/pom.xml index cc1f371c5b5..cd7b317b79d 100644 --- a/csw-server/pom.xml +++ b/csw-server/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/datastorages/cmis/pom.xml b/datastorages/cmis/pom.xml index 3b776509b7c..dd96c065dd8 100644 --- a/datastorages/cmis/pom.xml +++ b/datastorages/cmis/pom.xml @@ -28,7 +28,7 @@ gn-datastorages org.geonetwork-opensource.datastorage - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/datastorages/jcloud/pom.xml b/datastorages/jcloud/pom.xml index 4963ca7772c..7d2dc8caeee 100644 --- a/datastorages/jcloud/pom.xml +++ b/datastorages/jcloud/pom.xml @@ -28,7 +28,7 @@ gn-datastorages org.geonetwork-opensource.datastorage - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/datastorages/pom.xml b/datastorages/pom.xml index 0c31061a619..790fa36bffd 100644 --- a/datastorages/pom.xml +++ b/datastorages/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/datastorages/s3/pom.xml b/datastorages/s3/pom.xml index d9f0ed1caa9..f93af3fd4f9 100644 --- a/datastorages/s3/pom.xml +++ b/datastorages/s3/pom.xml @@ -28,7 +28,7 @@ gn-datastorages org.geonetwork-opensource.datastorage - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/docs/manual/pom.xml b/docs/manual/pom.xml index 0b625985424..ec2012561cc 100644 --- a/docs/manual/pom.xml +++ b/docs/manual/pom.xml @@ -27,7 +27,7 @@ gn-docs org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 gn-guide diff --git a/docs/pom.xml b/docs/pom.xml index 0d1f664efd5..41fadf135f2 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 gn-docs diff --git a/doi/pom.xml b/doi/pom.xml index 4df96bb0b73..b18b6e06c3f 100644 --- a/doi/pom.xml +++ b/doi/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/domain/pom.xml b/domain/pom.xml index fa6618403dc..f715db3010e 100644 --- a/domain/pom.xml +++ b/domain/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/es/es-dashboards/pom.xml b/es/es-dashboards/pom.xml index 24e32460629..fd86d42981d 100644 --- a/es/es-dashboards/pom.xml +++ b/es/es-dashboards/pom.xml @@ -28,7 +28,7 @@ gn-es org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT diff --git a/es/pom.xml b/es/pom.xml index 39341677445..d9338a9fc8f 100644 --- a/es/pom.xml +++ b/es/pom.xml @@ -5,7 +5,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 gn-es diff --git a/estest/pom.xml b/estest/pom.xml index e583bcd18a7..588ce309374 100644 --- a/estest/pom.xml +++ b/estest/pom.xml @@ -5,7 +5,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/events/pom.xml b/events/pom.xml index a4c1300439d..329dd0c6ad5 100644 --- a/events/pom.xml +++ b/events/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT GeoNetwork Events diff --git a/harvesters/pom.xml b/harvesters/pom.xml index 1c9c9a6f93c..07259922463 100644 --- a/harvesters/pom.xml +++ b/harvesters/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/healthmonitor/pom.xml b/healthmonitor/pom.xml index 8285db17cf7..fd58de76ef6 100644 --- a/healthmonitor/pom.xml +++ b/healthmonitor/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/index/pom.xml b/index/pom.xml index e6851122406..e4801d49c46 100644 --- a/index/pom.xml +++ b/index/pom.xml @@ -5,7 +5,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 gn-index diff --git a/inspire-atom/pom.xml b/inspire-atom/pom.xml index 623482583b3..09424fda0c8 100644 --- a/inspire-atom/pom.xml +++ b/inspire-atom/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/jmeter/pom.xml b/jmeter/pom.xml index 61fbf92124c..8e4d6b03860 100644 --- a/jmeter/pom.xml +++ b/jmeter/pom.xml @@ -29,7 +29,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-0 + 4.4.4-SNAPSHOT diff --git a/listeners/pom.xml b/listeners/pom.xml index 40221100f28..ed51f29c582 100644 --- a/listeners/pom.xml +++ b/listeners/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT GeoNetwork Events diff --git a/messaging/pom.xml b/messaging/pom.xml index 2f1c75168b9..72f32b8bdba 100644 --- a/messaging/pom.xml +++ b/messaging/pom.xml @@ -5,7 +5,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/oaipmh/pom.xml b/oaipmh/pom.xml index 98e9f97cae1..0e0f1055cf3 100644 --- a/oaipmh/pom.xml +++ b/oaipmh/pom.xml @@ -30,7 +30,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-0 + 4.4.4-SNAPSHOT diff --git a/pom.xml b/pom.xml index 1f1c53ef86c..bf7a6932bbe 100644 --- a/pom.xml +++ b/pom.xml @@ -29,7 +29,7 @@ org.geonetwork-opensource geonetwork pom - 4.4.3-0 + 4.4.4-SNAPSHOT GeoNetwork opensource GeoNetwork opensource is a standards based, Free and Open Source catalog application to manage spatially referenced diff --git a/release/build.properties b/release/build.properties index ab4a6da1df5..bf6bc74a749 100644 --- a/release/build.properties +++ b/release/build.properties @@ -5,11 +5,11 @@ homepage=https://geonetwork-opensource.org supportEmail=geonetwork-users@lists.sourceforge.net # Application version properties -version=4.4.3 -subVersion=0 +version=4.4.4 +subVersion=SNAPSHOT # Java runtime properties javaVersion=11 javaDisplayVersion=11 -jreUrl=https://adoptium.net/en-GB/temurin/releases/?version=4.4.3 +jreUrl=https://adoptium.net/en-GB/temurin/releases/?version=4.4.4 jreName=AdoptOpenJDK diff --git a/release/pom.xml b/release/pom.xml index 0033956e61b..44514cb837d 100644 --- a/release/pom.xml +++ b/release/pom.xml @@ -7,7 +7,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-0 + 4.4.4-SNAPSHOT gn-release diff --git a/schemas-test/pom.xml b/schemas-test/pom.xml index c36908f66de..4a5030a5f39 100644 --- a/schemas-test/pom.xml +++ b/schemas-test/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 jar diff --git a/schemas/csw-record/pom.xml b/schemas/csw-record/pom.xml index 769097b6c6f..c687b740dab 100644 --- a/schemas/csw-record/pom.xml +++ b/schemas/csw-record/pom.xml @@ -5,7 +5,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 gn-schema-csw-record diff --git a/schemas/dublin-core/pom.xml b/schemas/dublin-core/pom.xml index 4a00be58654..2ef0f9b6309 100644 --- a/schemas/dublin-core/pom.xml +++ b/schemas/dublin-core/pom.xml @@ -5,7 +5,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/schemas/iso19110/pom.xml b/schemas/iso19110/pom.xml index 72f5a53c847..f529f2f67dc 100644 --- a/schemas/iso19110/pom.xml +++ b/schemas/iso19110/pom.xml @@ -28,7 +28,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/schemas/iso19115-3.2018/pom.xml b/schemas/iso19115-3.2018/pom.xml index ae4bdd8238f..2e047ce220e 100644 --- a/schemas/iso19115-3.2018/pom.xml +++ b/schemas/iso19115-3.2018/pom.xml @@ -6,7 +6,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/schemas/iso19139/pom.xml b/schemas/iso19139/pom.xml index 1ca95b8a5a0..4d63ef8ffce 100644 --- a/schemas/iso19139/pom.xml +++ b/schemas/iso19139/pom.xml @@ -5,7 +5,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/schemas/pom.xml b/schemas/pom.xml index b51eac723bb..9067bb95ee9 100644 --- a/schemas/pom.xml +++ b/schemas/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/schemas/schema-core/pom.xml b/schemas/schema-core/pom.xml index 2fd4a553fa1..560c937ac02 100644 --- a/schemas/schema-core/pom.xml +++ b/schemas/schema-core/pom.xml @@ -28,7 +28,7 @@ gn-schemas org.geonetwork-opensource.schemas - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/sde/pom.xml b/sde/pom.xml index 6e25d46f564..cfe299ba538 100644 --- a/sde/pom.xml +++ b/sde/pom.xml @@ -30,7 +30,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-0 + 4.4.4-SNAPSHOT diff --git a/services/pom.xml b/services/pom.xml index a4fb98bc73a..14ed8bc753e 100644 --- a/services/pom.xml +++ b/services/pom.xml @@ -27,7 +27,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/slave/pom.xml b/slave/pom.xml index c038372ef18..fcffaafd4fd 100644 --- a/slave/pom.xml +++ b/slave/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT GeoNetwork Slave diff --git a/web-ui/pom.xml b/web-ui/pom.xml index 399616173c2..c360922c8ac 100644 --- a/web-ui/pom.xml +++ b/web-ui/pom.xml @@ -30,7 +30,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-0 + 4.4.4-SNAPSHOT org.geonetwork-opensource diff --git a/web/pom.xml b/web/pom.xml index 0162a6b0485..b0faabb4375 100644 --- a/web/pom.xml +++ b/web/pom.xml @@ -30,7 +30,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-0 + 4.4.4-SNAPSHOT diff --git a/web/src/main/webResources/WEB-INF/config-db/database_migration.xml b/web/src/main/webResources/WEB-INF/config-db/database_migration.xml index e3b6e01cab7..0682f2eb5d8 100644 --- a/web/src/main/webResources/WEB-INF/config-db/database_migration.xml +++ b/web/src/main/webResources/WEB-INF/config-db/database_migration.xml @@ -384,5 +384,10 @@ WEB-INF/classes/setup/sql/migrate/v443/migrate- + + + WEB-INF/classes/setup/sql/migrate/v444/migrate- + + diff --git a/web/src/main/webapp/WEB-INF/classes/setup/sql/data/data-db-default.sql b/web/src/main/webapp/WEB-INF/classes/setup/sql/data/data-db-default.sql index ab09029d435..4d09dae7ba7 100644 --- a/web/src/main/webapp/WEB-INF/classes/setup/sql/data/data-db-default.sql +++ b/web/src/main/webapp/WEB-INF/classes/setup/sql/data/data-db-default.sql @@ -574,8 +574,8 @@ INSERT INTO Operations (id, name) VALUES (6,'featured'); INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/site/name', 'My GeoNetwork catalogue', 0, 110, 'n'); INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/site/siteId', '', 0, 120, 'n'); INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/site/organization', 'My organization', 0, 130, 'n'); -INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/platform/version', '4.4.3', 0, 150, 'n'); -INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/platform/subVersion', '0', 0, 160, 'n'); +INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/platform/version', '4.4.4', 0, 150, 'n'); +INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/platform/subVersion', 'SNAPSHOT', 0, 160, 'n'); INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/site/svnUuid', '', 0, 170, 'y'); INSERT INTO Settings (name, value, datatype, position, internal) VALUES ('system/server/host', 'localhost', 0, 210, 'n'); diff --git a/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v444/migrate-default.sql b/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v444/migrate-default.sql new file mode 100644 index 00000000000..8a49001716c --- /dev/null +++ b/web/src/main/webapp/WEB-INF/classes/setup/sql/migrate/v444/migrate-default.sql @@ -0,0 +1,2 @@ +UPDATE Settings SET value='4.4.4' WHERE name='system/platform/version'; +UPDATE Settings SET value='SNAPSHOT' WHERE name='system/platform/subVersion'; diff --git a/workers/camelPeriodicProducer/pom.xml b/workers/camelPeriodicProducer/pom.xml index 596a170feed..350861205e5 100644 --- a/workers/camelPeriodicProducer/pom.xml +++ b/workers/camelPeriodicProducer/pom.xml @@ -5,7 +5,7 @@ gn-workers org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/workers/pom.xml b/workers/pom.xml index 1ffd09a82e8..32bdaa6f7dc 100644 --- a/workers/pom.xml +++ b/workers/pom.xml @@ -28,7 +28,7 @@ geonetwork org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/workers/wfsfeature-harvester/pom.xml b/workers/wfsfeature-harvester/pom.xml index 157faa1925d..820cb0a83fe 100644 --- a/workers/wfsfeature-harvester/pom.xml +++ b/workers/wfsfeature-harvester/pom.xml @@ -28,7 +28,7 @@ gn-workers org.geonetwork-opensource - 4.4.3-0 + 4.4.4-SNAPSHOT 4.0.0 diff --git a/wro4j/pom.xml b/wro4j/pom.xml index 41d22fbeac8..e4d029fa68d 100644 --- a/wro4j/pom.xml +++ b/wro4j/pom.xml @@ -7,7 +7,7 @@ org.geonetwork-opensource geonetwork - 4.4.3-0 + 4.4.4-SNAPSHOT From 3fa0d8a70a053b9a2b6922580148d6ad5998f13a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Garc=C3=ADa?= Date: Mon, 18 Mar 2024 11:03:33 +0100 Subject: [PATCH 15/15] Editor / Associated resources panel improvements (#7669) * Editor / Associated metadata improvements * Editor / Associated metadata improvements / Add ISO19110 and Dublin core support * Editor / Associated metadata improvements - Support conditions to process associate resources configurations. - Fix link to metadata selection. - Fix source datasets configuration * Editor / Associated metadata improvements / Fix evaluation of conditions to process associate resources configurations * Editor / Associated metadata improvements / Map relation types between UI and updates to load the relations in the associated resources container directive * Editor / Associated metadata improvements / Configurations with predefined fields: - Fix display of the asssociated resources. - Readonly association and initiative types fields in the link to siblings dialog. - Code cleanup. * Editor / Associated metadata improvements / Support multiple remote URL mode * Editor / Associated metadata improvements / Support multiple remote urls * Editor / Associated metadata improvements / DOI panel updates * Editor / Associated resource / Read label and search params from configuration. * Editor / Associated resource / Update labels as siblings are more and more used now. * Editor / Associated resource / Update labels * Editor / Associated resource / Avoid JS error and replace all query placeholders in case of more complex queries eg. titles.title:{query} OR person-id:{query} OR doi:{query}. * Associated resource / Search / Allows unselect. * Associated resource / Add support for link to md or link to service. * Associated resource / allow to deselect DOI resources and add link to view the DOI resource * Associated resource / fix scope reference of metadata selection * Associated resource / Improve link to sibling styling for metadata results and doi searches * Associated resource / Improve link to sibling icons styling * Associated resource / Improve link to sibling icons styling - remove duplicated icon * Editor / Associated metadata improvements - add rel=noopener noreferrer' to external links in doi search panel * Editor / Associated resources / Group by type. --------- Co-authored-by: Francois Prunayre --- .../config/associated-panel/default.json | 14 + .../dublin-core/layout/config-editor.xml | 10 +- .../config/associated-panel/default.json | 7 +- .../plugin/iso19110/layout/config-editor.xml | 3 +- .../config/associated-panel/default.json | 77 +++- .../iso19115-3.2018/layout/config-editor.xml | 9 +- .../config/associated-panel/default.json | 91 ++++ .../plugin/iso19139/layout/config-editor.xml | 17 +- .../edit/onlinesrc/OnlineSrcDirective.js | 421 +++++++++++++++--- .../edit/onlinesrc/OnlineSrcService.js | 67 ++- .../onlinesrc/partials/doisearchpanel.html | 65 +++ .../partials/linkServiceToDataset.html | 42 +- .../edit/onlinesrc/partials/linkToMd.html | 42 +- .../onlinesrc/partials/linktosibling.html | 59 ++- .../partials/remote-record-selector.html | 185 +++++--- .../metadataactions/RelatedDirective.js | 230 ++++++++++ .../associatedResourcesContainer.html | 96 ++++ .../partials/associatedResourcesPanel.html | 16 + .../searchmanager/SearchResultsDirective.js | 9 +- .../searchmanager/partials/searchresults.html | 7 +- .../resources/catalog/locales/en-editor.json | 12 +- .../main/resources/catalog/locales/en-v4.json | 5 +- 22 files changed, 1266 insertions(+), 218 deletions(-) create mode 100644 web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/doisearchpanel.html create mode 100644 web-ui/src/main/resources/catalog/components/metadataactions/partials/associatedResourcesContainer.html create mode 100644 web-ui/src/main/resources/catalog/components/metadataactions/partials/associatedResourcesPanel.html diff --git a/schemas/dublin-core/src/main/plugin/dublin-core/config/associated-panel/default.json b/schemas/dublin-core/src/main/plugin/dublin-core/config/associated-panel/default.json index d9b986c378c..abfae192cdc 100644 --- a/schemas/dublin-core/src/main/plugin/dublin-core/config/associated-panel/default.json +++ b/schemas/dublin-core/src/main/plugin/dublin-core/config/associated-panel/default.json @@ -12,6 +12,20 @@ "fields": { "url": {} } + }], + "associatedResourcesTypes": [{ + "type": "parent", + "label": "linkToParent", + "config": { + "sources": { + "metadataStore": { + "params": { + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": true} + } + } }] } } diff --git a/schemas/dublin-core/src/main/plugin/dublin-core/layout/config-editor.xml b/schemas/dublin-core/src/main/plugin/dublin-core/layout/config-editor.xml index 70484726a72..ff7aa5b8ef2 100644 --- a/schemas/dublin-core/src/main/plugin/dublin-core/layout/config-editor.xml +++ b/schemas/dublin-core/src/main/plugin/dublin-core/layout/config-editor.xml @@ -67,8 +67,7 @@ editActions: ['addOnlinesrc'] }]"/> - +
      @@ -94,8 +93,7 @@ editActions: ['addOnlinesrc'] }]"/> - +
      @@ -118,8 +116,8 @@ editActions: ['addOnlinesrc'] }]"/> - + + diff --git a/schemas/iso19110/src/main/plugin/iso19110/config/associated-panel/default.json b/schemas/iso19110/src/main/plugin/iso19110/config/associated-panel/default.json index c4e7c09595a..53bfe374f1f 100644 --- a/schemas/iso19110/src/main/plugin/iso19110/config/associated-panel/default.json +++ b/schemas/iso19110/src/main/plugin/iso19110/config/associated-panel/default.json @@ -1,3 +1,8 @@ { - "config": {} + "config": { + "associatedResourcesTypes": [ { + "type": "hasfeaturecats", + "allowToAddRelation": false + }] + } } diff --git a/schemas/iso19110/src/main/plugin/iso19110/layout/config-editor.xml b/schemas/iso19110/src/main/plugin/iso19110/layout/config-editor.xml index 2ec78cc74f7..4b628b2ff22 100644 --- a/schemas/iso19110/src/main/plugin/iso19110/layout/config-editor.xml +++ b/schemas/iso19110/src/main/plugin/iso19110/layout/config-editor.xml @@ -68,8 +68,7 @@ - + diff --git a/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/config/associated-panel/default.json b/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/config/associated-panel/default.json index b23fa915667..b087ecb8ee4 100644 --- a/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/config/associated-panel/default.json +++ b/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/config/associated-panel/default.json @@ -991,6 +991,81 @@ } } } - ] + ], + "associatedResourcesTypes": [{ + "type": "siblings", + "label": "linkToSibling", + "config": { + "sources": { + "metadataStore": { + "params": { + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": true} + } + } + }, { + "type": "service", + "label": "linkToService", + "condition": "!gnCurrentEdit.isService", + "config": { + "sources": { + "metadataStore": { + "label": "searchAservice", + "params": { + "resourceType": ["service"], + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": false} + } + } + }, { + "type": "dataset", + "label": "linkToDataset", + "condition": "gnCurrentEdit.isService", + "config": { + "sources": { + "metadataStore": { + "params": { + "resourceType": ["dataset"], + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": false} + } + } + }, { + "type": "source", + "label": "linkToSource", + "config": { + "sources": { + "metadataStore": { + "label": "linkToSource", + "params": { + "resourceType": ["dataset"], + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": false} + } + } + }, { + "type": "fcats", + "label": "linkToFeatureCatalog", + "config": { + "sources": { + "metadataStore": { + "label": "linkToFeatureCatalog", + "params": { + "resourceType": ["featureCatalog"], + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": false} + } + } + }] } } diff --git a/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/layout/config-editor.xml b/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/layout/config-editor.xml index 9f13d94f2e3..8025779fe40 100644 --- a/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/layout/config-editor.xml +++ b/schemas/iso19115-3.2018/src/main/plugin/iso19115-3.2018/layout/config-editor.xml @@ -651,8 +651,7 @@ }]" /> - + - + - + - + + @@ -3225,8 +3229,7 @@ editActions: []}]" /> - + - + - + (.*)<\/title>(.|[\r\n])*/, "$3" ); - scope.remoteRecord.uuid = scope.remoteRecord.remoteUrl; + record.uuid = url; // Looking for schema.org tags or json+ld format could also be an option. } catch (e) { console.warn(e); - return false; + return {}; } } else { - return false; + return {}; } - return true; + + record.remoteUrl = url; + return record; } + scope.$watch( + "multipleSelectionModel.remoteLinksToCheck", + function (newVal, oldVal) { + if (newVal != oldVal) { + if (newVal == 0) { + scope.multipleSelectionModel.remoteRecordsList = ""; + scope.multipleSelectionModel.checkingRemoteLinks = false; + } + } + } + ); + + /** + * Checks if the button to add multiple links can be enabled: + * - There are links to add. + * - The processs to add the links is not on-going. + * - The association type field is selected. + * Used in the multiple mode selection. + * + * @returns {boolean} + */ + scope.canAddMultipleLinks = function () { + return ( + scope.multipleSelectionModel.remoteRecordsList !== "" && + !scope.multipleSelectionModel.checkingRemoteLinks && + scope.config && + scope.config.associationType != null + ); + }; + + /** + * Process the urls links to extract the record information: title, url. + * + * Used in the multiple mode selection. + */ + scope.addMultipleLinks = function () { + // Ignore in single selection mode + if (!scope.multipleSelection) return; + + var remoteUrls = scope.multipleSelectionModel.remoteRecordsList.split("\n"); + scope.multipleSelectionModel.invalidRemoteLinks = []; + scope.multipleSelectionModel.remoteLinksToCheck = remoteUrls.length; + scope.multipleSelectionModel.checkingRemoteLinks = true; + for (var i = 0; i < remoteUrls.length; i++) { + var url = remoteUrls[i]; + if (url.indexOf("http") === 0) { + $http + .get(url, { + headers: { Accept: guessContentType() } + }) + .then( + function (response) { + scope.multipleSelectionModel.remoteLinksToCheck--; + + var isRemoteRecordUrlOk = response.status === 200; + if (isRemoteRecordUrlOk) { + // Check we can retrieve title + var remoteRecordInfo = getProperties( + response.data, + response.config.url + ); + + if (!_.isEmpty(remoteRecordInfo)) { + remoteRecordInfo.resourceTitle = remoteRecordInfo.title; + scope.addToSelection( + remoteRecordInfo, + scope.config.associationType, + scope.config.initiativeType + ); + } else { + scope.multipleSelectionModel.invalidRemoteLinks.push( + response.config.url + ); + } + } + }, + function (response) { + scope.multipleSelectionModel.remoteLinksToCheck--; + scope.multipleSelectionModel.invalidRemoteLinks.push( + response.config.url + ); + } + ); + } else { + scope.multipleSelectionModel.remoteLinksToCheck--; + scope.multipleSelectionModel.invalidRemoteLinks.push(url); + } + } + }; + + /** + * Checks a link and adds it to the selection. + * + * Used in single mode selection. + * + * @returns {*} + */ scope.checkLink = function () { + // Ignore in multiple selection mode + if (scope.multipleSelection) return; + scope.resetLink(false); - if (scope.remoteRecord.remoteUrl.indexOf("http") === 0) { + if ( + scope.singleSelectionModel.remoteRecord.remoteUrl.indexOf("http") === 0 + ) { return $http - .get(scope.remoteRecord.remoteUrl, { + .get(scope.singleSelectionModel.remoteRecord.remoteUrl, { headers: { Accept: guessContentType() } }) .then( function (response) { - scope.isRemoteRecordUrlOk = response.status === 200; - if (scope.isRemoteRecordUrlOk) { + scope.singleSelectionModel.isRemoteRecordUrlOk = + response.status === 200; + if (scope.singleSelectionModel.isRemoteRecordUrlOk) { // Check we can retrieve title - scope.isRemoteRecordPropertiesExtracted = getProperties( - response.data + var remoteRecordInfo = getProperties( + response.data, + scope.singleSelectionModel.remoteRecord.remoteUrl ); - if (scope.isRemoteRecordPropertiesExtracted) { - scope.updateSelection(); + scope.singleSelectionModel.isRemoteRecordPropertiesExtracted = + !_.isEmpty(remoteRecordInfo); + if ( + scope.singleSelectionModel.isRemoteRecordPropertiesExtracted + ) { + scope.singleSelectionModel.remoteRecord = remoteRecordInfo; + scope.singleSelectionModel.resourceTitle = + remoteRecordInfo.title; } } }, function (response) { - scope.isRemoteRecordUrlOk = response.status === 500; + scope.singleSelectionModel.isRemoteRecordUrlOk = + response.status === 500; } ); } }; + scope.updateSelectionAndTriggerSearch = function () { + // Ignore in multiple selection mode + if (scope.multipleSelection) return; + + scope.updateSelection(); + scope.triggerSearch(); + }; + scope.updateSelection = function () { + // Ignore in multiple selection mode + if (scope.multipleSelection) return; + if (scope.selectionList) { - scope.selectionList.length = 0; - scope.selectionList.push(scope.remoteRecord); + if (!scope.multipleSelection) { + scope.selectionList.length = 0; + } + scope.selectionList.push(scope.singleSelectionModel.remoteRecord); } else if (angular.isFunction(scope.addToSelection)) { // sibling mode - scope.remoteRecord.resourceTitle = scope.remoteRecord.title; + scope.singleSelectionModel.remoteRecord.resourceTitle = + scope.singleSelectionModel.remoteRecord.title; scope.addToSelection( - scope.remoteRecord, + scope.singleSelectionModel.remoteRecord, scope.config.associationType, scope.config.initiativeType ); @@ -342,14 +498,18 @@ }; scope.resetLink = function (allProperties) { + // Ignore in multiple selection mode + if (scope.multipleSelection) return; + scope.selectionList = angular.isDefined(scope.stateObj) ? scope.stateObj.selectRecords : scope.selectRecords; - scope.isRemoteRecordUrlOk = true; - scope.remoteRecord.title = ""; - scope.remoteRecord.uuid = ""; + scope.singleSelectionModel.isRemoteRecordUrlOk = true; if (allProperties) { - scope.remoteRecord.remoteUrl = ""; + scope.singleSelectionModel.remoteRecord.remoteUrl = ""; + } else { + scope.singleSelectionModel.remoteRecord.title = ""; + scope.singleSelectionModel.remoteRecord.uuid = ""; } clearSelection(); }; @@ -1707,7 +1867,15 @@ scope.onlineSrcLink = ""; scope.addOnlineSrcInDataset = true; - gnOnlinesrc.register(scope.mode, function () { + gnOnlinesrc.register(scope.mode, function (config) { + if (config && !angular.isObject(config)) { + config = angular.fromJson(config); + } + + scope.config = { + sources: config && config.sources + }; + $(scope.popupid).modal("show"); // parameters of the online resource form @@ -1812,6 +1980,18 @@ } }; + scope.addToSelection = function (record) { + scope.stateObj.selectRecords.length = 0; + scope.stateObj.selectRecords.push(record); + }; + + scope.removeFromSelection = function (record) { + var index = scope.stateObj.selectRecords.indexOf(record); + if (index > -1) { + scope.stateObj.selectRecords.splice(index, 1); + } + }; + /** * Watch the result metadata selection change. * selectRecords is a value of the SearchFormController scope. @@ -1940,8 +2120,7 @@ return { restrict: "A", scope: {}, - templateUrl: - "../../catalog/components/edit/onlinesrc/" + "partials/linkToMd.html", + templateUrl: "../../catalog/components/edit/onlinesrc/partials/linkToMd.html", compile: function compile(tElement, tAttrs, transclude) { return { pre: function preLink(scope) { @@ -1980,39 +2159,39 @@ return true; }; + scope.addToSelection = function (record) { + scope.selectRecords.length = 0; + scope.selectRecords.push(record); + }; + + scope.removeFromSelection = function (record) { + var index = scope.selectRecords.indexOf(record); + if (index > -1) { + scope.selectRecords.splice(index, 1); + } + }; + /** * Register a method on popup open to reset * the search form and trigger a search. */ - gnOnlinesrc.register(scope.mode, function () { - $(scope.popupid).modal("show"); - var searchParams = {}; - if (scope.mode === "fcats") { - searchParams = { - resourceType: "featureCatalog", - isTemplate: "n" - }; - scope.btn = { - label: $translate.instant("linkToFeatureCatalog") - }; - } else if (scope.mode === "parent") { - searchParams = { - isTemplate: "n" - }; - scope.btn = { - label: $translate.instant("linkToParent") - }; - } else if (scope.mode === "source") { - searchParams = { - isTemplate: "n" - }; - scope.btn = { - label: $translate.instant("linkToSource") - }; + gnOnlinesrc.register(scope.mode, function (config) { + if (config && !angular.isObject(config)) { + config = angular.fromJson(config); } + + scope.config = { + sources: config && config.sources + }; + + $(scope.popupid).modal("show"); + var searchParams = + scope.config.sources && scope.config.sources.metadataStore + ? scope.config.sources.metadataStore.params || {} + : {}; scope.$broadcast("resetSearch", searchParams); + scope.selectRecords = []; }); - scope.gnOnlinesrc = gnOnlinesrc; } }; @@ -2089,20 +2268,23 @@ * Register a method on popup open to reset * the search form and trigger a search. */ - gnOnlinesrc.register("sibling", function (config) { + gnOnlinesrc.register("siblings", function (config) { if (config && !angular.isObject(config)) { config = angular.fromJson(config); } scope.config = { associationTypeForced: angular.isDefined( - config && config.associationType + config && config.fields && config.fields.associationType ), - associationType: (config && config.associationType) || null, + associationType: + (config && config.fields && config.fields.associationType) || null, initiativeTypeForced: angular.isDefined( - config && config.initiativeType + config && config.fields && config.fields.initiativeType ), - initiativeType: (config && config.initiativeType) || null + initiativeType: + (config && config.fields && config.fields.initiativeType) || null, + sources: config && config.sources }; $(scope.popupid).modal("show"); @@ -2176,7 +2358,7 @@ /** * Add the result metadata to the selection. * Add it only it associationType & initiativeType are set. - * If the metadata alreay exists, it override it with the new + * If the metadata already exists, it overrides it with the new * given associationType/initiativeType. */ scope.addToSelection = function (md, associationType, initiativeType) { @@ -2245,5 +2427,104 @@ } }; } + ]) + + /** + * @ngdoc directive + * @name gn_onlinesrc.directive:gnDoiSearchPanel + * @restrict A + * @requires gnOnlinesrc + * + * @description + * The `gnDoiSearchPanel` directive provides a form to search and link DOI resources + * to the current metadata. + */ + .directive("gnDoiSearchPanel", [ + "gnDoiSearchService", + function (gnDoiSearchService) { + return { + restrict: "A", + replace: true, + scope: { + doiUrl: "=?", + doiPrefix: "=?", + doiQueryPattern: "=?", + mode: "@", + addToSelectionCb: "&?", + removeFromSelectionCb: "&?" + }, + templateUrl: + "../../catalog/components/edit/onlinesrc/" + "partials/doisearchpanel.html", + link: function (scope, element, attrs) { + // select (single value) / add mode (used in siblings dialog) + scope.mode = scope.mode || "select"; + scope.updateSelection = angular.isFunction(scope.addToSelectionCb) + ? function (md) { + if (scope.isSelected(md)) { + scope.selectedMd = null; + if (angular.isFunction(scope.removeFromSelectionCb)) { + scope.removeFromSelectionCb({ record: md }); + } + } else { + scope.selectedMd = md; + scope.addToSelectionCb({ record: md }); + } + } + : undefined; + + scope.isSelected = function (md) { + return md == scope.selectedMd; + }; + + scope.queryValue = ""; + scope.isSearching = false; + + scope.clearSearch = function () { + scope.queryValue = ""; + scope.results = []; + }; + + scope.$on("resetSearch", scope.clearSearch); + + scope.search = function () { + var searchQuery = + scope.queryValue !== "" + ? scope.doiQueryPattern.replaceAll("{query}", scope.queryValue) + : ""; + scope.isSearching = true; + gnDoiSearchService.search(scope.doiUrl, scope.doiPrefix, searchQuery).then( + function (response) { + scope.isSearching = false; + var results = []; + + angular.forEach(response.data.data, function (r) { + results.push({ + uuid: r.id, + remoteUrl: r.attributes.url, + resourceTitle: + r.attributes.titles.length > 0 + ? r.attributes.titles[0].title + : r.url, + title: + r.attributes.titles.length > 0 + ? r.attributes.titles[0].title + : r.url, + description: + r.attributes.descriptions.length > 0 + ? r.attributes.descriptions[0].descriptions + : "" + }); + }); + + scope.results = results; + }, + function (response) { + scope.isSearching = false; + } + ); + }; + } + }; + } ]); })(); diff --git a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/OnlineSrcService.js b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/OnlineSrcService.js index 6d0003da1dd..c41fd2ee43a 100644 --- a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/OnlineSrcService.js +++ b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/OnlineSrcService.js @@ -261,32 +261,37 @@ relatedTypes = defaultRelatedTypes; } - linksAndRelatedPromises.push( - $http.get( - apiPrefix + - "/related?type=" + - relatedTypes.join("&type=") + - (!isApproved ? "&approved=false" : ""), - { - headers: { - Accept: "application/json" + if (relatedTypes.length > 0) { + linksAndRelatedPromises.push( + $http.get( + apiPrefix + + "/related?type=" + + relatedTypes.join("&type=") + + (!isApproved ? "&approved=false" : ""), + { + headers: { + Accept: "application/json" + } } - } - ) - ); - linksAndRelatedPromises.push( - $http.get( - apiPrefix + - "/associated?type=" + - associatedTypes.join("&type=") + - (!isApproved ? "&approved=false" : ""), - { - headers: { - Accept: "application/json" + ) + ); + } + + if (associatedTypes.length > 0) { + linksAndRelatedPromises.push( + $http.get( + apiPrefix + + "/associated?type=" + + associatedTypes.join(",") + + (!isApproved ? "&approved=false" : ""), + { + headers: { + Accept: "application/json" + } } - } - ) - ); + ) + ); + } var all = $q.all(linksAndRelatedPromises).then(function (result) { var relations = {}; @@ -903,4 +908,18 @@ }; } ]); + + /** + * Service to query a DOI service and return the results. + */ + module.service("gnDoiSearchService", [ + "$http", + function ($http) { + return { + search: function (url, prefix, query) { + return $http.get(url + "?prefix=" + prefix + "&query=" + query); + } + }; + } + ]); })(); diff --git a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/doisearchpanel.html b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/doisearchpanel.html new file mode 100644 index 00000000000..b6601e0701d --- /dev/null +++ b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/doisearchpanel.html @@ -0,0 +1,65 @@ +
      + + +
      +
      +
      + + + + + + + +
      + + +

      + zarooResult +

      + +
        +
      • +
        + + +
        +
        + {{md.resourceTitle}} +
        + +
        +
        +
      • +
      +
      +
      +
      diff --git a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linkServiceToDataset.html b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linkServiceToDataset.html index 8236d6a43c9..a8f6b467e55 100644 --- a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linkServiceToDataset.html +++ b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linkServiceToDataset.html @@ -2,8 +2,15 @@
      -
      -
      +
      + + +
      -
      + + +
      + +
      +

      {{alertMsg}}

      diff --git a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linkToMd.html b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linkToMd.html index 3fbc27150ff..9d1cd9e388f 100644 --- a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linkToMd.html +++ b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linkToMd.html @@ -1,9 +1,16 @@
      +
      -
      -
      +
      + +
      -
      + + +
      +
      + +
      diff --git a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linktosibling.html b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linktosibling.html index 8e108777894..ec3b600611a 100644 --- a/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linktosibling.html +++ b/web-ui/src/main/resources/catalog/components/edit/onlinesrc/partials/linktosibling.html @@ -13,6 +13,7 @@ data-allow-blank="false" data-selected-info="config.associationType" data-gn-schema-info="associationType" + data-ng-disabled="config.associationTypeForced" lang="lang" >
      @@ -29,12 +30,19 @@ data-gn-schema-info="initiativeType" lang="lang" data-allow-blank="true" + data-ng-disabled="config.initiativeTypeForced" >
      -
      +
      @@ -59,21 +67,48 @@
      - - {{md.resourceTitle}} - - +
      + + +
      + {{md.resourceTitle}} +
      + +
      +
      +
      -
      + +
      + +
      +
    + add + + + +
    +
    +
    + + +
    + + +
    +

    remoteRecordPropertiesError

    + +
    + + +
    +
    +
    +
    diff --git a/web-ui/src/main/resources/catalog/components/metadataactions/RelatedDirective.js b/web-ui/src/main/resources/catalog/components/metadataactions/RelatedDirective.js index 02778297da3..2dc8604d4e1 100644 --- a/web-ui/src/main/resources/catalog/components/metadataactions/RelatedDirective.js +++ b/web-ui/src/main/resources/catalog/components/metadataactions/RelatedDirective.js @@ -1287,4 +1287,234 @@ }; } ]); + + /** + * Directive to display a panel in the metadata editor with a header and a list of associated resources. + * + */ + module.directive("gnAssociatedResourcesPanel", [ + "gnCurrentEdit", + function (gnCurrentEdit) { + return { + restrict: "A", + templateUrl: function (elem, attrs) { + return ( + attrs.template || + "../../catalog/components/metadataactions/partials/associatedResourcesPanel.html" + ); + }, + scope: { + md: "=gnAssociatedResourcesPanel", + mode: "=" + }, + link: function (scope, element, attrs) { + gnCurrentEdit.associatedPanelConfigId = attrs["editorConfig"] || "default"; + } + }; + } + ]); + + /** + * Displays a panel with different types of associations defined in the schema configuration and available in the metadata object 'md'. + * + */ + module.directive("gnAssociatedResourcesContainer", [ + "gnRelatedResources", + "gnConfigService", + "gnOnlinesrc", + "gnCurrentEdit", + "gnSchemaManagerService", + "$injector", + "$filter", + function ( + gnRelatedResources, + gnConfigService, + gnOnlinesrc, + gnCurrentEdit, + gnSchemaManagerService, + $injector, + $filter + ) { + return { + restrict: "A", + templateUrl: function (elem, attrs) { + return ( + attrs.template || + "../../catalog/components/metadataactions/partials/associatedResourcesContainer.html" + ); + }, + scope: { + md: "=gnAssociatedResourcesContainer", + mode: "=" + }, + link: function (scope, element, attrs, controller) { + scope.lang = scope.lang || scope.$parent.lang; + scope.gnCurrentEdit = gnCurrentEdit; + scope.relations = []; + scope.relatedConfigUI = []; + scope.relatedResourcesConfig = gnRelatedResources; + if ($injector.has("gnOnlinesrc")) { + scope.onlinesrcService = $injector.get("gnOnlinesrc"); + } + + // Values for relation types used in the UI (and also to filter some metadata by resource type: dataset / service + var UIRelationTypeValues = { + dataset: "dataset", + service: "service", + source: "source", + parent: "parent", + fcats: "fcats", + siblings: "siblings" + }; + + // Values used for the relation types by the /associated API, that doesn't match with the UI + var APIRelationTypeValues = { + dataset: "datasets", + service: "services", + source: "sources", + parent: "parent", + fcats: "fcats", + siblings: "siblings" + }; + + // A mapper from relation types from the UI to the API values + scope.mapUIRelationToApi = function (type) { + return APIRelationTypeValues[type]; + }; + + scope.getClass = function (type) { + if (type === UIRelationTypeValues.dataset) { + return "fa gn-icon-dataset"; + } else if (type === UIRelationTypeValues.service) { + return "fa fa-fw fa-cloud"; + } else if (type === UIRelationTypeValues.source) { + return "fa gn-icon-source"; + } else if (type === UIRelationTypeValues.parent) { + return "fa gn-icon-series"; + } else if (type === UIRelationTypeValues.fcats) { + return "fa fa-table"; + } else if (type === UIRelationTypeValues.siblings) { + return "fa fa-sign-out"; + } + + return ""; + }; + scope.canRemoveLink = function (record, type) { + if (record.origin === "remote") { + return true; + } else { + return ( + type === UIRelationTypeValues.dataset || + type === UIRelationTypeValues.service || + type === UIRelationTypeValues.parent || + type === UIRelationTypeValues.source || + type === UIRelationTypeValues.fcats || + type === UIRelationTypeValues.siblings + ); + } + }; + + scope.remove = function (record, type) { + if (type === UIRelationTypeValues.dataset) { + scope.onlinesrcService.removeDataset(record); + } else if (type === UIRelationTypeValues.service) { + scope.onlinesrcService.removeService(record); + } else if (type === UIRelationTypeValues.parent) { + scope.onlinesrcService.removeMdLink(UIRelationTypeValues.parent, record); + } else if (type === UIRelationTypeValues.source) { + scope.onlinesrcService.removeMdLink(UIRelationTypeValues.source, record); + } else if (type === UIRelationTypeValues.fcats) { + scope.onlinesrcService.removeFeatureCatalog(record); + } else if (type === UIRelationTypeValues.siblings) { + scope.onlinesrcService.removeSibling(record); + } + }; + + var loadRelations = function (relationTypes) { + gnOnlinesrc.getAllResources(relationTypes).then(function (data) { + var res = gnOnlinesrc.formatResources( + data, + scope.lang, + gnCurrentEdit.mdLanguage + ); + + // Change the relation keys from the API response to the UI values + scope.relations = _.mapKeys(res.relations, function (value, key) { + if (key === APIRelationTypeValues.service) { + return UIRelationTypeValues.service; + } else if (key === APIRelationTypeValues.dataset) { + return UIRelationTypeValues.dataset; + } else if (key === APIRelationTypeValues.source) { + return UIRelationTypeValues.source; + } else { + return key; + } + }); + + scope.md.related = {}; + + scope.relatedConfig.forEach(function (config) { + config.relations = scope.relations[config.type] || []; + + var processConfig = true; + + // The configuration has an expression to evaluate if it should be processed + if (config.condition) { + processConfig = scope.$eval(config.condition); + } + + if (processConfig) { + scope.md.related[config.type] = scope.relations[config.type] || []; + // TODO: Review filter by siblings properties, Metadata instances doesn't have this information + if (config.config && config.config.fields) { + var filterObject = { properties: {} }; + + for (var item in config.config.fields) { + filterObject.properties[item] = config.config.fields[item]; + } + + config.relations = $filter("filter")(config.relations, filterObject); + } + + config.relationFound = config.relations.length > 0; + // By default, allow to add relations unless explicitly disallowed in the configuration. + config.allowToAddRelation = angular.isDefined(config.allowToAddRelation) + ? config.allowToAddRelation + : true; + scope.relatedConfigUI.push(config); + } + }); + }); + }; + + gnSchemaManagerService + .getEditorAssociationPanelConfig( + gnCurrentEdit.schema, + gnCurrentEdit.associatedPanelConfigId + ) + .then(function (r) { + scope.relatedConfig = r.config.associatedResourcesTypes; + var relationTypes = _.map(scope.relatedConfig, "type"); + + // Adapt the UI types to the backend types value: services --> service, datasets --> dataset + // The UI depends on the values also filter by resource type in + // the associated resources dialogs. + relationTypes = _.map(relationTypes, function (value) { + if (value === UIRelationTypeValues.service) { + return APIRelationTypeValues.service; + } else if (value === UIRelationTypeValues.dataset) { + return APIRelationTypeValues.dataset; + } else if (value === UIRelationTypeValues.source) { + return APIRelationTypeValues.source; + } else { + return value; + } + }); + + loadRelations(relationTypes); + }); + } + }; + } + ]); })(); diff --git a/web-ui/src/main/resources/catalog/components/metadataactions/partials/associatedResourcesContainer.html b/web-ui/src/main/resources/catalog/components/metadataactions/partials/associatedResourcesContainer.html new file mode 100644 index 00000000000..e1f4674a4ee --- /dev/null +++ b/web-ui/src/main/resources/catalog/components/metadataactions/partials/associatedResourcesContainer.html @@ -0,0 +1,96 @@ +
    +
    +
    +

    + +   + {{"associated-" + config.type | translate}} + + + + {{ config.label | translate}} + +

    + +
    + + {{keyToken[0] | translate}} + ({{keyToken[1] | translate}}) + + +
    + +
    +
    +
    diff --git a/web-ui/src/main/resources/catalog/components/metadataactions/partials/associatedResourcesPanel.html b/web-ui/src/main/resources/catalog/components/metadataactions/partials/associatedResourcesPanel.html new file mode 100644 index 00000000000..0e69ad0034c --- /dev/null +++ b/web-ui/src/main/resources/catalog/components/metadataactions/partials/associatedResourcesPanel.html @@ -0,0 +1,16 @@ +
    + +
    +   + associatedResourcesPanel +
    + + +
    +
    +
    +
    diff --git a/web-ui/src/main/resources/catalog/components/search/searchmanager/SearchResultsDirective.js b/web-ui/src/main/resources/catalog/components/search/searchmanager/SearchResultsDirective.js index bed83b374bd..5a9c7e40fa4 100644 --- a/web-ui/src/main/resources/catalog/components/search/searchmanager/SearchResultsDirective.js +++ b/web-ui/src/main/resources/catalog/components/search/searchmanager/SearchResultsDirective.js @@ -89,8 +89,13 @@ scope.selection.splice(scope.selection.indexOf(md), 1); } } else { - scope.selection.pop(); - scope.selection.push(md); + // Unselect current + if (scope.selection.length === 1 && scope.selection[0]._id === md._id) { + scope.selection.pop(); + } else { + scope.selection.pop(); + scope.selection.push(md); + } } }; } else { diff --git a/web-ui/src/main/resources/catalog/components/search/searchmanager/partials/searchresults.html b/web-ui/src/main/resources/catalog/components/search/searchmanager/partials/searchresults.html index 7d189a8a142..b4fe7f51f05 100644 --- a/web-ui/src/main/resources/catalog/components/search/searchmanager/partials/searchresults.html +++ b/web-ui/src/main/resources/catalog/components/search/searchmanager/partials/searchresults.html @@ -35,6 +35,7 @@ data-ng-repeat="md in searchResults.records" id="gn-record-{{md.uuid}}" href="" + style="cursor: pointer" data-ng-class="isSelected(md) ? 'active' : ''" data-ng-click="onClick(md)" > @@ -52,7 +53,11 @@ {{md.resourceTitle}} - + diff --git a/web-ui/src/main/resources/catalog/locales/en-editor.json b/web-ui/src/main/resources/catalog/locales/en-editor.json index cf90334d682..dd6dc4a1fd8 100644 --- a/web-ui/src/main/resources/catalog/locales/en-editor.json +++ b/web-ui/src/main/resources/catalog/locales/en-editor.json @@ -165,7 +165,7 @@ "linkToParentTitle": "Link a parent metadata record to the current metadata", "linkToService": "Link to a service", "linkToServiceTitle": "Link a service to the current metadata", - "linkToSibling": "Link to other resources", + "linkToSibling": "Link to records", "linkToSiblingTitle": "Link a resource to the current metadata", "linkToSource": "Link to a source dataset", "linkToSourceTitle": "Link a source dataset to the current metadata", @@ -446,5 +446,13 @@ "addOnlinesrc#links": "Add links", "addOnlinesrc#links-help": "eg. web links", "addOnlinesrc#quality": "Add quality info", - "addOnlinesrc#quality-help": "eg. specification, reports" + "addOnlinesrc#quality-help": "eg. specification, reports", + "associated-parent": "Parent Metadata", + "associated-service": "Service", + "associated-dataset": "Dataset", + "associated-source": "Source datasets", + "associated-fcats": "Feature catalog", + "associated-siblings": "Associated resources", + "associated-hasfeaturecats": "Using this feature catalog", + "associatedResourcesPanel": "Associated resources" } diff --git a/web-ui/src/main/resources/catalog/locales/en-v4.json b/web-ui/src/main/resources/catalog/locales/en-v4.json index 8c894c03911..20ab5934710 100644 --- a/web-ui/src/main/resources/catalog/locales/en-v4.json +++ b/web-ui/src/main/resources/catalog/locales/en-v4.json @@ -51,7 +51,7 @@ "remoteRecord": "Record from external catalog", "chooseACatalogRecord": "Choose a catalog record", "siblingListToAdd": "List of record links to add", - "orUseRemoteRecordUrl": "or link to a remote record", + "orUseRemoteRecordUrl": "Link to a remote record", "remoteRecordUrl-help": "Remote record can be linked to record in this catalog by pointing to an URL of the remote record. If the remote record is in a GeoNetwork catalog, the landing page of the record is recommended (eg. https://catalog/geonetwork/srv/api/records/{uuid}). For GeoNode, the HTML page can work. For others, XML document can be used (eg. API call or CSW GetRecordById request).", "remoteRecordPropertiesError": "Failed to extract title and UUID for remote record. Check the target document.", "remoteRecordUrlReturnedError": "Failed to access URL: ", @@ -422,5 +422,6 @@ "overviewDescription": "Overview description", "overviewUrl": "Overview URL", "restApiUrl": "REST API URL", - "filterHelp": "Please click on one of the buttons below to activate the filter" + "filterHelp": "Please click on one of the buttons below to activate the filter", + "selectDOIResource": "Choose a DOI resource" }