翻譯 API


Posted by tzutzu858 on 2020-11-15

結論 : 失敗是日常(泣)
就是一個失敗紀錄,之後再回頭看看自己到底那邊有問題~哀
就像之前把網站設成 HTTPS 花了一整天一直想去改 Apache 設定檔卡超久,結果之後一篇文章裡面介紹的一個工具五行指令自動解決= = 當初設定 HTTPS 的紀錄

目標 : 單字翻譯

其實最先設想是 iframe 別人的網頁,這樣直接單字翻譯最快,但試過以後別人網站安插廣告太多一直遮版面神煩,所以還是乖乖串 API ,但沒有一家是完全免費,是有幾家有條件的免費翻譯。


找翻譯 API

找到這篇文章 Day10-翻譯 api的使用Day11-api 的使用-2,裡面已經詳述幾家翻譯 API 的資訊整理,所以這邊就不再多打


嘗試 Cloud Translation API

其實只是因為 GCP 還有 300 鎂沒用,然後一個多月後又到期,所以想說直接用他們家的 Cloud Translation API ,萬一真的超過額度就停掉,不過每個月可以免費翻譯 50 萬個字元,應該是很難超過吧。


Cloud Translation API 官方文件

Setup
Translating text (Basic)
在這之前已經先看其他文章跟影片先申請金鑰,結果跟著官方文件做時,好像有申請 GCP 主機就不需要金鑰,因為在將憑證新增至您的專案,他說

您準備搭配 App Engine 或 Compute Engine 使用此 API 嗎?
在 GCE 與 GAE 上執行的應用程式可以使用應用程式預設憑證,且不需要您建立憑證。


Setup 這個文件,做到 Installing client libraries 時,看完還是不懂什麼是 client library,不過還是先照做,結果在我的主機下指令時 composer require google/cloud-translate 才發現我還要先安裝 composer

client library 一些文章影片記錄用


安裝 composer

什麼是 composer : A Dependency Manager for PHP
Download Composer
這邊最後是安裝失敗
所以繼續查文章看到 DAY02-composer安裝教學
發現多了幾個步驟,但其實不太懂為何要新增.bash_profile 的檔案,但照著做到最後 step.9 輸入 composer -->

The program 'composer' is currently not installed. To run 'composer' please
ask your administrator to install the package 'composer'

哭 T_T 還是失敗,那我就先跳過Installing client libraries 這個步驟


測試 PHP

Translating text (Basic)

use Google\Cloud\Translate\TranslateClient;

/** Uncomment and populate these variables in your code */
// $text = 'The text to translate.';
// $targetLanguage = 'ja';  // Language to translate to

$translate = new TranslateClient();
$result = $translate->translate($text, [
    'target' => $targetLanguage,
]);
print("Source language: $result[source]\n");
print("Translation: $result[text]\n");

改一改,噴 500 錯誤,不知道怎麼抓 bug ,因為我根本也不知道前面 將憑證新增至您的專案算不算成功,和照著 Setup 這份文件做,但有些步驟沒做到底有沒有關係,所以也不知道失敗是出錯在那個環節,不過應該是設定時沒安裝 client library 的關係。


JavaScript 串 Google Translate API

稍早之前始有找到幾篇文章
How To Use the Google Translate API with JavaScript: Build a Web Form with Translation Features
這篇講得蠻詳細,所以我也先申請個金鑰了,而且用 AJAX 比較熟悉,上面 PHP 的寫法不太熟悉,有可能我根本改錯方向才噴 500 ,不過還沒照著這篇文章去試,是因為想先嘗試官方文件的方法,覺得連金鑰都不用寫在 code 裡面,感覺就比較安全。

How to Use Google Translate API
但這篇說要 Prerequisites: Knowledge of React.js will be required for this tutorial. 需要具備 React.js的知識,React 是之後才會碰到的,所以我也在想要不要先追進度再回頭看才比較了解。










Related Posts

C# 顯示電腦時間

C# 顯示電腦時間

[12] 值 - 陣列、類陣列

[12] 值 - 陣列、類陣列

YDKB study

YDKB study


Comments