private function doTrans($text){
try {
if (strlen($text) > 5000) {
$max_len = strlen($text) ;
$len = 0;
$res = '';
while ($len < $max_len ){
$res .= $this->transText(substr($text,$len,5000));
$len = $len + 5000;
}
} else {
$res = $this->transText($text);
}
}catch (\Throwable $e) {
$res = false;
}
return $res;
}
private function transText($text){
require_once dirname(dirname(__DIR__)).'/ali/vendor/autoload.php';
$rt = '';
$config = new \Darabonba\OpenApi\Models\Config([
// 必填,您的 AccessKey ID
"accessKeyId" => 'xxxxxx',
// 必填,您的 AccessKey Secret
"accessKeySecret" => 'xxxxxx'
]);
// Endpoint 请参考 https://api.aliyun.com/product/alimt
$config->endpoint = "mt.aliyuncs.com";
$client = new \AlibabaCloud\SDK\Alimt\V20181012\Alimt($config);
$translateGeneralRequest = new \AlibabaCloud\SDK\Alimt\V20181012\Models\TranslateGeneralRequest([
"formatType" => "text",
"sourceLanguage" => "id",
"targetLanguage" => "zh",
"sourceText" => $text,
"scene" => "general",
"context" => ""
]);
$runtime = new \AlibabaCloud\Tea\Utils\Utils\RuntimeOptions([]);
try {
// 复制代码运行请自行打印 API 的返回值
$res = $client->translateGeneralWithOptions($translateGeneralRequest, $runtime);
if($res->statusCode == 200){
if($res->body->data->translated){
$rt = $res->body->data->translated;
}
}
}
catch (\Exception $error) {
// var_dump($error->getMessage().$error->getFile().$error->getLine());
ref_log_error(0,'翻译异常',$error->getMessage().$error->getFile().$error->getLine());
}
return $rt;
}
2024-04-18