2009-07-22 37 views
11

PHPで言語翻訳をどのように処理しますか?私は、ユーザーの好みに基づいてサイトの言語を変更する必要があります。また、クライアントのソースコードにアクセスできない場合もあります。ほとんどの場合、私自身のフォルダをアップロードして、自分自身で動的な翻訳を行うことができます。PHPでの言語翻訳

私が知る限り、基本的なプロセスは以下のようになります。 言語機能1をグローバル関数に送信 - >翻訳 - >出力を画面に出力します。

私はPHPの詳細を私に助けてくれる人が必要です。

私が認識していない標準的な実装はありますか? 誰かがこのようなことをしたことがありますか?あれば、どうしましたか?

ありがとうございました。

+2

PHPの組み込みシステムはありませんが、このように多くの質問があります:http://stackoverflow.com/search?q=php+translation – deceze

+0

PHPにはgettext拡張機能があります。非コアの機能が得られる。 – cweiske

答えて

3

私はこの質問への答えを探していましたが、私はphpで解決できないものの、私はそれがGoogleの言語APIで行うことができると思います。

phpでしたいことをする標準的な方法があるようですが、私はそれがhttp://codex.wordpress.org/Translating_WordPressを使用していると思います。それはあなた自身の動的翻訳システムを作成するのと非常に似ていますが、zendでこれを行うこともできます。

しかし、google apiに戻ると、ユーザーに好みの言語を尋ねて、その変数をCookie、セッション、またはデータベースに保存し、その変数をAPIに渡して翻訳を処理させることができます。

+0

非常に良い+1私はWPの変換方法を使用するつもりです。 –

0

は、それは、GoogleのAPIを使用してバックグラウンドであなたのウェブサイトを翻訳することができhttp://www.phptranslator.com を試してみてください。

+0

は無料ではありません。 – AjayR

1

なぜPHPでこのためにGoogle APIを使用していませんか?あなたの質問への具体的な http://code.google.com/p/gtranslate-api-php/

は、次の2つのオプション 1.変更し、全体のWebページ(翻訳) または 2.ユーザデータなどの特定の部分のみを翻訳しています。

あなたはメニューを変更したくないときに、第2の1が重要であり、ページのタイトルなど

この場合、あなたは(CMSのような)MySQLでコンテンツを保存し、元から翻訳した後、それらを表示する必要があります。

4

Googleはこのサービスを停止しますが、このサービスをご利用のサーバー(www)に無料サービス無料サービスとしてご利用いただけます。このファイルを実行してください。

<?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> 

現在、その翻訳ヒンディー語、英語、アラビア語と英語、ヒンディー語に英語へ。 でも、あなたはtranslate any language to any language supported by Googleです。 あなただけ行う必要がある後藤は今、あなたの放火犯を開いたり、要素を検査し、このページ

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

です。 どの言語をどの言語から翻訳するかを選択します。ボックスに何かを書き、翻訳ボタンを押します。 今すぐGoogleに翻訳を送信するリクエストを受け取ります。このように見えます。

'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' 

今翻訳しfunction.And client=ttext='.$word.'&を追加で要求を貼り付けます。 httpsをhttpに変更します。

その後、htmlタグからtranslate関数を呼び出す必要があります。 このようにecho Translate('hii how are you','en_to_ar'); 最初のパラメータは何を翻訳したいですか?そこに文を置きます。 2番目のパラメータは、言語を翻訳したい言語の短い形式です。 ショートフォームを入手するには、requestからGoogle翻訳を入手してください。

これをチェックしてください。client=t&sl=en&tl=ar&hl=en& ..sl & hl = en(英語)とtl = ar(アラビア語)です。 翻訳機能を呼び出す準備ができました。

クレジットカードにはを付けてください。翻訳をお楽しみください。

関連する問題