Как язык перевода обрабатывается в PHP? Мне нужно изменить язык сайта на основе пользовательских настроек. Кроме того, у меня может не быть доступа к исходному коду клиента. В лучшем случае я мог бы загрузить свою собственную папку и сам сделать динамический перевод.
Насколько я знаю, основным процессом было бы: вывод языка 1 в глобальную функцию -> translate -> вывод на экран.
Мне нужен кто-то, кто поможет мне со спецификой PHP.
Существуют ли какие-либо стандартные реализации, о которых я не знаю? Кто-нибудь сделал такое, и если да, то как вы это сделали?
Благодарю.
Поскольку 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://img.ruphp.com/translation/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.'&
After 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 (арабский). Теперь вы готовы перевести функцию перевода.
Отдайте должное этому . Наслаждайтесь переводом.
Я тоже искал ответ на этот вопрос, и хотя я не мог его решить с помощью php, я думаю, что это можно сделать с помощью google-языка api.
Кажется, что стандартный способ делать то, что вы хотите в php, я думаю, что WordPress использует http://codex.wordpress.org/Translating_WordPress, и он очень похож на вашу собственную динамическую систему перевода, вы также можете делать это, по-видимому, с дзендом .
Но вернемся к google api , что вы можете сделать, это попросить пользователя их язык предпочтения и сохранить эту переменную либо в cookie, сессии, либо в базе данных, а затем передать эту переменную в api и позволить ей обрабатывать перевод.
Вы можете использовать эту идею: http://www.phpcollection.com/spell-check-php-yahoo-api.html
почему вы не используете API Google для этого в PHP. http://code.google.com/p/gtranslate-api-php/
Конкретно для вашего вопроса у вас есть два варианта: 1. Изменить всю веб-страницу (перевести) или 2. Перевести только определенную часть, такую как пользовательские данные.
Второй важный, когда вы не хотите менять меню, название страницы и т. Д.
В этом случае вам нужно сохранить содержимое в MySQL (например, CMS) и отобразить их после перевода с оригинала.
Попробуйте http://www.phptranslator.com. Он может перевести ваш сайт в фоновом режиме с помощью API Google.