Test Driven программирование, общие вопросы и технология. Инструменты и примеры на php, python, perl ...
Test Driven программирование, общие вопросы и технология. Инструменты и примеры на php, python, perl, java, ruby, javascript, C/C++ Оригинал: ignar.name — Test Driven Development Tutorial — Presentation TranscriРубрика:О работе Tagged: C, java, JavaScript, perl, php, python
Великий Google порадовал разработчиков новым online сервисом «Google AJAX Language API». Функционал нового API — опреление языка текста и получение его перевода. На текущий момент поддерживается 13 языков, среди которых есть и русский. Переводы выполняются только на английский или только с английского языка, т.е. нельзя например напрямую перевести с русского на итальянский.
Чем это может быть полезно web-разработчику? Один из вариантов применения — генерация url-ов для динамического контента, по заголовку новости, теме в форуме или поста в блоге. А с кирилицей в урлах пока дела обстоят неважно. Например, урл новостей на ЛОРе никуда не годится в эпоху Web 2.0 :-)
http://www.linux.org.ru/view-message.jsp?msgid=2686861
Куда симпатичнее смотрелось бы:
http://www.linux.org.ru/news/ubuntu_8.04_released
или
http://www.linux.org.ru/news/2008/04/23/ubuntu_8.04_released
Сам Google позиционирует свой сервис для использования совместно с javascript. Однако, на практике, ничто не мешает применять любой другой язык программирования. Вот небольшой пример на perl, который позволяет получать онлайн перевод с русского на английский в консоли:
#!/usr/bin/perl -w
use strict;
use URI::Escape;
use LWP::UserAgent;
use JSON;
my $text = $ARGV[0];
my $escaped = uri_escape( $text );
my $user_agent = LWP::UserAgent->new;
$user_agent->env_proxy;
my $response = $user_agent->get(
"http://ajax.googleapis.com/ajax/services/language/translate" .
"?v=1.0&q=$escaped&langpair=ru%7Cen"
)->content;
my $translated = jsonToObj($response)->{responseData}->{translatedText};
print $translated, "\n";
Пример использования:
$ ./ggl_trnslt.pl "Возьми моё сердце"
Take my heart
Если слово не найдено в словаре, то производится его транслитерация, что обычно лучше чем ничего:
./ggl_trnslt.pl паровоз
parovoz
Хотя и непонятно, почему Гугль не знает про паровозы... Остается надеяться что со временем качество перевода возрастет.
Русский текст должен быть в кодировке utf8. Пример упрощен, в частности не делает никаких проверок на ошибки, но зато хорошо демонстрирует принцип использования.