英语:
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;
}
?>
Run Code Online (Sandbox Code Playgroud)
My *_*rts 11
据谷歌翻译的文档,你可以选择格式,您提供的是文本进行翻译(见format的查询参数).格式默认为HTMLif not specfied.
您应该将此查询参数设置text为指示您要发送纯文本,因为Google可能会以与收到的格式相同的格式返回已翻译的文本.
所以你的PHP代码可能变成:
$baseUrl = "https://www.googleapis.com/language/translate/v2";
$params ="?key=$api_key&q=$value&source=en&target=$language_key&format=text";
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $baseUrl + $params );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3320 次 |
| 最近记录: |