- PVSM.RU - https://www.pvsm.ru -
Понадобилось мне перевести список регионов мира на русский. Подобные списки с ISO-кодами встроены во многие CMS и интернет-магазины, и их перевод вручную — занятие зело неблагодарное. На русском я ничего подобного не нашел, да это не сильно помогло бы, поскольку нужно сопоставить названия на английском с названиями на русском. В итоге родилась простенькая идея быстрого перевода подобных списков, которой я хочу поделиться — вдруг кому-то тоже пригодится.
Я переводил список регионов для OpenCart, используя Википедию и простейший скрипт:
$db = mysql_connect('localhost', 'username', 'password');
mysql_select_db('database', $db);
mysql_set_charset('utf8', $db);
$result = mysql_query("SELECT zone_id, name FROM zone GROUP BY zone_id ASC"); // Берем список из базы.
while ($row = mysql_fetch_assoc($result))
{
$page = @file_get_contents('http://en.wikipedia.org/wiki/'.str_replace(" ", "_", $row['name'])); // Запрашиваем страницу на английском.
preg_match("/<a href="//ru.wikipedia.org/wiki/(.*)" title/", $page, $matches); // Ищем в коде полученной страницы ссылку на русский вариант.
if (!empty($matches))
{
mysql_query("UPDATE zone SET name = '".$row['name']."::".urldecode(str_replace("_", " ", $matches[1]))."' WHERE zone_id = '".$row['zone_id']."'"); // Если нашлось, пишем в базу вот так.
}
else
{
mysql_query("UPDATE zone SET name = '".$row['name']."' WHERE zone_id = '".$row['zone_id']."'"); // Если не нашлось, пишем этак.
}
}
Скрипт просто запрашивает Википедию, подставляя в ссылку английское название, парсит страницу на предмет наличия ссылки на русский вариант и из нее же забирает перевод. Фокус в том, что у Википедии почти все ссылки содержат то же самое название, что и в тексте. Даже вот такой [1] ужас.
Еще раз уточню, что это лишь пример. Теоретически подобное решение можно использовать для перевода любых списков через Википедию с любого языка на любой. Возможно, у данной задачи есть и другие варианты поиска и парсинга полученных данных, но ничего проще я не придумал.
Автор: czorny
Источник [2]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/34071
Ссылки в тексте:
[1] вот такой: http://ru.wikipedia.org/wiki/Автономное_территориальное_образование_с_особым_правовым_статусом_Приднестровье
[2] Источник: http://habrahabr.ru/post/179383/
Нажмите здесь для печати.