|
@@ -18,6 +18,7 @@ use app\admin\model\KefuLog;
|
|
|
use app\enterprise\model\{Message,Friend};
|
|
use app\enterprise\model\{Message,Friend};
|
|
|
use Exception;
|
|
use Exception;
|
|
|
use think\facade\Db;
|
|
use think\facade\Db;
|
|
|
|
|
+use Google\Cloud\Translate\V2\TranslateClient;
|
|
|
|
|
|
|
|
class Kefu extends BaseController
|
|
class Kefu extends BaseController
|
|
|
{
|
|
{
|
|
@@ -475,4 +476,43 @@ class Kefu extends BaseController
|
|
|
return $this->success(['chat_num' => $chat_num]);
|
|
return $this->success(['chat_num' => $chat_num]);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ //翻译
|
|
|
|
|
+ public function translate()
|
|
|
|
|
+ {
|
|
|
|
|
+ try {
|
|
|
|
|
+ $language_code = $this->request->param('language_code') ?? $this->lang;
|
|
|
|
|
+ $msg_id = $this->request->param('msg_id');
|
|
|
|
|
+ $content = Message::where('msg_id',$msg_id)->where('type','text')->value('content');
|
|
|
|
|
+ $content = strip_tags($content);
|
|
|
|
|
+
|
|
|
|
|
+ $change = [
|
|
|
|
|
+ 'zh' => 'zh-CN',
|
|
|
|
|
+ 'zh-cn' => 'zh-CN',
|
|
|
|
|
+ 'zh-tw' => 'zh-TW',
|
|
|
|
|
+ 'jp' => 'ja',
|
|
|
|
|
+ 'en-us' => 'en',
|
|
|
|
|
+ 'en-US' => 'en'
|
|
|
|
|
+ ];
|
|
|
|
|
+ if (isset($change[$language_code])) {
|
|
|
|
|
+ $language_code = $change[$language_code];
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (!empty($content)) {
|
|
|
|
|
+ $translate = new TranslateClient([
|
|
|
|
|
+ 'key' => env('GOOGLE_KEY') //AIzaSyCQmhmpEIm0ysoTznbm1NrDASovMxhmeSc 替换为你自己的API密钥
|
|
|
|
|
+ ]);
|
|
|
|
|
+ // 3. 执行翻译(目标语言指定为英文 en)
|
|
|
|
|
+ $result = $translate->translate($content, [
|
|
|
|
|
+ 'target' => $language_code, // 固定为 en 表示翻译成英文
|
|
|
|
|
+ ]);
|
|
|
|
|
+ if (!empty($result['text'])) {
|
|
|
|
|
+ return $this->success('提交成功', ['content' => $result['text']]);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ } catch (\Exception $e) {
|
|
|
|
|
+ return $this->error('翻译失败:' . $e->getMessage());
|
|
|
|
|
+ }
|
|
|
|
|
+ return $this->success('翻译成功', ['content' => '']);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|