working on translation system
This commit is contained in:
@@ -1,11 +1,21 @@
|
||||
/* © SRSoftware 2025 */
|
||||
package de.srsoftware.umbrella.core.api;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.TreeMap;
|
||||
|
||||
public interface Translator {
|
||||
public default String translate(String language, String text){
|
||||
return translate(language, text, Map.of());
|
||||
var parts = text.split("\\|");
|
||||
var fills = new TreeMap<String,String>();
|
||||
if (parts.length>1) for (var idx=1;idx<parts.length;idx++){
|
||||
var nested = parts[idx].split("=",2);
|
||||
if (nested.length<2){
|
||||
fills.put("{"+idx+"}",nested[0]);
|
||||
} else fills.put(nested[0],nested[1]);
|
||||
}
|
||||
return translate(language, parts[0], fills);
|
||||
}
|
||||
public String translate(String language, String text, Map<String,String> fills);
|
||||
}
|
||||
|
||||
24
core/src/test/java/TranslatorTest.java
Normal file
24
core/src/test/java/TranslatorTest.java
Normal file
@@ -0,0 +1,24 @@
|
||||
import de.srsoftware.umbrella.core.api.Translator;
|
||||
import org.json.JSONObject;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import static java.text.MessageFormat.format;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
public class TranslatorTest {
|
||||
|
||||
private static final Translator translator = new Translator() {
|
||||
@Override
|
||||
public String translate(String language, String text, Map<String, String> fills) {
|
||||
return format("lang: {0}, text: {1}, fills: {2}",language,text, new JSONObject(fills).toString());
|
||||
}
|
||||
};
|
||||
|
||||
@Test
|
||||
public void testTranslate(){
|
||||
var translated = translator.translate("none","dies {verb} ein {subject}|subject=test|verb=ist");
|
||||
assertEquals("lang: none, text: dies {verb} ein {subject}, fills: {\"verb\":\"ist\",\"subject\":\"test\"}",translated);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user