Есть ли трансосвещенный lib какого-либо свободного PHP с открытым исходным кодом? [закрытый]

5
задан Rella 20 March 2010 в 15:40
поделиться

3 ответа

У Google есть AJAX API транслитерации, который хорошо справляется с многими основными скриптами.

Edit: Черт, при дальнейшем рассмотрении оказывается, что это позволяет конвертировать только из латинского алфавита. Глупо, что Google не сделал обратную функциональность доступной, поскольку они уже используют ее в Google Translate для обеспечения латинизации кириллицы, китайского, тайского, хинди и других языков, хотя, конечно, не абугида, таких как иврит и арабский.

Дальнейшее редактирование: Я подумал о возможном обходном пути: определить язык и использовать AJAX-запрос для запуска его через Google Translate, используя тот же исходный язык, что и язык назначения, например китайский-китайский. Firebug показывает, что транслитерация выводится в div, ID которого translit. Транслитерации обычно имеют сильное ударение, поэтому их необходимо преобразовать. На это ни в коем случае нельзя полагаться (хотя Google обычно не вносит частых структурных изменений в свой HTML), но это, безусловно, интересная возможность.

3
ответ дан 14 December 2019 в 08:47
поделиться

Я не лингвист, далеко не так, но я предполагаю, что то, что вы пытаетесь сделать невозможно, или чрезвычайно сложно реализовать.

В конце концов, перевод имен - это больше, чем просто «преобразование алфавитов». В русском это сравнительно легко, потому что у каждого символа кириллицы есть латинский аналог (это сестринские алфавиты ).

Я не знаю арабского языка, но для китайского вам понадобится система латинизации, такая как Пиньинь , чтобы добраться куда угодно. Это сложнее, чем простая замена символов.

Вот полный список ISO-романизаций - Если я правильно понимаю, решение, которое работает для вас, должно реализовывать эти правила.

Итак, задача будет следующая:

  • Проанализировать текст, содержащий множество различных диапазонов символов

  • Определить каждое слово, к какому диапазону символов оно принадлежит (อักษร ไทย - тайский язык; Москва - кириллица; и т. Д.)

  • Применяйте правильный метод латинизации к каждому слову.

Теперь мне очень интересно узнать о каких-либо библиотеках, которые могут делать это в PHP, но вполне возможно, что их нет.

2
ответ дан 14 December 2019 в 08:47
поделиться

Будет ли iconv делать?

С помощью этого модуля вы можете преобразовать строку, представленную локальным набором символов, в тот, который представлен другим набором символов, который может быть набором символов Unicode.

Из руководства PHP:

$text = "This is the Euro symbol '€'.";

echo 'Original : ', $text, PHP_EOL;
echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL;
echo 'IGNORE   : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL;
echo 'Plain    : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL;

Если этого не произойдет, ознакомьтесь с этими

В качестве альтернативы определите карту символов в массиве и используйте str_replace или mb_substitute_character , чтобы выполнить преобразование.

1
ответ дан 14 December 2019 в 08:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: