Сведения о вопросе

Математик

08:27, 28th August, 2020

Теги

Мультиязычный транслит на PHP?

Просмотров: 379   Ответов: 6

Нужно из текста на любом языке получать близкий по звучанию текст в ANSII.

Существует ли такое решение на php?



  Сведения об ответе

ASSembler

00:27, 26th August, 2020

Боюсь, ничего готового гугль не находит. И это действительно очень сложная и комплексная задача, совсем непохожая на работу mb_strtoupper(). С изменением регистра символов все просто — есть символы юникода, есть таблицы соответствия. А вот таблиц «близости по звучанию» — нет. И что-то мне подсказывает, что создать их вне зависимости от контекста языка невозможно.

Даже в фонетических языках есть большой произвол в звучании одних и тех же букв в зависимости от контекста. А та же кириллица используется во многих языках, звуча при этом немного по разному.

Что уж говорить про иероглифы, которые кодируясь одними и теми же последовательностями байт, звучат различно для разных народов их использующих. Тем более, что звуки языков с переменной тональностью довольно сложно передать посредством ASCII.

Но вот, в частности нашел таблицы для русского: textpattern.ru/html/transliteration-tables.htm


  Сведения об ответе

KOMP

01:30, 29th August, 2020

Думаю нет.

>на любом языке
вы представьте себе объем реализации и подумайте вы бы стали такой проект делать ??


  Сведения об ответе

$DOLLAR

21:06, 1st October, 2020

iconv //TRANSLIT проверяли? (мне ни разу не было нужно, просто как вариант)


  Сведения об ответе

VCe znayu

09:55, 22nd August, 2020

Все просто. Берете массив соответсвий 'ё'='yo' и скармливаете его функции strtr().


  Сведения об ответе

nYU

05:26, 23rd August, 2020

Как я понимаю вопрос еще открыт.
Мне помог модуль transliteration из drupal.
Там есть готовая функция. Нужно только отпилить привязку к друпалу.
Кстати, исходники основаны на MediaWiki и Text::Unidecode.


  Сведения об ответе

9090

23:50, 11th August, 2020

Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться