From f271fd733019fd5e578fa75794cc4b040f56a9d1 Mon Sep 17 00:00:00 2001 From: kjavitz Date: Thu, 5 Nov 2020 11:25:19 +0545 Subject: [PATCH] updated with latest google cloud apis env.php file --- .gitignore | 3 +++ composer.json | 2 +- translate.php | 32 ++++++++++++++++++++++---------- translateclass.php | 40 ++++++---------------------------------- 4 files changed, 32 insertions(+), 45 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..f4686f8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/.idea/ +/vendor/ +/composer.lock diff --git a/composer.json b/composer.json index dd29b27..ccb3854 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "require": { - "google/apiclient": "1.0.*@beta", + "google/cloud-translate": "1.9.1", "twbs/bootstrap": "~3.3.7", "league/csv": "^8.1" } diff --git a/translate.php b/translate.php index a465742..284f396 100644 --- a/translate.php +++ b/translate.php @@ -2,10 +2,13 @@ require('vendor/autoload.php'); require('translateclass.php'); +require('env.php'); +$devkey = 'AIzaSyAwVUbp5V9wMshjvLE7znoWRd-Mo1Br3vM'; use League\Csv\Reader; -$translater = new Translateclass(); -$languagesArray = $translater->getLanguagesAvailable(); +$translater = new Translateclass($devkey); +$languagesArray = $translater->client->localizedLanguages(); +$languageserror = false; /** * Process form if submitted @@ -37,10 +40,14 @@ * Go through each language and generate the CSV language files */ - foreach($_POST['language'] as $language){ - $translatedTextArray = $translater->processTranslationByRow($reader, $language); - $languageCode = $translater->getMageLanguageCode($language); - $translater->generateCSV($translatedTextArray, $languageCode); + if(isset($_POST['language'])){ + foreach($_POST['language'] as $language){ + $translatedTextArray = $translater->processTranslationByRow($reader, $language); + $languageCode = $translater->getMageLanguageCode($language); + $translater->generateCSV($translatedTextArray, $languageCode); + } + } else { + $languageserror = true; } } @@ -60,18 +67,23 @@ + +
- ' . $language['name'] . ''; + echo ''; } ?>
-
- +
+
diff --git a/translateclass.php b/translateclass.php index 07cb1e9..61272ca 100644 --- a/translateclass.php +++ b/translateclass.php @@ -1,6 +1,6 @@ client = new Google_Client(); - $this->client->setApplicationName("Client_Library_Examples"); - // Set your developer key here, make sure it is enabled for domain you are using this from - // and Google Translate API - // https://console.developers.google.com - $this->client->setDeveloperKey(""); - $this->service = new Google_Service_Translate($this->client); + $this->client = new Google\Cloud\Translate\V2\TranslateClient(['key'=>$devkey]); } - /** - * Gets languages available and returns them as an array - * - * @return mixed - */ - public function getLanguagesAvailable(){ - $langavailable = $this->service->languages; - $languages = $langavailable->listLanguages(['target' => $this->sourcelanguage]); - return $languages['data']['languages']; - } public function processTranslationByRow($reader, $destinationLanguage){ $totalRows = (int)count($reader); @@ -92,7 +76,7 @@ public function processTranslationByRow($reader, $destinationLanguage){ } if(($curRow != 0 && (($curRow % $this->linesToProcess) == 0)) || // if we are in a multiple of lines to process (($curRow + 1) == $totalRows)){ // - $translationsArray = $this->processTranslations($textToTranslateArray, $destinationLanguage); + $translationsArray = $this->client->translateBatch($textToTranslateArray, ['source' => $this->sourcelanguage, 'target' => $destinationLanguage ]); $translatedTextArray = array_merge($translatedTextArray, $translationsArray); $textToTranslateArray = []; // reset } @@ -100,18 +84,6 @@ public function processTranslationByRow($reader, $destinationLanguage){ return $translatedTextArray; } - /** - * Takes a source array and translates to the destination language - * - * @param $textToTranslateArray - * @param $sourceLanguage - * @return mixed - */ - public function processTranslations($textToTranslateArray, $destinationLanguage){ - $translations = $this->service->translations; - $translated = $translations->listTranslations($textToTranslateArray, $destinationLanguage, ['source' => $this->sourcelanguage]); - return $translated['data']['translations']; - } /** * Searches languages array and returns the Mage language code @@ -138,7 +110,7 @@ public function generateCSV($translatedTextArray, $languageCode) $file_name = $languageCode . '.csv'; for ($i = 0; $i < $len; $i++) { // format is 'text to translate','translated text' - $fileText .= '"' . $this->originalCSVLanguageArray[$i] . '","' . $translatedTextArray[$i]['translatedText'] . '"' . PHP_EOL; + $fileText .= '"' . $this->originalCSVLanguageArray[$i] . '","' . $translatedTextArray[$i]['text'] . '"' . PHP_EOL; } $newfile = fopen($this->i18ndir . DIRECTORY_SEPARATOR . $file_name, 'w') or die("Unable to open file!"); if (fwrite($newfile, $fileText)) { @@ -147,4 +119,4 @@ public function generateCSV($translatedTextArray, $languageCode) fclose($newfile); } -} \ No newline at end of file +}