Транслит
Closed this issue · 3 comments
А почему при транслите предполагается, что текст состоит только из русского или только из английского?
Если в тексте встречается буква, которой нет в русском или английском, то результат получается некорректный.
Например:
print translit.detranslify(u'The band is called Aavepyörä')
Возвращает:
Тхе банд ис cаллед Аавепyöрä
Или аналогично с русским текстом:
print translit.detranslify(u'His name is Андрей')
Возвращает:
Хис наме ис Ð�ндÑ�ей
А если попробовать так:
print translit.translify(u'Они используют Linux.')
То получится:
Unicode string doesn't transliterate completely, is it russian?
И slugify, похоже, тоже как-то странно сейчас работает:
print translit.slugify(u'Они используют Linux.')
Получается:
--linux
Я думаю, что в идеале функции транслитерации (как с русского на английский, так и с английского на русский) должны пропускать неизвестные символы и транслитерировать только те символы, которые присутствуют в таблице транслитерации.
Вообще, я писал статью про транслитерацию на Python. Если интересно, посмотрите.
А вообще классный проект! Спасибо, что сделали всё это.
Удачи!
@kmike Спасибо, но я и так в курсе. :)
Тут скорее именно предложения по усовершенствованию pytils (возможно, когда-нибудь потом, в будущем, когда будет время).
Ввиду наличия https://pypi.python.org/pypi/Unidecode , который поддерживает любой язык, не вижу смысла поддерживать pytils.translit. Скоро удалю его из пакета :)