языковой перевод в php - PullRequest
12 голосов
/ 22 июля 2009

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

Насколько я знаю, основным процессом будет: Отправьте вывод Language 1 в глобальную функцию -> translate -> Output на экран.

Мне нужен кто-то, чтобы помочь мне со спецификой в ​​PHP.

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

Спасибо.

Ответы [ 5 ]

4 голосов
/ 01 ноября 2013

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

Теперь вставьте запрос в функцию перевода. И добавьте 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 (арабский). Теперь вы готовы вызвать функцию перевода.

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

3 голосов
/ 29 июля 2009

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

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

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

1 голос
/ 03 мая 2011

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

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

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

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

1 голос
/ 29 июля 2009

Вы можете использовать эту идею: http://www.phpcollection.com/spell-check-php-yahoo-api.html

0 голосов
/ 09 апреля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...