Форум » Тех. процессы конвертации » ­Процесс basis8 DSL-HTML-TWM » Ответить

­Процесс basis8 DSL-HTML-TWM

Admin: у этой технологии есть целый ряд проблем связанных в том числе с нестандартностью кода DSL словарей. Процедура конвертации требует зачастую ручного контроля при "допечатной" обработке словарей (главным образом не системных). Общие положения в методике Положение первое - последовательность действий крайне важна. Действие первое. - Предобработка в Text Pipe. Конвертация файлов с помощью TextPipe в формат UTF-16 (как правило словари идут в формате UCS2 LE) именно это направление стоит указывать в первом поле. Это нужно что бы избежать некоторых ошибок которые встречаются при работе в TextPipe - файлы как бы становяться того же самого формата только более валидными. Предобработка в TextPipe кстати требует UTF-16/UCS-2LE. Ultra Edit работает при пакетной обработке с UCS-2 LE некорректно и к тому же жутко медленно (во много раз медленнее). Поэтому для дальнейшей работы нужно конвертировать из UCS-2 LE в UTF-8 (без BOM). В общем и целом первые шаги в Text Pipe где требуется UTF16 LE делаем в ней. Потом перед обработкой в UltraEdit конвертируем в UTF-8. По поводу второго этапа обраотки в TextPipe надо повторно конвертировать в UTF-16LE. Все операции насколько можно судить проходят без BOM. В Notepad++ файл в кодировке UTF-8 без BOM индицируется как "ANSI as UTF-8". Этого не следует бояться. Как и того что при попытках конвертации таких файлов отсутствие в них BOM сохраняется. По умолчанию именно в этой кодировке создаются файлы _about.htm Конвертируем символы мнемоник (имеют вид (без слеша): &\tilde;) и числовых кодов ASCII (имеют вид (без слеша): &\#732;). Причем ряд служебных HTML символов (<>") и символов запрещенных в файловой системе можно попробовать задать сразу в "безопасном формате" подобрав им аналоги. Эта процедура позволит вывести из под удара коды мнемоник которые не всегда корректно конвертируются в TheWord в символы Unicode. Мало того что символы латиницы после конвертации могут быть отображены кириллицей - так же большие неприятности доставляет присутствие символа ; в строке с амперсандом после конвертации с помощью Importer Tool. И еще повезет если он будет стоять не в начале новой строки вместе с внезапно возникшим переносом. Конвертируем символ амперсанда & (заменяем с помощью его безопасного аналога). При работе с символами важно проверить работоспособность программы Notepad++ (если вы ею пользуетесь) которая при копировании может подменять безопасные символы опасными (=обычными). Точно не знаю почему, но вероятно все тектовые редакторы которыми вы пользуетесь стоит настроить на использование кодировки UTF-16LE по умолчанию. Кажеться с ней меньше всего возникает проблем при использовании файла в двух других популрных редакторах - AkelPad и EmEditor. Замена амперсанда на безопасный (после всех манипуляций по конвертации мнемоник) сделает очевидным для пользователя что в словаре встречаются некие коды требующие расшифровки. Ну по крайней мере это лучше чем пустое место на месте какого нибудь важного медицинского значка. Далее. Удаляем мелкий мусор, и делаем отступы в началах DSL файлов (обратите внимание на служебные строки DSL файла идущие вначале файла с решеткой #) этот отступ нужен будет для того что бы они в перспективе не склеились при процедуре склеивания подзаголовков карточек. Это будет не смертельно но очень неприятно. Далее. Важно что бы при обработке в TextPipe не подвергались обработке короткие сочетания символов типа ]) или {[. Не знаю точно почему но при поиске например угловых скобок <> могут пострадать некоторые иероглифы. Полную картину сейчас я не могу составить, но проблем было достаточно много. И по этой причине всю работу со скобками и знаками я производил в программе UltraEdit. Хотя это намного дольше но зато и качество не страдало. К этому же этапу обработки следует относить и борьбу с «управляющими символами». Некоторые из них могут вызывать проблемы с делением статей. Обработку следует производить в UltraEdit. ­

Ответов - 7

Admin: *PRIVAT*

Admin: *PRIVAT*

Admin: *PRIVAT*


Admin: Действие пятое - замена опасных символов. В файловой системе есть символы которые не могут быть отображены. И это вызовет проблемы при переименовании. Что бы этой проблемы не возникло можно использовать аналогичные символы из конца таблицы символов шрифта Arial Unicode MS. Текст в угловых скобках <...> в HTML будет восприниматься не так как в DSL - для DSL это может быть текст а для HTML это уже тег - и отображаться в тексте такой текст уже не будет. Поэтому важно обезопасить себя на ранних стадиях - заменив слова в угловых скобках встречающиеся в словарях <...> на аналоги до массовой конвертации тегов DSL-HTML. Только после этой процедуры следует переходить к операциям требующим замены DSL тегов тегами HTML. Опасные символы: / \*: <>"? При этом следует иметь в виду что: ? применяется в гиперссылках и востановить его будет сложно (разве что через Importer Tool RegExp. / (слеш) в URL можно будет гарантированно восстановить только в начале, ну и с большой степенью вероятности на окончаниях .net\ .com\ .ru\ .gov\ .us\ а далее уже снова может помочь только Importer Tool RegExp. Остальные символы уже не принципиальны. Стоит обратить внимание на то что кавычка " (взятая в конце) шрифта Arial Unicode MS будет слишком широкой - надо попробовать найти не в конце таблицы символов.

Admin: Импорт с помощью ImporterTool. На данном этапе не должно возникнуть каких то неожиданных проблем. Он корректно обрабатывает созданные по этому процессу файлы находящиеся в кодировке UTF-8. И главное обеспечивает корректную поддержку импорта имен файлов с разного рода иероглифами (Windows использует UTF-16 для имен файлов - если у вас имена в Проводнике отображаются квадратиками то советую поставить Directory Opus и настроить в нем шрифт Universalia или Arial Unicode MS для полноценного отображения папок и файлов). Собственно для этого техпроцесса DirectoryOpus практически обязателен. Без включенной опции Advanced Sorting слова в модулях будут расположены в двух категориях - обе в алвавитном порядке, но заглавные буквы будут стоять отдельным блоком, выше по списку. Это может быть не очень удобно при поиске аналогов, но иногда может быть удобно. Например при поиске аббревиатур и собственных имен. За исключением словарей с очень большим числом статей всегда стоит включать эту опцию. Иначе говоря, - если конвертация не срывается то всегда включаем при старте. Перед импортом большого числа файлов желательно переименовать папки - по номерам поиск и синхронизация листера и ImporterTool идет быстрее. И меньше возникает путаницы. Желательно доходить до очередной круглой папки (10, 20, 30) и переносить созданные ранее модули в отдельную папку. Например можно создать папки с именами [по 10], [по 20], [по 30], [по 40] и т.д. Перед переносом нужно проверть размеры файлов - если размеры идентичны (особенно касается файлов созданных друг за другом - то есть вероятность того что новое имя получил старый модуль (т.е. вы забыли переключить селектор каталога в Importer Tool. Не желательно переключать туда-сюда настройки ImporterTool есть риск что они останутся после снятия поставленных ранее галочек.

Admin: Заполнение полей. Как не странно но процесс довольно долгий и нудный и требующий того что бы о нем сказать отдельно. Первое поле можно не править в том случае если имя файла полностью совпадает по сути с названием в других строках предназначенных для заполнения. Второе поле желательно заполнить не русским и не англоязычным названием. Если словарь русско французский то на французском. Третье поле нужно для программы которая создает инсталлятор модуля. Нас оно мало должно волновать но все же его нужно заполнять по древней чукотской традиции английском языке. Перед тем как закрыть модуль нужно закрыть окно свойств модуля и открыть его заново. Иначе название модуля не сохраниться в самом модуле после его закрытия. Но проявиться это в тот момент когда модуль будет перенесен из одной сборки TheWord в другую. Также для сохранения названия нужно перезагрузить программу с еще не закрытыми модулями. Это накладывает определенную последовательность действий на этапах постобработки. 1). Из-за необходимости архивации модули twm сжимаются в TheWord в самую последнюю очередь. 2). Архивация в RAR-SFX. Перед архивацией в RAR-SFX модули нужно закрыть. 3). Закрытие модулей и установка шрифта модуля по умолчанию. Перед закрытием модулей программу нужно перезапустить 4). Перед перезапуском нужно убедиться что имена модулей не содержат проблем - таких как ненужные сокращения например. 5). После переноса модулей из рабочей папки в папку бета-релиза нужно убедиться что в модулях по прежнему установлен нужный шрифт для дерева и для модуля (отдельная, нудная операция, - т.к. когда шрифт не прописывается то он задается из файла локализации. И если в рабочей папке будет стоять Arial Unicode MS 10 а в папке кандидата будет по умолчанию Segoe UI то это вызовет ненужные проблемы с символами Unicode и стилизацией). 6). В рабочей папке TheWord (до переноса) нужно установить нужные значения полей - включая шрифт и гарнитуру. P.S. По ходу пьесы все отработавшие свое строки из странички _about следует зачистить и сдвинуть. Отделив при этом пару верхних абзацев пробелами. Как примерно все это выглядит на практике можно увидеть на этом видео http://www.youtube.com/watch?v=9vNYvz1nUcU&feature=youtu.be

Admin: *PRIVAT*



полная версия страницы