From 66f729b94e584e026cf253ac0581c722923eb826 Mon Sep 17 00:00:00 2001 From: Airsaid Date: Sun, 20 Jun 2021 18:49:08 +0800 Subject: [PATCH 1/6] Add sponsors support --- README.md | 3 +++ README_CN.md | 3 +++ 2 files changed, 6 insertions(+) diff --git a/README.md b/README.md index c98d7c3..3787972 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,9 @@ # Invite me for coffee :coffee: If this project has helped you, you can [invite me for coffee](https://25e37ece.wiz03.com/wapp/pages/view/share/s/0BUTXe15Q4mk28KWtW0l7BLh1Y6ijp02l4Ct2gxqhW0OmYvl). +# Sponsors +[![Development powered by JetBrains](https://pic.stackoverflow.wiki/uploadImages/111/201/226/60/2021/06/20/18/45/3aba65f5-1231-4c9a-817f-83cd5a29fd0c.svg)](https://jb.gg/OpenSourc) + # License ``` Copyright 2018 Airsaid. https://github.com/airsaid diff --git a/README_CN.md b/README_CN.md index 276ba22..117d383 100644 --- a/README_CN.md +++ b/README_CN.md @@ -50,6 +50,9 @@ # 请我喝咖啡 :coffee: 如果这个项目给你带来了帮助,你可以[请我喝咖啡](https://25e37ece.wiz03.com/wapp/pages/view/share/s/0BUTXe15Q4mk28KWtW0l7BLh1Y6ijp02l4Ct2gxqhW0OmYvl)。 +# 赞助商 +[![Development powered by JetBrains](https://pic.stackoverflow.wiki/uploadImages/111/201/226/60/2021/06/20/18/45/3aba65f5-1231-4c9a-817f-83cd5a29fd0c.svg)](https://jb.gg/OpenSourc) + # 许可证 ``` Copyright 2018 Airsaid. https://github.com/airsaid From 20dedc4ce4b3a7f76a89931bcf9f3d8415d937c1 Mon Sep 17 00:00:00 2001 From: Airsaid Date: Sun, 4 Jul 2021 23:40:11 +0800 Subject: [PATCH 2/6] Add afdian --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 02fe8e4..14a71ec 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1,2 @@ +custom: ["https://afdian.net/@airsaid", afdian.net/airsaid] open_collective: androidlocalizeplugin From 9b73d8e5ccfff5884b6c5baa8a9a256e174e66c5 Mon Sep 17 00:00:00 2001 From: Airsaid Date: Sun, 4 Jul 2021 23:40:57 +0800 Subject: [PATCH 3/6] Update FUNDING.yml --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 14a71ec..8fc4351 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,2 +1,2 @@ -custom: ["https://afdian.net/@airsaid", afdian.net/airsaid] +custom: ["https://afdian.net/@airsaid"] open_collective: androidlocalizeplugin From c9412f4a220b9b7d26761856b9ed07bb40229f5c Mon Sep 17 00:00:00 2001 From: Airsaid Date: Tue, 6 Jul 2021 14:30:02 +0800 Subject: [PATCH 4/6] Update issue_template --- .github/issue_template | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/issue_template b/.github/issue_template index dcf73ff..0878f4a 100644 --- a/.github/issue_template +++ b/.github/issue_template @@ -5,6 +5,12 @@ Please ensure you have given all the following requested information in your rep - [ ] Android Studio - [ ] IntelliJ IDEA +#### Please select the translator to use +- [ ] Google +- [ ] Microsoft +- [ ] Baidu +- [ ] Youdao + #### Version of Plugin and IDE - Plugin Version: - IDE Version: From 13e29977a29e06a8fd0c4b7ae36c2750056c6817 Mon Sep 17 00:00:00 2001 From: Airsaid Date: Tue, 6 Jul 2021 17:33:35 +0800 Subject: [PATCH 5/6] Fix translation error when source text is in chinese #33 --- .../translate/AbstractTranslator.java | 13 ++++++-- .../translate/impl/baidu/BaiduTranslator.java | 25 +++++++-------- .../impl/google/GoogleTranslator.java | 3 +- .../impl/microsoft/MicrosoftTranslator.java | 3 +- .../impl/youdao/YoudaoTranslator.java | 31 +++++++++---------- 5 files changed, 38 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/airsaid/localization/translate/AbstractTranslator.java b/src/main/java/com/airsaid/localization/translate/AbstractTranslator.java index d773503..0b13f73 100644 --- a/src/main/java/com/airsaid/localization/translate/AbstractTranslator.java +++ b/src/main/java/com/airsaid/localization/translate/AbstractTranslator.java @@ -28,6 +28,9 @@ import javax.swing.*; import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.nio.charset.StandardCharsets; import java.util.List; import java.util.stream.Collectors; @@ -55,14 +58,20 @@ public String doTranslate(@NotNull Lang fromLang, @NotNull Lang toLang, @NotNull return requestBuilder.connect(request -> { String requestParams = getRequestParams(fromLang, toLang, text) .stream() - .map(pair -> pair.first.concat("=").concat(pair.second)) + .map(pair -> { + try { + return pair.first.concat("=").concat(URLEncoder.encode(pair.second, StandardCharsets.UTF_8.name())); + } catch (UnsupportedEncodingException e) { + throw new TranslationException(fromLang, toLang, text, e); + } + }) .collect(Collectors.joining("&")); if (!requestParams.isEmpty()) { request.write(requestParams); } String requestBody = getRequestBody(fromLang, toLang, text); if (!requestBody.isEmpty()) { - request.write(requestBody); + request.write(URLEncoder.encode(requestBody, StandardCharsets.UTF_8.name())); } String resultText = request.readString(); return parsingResult(fromLang, toLang, text, resultText); diff --git a/src/main/java/com/airsaid/localization/translate/impl/baidu/BaiduTranslator.java b/src/main/java/com/airsaid/localization/translate/impl/baidu/BaiduTranslator.java index 2faa6cc..2e74c22 100644 --- a/src/main/java/com/airsaid/localization/translate/impl/baidu/BaiduTranslator.java +++ b/src/main/java/com/airsaid/localization/translate/impl/baidu/BaiduTranslator.java @@ -23,11 +23,9 @@ import com.airsaid.localization.translate.lang.Languages; import com.airsaid.localization.translate.util.GsonUtil; import com.airsaid.localization.translate.util.MD5; -import com.airsaid.localization.translate.util.UrlBuilder; import com.intellij.openapi.util.Pair; import com.intellij.util.io.RequestBuilder; import icons.PluginIcons; -import org.apache.commons.lang.StringEscapeUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -102,23 +100,22 @@ public class BaiduTranslator extends AbstractTranslator { @Override public @NotNull String getRequestUrl(@NotNull Lang fromLang, @NotNull Lang toLang, @NotNull String text) { - String salt = String.valueOf(System.currentTimeMillis()); - String appId = getAppId(); - String securityKey = getAppKey(); - String sign = MD5.md5(appId + text + salt + securityKey); - return new UrlBuilder(TRANSLATE_URL) - .addQueryParameter("from", fromLang.getCode()) - .addQueryParameter("to", toLang.getCode()) - .addQueryParameters("appid", appId) - .addQueryParameters("salt", salt) - .addQueryParameters("sign", sign) - .build(); + return TRANSLATE_URL; } @Override public @NotNull List> getRequestParams(@NotNull Lang fromLang, @NotNull Lang toLang, @NotNull String text) { + String salt = String.valueOf(System.currentTimeMillis()); + String appId = getAppId(); + String securityKey = getAppKey(); + String sign = MD5.md5(appId + text + salt + securityKey); List> params = new ArrayList<>(); - params.add(Pair.create("q", StringEscapeUtils.escapeJava(text))); + params.add(Pair.create("from", fromLang.getCode())); + params.add(Pair.create("to", toLang.getCode())); + params.add(Pair.create("appid", appId)); + params.add(Pair.create("salt", salt)); + params.add(Pair.create("sign", sign)); + params.add(Pair.create("q", text)); return params; } diff --git a/src/main/java/com/airsaid/localization/translate/impl/google/GoogleTranslator.java b/src/main/java/com/airsaid/localization/translate/impl/google/GoogleTranslator.java index 12aebe0..cce80d6 100644 --- a/src/main/java/com/airsaid/localization/translate/impl/google/GoogleTranslator.java +++ b/src/main/java/com/airsaid/localization/translate/impl/google/GoogleTranslator.java @@ -26,7 +26,6 @@ import com.intellij.openapi.util.Pair; import com.intellij.util.io.RequestBuilder; import icons.PluginIcons; -import org.apache.commons.lang.StringEscapeUtils; import org.jetbrains.annotations.NotNull; import javax.swing.*; @@ -106,7 +105,7 @@ public List getSupportedLanguages() { @Override public @NotNull List> getRequestParams(@NotNull Lang fromLang, @NotNull Lang toLang, @NotNull String text) { List> params = new ArrayList<>(); - params.add(Pair.create("q", StringEscapeUtils.escapeJava(text))); + params.add(Pair.create("q", text)); return params; } diff --git a/src/main/java/com/airsaid/localization/translate/impl/microsoft/MicrosoftTranslator.java b/src/main/java/com/airsaid/localization/translate/impl/microsoft/MicrosoftTranslator.java index 58657a3..ccac0f3 100644 --- a/src/main/java/com/airsaid/localization/translate/impl/microsoft/MicrosoftTranslator.java +++ b/src/main/java/com/airsaid/localization/translate/impl/microsoft/MicrosoftTranslator.java @@ -26,7 +26,6 @@ import com.intellij.openapi.util.Pair; import com.intellij.util.io.RequestBuilder; import icons.PluginIcons; -import org.apache.commons.lang.StringEscapeUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -182,7 +181,7 @@ public boolean isNeedAppId() { @Override @NotNull public String getRequestBody(@NotNull Lang fromLang, @NotNull Lang toLang, @NotNull String text) { - return "[{\"Text\": \"" + StringEscapeUtils.escapeJava(text) + "\"}]"; + return "[{\"Text\": \"" + text + "\"}]"; } @Override diff --git a/src/main/java/com/airsaid/localization/translate/impl/youdao/YoudaoTranslator.java b/src/main/java/com/airsaid/localization/translate/impl/youdao/YoudaoTranslator.java index 9947990..39f72a8 100644 --- a/src/main/java/com/airsaid/localization/translate/impl/youdao/YoudaoTranslator.java +++ b/src/main/java/com/airsaid/localization/translate/impl/youdao/YoudaoTranslator.java @@ -22,11 +22,9 @@ import com.airsaid.localization.translate.lang.Lang; import com.airsaid.localization.translate.lang.Languages; import com.airsaid.localization.translate.util.GsonUtil; -import com.airsaid.localization.translate.util.UrlBuilder; import com.intellij.openapi.util.Pair; import com.intellij.util.io.RequestBuilder; import icons.PluginIcons; -import org.apache.commons.lang.StringEscapeUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -169,20 +167,7 @@ public String getApplyAppIdUrl() { @Override public @NotNull String getRequestUrl(@NotNull Lang fromLang, @NotNull Lang toLang, @NotNull String text) { - String salt = String.valueOf(System.currentTimeMillis()); - String curTime = String.valueOf(System.currentTimeMillis() / 1000); - String appId = getAppId(); - String appKey = getAppKey(); - String sign = getDigest(appId + truncate(text) + salt + curTime + appKey); - return new UrlBuilder(TRANSLATE_URL) - .addQueryParameter("from", fromLang.getCode()) - .addQueryParameter("to", toLang.getCode()) - .addQueryParameter("signType", "v3") - .addQueryParameter("curtime", curTime) - .addQueryParameter("appKey", appId) - .addQueryParameter("salt", salt) - .addQueryParameter("sign", sign) - .build(); + return TRANSLATE_URL; } private String truncate(String q) { @@ -212,8 +197,20 @@ private String getDigest(String string) { @Override public @NotNull List> getRequestParams(@NotNull Lang fromLang, @NotNull Lang toLang, @NotNull String text) { + String salt = String.valueOf(System.currentTimeMillis()); + String curTime = String.valueOf(System.currentTimeMillis() / 1000); + String appId = getAppId(); + String appKey = getAppKey(); + String sign = getDigest(appId + truncate(text) + salt + curTime + appKey); List> params = new ArrayList<>(); - params.add(Pair.create("q", StringEscapeUtils.escapeJava(text))); + params.add(Pair.create("from", fromLang.getCode())); + params.add(Pair.create("to", toLang.getCode())); + params.add(Pair.create("signType", "v3")); + params.add(Pair.create("curtime", curTime)); + params.add(Pair.create("appKey", appId)); + params.add(Pair.create("salt", salt)); + params.add(Pair.create("sign", sign)); + params.add(Pair.create("q", text)); return params; } From 344a92476e6cd1823242bdcc0fd4efa41d9c1cfb Mon Sep 17 00:00:00 2001 From: Airsaid Date: Tue, 6 Jul 2021 18:15:07 +0800 Subject: [PATCH 6/6] Prepare version 2.2.1 --- CHANGELOG.md | 3 +++ build.gradle | 2 +- src/main/resources/META-INF/plugin.xml | 3 +-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eaffb53..b36fa3d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Change Log +## [V2.2.1](https://github.com/Airsaid/AndroidLocalizePlugin/releases/tag/v2.2.1) (2021-07-06) +- Fix translation error when source text is in chinese [#33](https://github.com/Airsaid/AndroidLocalizePlugin/issues/33). + ## [V2.2.0](https://github.com/Airsaid/AndroidLocalizePlugin/releases/tag/v2.2.0) (2021-06-08) - Fix incomplete Google translation long text [#31](https://github.com/Airsaid/AndroidLocalizePlugin/issues/31). - Add power by translator description. diff --git a/build.gradle b/build.gradle index d25684d..9dee905 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group 'com.airsaid' -version '2.2.0' +version '2.2.1' sourceCompatibility = 1.8 diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index fffe5d8..d344883 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -37,8 +37,7 @@ -
  • Fix incomplete Google translation long text.
  • -
  • Add power by translator description.
  • +
  • Fix translation error when source text is in chinese.
  • Full Changelog History ]]>