TranslationService.java

package sk.iway.iwcm.system.translation;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import sk.iway.iwcm.Logger;
import sk.iway.iwcm.Tools;

/**
 * Vseobecna trieda pre preklad textov, vyzaduje konfiguraciu prekladaca, aktualne je podporovany DeepL
 */
@Getter
@Setter
@AllArgsConstructor
public class TranslationService {

    private String fromLanguage;
    private String toLanguage;

    public String translate(String text) {
        return translate(text, fromLanguage, toLanguage);
    }

    /**
     * Prelozi zadany text (slovo/veta/HTML kod) zo zdrojoveho do cieloveho jazyka (2 pismenovy kod)
     * @param text
     * @param fromLanguage
     * @param toLanguage
     * @return
     */
    public static String translate(String text, String fromLanguage, String toLanguage) {

        try {

            if (Tools.isEmpty(text) || text.contains("autotest")) return text;
            if (Tools.isEmpty(fromLanguage) || Tools.isEmpty(toLanguage) || fromLanguage.equalsIgnoreCase(toLanguage)) return text;

            if (DeepL.isConfigured()) return DeepL.translate(text, fromLanguage, toLanguage);

        } catch (Exception ex) {
            Logger.error(TranslationService.class, ex);
        }

        return text;
    }

}