我采用了一个名为 Google Translation 的 Alfred 工作流程,我编辑并添加了一些脚本。但是当我从葡萄牙语或法语翻译成英语时,出现了奇怪的字符:pão --> paÌo。
我已经编辑了 PHP 文件。我在 StackOverFlow 上进行了很多搜索,关于添加对所有语言的额外和特殊语言的支持 - 拉丁语、西里尔语和其他 - UTF8。我尽我所能尝试了所有方法,但它不起作用。
<?php
header('Content-Type: text/html; charset=utf-8');
function googleTranslate($request, $sourceLanguage, $targetLanguage)
{
$url = 'http://translate.google.com.br/translate_a/t?client=p&text='.urlencode($request).'&hl=pt-BR&lr=lang_pt'.$sourceLanguage.'&tl='.$targetLanguage.'&multires=1&ssel=0&tsel=0&sc=1';
$defaults = array( CURLOPT_RETURNTRANSFER => true, CURLOPT_URL => $url,
CURLOPT_FRESH_CONNECT => true
);
$ch = curl_init();
curl_setopt_array($ch, $defaults);
$out = curl_exec($ch);
$err = curl_error($ch);
curl_close($ch);
$result = '<?xml version="1.0"?><items>';
$json = json_decode(utf8_encode($out));
if (isset($json->dict)) {
$googleResults = $json->dict[0]->entry;
if (is_array($googleResults)) {
foreach ($googleResults as $translatedData) {
$result .= '<item uid="mtranslate" arg="'.$translatedData->word.'">';
$result .= '<title>'.$translatedData->word.'</title>';
$result .= '<subtitle>'.implode(', ', $translatedData->reverse_translation).'</subtitle>';
$result .= '<icon>'.$targetLanguage.'.png</icon>';
$result .= '</item>';
}
}
} elseif (isset($json->sentences)) {
foreach ($json->sentences as $sentence) {
$result .= '<item uid="mtranslate" arg="'.$sentence->trans.'">';
$result .= '<title>'.$sentence->trans.'</title>';
$result .= '<subtitle>'.$sentence->orig.'</subtitle>';
$result .= '<icon>'.$targetLanguage.'.png</icon>';
$result .= '</item>';
}
} else {
$result .= '<item uid="mtranslate">';
$result .= '<title>No results found</title>';
$result .= '</item>';
}
$result .= '</items>';
echo $result;
}
// googleTranslate('Wohnmobil', 'de', 'en’, ‘pt’, ‘fr’);
?>
我还尝试将“echo”PHP 脚本添加到 at Alfred 应用程序的脚本编辑器(Mac 应用程序)。