Не, всё в прорядке. На оптимальность, скорость, отсутствие ошибок данный алгоритм не претендует. Но свою задачу выполняет
del
Подскажите пожалуйста, какими таблицами транслитерации пользуется osm2mp при задании ключа --translit?
При транслитерации с азербайджанского в латиницу одна буковка превращается в “@”, что некрасиво на карте выглядит. Хотелось бы ее хотя бы в “а” превращать.
Заранее спасибо.
какими таблицами транслитерации пользуется osm2mp при задании ключа --translit?
Это где-то тут
https://metacpan.org/source/SBURKE/Text-Unidecode-1.30/lib/Text/Unidecode/x01.pm
Почитал - ничерта не понял.
попробую по другому - где найти примеры файла, который требуется при задании ключа --ttable (–ttable= Имя файла дополнительной таблицы перекодировки (пример файла)
На вики ссылка на пример файла ведет в никуда…
Самое правильное будет сделать таблицу в формате GME, и использовать --lt-gme.
Можно заодно и им отправить.
Спасибо, попробую.
liosha
А можешь исправить чтобы можно было в параллели несколько процессов с Я.Переводом собирать? SQL же это позволяет?
Processing nodes...
DBD::SQLite::db do failed: database is locked at C:/navitel/lib/SQLite_File.pm line 319.
DBD::SQLite::db do failed: database is locked at C:/navitel/lib/SQLite_File.pm line 319.
DBD::SQLite::db do failed: database is locked at C:/navitel/lib/SQLite_File.pm line 319.
yatr: failed request zh-en for 4хП╖хо┐шИНце╝ at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
Wide character in warn at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
yatr: failed request zh-en for 4хП╖хо┐шИНце╝ at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
yatr: failed request zh-en for Border Mongolia - China at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
yatr: failed request zh-en for Wukui Expressway at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
Wide character in warn at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
yatr: failed request zh-en for чЯ│ц▓│хнРхНлчФЯхнжцаб at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
Wide character in warn at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
yatr: failed request zh-en for чЯ│ц▓│хнРхНлчФЯхнжцаб at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
Wide character in warn at C:/navitel/lib/LangTransform/YaTranslate.pm line 109.
SQL же это позволяет
Теоретически да, но тогда сильно просядет скорость, потому что отключится всё кеширование.
Проще для каждого потока использовать отдельный кеш, см --lt-yatr-cache-dir
И чего ему надобно?
Сделал файл AZ.yml
#### test
--- Azerbaijan
---
Ə: A
ə: a
запускаю с ключами --translit --ttable=AZ.yml
он ругаецца:
Loading configuration...
YAML Error: Expected separator '---'
Code: YAML_PARSE_ERR_NO_SEPARATOR
Line: 1
Document: 2
at YAML/Loader.pm line 81.
— должен быть до комментария
Леша, я пробовал вообще без комментария, т.е. первой строкой было — Azerbaijan, второй опять —.
Все равно такая же ругань на разделитель.
Вариант с таблицей GME также не работает, правда ругани нет, но и результата тоже. И там более непонятно как файл .dat оформлять…
А там случаем bom в файл не пролез? В yaml его быть не должно.
Для GME можно ориентироваться на файл с польским языком
Лёша, действительно был BOM в yaml. Я его убрал, osm2mp ругаться перестал на AZ.yml, но и результата тоже нет. По прежнему, буква Ə транслитеруется в @…
С файлом для GME такая же история - не ругается, но и не использует…
Что еще можно предпринять?
С файлом для GME такая же история - не ругается, но и не использует…
Тоже заметил такое. Несколько лет назад, когда данная фича только была реализована, она работала, а как то не так давно пробовал использовать и не получилось.
А можно какой-то небольшой пример для воспроизведения?
UPD. Поправил парсер gme-таблиц, должно работать.
Поправил парсер gme-таблиц, должно работать.
Теперь чтобы проверить, попрошу кого-нибудь скомпилировать екзешник для винды 64 бит.
Пожалуйста!
А с yaml’ом что? Тоже не парсится?
скомпилировать екзешник для винды 64 бит.
Что то я не совсем уверен что собрал как в прошлый раз, забыл как это делал в марте. Но вроде работает, языковые функции пока не проверял. https://yadi.sk/d/6-tzDrr43PuMpD или https://yadi.sk/d/X4XNAgdi3PuMoe
Похоже что всё таки как то не так, размер exe`шника меньше на несколько мегабайт и при запуске с Я.Переводом ругается:
Subroutine init redefined at LangTransform/Equal.pm line 15.
Subroutine init redefined at LangTransform/GmeTable.pm line 20.
Subroutine _make_gme_transformer redefined at LangTransform/GmeTable.pm line 53.
Subroutine _get_iso_tr redefined at LangTransform/Subst.pm line 291.
Subroutine init redefined at LangTransform/Subst.pm line 325.
Subroutine get_transformers redefined at LangTransform/Subst.pm line 337.
Subroutine init redefined at LangTransform/YaTranslate.pm line 28.
Subroutine _set_api_key redefined at LangTransform/YaTranslate.pm line 46.
Subroutine _api_request redefined at LangTransform/YaTranslate.pm line 58.
Subroutine _get_langs redefined at LangTransform/YaTranslate.pm line 73.
Subroutine _make_transformer redefined at LangTransform/YaTranslate.pm line 82.
Subroutine get_transformers redefined at LangTransform/YaTranslate.pm line 110.
Subroutine new redefined at LangTransform/YaTranslate.pm line 140.
Subroutine _get_cache redefined at LangTransform/YaTranslate.pm line 147.
Subroutine set redefined at LangTransform/YaTranslate.pm line 168.
Subroutine get redefined at LangTransform/YaTranslate.pm line 177.
Собирал командой pp osm2mp.pl @pp-opts
Поправил парсер gme-таблиц, должно работать.
Use of uninitialized value within %table in substitution iterator at C:/osm2mp/lib/LangTransform/GmeTable.pm line 82.
UPD: Сменил версию Perl на 5.16, ошибка с картинки ушла, но эта осталась:
Use of uninitialized value within %table in substitution iterator at C:/osm2mp/lib/LangTransform/GmeTable.pm line 82.
Простите великодушно дурака старого… что ввел в заблуждение.
Обратил внимание, что у Kostik в строке запуска нет ключа --translit…
Попробовал у себя убрать этот ключ, оставил только --ttable - те буквы, что есть в .yml транслитеровались.
Так что работает транслитерация по таблице, нужно только из вики убрать что она дополнительная.
И вообще, если бы в вики была актуальная информация, описание ключей, примеры запуска - вопросов было бы гораздо меньше.