Airsaid / AndroidLocalizePlugin

:earth_asia: Android localization plugin. supports multiple languages and multiple translators.
https://plugins.jetbrains.com/plugin/11174-androidlocalize
Apache License 2.0
582 stars 91 forks source link

Translation appears to be failing because Google has moved the translate endpoint #165

Open william-ferguson-au opened 2 months ago

william-ferguson-au commented 2 months ago

Please ensure you have given all the following requested information in your report.

Please select the affected platforms

Please select the translator to use

NB I can't see a way to configure which translator the plugin should use in the IDE, but from the stacktrace below it appears to be using he Google translate API.

Version of Plugin and IDE

Issue details

Attempt to translate any resource string file and get: Note the HTTP 302 at the end.

2024-07-13 05:06:27,804 [153947367]   WARN - #com.airsaid.localization.task.TranslateTask - Failed to translate "Product Description" from Auto to English with error: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
com.airsaid.localization.translate.TranslationException: Failed to translate "Product Description" from Auto to English with error: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
    at com.airsaid.localization.translate.AbstractTranslator.doTranslate(AbstractTranslator.java:76)
    at com.airsaid.localization.translate.services.TranslatorService.doTranslate(TranslatorService.java:120)
    at com.airsaid.localization.task.TranslateTask.doTranslate(TranslateTask.java:205)
    at com.airsaid.localization.task.TranslateTask.doTranslate(TranslateTask.java:170)
    at com.airsaid.localization.task.TranslateTask.run(TranslateTask.java:126)
    at com.intellij.openapi.progress.impl.CoreProgressManager.startTask(CoreProgressManager.java:477)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.startTask(ProgressManagerImpl.java:133)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcessWithProgressAsynchronously$6(CoreProgressManager.java:528)
    at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$4(ProgressRunner.java:250)
    at com.intellij.openapi.progress.ProgressManager.lambda$runProcess$0(ProgressManager.java:100)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:221)
    at com.intellij.platform.diagnostic.telemetry.helpers.TraceKt.use(trace.kt:46)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$2(CoreProgressManager.java:220)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:660)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:735)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:691)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:659)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:79)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:202)
    at com.intellij.openapi.progress.ProgressManager.runProcess(ProgressManager.java:100)
    at com.intellij.openapi.progress.impl.ProgressRunner.lambda$submit$5(ProgressRunner.java:250)
    at com.intellij.openapi.progress.impl.ProgressRunner$ProgressRunnable.run(ProgressRunner.java:500)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:702)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1$1.run(Executors.java:699)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
    at java.base/java.util.concurrent.Executors$PrivilegedThreadFactory$1.run(Executors.java:699)
    at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:397)
    at com.google.gson.Gson.fromJson(Gson.java:1227)
    at com.google.gson.Gson.fromJson(Gson.java:1137)
    at com.google.gson.Gson.fromJson(Gson.java:1047)
    at com.google.gson.Gson.fromJson(Gson.java:982)
    at com.airsaid.localization.translate.impl.google.GoogleTranslator.parsingResult(GoogleTranslator.java:93)
    at com.airsaid.localization.translate.AbstractTranslator.lambda$doTranslate$1(AbstractTranslator.java:71)
    at com.intellij.util.io.HttpRequests.doProcess(HttpRequests.java:529)
    at com.intellij.util.io.HttpRequests.process(HttpRequests.java:511)
    at com.intellij.util.io.HttpRequests$RequestBuilderImpl.connect(HttpRequests.java:340)
    at com.airsaid.localization.translate.AbstractTranslator.doTranslate(AbstractTranslator.java:55)
    ... 28 more
Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
    at com.google.gson.stream.JsonReader.beginObject(JsonReader.java:393)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:386)
    ... 38 more
2024-07-13 05:06:27,805 [153947368]   INFO - #com.airsaid.localization.translate.services.TranslatorService - doTranslate fromLang: Lang{id=0, code='auto', name='Auto', englishName='Auto', translationCode='null'}, toLang: Lang{id=100, code='en', name='English', englishName='English', translationCode='null'}, text: Product / Order ID
2024-07-13 05:06:28,481 [153948044]   INFO - #com.airsaid.localization.translate.AbstractTranslator - parsingResult: <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>302 Moved</TITLE></HEAD><BODY>
<H1>302 Moved</H1>
The document has moved
<A HREF="https://www.google.com/sorry/index?continue=https://translate.googleapis.com/translate_a/single%3Fsl%3Dauto%26tl%3Den%26client%3Dgtx%26dt%3Dt%26dj%3D1%26ie%3DUTF-8%26oe%3DUTF-8%26tk%3D941341.595502&amp;q=EgSfxA8CGLP9xbQGIjCbd47ihyZ0POgiV2MXq3iUvKW7agKAxEtjAMqRH1tJ634CzraS4QP_33G4OXerKIAyAXJaAUM">here</A>.
</BODY></HTML>