From 2daa053c6f6de088b0dbea7fbfd2829de115c5d0 Mon Sep 17 00:00:00 2001 From: RIHTARSIC Joze <joze.rihtarsic@ext.ec.europa.eu> Date: Fri, 30 Aug 2024 07:15:54 +0200 Subject: [PATCH] [EDELIVERY-13857] [URGENT] Fix docker image language initialization and rename user "Alerts" to "My Alerts" --- smp-angular/src/assets/i18n/en.json | 2 +- smp-angular/src/assets/i18n/ro.json | 2 +- .../init/SMPLocaleFileSystemInitializer.java | 5 +---- .../smp/services/SMPLocaleService.java | 18 +++++++++++++++--- .../smp/ui/external/LocaleController.java | 3 +-- 5 files changed, 19 insertions(+), 11 deletions(-) diff --git a/smp-angular/src/assets/i18n/en.json b/smp-angular/src/assets/i18n/en.json index 8be9a6cef..7bfe7457d 100644 --- a/smp-angular/src/assets/i18n/en.json +++ b/smp-angular/src/assets/i18n/en.json @@ -844,7 +844,7 @@ "navigation.label.user.settings.profile": "Profile", "navigation.label.user.settings.access.tokens": "Access Tokens", "navigation.label.user.settings.certificates": "Certificate", - "navigation.label.user.settings.alerts": "Alerts", + "navigation.label.user.settings.alerts": "My alerts", "navigation.label.user.settings.membership": "Membership", "navigation.tooltip.search.resources": "Search registered resources", "navigation.tooltip.search.tools": "Search tools", diff --git a/smp-angular/src/assets/i18n/ro.json b/smp-angular/src/assets/i18n/ro.json index 17c97748a..4a13325cd 100644 --- a/smp-angular/src/assets/i18n/ro.json +++ b/smp-angular/src/assets/i18n/ro.json @@ -844,7 +844,7 @@ "navigation.label.user.settings.profile": "Profil", "navigation.label.user.settings.access.tokens": "Token-uri de Acces", "navigation.label.user.settings.certificates": "Certificate", - "navigation.label.user.settings.alerts": "Alerte", + "navigation.label.user.settings.alerts": "Alertele mele", "navigation.label.user.settings.membership": "Calitate de Membru", "navigation.tooltip.search.resources": "Cauta resurse inregistrate", "navigation.tooltip.search.tools": "Cauta resurse inregistrate", diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/config/init/SMPLocaleFileSystemInitializer.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/config/init/SMPLocaleFileSystemInitializer.java index 572106210..418096284 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/config/init/SMPLocaleFileSystemInitializer.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/config/init/SMPLocaleFileSystemInitializer.java @@ -21,12 +21,9 @@ public class SMPLocaleFileSystemInitializer { private static final SMPLogger LOG = SMPLoggerFactory.getLogger(SMPLocaleFileSystemInitializer.class); - private final ConfigurationService configurationService; - private final SMPLocaleService smpLocaleService; - public SMPLocaleFileSystemInitializer(ConfigurationService configurationService, SMPLocaleService smpLocaleService) { - this.configurationService = configurationService; + public SMPLocaleFileSystemInitializer(SMPLocaleService smpLocaleService) { this.smpLocaleService = smpLocaleService; } diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/SMPLocaleService.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/SMPLocaleService.java index a754c43fd..3605bb2c0 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/SMPLocaleService.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/SMPLocaleService.java @@ -1,5 +1,6 @@ package eu.europa.ec.edelivery.smp.services; +import eu.europa.ec.edelivery.smp.config.enums.SMPEnvPropertyEnum; import eu.europa.ec.edelivery.smp.i18n.SMPLocale; import eu.europa.ec.edelivery.smp.logging.SMPLogger; import eu.europa.ec.edelivery.smp.logging.SMPLoggerFactory; @@ -11,6 +12,7 @@ import java.io.File; import java.io.InputStream; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.StandardCopyOption; import java.util.EnumSet; /** @@ -32,6 +34,10 @@ public class SMPLocaleService { public Path getLocaleFile(SMPLocale locale) { File localeFolder = configurationService.getLocaleFolder(); + if (!localeFolder.exists() && !localeFolder.mkdirs()) { + LOG.error("Failed to create locale folder [{}]", localeFolder); + return null; + } return new File(localeFolder, locale.getCode() + ".json").toPath().toAbsolutePath(); } @@ -47,10 +53,16 @@ public class SMPLocaleService { Resource resource = getLocaleResource(locale); if (resource.exists()) { Path localeFile = getLocaleFile(locale); - + if (localeFile == null) { + LOG.warn("Can not generate 'locale/language' file [{}]! Check if local folder defined in property [{}] " + + "has writing permissions and the folder exists", localeFile, SMPEnvPropertyEnum.LOCALE_FOLDER.getProperty()); + return; + } + if (Files.exists(localeFile)) { + LOG.warn("Language file [{}] already exists, and it will be replaced with up-to-date translations", localeFile); + } try(InputStream inputStream = resource.getInputStream()) { - Files.deleteIfExists(localeFile); - Files.copy(inputStream, localeFile); + Files.copy(inputStream, localeFile, StandardCopyOption.REPLACE_EXISTING); } catch (Exception e) { LOG.error("An error occurred while updating locale file [{}]", localeFile, e); } diff --git a/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/external/LocaleController.java b/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/external/LocaleController.java index 1407ba358..4b30c9810 100644 --- a/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/external/LocaleController.java +++ b/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/ui/external/LocaleController.java @@ -35,12 +35,11 @@ public class LocaleController { @ResponseBody public Resource getLocale(@PathVariable("code") String code) { Path langResourcePath = smpLocaleService.getLocaleFile(SMPLocale.fromCodeDefaultingToEnglish(code)); - if (langResourcePath.toFile().exists()) { + if (langResourcePath != null && langResourcePath.toFile().exists()) { LOG.debug("Returning locale file [{}]", langResourcePath.toAbsolutePath()); return new FileSystemResource(langResourcePath); } else { LOG.warn("Locale file [{}] does not exist. Return default translation!", langResourcePath.toAbsolutePath()); - ClassPathResource defResource = new ClassPathResource(DEFAULT_LOCALE_RESOURCE); if (defResource.exists()) { return defResource; -- GitLab