Update for LibJF 2.7.0

This commit is contained in:
Johannes Frohnmeyer 2022-04-03 19:13:20 +02:00
parent 14d09220a1
commit 02a5584455
Signed by: Johannes
GPG Key ID: E76429612C2929F4
7 changed files with 886 additions and 865 deletions

View File

@ -9,6 +9,6 @@ dependencies {
modImplementation "com.terraformersmc:modmenu:3.1.0"
// Compat fix
include modRuntimeOnly('io.gitlab.jfronny:gson:2.9.0.2022.4.2.19.45.43') // Dependency of LibJF 2.7.0
include modImplementation(fabricApi.module("fabric-command-api-v1", "${project.fabric_version}"))
}

View File

@ -1,12 +1,12 @@
# https://fabricmc.net/develop/
minecraft_version=1.18.2
yarn_mappings=build.1
yarn_mappings=build.2
loader_version=0.13.3
maven_group=io.gitlab.jfronny
archives_base_name=translater
jfapi_version=2.5.0
fabric_version=0.47.8+1.18.2
jfapi_version=2.7.0
fabric_version=0.48.0+1.18.2
modrinth_id=YnU8kpyc
modrinth_optional_dependencies=mOgUt4GM

View File

@ -2,7 +2,6 @@ package io.gitlab.jfronny.translater;
import io.gitlab.jfronny.libjf.config.api.Entry;
import io.gitlab.jfronny.libjf.config.api.JfConfig;
import io.gitlab.jfronny.libjf.translate.impl.google.Language;
public class Cfg implements JfConfig {
@Entry
@ -10,7 +9,7 @@ public class Cfg implements JfConfig {
@Entry
public static boolean breakFully = false;
@Entry
public static String targetLanguage = Language.ENGLISH.id;
public static String targetLanguage = "en";
@Entry
public static ProgressMode renderProgress = ProgressMode.None;
@Entry

View File

@ -1,5 +1,6 @@
package io.gitlab.jfronny.translater;
import io.gitlab.jfronny.libjf.translate.api.TranslateService;
import io.gitlab.jfronny.translater.transformer.CachingTransformer;
import io.gitlab.jfronny.translater.transformer.TransformingMap;
import io.gitlab.jfronny.translater.transformer.TranslatingTransformer;
@ -16,7 +17,7 @@ import java.util.Map;
public class Translater {
public static final String MOD_ID = "translater";
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
private static final TransformingMap map = new TransformingMap(new CachingTransformer(new TranslatingTransformer()));
private static final TransformingMap map = new TransformingMap(new CachingTransformer(new TranslatingTransformer<>(TranslateService.getConfigured())));
public static boolean progressUIEnabled() {
return Cfg.renderProgress == Cfg.ProgressMode.Full || Cfg.renderProgress == Cfg.ProgressMode.Gui;

View File

@ -1,21 +1,33 @@
package io.gitlab.jfronny.translater.transformer;
import io.gitlab.jfronny.libjf.translate.api.Language;
import io.gitlab.jfronny.libjf.translate.api.TranslateException;
import io.gitlab.jfronny.libjf.translate.impl.google.GoogleTranslateService;
import io.gitlab.jfronny.libjf.translate.impl.google.Language;
import io.gitlab.jfronny.libjf.translate.api.TranslateService;
import io.gitlab.jfronny.translater.Cfg;
import io.gitlab.jfronny.translater.Translater;
import org.apache.commons.lang3.StringUtils;
import java.util.List;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TranslatingTransformer implements Transformer {
public class TranslatingTransformer<T extends Language> implements Transformer {
public TranslatingTransformer(TranslateService<T> ts) {
rnd = new Random();
this.ts = ts;
languages = ts.getAvailableLanguages();
languageAuto = ts.parseLang("auto");
languageEnglish = ts.parseLang("en");
}
private static final Pattern SURROUNDING_SPACE_PATTERN = Pattern.compile("^(\\s*)(.*[^\\s]+)(\\s*)$");
private final Random rnd;
private final Language[] languages = Language.values();
private final GoogleTranslateService ts = new GoogleTranslateService();
private final TranslateService<T> ts;
private final List<T> languages;
private final T languageAuto;
private final T languageEnglish;
@Override
public String transform(String str) {
try {
@ -72,17 +84,17 @@ public class TranslatingTransformer implements Transformer {
return str;
}
try {
Language startLang = StringUtils.isAlpha(Cfg.targetLanguage) && Cfg.targetLanguage.length() == 2
? Language.byId(Cfg.targetLanguage)
: Language.AUTO_DETECT; // Identify target language
T startLang = StringUtils.isAlpha(Cfg.targetLanguage) && Cfg.targetLanguage.length() == 2
? ts.parseLang(Cfg.targetLanguage)
: languageAuto; // Identify target language
String currentState = m.group(2);
Language currentLang = startLang;
T currentLang = startLang;
for (int i = 0; i < Cfg.rounds; i++) { // Translate around
Language newLang = randomLanguage();
T newLang = randomLanguage();
currentState = ts.translate(currentState, Cfg.breakFully ? randomLanguage() : currentLang, newLang);
currentLang = newLang;
}
currentState = ts.translate(currentState, currentLang, startLang == Language.AUTO_DETECT ? Language.ENGLISH : startLang); // Translate to starting language
currentState = ts.translate(currentState, currentLang, startLang == languageAuto ? languageEnglish : startLang); // Translate to starting language
currentState = m.group(1) + currentState + m.group(3); // Add back surrounding white space
Translater.LOGGER.info("Transformed: \"" + str + "\" to: \"" + currentState + "\"");
return currentState;
@ -92,11 +104,7 @@ public class TranslatingTransformer implements Transformer {
}
}
private Language randomLanguage() {
return languages[rnd.nextInt(languages.length)];
}
public TranslatingTransformer() {
rnd = new Random();
private T randomLanguage() {
return languages.get(rnd.nextInt(languages.size()));
}
}

View File

@ -23,12 +23,16 @@
"depends": {
"fabricloader": ">=0.12.12",
"minecraft": "*",
"libjf-config-v0": ">=2.2.0"
"libjf-config-v0": ">=2.7.0",
"libjf-translate-v1": ">=2.7.0"
},
"custom": {
"modupdater": {
"strategy": "curseforge",
"projectID": 394823
},
"libjf:config": {
"referencedConfigs": ["libjf-translate-v1"]
}
}
}

File diff suppressed because it is too large Load Diff