Document libjf-translate-v0

This commit is contained in:
Johannes Frohnmeyer 2022-01-28 15:49:45 +01:00
parent d0bb01a99b
commit 1f1535ac10
Signed by: Johannes
GPG Key ID: E76429612C2929F4
4 changed files with 14 additions and 7 deletions

View File

@ -0,0 +1,6 @@
# libjf-translate-v0
libjf-translate-v0 provides a util class for translating strings through Google Translate.
To translate a string, just call `TranslateService.translate("Text to translate", Language.AUTO_DETECT, Language.ENGLISH)`
To obtain allow configuring languages, you may use the `Language` enum itself or `Language.byId("en")`

View File

@ -16,20 +16,20 @@ public enum Language {
static { static {
for (Language language : Language.values()) { for (Language language : Language.values()) {
LANGUAGE_BY_VALUE.put(language.value, language); LANGUAGE_BY_VALUE.put(language.id, language);
} }
} }
public static Language byValue(String value) { public static Language byId(String value) {
return LANGUAGE_BY_VALUE.getOrDefault(value, AUTO_DETECT); return LANGUAGE_BY_VALUE.getOrDefault(value, AUTO_DETECT);
} }
public final String name; public final String name;
public final String value; public final String id;
Language(String name, String value) { Language(String name, String id) {
this.name = name; this.name = name;
this.value = value; this.id = id;
} }
@Override @Override

View File

@ -21,12 +21,12 @@ public class TranslateService {
if (textToTranslate == null) throw new TranslateException("textToTranslate must not be null"); if (textToTranslate == null) throw new TranslateException("textToTranslate must not be null");
String pageSource = ""; String pageSource = "";
try { try {
pageSource = getPageSource(textToTranslate, translateFrom.value, translateTo.value); pageSource = getPageSource(textToTranslate, translateFrom.id, translateTo.id);
Matcher matcher = TRANSLATION_RESULT.matcher(pageSource); Matcher matcher = TRANSLATION_RESULT.matcher(pageSource);
if (matcher.find()) { if (matcher.find()) {
String match = matcher.group(1); String match = matcher.group(1);
if (match != null && !match.isEmpty()) { if (match != null && !match.isEmpty()) {
return StringEscapeUtils.unescapeHtml4(match); return StringEscapeUtils.unescapeHtml4(match); //TODO use commons-text once that is shipped with Minecraft
} }
} }
throw new TranslateException("Could not translate \"" + textToTranslate + "\": result page couldn't be parsed"); throw new TranslateException("Could not translate \"" + textToTranslate + "\": result page couldn't be parsed");

View File

@ -14,5 +14,6 @@ nav:
- 'libjf-devutil-v0.md' - 'libjf-devutil-v0.md'
- 'libjf-data-v0.md' - 'libjf-data-v0.md'
- 'libjf-data-manipulation-v0.md' - 'libjf-data-manipulation-v0.md'
- 'libjf-translate-v0.md'
- 'libjf-unsafe-v0.md' - 'libjf-unsafe-v0.md'
- 'libjf-web-v0.md' - 'libjf-web-v0.md'