Языковой перевод в php

Как выполняется перевод на языке PHP? Мне нужно изменить язык сайта на основе пользовательских настроек. Кроме того, у меня может не быть доступа к исходному коду клиента. В лучшем случае я мог бы загрузить свою собственную папку и сам сделать динамический перевод.

Насколько я знаю, основным процессом было бы: Вывести язык 1 в глобальную функцию → перевести → Вывести на экран.

Мне нужен кто-то, кто поможет мне со спецификой PHP.

Существуют ли какие-либо стандартные реализации, о которых я не знаю? Кто-нибудь сделал такую ​​вещь, и если да, то как вы это сделали?

Спасибо.

Ответ 1

Как 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/

Теперь откройте свой firebug или проверите элемент. выберите, с какого языка на какой язык вам нужно перевести. Напишите что-нибудь на коробке и нажмите кнопку перевода. Теперь поймайте запрос google send to translate.It выглядит следующим образом.

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

Теперь вставьте запрос в функцию перевода. И добавьте text='.$word.'& после client=t. Измените https на http.

После этого вам нужно вызвать функцию перевода из тега html. как это echo Translate('hii how are you','en_to_ar'); Первый параметр - это то, что вы хотите перевести. Сделайте там выражение. Второй параметр - это краткая форма языка, на который вы хотите перевести язык. Вы можете получить короткую форму из request, которую вы получаете из google translate.

проверьте этот client=t&sl=en&tl=ar&hl=en&.. sl и hl = en (английский) и tl = ar (арабский). Теперь вы готовы перевести функцию перевода.

Отдайте кредит . Наслаждайтесь переводом.

Ответ 2

Я тоже искал ответ на этот вопрос, и хотя я не мог его решить с помощью php, я думаю, что это можно сделать с помощью google-языка api.

Кажется, что стандартный способ делать то, что вы хотите в php, я думаю, что Wordpress использует http://codex.wordpress.org/Translating_WordPress, и это очень похожая на вашу собственную динамическую систему перевода, вы также можете сделать это с помощью zend.

Но вернемся к google api, что вы можете сделать, это попросить пользователя их язык предпочтения и сохранить эту переменную либо в cookie, сеанс или базу данных, затем передать эту переменную в api и позволить ей обрабатывать перевод.

Ответ 4

почему вы не используете API Google для этого в PHP. http://code.google.com/p/gtranslate-api-php/

В зависимости от вашего вопроса у вас есть два варианта 1. Изменить всю веб-страницу (перевести)  Или 2. Перевести только определенную часть, такую ​​как данные пользователя.

Вторая важна, когда вы не хотите менять меню, название страницы и т.д.

В этом случае вам нужно сохранить содержимое в MySQL (например, CMS) и отобразить их после перевода с оригинала.

Ответ 5

Попробуйте http://www.phptranslator.com Он может перевести ваш сайт в фоновом режиме с помощью API Google.