2010-02-21 3 views
1

Есть ли какой-либо API (например, google translation api) в PHP, который позволяет переводить HTML-блоки и переводить только текст из html?машинный перевод блоков HTML

+0

Что вы подразумеваете под блоками HTML? это содержание между двумя тегами? Или содержимое текстового поля или текстового поля? – PurplePilot

+0

Извините, что я написали вопрос плохой способ Вот что я должен сделать У меня есть блок html Я хочу перевести его с одного языка на другой с помощью API машинного перевода. Если я использую «babel fish» api, чтобы сделать это, он удаляет html-теги, а google также переводит теги html, которые я не хочу. если нет таких API, который позволяет мне transalte HTML блоки Одна вещь, которую я могу сделать, это HTML Block = >> text1 text2 синтаксического анализа его иметь - маркер [1] = text1 = >> MT => trans1 , как это сделать? – Sourabh

ответ

3

перевод API от Microsoft будет переводить при сохранении HTML-теги.

API задокументирован here. Он имеет как REST, так и WSDL-интерфейс.

Я обычно использую интерфейс WSDL с библиотекой SoapClient от PHP. Вот какой код, чтобы показать вам, как его использовать.

$client = new SoapClient("http://api.microsofttranslator.com/V1/SOAP.svc"); 

$params = array(
    'appId' => 'my_app_id', 
    'text' => '<p>This is a <b>test</b></p>', 
    'from' => 'en', 
    'to' => 'fr'); 

$translation = $client->translate($params); 

var_dump($translation); 

Вам необходимо зарегистрировать в Microsoft свой собственный идентификатор приложения, который вы передаете с каждым запросом. Вы можете зарегистрировать here.

Я бы посоветовал не удалять теги, переводить, а затем снова вставлять теги. Поскольку у вас нет гарантии, что номер слова и порядок сохранены в переводе, очень сложно понять, где разместить теги в переведенном тексте. Лучше иметь механизм MT обрабатывать теги.

+0

Я очень удивлен, что не видел Microsoft Translator раньше, это выглядит действительно полезно. –

+0

Да. Похоже, что это не продвигается так широко, как сервис Google. Я не знаю почему. –

-2

Использование Regular Expressions, PHP supports them. Regexlib имеет хорошую библиотеку различных предварительно написанных регулярных выражений, которые вы можете адаптировать.

+0

1. Это был не ответ на его вопрос 2. Если вы говорите, что создаете api самостоятельно, он обязательно должен использовать html-парсер. – Moak

+0

не разбирайте html с регулярным выражением пожалуйста :) http://www.codinghorror.com/blog/2009/11/parsing-html-the-cthulhu-way.html –

0

Не удалось получить ваш вопрос отлично, но если вы хотите получить текст из HTML, вид бегущего текста на сайте, вам нужен PHP гусеничный скрипт:

http://forums.digitalpoint.com/showthread.php?t=708122

Но если хотел Газа HTML и получить только текст, вы можете использовать РНР:

strip_tags function.

Но если вы имеете в виду, чтобы получить определенный фрагмент текста, вы кор использование л.д. регулярные выражения:

http://www.regular-expressions.info/

0

Вот еще один вариант:

Следуйте эти инструкции, чтобы перевести свой сайт на другой язык.

  1. Войдите в торговую площадку Microsoft Azure по адресу https://datamarket.azure.com/home/.
  2. Перейти к www.aka.ms/TranslatorADM. На 2 000 000 символов/месяц в 0,00 руб./Месяц выберите Обновление. Соглашайтесь с условиями.
  3. В нижней части страницы Microsoft Azure Marketplace, под РазработкаЗарегистрировать заявку. Заполните регистрационную форму.
  4. К http://www.microsofttranslator.com/Widget. Скопируйте HTML на веб-страницу, например www.example.com/translation.html. Также добавьте текст на страницу translation.html, например «это тест».

Веб-страница должна иметь переводчик Microsoft, который может использоваться для перевода страницы на другой язык.

Смежные вопросы