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 {
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);
}
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.value = value;
this.id = id;
}
@Override

View File

@ -21,12 +21,12 @@ public class TranslateService {
if (textToTranslate == null) throw new TranslateException("textToTranslate must not be null");
String pageSource = "";
try {
pageSource = getPageSource(textToTranslate, translateFrom.value, translateTo.value);
pageSource = getPageSource(textToTranslate, translateFrom.id, translateTo.id);
Matcher matcher = TRANSLATION_RESULT.matcher(pageSource);
if (matcher.find()) {
String match = matcher.group(1);
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");

View File

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