From f9f4b3f1708db8fc4432e8be6c1ee4837097aefe Mon Sep 17 00:00:00 2001 From: extio-de Date: Fri, 2 Jan 2026 12:33:17 +0100 Subject: [PATCH] feat(i18n): implement translate method with parameter substitution in LocalizationServiceImpl --- .../extio/game_engine/i18n/LocalizationService.java | 2 ++ .../game_engine/i18n/LocalizationServiceImpl.java | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/main/java/de/extio/game_engine/i18n/LocalizationService.java b/src/main/java/de/extio/game_engine/i18n/LocalizationService.java index 9faa943..4b8e5e6 100644 --- a/src/main/java/de/extio/game_engine/i18n/LocalizationService.java +++ b/src/main/java/de/extio/game_engine/i18n/LocalizationService.java @@ -21,6 +21,8 @@ public interface LocalizationService { String translate(String id, String defaultText); + String translate(String id, List params); + void put(String lang, String id, String value); void remove(String id); diff --git a/src/main/java/de/extio/game_engine/i18n/LocalizationServiceImpl.java b/src/main/java/de/extio/game_engine/i18n/LocalizationServiceImpl.java index 735a5e3..561ee1a 100644 --- a/src/main/java/de/extio/game_engine/i18n/LocalizationServiceImpl.java +++ b/src/main/java/de/extio/game_engine/i18n/LocalizationServiceImpl.java @@ -134,6 +134,17 @@ public class LocalizationServiceImpl implements LocalizationService { return result; } + @Override + public String translate(final String id, final List params) { + String result = this.translate(id); + if (params != null && !params.isEmpty()) { + for (int i = 0; i < params.size(); i++) { + result = result.replace("{" + i + "}", params.get(i)); + } + } + return result; + } + @Override public void put(final String lang, final String id, final String value) { final Map mapping = this.localizations.getLanguages().get(lang);