![]() |
:: Главная :: Решения :: Статьи :: Сайт М. Дроздова :: Файловый архив :: Книга по VFP 9 :: Русский Help Online :: OFF-LINE Форум | ![]() |
![]() |
Лисоводы всех стран, объединяйтесь !!! |
Re: Вопрос однообразия | |||
---|---|---|---|
Timo Сообщений: 210 Откуда: г Волгоград |
Привет, GM и все.
О. Бендер>>Стулья расползаются, как тараканы. GM>>Да не нужно ИМХО никаких ограничений по переводу. Смысл утилиты в том и заключается, чтобы заказчик решил GM>>окончательнй вариант. Единственное ограничение - это тэги без идентификатора. Если не получится присвоить GM>>идентификатор, то только в отошении такого тэга надо принимать соглашение. Заметил прикол. Вот такая ссылка src="..\..\..\rhproject\project\local\collapse.gif collapse.gif - картинка крестика. Врядли эта картинка найдется по такому пути. Компилятру же это по барабану Компилятор матюгнулся на 0025f1cf-37b2-4fd9-9674-a7e53010b5c5.htm - No menu item is defined (Error 1604) Посмотрите на него, кто понимает в юникодах. Владимир Максимов>>Да, конечно, такое "разнообразие" несколько раздражает. Но, с другой стороны, а кто вообще читает Владимир Максимов>>подобные служебные фразы? Стоит ли оно того? В общем так. Но. Продукт должен быть не только функциональным, но и красивым внешне. Мы же собираемся лэйбл клуба приклеить к хелпу. Кроме того есть опасность при редактировании текстов переключателей и ссылок (это в хелпе голубое) искажения самих ссылок. Один пример я привёл выше. При редатировании HTM сам замечал, что искажен пать к файлу ссылки. А вот это уже не мелочи. Предлагаю всё же договориться. 1) НЕ переводить ссылки. Их МОЖНО перевести одним махом в конце работы. 2) ПЕРЕД переводом обработать файлы, взятые на перевод нижеприведённым кодом. Он подменяет стандартные фразы русскими. * Программа Before. Срублено Timo * Перевод стандартных фраз' CLEAR SET SAFETY OFF SET ALTERNATE TO Repl.tx SET ALTERNATE ON SET TALK OFF SET CONSOLE OFF =ADIR(ahtm,'*.htm') tese=SECONDS() NumRepl=0 FOR j1=1 TO ALEN(ahtm,1) stf=FILETOSTR(ahtm[j1,1]) @ 3,3 SAY j1 @ 1,15 SAY SECONDS()-tese COLOR RGB(0,0,255) ConvStd('See Also','Смотрите также') ConvStd('Applies To:','Применяется к:') ConvStd('Visual FoxPro 9.0 Language Reference','Visual FoxPro 9.0 Справочное руководство по языку') ConvStd('Other Resources','Прочие ресурсы') ConvStd('Return Value','Возвращаемое значение') ConvStd('Remarks','Замечания') ConvStd('Note','Примечание') ConvStd('Tip','Совет') ConvStd('Reference','Ссылки') ConvStd('Parameters','Параметры') ConvStd('Example','Пример') ConvStd('Copy Code','Копировать код') ConvStd('Send','Шлите') ConvStd('comments','комментарии') ConvStd('about this topic to Microsoft. Вc Microsoft Corporation. All rights reserved.',; 'об этой статье в корпорацию Microsoft. c Microsoft Corporation. All rights reserved.') =STRTOFILE(stf,ahtm[j1,1]) ENDFOR SET ALTERNATE TO SET ALTERNATE OFF SET TALK ON SET CONSOLE ON MESSAGEBOX('Произведено замен '+ALLTRIM(STR(NumRepl))+CHR(13)+'Смотри Repl.tx') *-------------------------------------------------- PROCEDURE ConvStd * Замена стандартных фраз. * Осуществляется только если они находятся между >.....< * Т.е. не в тэгах. И толко в случае, если искомая строка не является подстрокой. PARAMETERS EnPh,RuPh offset=1 FOR j2=1 TO 10000 StartPh=ATC(EnPh,SUBSTR(stf,offset))+offset-1 IF StartPh<offset EXIT ENDIF StartSep=RAT('>',LEFT(stf,StartPh)) EndSep=AT('<',SUBSTR(stf,StartPh))+StartPh BetwSep=SUBSTR(stf,StartSep+1,EndSep-StartSep-2) BetwSep=STRTRAN(BetwSep,CHR(13)) BetwSep=STRTRAN(BetwSep,CHR(10)) BetwSep=ALLTRIM(STRTRAN(BetwSep,CHR(9))) IF BetwSep==EnPh.OR.LEFT(BetwSep,LEN(BetwSep)-1)==EnPh stf=STRTRAN(stf,EnPh,STRCONV(RuPh,9),1,1) ? EnPh+' '+RuPh NumRepl=NumRepl+1 ENDIF offset=StartPh+1 IF j2>1000 susp endif ENDFOR Отредактировано (02.11.05 14:20) ------------------ ![]() |
||
Re: Вопрос однообразия | |||
---|---|---|---|
Timo Сообщений: 210 Откуда: г Волгоград |
Пардон. Только отправил, как заметил ляп. Поправился.
![]() |
||
Re: Вопрос однообразия | |||
---|---|---|---|
Timo Сообщений: 210 Откуда: г Волгоград |
Предпоследняя версия.
![]() |
||
Re: Вопрос однообразия | |||
---|---|---|---|
GM Сообщений: 145 |
Пожалуй предобработка, которую ты предлагаешь невозможна, уже много переведено. Если мы откажемся от использования ID тэгов в силу их отсутствия, то остается ещё один вариант, с помощью которого, я перевёл всё, что уже перевёл. Так как количество тэгов, до перевода и после, не меняется, то каждому номеру mline сырца соответствует тот же номер mline перевода, после того как содержимое раздето от разметки. Одна mline представляет один абзац, один абзац - это и есть фрагмент для перевода, который находится между тэгами.
Пример результата работы парсера (mline-абзацы выделены дефисом): - Handling Errors During Report Runs - Visual FoxPro &*9.0 - Handling Errors During Report Runs - See Also - Visual FoxPro &*9.0 provides significant enhancements to the process of creating output, including new opportunities to invoke application code during the native Report System's internal data-handling and output-rendering procedures. To adequately provide users with the ability to develop such programs, Visual FoxPro &*9.0 also enhances error-reporting and debugging during a report run. - This topic covers error-handling features with special significance for reporting, and examines different strategies for handling abnormal conclusions of report runs. - Note: Теперь, как мне кажется, совершенно понятно, что кодируя номером абзаца оригинала русский вариант, можно в постобработке заменить то место, в котором стоит "See Also" любым вариантом. Например, русский вариант откатить опять в "See Also", то есть восстановить по маске оригинала. Единственное ограничение - это неизменное количество абзацев. То есть, если в переводе добавлен какой-нибудь тэг в содержимое абзаца, то он разобъет такой абзац на 2-3 абзаца. Наличие комментариев мешать не будет, так как они пойдут за футером и будут отсекаться. ![]() |
||
Re: Вопрос однообразия | |||
---|---|---|---|
Timo Сообщений: 210 Откуда: г Волгоград |
>>Так как количество тэгов, до перевода и после, не меняется, то каждому номеру mline сырца соответствует тот же номер mline перевода
Меняется. Смотри, например, 400d1a36-63d5-496d-a54d-a57c2632f4ae.htm. Отредактировано (02.11.05 17:12) ------------------ ![]() |
||
Re: Вопрос однообразия | |||
---|---|---|---|
Лариса Автор Сообщений: 398 Откуда: Calgary |
2GM
Pls Посмотрите личные сообщения ------------------ Listen and forget. Read and remember. Do and understand. ![]() |
||
Re: Вопрос однообразия | |||
---|---|---|---|
GM Сообщений: 145 |
Hello, Timo!
??>>> Так как количество тэгов, до перевода и после, не меняется, то ??>>> каждому номеру mline сырца соответствует тот же номер mline перевода T> Меняется. Смотри, например, 400d1a36-63d5-496d-a54d-a57c2632f4ae.htm. Посмотрел, но ничего не понял, видимо надо сравнивать с оригиналом. Ну значит какой-нибудь тэг, типа b или i - были удалены при ручном переводе. При моей системе такое невозможно принципиально, т.к. рухнула бы вся разметка. Можно будет протестировать процент несоответствия и если доля таких файлов невелика, поправить вручную. Однако, если как ты утверждаешь, в процессе перевода удаляется тэг, то тут имхо задница полная... согласен. Ещё может быть несоответствие, связанное с наличием широкого символа первой строкой файла. Я его удаляют, т.к. фокс не может его преобразовать и заменяет знаком вопроса. В общем эту дискуссию надо завершать: линки не переводим, титулы и индексы заменяем по желанию заказчика, всё остальное оставляем на совести переводчиков. With best regards, GM. ------------------ ![]() |
||
Re: Вопрос однообразия | |||
---|---|---|---|
Timo Сообщений: 210 Откуда: г Волгоград |
Добрый вечер, Лариса. Привет, GM.
О. Бендер>>Дисcкуссия продолжается? Лариса, мету перьями своей шляпы пол перед вашими ногами. Вру, конечно. Нет у меня ни перьв, ни шляпы. Но, всё равно, я очень рад, что почтили Вы нас Вашим вниманием. GM>>c помощью которого, я перевёл всё, что уже перевёл GM, похоже, ты скушал много собак по технологиям перевода. Поделись. Отредактировано (02.11.05 21:34) ------------------ ![]() |
||
Re: Вопрос однообразия | |||
---|---|---|---|
Лариса Автор Сообщений: 398 Откуда: Calgary |
Timo писал(а):
Цитата: Ну что Вы, что Вы! ![]() Я посты часто читаю и беру во внимание все ваши пожеления. [sm026] IMHO к полному единообразию мы все равно не придем, т.к. каждый человек уникален в своем роде. Даже читая исходный хелп, видно, что его писАли разные люди. А стадатные тэги можно бы вообще не переводить, т.к. они - привычные аттрибуты каждого топика. ![]() ![]() |
||
Re: Вопрос однообразия | |||
---|---|---|---|
JS Сообщений: 12127 Откуда: Эстония |
Тимо!
Все гораздо проще, если работать с файлами как DOM. Просто как пример Заготавливаем фразы. к примеру local lcCollapseAll, lcExpandAll lcCollapseAll ="Свернуть все" lcExpandAll = "Развернуть все" Теперь надо транслировать их в Unicode c помощью STRCONV() Надо разобраться с русскими локалями loInetApp = Createobject('InternetExplorer.Application') loInetApp.Navigate('имя файла справки') loDocument=loInetApp.Document loLabel=loDocument.getElementById("collapseAllLabel") loLabel.innerText=lcCollapseAll .... * разбираемся со всеми остальными в той же манере ... * получаем html текст справки lcFileHTMLText=loDocument.documentElement.outerHTML * перегоняем его в файл =STRTOFILE(lcFileHTMLText,"имя файла справки'") * берем следующий файл * и так далее ------------------ Knowledge is better than ignorance!
Website: juri.foxhelp.eu ![]() |
||
Re: Вопрос однообразия | |||
---|---|---|---|
Timo Сообщений: 210 Откуда: г Волгоград |
JS, спасибо за совет и внимание.
![]() |
||
Re: Вопрос однообразия | |||
---|---|---|---|
Лариса Автор Сообщений: 398 Откуда: Calgary |
Hi All,
Так что, может пока оставлять эти тэги непереведенными, а потом, когда примем окончательное решение, их программно переведем? ![]() |
||
© 2000-2021 Fox Club  |