php实现翻译
PHP实现翻译的方法
使用Google Translate API
Google Translate API是常用的翻译服务,需要API密钥。安装官方客户端库后,通过以下代码调用:
require 'vendor/autoload.php';
use Google\Cloud\Translate\V2\TranslateClient;
$translate = new TranslateClient(['key' => 'YOUR_API_KEY']);
$result = $translate->translate('Hello world!', ['target' => 'zh-CN']);
echo $result['text'];
调用Microsoft Azure Translator
Azure认知服务提供翻译API,需注册获取终结点和密钥:
$key = "AZURE_KEY";
$endpoint = "https://api.cognitive.microsofttranslator.com/translate?api-version=3.0";
$text = "Sample text";
$headers = [
'Ocp-Apim-Subscription-Key: ' . $key,
'Content-Type: application/json'
];
$body = json_encode([['Text' => $text]]);
$ch = curl_init($endpoint . '&to=fr');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => $headers,
CURLOPT_POSTFIELDS => $body,
CURLOPT_RETURNTRANSFER => true
]);
$response = curl_exec($ch);
curl_close($ch);
print_r(json_decode($response, true));
本地化翻译库(PHP-Translate)
对于无需API的方案,可使用开源库如PHP-Translate:
use Symfony\Component\Translation\Translator;
use Symfony\Component\Translation\Loader\ArrayLoader;
$translator = new Translator('fr_FR');
$translator->addLoader('array', new ArrayLoader());
$translator->addResource('array', ['hello' => 'bonjour'], 'fr_FR');
echo $translator->trans('hello');
百度翻译API集成
百度提供通用翻译API,需申请ID和密钥:
$api_url = "http://api.fanyi.baidu.com/api/trans/vip/translate";
$appid = "APP_ID";
$key = "SECRET_KEY";
$salt = rand(10000, 99999);
$sign = md5($appid . "apple" . $salt . $key);
$params = [
'q' => 'apple',
'from' => 'en',
'to' => 'zh',
'appid' => $appid,
'salt' => $salt,
'sign' => $sign
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
print_r(json_decode($output, true));
注意事项
- 付费API需注意调用配额和费用
- 本地化方案适合静态内容,动态内容仍需API
- 所有API请求建议封装异常处理
- 敏感数据如密钥应存储在环境变量中







