From 69a002e1c3e4aae1b6ca52961d031700566ce9c3 Mon Sep 17 00:00:00 2001 From: samuelowino Date: Tue, 14 Jun 2022 00:29:01 +0300 Subject: [PATCH] Started work on supporting XCode Localizable.string translations --- .../TranslateApplication.java | 2 +- .../{ => android}/model/Resources.java | 2 +- .../{ => android}/model/String.java | 2 +- .../translate/GoogleTranslateFactory.java | 8 +++---- .../{ => android}/xml/XmlParserReader.java | 8 +++---- .../ios/LocalizableFileProcessor.java | 24 +++++++++++++++++++ .../ios/model/LocalizableTable.java | 6 +++++ 7 files changed, 41 insertions(+), 11 deletions(-) rename src/main/java/org/apluscreators/googletranslatelabs/{ => android}/model/Resources.java (89%) rename src/main/java/org/apluscreators/googletranslatelabs/{ => android}/model/String.java (93%) rename src/main/java/org/apluscreators/googletranslatelabs/{ => android}/translate/GoogleTranslateFactory.java (87%) rename src/main/java/org/apluscreators/googletranslatelabs/{ => android}/xml/XmlParserReader.java (88%) create mode 100644 src/main/java/org/apluscreators/googletranslatelabs/ios/LocalizableFileProcessor.java create mode 100644 src/main/java/org/apluscreators/googletranslatelabs/ios/model/LocalizableTable.java diff --git a/src/main/java/org/apluscreators/googletranslatelabs/TranslateApplication.java b/src/main/java/org/apluscreators/googletranslatelabs/TranslateApplication.java index 86e21a9..3b33772 100644 --- a/src/main/java/org/apluscreators/googletranslatelabs/TranslateApplication.java +++ b/src/main/java/org/apluscreators/googletranslatelabs/TranslateApplication.java @@ -1,7 +1,7 @@ package org.apluscreators.googletranslatelabs; -import org.apluscreators.googletranslatelabs.xml.XmlParserReader; +import org.apluscreators.googletranslatelabs.android.xml.XmlParserReader; import java.util.Arrays; import java.util.HashSet; diff --git a/src/main/java/org/apluscreators/googletranslatelabs/model/Resources.java b/src/main/java/org/apluscreators/googletranslatelabs/android/model/Resources.java similarity index 89% rename from src/main/java/org/apluscreators/googletranslatelabs/model/Resources.java rename to src/main/java/org/apluscreators/googletranslatelabs/android/model/Resources.java index 6af66c3..2d3f0fe 100644 --- a/src/main/java/org/apluscreators/googletranslatelabs/model/Resources.java +++ b/src/main/java/org/apluscreators/googletranslatelabs/android/model/Resources.java @@ -1,4 +1,4 @@ -package org.apluscreators.googletranslatelabs.model; +package org.apluscreators.googletranslatelabs.android.model; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; diff --git a/src/main/java/org/apluscreators/googletranslatelabs/model/String.java b/src/main/java/org/apluscreators/googletranslatelabs/android/model/String.java similarity index 93% rename from src/main/java/org/apluscreators/googletranslatelabs/model/String.java rename to src/main/java/org/apluscreators/googletranslatelabs/android/model/String.java index 25141be..7ff384b 100644 --- a/src/main/java/org/apluscreators/googletranslatelabs/model/String.java +++ b/src/main/java/org/apluscreators/googletranslatelabs/android/model/String.java @@ -1,4 +1,4 @@ -package org.apluscreators.googletranslatelabs.model; +package org.apluscreators.googletranslatelabs.android.model; import javax.xml.bind.annotation.XmlAttribute; diff --git a/src/main/java/org/apluscreators/googletranslatelabs/translate/GoogleTranslateFactory.java b/src/main/java/org/apluscreators/googletranslatelabs/android/translate/GoogleTranslateFactory.java similarity index 87% rename from src/main/java/org/apluscreators/googletranslatelabs/translate/GoogleTranslateFactory.java rename to src/main/java/org/apluscreators/googletranslatelabs/android/translate/GoogleTranslateFactory.java index 715fc08..2e12a5b 100644 --- a/src/main/java/org/apluscreators/googletranslatelabs/translate/GoogleTranslateFactory.java +++ b/src/main/java/org/apluscreators/googletranslatelabs/android/translate/GoogleTranslateFactory.java @@ -1,11 +1,11 @@ -package org.apluscreators.googletranslatelabs.translate; +package org.apluscreators.googletranslatelabs.android.translate; import com.google.cloud.translate.Translate; import com.google.cloud.translate.Translate.TranslateOption; import com.google.cloud.translate.TranslateOptions; import com.google.cloud.translate.Translation; -import org.apluscreators.googletranslatelabs.model.Resources; -import org.apluscreators.googletranslatelabs.model.String; +import org.apluscreators.googletranslatelabs.android.model.Resources; +import org.apluscreators.googletranslatelabs.android.model.String; public class GoogleTranslateFactory { @@ -26,7 +26,7 @@ private Resources translateResources(java.lang.String targetLanguage) { Resources translatedResources = new Resources(); String[] translatedStringsArray = new String[resources.getStrings().length]; - org.apluscreators.googletranslatelabs.model.String[] strings = resources.getStrings(); + org.apluscreators.googletranslatelabs.android.model.String[] strings = resources.getStrings(); for (int i = 0; i < strings.length; i++) { String translatedStringEntry = new String(); diff --git a/src/main/java/org/apluscreators/googletranslatelabs/xml/XmlParserReader.java b/src/main/java/org/apluscreators/googletranslatelabs/android/xml/XmlParserReader.java similarity index 88% rename from src/main/java/org/apluscreators/googletranslatelabs/xml/XmlParserReader.java rename to src/main/java/org/apluscreators/googletranslatelabs/android/xml/XmlParserReader.java index c17a858..3845ec2 100644 --- a/src/main/java/org/apluscreators/googletranslatelabs/xml/XmlParserReader.java +++ b/src/main/java/org/apluscreators/googletranslatelabs/android/xml/XmlParserReader.java @@ -1,13 +1,13 @@ -package org.apluscreators.googletranslatelabs.xml; +package org.apluscreators.googletranslatelabs.android.xml; import javax.xml.bind.JAXBContext; import javax.xml.bind.JAXBException; import javax.xml.bind.Marshaller; import javax.xml.bind.Unmarshaller; -import org.apluscreators.googletranslatelabs.model.String; -import org.apluscreators.googletranslatelabs.model.Resources; -import org.apluscreators.googletranslatelabs.translate.GoogleTranslateFactory; +import org.apluscreators.googletranslatelabs.android.model.String; +import org.apluscreators.googletranslatelabs.android.model.Resources; +import org.apluscreators.googletranslatelabs.android.translate.GoogleTranslateFactory; import java.io.File; import java.io.FileNotFoundException; diff --git a/src/main/java/org/apluscreators/googletranslatelabs/ios/LocalizableFileProcessor.java b/src/main/java/org/apluscreators/googletranslatelabs/ios/LocalizableFileProcessor.java new file mode 100644 index 0000000..eca9dd5 --- /dev/null +++ b/src/main/java/org/apluscreators/googletranslatelabs/ios/LocalizableFileProcessor.java @@ -0,0 +1,24 @@ +package org.apluscreators.googletranslatelabs.ios; + +import java.io.File; +import java.util.List; +import org.apluscreators.googletranslatelabs.ios.model.LocalizableTable; + +public interface LocalizableFileProcessor { + /** + * Extracts the key-values from XCode Localizable.string file + * + * @param localizableFile File + * @return List + */ + List extractLocalizableTableFromFile(File localizableFile); + + /** + * Runs translation for each string in the localizable table and returns a translated set of localizable values + * + * @param originalLocalizableValues + * @param locale String such as en, fr ... + * @return List of translated localizables + */ + List translateLocalizableTable(List originalLocalizableValues, String locale); +} diff --git a/src/main/java/org/apluscreators/googletranslatelabs/ios/model/LocalizableTable.java b/src/main/java/org/apluscreators/googletranslatelabs/ios/model/LocalizableTable.java new file mode 100644 index 0000000..42f06e2 --- /dev/null +++ b/src/main/java/org/apluscreators/googletranslatelabs/ios/model/LocalizableTable.java @@ -0,0 +1,6 @@ +package org.apluscreators.googletranslatelabs.ios.model; + +public class LocalizableTable { + private String key; + private String translatableResouce; +}