Плагин для автоматического перевода заголовка поста на английский язык

Поисковые системы очень любят ЧПУ. Предлагаю вариант решения для перевода заголовка поста на английский язык в панели администрирования, используя Google Translate.

Код плагина:


<?php
/*
Plugin Name: Google Title
Plugin URI: https://www.kobzarev.com/programming/plug-in-for-the-title-transfer-to-the-post-of-english.html
Description: Плагин автоматического перевода заголовка статьи на английский язык, исползующий в своей работе Google API
Author: Mikhail Kobzarev <mikhail.kobzaryov@gmail.com>
Contributor: Mikhail Kobzarev <mikhail.kobzaryov@gmail.com>
Author URI: https://www.kobzarev.com/
Version: 0.2
*/

function sanitize_title_with_translit($title) {
	return translate_title_with_google($title);
}

function translate_title_with_google($str, $from='ru', $to='en') {
	// Коннектимся к google
	$fp = fsockopen("www.google.com", 80, $errno, $errstr, 30);
	if (!$fp) {
		trigger_error("$errstr ($errno) \n", E_USER_WARNING);
		return "";
	} else {
		$out = "POST /translate_a/t?client=t&hl=en&sl=".$from."&tl=".$to."&text=".urlencode($str)." HTTP/1.1\r\n";
		$out .= "Host: www.google.com\r\n";
		$out .= "User-Agent: Mozilla/5.0\r\n";
		$out .= "Accept-Encoding: deflate\r\n";
		$out .= "Content-length: ".strlen($text)."\r\n";
		$out .= "Connection: Close\r\n\r\n";

		// Отсылаем запрос
		fputs($fp, $out);
		$res = "";

		// Получаем ответ
		while (!feof($fp)) {
			$res .=  fgets($fp, 1024);
		}
		fclose($fp);
	}

	// Парсим ответ, удаляя заголовки, переводя JSON в массив
	$res = str_replace("\r", "", $res);
	list(, $res) = explode("\n\n",$res);
	$result = json_decode($res, true);

	// Возвращаем результат
	return $result['sentences'][0]['trans'];
}
// Регистрируем хук (привязка функции к действию sanitize_title)
add_action('sanitize_title', 'sanitize_title_with_translit', 0);
?>

Как создать

Копируем данный код, сохраняем в файл с именем google-title.php, кладем всё это дело в папку /wp-content/plugins/google-title. В панели администрирования заходим в «плагины» и активируем наш созданный плагин Google Title.

Как использовать

В панели администрирования заходим в «Записи» → «Новая запись». Пишем заголовок поста по-русски. Убираем курсор из поля ввода, плагин тут же переводит название на английский язык.

Обо всех недочетах — сюда в комменты.

Внимание. С выходом WordPress 3 при наличии данного плагина перестают нормально работать ЧПУ.

26 мая 2011 года официально закрыт Google Translate API. Из-за существенных экономических затрат и большого количества абуз, будет ограничено количество запросов в день, а 1 декабря 2011 года будет полное отключение API.

Ссылки

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>