From 0c8debec744259371929b1b96fb34142c09849d9 Mon Sep 17 00:00:00 2001 From: Peter Gulutzan Date: Thu, 8 Jul 2021 15:03:57 -0600 Subject: [PATCH 1/6] Fixes gh-2151 UUID is now part of SCALAR --- doc/book/box/data_model.rst | 14 ++++++++------ .../reference_lua/box_space/create_index.rst | 6 ++++-- .../reference_sql/sql_statements_and_clauses.rst | 2 +- 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/doc/book/box/data_model.rst b/doc/book/box/data_model.rst index 027254a506..2b4ab26ec9 100644 --- a/doc/book/box/data_model.rst +++ b/doc/book/box/data_model.rst @@ -325,14 +325,14 @@ see :ref:`box.tuple `. .. _index-box_scalar: -**scalar**. Values in a scalar field can be boolean, integer, unsigned, double -or number, decimal, string, uuid, or varbinary; but not array, map, or tuple. +**scalar**. Values in a scalar field can be boolean, integer, unsigned, double, +number, decimal, string, uuid, or varbinary; but not array, map, or tuple. Examples: ``true``, ``1``, ``'xxx'``. .. _index-box_any: **any**. Values in a field of this type can be boolean, integer, unsigned, double -or number, decimal, string, uuid, varbinary, array, map, or tuple. +,number, decimal, string, uuid, varbinary, array, map, or tuple. Examples: ``true``, ``1``, ``'xxx'``, ``{box.NULL, 0}``. Examples of insert requests with different field types: @@ -423,14 +423,16 @@ Full information is in section | | :ref:`unsigned `, | | | | :ref:`number `, | | | | :ref:`decimal `, | | - | | :ref:`string `, or | | - | | :ref:`varbinary ` | | + | | :ref:`string `, | | + | | :ref:`varbinary `, | + | | or :ref:`uuid ` | || | | values | | | | | | | | When a scalar field contains values of | | | | different underlying types, the key order | | | | is: nils, then booleans, then numbers, | | - | | then strings, then varbinaries. | | + | | then strings, then varbinaries, then | | + | | uuids. | | +--------------------------------+-------------------------------------------+--------------------------------------+ .. _index-collation: diff --git a/doc/reference/reference_lua/box_space/create_index.rst b/doc/reference/reference_lua/box_space/create_index.rst index 3f12509db6..7cd608bdb0 100644 --- a/doc/reference/reference_lua/box_space/create_index.rst +++ b/doc/reference/reference_lua/box_space/create_index.rst @@ -299,9 +299,11 @@ and what index types are allowed. double-precision floating-point numbers, or exact numbers, or strings, or - (varbinary) byte arrays. + (varbinary) byte arrays, or + uuids. When there is a mix of types, the key order is: null, - then booleans, then numbers, then strings, then byte arrays + then booleans, then numbers, then strings, then byte arrays, + then uuids. - memtx TREE or HASH indexes; vinyl TREE indexes diff --git a/doc/reference/reference_sql/sql_statements_and_clauses.rst b/doc/reference/reference_sql/sql_statements_and_clauses.rst index 25b3f7b22f..c015f3972b 100644 --- a/doc/reference/reference_sql/sql_statements_and_clauses.rst +++ b/doc/reference/reference_sql/sql_statements_and_clauses.rst @@ -2227,7 +2227,7 @@ and returns a table with rows in order. Sorting order: * The default order is ASC (ascending), the optional order is DESC (descending). -* NULLs come first, then BOOLEANs, then numbers, then STRINGs, then VARBINARYs. +* NULLs come first, then BOOLEANs, then numbers, then STRINGs, then VARBINARYs, then UUIDs. * Within STRINGs, ordering is according to collation. * Collation may be specified with a :ref:`COLLATE clause ` within the ORDER BY column-list, or may be default. From 9815782fe613c7951fda8f372538bc6597f95353 Mon Sep 17 00:00:00 2001 From: patiencedaur Date: Tue, 20 Jul 2021 09:26:21 +0000 Subject: [PATCH 2/6] Update translations --- locale/ru/LC_MESSAGES/book/box/data_model.po | 138 ++---------------- .../reference_lua/box_space/create_index.po | 13 +- .../sql_statements_and_clauses.po | 4 +- 3 files changed, 22 insertions(+), 133 deletions(-) diff --git a/locale/ru/LC_MESSAGES/book/box/data_model.po b/locale/ru/LC_MESSAGES/book/box/data_model.po index d546148204..d99e309636 100644 --- a/locale/ru/LC_MESSAGES/book/box/data_model.po +++ b/locale/ru/LC_MESSAGES/book/box/data_model.po @@ -577,21 +577,21 @@ msgstr "" msgid "" "**scalar**. Values in a scalar field can be boolean, integer, unsigned, " -"double or number, decimal, string, uuid, or varbinary; but not array, map, " -"or tuple. Examples: ``true``, ``1``, ``'xxx'``." +"double, number, decimal, string, uuid, or varbinary; but not array, map, or " +"tuple. Examples: ``true``, ``1``, ``'xxx'``." msgstr "" -"**scalar**. Значения в поле scalar могут быть типа boolean, integer, " -"unsigned, double, number, decimal, string, uuid или varbinary, но не могут " -"быть типа array, map или tuple. Примеры: ``true``, ``1``, ``'xxx'``." +"**scalar**. Значения в поле scalar могут быть следующих типов: boolean, " +"integer, unsigned, double, number, decimal, string, uuid, varbinary. Они не " +"могут иметь тип array, map или tuple. Примеры: ``true``, ``1``, ``'xxx'``." msgid "" "**any**. Values in a field of this type can be boolean, integer, unsigned, " -"double or number, decimal, string, uuid, varbinary, array, map, or tuple. " +"double ,number, decimal, string, uuid, varbinary, array, map, or tuple. " "Examples: ``true``, ``1``, ``'xxx'``, ``{box.NULL, 0}``." msgstr "" -"**any**. Значения в поле any могут быть типа boolean, integer, unsigned, " -"double, number, decimal, string, uuid, varbinary, array, map или tuple. " -"Примеры: ``true``, ``1``, ``'xxx'``, ``{box.NULL, 0}``." +"**any**. Значения в поле any могут быть следующих типов: boolean, integer, " +"unsigned, double, number, decimal, string, uuid, varbinary, array, map, " +"tuple. Примеры: ``true``, ``1``, ``'xxx'``, ``{box.NULL, 0}``." msgid "Examples of insert requests with different field types:" msgstr "Примеры запросов вставки с разными типами полей:" @@ -658,123 +658,6 @@ msgstr "" " :ref:`Описание типов индексированных полей " "`." -msgid "Field type name string" -msgstr "Имя типа поля" - -msgid "Field type |br|" -msgstr "Тип поля |br|" - -msgid "Index type" -msgstr "Тип индекса" - -msgid "``'boolean'``" -msgstr "``'boolean'``" - -msgid ":ref:`boolean `" -msgstr ":ref:`boolean `" - -msgid ":ref:`TREE or HASH `" -msgstr ":ref:`TREE или HASH `" - -msgid "``'integer'`` (may also be called ‘int’)" -msgstr "``'integer'`` (также может называться ‘int’)" - -msgid ":ref:`integer `, which may include unsigned values" -msgstr "" -":ref:`integer `, может включать в себя значения unsigned " -"(без знака)" - -msgid "TREE or HASH" -msgstr "TREE или HASH" - -msgid "" -"``'unsigned'`` (may also be called ``'uint'`` or ``'num'``, but ``'num'`` is" -" deprecated)" -msgstr "" -"``'unsigned'`` (без знака, также может называться ``'uint'`` или ``'num'``, " -"но ``'num'`` объявлен устаревшим)" - -msgid ":ref:`unsigned `" -msgstr ":ref:`unsigned `" - -msgid "TREE, BITSET, or HASH" -msgstr "TREE, BITSET или HASH" - -msgid "``'double'``" -msgstr "``'double'``" - -msgid ":ref:`double `" -msgstr ":ref:`double `" - -msgid "``'number'``" -msgstr "``'number'``" - -msgid "" -":ref:`number `, which may include :ref:`integer ` or :ref:`double ` values" -msgstr "" -":ref:`number `, может включать в себя значения типа " -":ref:`integer ` или :ref:`double `" - -msgid "``'decimal'``" -msgstr "``'decimal'``" - -msgid ":ref:`decimal `" -msgstr ":ref:`decimal `" - -msgid "``'string'`` (may also be called ``'str'``)" -msgstr "``'string'`` (строка, также может называться ``'str'``)" - -msgid ":ref:`string `" -msgstr ":ref:`string `" - -msgid "``'varbinary'``" -msgstr "``'varbinary'``" - -msgid ":ref:`varbinary `" -msgstr ":ref:`varbinary `" - -msgid "TREE, HASH, or BITSET (since version 2.7)" -msgstr "TREE, HASH или BITSET (с версии 2.7)" - -msgid "``'uuid'``" -msgstr "``'uuid'``" - -msgid ":ref:`uuid `" -msgstr ":ref:`uuid `" - -msgid "``'array'``" -msgstr "``'array'``" - -msgid ":ref:`array `" -msgstr ":ref:`array `" - -msgid ":ref:`RTREE `" -msgstr ":ref:`RTREE `" - -msgid "``'scalar'``" -msgstr "``'scalar'``" - -msgid "" -"may include :ref:`nil `, :ref:`boolean `, " -":ref:`integer `, :ref:`unsigned `, " -":ref:`number `, :ref:`decimal `, " -":ref:`string `, or :ref:`varbinary ` values" -msgstr "" -"может содержать значения :ref:`nil `, :ref:`boolean `, :ref:`integer `, :ref:`unsigned `, :ref:`number `, :ref:`decimal `, :ref:`string ` или :ref:`varbinary `" - -msgid "" -"When a scalar field contains values of different underlying types, the key " -"order is: nils, then booleans, then numbers, then strings, then varbinaries." -msgstr "" -"Когда поле типа scalar содержит значения различных базовых типов, то порядок" -" ключей следующий: nil, затем boolean, затем number, затем string, затем " -"varbinary." - msgid "Collations" msgstr "Сортировка" @@ -1603,6 +1486,9 @@ msgstr "" "больше нужно оперативной памяти, но количество низкоуровневых шагов остается" " примерно тем же." +msgid "Index type" +msgstr "Тип индекса" + msgid "" "Typically, a HASH index is faster than a TREE index if the number of tuples " "in the space is greater than one." diff --git a/locale/ru/LC_MESSAGES/reference/reference_lua/box_space/create_index.po b/locale/ru/LC_MESSAGES/reference/reference_lua/box_space/create_index.po index d24f402bc2..146de00c5d 100644 --- a/locale/ru/LC_MESSAGES/reference/reference_lua/box_space/create_index.po +++ b/locale/ru/LC_MESSAGES/reference/reference_lua/box_space/create_index.po @@ -580,16 +580,17 @@ msgid "" "booleans (true or false), or integers between -9223372036854775808 and " "18446744073709551615, or single-precision floating point numbers, or double-" "precision floating-point numbers, or exact numbers, or strings, or " -"(varbinary) byte arrays. When there is a mix of types, the key order is: " -"null, then booleans, then numbers, then strings, then byte arrays" +"(varbinary) byte arrays, or uuids. When there is a mix of types, the key " +"order is: null, then booleans, then numbers, then strings, then byte arrays," +" then uuids." msgstr "" "null (вводится с помощью ``msgpack.NULL``, ``yaml.NULL`` или ``json.NULL``)," " логические значения (true или false), целые числа от -9 223 372 036 854 775" " 808 до 18 446 744 073 709 551 615, числа одинарной точности с плавающей " -"запятой, числа двойной точности с плавающей запятой, точные числа, строки " -"или байтовые массивы (varbinary). При использовании нескольких типов, " -"порядок ключей должен быть следующим: null, логические значения, затем " -"числа, затем строки, затем байтовые массивы" +"запятой, числа двойной точности с плавающей запятой, точные числа, строки, " +"байтовые массивы (varbinary) или идентификаторы UUID. Если используется " +"несколько типов, порядок ключей следующий: null, логические значения, числа," +" строки, байтовые массивы, идентификаторы UUID." msgid "null" msgstr "null" diff --git a/locale/ru/LC_MESSAGES/reference/reference_sql/sql_statements_and_clauses.po b/locale/ru/LC_MESSAGES/reference/reference_sql/sql_statements_and_clauses.po index aabaa3c837..cccc648209 100644 --- a/locale/ru/LC_MESSAGES/reference/reference_sql/sql_statements_and_clauses.po +++ b/locale/ru/LC_MESSAGES/reference/reference_sql/sql_statements_and_clauses.po @@ -2430,8 +2430,10 @@ msgstr "" msgid "" "NULLs come first, then BOOLEANs, then numbers, then STRINGs, then " -"VARBINARYs." +"VARBINARYs, then UUIDs." msgstr "" +"Первыми идут значения типа NULL, затем BOOLEAN, числовые значения, STRING, " +"VARBINARY и, наконец, UUID." msgid "Within STRINGs, ordering is according to collation." msgstr "" From 14549fe3d823d49370f8b03ecc7d105589bfab5d Mon Sep 17 00:00:00 2001 From: Alexandra Mirzuitova Date: Tue, 27 Jul 2021 16:28:30 +0700 Subject: [PATCH 3/6] Fixed typo in data_model.rst --- doc/book/box/data_model.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/book/box/data_model.rst b/doc/book/box/data_model.rst index 2b4ab26ec9..6dfef85488 100644 --- a/doc/book/box/data_model.rst +++ b/doc/book/box/data_model.rst @@ -331,8 +331,8 @@ Examples: ``true``, ``1``, ``'xxx'``. .. _index-box_any: -**any**. Values in a field of this type can be boolean, integer, unsigned, double -,number, decimal, string, uuid, varbinary, array, map, or tuple. +**any**. Values in a field of this type can be boolean, integer, unsigned, double, +number, decimal, string, uuid, varbinary, array, map, or tuple. Examples: ``true``, ``1``, ``'xxx'``, ``{box.NULL, 0}``. Examples of insert requests with different field types: From 4f63cbe07dfa86ff45fb79e04cf8f2b693d12d1d Mon Sep 17 00:00:00 2001 From: alexandra-mara Date: Tue, 27 Jul 2021 10:13:11 +0000 Subject: [PATCH 4/6] Update translations --- locale/ru/LC_MESSAGES/book/box/data_model.po | 14 +- .../contributing/docs/localization.po | 534 +++++++++++++++ .../reference_lua/box_space/create_index.po | 14 +- .../reference/reference_lua/popen.po | 638 ++++++++++++++---- locale/ru/LC_MESSAGES/release.po | 6 +- 5 files changed, 1058 insertions(+), 148 deletions(-) diff --git a/locale/ru/LC_MESSAGES/book/box/data_model.po b/locale/ru/LC_MESSAGES/book/box/data_model.po index d99e309636..0231a52506 100644 --- a/locale/ru/LC_MESSAGES/book/box/data_model.po +++ b/locale/ru/LC_MESSAGES/book/box/data_model.po @@ -580,18 +580,18 @@ msgid "" "double, number, decimal, string, uuid, or varbinary; but not array, map, or " "tuple. Examples: ``true``, ``1``, ``'xxx'``." msgstr "" -"**scalar**. Значения в поле scalar могут быть следующих типов: boolean, " -"integer, unsigned, double, number, decimal, string, uuid, varbinary. Они не " -"могут иметь тип array, map или tuple. Примеры: ``true``, ``1``, ``'xxx'``." +"**scalar**. Значения в поле типа scalar могут быть следующих типов: boolean," +" integer, unsigned, double, number, decimal, string, uuid, varbinary. Они не" +" могут иметь тип array, map или tuple. Примеры: ``true``, ``1``, ``'xxx'``." msgid "" "**any**. Values in a field of this type can be boolean, integer, unsigned, " -"double ,number, decimal, string, uuid, varbinary, array, map, or tuple. " +"double, number, decimal, string, uuid, varbinary, array, map, or tuple. " "Examples: ``true``, ``1``, ``'xxx'``, ``{box.NULL, 0}``." msgstr "" -"**any**. Значения в поле any могут быть следующих типов: boolean, integer, " -"unsigned, double, number, decimal, string, uuid, varbinary, array, map, " -"tuple. Примеры: ``true``, ``1``, ``'xxx'``, ``{box.NULL, 0}``." +"**any**. Значения в поле типа any могут быть следующих типов: boolean, " +"integer, unsigned, double, number, decimal, string, uuid, varbinary, array, " +"map, tuple. Примеры: ``true``, ``1``, ``'xxx'``, ``{box.NULL, 0}``." msgid "Examples of insert requests with different field types:" msgstr "Примеры запросов вставки с разными типами полей:" diff --git a/locale/ru/LC_MESSAGES/contributing/docs/localization.po b/locale/ru/LC_MESSAGES/contributing/docs/localization.po index 8ee11ee34b..5a6f917244 100644 --- a/locale/ru/LC_MESSAGES/contributing/docs/localization.po +++ b/locale/ru/LC_MESSAGES/contributing/docs/localization.po @@ -106,3 +106,537 @@ msgstr "" msgid "500" msgstr "" + +msgid "Glossaries" +msgstr "" + +msgid "Tarantool Core" +msgstr "" + +msgid "Term [en]" +msgstr "" + +msgid "Term [ru]" +msgstr "" + +msgid "Description [en]" +msgstr "" + +msgid "Description [ru]" +msgstr "" + +msgid "space" +msgstr "" + +msgid "спейс" +msgstr "" + +msgid "A space is a container for tuples." +msgstr "" + +msgid "https://www.tarantool.io/en/doc/latest/book/box/data_model/#spaces\"" +msgstr "" + +msgid "NOUN" +msgstr "" + +msgid "tuple" +msgstr "" + +msgid "кортеж" +msgstr "" + +msgid "" +"A tuple plays the same role as a “row” or a “record”. The number of tuples " +"in a space is unlimited. Tuples in Tarantool are stored as MsgPack arrays. " +"https://www.tarantool.io/en/doc/latest/book/box/data_model/#tuples" +msgstr "" + +msgid "Tarantool" +msgstr "" + +msgid "НЕ ПЕРЕВОДИТЬ" +msgstr "" + +msgid "primary index" +msgstr "" + +msgid "первичный индекс" +msgstr "" + +msgid "" +"The first index defined on a space is called the primary key index, and it " +"must be unique. All other indexes are called secondary indexes, and they may" +" be non-unique. " +"https://www.tarantool.io/en/doc/latest/book/box/data_model/#indexes" +msgstr "" + +msgid "fiber" +msgstr "" + +msgid "файбер" +msgstr "" + +msgid "" +"A fiber is a set of instructions which are executed with cooperative " +"multitasking. Fibers managed by the fiber module are associated with a user-" +"supplied function called the fiber function. " +"https://www.tarantool.io/en/doc/latest/reference/reference_lua/fiber/#fibers" +msgstr "" + +msgid "Tarantool garbage collector" +msgstr "" + +msgid "сборщик мусора в Tarantool" +msgstr "" + +msgid "" +"A garbage collector fiber runs in the background on the master storages of " +"each replica set. It starts deleting the contents of the bucket in the " +"GARBAGE state part by part. Once the bucket is empty, its record is deleted " +"from the _bucket system space. " +"https://www.tarantool.io/en/doc/latest/reference/reference_rock/vshard/vshard_admin/#garbage-" +"collector" +msgstr "" + +msgid "Lua garbage collector" +msgstr "" + +msgid "сборщик мусора на Lua" +msgstr "" + +msgid "" +"Lua manages memory automatically by running a garbage collector from time to" +" time to collect all dead objects (that is, objects that are no longer " +"accessible from Lua). https://www.lua.org/manual/5.1/manual.html#2.10" +msgstr "" + +msgid "storage engine" +msgstr "" + +msgid "движок базы данных" +msgstr "" + +msgid "" +"A storage engine is a set of very-low-level routines which actually store " +"and retrieve tuple values. " +"https://www.tarantool.io/en/doc/latest/book/box/engines/" +msgstr "" + +msgid "thread" +msgstr "" + +msgid "поток" +msgstr "" + +msgid "" +"A thread of execution is the smallest sequence of programmed instructions " +"that can be managed independently by a scheduler, which is typically a part " +"of the operating system." +msgstr "" + +msgid "Lua application" +msgstr "" + +msgid "Lua-приложение, приложение на языке Lua" +msgstr "" + +msgid "Tarantool’s native language for writing applications is Lua." +msgstr "" + +msgid "memtx" +msgstr "" + +msgid "instance" +msgstr "" + +msgid "экземпляр" +msgstr "" + +msgid "implicit casting" +msgstr "" + +msgid "неявное приведение типов" +msgstr "" + +msgid "database" +msgstr "" + +msgid "база данных" +msgstr "" + +msgid "Release policy" +msgstr "" + +msgid "Релизная политика" +msgstr "" + +msgid "" +"A set of rules for releasing and naming new distributions of Tarantool: " +"where we add new features and where we don't, how we give them numbers, what" +" versions are suitable to use in production." +msgstr "" + +msgid "field" +msgstr "" + +msgid "поле" +msgstr "" + +msgid "" +"Fields are distinct data values, contained in a tuple. They play the same " +"role as «row columns» or «record fields» in relational databases." +msgstr "" + +msgid "https://www.tarantool.io/ru/doc/latest/book/box/data_model/#term-field\"" +msgstr "" + +msgid "leader election" +msgstr "" + +msgid "выборы лидера" +msgstr "" + +msgid "(in a replica set, by the Raft algorithm)" +msgstr "" + +msgid "replica set" +msgstr "" + +msgid "набор реплик" +msgstr "" + +msgid "heartbeat" +msgstr "" + +msgid "контрольный сигнал" +msgstr "" + +msgid "functionality" +msgstr "" + +msgid "функциональность" +msgstr "" + +msgid "log" +msgstr "" + +msgid "журнал" +msgstr "" + +msgid "node" +msgstr "" + +msgid "узел" +msgstr "" + +msgid "follower" +msgstr "" + +msgid "реплика" +msgstr "" + +msgid "small allocator" +msgstr "" + +msgid "аллокатор small" +msgstr "" + +msgid "https://github.com/tarantool/small" +msgstr "" + +msgid "patch" +msgstr "" + +msgid "патч" +msgstr "" + +msgid "breaking change" +msgstr "" + +msgid "критическое изменение" +msgstr "" + +msgid "parser" +msgstr "" + +msgid "парсер" +msgstr "" + +msgid "UUID" +msgstr "" + +msgid "data type" +msgstr "" + +msgid "тип данных" +msgstr "" + +msgid "alias" +msgstr "" + +msgid "алиас" +msgstr "" + +msgid "или псевдоним?" +msgstr "" + +msgid "push" +msgstr "" + +msgid "выполнить push" +msgstr "" + +msgid "MVCC" +msgstr "" + +msgid "(механизм) MVCC" +msgstr "" + +msgid "dirty read" +msgstr "" + +msgid "\"грязное чтение\"" +msgstr "" + +msgid "в кавычках" +msgstr "" + +msgid "snapshot" +msgstr "" + +msgid "снимок (данных)" +msgstr "" + +msgid "keywords" +msgstr "" + +msgid "ключевые слова" +msgstr "" + +msgid "identifier" +msgstr "" + +msgid "имя, идентификатор" +msgstr "" + +msgid "clause" +msgstr "" + +msgid "предложение, блок" +msgstr "" + +msgid "" +"(SQL) A clause in SQL is a part of a query that lets you filter or " +"customizes how you want your data to be queried to you." +msgstr "" + +msgid "expression" +msgstr "" + +msgid "выражение" +msgstr "" + +msgid "predicate" +msgstr "" + +msgid "предикат" +msgstr "" + +msgid "" +"(SQL) Predicates, which specify conditions that can be evaluated to SQL " +"three-valued logic (3VL) (true/false/unknown) or Boolean truth values and " +"are used to limit the effects of statements and queries, or to change " +"program flow." +msgstr "" + +msgid "query" +msgstr "" + +msgid "запрос" +msgstr "" + +msgid "" +"(SQL) Queries retrieve the data based on specific criteria. A query is a " +"statement that returns a result set (possibly empty)." +msgstr "" + +msgid "result set" +msgstr "" + +msgid "результат запроса" +msgstr "" + +msgid "" +"(SQL) An SQL result set is a set of rows from a database, as well as " +"metadata about the query such as the column names, and the types and sizes " +"of each column. A result set is effectively a table." +msgstr "" + +msgid "resultset" +msgstr "" + +msgid "statement" +msgstr "" + +msgid "инструкция" +msgstr "" + +msgid "" +"(SQL) A statement is any text that the database engine recognizes as a valid" +" command." +msgstr "" + +msgid "" +"(SQL) Любой текст, который распознаётся движком БД как команда. Инструкция " +"состоит из ключевых слов и выражений языка SQL, которые предписывают " +"Tarantool выполнять какие-либо действия с базой данных." +msgstr "" + +msgid "" +"Tarantool: A statement consists of SQL-language keywords and expressions " +"that direct Tarantool to do something with a database. " +"https://www.tarantool.io/en/doc/latest/reference/reference_sql/sql_user_guide/#statements\"" +msgstr "" + +msgid "batch" +msgstr "" + +msgid "пакет (инструкций)" +msgstr "" + +msgid "" +"(SQL) A series of SQL statements sent to the server at once is called a " +"batch." +msgstr "" + +msgid "(SQL) Серия SQL-инструкций (statements), отправляемая на сервер вместе" +msgstr "" + +msgid "production configuration" +msgstr "" + +msgid "конфигурация производственной среды" +msgstr "" + +msgid "deployment" +msgstr "" + +msgid "" +"Transforming a mechanical, electrical, or computer system from a packaged to" +" an operational state. IT infrastructure deployment typically involves " +"defining the sequence of operations or steps, often referred to as a " +"deployment plan, that must be carried to deliver changes into a target " +"system environment." +msgstr "" + +msgid "roll back" +msgstr "" + +msgid "отменить" +msgstr "" + +msgid "транзакцию" +msgstr "" + +msgid "deploy to production" +msgstr "" + +msgid "" +"IT infrastructure deployment typically involves defining the sequence of " +"operations or steps, often referred to as a deployment plan, that must be " +"carried to deliver changes into a target system environment. Production " +"environment is a setting where software and other products are actually put " +"into operation for their intended uses by end users" +msgstr "" + +msgid "operations" +msgstr "" + +msgid "эксплуатация" +msgstr "" + +msgid "" +"(DevOps) Information technology operations, or IT operations, are the set of" +" all processes and services that are both provisioned by an IT staff to " +"their internal or external clients and used by themselves, to run themselves" +" as a business." +msgstr "" + +msgid "to deploy" +msgstr "" + +msgid "deployment plan" +msgstr "" + +msgid "" +"A sequence of operations or steps that must be carried to deliver changes " +"into a target system environment." +msgstr "" + +msgid "приложение на Tarantool Cartridge" +msgstr "" + +msgid "" +"Если без предлога, то теряется смысл: читается так, как будто Tarantool " +"Cartridge — это название приложения. А это не так." +msgstr "" + +msgid "Tarantool Cartridge application" +msgstr "" + +msgid "Tarantool Cartridge — это фреймворк" +msgstr "" + +msgid "на базе которого можно разработать свое приложение.\"" +msgstr "" + +msgid "production environment" +msgstr "" + +msgid "производственная среда" +msgstr "" + +msgid "" +"Production environment is a term used mostly by developers to describe the " +"setting where software and other products are actually put into operation " +"for their intended uses by end users." +msgstr "" + +msgid "failover" +msgstr "" + +msgid "восстановление после сбоев" +msgstr "" + +msgid "" +"In computing and related technologies such as networking, failover is " +"switching to a redundant or standby computer server, system, hardware " +"component or network upon the failure or abnormal termination of the " +"previously active application, server, system, hardware component, or " +"network." +msgstr "" + +msgid "replicaset" +msgstr "" + +msgid "directory" +msgstr "" + +msgid "директория" +msgstr "" + +msgid "bucket" +msgstr "" + +msgid "сегмент" +msgstr "" + +msgid "check" +msgstr "" + +msgid "выберите, выбрать" +msgstr "" + +msgid "To select a checkbox" +msgstr "" diff --git a/locale/ru/LC_MESSAGES/reference/reference_lua/box_space/create_index.po b/locale/ru/LC_MESSAGES/reference/reference_lua/box_space/create_index.po index 146de00c5d..fa64fb412c 100644 --- a/locale/ru/LC_MESSAGES/reference/reference_lua/box_space/create_index.po +++ b/locale/ru/LC_MESSAGES/reference/reference_lua/box_space/create_index.po @@ -584,13 +584,13 @@ msgid "" "order is: null, then booleans, then numbers, then strings, then byte arrays," " then uuids." msgstr "" -"null (вводится с помощью ``msgpack.NULL``, ``yaml.NULL`` или ``json.NULL``)," -" логические значения (true или false), целые числа от -9 223 372 036 854 775" -" 808 до 18 446 744 073 709 551 615, числа одинарной точности с плавающей " -"запятой, числа двойной точности с плавающей запятой, точные числа, строки, " -"байтовые массивы (varbinary) или идентификаторы UUID. Если используется " -"несколько типов, порядок ключей следующий: null, логические значения, числа," -" строки, байтовые массивы, идентификаторы UUID." +"null (вводится через ``msgpack.NULL``, ``yaml.NULL`` или ``json.NULL``), " +"логические значения (``true`` или ``false``), целые числа от −9 223 372 036 " +"854 775 808 до 18 446 744 073 709 551 615, числа одинарной и двойной " +"точности с плавающей запятой, точные числа, строки, байтовые массивы " +"(varbinary) или идентификаторы UUID. Если используется несколько типов, " +"порядок ключей следующий: null, логические значения, числа, строки, байтовые" +" массивы, идентификаторы UUID." msgid "null" msgstr "null" diff --git a/locale/ru/LC_MESSAGES/reference/reference_lua/popen.po b/locale/ru/LC_MESSAGES/reference/reference_lua/popen.po index b454f86c2f..d5589e73d3 100644 --- a/locale/ru/LC_MESSAGES/reference/reference_lua/popen.po +++ b/locale/ru/LC_MESSAGES/reference/reference_lua/popen.po @@ -1,6 +1,6 @@ msgid "Module `popen`" -msgstr "" +msgstr "Модуль `popen`" msgid "Overview" msgstr "Общие сведения" @@ -17,32 +17,51 @@ msgid "" "system call to create an object, so the caller thread is blocked until " "execution of a child process begins." msgstr "" +"Начиная с версии :doc:`2.4.1 ` в Tarantool есть встроенный " +"модуль ``popen``, предназначенный для выполнения внешних программ. Он " +"работает аналогично модулю `subprocess() " +"`_ в Python или `Open3 " +"`_ в Ruby. Однако в " +"``popen`` нет вспомогательных средств, которые предоставляют эти языки; он " +"предоставляет только базовые функции. Для создания объекта ``popen`` " +"использует системный вызов `vfork() " +"`_, " +"поэтому вызывающий поток блокируется до тех пор, пока не начинается " +"выполнение дочернего процесса." msgid "" "The ``popen`` module provides two functions to create the popen object:" -msgstr "" +msgstr "В модуле ``popen`` есть две функции для создания объекта popen:" msgid "" ":ref:`popen.shell ` which is similar to the libc `popen " "`_ syscall" msgstr "" +":ref:`popen.shell `, аналогичная системному вызову `popen " +"`_ из libc;" msgid "" ":ref:`popen.new ` to create a popen object with more specific " "options" msgstr "" +":ref:`popen.new ` для создания объекта popen с более " +"специфическими параметрами." msgid "" "Either function returns a handle which we will call ``popen_handle`` or " "``ph``. With the handle one can execute methods." msgstr "" +"Обе функции возвращают дескриптор, который мы будем называть " +"``popen_handle`` или ``ph``. Через дескриптор вы можете выполнять методы." msgid "Index" msgstr "Указатель" msgid "Below is a list of all ``popen`` functions and handle methods." msgstr "" +"Ниже приведен перечень всех функций ``popen`` и методов дескриптора ``ph``." msgid "Name" msgstr "Имя" @@ -54,91 +73,91 @@ msgid ":ref:`popen.shell() `" msgstr ":ref:`popen.shell() `" msgid "Execute a shell command" -msgstr "" +msgstr "Выполнение shell-команды" msgid ":ref:`popen.new() `" msgstr ":ref:`popen.new() `" msgid "Execute a child program in a new process" -msgstr "" +msgstr "Выполнение дочерней программы в новом процессе" msgid ":ref:`popen_handle:read() `" -msgstr "" +msgstr ":ref:`popen_handle:read() `" msgid "Read data from a child peer" -msgstr "" +msgstr "Считывание данных из дочернего процесса" msgid ":ref:`popen_handle:write() `" -msgstr "" +msgstr ":ref:`popen_handle:write() `" msgid "Write a string to stdin stream of a child process" -msgstr "" +msgstr "Запись строки в поток stdin дочернего процесса" msgid ":ref:`popen_handle:shutdown() `" -msgstr "" +msgstr ":ref:`popen_handle:shutdown() `" msgid "Close parent's ends of std* fds" -msgstr "" +msgstr "Закрытие канала с std* со стороны родителя" msgid ":ref:`popen_handle:terminate() `" -msgstr "" +msgstr ":ref:`popen_handle:terminate() `" msgid "Send SIGTERM signal to a child process" -msgstr "" +msgstr "Отправка сигнала SIGTERM дочернему процессу" msgid ":ref:`popen_handle:kill() `" -msgstr "" +msgstr ":ref:`popen_handle:kill() `" msgid "Send SIGKILL signal to a child process" -msgstr "" +msgstr "Отправка сигнала SIGKILL дочернему процессу" msgid ":ref:`popen_handle:signal() `" -msgstr "" +msgstr ":ref:`popen_handle:signal() `" msgid "Send signal to a child process" -msgstr "" +msgstr "Отправка сигнала дочернему процессу" msgid ":ref:`popen_handle:info() `" -msgstr "" +msgstr ":ref:`popen_handle:info() `" msgid "Return information about the popen handle" -msgstr "" +msgstr "Получение информации о дескрипторе popen" msgid ":ref:`popen_handle:wait() `" -msgstr "" +msgstr ":ref:`popen_handle:wait() `" msgid "Wait until a child process gets exited or signaled" -msgstr "" +msgstr "Ожидание, пока дочерний процесс не завершится или не получит сигнал" msgid ":ref:`popen_handle:close() `" -msgstr "" +msgstr ":ref:`popen_handle:close() `" msgid "Close a popen handle" -msgstr "" +msgstr "Закрытие дескриптора popen" msgid ":ref:`Module constants `" -msgstr "" +msgstr ":ref:`Константы модуля `" msgid "Module constants" -msgstr "" +msgstr "Константы модуля" msgid ":ref:`Handle fields `" -msgstr "" +msgstr ":ref:`Поля дескриптора `" msgid "Handle fields" -msgstr "" +msgstr "Поля дескриптора" msgid "Execute a shell command." -msgstr "" +msgstr "Выполнение shell-команды." msgid "Parameters" msgstr "Параметры" msgid "a command to run, mandatory" -msgstr "" +msgstr "имя выполняемой команды, обязательно" msgid "communication mode, optional" -msgstr "" +msgstr "режим передачи данных, необязательно" msgid "return" msgstr "возвращает" @@ -146,33 +165,41 @@ msgstr "возвращает" msgid "" "(if success) a popen handle, which we will call ``popen_handle`` or ``ph``" msgstr "" +"(при успешном выполнении) дескриптор объекта popen, который мы будем " +"называть ``popen_handle`` или ``ph``" msgid "(if failure) ``nil, err``" -msgstr "" +msgstr "(при неудачном выполнении) ``nil, err``" msgid "" "Possible errors: if a parameter is incorrect, the result is IllegalParams: " "incorrect type or value of a parameter. For other possible errors, see " ":ref:`popen.new() `." msgstr "" +"Возможные ошибки: если один из параметров задан некорректно, функция " +"возвращает IllegalParams: неправильно задан тип или значение параметра. " +"Другие возможные ошибки смотрите в разделе :ref:`popen.new() `." msgid "The possible ``mode`` values are:" -msgstr "" +msgstr "Возможные значения режима передачи данных ``mode``:" -msgid "'w' which enables :ref:`popen_handle:write() `" +msgid "``'w'`` which enables :ref:`popen_handle:write() `" msgstr "" -msgid "'r' which enables :ref:`popen_handle:read() `" +msgid "``'r'`` which enables :ref:`popen_handle:read() `" msgstr "" msgid "" -"'R' which enables :ref:`popen_handle:read({stderr = true}) `" +"``'R'`` which enables :ref:`popen_handle:read({stderr = true}) `" msgstr "" -msgid "nil which means inherit parent's std* file descriptors" +msgid "``'nil'`` which means inherit parent's std* file descriptors" msgstr "" -msgid "Several mode characters can be set together, for example 'rw', 'rRw'." +msgid "" +"Several mode characters can be set together, for example ``'rw'``, " +"``'rRw'``." msgstr "" msgid "" @@ -181,18 +208,23 @@ msgid "" "``opts.shell.group_signal`` both set to `true`, and with ``opts.stdin`` and " "``opts.stdout`` and ``opts.stderr`` all set based on the ``mode`` parameter." msgstr "" +"Функция ``shell`` --- это сокращение для :ref:`popen.new({command}, opts) " +"` с ``opts.shell.setsid`` и ``opts.shell.group_signal``, " +"установленными в `true`, и значениями ``opts.stdin``, ``opts.stdout`` и " +"``opts.stderr``, установленными на основе параметра ``mode``." msgid "" "All std* streams are inherited from the parent by default unless it is " -"changed using mode: 'r' for stdout, 'R' for stderr, or 'w' for stdin." +"changed using mode: ``'r'`` for stdout, ``'R'`` for stderr, or ``'w'`` for " +"stdin." msgstr "" msgid "**Example:**" msgstr "**Пример:**" msgid "" -"This is the equivalent of the 'sh -c date' command. It starts a process, " -"runs 'date', reads the output, and closes the popen object (``ph``)." +"This is the equivalent of the ``sh -c date`` command. It starts a process, " +"runs ``'date'``, reads the output, and closes the popen object (``ph``)." msgstr "" msgid "" @@ -206,12 +238,21 @@ msgid "" "ph:close()\n" "print(date)" msgstr "" +"local popen = require('popen')\n" +"-- Запуск программы и сохранение ее дескриптора.\n" +"local ph = popen.shell('date', 'r')\n" +"-- Считывание вывода программы и удаление следующей строки.\n" +"local date = ph:read():rstrip()\n" +"-- Освобождение ресурсов. Процесс принудительно завершается (но 'date'\n" +"-- все равно завершает работу).\n" +"ph:close()\n" +"print(date)" msgid "" "Unix defines a text file as a sequence of lines. Each line is terminated by " -"a newline (\\\\n) symbol. The same convention is usually applied for text " -"output of a command. So, when it is redirected to a file, the file will be " -"correct." +"a newline (``\\\\n``) symbol. The same convention is usually applied for " +"text output of a command. So, when it is redirected to a file, the file will" +" be correct." msgstr "" msgid "" @@ -221,72 +262,85 @@ msgid "" "world (stdout, console or log). That is why the example above contains " "``rstrip()``." msgstr "" +"Однако внутри приложение обычно работает со строками, которые *не* " +"завершаются символом новой строки (например, строки сообщений об ошибках). " +"Символ новой строки обычно добавляется прямо перед записью строки в stdout, " +"консоль или лог. Поэтому в примере выше был использован метод ``rstrip()``." msgid "Execute a child program in a new process." -msgstr "" +msgstr "Выполнение дочерней программы в новом процессе." msgid "" "an array of a program to run with command line options, mandatory; absolute " "path to the program is required when ``opts.shell`` is false (default)" msgstr "" +"массив, состоящий из запускаемой программы и параметров командной строки, " +"обязательный аргумент; если поле ``opts.shell`` установлено в false (по " +"умолчанию), то необходимо задать абсолютный путь к программе" msgid "table of options, optional" -msgstr "" +msgstr "таблица параметров, необязательно" msgid "Possible raised errors are:" -msgstr "" +msgstr "Возможные ошибки:" msgid "IllegalParams: incorrect type or value of a parameter" -msgstr "" +msgstr "IllegalParams: некорректный тип или значение параметра" msgid "IllegalParams: group signal is set, while setsid is not" -msgstr "" +msgstr "IllegalParams: групповой сигнал задан, а setsid --- нет" msgid "Possible error reasons when ``nil, err`` is returned are:" -msgstr "" +msgstr "Возможные причины ошибок, когда возвращается ``nil, err``:" msgid "" "SystemError: dup(), fcntl(), pipe(), vfork() or close() fails in the parent " "process" msgstr "" +"SystemError: dup(), fcntl(), pipe(), vfork() или close() завершились с " +"ошибкой в родительском процессе" msgid "" "SystemError: (temporary restriction) the parent process has closed stdin, " "stdout or stderr" msgstr "" +"SystemError: (временное ограничение) родительский процесс закрыл stdin, " +"stdout или stderr" msgid "OutOfMemory: unable to allocate the handle or a temporary buffer" msgstr "" +"OutOfMemory: невозможно выделить память для дескриптора или временного " +"буфера" msgid "Possible ``opts`` items are:" -msgstr "" +msgstr "Возможные элементы ``opts``:" msgid "``opts.stdin`` (action on STDIN_FILENO)" -msgstr "" +msgstr "``opts.stdin`` (действие над STDIN_FILENO)" msgid "``opts.stdout`` (action on STDOUT_FILENO)" -msgstr "" +msgstr "``opts.stdout`` (действие над STDOUT_FILENO)" msgid "``opts.stderr`` (action on STDERR_FILENO)" -msgstr "" +msgstr "``opts.stderr`` (действие над STDERR_FILENO)" msgid "The ``opts`` table file descriptor actions may be:" -msgstr "" +msgstr "Возможные действия файлового дескриптора в таблице ``opts``:" msgid "" -"``popen.opts.INHERIT`` (== 'inherit') [default] inherit the fd from the " +"``popen.opts.INHERIT`` (== ``'inherit'``) [default] inherit the fd from the " "parent" msgstr "" -msgid "``popen.opts.DEVNULL`` (== 'devnull') open /dev/null on the fd" +msgid "``popen.opts.DEVNULL`` (== ``'devnull'``) open /dev/null on the fd" msgstr "" -msgid "``popen.opts.CLOSE`` (== 'close') close the fd" +msgid "``popen.opts.CLOSE`` (== ``'close'``) close the fd" msgstr "" msgid "" -"``popen.opts.PIPE`` (== 'pipe') feed data from fd to parent, or from parent " -"to fd, using a pipe" +"``popen.opts.PIPE`` (== ``'pipe'``) feed data from fd to parent, or from " +"parent to fd, using a pipe" msgstr "" msgid "" @@ -294,27 +348,32 @@ msgid "" "be used inside a process. Each ``opts.env`` item may be a key-value pair " "(key is a variable name, value is a variable value)." msgstr "" +"Таблица ``opts`` может содержать таблицу ``env`` переменных среды для " +"использования внутри процесса. Каждый элемент ``opts.env`` может быть парой " +"ключ-значение (где ключ --- имя переменной, а значение --- значение " +"переменной)." msgid "If ``opts.env`` is not set then the current environment is inherited." -msgstr "" +msgstr "Если ``opts.env`` не установлено, то наследуется текущая среда." msgid "" "If ``opts.env`` is an empty table, then the environment will be dropped." -msgstr "" +msgstr "Если ``opts.env`` является пустой таблицей, то среда будет сброшена." msgid "" "If ``opts.env`` is set to a non-empty table, then the environment will be " "replaced." msgstr "" +"Если ``opts.env`` является непустой таблицей, то среда будет заменена." msgid "The ``opts`` table may contain these boolean items:" -msgstr "" +msgstr "Таблица ``opts`` может содержать следующие элементы типа boolean:" msgid "Default" msgstr "Значение по умолчанию" msgid "opts.shell" -msgstr "" +msgstr "opts.shell" msgid "false" msgstr "false" @@ -323,17 +382,22 @@ msgid "" "If true, then run a child process via ``sh -c \"${opts.argv}\"``. If false, " "then call the executable directly." msgstr "" +"При значении true выполняется запуск дочернего процесса через ``sh -c " +"\"${opts.argv}\"``. При значении false исполняемый процесс вызывается " +"напрямую." msgid "opts.setsid" -msgstr "" +msgstr "opts.setsid" msgid "" "If true, then run the program in a new session. If false, then run the " "program in the Tarantool instance's session and process group." msgstr "" +"При значении true программа запускается в новой сессии. При значении false " +"программа запускается в сессии и группе процессов экземпляра Tarantool." msgid "opts.close_fds" -msgstr "" +msgstr "opts.close_fds" msgid "true" msgstr "true" @@ -342,26 +406,35 @@ msgid "" "If true, then close all inherited fds from the parent. If false, then do not" " close all inherited fds from the parent." msgstr "" +"При значении true закрываются все унаследованные родительские файловые " +"дескрипторы. При значении false унаследованные родительские файловые " +"дескрипторы не закрываются." msgid "opts.restore_signals" -msgstr "" +msgstr "opts.restore_signals" msgid "" "If true, then reset all signal actions modified in the parent's process. If " "false, then inherit all signal actions modified in the parent's process." msgstr "" +"При значении true сбрасываются все действия сигналов, измененные в " +"родительском процессе. При значении false все действия сигналов, измененные " +"в родительском процессе, наследуются." msgid "opts.group_signal" -msgstr "" +msgstr "opts.group_signal" msgid "" "If true, then send signal to a child process group, if and only if " "``opts.setsid`` is enabled. If false, then send signal to a child process " "only." msgstr "" +"При значении true отправляется сигнал в группу дочерних процессов, но только" +" при условии, что установлено поле ``opts.setsid``. При значении false " +"сигнал отправляется только одному дочернему процессу." msgid "opts.keep_child" -msgstr "" +msgstr "opts.keep_child" msgid "" "If true, then do not send SIGKILL to a child process (or to a process group " @@ -370,6 +443,12 @@ msgid "" ":ref:`popen_handle:close() ` or when Lua GC collects the " "handle." msgstr "" +"При значении true дочернему процессу (или группе процессов, если поле " +"``opts.group_signal`` установлено в true) не отправляется сигнал SIGKILL. " +"При значении false дочернему процессу (или группе процессов, если поле " +"``opts.group_signal`` установлено в true) отправляется сигнал SIGKILL при " +"выполнении :ref:`popen_handle:close() ` или когда Lua GC " +"собирает дескрипторы." msgid "" "The returned ``ph`` handle provides a :ref:`popen_handle:close() ` для явного освобождения всех " +"занятых ресурсов, включая сам дочерний процесс, если не установлено поле " +"``opts.keep_child``. Однако, если метод ``close()`` не вызывается для " +"дескриптора в течение его жизни, Lua GC запустит то же самое действие по " +"освобождению ресурсов." msgid "" "Tarantool recommends using ``opts.setsid`` plus ``opts.group_signal`` if a " "child process may spawn its own children and if they should all be killed " "together." msgstr "" +"Tarantool рекомендует использовать ``opts.setsid`` вместе с " +"``opts.group_signal``, если дочерний процесс может создать собственные " +"дочерние процессы и их все нужно будет завершить одновременно." msgid "" "A signal will not be sent if the child process is already dead. Otherwise we" @@ -392,11 +480,19 @@ msgid "" "function will not send a signal to the process group even when " "``opts.setsid`` and ``opts.group_signal`` are set." msgstr "" +"Сигнал не будет отправлен, если дочерний процесс уже был завершен. В " +"противном случае мы можем случайно завершить другой процесс, который имеет " +"тот же идентификатор процесса после освобождения его предыдущим. Это " +"означает, что если дочерний процесс завершается до того, как завершаются его" +" дочерние процессы, то функция не будет отправлять сигнал группе процессов, " +"даже когда установлены ``opts.setsid`` и ``opts.group_signal``." msgid "" "Use :ref:`os.environ() ` to pass a copy of the current " "environment with several replacements (see example 2 below)." msgstr "" +"Используйте :ref:`os.environ() `, чтобы передать копию текущей " +"среды с несколькими заменами (см. Пример 2 ниже)." msgid "**Example 1**" msgstr "**Пример 1**" @@ -405,6 +501,9 @@ msgid "" "This is the equivalent of the ``sh -c date`` command. It starts a process, " "runs 'date', reads the output, and closes the popen object (``ph``)." msgstr "" +"В этом примере выполняется аналог команды ``sh -c date``. Происходит запуск " +"процесса, выполняется ``'date'``, считывается результат и объект popen " +"(``ph``) закрывается." msgid "" "local popen = require('popen')\n" @@ -416,13 +515,21 @@ msgid "" "ph:close()\n" "print(date) -- e.g. Thu 16 Apr 2020 01:40:56 AM MSK" msgstr "" +"local popen = require('popen')\n" +"\n" +"local ph = popen.new({'/bin/date'}, {\n" +" stdout = popen.opts.PIPE,\n" +"})\n" +"local date = ph:read():rstrip()\n" +"ph:close()\n" +"print(date) -- например, Thu 16 Apr 2020 01:40:56 AM MSK" msgid "**Example 2**" msgstr "**Пример 2**" msgid "" "Example 2 is quite similar to Example 1, but sets an environment variable " -"and uses the shell builtin 'echo' to show it." +"and uses the shell builtin ``'echo'`` to show it." msgstr "" msgid "" @@ -438,12 +545,23 @@ msgid "" "ph:close()\n" "print(res) -- bar" msgstr "" +"local popen = require('popen')\n" +"local env = os.environ()\n" +"env['FOO'] = 'bar'\n" +"local ph = popen.new({'echo \"${FOO}\"'}, {\n" +" stdout = popen.opts.PIPE,\n" +" shell = true,\n" +" env = env,\n" +"})\n" +"local res = ph:read():rstrip()\n" +"ph:close()\n" +"print(res) -- bar" msgid "**Example 3**" msgstr "**Пример 3**" msgid "Example 3 demonstrates how to capture a child's stderr." -msgstr "" +msgstr "Пример 3 показывает, как перехватить дочерний поток stderr." msgid "" "local popen = require('popen')\n" @@ -455,6 +573,14 @@ msgid "" "ph:close()\n" "print(res) -- hello" msgstr "" +"local popen = require('popen')\n" +"local ph = popen.new({'echo hello >&2'}, { -- !!\n" +" stderr = popen.opts.PIPE, -- !!\n" +" shell = true,\n" +"})\n" +"local res = ph:read({stderr = true}):rstrip()\n" +"ph:close()\n" +"print(res) -- hello" msgid "**Example 4**" msgstr "**Пример 4**" @@ -463,11 +589,17 @@ msgid "" "Example 4 demonstrates how to run a stream program (like ``grep``, ``sed`` " "and so on), write to its stdin and read from its stdout." msgstr "" +"Пример 4 показывает, как запустить потоковую программу (например, ``grep``, " +"``sed`` и т.д.), записать данные в ее поток stdin и считать данные из " +"stdout." msgid "" "The example assumes that input data are small enough to fit in a pipe buffer" " (typically 64 KiB, but this depends on the platform and its configuration)." msgstr "" +"В этом примере предполагается, что входные данные достаточно малы, чтобы " +"поместиться в буфер канала (обычно его размер равен 64 КиБ, но это зависит " +"от конкретной платформы и ее конфигурации)." msgid "" "If a process writes lengthy data, it will get stuck in " @@ -475,12 +607,19 @@ msgid "" ":ref:`popen_handle:read() ` in a loop in another fiber (start it" " before the first ``:write()``)." msgstr "" +"Если процесс записывает большое количество данных, он приостановится при " +"выполнении :ref:`popen_handle:write() `. Для разрешения этой " +"проблемы вызывайте :ref:`popen_handle:read() ` в цикле в другом " +"файбере (запустите его перед первым вызовом ``:write()``)." msgid "" "If a process writes lengthy text to stderr, it may get stick in ``write()`` " "because the stderr pipe buffer becomes full. To handle this case: read " "stderr in a separate fiber." msgstr "" +"Если процесс записывает длинный текст в stderr, он может приостановиться при" +" выполнении ``write()``, потому что буфер канала stderr заполнился. Для " +"решения этой проблемы считывайте из stderr в отдельном файбере." msgid "" "local function call_jq(input, filter)\n" @@ -517,177 +656,241 @@ msgid "" " return table.concat(chunks):rstrip()\n" "end" msgstr "" +"local function call_jq(input, filter)\n" +" -- Запуск процесса jq, соединение с stdin, stdout и stderr.\n" +" local jq_argv = {'/usr/bin/jq', '-M', '--unbuffered', filter}\n" +" local ph, err = popen.new(jq_argv, {\n" +" stdin = popen.opts.PIPE,\n" +" stdout = popen.opts.PIPE,\n" +" stderr = popen.opts.PIPE,\n" +" })\n" +" if ph == nil then return nil, err end\n" +" -- Запись входных данных в дочерний stdin и отправка EOF.\n" +" local ok, err = ph:write(input)\n" +" if not ok then return nil, err end\n" +" ph:shutdown({stdin = true})\n" +" -- Считывание всех данных до EOF.\n" +" local chunks = {}\n" +" while true do\n" +" local chunk, err = ph:read()\n" +" if chunk == nil then\n" +" ph:close()\n" +" return nil, err\n" +" end\n" +" if chunk == '' then break end -- EOF\n" +" table.insert(chunks, chunk)\n" +" end\n" +" -- Считывание данных диагностики из stderr (при наличии).\n" +" local err = ph:read({stderr = true})\n" +" if err ~= '' then\n" +" ph:close()\n" +" return nil, err\n" +" end\n" +" -- Соединение всех частей вместе, обрезка символа конца строки.\n" +" return table.concat(chunks):rstrip()\n" +"end" msgid "popen handle methods" -msgstr "" +msgstr "методы дескриптора popen" msgid "Read data from a child peer." -msgstr "" +msgstr "Считывание данных из дочернего процесса." msgid "" "handle of a child process created with :ref:`popen.new() ` or " ":ref:`popen.shell() `" msgstr "" +"дескриптор дочернего процесса, созданный через :ref:`popen.new() ` или :ref:`popen.shell() `" msgid "options" -msgstr "опции" +msgstr "параметры" msgid "" "Possible errors, raised on incorrect parameters or when the fiber is " "cancelled:" msgstr "" +"Возможные ошибки при некорректно заданных параметрах или при отмене файбера:" msgid "IllegalParams: incorrect type or value of a parameter" -msgstr "" +msgstr "IllegalParams: некорректный тип или значение параметра" msgid "IllegalParams: called on a closed handle" -msgstr "" +msgstr "IllegalParams: вызов дескриптора, который уже был закрыт" msgid "IllegalParams: opts.stdout and opts.stderr are both set" -msgstr "" +msgstr "IllegalParams: одновременно установлены opts.stdout и opts.stderr" msgid "" "IllegalParams: a requested IO operation is not supported by the handle " "(stdout / stderr is not piped)" msgstr "" +"IllegalParams: запрашиваемая операция ввода-вывода не поддерживается " +"дескриптором (вывод stdout / stderr не перенаправлен)" msgid "IllegalParams: attempt to operate on a closed file descriptor" msgstr "" +"IllegalParams: попытка произвести операцию над закрытым файловым " +"дескриптором" msgid "FiberIsCancelled: cancelled by an outside code" -msgstr "" +msgstr "FiberIsCancelled: файбер отменен во внешней программе" -msgid "true on success, false on error" -msgstr "true (правда), если выполнено, false (ложь) в случае ошибки" +msgid "``true`` on success, ``false`` on error" +msgstr "" msgid "rtype" msgstr "возвращаемое значение" msgid "(if success) string with read value, empty string if EOF" msgstr "" - -msgid "Possible opts items are:" -msgstr "" +"(при успешном выполнении) строка со считанным значением, пустая строка при " +"EOF" msgid "" "``opts.stdout`` (boolean, default ``true``, if ``true`` then read from " "stdout)" msgstr "" +"``opts.stdout`` (boolean, значение по умолчанию --- ``true``, при значении " +"``true`` выполняется считывание из stdout)" msgid "" "``opts.stderr`` (boolean, default ``false``, if ``true`` then read from " "stderr)" msgstr "" +"``opts.stderr`` (boolean, значение по умолчанию --- ``false``, при значении " +"``true`` выполняется считывание из stderr)" msgid "``opts.timeout`` (number, default 100 years, time quota in seconds)" msgstr "" +"``opts.timeout`` (число, значение по умолчанию --- 100 лет, временная квота " +"в секундах)" msgid "" "In other words: by default ``read()`` reads from stdout, but reads from " "stderr if one sets ``opts.stderr`` to ``true`` (it is not legal to set both " "``opts.stdout`` and ``opts.stderr`` to ``true``)." msgstr "" +"Другими словами: по умолчанию ``read()`` выполняет считывание из stdout, но " +"если установить ``opts.stderr`` в ``true``, то считывание происходит из " +"stderr (нельзя одновременно установить ``opts.stdout`` и ``opts.stderr`` в " +"``true``)." msgid "SocketError: an IO error occurs at read()" -msgstr "" +msgstr "SocketError: ошибка ввода-вывода при выполнении read()" msgid "TimedOut: exceeded the opts.timeout quota" -msgstr "" +msgstr "TimedOut: превышение квоты opts.timeout" msgid "OutOfMemory: no memory space for a buffer to read into" -msgstr "" +msgstr "OutOfMemory: недостаточно памяти для считывания в буфер" msgid "LuajitError: (\"not enough memory\"): no memory space for the Lua string" -msgstr "" +msgstr "LuajitError: (\"not enough memory\"): недостаточно памяти для строки Lua" msgid "Write string ``str`` to stdin stream of a child process." -msgstr "" +msgstr "Запись строки ``str`` в поток stdin дочернего процесса." msgid "string to write" -msgstr "" +msgstr "строка для записи" msgid "(if success) boolean = true" -msgstr "" +msgstr "(при успешном выполнении) boolean = true" msgid "" -"Possible opts items are: ``opts.timeout`` (number, default 100 years, time " -"quota in seconds)." +"Possible ``opts`` items are: ``opts.timeout`` (number, default 100 years, " +"time quota in seconds)." msgstr "" msgid "IllegalParams: string length is greater then SSIZE_MAX" -msgstr "" +msgstr "IllegalParams: длина строки превышает SSIZE_MAX" msgid "" "IllegalParams: a requested IO operation is not supported by the handle " "(stdin is not piped)" msgstr "" +"IllegalParams: запрашиваемая операция ввода-вывода не поддерживается " +"дескриптором (вывод stdin не перенаправлен)" msgid "SocketError: an IO error occurs at write()" -msgstr "" +msgstr "SocketError: ошибка ввода-вывода при выполнении write()" msgid "TimedOut: exceeded opts.timeout quota" -msgstr "" +msgstr "TimedOut: превышение квоты opts.timeout" msgid "" "``write()`` may yield forever if the child process does not read data from " "stdin and a pipe buffer becomes full. The size of this pipe buffer depends " "on the platform. Set ``opts.timeout`` when unsure." msgstr "" +"``write()`` может передать управление (yield) и заблокировать файбер, если " +"дочерний процесс не считывает данные из stdin и буфер канала заполнился. " +"Размер буфера зависит от платформы. Если сомневаетесь, обратите внимание на " +"опцию ``opts.timeout``." msgid "" "When ``opts.timeout`` is not set, the ``write()`` blocks (yields the fiber) " "until all data is written or an error happens." msgstr "" +"Когда опция ``opts.timeout`` не установлена, ``write()`` блокирует файбер до" +" момента полной записи данных или возникновения ошибки записи." msgid "Close parent's ends of std* fds." -msgstr "" - -msgid "Possible `opts` items are:" -msgstr "" +msgstr "Закрытие канала с std* со стороны родителя." msgid "``opts.stdin`` (boolean) close parent's end of stdin" -msgstr "" +msgstr "``opts.stdin`` (boolean) закрыть stdin со стороны родителя" msgid "``opts.stdout`` (boolean) close parent's end of stdout" -msgstr "" +msgstr "``opts.stdout`` (boolean) закрыть stdout со стороны родителя" msgid "``opts.stderr`` (boolean) close parent's end of stderr" -msgstr "" +msgstr "``opts.stderr`` (boolean) закрыть stderr со стороны родителя" msgid "We may use the term std* to mean any one of these items." msgstr "" +"Мы можем использовать термин std* для указания на любой из этих элементов." msgid "IllegalParams: an incorrect handle parameter" -msgstr "" +msgstr "IllegalParams: некорректный параметр дескриптора" msgid "IllegalParams: called on a closed handle" -msgstr "" +msgstr "IllegalParams: вызов дескриптора, который уже был закрыт" msgid "IllegalParams: neither stdin, stdout nor stderr is chosen" -msgstr "" +msgstr "IllegalParams: не выбран ни один из потоков stdin, stdout или stderr" msgid "" "IllegalParams: a requested IO operation is not supported by the handle (one" " of std* is not piped)" msgstr "" +"IllegalParams: запрашиваемая операция ввода-вывода не поддерживается " +"дескриптором (один из потоков std* не перенаправлен)" msgid "" "The main reason to use ``shutdown()`` is to send EOF to a child's stdin. " "However the parent's end of stdout / stderr may be closed too." msgstr "" +"Основная цель использования ``shutdown()`` --- отправка EOF в дочерний поток" +" stdin. Однако stdout / stderr может быть уже закрыт со стороны " +"родительского процесса." msgid "" "``shutdown()`` does not fail on already closed fds (idempotence). However, " "it fails on an attempt to close the end of a pipe that never existed. In " -"other words, only those std* options that were set to ``popen.opts.PIPE`` " -"during handle creation may be used here (for :ref:`popen.shell() `: 'r' corresponds to stdout, 'R' to stderr and 'w' to stdin)." +"other words, only those ``std*`` options that were set to " +"``popen.opts.PIPE`` during handle creation may be used here (for " +":ref:`popen.shell() `: ``'r'`` corresponds to stdout, ``'R'`` " +"to stderr and ``'w'`` to stdin)." msgstr "" msgid "" "``shutdown()`` does not close any fds on a failure: either all requested fds" " are closed or none of them." msgstr "" +"``shutdown()`` не закрывает никакие файловые дескрипторы при завершении с " +"ошибкой: либо закрываются все запрашиваемые дескрипторы (при успешном " +"выполнении), либо ни один из них." msgid "" "local popen = require('popen')\n" @@ -698,53 +901,70 @@ msgid "" "ph:close()\n" "print(res) -- lorem bar ipsum" msgstr "" +"local popen = require('popen')\n" +"local ph = popen.shell('sed s/foo/bar/', 'rw')\n" +"ph:write('lorem foo ipsum')\n" +"ph:shutdown({stdin = true})\n" +"local res = ph:read()\n" +"ph:close()\n" +"print(res) -- lorem bar ipsum" msgid "Send SIGTERM signal to a child process." -msgstr "" +msgstr "Отправка сигнала SIGTERM дочернему процессу." msgid "" "see :ref:`popen_handle:signal() ` for errors and return values" msgstr "" +"для получения информации об ошибках и возвращаемых значениях смотрите " +":ref:`popen_handle:signal() `" msgid "" "``terminate()`` only sends a SIGTERM signal. It does *not* free any " "resources (such as popen handle memory and file descriptors)." msgstr "" +"``terminate()`` просто отправляет сигнал SIGTERM. Он *не* освобождает " +"никакие ресурсы (такие как память для дескрипторов popen и файловые " +"дескрипторы)." msgid "Send SIGKILL signal to a child process." -msgstr "" +msgstr "Отправка сигнала SIGKILL дочернему процессу." msgid "" "``kill()`` only sends a SIGKILL signal. It does *not* free any resources " "(such as popen handle memory and file descriptors)." msgstr "" +"``kill()`` просто отправляет сигнал SIGKILL. Он *не* освобождает никакие " +"ресурсы (такие как память для дескрипторов popen и файловые дескрипторы)." msgid "Send signal to a child process." -msgstr "" +msgstr "Отправка сигнала дочернему процессу." msgid "signal to send" -msgstr "" +msgstr "отправляемый сигнал" msgid "(if success) `true` (signal is sent)" -msgstr "" +msgstr "(при успешном выполнении) `true` (сигнал отправлен)" msgid "Possible raised errors:" -msgstr "" +msgstr "Возможные ошибки:" msgid "IllegalParams: an incorrect handle parameter" -msgstr "" +msgstr "IllegalParams: некорректный параметр дескриптора" msgid "Possible error values for ``nil, err``:" -msgstr "" +msgstr "Возможные значения ошибок при возвращении ``nil, err``:" msgid "" "SystemError: a process does not exists any more (this may also be returned " "for a zombie process or when all processes in a group are zombies (but see " "note re Mac OS below)" msgstr "" +"SystemError: процесс больше не существует (также может возвращаться для " +"зомби-процессов или когда все процессы в группе являются зомби-процессами " +"(но см. примечание для Mac OS ниже)" msgid "SystemError: invalid signal number" -msgstr "" +msgstr "SystemError: неправильный номер сигнала" msgid "" "SystemError: no permission to send a signal to a process or a process group " @@ -753,6 +973,11 @@ msgid "" " re uncertain) (this may also appear due to other reasons, details are " "uncertain)" msgstr "" +"SystemError: нет разрешения на отправку сигнала процессу или группе " +"процессов (возвращается на Mac OS, когда сигнал отправляется группе " +"процессов, где лидер группы является зомби-процессом (или все процессы " +"являются зомби-процессами, детали неясны) (эта ошибка также может возникнуть" +" по другим причинам, детали неясны)" msgid "" "If ``opts.setsid`` and ``opts.group_signal`` are set for the handle, the " @@ -762,29 +987,37 @@ msgid "" "signal, particularly if the process has just been forked (this may be due to" " a race condition)." msgstr "" +"Если для дескриптора установлены ``opts.setsid`` и ``opts.group_signal``, " +"сигнал отправляется группе процессов, а не отдельному процессу. Для " +"подробной информации по групповым сигналам смотрите :ref:`popen.new() " +"`. Внимание: на Mac OS процесс в группе может не получить сигнал," +" особенно если он только что был разветвлен (возможно это происходит из-за " +"состояния гонки)." msgid "" "Note: The module offers ``popen.signal.SIG*`` constants, because some " "signals have different numbers on different platforms." msgstr "" +"Примечание: Некоторые сигналы имеют разные номера на разных платформах. " +"Поэтому в этом модуле мы предлагаем константы ``popen.signal.SIG*``." msgid "Return information about the popen handle." -msgstr "" +msgstr "Получение информации о дескрипторе popen." msgid "(if success) formatted result" -msgstr "" +msgstr "(при успешном выполнении) отформатированный результат" msgid "res" -msgstr "" +msgstr "res" msgid "IllegalParams: an incorrect handle parameter" -msgstr "" +msgstr "IllegalParams: некорректный параметр дескриптора" msgid "IllegalParams: called on a closed handle" -msgstr "" +msgstr "IllegalParams: вызов дескриптора, который уже был закрыт" msgid "The result format is:" -msgstr "" +msgstr "Результат выводится в следующем формате:" msgid "" "{\n" @@ -809,28 +1042,59 @@ msgid "" " ),\n" "}" msgstr "" +"{\n" +" pid = or ,\n" +" command = ,\n" +" opts = ,\n" +" status =
,\n" +" stdin = one-of(\n" +" popen.stream.OPEN (== 'open'),\n" +" popen.stream.CLOSED (== 'closed'),\n" +" nil,\n" +" ),\n" +" stdout = one-of(\n" +" popen.stream.OPEN (== 'open'),\n" +" popen.stream.CLOSED (== 'closed'),\n" +" nil,\n" +" ),\n" +" stderr = one-of(\n" +" popen.stream.OPEN (== 'open'),\n" +" popen.stream.CLOSED (== 'closed'),\n" +" nil,\n" +" ),\n" +"}" msgid "" "``pid`` is a process id of the process when it is alive, otherwise ``pid`` " "is nil." msgstr "" +"``pid`` --- это идентификатор процесса, когда тот находится в рабочем " +"состоянии; для завершенного процесса ``pid`` имеет значение nil." msgid "" "``command`` is a concatenation of space-separated arguments that were passed" " to ``execve()``. Multiword arguments are quoted. Quotes inside arguments " "are not escaped." msgstr "" +"``command`` --- это конкатенация аргументов, разделенных пробелами, которые " +"были переданы в ``execve()``. Аргументы, состоящие из нескольких слов, " +"заключаются в кавычки. Кавычки внутри аргументов не экранируются." msgid "" "``opts`` is a table of handle options as in the :ref:`popen.new() ` ``opts`` parameter. ``opts.env`` is not shown here, because the " "environment variables map is not stored in a handle." msgstr "" +"``opts`` -- это таблица параметров дескриптора, описанная в разделе ``opts``" +" функции :ref:`popen.new() `. ``opts.env`` здесь не отображается," +" потому что карта переменных среды не хранится в дескрипторе." msgid "" "``status`` is a table that represents a process status in the following " "format:" msgstr "" +"``status`` --- это таблица, отображающая состояние процесса в следующем " +"формате:" msgid "" "{\n" @@ -846,18 +1110,30 @@ msgid "" " signame = ,\n" "}" msgstr "" +"{\n" +" state = one-of(\n" +" popen.state.ALIVE (== 'alive'),\n" +" popen.state.EXITED (== 'exited'),\n" +" popen.state.SIGNALED (== 'signaled'),\n" +" )\n" +" -- Отображается при состоянии процесса 'завершенный'.\n" +" exit_code = ,\n" +" -- Отображается при состоянии процесса 'принимающий сигнал'.\n" +" signo = ,\n" +" signame = ,\n" +"}" msgid "" "``stdin``, ``stdout``, and ``stderr`` reflect the status of the parent's end" " of a piped stream. If a stream is not piped, the field is not present " "(``nil``). If it is piped, the status may be either ``popen.stream.OPEN`` " -"(== 'open') or ``popen.stream.CLOSED`` (== 'closed'). The status may be " -"changed from 'open' to 'closed' by a :ref:`popen_handle:shutdown({std... = " -"true}) ` call." +"(== ``'open'``) or ``popen.stream.CLOSED`` (== ``'closed'``). The status may" +" be changed from ``'open'`` to ``'closed'`` by a " +":ref:`popen_handle:shutdown({std... = true}) ` call." msgstr "" msgid "(on Tarantool console)" -msgstr "" +msgstr "(в консоли Tarantool)" msgid "" "tarantool> require('popen').new({'/usr/bin/touch', '/tmp/foo'})\n" @@ -878,6 +1154,23 @@ msgid "" " pid: 9499\n" "..." msgstr "" +"tarantool> require('popen').new({'/usr/bin/touch', '/tmp/foo'})\n" +"---\n" +"- command: /usr/bin/touch /tmp/foo\n" +" status:\n" +" state: alive\n" +" opts:\n" +" stdout: inherit\n" +" stdin: inherit\n" +" group_signal: false\n" +" keep_child: false\n" +" close_fds: true\n" +" restore_signals: true\n" +" shell: false\n" +" setsid: false\n" +" stderr: inherit\n" +" pid: 9499\n" +"..." msgid "" "tarantool> require('popen').shell('grep foo', 'wrR')\n" @@ -901,25 +1194,50 @@ msgid "" " pid: 10497\n" "..." msgstr "" +"tarantool> require('popen').shell('grep foo', 'wrR')\n" +"---\n" +"- stdout: open\n" +" command: sh -c 'grep foo'\n" +" stderr: open\n" +" status:\n" +" state: alive\n" +" stdin: open\n" +" opts:\n" +" stdout: pipe\n" +" stdin: pipe\n" +" group_signal: true\n" +" keep_child: false\n" +" close_fds: true\n" +" restore_signals: true\n" +" shell: true\n" +" setsid: true\n" +" stderr: pipe\n" +" pid: 10497\n" +"..." msgid "Wait until a child process gets exited or signaled." -msgstr "" +msgstr "Ожидание, пока дочерний процесс не завершится или не получит сигнал." msgid "" "The formatted result is a process status table (the same as the ``status`` " "component of the table returned by :ref:`popen_handle:info() `)." msgstr "" +"Отформатированный результат представляет собой таблицу состояний процесса " +"(аналогично компоненту ``status`` таблицы, возвращаемой через " +":ref:`popen_handle:info() `)." msgid "Close a popen handle." -msgstr "" +msgstr "Закрытие дескриптора popen." msgid "(if success) true" -msgstr "" +msgstr "(при успешном выполнении) true" msgid "" "Possible diagnostics when ``nil, err`` is returned (do not consider them as " "errors):" msgstr "" +"Возможные результаты диагностики, когда возвращается ``nil, err`` (не " +"рассматривайте эти случаи как ошибки):" msgid "" "SystemError: no permission to send a signal to a process or a process group " @@ -927,45 +1245,69 @@ msgid "" "``opts.group_signal`` is set, see :ref:`popen_handle:signal() `. It may appear for other reasons, details are unclear.)" msgstr "" +"SystemError: нет разрешения на отправку сигнала процессу или группе " +"процессов (это сообщение диагностики может появиться из-за особенностей " +"обработки зомби-процессов в Mac OS, когда установлен ``opts.group_signal``, " +"см. :ref:`popen_handle:signal() `. Оно также может появиться " +"по другим причинам, детали неясны)." msgid "" "The return is always ``true`` when a process is known to be dead (for " "example, after :ref:`popen_handle:wait() ` no signal will be " "sent, so no 'failure' may appear)." msgstr "" +"Если известно, что процесс был завершен, то в результате всегда возвращается" +" ``true`` (например, после выполнения :ref:`popen_handle:wait() ` не будет отправлено никакого сигнала, так что никакой ошибки не может" +" возникнуть)." msgid "" "``close()`` kills a process using SIGKILL and releases all resources " "associated with the popen handle." msgstr "" +"``close()`` принудительно завершает процесс через SIGKILL и освобождает все " +"ресурсы, связанные с дескриптором popen." msgid "Details about signaling:" -msgstr "" +msgstr "Подробная информация об отправке сигналов:" msgid "The signal is sent only when opts.keep_child is not set." -msgstr "" +msgstr "Сигнал отправляется только когда поле opts.keep_child не установлено." msgid "" "The signal is sent only when a process is alive according to the information" " available on current event loop iteration. (There is a gap here: a zombie " "may be signaled; it is harmless.)" msgstr "" +"Сигнал отправляется только когда процесс находится в рабочем состоянии " +"согласно информации, доступной на текущей итерации цикла событий. (Здесь " +"есть слабое место: сигнал может быть отправлен зомби-процессу, но это не " +"представляет никакой угрозы)." msgid "" "The signal is sent to a process or a process group depending on " "``opts.group_signal``. (See :ref:`popen.new() ` for details of " "group signaling)." msgstr "" +"Сигнал отправляется процессу или группе процессов в зависимости от " +"``opts.group_signal``. (Для подробной информации о групповых сигналах " +"смотрите :ref:`popen.new() `)." msgid "" "Resources are released regardless whether or not a signal sending succeeds: " "fds are closed, memory is released, the handle is marked as closed." msgstr "" +"Ресурсы освобождаются вне зависимости от того, успешно ли отправился сигнал:" +" дескрипторы файлов закрываются, память освобождается, а дескриптор popen " +"помечается как закрытый." msgid "" "No operation is possible on a closed handle except ``close()``, which is " "always successful on a closed handle (idempotence)." msgstr "" +"Над закрытым дескриптором невозможно выполнять никакие операции кроме " +"``close()``, которая всегда выполняется успешно над закрытым дескриптором " +"(идемпотентность)." msgid "" "``close()`` may return ``true`` or ``nil, err``, but it always frees the " @@ -973,9 +1315,13 @@ msgid "" "The return values are purely informational: they are for logging or some " "kind of reporting." msgstr "" +"``close()`` может вернуть ``true`` или ``nil, err``, но она всегда " +"освобождает ресурсы дескриптора. Поэтому для того, кто отправил сигнал, " +"любое возвращаемое значение означает успешное выполнение. Возвращаемые " +"значения только дают информацию для логирования или составления отчетов." msgid "**Handle fields**" -msgstr "" +msgstr "**Поля дескриптора**" msgid "" "popen_handle.pid\n" @@ -986,12 +1332,21 @@ msgid "" "popen_handle.stdout\n" "popen_handle.stderr" msgstr "" +"popen_handle.pid\n" +"popen_handle.command\n" +"popen_handle.opts\n" +"popen_handle.status\n" +"popen_handle.stdin\n" +"popen_handle.stdout\n" +"popen_handle.stderr" msgid "See :ref:`popen_handle:info() ` for details." msgstr "" +"За более подробной информацией обратитесь к :ref:`popen_handle:info() " +"`." msgid "**Module constants**" -msgstr "" +msgstr "**Константы модуля**" msgid "" "- popen.opts\n" @@ -1014,3 +1369,22 @@ msgid "" " - OPEN (== 'open')\n" " - CLOSED (== 'closed')" msgstr "" +"- popen.opts\n" +" - INHERIT (== 'inherit')\n" +" - DEVNULL (== 'devnull')\n" +" - CLOSE (== 'close')\n" +" - PIPE (== 'pipe')\n" +"\n" +"- popen.signal\n" +" - SIGTERM (== 9)\n" +" - SIGKILL (== 15)\n" +" - ...\n" +"\n" +"- popen.state\n" +" - ALIVE (== 'alive')\n" +" - EXITED (== 'exited')\n" +" - SIGNALED (== 'signaled')\n" +"\n" +"- popen.stream\n" +" - OPEN (== 'open')\n" +" - CLOSED (== 'closed')" diff --git a/locale/ru/LC_MESSAGES/release.po b/locale/ru/LC_MESSAGES/release.po index f4897f6bff..03405ef98e 100644 --- a/locale/ru/LC_MESSAGES/release.po +++ b/locale/ru/LC_MESSAGES/release.po @@ -8,9 +8,11 @@ msgstr "Номер версии Tarantool состоит из трех част msgid "MAJOR_VERSION.RELEASE_SERIES.RELEASE" msgstr "ОСНОВНАЯ_ВЕРСИЯ.СЕРИЯ_ВЫПУСКОВ.ВЫПУСК" -msgid "Third number distinguishes between alpha, beta and release versions:" +msgid "" +"The third number distinguishes between alpha, beta and release versions:" msgstr "" -"Третья цифра позволяет различать между собой альфа, бета и релизные версии:" +"Третья часть номера указывает, альфа-версия ли это, бета-версия или релизная" +" версия:" msgid "" "``x.y.0`` is an **alpha version**, just a base for adding new features. We " From 96968bfde3a956a5d6660d93c89063fbd33c3b55 Mon Sep 17 00:00:00 2001 From: Alexandra Mirzuitova Date: Wed, 28 Jul 2021 00:33:57 +0700 Subject: [PATCH 5/6] Fixed typo in create_index.rst --- doc/reference/reference_lua/box_space/create_index.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/reference/reference_lua/box_space/create_index.rst b/doc/reference/reference_lua/box_space/create_index.rst index 7cd608bdb0..eb3f9cbe72 100644 --- a/doc/reference/reference_lua/box_space/create_index.rst +++ b/doc/reference/reference_lua/box_space/create_index.rst @@ -296,7 +296,7 @@ and what index types are allowed. booleans (true or false), or integers between -9223372036854775808 and 18446744073709551615, or single-precision floating point numbers, or - double-precision floating-point numbers, or + double-precision floating point numbers, or exact numbers, or strings, or (varbinary) byte arrays, or From 79a84c77e5cd852887e039fcdfa9397f2d6b876b Mon Sep 17 00:00:00 2001 From: alexandra-mara Date: Tue, 27 Jul 2021 18:13:07 +0000 Subject: [PATCH 6/6] Update translations --- .../reference/reference_lua/box_space/create_index.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locale/ru/LC_MESSAGES/reference/reference_lua/box_space/create_index.po b/locale/ru/LC_MESSAGES/reference/reference_lua/box_space/create_index.po index fa64fb412c..3fbdbf4644 100644 --- a/locale/ru/LC_MESSAGES/reference/reference_lua/box_space/create_index.po +++ b/locale/ru/LC_MESSAGES/reference/reference_lua/box_space/create_index.po @@ -579,7 +579,7 @@ msgid "" "null (input with ``msgpack.NULL`` or ``yaml.NULL`` or ``json.NULL``), " "booleans (true or false), or integers between -9223372036854775808 and " "18446744073709551615, or single-precision floating point numbers, or double-" -"precision floating-point numbers, or exact numbers, or strings, or " +"precision floating point numbers, or exact numbers, or strings, or " "(varbinary) byte arrays, or uuids. When there is a mix of types, the key " "order is: null, then booleans, then numbers, then strings, then byte arrays," " then uuids."