Страницы: 1
RSS
Транслитерация англ-рус
 
Добрый вечер!

Перепробовал всё, что нашел в интернете, и надстройку и с Вашего сайта макрос, так и не смог добиться более менее адекватного траслита с английского на русский, наоборот без проблем...

Помогите пожалуйста!
 
а какие проблемы-то выявились?
что не так?

PS: тут не транслитом надо пользоваться, а списком замен
(забив в таблицу из 2 столбцов полный список названий городов)
http://excelvba.ru/programmes/Replacements
Изменено: Игорь - 04.06.2014 17:36:50
 
А вот тут и проблема-списочек из 6500 строк.......проблематично получается
 
строк много - но городов-то намного меньше
так что список не так велик будет

это единственный способ перевести названия городов на русский язык без ошибок
 
я понял. список состоит из 6500 названий не только городов. все названия уникальны.

подскажите почему ни один из способов не переводит, например, YA в Я, ZH в Ж и так далее, в смысле две буквы способы переводят как ЙА или ЗХ
 
Цитата
viktor595 пишет:
ни один из способов не переводит, например, YA в Я, ZH в Ж и так далее
А здесь разве не переводит?
 
Юра, оно везде переводит, и у меня тоже, - но не так, как надо автору темы:
http://excelvba.ru/code/translit
(кстати, в этой статье есть ответ на вопрос, почему нереально выполнить корректный обратный перевод)

А здесь даже можно настроить, что на что заменять:
http://excelvba.ru/code/TranslitAddin
но и это не панацея

Цитата

К сожалению, процесс обратной транслитерации весьма затруднён (я бы даже сказал, что в общем случае невозможно сделать такую функцию, которая преобразовывала бы строку после транслитерации к исходному виду).
Попытаюсь объяснить, почему так происходит:

Допустим, в качестве исходной строки у нас будет текст "щзч схш жзх"
Код
1
2
3
4
5
6
7
8
Sub ПримерИспользованияФункцииTranslit()
    txt = "щзч схш жзх"
    newtxt = Translit(txt)
    Debug.Print newtxt    ' результат = строка "zchzch shsh zhzh"
 
    MsgBox "Строка """ & txt & """" & vbNewLine & "преобразована в строку """ _
           & newtxt & """", vbInformation, "Результат обработки"
End Sub

И что же мы видим на выходе?
А вот что: "zchzch shsh zhzh"
Достаточно похожие сочетания букв, не правда ли?

И как теперь макросу определить, что означает сочетание "zch sh zh" - "щ сх ж" или "зч ш ж"?
Или, может, "зч сх зх"? Все варианты для макроса ведь равнозначны...
А сочетание "zhzh" следует перевести как "зхзх" или как "жж"?

То же самое касается некоторых других буквосочетаний.
Специально проверил транслитерацию подобных сочетаний на популярном сервисе http://www.translit.ru/

Результат - при обратном переводе на русский исходная строка изменилась: схш жзх --> shsh zhzh --> шш жж

Вывод:
учитывая возможное количество неопределённостей, проще обратную транслитерацию выполнять вручную.
 
Да, конечно,- с ОБРАТНЫМ переводом проблема. Согласен.
 
Системы транслитерации русских букв бывают разные, см., например, здесь - Сравнительная таблица систем транслитерации
Есть среди них и хорошо обратимые, например, таблица из столбца 6 по ссылке.
Для Unicode можно сделать транслитерацию, обратимую в обе стороны, для любой из таблиц  - с невидимым символом-разделителем,
Но такой код будет однозначно работать только с результатом, полученным им самим.
Изменено: ZVI - 06.06.2014 04:18:28
 
Раздули из мухи слона =-)

Скажите что в здесь необходимо изменить, что бы работала обратная транслитерация АНГЛ в РУС?
 
Цитата
viktor595 пишет: из мухи слона
Прикалываетесь? Да не один переводчик (из существующих на Земле) на 100% толком не переводит.
А по теме: night, right, light - например... и т.д.
Изменено: Nic70y - 06.06.2014 14:45:28
 
Viktor595, если заглянуть в пример.xlsx из 1-го сообщения, то как программа должна догадаться о необходимости добавлении мягкого знака в конце для PERM, STAVROPOL и ASTRAKHAN, а для NOYABRSK - внутри названия? И еще в конце NOVY добавить Й, при том, что в KHANTY не добавлять Й?
Программе нужно втолковать алгоритм, сможете написать его словами?   ;)
Изменено: ZVI - 06.06.2014 16:59:22
Страницы: 1
Читают тему
Наверх
Loading...