refactor(localization): remove integer ID translation methods from LocalizationService and related tests
This commit is contained in:
@@ -17,10 +17,6 @@ public interface LocalizationService {
|
|||||||
|
|
||||||
String getCurrentLanguage();
|
String getCurrentLanguage();
|
||||||
|
|
||||||
String translate(Integer id);
|
|
||||||
|
|
||||||
String translate(Integer id, String defaultText);
|
|
||||||
|
|
||||||
String translate(String id);
|
String translate(String id);
|
||||||
|
|
||||||
String translate(String id, String defaultText);
|
String translate(String id, String defaultText);
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package de.extio.game_engine.i18n;
|
package de.extio.game_engine.i18n;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.LinkedHashMap;
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -24,12 +23,9 @@ public class LocalizationServiceImpl implements LocalizationService {
|
|||||||
|
|
||||||
private String currentLanguageName;
|
private String currentLanguageName;
|
||||||
|
|
||||||
private final Map<Integer, String> intLookup = new HashMap<>();
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void resetEntries() {
|
public void resetEntries() {
|
||||||
this.localizations.getLanguages().forEach((lang, mapping) -> mapping.clear());
|
this.localizations.getLanguages().forEach((lang, mapping) -> mapping.clear());
|
||||||
this.intLookup.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -37,7 +33,6 @@ public class LocalizationServiceImpl implements LocalizationService {
|
|||||||
this.localizations = new Localizations();
|
this.localizations = new Localizations();
|
||||||
this.currentLanguage = null;
|
this.currentLanguage = null;
|
||||||
this.currentLanguageName = null;
|
this.currentLanguageName = null;
|
||||||
this.intLookup.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -76,7 +71,7 @@ public class LocalizationServiceImpl implements LocalizationService {
|
|||||||
|
|
||||||
this.localizations.setPrefix(localizations.getPrefix());
|
this.localizations.setPrefix(localizations.getPrefix());
|
||||||
|
|
||||||
this.intLookup.clear();
|
LOGGER.info("Loaded {} localizations for {} languages", localizations.getDescriptions().size(), localizations.getLanguages().size());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.currentLanguageName == null) {
|
if (this.currentLanguageName == null) {
|
||||||
@@ -93,7 +88,6 @@ public class LocalizationServiceImpl implements LocalizationService {
|
|||||||
|
|
||||||
this.currentLanguageName = lang;
|
this.currentLanguageName = lang;
|
||||||
this.currentLanguage = this.localizations.getLanguages().get(lang);
|
this.currentLanguage = this.localizations.getLanguages().get(lang);
|
||||||
this.intLookup.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -109,27 +103,6 @@ public class LocalizationServiceImpl implements LocalizationService {
|
|||||||
return this.currentLanguageName;
|
return this.currentLanguageName;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public String translate(final Integer id) {
|
|
||||||
String result = this.intLookup.get(id);
|
|
||||||
if (result != null) {
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
result = this.translate(String.valueOf(id));
|
|
||||||
this.intLookup.put(id, result);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String translate(final Integer id, final String defaultText) {
|
|
||||||
String result = this.translate(id);
|
|
||||||
if (result.startsWith(NOT_FOUND_PREFIX)) {
|
|
||||||
result = defaultText;
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String translate(final String id) {
|
public String translate(final String id) {
|
||||||
if (this.currentLanguage == null) {
|
if (this.currentLanguage == null) {
|
||||||
@@ -158,14 +131,11 @@ public class LocalizationServiceImpl implements LocalizationService {
|
|||||||
if (!this.localizations.getLanguagesInfo().containsKey(lang)) {
|
if (!this.localizations.getLanguagesInfo().containsKey(lang)) {
|
||||||
this.localizations.getLanguagesInfo().put(lang, new Language(lang, lang));
|
this.localizations.getLanguagesInfo().put(lang, new Language(lang, lang));
|
||||||
}
|
}
|
||||||
|
|
||||||
this.intLookup.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void remove(final String id) {
|
public void remove(final String id) {
|
||||||
this.localizations.getLanguages().forEach((k, v) -> v.remove(id));
|
this.localizations.getLanguages().forEach((k, v) -> v.remove(id));
|
||||||
this.intLookup.clear();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -130,45 +130,6 @@ class LocalizationManagerTest {
|
|||||||
assertEquals("en", this.localizationManager.getCurrentLanguage());
|
assertEquals("en", this.localizationManager.getCurrentLanguage());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
void testTranslateWithIntegerId() {
|
|
||||||
Localizations localizations = this.localizationManager.getLocalizations();
|
|
||||||
Language english = new Language("English", "en");
|
|
||||||
localizations.getLanguagesInfo().put("en", english);
|
|
||||||
localizations.getLanguages().put("en", new LinkedHashMap<>(Map.of("1", "Hello")));
|
|
||||||
this.localizationManager.setLanguage("en");
|
|
||||||
|
|
||||||
String result = this.localizationManager.translate(1);
|
|
||||||
|
|
||||||
assertEquals("Hello", result);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testTranslateWithIntegerIdNotFound() {
|
|
||||||
Localizations localizations = this.localizationManager.getLocalizations();
|
|
||||||
Language english = new Language("English", "en");
|
|
||||||
localizations.getLanguagesInfo().put("en", english);
|
|
||||||
localizations.getLanguages().put("en", new LinkedHashMap<>());
|
|
||||||
this.localizationManager.setLanguage("en");
|
|
||||||
|
|
||||||
String result = this.localizationManager.translate(999);
|
|
||||||
|
|
||||||
assertTrue(result.startsWith(LocalizationServiceImpl.NOT_FOUND_PREFIX));
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
|
||||||
void testTranslateWithIntegerIdAndDefault() {
|
|
||||||
Localizations localizations = this.localizationManager.getLocalizations();
|
|
||||||
Language english = new Language("English", "en");
|
|
||||||
localizations.getLanguagesInfo().put("en", english);
|
|
||||||
localizations.getLanguages().put("en", new LinkedHashMap<>());
|
|
||||||
this.localizationManager.setLanguage("en");
|
|
||||||
|
|
||||||
String result = this.localizationManager.translate(999, "Default Text");
|
|
||||||
|
|
||||||
assertEquals("Default Text", result);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testTranslateWithStringId() {
|
void testTranslateWithStringId() {
|
||||||
Localizations localizations = this.localizationManager.getLocalizations();
|
Localizations localizations = this.localizationManager.getLocalizations();
|
||||||
@@ -290,8 +251,8 @@ class LocalizationManagerTest {
|
|||||||
localizations.getLanguages().put("en", new LinkedHashMap<>(Map.of("1", "Hello")));
|
localizations.getLanguages().put("en", new LinkedHashMap<>(Map.of("1", "Hello")));
|
||||||
this.localizationManager.setLanguage("en");
|
this.localizationManager.setLanguage("en");
|
||||||
|
|
||||||
String result1 = this.localizationManager.translate(1);
|
String result1 = this.localizationManager.translate("1");
|
||||||
String result2 = this.localizationManager.translate(1);
|
String result2 = this.localizationManager.translate("1");
|
||||||
|
|
||||||
assertEquals("Hello", result1);
|
assertEquals("Hello", result1);
|
||||||
assertEquals("Hello", result2);
|
assertEquals("Hello", result2);
|
||||||
|
|||||||
Reference in New Issue
Block a user