Транскодировка

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 14
Joined: Wed Sep 13, 2006 7:56 am

Транскодировка

Post by Pred_2000 »

Возможно сделать плагин для транскодировки текста: руский текст переводить в латиницу и обратно?

Offline
Posts: 14
Joined: Wed Sep 13, 2006 7:56 am

Re: Транскодировка

Post by Pred_2000 »

Ну может кто-нибудь сделает, буду очень признателен!!!

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Re: Транскодировка

Post by DV »

Pred_2000 wrote:Ну может кто-нибудь сделает, буду очень признателен!!!
Ну, я бы мог сделать, но ничего не могу сказать о сроках. В данный момент у меня "в очереди" ("в стеке") уже несколько других вещей.
Кстати, IMHO, товарища Hader следует заблокировать навсегда. Шоб неповадно было.

Offline
Posts: 14
Joined: Wed Sep 13, 2006 7:56 am

Re: Транскодировка

Post by Pred_2000 »

[quote="DV"][Ну, я бы мог сделать, но ничего не могу сказать о сроках. [quote]
Большое спасибо, что откликнулись, буду ждать...

Offline
Posts: 14
Joined: Wed Sep 13, 2006 7:56 am

Re: Транскодировка

Post by Pred_2000 »

DV wrote:[Ну, я бы мог сделать, но ничего не могу сказать о сроках.
Можно узнать, когда ожидать плагин, или не стоит надеяться?

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Re: Транскодировка

Post by DV »

Pred_2000 wrote:Можно узнать, когда ожидать плагин, или не стоит надеяться?
Я и сам уже думал над этим вопросом... Последних пару месяцев катастрофически не хватает времени. В начале этой недели (или это было уже на прошлой?) почти доделал проверку типа файла в плагине AkelBrackets, а вот закончить некогда...
Идея транскодировки весьма интересная, в любом случае надо будет разработать независимый класс для этих целей, но ничего не могу сказать о сроках... А каким вы видите формат внешнего файла перекодировки? Что-то типа

Ф=F
З=Z
Ш=SH
...
ф=f
з=z
ш=sh
...

в обычном текстовом формате? Или лучше в Юникоде?
Или лучше использовать 16-ричные символы? Типа такого:

'Ф'=0x46 // 'F'
0xC7='Z' // то есть 'З'='Z'
0xD8=0x53 0x48 // то есть 'Ш'="SH"

??

Offline
Posts: 14
Joined: Wed Sep 13, 2006 7:56 am

Re: Транскодировка

Post by Pred_2000 »

DV wrote: А каким вы видите формат внешнего файла перекодировки? Что-то типа
Ф=F
З=Z
Ш=SH
...
ф=f
з=z
ш=sh
...
в обычном текстовом формате?
Наверно было бы лучше в обыкновенном текстовом формате, чтобы можно было поправить таблицу... У людей разные мнения о том какие буквы на какие должны заменяться!!!
DV wrote: Или лучше использовать 16-ричные символы? Типа такого:
'Ф'=0x46 // 'F'
0xC7='Z' // то есть 'З'='Z'
0xD8=0x53 0x48 // то есть 'Ш'="SH"
Можно и так, смотрите как проще, так и делайте! Главное чтобы места в оперативке поменьше занимал и работал!!!!
За ранее благодарен!

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Re: Транскодировка

Post by DV »

Pred_2000 wrote:Главное чтобы места в оперативке поменьше занимал и работал!!!!
Работа над базовой функциональностью начата. Списки пар перекодировок думаю хранить в списках строк типа
std::vector<std::string> left;
std::vector<std::string> right;
а непосредственно перед перекодировкой слева направо или справа налево загонять их в ассоциативный массив
std::map<std::string, std::string>
в котором первое значение - ключ - будет соответствовать исходной кодировке и второе значение, связанное с ключом, будет соответствовать желаемой кодировке. По идее, std::map должен обеспечить быстрый поиск по ключу.
Но! Сложность в том, что ключ может состоять из нескольких букв, например, 'y' = 'у', 'ya' = 'я' и 'yo' = 'ё'. И, встречая в тексте 'y', нужно эффективно определить, перекодируем ли мы сочетание 'ya', 'yo' или же это одиночный символ 'y'. Пока что я не знаю, как это лучше реализовать.

Offline
Posts: 14
Joined: Sat Mar 17, 2007 7:45 pm

Post by Torbins »

В одном чате видел:
При переводе строки из русской раскладки в английскую проводится сравнивание начала строки например со строкой "реезЖ..", если сошлось - заменяется на "http://". В противном случае сравнивается с "р", если сошлось меняется на "h". И так далее. Главный принцып сравнивать сначала самые длинные слова, а в конце короткие.

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

В виду внешних обстоятельств свободного времени у меня теперь еще меньше, чем было :-( Так что, если кто-то чувствует в себе силы заняться вопросом транскодировки, я могу поделиться своими соображениями по этому поводу и выслать исходники (несколько базовых классов), если надо. Сам же я не могу обещать, что что-то будет сделано в течение ближайших нескольких месяцев. Тем более что в отпуск я смогу выйти не раньше октября.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

С версии 2.6 архив Scripts плагина включает в себя:
KeybLayoutEngRus.js -конвертировать раскладку En->Ru.
KeybLayoutRusEng.js -конвертировать раскладку Ru->En.
KeybTranslitEngRus.js -транслитерация латиница->кириллица.
KeybTranslitRusEng.js -транслитерация кириллица->латиница.

Offline
Posts: 3
Joined: Sun Sep 07, 2008 7:34 am

Re: Транскодировка

Post by tt_ari »

DV wrote:А каким вы видите формат внешнего файла перекодировки? Что-то типа

Ф=F
З=Z
Ш=SH
...
ф=f
з=z
ш=sh
...
Хороший бесплатный набор 4TEA
http://soft.softodrom.ru/ap/p3521.shtml
но его можно использовать не только для текстового редактора TEA:)

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Архив Scripts плагина теперь включает в себя Keyboard.js (который объединил KeybLayoutEngRus.js, KeybLayoutRusEng.js, KeybTranslitRusEng.js, KeybTranslitEngRus.js).
Locked