1

Тема: AutoHotkey: проект перевода, ветка #2

продолжение, начало здесь: AutoHotkey: проект перевода

2

Re: AutoHotkey: проект перевода, ветка #2

NikVasKo
Да, с терминами в литературе действительно полный бардак. Принимать ли за истину в последнем стакане Кернигана и Ритчи в переводе Штаркмана - тоже вопрос спорный . Если справка AutoHotkey от этой "истины" отходит, то и нам, имхо, придётся отойти, т.к. мы всего лишь делаем перевод. На самом деле все мои рассуждения про операторы были просто "к слову", чтобы обосновать моё видение "multi-statement expression". Думаю, что лично мне интересна в данном случае не столько "истина", сколько мнения участников нашего русского AutoHotkey-community . Вобщем, ждём ещё мнений...

Кажется, можно безобидно приравнять Инструкция=Команда=Директива. Или нельзя?

Имхо, нельзя. В справке AutoHotkey слово "Инструкция" вроде вообще не применяется, а вот директивами называются особые команды, начинающиеся с шарпа (#). Т.е. все эти слова в AutoHotkey не совсем синонимы.

P.S. Думаю, прикреплять темы по AutoHotkey специально пока не надо - они и так неплохо держатся на плаву.

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

3 (изменено: NikVasKo, 2007-02-07 19:14:55)

Re: AutoHotkey: проект перевода, ветка #2

Я дублирую последнее сообщение с предыдущей ветки.

Разноголосица в обсуждаемых терминах полная и англо- и в русскоязычной литературе.

Вчера перелистал три книжки по Си. Во всех несколько туманно, но:
Операция=это + =>, и т.д
Оператор=If-else и т.д

Сегодня (рассерженно!) открыл классику: Керниган и Ритчи, Язык Си, в переводе Штаркмана, СПб.,2001.
Там со ссылкой на стандарт, утвержденный ANSI, "Аmerican National Standard for Information Systems - Programming Language C. X3.159-1989", можно найти следующее (привожу с  сокращениями, в силу избыточности оригинала).
===========================
Лексемы(или токены)=Идентификаторы|Ключевые слова|Константы|Строковые литералы|Операторы|Разделители
Константы=Целые|С плавающей точкой|Символьные|Перечисления
Символьные константы=Новая строка(NL)|Возврат каретки(CR)|Возврат нашаг(BS)|Обратная наклонная черта(\)|...
Объект=Именованная область памяти=Lvalue
Выражение=комбинация переменных, констант, операторов, возвращающая значение
Первичное выражение=Идентификатор|Константа|Строка|Выражение в скобках
Оператор=Арифметический|Отношения|Логический|Инкремента|Декремента|Побитовые|Присваивания|Запятая
Оператор=Унарный|Бинарный|Тернарный
Оператор унарный=Постфиксный|Префиксный
Инструкция=Инструкция помеченная|Инструкция-выражение|Инструкция составная=блок|Инструкция выбора|Инструкция циклическая|Инструкция перехода
====================
Предлагается это принять за истину (по возможности, без обсуждений, поскольку это классика).
Теперь мои домыслы:
Кажется, можно безобидно приравнять Инструкция=Команда=Директива. Или нельзя?
Считать, что оператор производит операцию над первичным выражением (=операнду), унарный над одним, бинарный над двумя...
Итогом операции является опять выражение.
Если значение выражения не используется, то это выражение-инструкция.
Знак операции и оператор - синонимы ли? Скобочные операторы и  ?: вроде бы состоят из двух знаков?

Идея - принять после обсуждения настоящее за основу сайтового словаря, который потихоньку дополнять всякими "консенсусами", и ПРИДЕРЖИВАТЬСЯ его в переводах.

Налетайте !

ЗЫ. Для Кардинала: Ничего сомнительного в том, что Оператор лежит внутри Оператора, я бы не увидел. Ведь может быть одно выражение внутри другого...

4

Re: AutoHotkey: проект перевода, ветка #2

NikVasKo
Please, запости сюда правильный вариант вот этого фрагмента (статья Регулярные выражения (RegEx) - краткий справочник):

Запросы вперед и назад: выражения (?=...), (?!...), (?<=...), и (?<!...), в которых на месте многоточия размещается любой шаблон, назовем запросами (assertion). Они только запрашивают выполнение некоторого условия, но сами не отвечают каким-либо символам. Например, abc(?=.*xyz) является запросом вперед, проверяющим, существует ли где-либо строка xyz, лежащая правее строки abc (если не существует, то весь шаблон считается не соответствующим). Конструкцию (?=...) называют позитивным запросом вперед, поскольку он требует, чтобы указанный шаблон НЕ находил соответствие впереди. Наоборот, (?!...) есть негативный запрос вперед, поскольку он требует, чтобы указанный шаблон находил соответствие впереди. Подобным же образом, (?<=...) и (?<!...) представляют соответственно позитивный и негативный запросы назад, поскольку они требуют, чтобы указанный шаблон проверял соответствие слева от текущей позиции. Запросы назад более ограничены в возможностях, чем запросы вперед, поскольку не поддерживают кванторы переменного размера *, ?, и +.

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

5

Re: AutoHotkey: проект перевода, ветка #2

NikVasKo
Ещё вопрос. В статье Переменные и выражения ты хотел добавить такой комментарий:

Автоматическое повышение старшинства операции привоения может приводить к странным фокусам. Так AutoHotKey обрабатывает следующие выражения:
x++     := 2 ; x=3
x++++   := 2 ; x=5
x++++++ := 2 ; x=6
++x     := 2 ; x=3
++++x   := 2 ; x=4
++x++   := 2 ; x=3
++x--   := 2 ; x=1
--x++   := 2 ; x=3
++x--   := 2 ; x=1
++++x-- := 2 ; x=1
++++x   := 2 ; x=4
+++x    := 2 ; x=3
--x     := 2 ; x=1
x--     := 2 ; x=1
x--+    := 2 ; x=0

У меня из этого работает далеко не всё. Во многих случаях вместо указанного тобой в комментарии числа получается пустое значение. Последняя строка вообще непонятна - какой смысл может иметь одинокий плюсик перед оператором (или операцией) присваивания? v1.0.46.07.

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

6

Re: AutoHotkey: проект перевода, ветка #2

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

++x      := 2 ;x=3 здесь префикс работает
x++      := 2 ;x=3 здесь постфикс работает
++--x    := 2 ;x=2 здесь префиксы работают
x++++    := 2 ;  Этот оператор вовсе не меняет X
x++--    := 2 ;  Этот оператор вовсе не меняет X
x++-     := 2 ;  Этот оператор не меняет X, будучи бессмысленным
++x++    := 2 ;x=3 | Префиксная инкрементация игнорируется
--x++    := 2 ;x=3 |
++x--    := 2 ;x=1 |
++++x    := 2 ;х=4  Это работает
++++++x  := 2 ;x=5  Это работает
++++x++  := 2 ;x=3  А это уже бред
++x++++  := 2 ;x=4

7

Re: AutoHotkey: проект перевода, ветка #2

О регулярных выражениях. Пассаж надо понимать так:
======
Проверки впереди и позади: скобочные блоки (?=...), (?!...), (?<=...), и (?<!...), в которых на месте многоточия размещается любой шаблон, назовем проверками (assertion). Они только проверяют выполнение некоторого условия, но сами не отвечают каким-либо символам. Например, abc(?=.*xyz) является проверкой существования ли где-либо впереди (правее) строки abc строки xyz (если не существует, то весь текущий блок считается не отвечающим). Блок (?=...) будем называть "проверкой наличия впереди", поскольку он требует, чтобы указанный шаблон находил соответствие впереди. Наоборот, блок (?!...) есть "проверка отсутствия впереди", поскольку он требует, чтобы указанный шаблон НЕ находил соответствия впереди. Подобным же образом, (?<=...) и (?<!...) представляют соответственно "проверки наличия\отсутствия позади", поскольку они требуют, чтобы указанный шаблон проверял соответствие слева от текущей позиции. "Проверки сзади" более ограничены в возможностях, чем "проверки впереди", поскольку не поддерживают кванторы переменного размера *, ?, и +.

8

Re: AutoHotkey: проект перевода, ветка #2

NikVasKo
По поводу "автоматического изменения приоритета операций". Имхо, часть приведенных тобой фрагментов не работает не столько из-за путаницы с приоритетами операций, сколько из-за того, что AutoHotkey не всегда в состоянии правильно отработать множественные инкременты-декременты. Например, вот такое приводит к пустому x:

x++++ := 2

А вот такое приводит к x, равному 3, что тоже вроде бы неожиданно (хотелось 4):

x := 2
x++++

Исходя из этого, имхо, лучше вообще не заморачиваться с этим комментарием в статье.

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

9

Re: AutoHotkey: проект перевода, ветка #2

Я исправил путаницу с негативными и позитивными запросами в статье Регулярные выражения (RegEx) - краткий справочник ("Запросы вперед и назад" в конце). В статье Переменные и выражения заменил "многооператорные выражения" на "составные выражения".

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

10

Re: AutoHotkey: проект перевода, ветка #2

Берусь за оставшиеся статьи из Window Management:

WinMinimize
WinMinimizeAll / WinMinimizeAllUndo
WinMove
WinRestore
WinSet
WinSetTitle
WinShow
WinWait
WinWaitActive / WinWaitNotActive
WinWaitClose

11

Re: AutoHotkey: проект перевода, ветка #2

Вечером собираюсь опубликовать оставшиеся 10 статей из раздела Window Management. Теперь мы имеем этот раздел перевёденным полностью, что очень хорошо, т.к. работа с окошками - один из "коньков" AutoHotkey.
YMP'у объявляется благодарность с занесением в личное дело, также он назначается заслуженным переводчиком script-coding.com и народным переводчиком AutoHotkey . На счету YMP'а 62 (шестьдесят две) статьи.

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

12

Re: AutoHotkey: проект перевода, ветка #2

Спасибо за высокую оценку моих скромных трудов.
После таких приятных слов я сразу ощутил, что ещё не все силы отдал на благо AutoHotkey. Но есть одно обстоятельство, которое мешает мне со спокойной душой лечь на алтарь. Как я понял, на нас надвигается AutoHotkey v2. Говорят, там будет реформа синтаксиса, что сделает его несовместимым со старыми скриптами. В общем, точно я не знаю, конечно, что там будет по-другому и насколько, и когда именно это знаменательное событие на нас окончательно надвинется. Может, и не скоро. Но всё-таки. Чем больше я сейчас переведу, тем больше потом исправлять. Что-то мне не нравится такая перспектива, так что я, пожалуй, возьму пока тайм-аут до прояснения обстановки.

13

Re: AutoHotkey: проект перевода, ветка #2

YMP пишет:

на нас надвигается AutoHotkey v2

Это ещё, как говорят, писями по воде вилено. В бесплатных проектах "надвигание" новых версий может растянуться очень и очень надолго.

YMP пишет:

Чем больше я сейчас переведу, тем больше потом исправлять.

А вот это вообще в корне не верно . Что значит "исправлять"? Если v2 полностью поменяет язык, то просто придётся переводить ещё одну документацию (что никак не будет умалять достоинства уже переведенной документации по v1). По-любому уже переведенная документация по v1 всегда будет большим подспорьем для пользователей, т.к. какая-то преемственность версий будет обязательно. Так что непреходящая ценность того, чем мы сейчас занимаемся, никакому сомнению не подлежит.

Впрочем, тайм-ауты у нас не запрещены . Главное, чтобы работа была в удовольствие .

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

14

Re: AutoHotkey: проект перевода, ветка #2

The gray Cardinal
Посмотрел сейчас новую русскую chm-справку по AutoHotkey и вот что подумал. Там есть описания команд, которые отображаются в виде папок, т.к. в них имеются вложенные статьи. Запросто человек может проскочить мимо этих описаний. Не каждый ведь сообразит, что папка в этих случаях не просто контейнер, а тоже статья. Мне кажется, вложенные статьи вполне можно бы положить на тот же уровень, что и основные, - что в этом плохого? Да, в оригинале не так, но ведь криминала тут нет. Как ты думаешь?
Или сделать так, чтобы основная статья тоже в этой папке лежала вместе с дополнительными?

Что касается продолжения перевода, то я, пожалуй, с тобой соглашусь. Второй версии можно прождать неизвестно сколько.
Так что на очереди раздел Process Management:
Exit
ExitApp
OnExit
Process
Run / RunWait
RunAs
Shutdown
Sleep

15

Re: AutoHotkey: проект перевода, ветка #2

YMP
Думаю, проскочить мимо статей-папок в CHM довольно трудно, т.к. даже при одинарном щелчке по такой папке статья сразу же отображается. Да и вобщем-то повесить статью на папку в содержании - для CHM норма, по-моему. Вообще, я просто повторил структуру статей, как она выглядит на страничке проекта перевода, имхо, так вполне удобно.

Насчет Process Management - отлично. Качни на всякий случай последнюю версию - вдруг чего поменялось.

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

16

Re: AutoHotkey: проект перевода, ветка #2

Проскочить можно, если щёлкать по плюсу, а не по папке. Я так и делаю в таких справках. На самих папках часто только ссылки на вложенные в них страницы, а зачем мне эти ссылки, если есть дерево? Вот я по папкам и не щёлкаю.

17

Re: AutoHotkey: проект перевода, ветка #2

Хочу, чтобы ещё кто-нибудь высказался по этому вопросу (папки в CHM).

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

18

Re: AutoHotkey: проект перевода, ветка #2

Меня текущий вид не напрягает. Но не напряжет и если, например, статьи висящие на папке, будут вложены в эту папку в виде таки статьи. А папка пусть будет просто контейнером. Может так даже и правильнее. Во всяком случае, так ИМХО было бы логичнее.

Крокодил, крокожу и буду крокодить! (Твёрдое обещание нетрезвого кодера).

19

Re: AutoHotkey: проект перевода, ветка #2

Если затронуть логику, то вот, например, статейка о последнем найденном окне. Там говорится о вещах, которые касаются всех оконных команд. Только логично будет, если положить её на один уровень с ними. Что касается Post/SendMessage и двух вложенных, то они образуют группу и их логично сунуть в одну папку.

Если бы "родительские" страницы показывались в дереве в виде страниц, то и проблемы бы никакой не было. Именно отображение в виде папки имеет некоторую вероятность сбить с толку.

20

Re: AutoHotkey: проект перевода, ветка #2

Ну так и я об этом же.

Крокодил, крокожу и буду крокодить! (Твёрдое обещание нетрезвого кодера).

21

Re: AutoHotkey: проект перевода, ветка #2

Понял. Посмотрю, что можно сделать.

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

22

Re: AutoHotkey: проект перевода, ветка #2

Заменил файл. Распрямил иерархию, просто положил дочерние статьи под родителей. Отображать узлы дерева в виде статей, а не папок, насколько я понял, нельзя.

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

23

Re: AutoHotkey: проект перевода, ветка #2

Предлагаю коллективно перевести комментарии к Примеру №4 в статье Process, т.к. там попадается специфическая терминология.

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

24

Re: AutoHotkey: проект перевода, ветка #2

Вариант от Gourmet:

d = `n ; разделитель строк
s := 4096 ; размер буферов и массивов (4 KB)

Process, Exist ; Устанавливает значение перем. ErrorLevel равным идентификатору процесса текущего скрипта
; Получает дескриптор (handle) этого скрипта через PROCESS_QUERY_INFORMATION (0x0400)
h := DllCall("OpenProcess", "UInt", 0x0400, "Int", false, "UInt", ErrorLevel)
; Открывает регулируемый маркер доступа (adjustable access token) этого процесса
; (TOKEN_ADJUST_PRIVILEGES = 32)
DllCall("Advapi32.dll\OpenProcessToken", "UInt", h, "UInt", 32, "UIntP", t)
VarSetCapacity(ti, 16, 0) ; структура полномочий
InsertInteger(1, ti, 0, 4) ; один элемент в массиве полномочий...
; Извлекает локальный уникальный идентификатор полномочий на отладку:
DllCall("Advapi32.dll\LookupPrivilegeValueA", "UInt", 0, "Str", "SeDebugPrivilege", "UIntP", luid)
InsertInteger(luid, ti, 4, 8)
InsertInteger(2, ti, 12, 4) ; включает это полномочие: SE_PRIVILEGE_ENABLED = 2
; Обновляет полномочия этого процесса новым маркером доступа:
DllCall("Advapi32.dll\AdjustTokenPrivileges"
, "UInt", t, "Int", false, "UInt", &ti, "UInt", 0, "UInt", 0, "UInt", 0)
DllCall("CloseHandle", "UInt", h) ; закрывает данный дескриптор процесса для экономии памяти

; увеличиваем производительность, предварительно загружая библиотеку:
hModule := DllCall("LoadLibrary", "Str", "Psapi.dll")
s := VarSetCapacity(a, s) ; массив, который получает список идентификаторов процессов
DllCall("Psapi.dll\EnumProcesses", "UInt", &a, "UInt", s, "UIntP", r)
Loop, % r // 4 ; производим разбор массива для таких идентификаторов, как DWORDs (32 bits):
{
   id := ExtractInteger(a, A_Index * 4)
   ; Открываем процесс с помощью: PROCESS_VM_READ (0x0010) | PROCESS_QUERY_INFORMATION (0x0400)
   h := DllCall("OpenProcess", "UInt", 0x0010 | 0x0400, "Int", false, "UInt", id)
   VarSetCapacity(m, s) ; массив, который получает список дескрипторов модулей:
   DllCall("Psapi.dll\EnumProcessModules", "UInt", h, "UInt", &m, "UInt", s, "UIntP", r)
   VarSetCapacity(n, s, 0) ; буфер, который получает базовое имя модуля:
   e := DllCall("Psapi.dll\GetModuleBaseNameA", "UInt", h, "UInt", m, "Str", n, "Chr", s)
   DllCall("CloseHandle", "UInt", h) ; закрываем дескриптор процесса для экономии памяти
   If n ; если образ не null, добавляем в список:
      l = %l%%n%%d%
}
DllCall("FreeLibrary", "UInt", hModule) ; выгружаем библиотеку, чтобы освободить память
; стираем первый и последний пункт списка (возможно, сигнатуры ASCII)
StringMid, l, l, InStr(l, d) + 1, InStr(l, d, false, 0) - 2 - InStr(l, d)
StringReplace, l, l, %d%, %d%, UseErrorLevel ; извлекаем число процессов
;Sort, l, C ; уберите комментарий с этой строки, чтобы отсортировать список в алфавитном порядке
MsgBox, 0, %ErrorLevel% процессов, %l%

ExtractInteger(ByRef pSource, pOffset = 0, pIsSigned = false, pSize = 4) ; см. описание DllCall
{
    Loop %pSize% ; собираем целое число, складывая его байты.
        result += *(&pSource + pOffset + A_Index-1) << 8*(A_Index-1)
    if (!pIsSigned OR pSize > 4 OR result < 0x80000000)
        return result ; в этих случаях не имеет значения, со знаком число или без
    return -(0xFFFFFFFF - result + 1)
}

InsertInteger(pInteger, ByRef pDest, pOffset = 0, pSize = 4)
{
    Loop %pSize% ; копируем каждый байт целого числа в структуру как сырые двоичные данные
        DllCall("RtlFillMemory", "UInt", &pDest + pOffset + A_Index-1
        , "UInt", 1, "UChar", pInteger >> 8*(A_Index-1) & 0xFF)
}
Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

25

Re: AutoHotkey: проект перевода, ветка #2

По смыслу-то наверняка правильно. Но вот насколько это согласуется с принятой "в литературе" терминологией - вот что меня удержало от перевода. Тут бы как раз The gray Cardinal'у сказать веское слово, раз уж он всё время выступает в её (литературы) защиту от всяких там "контролов" и прочей отсебятины.

26

Re: AutoHotkey: проект перевода, ветка #2

YMP
А конкретно, какие термины вызывают сомнение?
Дело в том, что Gourmet переводит "академически", сверяясь с различными источниками, поэтому её переводы как правило, максимально "литературны". Однако, в данном случае речь идёт о достаточно сложных вещах, в которых ни я, ни Gourmet просто хорошо не разбираемся, если честно. Например, что за фрукт "регулируемый маркер доступа (adjustable access token)", я понимаю крайне смутно, к сожалению...

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

27

Re: AutoHotkey: проект перевода, ветка #2

The gray Cardinal
Да никакие конкретно не вызывают. В том-то и дело, что в этих "фруктах" я вообще ноль. Потому и спросил. Если ты имеешь в виду, что этот самый регулируемый маркёр так и должен называться, то всё ОК. А что это такое, может, когда-нибудь узнаем.
В общем, у меня никаких претензий к переводу Gourmet нет.

28

Re: AutoHotkey: проект перевода, ветка #2

Опубликую перевод комментариев Gourmet. Если у кого будут светлые мысли по поводу "adjustable access token" и прочего - высказывайтесь, что-то поправить или добавить можно всегда.

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

29

Re: AutoHotkey: проект перевода, ветка #2

Большое спасибо Gourmet за помощь.

Двигаюсь дальше, в раздел Registry Management:
Loop (registry)
RegDelete
RegRead
RegWrite

30

Re: AutoHotkey: проект перевода, ветка #2

Не уверен в своём переводе вот этого места из "Loop (registry)". Такое ощущение, что я слегка запутался в этой "удалённой" теме. И есть ли русский эквивалент для названия упомянутой там в конце цитаты политики?

Access to a remote registry may fail if the target computer is not in the same domain as yours or the local or remote username lacks sufficient permissions (however, see below for possible workarounds).
  Доступ к удалённому реестру может не удаться, если целевой компьютер не в том же домене, что и ваш, или если локальная или удалённая учётная запись не обладает достаточными разрешениями (впрочем, смотрите ниже возможные обходные пути).

Depending on your username's domain, workgroup, and/or permissions, you may have to connect to a shared device, such as by mapping a drive, prior to attempting remote registry access. Making such a connection -- using a remote username and password that has permission to access or edit the registry -- may as a side-effect enable remote registry access.
  В зависимости от домена, рабочей группы и/или разрешений вашей учётной записи вам может потребоваться подключение к сетевому устройству, такому как сетевой диск, перед тем как пытаться получить доступ к удалённому реестру. Осуществление такого подключения - с использованием имени и пароля удалённого пользователя, имеющего разрешение на доступ к реестру или его редактирование - может, как побочный эффект, задействовать доступ к удалённому реестру.

If you're already connected to the target computer as a different user (for example, a mapped drive via user Guest), you may have to terminate that connection to allow the remote registry feature to reconnect and re-authenticate you as your own currently logged-on username.
  Если вы уже подключены к целевому компьютеру под другим именем (например, к сетевому диску как пользователь Гость), вам, возможно, придётся прервать это соединение, чтобы позволить службе удалённого реестра переподключить и перерегистрировать вас с вашим собственным именем пользователя.

For Windows Server 2003 and Windows XP Professional, MSDN states: "If the computer is joined to a workgroup and the "Force network logons using local accounts to authenticate as Guest" policy is enabled, the function fails. Note that this policy is enabled by default if the computer is joined to a workgroup."
  Для Windows Server 2003 и Windows XP Professional MSDN сообщает: "Если компьютер входит в рабочую группу и задействована политика "Force network logons using local accounts to authenticate as Guest", эта функция не действует. Имейте в виду, что эта политика включена по умолчанию, если компьютер входит в рабочую группу."

31

Re: AutoHotkey: проект перевода, ветка #2

YMP
Имхо, нормально всё.
Насчет названия политики - я бы перевёл как смог, но оставил бы в переводе текст оригинала в скобках на всякий случай.

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

32

Re: AutoHotkey: проект перевода, ветка #2

Идём дальше, в длинный раздел с длинным названием "File, Directory and Disk Management".

Drive
DriveGet
DriveSpaceFree
FileAppend
FileCopy
FileCopyDir
FileCreateDir
FileCreateShortcut
FileDelete
FileGetAttrib

33

Re: AutoHotkey: проект перевода, ветка #2

YMP
Отлично!
Слушай, а какая информация тебе попадалось насчет 2-ой версии AutoHotkey? Там случайно поддержка COM не планируется?

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

34

Re: AutoHotkey: проект перевода, ветка #2

Не могу сейчас вспомнить ничего конкретного. В общем-то, вся информация - из случайных высказываний там и сям. Если и есть у них на форуме темы, где 2-я версия более подробно обсуждается, то пока они мне не попадались. Надо будет, наверно, просто поиск там запустить по ключевым словам, авось что-нибудь всплывёт.

35

Re: AutoHotkey: проект перевода, ветка #2

Вот: Gathering ideas for AutoHotkey v.2. Конечно, очень хотелось бы поддержки OLE/COM. С такой поддержкой можно было бы смело похоронить WSH . Но Крис вроде нигде такие предложения в той ветке не одобрял, а жаль...
А в планах на вторую версию можно найти только небольшое улучшение синтаксиса: Planned Features. Может быть, вторая версия будет просто "новым релизом" первой версии, т.е. изменения будут незначительны.

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

36

Re: AutoHotkey: проект перевода, ветка #2

Да, я тоже набрёл на эту ветку. Похоже, ты был прав насчёт того, что 2-я версия будет весьма нескоро. Как я понял, ещё всё на стадии планирования.

Вот цитата на тему СОМ из другого места - Allowing Function Pointer in DllCall

Posted: Tue Jan 30, 2007 2:12 pm

Chris пишет:

I would like to see COM support and callbacks implemented, but I don't fully understand them. Like many things, maybe they just seem daunting, becoming easier after you learn them.

The project could really use another developer who has an interest in these areas.

Вроде непохоже, чтобы СОМ был на повестке дня. В теме, откуда я это взял, показаны пути использования СОМ через DllCall, но они вот именно что малость "daunting".

37

Re: AutoHotkey: проект перевода, ветка #2

Едем дальше.

FileGetShortcut
FileGetSize
FileGetTime
FileGetVersion
FileInstall
FileMove
FileMoveDir
FileRead
FileRecycle
FileRecycleEmpty

38

Re: AutoHotkey: проект перевода, ветка #2

Оставшиеся в этом разделе.

FileRemoveDir
FileSelectFolder
FileSetAttrib
FileSetTime
IfExist / IfNotExist
IniDelete
IniRead
IniWrite
Loop (files & folders)
Loop (read file contents)
SetWorkingDir
SplitPath

FileSelectFile уже переведена и лежит в разделе Gui. Может, логично будет её перенести до общей кучи?

39

Re: AutoHotkey: проект перевода, ветка #2

YMP пишет:

FileSelectFile уже переведена и лежит в разделе Gui. Может, логично будет её перенести до общей кучи?

Да пусть лежит там, имхо, это всё же ближе к GUI. Кстати, FileSelectFolder - тоже самое.

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

40

Re: AutoHotkey: проект перевода, ветка #2

YMP

Retrieves the datetime stamp of a file or folder.

Имхо, следует переводить так:

Возвращает отметку даты и времени файла или папки.

По-моему, это лучше, чем:

Возвращает штамп даты и времени файла или папки.

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

41

Re: AutoHotkey: проект перевода, ветка #2

Может, тебе отметка и больше нравится, но штампы эти не я придумал. "Штамп времени файла", "временной штамп" - всё это используется. Проведи поиск в Гугле, например, и сам увидишь.

Я понимаю, что всё это мелочь и не принципиально и, как говорится, дело важнее, но всё-таки: правки в тексте лучше согласовывать до публикации. Всё-же это не википедия.

Либо тогда уж написать предупреждение для возможных переводчиков: учтите, мол, что текст вашего перевода может быть изменён без вашего согласия и т.п. Так честнее будет.

42

Re: AutoHotkey: проект перевода, ветка #2

YMP
А какая разница - до или после публикации? Всё обсуждаемо, а исправить обратно - в принципе минута.
Теперь по делу: я расцениваю эти "штампы времени" как что-то вроде общеупотребительных словечек "дефолтный" и т.п., поэтому частота попадания в гугле - не очень сильный аргумент. Имхо, это опять, как обычно, неоправданная калька с английского. Кстати, мы - не первые, кто пытается переводить словосочетание "datetime stamp":
http://multitran.ru/c/m.exe?a=phr&s … 1&l2=2
Имхо, этот "штамп" - это "ложный друг переводчика", т.е. слово, созвучное с русским, но имеющее другое значение. У меня лично "штамп" ассоциируется с печатью, которую прикладывают к бумаге, предварительно дыхнув на неё перегаром . "Штамп даты и времени" явно режет ухо.

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

43

Re: AutoHotkey: проект перевода, ветка #2

Какое уж такое другое значение у слова stamp? Первые же значения в словаре: 1) штамп, штемпель, печать; клеймо 2) оттиск, отпечаток 3) пломба или ярлык. Словарь Мюллера.

А теперь по делу. Даже если это ложный друг, то это мой друг, а не твой. На переводе же моё имя стоит, значит, это я и отвечаю за все эти штампы и кальки. Причём я согласен отвечать только за свои.
Разумеется, ты в свою очередь отвечаешь за качество того, что публикуешь, это понятно. И если тебя материал не устраивает, не публикуй его. Или поставь условием публикации изменение того-то и того-то. Здесь ты в полном своём праве и ни малейших претензий к тебе быть не может.

Если я начну что-то самовольно исправлять у тебя на сайте (кроме своих же собственных постов), тебе это понравится? Действуй я даже из самых разблагих побуждений? Думаю, что нет. Вот и мне не нравится, когда в моём тексте что-то меняют без моего согласия. Мой текст - это моя территория. Чужой земли мы не хотим ни пяди, но и своей вершка не отдадим.

44

Re: AutoHotkey: проект перевода, ветка #2

YMP
Ты чего такой агрессивный? А если я там запятую исправлю, или опечатку какую, ты меня тоже с потрохами съешь? Такие исправления - в порядке вещей, к примеру, редактор в издательстве ведь исправляет тексты...
Тебе самому-то неужели этот "штемпель даты и времени" ухо не режет?

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

45

Re: AutoHotkey: проект перевода, ветка #2

The gray Cardinal

Почему это я агрессивный? По крайней мере не было такого намерения.

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

46

Re: AutoHotkey: проект перевода, ветка #2

Лично я "datetime stamp" или "timestamp" обычно перевожу как дата и время (без слов "метка", "штамп" и пр.). Так нравится больше МНЕ. Но если YMP'у нравится иначе, то, полагаю, что в данном случае хозяин-барин - он. И его права на содержимое его же переводов представляются мне более весомыми. Даже если речь идёт о запятых (а вдруг их расположение, наличие или отсутствие - несёт авторскую смысловую нагрузку).
С другой стороны, понятно и желание The gray Cardinal'а сделать как лучше.
Может, для реализации идеи согласования правок до публикации стоит ввести незатейливую процедуру по обмену парой писем:
- Исправил то и то. Не против?
- Нет.
Это немного замедлит публикацию переводов, зато эксцессов будет меньше.

С праздником всех!

Крокодил, крокожу и буду крокодить! (Твёрдое обещание нетрезвого кодера).

47

Re: AutoHotkey: проект перевода, ветка #2

Я не ставлю вопрос как "изменять текст без согласия автора", т.к. повторюсь - всё обсуждаемо, а что-то изменить - минутное дело. Поэтому я считаю, что ничего страшного нет в том, если я что-то исправил, а потом вынес это на форум (исправлять втихомолку я ничего не собираюсь). И ещё я считаю, что это лучше предварительного обсуждения по e-mail, т.к. на форуме к обсуждению могут подключиться другие участники: к примеру, сейчас мы уже имеем аж три варианта перевода:

Возвращает отметку даты и времени файла или папки.
Возвращает штамп даты и времени файла или папки.
Возвращает дату и время файла или папки.

Я думаю, что проблема "изменения текста без согласия автора" является в нашем случае крайне надуманной проблемой, и мне бы очень не хотелось потерять одного из лучших переводчиков (YMP) только из-за этого .
YMP, я хочу услышать критику тех вариантов, которые по-твоему не подходят .
P.S. Вернуть "штамп" на место я готов всегда.

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

48

Re: AutoHotkey: проект перевода, ветка #2

The gray Cardinal
Во-первых, "теряюсь" я, в основном, не поэтому. От перевода элементарно мозги устали. Сколько обещал - переведу. Если я и переводил бы дальше, то по статейке под особое настроение, не более того.

Что касается надуманности проблемы, то я поэтому и предлагаю не углубляться в дебаты ввиду полной их бессмысленности. Для меня эта проблема реальна, т.к. я её вижу и чувствую. Ты никакой проблемы не видишь. О чём здесь спорить? Невозможно спорить с ощущениями человека. На слово ты мне не веришь, хочешь, чтобы я тебе проблему показал. Я тебе показываю, но ты ничего не видишь и делаешь вывод, что мне мерещится. Тупик.
То же самое насчёт "не режет ли ухо". Ну зачем бы я это использовал, если бы резало? Но тебе-то режет. Опять разница в ощущениях.

Я понимаю, что другим что-то может быть виднее или слышнее, и если кого-то коробит "штамп времени", то почему бы и не заменить, если есть на что. Но почему сначала менять, а потом обсуждать? Свой текст - нормально, но не чужой же. Хочешь верь, хочешь нет, но в этом для меня и заключается пресловутая проблема: до или после, с согласия или без.

Конкретно против "отметок" я ничего не имею, пусть остаются, дело не в них.

Androgen
Спасибо за поддержку.

49

Re: AutoHotkey: проект перевода, ветка #2

YMP пишет:

Конкретно против "отметок" я ничего не имею, пусть остаются, дело не в них.

О как . Значит, в превентивных иправлениях усмотрели покушение на "территорию" автора. Ладно, постараюсь впредь быть менее бестактным . Договорились: вначале публикуем, затем дерёмся, затем если надо исправляем. Именно в таком порядке .

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

50

Re: AutoHotkey: проект перевода, ветка #2

Да, я именно об этом. Договорились.

51

Re: AutoHotkey: проект перевода, ветка #2

Статья FileSetAttrib, есть вопрос. Про второй аргумент команды "FilePattern":

The name of a single file or folder, or a wildcard pattern such as C:\Temp\*.tmp. FilePattern is assumed to be in %A_WorkingDir% if an absolute path isn't specified.

Есть такой перевод:

Имя файла или папки, либо шаблон, такой как C:\Temp\*.tmp. Если не задан полный путь, FilePattern ищется в папке, указанной в переменной A_WorkingDir.

По-моему, второе предложение означает, что если вместо C:\Temp\*.tmp указано просто *.tmp, то будет использовано %A_WorkingDir%*.tmp. Если это верно, тогда второе предложение в переводе может прозвучать так:

Если не задан полный путь, для FilePattern подразумевается папка, указанная в переменной A_WorkingDir.

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

52

Re: AutoHotkey: проект перевода, ветка #2

Прочитал ещё раз и понял: пожалуй, что в лоб, что по лбу .

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

53

Re: AutoHotkey: проект перевода, ветка #2

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

Насчёт имени и пути вообще двусмысленность: иногда они используются как синонимы, а иногда противопоставляются друг другу. В общем-то, и оригинал справки сам по себе - компромисс между краткостью и точностью, Крис где-то пишет об этом на форуме.

54

Re: AutoHotkey: проект перевода, ветка #2

YMP'у объявляется огромаднейший респект и благодарность. 106 (сто шесть) статей!

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

55

Re: AutoHotkey: проект перевода, ветка #2

Спасибо!
Конечно, среди них немало мелких, но цифра впечатляет, согласен.

Интересно, сколько вообще страниц в справке AutoHotkey? Можно это как-то определить, не пересчитывая вручную?

56

Re: AutoHotkey: проект перевода, ветка #2

Определить, сколько вообще, не пересчитывая вручную, наверное нельзя. У нас же переведено, если мне не изменяет память, 147 статей.

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

57

Re: AutoHotkey: проект перевода, ветка #2

Голь на выдумку хитра: провёл в английской справке поиск по слову "а" (неопределённый артикль, по-любому на каждой странице должен быть), результат: 267 разделов.
В русском chm поискал союз "и" - 159 разделов. Вычитаем 9 приложенных статей, не входящих в саму справку, итого получается 150 переведённых страниц.

Очуметь можно - осталось ещё 117 страниц. Где их столько попряталось, я думал - меньше.

Крису за одну только справку можно памятник поставить, не говоря уже о самой программе.

58

Re: AutoHotkey: проект перевода, ветка #2

OFF: как обозвать вертикальную полоску слева в текстовом редакторе (редакторе кода) среды разработки? В этой полоске отображаются, например, номера строк.
По-английски это "gutter".
"Поле переплёта" - пожалуй, далековато.
Народ между собой называет это "гуттер" .
<нервный смех>

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

59

Re: AutoHotkey: проект перевода, ветка #2

The gray Cardinal
Как ты относишься к идее продолжить перевод справки? Не с той скоростью, как раньше, определённо, но помаленьку можно было бы двигаться вперёд.

60

Re: AutoHotkey: проект перевода, ветка #2

YMP пишет:

Как ты относишься к идее продолжить перевод справки? Не с той скоростью, как раньше, определённо, но помаленьку можно было бы двигаться вперёд.

Более, чем положительно . Вобщем-то, проект перевода никто и не закрывал. Заявляй здесь статьи, которые берёшь, и - как обычно .

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

61

Re: AutoHotkey: проект перевода, ветка #2

The gray Cardinal пишет:

OFF: как обозвать вертикальную полоску слева в текстовом редакторе (редакторе кода) среды разработки? В этой полоске отображаются, например, номера строк.
По-английски это "gutter".
"Поле переплёта" - пожалуй, далековато.

Действительно, не густо:
http://multitran.ru/c/m.exe?a=phr&s=gutter
   .http://multitran.ru/c/m.exe?a=phr&s … 1&l2=2
   .http://multitran.ru/c/m.exe?a=phr&s … 1&l2=2

Можно посмотреть как в других программах "изворачиваются" при подобных лингвистических казусах (Загляните в свои редакторы. Как там эта штуковина называется?). Например, в Aditor Pro это называется "Инфопанель". Со "строкой состояния" всё равно такой термин не спутаешь, и, кстати, это уже традиция. Также можно в Справке небольшую картинку в виде примера: картинки бывают доходчивее слов.


От себя предложу несколько наиболее удачных из неудачных:
      ."левый отступ с номерами строк"
      ."канва с нумерацией строк"
      ."вертикаль нумерации строк"

62

Re: AutoHotkey: проект перевода, ветка #2

The gray Cardinal

Отправил тебе пока перевод Input из раздела Keyboard Control.

Дальше в этом же разделе:

BlockInput
GetKeyState
KeyHistory
KeyWait

63

Re: AutoHotkey: проект перевода, ветка #2

The gray Cardinal
А куда пропал вот этот абзац из примечаний:

Когда скрипт впервые вызывает команду Input, устанавливается клавиатурный хук (если он уже не был установлен). Вдобавок скрипт становится резидентным, что означает, что для его завершения придётся использовать команду ExitApp. Клавиатурный хук останется установленным до следующего использования команд Suspend или Hotkey, когда он и будет удалён, если не требуется для каких-либо горячих клавиш или строк автозамены.

64

Re: AutoHotkey: проект перевода, ветка #2

Спасибо! Я случайно пропустил его при наборе. Уже исправлено.

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

65

Re: AutoHotkey: проект перевода, ветка #2

Gourmet берёт статью RegisterCallback() [v1.0.47+].

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

66

Re: AutoHotkey: проект перевода, ветка #2

Как-то плохо получилось с последней статьёй. Веб-сервер настроен на cp1251 и отдаёт статью не совсем правильно. Internet Explorer её с грехом пополам читает в utf-8, а в Firefox нужно выбирать кодировку вручную. Но самое главное, всё равно не все символы отображаются правильно (видимо, нужна установленная cp1252). У меня и в родном CHM-файле Autohotkey пять символов, похоже, не отображаются. Может, выкинуть эти пять символов, а статью переделать в cp1251, записав две строки с кракозябрами с помощью символьных примитивов? Если у кого установлена cp1252, скажите, что это за пять символов, может их тоже можно записать с помощью символьных примитивов.

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

67

Re: AutoHotkey: проект перевода, ветка #2

1252 по идее у всех должна быть. Дело, скорее всего, в шрифте, нет там символов для этих кодов. А коды, судя по всему, такие: U+0081 U+008d U+008f U+0090 U+009d. В Таблице символов что-то ни в одном шрифте их не могу найти. U+007E и потом сразу идёт U+00A0 (в юникодовских наборах).

Коды получил таким скриптом (исходник должен быть в Юникоде):

str = "?????";  // Сюда вставил квадратики.
res = "";

for(i=0; i<str.length; ++i)
  res+=str.charCodeAt(i).toString(16)+" ";

WScript.Echo(res);

68

Re: AutoHotkey: проект перевода, ветка #2

Поправил статью (перевёл в кодировку 1251). Что делать с этими пятью кракозябрами, пока непонятно.

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

69

Re: AutoHotkey: проект перевода, ветка #2

Что же ты сделаешь, если в шрифте нету символов? Если кто-то захочет послать эти квадратики, скопирует и пошлёт.

70

Re: AutoHotkey: проект перевода, ветка #2

Archangel
По поводу статьи Gosub.
В переводе есть существенные недостатки, которые нужно обязательно исправить.

Однако, работы будет немного меньше, потому что целевой ярлык должен "искаться" каждый раз, а не только однажды, когда подлинник сначала загружен.

Это явные следы использования ПРОМТ, и такой "перевод" недопустим ни в коем случае.
http://img13.nnm.ru/imagez/gallery/0/6/ … a_full.jpg
Кроме того, есть несколько мест, где кажется, что некоторые вещи просто пропущены. Проверь, пожалуйста, тщательно всю статью на предмет пропусков. Убедись, что используешь последнюю версию оригинального справочного файла (1.0.47.06).

Мои (думаю, что можно сказать и наши) требования к переводу:

1. Никаких пропусков. Всё, что есть в оригинале, должно быть переведено самым тщательным образом (иначе нашу работу вообще нельзя будет назвать "переводом"). "Отсебятину" добавлять можно и это даже приветствуется, но с обязательными фразами "Примечание переводчика", "Дополнительный пример от переводчика" и т.п.
2. Любую переведённую фразу переводчик должен до конца понимать. Если вдруг такого понимания не получается, нужно обязательно задавать вопросы в этой ветке, попытаемся разобраться все вместе. Если таких вопросов будет очень много - ничего страшного, это абсолютно нормально. Такие вопросы могут касаться как самой AutoHotkey, так и просто английского языка. Любой пример кода должен запускаться после перевода комментариев в нём (используя копи-пастинг прямо из текста перевода), чтобы была 100% уверенность в его работоспособности.
3. Никаких ПРОМТ'ов. Пользоваться этими вещами, естественно, никто запретить не может, но копировать машинный перевод, чтобы потом его только немного подправить, недопустимо. Даже если ты его ощутимо и с полным пониманием исправишь, "заячьи уши" корявого машинного перевода будут видны, т.к. будет безнадёжно и окончательно испорчен стиль изложения.

Жду от тебя письма с исправленным вариантом статьи (лучше в текстовом файле во вложении, а не в тексте письма), а также многочисленных вопросов по самому переводу в этой ветке .

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

71

Re: AutoHotkey: проект перевода, ветка #2

YMP
По твоим последним переводам. Практически всё отлично, спасибо! Важный момент: обычно третьей строкой должно идти:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

И по мелочам:
1. <br> в конце файла (перед универсальным подвалом) не нужен.
2. Попадаются лишние пустые строки между тегами (хотя по большому счёту, это не имеет никакого значения).
3. <br> перед и после таблиц не нужен, если рядом <h2>, т.к. в этом случае пространства получается и так достаточно.
Ты написал автомат, который что-то конвертирует в HTML?

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

72

Re: AutoHotkey: проект перевода, ветка #2

Маркированный список:

<UL style="text-indent:0em; margin-top:5; margin-bottom:5">

Я не использую маркированный список внутри абзацев (<p>), и наоборот.

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

73

Re: AutoHotkey: проект перевода, ветка #2

Да, я написал скрипт на АНК, а в текстовиках ставлю простенькие метки. И также количество пустых строк играет роль таких меток, отсюда и лишние. Конечно, их не проблема и убрать. Пробелы тоже имеют значение - поэтому список и оказался внутри параграфа. Не привык я ещё. Скрипт тоже пока не вполне отлажен, выдаёт глючки в непредусмотренных ситуациях. Оптимизировать наверняка можно. Но процентов на 95 работу делает. Всё-таки регулярные выражения - крутая вещь. Если как следует насобачиться, можно чудеса творить.

74

Re: AutoHotkey: проект перевода, ветка #2

Archangel
По статье Gosub. Например, в разделе "Параметры", в таблице:

The name of the label, hotkey label, or hotstring label to which to jump, which causes the commands beneath Label to be executed until a Return or Exit is encountered.

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

"Return" causes the script to jump back to the first command beneath the Gosub and resume execution there.

Return заставляет конструкцию перейти обратно к Gosub, после выполнения метки.
Имхо, это неточный перевод. Я это понял, как что-то вроде:
Return заставляет скрипт перейти обратно, к первой команде после Gosub, и продолжить там выполнение.

"Exit" terminates the current thread.

Перевод просто отсутствует. Я это понял, как что-то вроде:
"Exit" завершает текущий поток.

YMP
Пожалуйста, поправь меня, если где-то неправильно.

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

75

Re: AutoHotkey: проект перевода, ветка #2

The gray Cardinal
Всё правильно ты перевёл. А как получилось, что ты опубликовал эту историю про "подлинник, который сначала загружен"?

76

Re: AutoHotkey: проект перевода, ветка #2

YMP пишет:

А как получилось, что ты опубликовал эту историю про "подлинник, который сначала загружен"?

Ну так ты же меня воспитал уже, в своё время, насчёт правки чужих переводов .

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

77

Re: AutoHotkey: проект перевода, ветка #2

Да, иногда воспитание даёт неожиданные результаты.

78

Re: AutoHotkey: проект перевода, ветка #2

Жду от тебя письма с исправленным вариантом статьи (лучше в текстовом файле во вложении, а не в тексте письма), а также многочисленных вопросов по самому переводу в этой ветке .

Вот, например:

However, performance is slightly reduced because the target label must be "looked up" each time rather than only once when the script is first loaded.
When using a dynamic label such as %MyLabel%, an error dialog will be displayed if the label does not exist. To avoid this, call IsLabel() beforehand.

Я это вижу вроде этого:

Тем не менее, производительность немного снижается, поскольку метка должна быть найдена каждый раз, а не только однажды, при первой загрузке скрипта.
При использовании динамической метки, вроде %MyLabel%, будет показан ошибочный диалог, если метка не будет существовать. Чтобы избежать этого, необходимо предварительно вызвать IsLabel().

Есть замечания ?

Счастья. Для всех. Даром. И пусть никто не уйдет обиженным... (с) Стругацкие "Пикник на обочине"

79

Re: AutoHotkey: проект перевода, ветка #2

"Тем не менее" я бы заменил на "Однако".
"Ошибочный диалог" я бы заменил на "диалог ошибки".
P.S. На всякий случай: нужно переработать весь текст статьи. Те неточности, которые упомянуты в этой теме, приведены только как пример.

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

80

Re: AutoHotkey: проект перевода, ветка #2

ОК. Понял тебя.
Требования (правила) перевода прочел. Переработаю тщательно весь текст и вышлю результат во вложении.

Счастья. Для всех. Даром. И пусть никто не уйдет обиженным... (с) Стругацкие "Пикник на обочине"

81

Re: AutoHotkey: проект перевода, ветка #2

Двигаюсь дальше, в раздел String Management.

FormatTime
IfInString / IfNotInString
If var [not] in / contains MatchList
Loop (parse a string)

The gray Cardinal
А что насчёт RegExMatch и RegExReplace? NikVasKo вроде бы хотел их переводить? Отказался?

82

Re: AutoHotkey: проект перевода, ветка #2

NikVasKo просто пропал.

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

83

Re: AutoHotkey: проект перевода, ветка #2

Получил исправленный вариант Gosub.
===========================================================
Оригинал:

Although Gosub is useful for simple, general purpose subroutines, consider using functions for more complex purposes.

Считаю, что перевод:

Хотя команда Gosub полезна для простых, общих подпрограмм, но может использоваться в более сложных целях.

Нужно заменить на:

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

===========================================================
Есть примечание переводчика:

В обычных (не скриптовых) языках переходы и команды подобные Gosub и Goto считаются правилами "плохого тона", но в AutoHotkey (впрочем, как и в скриптовой среде Flash) - нормальное явление.

Считаю, такое примечание не нужно. Gosub гораздо больше похож на вызов процедуры, нежели чем на GOTO. Поэтому сравнивать их нельзя.
===========================================================
Есть пример от Archangel:

Gosub, Label1 
MsgBox, Действие №1
Exit

Label1:
MsgBox, Действие №2
; Какие-нибудь действия. Если по их результатам count <= 0, то возврат или выход на выбор.
if count <= 0
{
    Return
    ; Exit 
}

Считаю, что этот пример лишний. Здесь неясно, что это за "count" и зачем он нужен, а то, что Return или Exit можно сделать по условию, понятно и так.

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

84

Re: AutoHotkey: проект перевода, ветка #2

ОК. Все на твое более опытное усмотрение.
Впредь, постараюсь не допускать прежних ошибок и переводить все абсолютно правильно, основываясь на оригинал.

Счастья. Для всех. Даром. И пусть никто не уйдет обиженным... (с) Стругацкие "Пикник на обочине"

85

Re: AutoHotkey: проект перевода, ветка #2

Исправил Gosub.

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

86

Re: AutoHotkey: проект перевода, ветка #2

Archangel
По статье Goto.
1. "Рассмотрите использование" ближе к оригиналу, чем командное "Используйте", поэтому оставил первое.
2. Заголовки разделов мы переводим как правило буквально, т.к. они формальны и одинаково выглядят практически во всех статьях оригинала. Поэтому "Parameters" - это "Параметры", даже если параметр один .

Спасибо, твой статус изменён, см. Правила, раздел 6.
P.S. Не подкачай .

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

87

Re: AutoHotkey: проект перевода, ветка #2

The gray Cardinal
Спасибо , постараюсь не подкачать .

Счастья. Для всех. Даром. И пусть никто не уйдет обиженным... (с) Стругацкие "Пикник на обочине"

88

Re: AutoHotkey: проект перевода, ветка #2

Archangel
По статье EnvAdd.
1. "TimeUnits может быть указан как Seconds, Minutes, Hours или Days (или только первым символом любого из этих значений)." Здесь слова "Seconds, Minutes, Hours или Days" надо оставлять без перевода, т.к. в коде они, насколько я понял, используются буквально.
2. "shorthand style" - думаю, это "стенографический" стиль.

Спасибо за перевод!

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

89

Re: AutoHotkey: проект перевода, ветка #2

Опубликовал статью EnvSub.
По-моему, там в оригинале путаница. Насколько я понял, вот это:

If higher precision is needed, specify Seconds for TimeUnits and divide the result by 60.0, 3600.0, or 86400.0.

следует читать, как

If higher precision is needed, specify Hours, Minutes, or Seconds for TimeUnits and divide the result by 24.0, 1440.0, or 86400.0.

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

90

Re: AutoHotkey: проект перевода, ветка #2

Почему путаница? Если результат будет в секундах, как там рекомендовано, то чтобы получить минуты, делим на 60, часы - на 3600 и т.д. По-моему, всё логично. Можно делать и так, как ты написал, если нужны именно дни. Но день там, по-моему, приведён просто как пример, округление вниз происходит для любой единицы.

91

Re: AutoHotkey: проект перевода, ветка #2

По-моему, всё-таки так, как я написал, будет понятнее. А то он начинает с примера, в котором нужно получить дробное значение дней, а затем уверенно начинает получать чёрт знает что, не поясняя, что он вообще получает. От таких "пояснений" крыша едет .

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

92

Re: AutoHotkey: проект перевода, ветка #2

The gray Cardinal
Думаю, надо бы подкорректировать статью WinMenuSelectItem. В описании параметра WinTitle заменить вот это:

Если этот и следующие 3 параметра опущены, будет использовано последнее найденное окно. Если параметр задан буквой А и следующие 3 параметра опущены, будет использовано активное окно.

на это:

Если этот и 3 других оконных параметра пустые или опущены, будет использовано последнее найденное окно. Если параметр задан буквой А и 3 других оконных параметра пустые или опущены, будет использовано активное окно.

Кстати, у тебя не мелькала мысль пересобрать СНМ? В общем-то, добавилось с тех пор немного, но всё-таки.

93

Re: AutoHotkey: проект перевода, ветка #2

Заменил. Пересобрать CHM — да, можно; надо будет найти время и сделать.

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

94

Re: AutoHotkey: проект перевода, ветка #2

Спасибо.

95

Re: AutoHotkey: проект перевода, ветка #2

The gray Cardinal
Оказалось, ошибка расползлась шире, чем я думал. Копипаст рулит. В связи с этим у меня к тебе аналогичная просьба относительно этих статей:
StatusBarWait
WinClose
WinKill
WinMove
WinSetTitle

Т.е. замена та же, о которой я говорил в посте выше.

А в этих двух:
WinWaitActive / WinWaitNotActive
WinWaitClose

замена немного покороче — вот это:

Если этот и следующие 3 параметра опущены, будет использовано последнее найденное окно.

на это:

Если этот и 3 других оконных параметра пустые или опущены, будет использовано последнее найденное окно.

В остальных командах окон и контролов вроде всё путём, параметры окна идут подряд.

96

Re: AutoHotkey: проект перевода, ветка #2

Заменил.

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

97

Re: AutoHotkey: проект перевода, ветка #2

Спасибо!

98

Re: AutoHotkey: проект перевода, ветка #2

В первом примере к статье ControlGet в разделе Cmd, Value пропущена фигурная скобка.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

99

Re: AutoHotkey: проект перевода, ветка #2

Спасибо, добавил.

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

100

Re: AutoHotkey: проект перевода, ветка #2

На заметку - можно перевести.
CoordMode http://www.autohotkey.com/docs/commands/CoordMode.htm
PixelGetColor http://www.autohotkey.com/docs/commands … tColor.htm
PixelSearch http://www.autohotkey.com/docs/commands/PixelSearch.htm
ImageSearch http://www.autohotkey.com/docs/commands/ImageSearch.htm
Continue http://www.autohotkey.com/docs/commands/Continue.htm