php dil ​​çeviri

4 Cevap php

Nasıl dil çeviri PHP ele? Ben kullanıcı tercihlerine dayalı bir sitenin dilini değiştirmeniz gerekir. Ayrıca, istemci kaynak koduna erişim olmayabilir. En azından, benim kendi bir klasör upload ve dinamik çevirisidir kendim yapabilirdim.

As far as I know, the basic process would be: Send Language 1 output to global function -> translate -> Output to screen.

Ben PHP özellikleri ile bana yardımcı olacak birine ihtiyacım var.

Are there any standard implementations that I am unaware of? Has anybody done such a thing and if so, how did you do it?

Teşekkürler.

4 Cevap

Ben de bu soruya bir cevap arıyor oldum ve ben php ile çözemediği olsa ben google dil API ile yapılabilir düşünüyorum.

Eğer php istediğinizi yapmanın standart bir yol var gibi görünüyor, bunu kullanır http://codex.wordpress.org/Translating_WordPress wordpress ne düşünüyorum ve bunu kendi dinamik çeviri sistemi yapmak çok benzer, aynı zamanda {[ile yapabilirsiniz (1)]} görünüşe göre.

Ama google api, ne yapabileceğini kullanıcı tercihi kendi dilini soruyor ve API için bu değişkeni geçmek ve halledeyim, sonra bir çerez, oturumu veya veritabanı ya bu değişkeni kaydetmek geri gidiyor çeviri.

Google bu hizmeti durdurmak, ancak yine de bir free service olarak bu servisi kullanmak gibi. Sunucu (www) bu kodu koyun ve bu dosyayı çalıştırın.

<?php

function curl($url,$params = array(),$is_coockie_set = false)
{

if(!$is_coockie_set){
/* STEP 1. let’s create a cookie file */
$ckfile = tempnam ("/tmp", "CURLCOOKIE");

/* STEP 2. visit the homepage to set the cookie properly */
$ch = curl_init ($url);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec ($ch);
}

$str = ''; $str_arr= array();
foreach($params as $key => $value)
{
$str_arr[] = urlencode($key)."=".urlencode($value);
}
if(!empty($str_arr))
$str = '?'.implode('&',$str_arr);

/* STEP 3. visit cookiepage.php */

$Url = $url.$str;

$ch = curl_init ($Url);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);

$output = curl_exec ($ch);
return $output;
}

function Translate($word,$conversion = 'hi_to_en')
{
$word = urlencode($word);
// dutch to english
if($conversion == 'nl_to_en')
$url = 'http://translate.google.com/translate_a/t?client=t&text='.$word.'&hl=en&sl=nl&tl=en&multires=1&otf=2&pc=1&ssel=0&tsel=0&sc=1';
 //english to arabic

 if($conversion=='en_to_ar')
 {
     $url = 'http://translate.google.co.in/translate_a/t?client=t&text='.$word.'&sl=en&tl=ar&hl=en&sc=2&ie=UTF-8&oe=UTF-8&prev=btn&ssel=3&tsel=4&q=free%20translate%20api';
 }
// english to hindi
if($conversion == 'en_to_hi')
$url = 'http://translate.google.com/translate_a/t?client=t&text='.$word.'&hl=en&sl=en&tl=hi&ie=UTF-8&oe=UTF-8&multires=1&otf=1&ssel=3&tsel=3&sc=1';

// hindi to english
if($conversion == 'hi_to_en')
$url = 'http://translate.google.com/translate_a/t?client=t&text='.$word.'&hl=en&sl=hi&tl=en&ie=UTF-8&oe=UTF-8&multires=1&otf=1&pc=1&trs=1&ssel=3&tsel=6&sc=1';

//$url = 'http://translate.google.com/translate_a/t?client=t&text='.$word.'&hl=en&sl=nl&tl=en&multires=1&otf=2&pc=1&ssel=0&tsel=0&sc=1';

$name_en = curl($url);

$name_en = explode('"',$name_en);
return  $name_en[1];
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<?php
echo "<br><br> Hindi To English <br>";
echo  Translate('कानूनी नोटिस: यह गूगल के अनुवादक सेवाओं की एक दुरुपयोग है, आप इस के लिए भुगतान करना होगा.');
echo "<br><br> English To Hindi <br> ";
echo  Translate('legal notice: This is an abuse of google translator services ,  you must pay for this.','en_to_hi');
echo "<br><br> Dutch To English <br>";
echo  Translate('Disclaimer: Dit is een misbruik van Google Translator diensten, moet u betalen.','nl_to_en');
echo "<br><br> English To Arabic<br>";
echo 'hii how are you<br>';
echo  Translate('hii how are you','en_to_ar');

echo "<br><br> Just Kidding ....... <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif?m=1129645325g' alt=':)' class='wp-smiley'> ";
?>
</body>
</html>

Currently its translating hindi to english, english to hindi, english to arabic. But you can translate any language to any language supported by Google. You just need to do is goto this page

https://translate.google.co.in/

Now open your firebug or inspect element. select from which language to which language you need to translate.Write something on the box and hit translate button. Now catch the request google send to translate.It looks like this.

'https://translate.google.co.in/translate_a/t?client=t&sl=en&tl=ar&hl=en&sc=2&ie=UTF-8&oe=UTF-8&oc=1&otf=1&ssel=0&tsel=0&q=d'

Now paste the request in the translate function.And add text='.$word.'& after client=t. Change https to http.

After that you need to call the translate function from html tag. like this echo Translate('hii how are you','en_to_ar'); First parameter is what do you want to translate.Put you statement over there. Second parameter is short form of which language to which language you want to translate. You can get the short form from the request you get from google translate.

check this client=t&sl=en&tl=ar&hl=en&..sl & hl= en(english) and tl=ar(arabic). Now you are ready to call translate function.

this için kredi vermek. Çeviri keyfini çıkarın.

why dont you use google API for this in PHP. http://code.google.com/p/gtranslate-api-php/

Specific to your question, you have two options 1. Change whole web page (translate) Or 2. Translate only specific portion like user data.

Vb menüleri, sayfa başlığını değiştirmek istemiyorum zaman ikinci bir önemli

Bu durumda, (CMS) gibi MySQL içeriği depolamak ve orijinalinden çeviri sonra bunları görüntülemek gerekir.