【问题标题】:Google Translate API server side谷歌翻译 API 服务器端
【发布时间】:2010-12-31 21:33:57
【问题描述】:

有没有办法将 Google Translate API 与 PHP(服务器端)一起使用?

【问题讨论】:

    标签: php google-translate google-translation-api


    【解决方案1】:

    尝试查看声称能够做到这一点的http://code.google.com/p/gtranslate-api-php/。请注意,所需文件 (GTranslate.php) 目前似乎仅在该项目的 SVN 存储库中可用。

    【讨论】:

      【解决方案2】:

      想要在 PHP(服务器端)中使用 Google Translate API,您需要在您的 composer 文件中插入“google/cloud-translate”和“google/apiclient”,运行 composer update 并在创建后调用 translate 方法以下类的对象:

      <?php
      
      require_once APP_ROOT . '/library/google-api-php-client/src/Google_Client.php';
      require_once APP_ROOT . '/library/google-api-php-client/src/contrib/Google_TranslateService.php';
      
      class GoogleTranslator
      {
          private $developer_key;
      
          const PROVIDER = "google";
          const SUCCESS = "success";
          const FAILURE = "failure";
          const TRANSLATE_SUCCESS_MESSAGE = 'text translation successful';
      
          public function __construct()
          {
              $this->developer_key = '<DEVELOPER KEY HERE>';
          }
      
          public function translate($text, $source_language, $target_language)
          {
              try {
                  $client = new \Google_Client();
                  $client->setApplicationName('Google Translate PHP Starter Application');
      
                  $client->setDeveloperKey($this->developer_key);
                  $service = new \Google_TranslateService($client);
      
                  $optional_parameters = array('source' => $source_language);
      
                  $translated_text = $service->translations->listTranslations($text, $target_language, $optional_parameters);
                  return array('translation' => $translated_text['translations'][0]['translatedText'],
                      'provider' => self::PROVIDER,
                      'status' => self::SUCCESS,
                      'message' => self::TRANSLATE_SUCCESS_MESSAGE);
              } catch (\Exception $e) {
                  error_log($e->getMessage() . " FOR GET TRANSLATION CALL", "GOOGLE TRANSLATE API");
                  $res = array('translation' => '',
                      'provider' => self::PROVIDER,
                      'status' => self::FAILURE,
                      'message' => $e->getMessage());
                  return $res;
              }
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2011-12-26
        • 2010-10-10
        • 2013-02-15
        • 2012-01-26
        • 2012-01-19
        • 1970-01-01
        • 2016-11-18
        相关资源
        最近更新 更多