From ff90a79577558004a12884628bd15329af9f3096 Mon Sep 17 00:00:00 2001 From: Helmi Akermi <70575401+hakermi@users.noreply.github.com> Date: Thu, 19 Oct 2023 12:16:34 +0100 Subject: [PATCH] fix: issue in google translator connector whith text contains single quote char - EXO-66886 (#52) Prior to this change, when attempting to translate a text with a simple quote char with google translator, the connector fails due to existing quote char in the text due to the use of signle quotes in the request param. This prevents this situation by using escaped double quotes in the qurey param. --- .../translation/impl/connectors/DeepLTranslateConnector.java | 1 - .../translation/impl/connectors/GoogleTranslateConnector.java | 1 + .../translation/impl/connectors/DeepLTranslateConnectorTest.java | 1 - 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/services/impl/src/main/java/org/exoplatform/automatic/translation/impl/connectors/DeepLTranslateConnector.java b/services/impl/src/main/java/org/exoplatform/automatic/translation/impl/connectors/DeepLTranslateConnector.java index 755f8b1d..4df50853 100644 --- a/services/impl/src/main/java/org/exoplatform/automatic/translation/impl/connectors/DeepLTranslateConnector.java +++ b/services/impl/src/main/java/org/exoplatform/automatic/translation/impl/connectors/DeepLTranslateConnector.java @@ -37,7 +37,6 @@ public DeepLTranslateConnector(SettingService settingService) { super(settingService); textTranslationOptions = new TextTranslationOptions(); textTranslationOptions.setTagHandling("html"); - textTranslationOptions.setPreserveFormatting(true); textTranslationOptions.setSentenceSplittingMode(SentenceSplittingMode.All); } diff --git a/services/impl/src/main/java/org/exoplatform/automatic/translation/impl/connectors/GoogleTranslateConnector.java b/services/impl/src/main/java/org/exoplatform/automatic/translation/impl/connectors/GoogleTranslateConnector.java index fe3e3cb4..7159a65f 100644 --- a/services/impl/src/main/java/org/exoplatform/automatic/translation/impl/connectors/GoogleTranslateConnector.java +++ b/services/impl/src/main/java/org/exoplatform/automatic/translation/impl/connectors/GoogleTranslateConnector.java @@ -78,6 +78,7 @@ public String translate(String message, Locale targetLocale) { // except for chinese. But as zh correspond to simplified chinese, we can deal // with that : // https://cloud.google.com/translate/docs/languages + message = message.replace("'", "\\'"); String data = DATA_PATTERN.replace("{message}", message).replace("{targetLocale}", targetLocale.getLanguage()); try { HttpPost httpTypeRequest = new HttpPost(serviceUrl); diff --git a/services/impl/src/test/java/org/exoplatform/automatic/translation/impl/connectors/DeepLTranslateConnectorTest.java b/services/impl/src/test/java/org/exoplatform/automatic/translation/impl/connectors/DeepLTranslateConnectorTest.java index 51cf3e72..16dbd132 100644 --- a/services/impl/src/test/java/org/exoplatform/automatic/translation/impl/connectors/DeepLTranslateConnectorTest.java +++ b/services/impl/src/test/java/org/exoplatform/automatic/translation/impl/connectors/DeepLTranslateConnectorTest.java @@ -52,7 +52,6 @@ public void translate() throws NoSuchFieldException, IllegalAccessException, Dee // Need real auth-key to have a real result TextTranslationOptions textTranslationOptions = new TextTranslationOptions(); textTranslationOptions.setTagHandling("html"); - textTranslationOptions.setPreserveFormatting(true); textTranslationOptions.setSentenceSplittingMode(SentenceSplittingMode.All); TextResult textResult = new TextResult("

Hello

", "fr"); Field textTranslationOptionsField = deepLTranslateConnector.getClass().getDeclaredField("textTranslationOptions");