【发布时间】:2015-01-07 04:57:25
【问题描述】:
英语:
Sale ID prefix is a required field
法语:
Vente préfixe d'ID est un champ obligatoire
有没有办法让谷歌翻译不输出html实体,而是输出实际字符(')
代码:(见translateTo)
#!/usr/bin/php
<?php
$languages = array('english' => 'en', 'spanish' => 'es', 'indonesia' => 'id', 'french' => 'fr', 'italian' => 'it', 'dutch' => 'nl', 'portugues' => 'pt', 'arabic' => 'ar');
fwrite(STDOUT, "Please enter file: ");
$file = trim(fgets(STDIN));
//Run until user kills it
while(true)
{
fwrite(STDOUT, "Please enter key: ");
$key = trim(fgets(STDIN));
fwrite(STDOUT, "Please enter english value: ");
$value = trim(fgets(STDIN));
foreach($languages as $folder=>$code)
{
$path = dirname(__FILE__).'/../../application/language/'.$folder.'/'.$file;
$transaltedValue = translateTo($value, $code);
$current_file_contents = file_get_contents($path);
//If we have already translated, update it
if (preg_match("/['\"]{1}${key}['\"]{1}/",$current_file_contents))
{
$find_existing_translation = "/(\[['\"]{1})(${key}['\"]{1}[^=]+=[ ]*['\"]{1})([^'\"]+)(['\"]{1};)/";
$new_file_contents = preg_replace($find_existing_translation, '${1}${2}'.$transaltedValue.'${4}', $current_file_contents);
file_put_contents($path, $new_file_contents);
}
else //We haven't translated: Add
{
$pair = "\$lang['$key'] = '$transaltedValue';";
file_put_contents($path, str_replace('?>', "$pair\n?>", $current_file_contents));
}
}
fwrite(STDOUT, "Quit? (y/n): ");
$quit = strtolower(trim(fgets(STDIN)));
if ($quit == 'y' || $quit == 'yes')
{
exit(0);
}
}
function translateTo($value, $language_key)
{
if ($language_key == 'en')
{
return $value;
}
$api_key = 'MY_API_KEY';
$value = urlencode($value);
$url ="https://www.googleapis.com/language/translate/v2?key=$api_key&q=$value&source=en&target=$language_key";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$body = curl_exec($ch);
curl_close($ch);
$json = json_decode($body);
return $json->data->translations[0]->translatedText;
}
?>
【问题讨论】:
-
您是否尝试过将格式指定为文本?根据API document,这默认为 HTML。我知道这用于指定要翻译的文本的格式 - 但值得考虑的是响应将采用与请求相同的格式
-
做到了!请回答一下,我可以给你加分!
标签: google-translate