# SOME DESCRIPTIVE TITLE.
# Copyright (C) Kovid Goyal
# This file is distributed under the same license as the calibre package.
# 
# Translators:
# Yuri Chornoivan <yurchor@ukr.net>, 2014,2017-2018,2020-2024
msgid ""
msgstr ""
"Project-Id-Version: calibre\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-04-03 03:07+0000\n"
"PO-Revision-Date: 2014-06-17 08:34+0000\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>, 2014,2017-2018,2020-2024\n"
"Language-Team: Ukrainian (http://app.transifex.com/calibre/calibre/language/uk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: uk\n"
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"

#: ../../__w/calibre/calibre/manual/template_lang.rst:4
msgid "The calibre template language"
msgstr "Мова шаблонів calibre"

#: ../../__w/calibre/calibre/manual/template_lang.rst:6
msgid ""
"The calibre template language is a calibre-specific language used throughout"
" calibre for tasks such as specifying file paths, formatting values, and "
"computing the value for user-specified columns. Examples:"
msgstr "Мова шаблонів calibre є специфічною для calibre мовою програмування, яка використовується у різних компонентах calibre. Її використовують для визначення шляхів до файлів, значення форматування та обчислення значень визначених користувачем стовпчиків. Приклади:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:8
msgid ""
"Specify the folder structure and file names when saving files from the "
"calibre library to the disk or e-book reader."
msgstr "Визначення структури каталогів та назви файла при зберіганні файлів з бібліотеки calibre на диск або на пристрій для читання книг."

#: ../../__w/calibre/calibre/manual/template_lang.rst:9
msgid "Define rules for adding icons and colors to the calibre book list."
msgstr "Визначення правил додавання піктограм і кольорів до списку книг calibre."

#: ../../__w/calibre/calibre/manual/template_lang.rst:10
msgid "Define `virtual columns` that contain data from other columns."
msgstr "Визначення «віртуальних» стовпчиків, які містять дані з інших стовпчиків."

#: ../../__w/calibre/calibre/manual/template_lang.rst:11
msgid "Advanced library searching."
msgstr "Розширені можливості пошуку у бібліотеці."

#: ../../__w/calibre/calibre/manual/template_lang.rst:12
msgid "Advanced metadata search and replace."
msgstr "Розширені можливості з пошуку і заміни у метаданих."

#: ../../__w/calibre/calibre/manual/template_lang.rst:14
msgid ""
"The language is built around the notion of a `template`, which specifies "
"which book metadata to use, computations on that metadata, and how it is to "
"be formatted."
msgstr "Мову побудовано навколо поняття «шаблон». Шаблон задає, які метадані книги слід використати, обчислення над цими метаданими, і як їх слід форматувати."

#: ../../__w/calibre/calibre/manual/template_lang.rst:17
msgid "Basic templates"
msgstr "Базові шаблони"

#: ../../__w/calibre/calibre/manual/template_lang.rst:19
msgid ""
"A basic template consists one or more ``template expressions``. A ``template"
" expression`` consists of text and names in curly brackets (``{}``) that is "
"replaced by the corresponding metadata from the book being processed. For "
"example, the default template in calibre used for saving books to device has"
" 4 ``template expressions``::"
msgstr "Базовий шаблон містить один або декілька ``виразів шаблонів``. Вираз шаблона складається з тексту і назв у фігурних дужках (``{}``), які згодом буде замінено на відповідні метадані із оброблюваної книги. Наприклад, типовим шаблоном, який використано для збереження книг на пристроях у calibre, містить 4 ``шаблонних вирази``::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:23
msgid "For the book \"The Foundation\" by \"Isaac Asimov\" the  will become::"
msgstr "Для книги «The Foundation» автора «Isaac Asimov» ми отримаємо::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:27
msgid ""
"The slashes are not ``template expressions`` because they are in between in "
"``{}``. Such text is left where it appears. For example, if the template "
"is::"
msgstr "Символи похилих рисок не є ``шаблонними виразами``, оскільки їх обмежено ``{}``. Такі фрагменти тексту після обробки лишаються на місці. Наприклад, якщо шаблоном є такий::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:31
msgid "then for \"The Foundation\" the template produces::"
msgstr "для «The Foundation» шаблон дасть::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:35
msgid ""
"A ``template expression`` can access all the metadata available in calibre, "
"including custom columns (columns you create yourself), by using a column's "
"``lookup name``. To find the lookup name for a `column` (sometimes called "
"`fields`), hover your mouse over the column header in calibre's book list. "
"Lookup names for custom columns always begin with ``#``. For series type "
"columns there is an additional field named ``#lookup name_index`` that is "
"the series index for that book in the series. For example, if you have a "
"custom series column named ``#myseries``, there will also be a column named "
"``#myseries_index``. The standard series column's index is named "
"``series_index``."
msgstr "Шаблон може отримувати доступ до усіх метаданих, які доступні у calibre, зокрема нетипових стовпчиків (стовпчиків, які створено користувачем), за їхньою ``назвою для пошуку``. Щоб визначити назву для пошуку для стовпчика (який іноді називають «полем»), наведіть вказівник миші на заголовок стовпчика у списку книг calibre. У назвах для пошуку нетипових стовпчиків першим символом завжди є ``#``. Для стовпчиків типу циклів передбачено додаткове поле із назвою ``'#назва_для_пошуку'_index``, яке містить індекс у циклі. Отже, якщо у вас є нетипове поле циклу із назвою  ``#myseries``, буде також і поле із назвою ``#myseries_index``. Індекс стандартного стовпчика циклу має назву ``series_index``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:37
msgid "In addition to the standard column based fields, you also can use:"
msgstr "Окрім полів, заснованих на вмісті стовпчиків, ви також можете використовувати::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:39
msgid ""
"``{formats}`` - A list of formats available in the calibre library for a "
"book"
msgstr "``{formats}`` — список форматів, доступних у бібліотеці calibre для книги"

#: ../../__w/calibre/calibre/manual/template_lang.rst:40
msgid "``{identifiers:select(isbn)}`` - The ISBN of the book"
msgstr "``{identifiers:select(isbn)}`` — ISBN книги"

#: ../../__w/calibre/calibre/manual/template_lang.rst:42
msgid ""
"If the metadata for the field for a given book is not defined then the field"
" in the template is replaced by the empty string (``''``). For example, "
"consider the following template::"
msgstr "Якщо метаданих поля певної книги не визначено, поле у шаблоні буде замінено на порожній рядок (``''``). Приклад::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:46
msgid ""
"If Asimov's book \"Second Foundation\" is in the series \"Foundation\" then "
"the template produces::"
msgstr "Якщо книга Азімова «Second Foundation» є частиною циклу «Foundation», шаблон дасть::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:50
msgid ""
"If a series has not been entered for the book then the template produces::"
msgstr "Якщо для книги не введено циклу, шаблон дасть::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:54
msgid ""
"The template processor automatically removes multiple slashes and leading or"
" trailing spaces."
msgstr "Обробник шаблонів автоматично вилучає послідовності похилих рисок і початкові та завершальні пробіли."

#: ../../__w/calibre/calibre/manual/template_lang.rst:57
msgid "Advanced formatting"
msgstr "Додаткові можливості з форматування"

#: ../../__w/calibre/calibre/manual/template_lang.rst:59
msgid ""
"In addition to metadata substitution, templates can conditionally include "
"additional text and control how substituted data is formatted."
msgstr "За допомогою шаблонів, окрім вставляння метаданих, можна виконувати набагато ширший спектр дій. Шаблони можуть включати додатковий текст, якщо виконуються певні умови, і керувати тим, як буде форматовано підставлені дані."

#: ../../__w/calibre/calibre/manual/template_lang.rst:61
msgid "**Conditionally including text**"
msgstr "**Умовне включення тексту**"

#: ../../__w/calibre/calibre/manual/template_lang.rst:63
msgid ""
"Sometimes you want text to appear in the output only if a field is not "
"empty. A common case is ``series`` and ``series_index`` where you want "
"either nothing or the two values separated by a hyphen. calibre handles this"
" case using a special ``template expression`` syntax."
msgstr "Іноді може виникнути потреба у виведенні тексту, лише якщо певне поле є непорожнім Типовим прикладом є ``series`` і ``series_index``. У цьому прикладі нам потрібен буде або порожній рядок або два значення, які відокремлено дефісом. У calibre для обробки подібних випадків передбачено спеціальний синтаксис запису шаблона."

#: ../../__w/calibre/calibre/manual/template_lang.rst:65
msgid ""
"For example and using the above Foundation example, assume you want the "
"template to produce `Foundation - 3 - Second Foundation`. This template "
"produces that output:"
msgstr "Наприклад, використовуючи наведений вище приклад із «Foundation», припустімо, вам потрібно, щоб застосування шаблона давало таке: `Foundation - 3 - Second Foundation`. Цей шаблон дає такий результат:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:67
msgid "``{series} - {series_index} - {title}``"
msgstr "``{series} - {series_index} - {title}``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:69
msgid ""
"However, if a book has no series the template will produce `- - the title`, "
"which is probably not what you want. Generally, people want the result be "
"the title without the extraneous hyphens. You can accomplish this using the "
"following template syntax:"
msgstr "Втім, якщо книга не належить до циклу, шаблон виведе ``- - заголовок`` Ймовірно, це зовсім не те, що потрібно. Здебільшого, бажаним результатом буде просто ``заголовок``, без зайвих дефісів. Для отримання такого результату слід скористатися такою синтаксичною конструкцією шаблонів::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:71
msgid "``{field:|prefix_text|suffix_text}``"
msgstr "``{field:|текст_префікса|текст_суфікса}``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:73
msgid ""
"This ``template expression`` says that if ``field`` has the value `XXXX` "
"then the result will be `prefix_textXXXXXsuffix_text`. If ``field`` is empty"
" (has no value) then the result will be the empty string (nothing) because "
"the prefix and suffix are ignored. The prefix and suffix can contain blanks."
msgstr "Цей ``шаблонний вираз`` визначає, що якщо ``field`` має значення `XXXX`, результатом буде `prefix_textXXXXXsuffix_text`. Якщо ``field`` є порожнім (не має значення), результатом буде порожній рядок (нічого), оскільки префікс і суфікс буде проігноровано. Префікс і суфікс можуть містити пробіли."

#: ../../__w/calibre/calibre/manual/template_lang.rst:75
msgid ""
"**Do not use subtemplates (`{ ... }`) or functions (see below) in the prefix"
" or the suffix.**"
msgstr "**Не використовуйте підлеглі шаблони (`{ ... }`) або функції (див. нижче) у префіксі або суфіксі.**"

#: ../../__w/calibre/calibre/manual/template_lang.rst:77
msgid ""
"Using this syntax, we can solve the above no-series problem with the "
"template::"
msgstr "За допомогою цієї синтаксичної конструкції ми можемо розв'язати поставлену вище задачу з шаблоном::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:81
msgid ""
"The hyphens will be included only if the book has a series index, which it "
"has only if it has a series. Continuing the Foundation example again, the "
"template will produce `Foundation - 1 - Second Foundation`."
msgstr "Дефіси буде включено, лише якщо для книги визначено індекс у циклі, а таке трапляється, лише якщо метадані містять запис циклу. Продовжуючи приклад із «Foundation», шаблон дасть `Foundation - 1 - Second Foundation`."

#: ../../__w/calibre/calibre/manual/template_lang.rst:83
#: ../../__w/calibre/calibre/manual/template_lang.rst:286
msgid "Notes:"
msgstr "Нотатки:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:85
msgid ""
"You must include the colon after the ``lookup name`` if you are using a "
"prefix or a suffix."
msgstr "Вам слід включити двокрапку після назви для пошуку, якщо ви хочете скористатися префіксом або суфіксом."

#: ../../__w/calibre/calibre/manual/template_lang.rst:86
msgid ""
"You must either use either no or both ``|`` characters. Using one, as in "
"``{field:| - }``, is not allowed."
msgstr "Вам слід або не використовувати символи ``|``, або використовувати обидва символи; користуватися одним з них, як у ``{field:| - }``, не можна."

#: ../../__w/calibre/calibre/manual/template_lang.rst:87
msgid ""
"It is OK to provide no text for either the prefix or the suffix, such as in "
"``{series:|| - }``. The template ``{title:||}`` is the same as ``{title}``."
msgstr "Можна не вказувати текст для префікса або суфікса, якось так: ``{series:|| - }``. Шаблон ``{title:||}`` є еквівалентним до шаблона ``{title}``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:89
msgid "**Formatting**"
msgstr "**Форматування**"

#: ../../__w/calibre/calibre/manual/template_lang.rst:91
msgid ""
"Suppose you want the ``series_index`` to be formatted as three digits with "
"leading zeros. This does the trick:"
msgstr "Припустімо, вам потрібно переконатися, що ``series_index`` завжди записуватиметься у форматі з трьох цифр із початковими нулями. Ось як цього досягти:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:93
msgid "``{series_index:0>3s}`` - Three digits with leading zeros"
msgstr "``{series_index:0>3s}`` — три цифри із початковими нулями"

#: ../../__w/calibre/calibre/manual/template_lang.rst:95
msgid "For trailing zeros, use:"
msgstr "Для кінцевих нулів скористайтеся такою конструкцією:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:97
msgid "``{series_index:0<3s}`` - Three digits with trailing zeros"
msgstr "``{series_index:0<3s}`` — три цифрви із завершальними нулями"

#: ../../__w/calibre/calibre/manual/template_lang.rst:99
msgid ""
"If you use series indices with fractional values, e.g., 1.1, you might want "
"the decimal points to line up. For example, you might want the indices 1 and"
" 2.5 to appear as 01.00 and 02.50 so that they will sort correctly on a "
"device that does lexical sorting. To do this, use:"
msgstr "Якщо ви використовуєте індекси у циклі із проміжними значеннями (наприклад, 11), вам може знадобитися вирівнювання десяткової крапки. Наприклад, бажаним буде запис індексів 1 і 2.5 як 01.00 і 02.50 для належного упорядковування на пристроях із лексичним упорядкуванням. Щоб досягти потрібного результату, скористайтеся таким шаблоном::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:101
msgid ""
"``{series_index:0>5.2f}`` - Five characters consisting of two digits with "
"leading zeros, a decimal point, then 2 digits after the decimal point."
msgstr "``{series_index:0>5.2f}`` — п'ять символів складаються із двох цифр і початковими нулями, десяткової крапки і 2 цифр після десяткової крапки."

#: ../../__w/calibre/calibre/manual/template_lang.rst:103
msgid "If you want only the first two letters of the data, use:"
msgstr "Якщо вам потрібні лише перші дві літери даних, скористайтеся такою конструкцією:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:105
msgid ""
"``{author_sort:.2}`` - Only the first two letters of the author sort name"
msgstr "``{author_sort:.2}`` — лише перші дві літери імені у впорядкованому списку авторів"

#: ../../__w/calibre/calibre/manual/template_lang.rst:107
msgid ""
"Much of the calibre template language formatting comes from Python. For more"
" details on the syntax of these advanced formatting operations see the "
"`Python documentation "
"<https://docs.python.org/3/library/string.html#formatstrings>`_."
msgstr "Більша частина форматування мови шаблонів calibre є похідною від Python. Щоб дізнатися більше про синтаксичні конструкції таких дій з форматування, ознайомтеся із `документацією з Python <https://docs.python.org/3/library/string.html#formatstrings>`_."

#: ../../__w/calibre/calibre/manual/template_lang.rst:111
msgid "Using templates to define custom columns"
msgstr "Використання шаблонів для визначення нетипових стовпчиків"

#: ../../__w/calibre/calibre/manual/template_lang.rst:113
msgid ""
"Templates can be used to display information that isn't in calibre metadata,"
" or to display metadata differently from calibre's normal format. For "
"example, you might want to show the ``ISBN``, a field that calibre does not "
"display. You can accomplish this creating a custom column with the type "
"`Column built from other columns` (hereafter called `composite columns`) and"
" providing a template to generate the displayed text. The column will "
"display the result of evaluating the template. For example, to display the "
"ISBN, create the column and enter ``{identifiers:select(isbn)}`` in the "
"template box. To display a column containing the values of two series custom"
" columns, separated by a comma, use ``{#series1:||,}{#series2}``."
msgstr "Шаблони використовують для показу даних, яких немає у метаданих calibre або показу даних у форматуванні, яке відрізняється від стандартного форматування calibre. Наприклад, у вас може виникнути потреба бачити ISBN, поле, вміст якого calibre не показує. Для показу таких даних ви можете скористатися нетиповими стовпчиками. Створіть стовпчик із типом «Стовпчик, створений на основі інших стовпчиків» (надалі ми такі стовпчики називатимемо складеними) і введіть до нього шаблон. Результат: calibre показуватиме у стовпчику результат обчислення шаблона. Для показу ISBN створіть стовпчик і введіть ``{identifiers:select(isbn)}`` у поле шаблона. Щоб створити стовпчик, який міститиме значення двох нетипових стовпчиків циклів, скористайтеся шаблоном ``{#series1:||,}{#series2}``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:115
msgid "Composite columns can use any template option, including formatting."
msgstr "Складені стовпчики можуть використовувати будь-які варіанти шаблонів, включно з форматуванням."

#: ../../__w/calibre/calibre/manual/template_lang.rst:117
msgid ""
"Note: You cannot edit the data displayed in a composite column. Instead you "
"edit the source columns. If you edit a composite column, for example by "
"double-clicking it, calibre will open the template for editing, not the "
"underlying data."
msgstr "Зауваження: редагувати дані, які показано у складеному стовпчику не можна. Редагувати слід дані у стовпчиках-джерелах. Якщо ви спробуєте виконати редагування складеного стовпчика, наприклад, подвійним клацанням на даних у ньому, calibre відкриє для редагування шаблон, а не дані, які він виводить."

#: ../../__w/calibre/calibre/manual/template_lang.rst:121
msgid "Templates and plugboards"
msgstr "Шаблони і набори метаданих"

#: ../../__w/calibre/calibre/manual/template_lang.rst:123
msgid ""
"Plugboards are used for changing the metadata written into books during "
"send-to-device and save-to-disk operations. A plugboard permits you to "
"specify a template to provide the data to write into the book's metadata. "
"You can use plugboards to modify the following fields: authors, author_sort,"
" language, publisher, tags, title, title_sort. This feature helps people who"
" want to use different metadata in books on devices to solve sorting or "
"display issues."
msgstr "Набори метаданих використовуються для внесення змін до метаданих, що записуються до книг під час дій із надсилання на пристрій і збереження на диск. Набір метаданих надає вам змогу вказати шаблон для надання даних, які слід записати до метаданих книги. Ви можете скористатися наборами метаданих для внесення змін до таких полів: authors, author_sort, language, publisher, tags, title, title_sort. Набори метаданих допомагають у використанні спеціалізованих метаданих для книг на пристрої з метою усування проблем із упорядковуванням книг або їхнім показом."

#: ../../__w/calibre/calibre/manual/template_lang.rst:125
msgid ""
"When you create a plugboard, you specify the format and device for which the"
" plugboard is to be used. A special device is provided, ``save_to_disk``, "
"that is used when saving formats (as opposed to sending them to a device). "
"Once you have chosen the format and device, you choose the metadata fields "
"to change, providing templates to supply the new values. These templates are"
" `connected` to their destination fields, hence the name `plugboards`. You "
"can of course use composite columns in these templates."
msgstr "Під час створення набору метаданих ви визначаєте формат і пристрій, для яких використовуватиметься набір. Передбачено особливий пристрій, ``save_to_disk``, який використовується для збереження книг у певних форматах (на відміну від надсилання книг на пристрій). Після вибору формату і пристрою вам слід вибрати поля метаданих для внесення змін і надати шаблони для визначення нових значень цих полів. Ці шаблони буде `з’єднано` з відповідними полями призначення. Ви, звичайно ж, можете використовувати у шаблонах наборів метаданих складені стовпчики."

#: ../../__w/calibre/calibre/manual/template_lang.rst:127
msgid ""
"Plugboards are quite flexible and can be written in Single Function Mode, "
"Template Program Mode, General Program Mode, or Python Template mode."
msgstr "Набори метаданих є доволі гнучкими — їх можна писати у режимі однієї функції, режимі програмування шаблонів, загальному режимі програмування та режимі шаблонів Python."

#: ../../__w/calibre/calibre/manual/template_lang.rst:129
msgid ""
"When a plugboard might apply (Content server, save to disk, or send to "
"device), calibre searches the defined plugboards to choose the correct one "
"for the given format and device. For example, to find the appropriate "
"plugboard for an EPUB book being sent to an ANDROID device, calibre searches"
" the plugboards using the following search order:"
msgstr "Якщо до метаданих може бути застосовано набір (на сервері даних, для збереження на диск або надсилання на пристрій), calibre шукає визначені набори метаданих і вибирає належний для заданого формату і пристрою. Наприклад, для того, щоб знайти належний набір метаданих для книги EPUB, яку надсилають на пристрій під керуванням ANDROID, calibre шукає набори метаданих у такому порядку:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:133
msgid ""
"a plugboard with an exact match on format and device, e.g., ``EPUB`` and "
"``ANDROID``"
msgstr "набір метаданих із точною відповідністю за форматом і пристроєм, наприклад ``EPUB`` і ``ANDROID``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:134
msgid ""
"a plugboard with an exact match on format and the special ``any device`` "
"choice, e.g., ``EPUB`` and ``any device``"
msgstr "набір метаданих із точним відповідником за форматом і спеціальним варіантом ``any device``, наприклад ``EPUB`` і ``any device``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:135
msgid ""
"a plugboard with the special ``any format`` choice and an exact match on "
"device, e.g., ``any format`` and ``ANDROID``"
msgstr "набір метаданих із спеціальним варіантом ``any format`` і точною відповідністю за пристроєм, наприклад ``any format`` і ``ANDROID``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:136
msgid "a plugboard with ``any format`` and ``any device``"
msgstr "набір метаданих ``any format`` і ``any device``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:138
msgid ""
"The tags and authors fields have special treatment, because both of these "
"fields can hold more than one item. A book can have many tags and many "
"authors. When you specify that one of these two fields is to be changed, the"
" template's result is examined to see if more than one item is there. For "
"tags, the result is cut apart wherever calibre finds a comma. For example, "
"if the template produces the value ``Thriller, Horror``, then the result "
"will be two tags, ``Thriller`` and ``Horror``. There is no way to put a "
"comma in the middle of a tag."
msgstr "Поля міток (`tags`) і авторів (`authors`) обробляються у особливий спосіб, оскільки у обох цих полях може міститися декілька записів. У книги може бути багато міток і багато авторів. Якщо ви визначаєте одне з цих двох полів як таке, вміст якого слід змінити, результати використання шаблона буде перевірено на наявність декількох записів. Для міток результат буде розділено на записи за знайденими calibre комами. Наприклад, якщо шаблон створює значення ``Трилер, Жахи``, результатом буде дві мітки, ``Трилер`` і ``Жахи``. Способів додавання коми у окрему мітку не передбачено."

#: ../../__w/calibre/calibre/manual/template_lang.rst:141
msgid ""
"The same thing happens for authors, but using a different character for the "
"cut, a `&` (ampersand) instead of a comma. For example, if the template "
"produces the value ``Blogs, Joe&Posts, Susan``, then the book will end up "
"with two authors, ``Blogs, Joe`` and ``Posts, Susan``. If the template "
"produces the value ``Blogs, Joe;Posts, Susan``, then the book will have one "
"author with a rather strange name."
msgstr "Те саме стосується авторів, але для поділу на записи використовується інший символ, `&` (амперсанд), а не кома. Наприклад, якщо шаблоном створюється значення ``Blogs, Joe&Posts, Susan``, для книги буде визначено двоє авторів, ``Blogs, Joe`` і ``Posts, Susan``. Якщо ж шаблон створює значення ``Blogs, Joe;Posts, Susan``, книга матиме один запис автора із доволі чудернацьким іменем."

#: ../../__w/calibre/calibre/manual/template_lang.rst:143
msgid ""
"Plugboards affect the metadata written into the book when it is saved to "
"disk or written to the device. Plugboards do not affect the metadata used by"
" ``save to disk`` and ``send to device`` to create the file names. Instead, "
"file names are constructed using the templates entered on the appropriate "
"preferences window."
msgstr "Набори метаданих впливають на метадані, які записуються до книги, коли її зберігають на диск або записують на пристрій для читання. Набори метаданих не змінюють метадані, які використовуються діями ``зберегти на диск`` та ``надіслати на пристрій`` для створення назв файлів. Назви файлів будуються за допомогою шаблонів, які вказано у відповідних місцях вікна налаштувань."

#: ../../__w/calibre/calibre/manual/template_lang.rst:148
msgid "Using functions in templates - Single Function Mode"
msgstr "Використання функцій у шаблонах — режим єдиної функції"

#: ../../__w/calibre/calibre/manual/template_lang.rst:150
msgid ""
"Suppose you want to display the value of a field in upper case when that "
"field is normally in title case. You can do this using `template functions`."
" For example, to display the title in upper case use the ``uppercase`` "
"function, as in ``{title:uppercase()}``. To display it in title case, use "
"``{title:titlecase()}``."
msgstr "Припустімо, вам потрібно показати значення поля літерами верхнього регістру, хоча зазвичай вміст цього поля записується регістром символів як у заголовку. Досягти цього можна за допомогою `функцій шаблонів`. Наприклад, для переведення літер у верхній регістр можна скористатися функцією ``uppercase``, ось так: ``{title:uppercase()}``. Для показу назви у форматі, типовому для заголовків, скористайтеся шаблоном ``{title:titlecase()}``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:152
msgid ""
"Functions go into the format part of the template, after the ``:`` and "
"before the first ``|`` or the closing ``}`` if no prefix/suffix is used. If "
"you have both a format and a function reference, the function comes after a "
"second ``:``.  Functions return the value of the column specified in the "
"template, suitably modified."
msgstr "Функції вставляють у частину форматування шаблона Їх вписують після ``:`` і перед першим ``|`` або завершальним ``}``, якщо не використано префікса або суфікса. Якщо вам потрібне одразу форматування і функції, функцію включають після ще одного ``:``. Функції повертають значення стовпчика, вказаного у шаблоні, належним чином зміненим."

#: ../../__w/calibre/calibre/manual/template_lang.rst:154
msgid "The syntax for using functions is one of::"
msgstr "Синтаксична конструкція для використання функцій є однією з таких:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:161
msgid ""
"Function names must always be followed by opening and closing parentheses. "
"Some functions require extra values (arguments), and these go inside the "
"parentheses. Arguments are separated by commas. Literal commas (commas as "
"text, not argument separators) must be preceded by a backslash (``\\``) . "
"The last (or only) argument cannot contain a textual closing parenthesis."
msgstr "За назвами функцій завжди мають іти початкова і завершальна круглі дужки. Деяким функціям обов'язково слід передавати додаткові значення (аргументи), і ці аргументи слід вказувати у дужках. Аргументи відокремлюють комами. Самі коми (коми як текст, а не роздільник аргументів) слід екранувати символом зворотної похилої риски (``\\``) . Останній (або єдиний) аргумент не може містити текстової завершальної дужки."

#: ../../__w/calibre/calibre/manual/template_lang.rst:163
msgid ""
"Functions are evaluated before format specifications and the prefix/suffix. "
"See further down for an example of using both a format and a function."
msgstr "Функції обчислюють до специфікацій форматів та префіксів/суфіксів. Нижче наведено приклад одночасного використання форматування та функції."

#: ../../__w/calibre/calibre/manual/template_lang.rst:165
msgid ""
"**Important**: If you have programming experience, please note that the "
"syntax in `Single Function Mode` is not what you expect. Strings are not "
"quoted and spaces are significant. All arguments are considered to be "
"constants; there are no expressions."
msgstr "**Важливе зауваження**: якщо ви маєте досвід програмування, будь ласка, зауважте, що синтаксис у цьому режимі (режимі єдиної функції) не зовсім такий, як ви очікуєте Для рядків не потрібні лапки. Пробіли мають значення. Усі аргументи мають бути сталим; проміжних обчислень не передбачено."

#: ../../__w/calibre/calibre/manual/template_lang.rst:167
msgid ""
"**Do not use subtemplates (`{ ... }`) as function arguments.** Instead, use "
":ref:`Template Program Mode <template_mode>` and :ref:`General Program Mode "
"<general_mode>`."
msgstr "**Не використовуйте підлеглих шаблонів (`{ ... }`) у аргументах функцій.** Замість них, використовуйте :ref:`режим шаблонного програмування <template_mode>` та :ref:`загальний режим програмування <general_mode>`."

#: ../../__w/calibre/calibre/manual/template_lang.rst:169
msgid ""
"Some functions require regular expressions. In the template language regular"
" expression matching is case-insensitive."
msgstr "У деяких функціях використовуються формальні вирази. У мові шаблонів при встановленні відповідності формальних виразів регістр символів не береться до уваги."

#: ../../__w/calibre/calibre/manual/template_lang.rst:171
msgid ""
"In the function documentation below, the notation ``[something]*`` means "
"that ``something`` can be repeated zero or more times. The notation "
"``[something]+`` means that the ``something`` is repeated one or more times "
"(must exist at least one time)."
msgstr "У наведеній нижче документації щодо функцій позначення ``[щось]*`` означає, що ``щось`` може бути повторено нуль або більшу кількість разів. Позначення ``[щось]+`` означає, що `щось` повторюється один або декілька разів (але має бути принаймні один такий запис)."

#: ../../__w/calibre/calibre/manual/template_lang.rst:173
msgid "The functions intended for use in Single Function Mode are:"
msgstr "Функціями, які призначено для використання у режимі єдиної функції, є такі:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:176
msgid ""
"``capitalize()`` -- returns the value with the first letter upper case and "
"the rest lower case."
msgstr "``capitalize()`` -- повертає значення поля так, що кожне слово у результаті починатиметься з великої літери, а решта літер слів будуть малими."

#: ../../__w/calibre/calibre/manual/template_lang.rst:177
msgid ""
"``contains(pattern, text if match, text if not match)`` -- checks if the "
"value is matched by the regular expression ``pattern``. Returns ``text if "
"match`` if the pattern matches the value, otherwise returns ``text if no "
"match``."
msgstr "``contains(значення, взірець, текст для відповідності, текст для невідповідності)`` — перевіряє, чи міститься у значенні відповідник формального виразу ``взірець``. Повертає ``текст для відповідності``, якщо буде знайдено відповідник, інакше повертає ``текст для невідповідності``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:178
msgid ""
"``count(separator)`` -- interprets the value as a list of items separated by"
" ``separator`` and returns the number of items in the list. Most lists use a"
" comma as the separator, but ``authors`` uses an ampersand (&). Examples: "
"``{tags:count(,)}``, ``{authors:count(&)}``. Aliases: ``count()``, "
"``list_count()``"
msgstr "``count(роздільник)`` — за заданим значенням списком пунктів, відокремлених роздільником ``роздільник``, повертає кількість пунктів у списку. У більшості списків як роздільник використовується кома, для ``авторів`` може використовуватися амперсанд. Приклади: ``{tags:count(,)}``, ``{authors:count(&)}``. Варіанти: ``count()``, ``list_count()``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:179
msgid ""
"``format_number(template)`` -- interprets the value as a number and formats "
"that number using a Python formatting template such as ``{0:5.2f}`` or "
"``{0:,d}`` or ``${0:5,.2f}``. The formatting template must begin with "
"``{0:`` and end with ``}`` as in the above examples. Exception: you can "
"leave off the leading \"{0:\" and trailing \"}\" if the format template "
"contains only a format. See the template language and the `Python "
"documentation "
"<https://docs.python.org/3/library/string.html#formatstrings>`_ for more "
"examples. Returns the empty string if formatting fails."
msgstr "``format_number(шаблон)`` — вважати значення числом і форматувати число на основі шаблону форматування python, наприклад ``{0:5.2f}``, ``{0:,d}`` або ``${0:5,.2f}``. Шаблон форматування має починатися з ``{0:`` і завершуватися ``}``, як у наведених вище прикладах. Виключення: ви можете обійтися без початкового «{0:» і завершального «}», якщо у шаблоні форматування міститься лише один формат. З докладнішими прикладами можна ознайомитися за допомогою документації до мови шаблонів та `документації з Python <https://docs.python.org/3/library/string.html#formatstrings>`_. Повертає порожній рядок, якщо виконати форматування не вдасться."

#: ../../__w/calibre/calibre/manual/template_lang.rst:180
msgid ""
"``human_readable()`` -- expects the value to be a number and returns a "
"string representing that number in KB, MB, GB, etc."
msgstr "``human_readable()`` — очікує, що значення є числом, і повертає рядкове представлення числа у кілобайтах, мегабайтах, гігабайтах тощо."

#: ../../__w/calibre/calibre/manual/template_lang.rst:181
msgid ""
"``ifempty(text if empty)`` -- if the value is not empty then return the "
"value of the field, otherwise return `text if empty`."
msgstr "``ifempty(текст для порожнього)`` — якщо значення не є порожнім, повертає значення поля, інакше повертає `текст для порожнього`."

#: ../../__w/calibre/calibre/manual/template_lang.rst:182
msgid ""
"``in_list(separator, [ pattern, found_val, ]* not_found_val)`` -- interpret "
"the value as a list of items separated by ``separator``, checking the "
"``pattern`` against each item in the list. If the ``pattern`` matches an "
"item then return ``found_val``, otherwise return ``not_found_val``. The pair"
" ``pattern`` and ``found_value`` can be repeated as many times as desired, "
"permitting returning different values depending on the item's value. The "
"patterns are checked in order, and the first match is returned."
msgstr "``in_list(роздільник, [ взірець, значення_якщо_знайдено, ]* значення_якщо_не_знайдено)`` — обробляє значення як список пунктів, відокремлених ``роздільником``, порівнює ``взірець`` з кожним зі значень у списку Якщо рядок збігається зі значенням, повертає ``значення_якщо_знайдено``, інакше повертає ``значення_якщо_не_знайдено``. Значення ``взірець`` і ``значення_якщо_знайдено`` можна повторювати довільну кількість разів, залежно від значення запису. Перевірка взірців виконується послідовно. Функція повертає перший знайдений відповідник."

#: ../../__w/calibre/calibre/manual/template_lang.rst:183
msgid ""
"``language_strings(localize)`` -- return the `language names "
"<https://www.loc.gov/standards/iso639-2/php/code_list.php>`_ for the "
"`language codes <https://www.loc.gov/standards/iso639-2/php/code_list.php>`_"
" passed in as the value. Example: ``{languages:language_strings()}``.  If "
"``localize`` is zero, return the strings in English. If ``localize`` is not "
"zero, return the strings in the language of the current locale. "
"``Lang_codes`` is a comma-separated list."
msgstr "``language_strings(локалізація)`` — повертає `назви мов <https://www.loc.gov/standards/iso639-2/php/code_list.php>`_ для `кодів мовs <https://www.loc.gov/standards/iso639-2/php/code_list.php>`_, які передано як значення. Приклад: ``{languages:language_strings()}``. Якщо `локалізація` дорівнює нулеві, повертає рядки англійською. Якщо ``локалізація`` не дорівнює нулеві, повертає рядки мовою поточної локалі. Значення ``коди_мов`` є списком значень, які відокремлено комами."

#: ../../__w/calibre/calibre/manual/template_lang.rst:184
msgid ""
"``list_item(index, separator)`` -- interpret the value as a list of items "
"separated by ``separator``, returning the 'index'th item. The first item is "
"number zero. The last item has the index ``-1`` as in "
"``list_item(-1,separator)``. If the item is not in the list, then the empty "
"string is returned."
msgstr "``list_item(номер, роздільник) — обробляє значення як список пунктів, відокремлених роздільником «роздільник», повертає пункт з номером «номер». Перший пункт має номер нуль. Останній з пунктів має індекс ``-1``, як у «list_item(-1, роздільник)». Якщо пункту немає у списку, буде повернуто порожній рядок."

#: ../../__w/calibre/calibre/manual/template_lang.rst:185
msgid ""
"``lookup([ pattern, key, ]* else_key)`` -- The patterns will be checked "
"against the value in order. If a pattern matches then the value of the field"
" named by ``key`` is returned. If no pattern matches then the value of the "
"field named by ``else_key`` is returned. See``switch`` (below)."
msgstr "``lookup([ взірець, ключ, ]* інший_ключ)`` — буде виконано встановлення відповідності значення взірцям за порядком. Якщо взірець є відповідним, буде повернуто значення поля, яке вказано назвою ``key``. Якщо взірець не є відповідним, буде повернуто значення поля ``інший_ключ``. Див.``switch`` (нижче)."

#: ../../__w/calibre/calibre/manual/template_lang.rst:186
msgid "``lowercase()`` -- returns the value of the field in lower case."
msgstr "``lowercase()`` — повертає значення поля малими літерами."

#: ../../__w/calibre/calibre/manual/template_lang.rst:187
msgid ""
"``rating_to_stars(use_half_stars)`` -- Returns the rating as string of star "
"(``★``) characters. The value must be a number between 0 and 5. Set "
"use_half_stars to 1 if you want half star characters for fractional numbers "
"available with custom ratings columns."
msgstr "``rating_to_stars(використання_пів_зірок)`` — повертає оцінку як рядок з символів зірок (``★``). Значення має бути числом від 0 до 5. Встановіть значення використання_пів_зірок рівним 1, якщо ви хочете, щоб у стовпчиках нетипових оцінок, було показано символи пів зірок для нецілих оцінок."

#: ../../__w/calibre/calibre/manual/template_lang.rst:188
msgid ""
"``re(pattern, replacement)`` -- return the value after applying the regular "
"expression. All instances of ``pattern`` in the value are replaced with "
"``replacement``. The template language uses case insensitive `Python regular"
" expressions <https://docs.python.org/3/library/re.html>`_."
msgstr "``re(взірець, замінник)`` — повертає значення після застосування формального виразу. Усі екземпляри ``взірця`` у значенні буде замінено на ``замінник``. У мові шаблонів використано `формальні вирази Python <https://docs.python.org/3/library/re.html>`_ без врахування регістру символів."

#: ../../__w/calibre/calibre/manual/template_lang.rst:189
msgid ""
"``select(key)`` -- interpret the value as a comma-separated list of items "
"with each item having the form ``id:value`` (the calibre ``identifier`` "
"format). The function finds the first pair with the id equal to key and "
"returns the corresponding value. If no id matches then the function returns "
"the empty string."
msgstr "``select(ключ)`` — обробляє значення як список записів, які відокремлено комами. Кожен запис має форму ``ідентифікатор:значення`` (форма ``identifier`` calibre). Функція знаходить першу пару із ідентифікатором, який рівний ключеві, і повертає відповідне значення. Якщо відповідних ідентифікаторів не буде виявлено, функція поверне порожній рядок."

#: ../../__w/calibre/calibre/manual/template_lang.rst:190
msgid ""
"``shorten(left chars, middle text, right chars)`` -- Return a shortened "
"version of the value, consisting of ``left chars`` characters from the "
"beginning of the value, followed by ``middle text``, followed by ``right "
"chars`` characters from the end of the value. ``Left chars`` and ``right "
"chars`` must be non-negative integers. Example: assume you want to display "
"the title with a length of at most 15 characters in length. One template "
"that does this is ``{title:shorten(9,-,5)}``. For a book with the title "
"`Ancient English Laws in the Times of Ivanhoe` the result will be `Ancient "
"E-anhoe`: the first 9 characters of the title, a ``-``, then the last 5 "
"characters. If the value's length is less than ``left chars`` + ``right "
"chars`` + the length of ``middle text`` then the value will be returned "
"unchanged. For example, the title `The Dome` would not be changed."
msgstr "``shorten(символи ліворуч, текст посередині, символи праворуч)`` — повертає скорочену версію значення, яка складається із вказаної кількості ``символи ліворуч`` символів на початку значення, далі з ``тексту посередині``, і далі кількості ``символи праворуч`` символів наприкінці значення. ``Символи ліворуч`` і ``символи праворуч`` мають бути невід'ємними цілими значеннями. Приклад: припустімо, ви хочете показати заголовок довжиною не більше 15 символів у довжину. Одним шаблоном, який виконує це завдання є ``{title:shorten(9,-,5)}``. Для книги із заголовком `Ancient English Laws in the Times of Ivanhoe` результатом буде `Ancient E-anhoe`: перші 9 символів заголовка, ``-``, далі останні 5 символів. Якщо довжина значення є меншою за ``символи ліворуч`` + ``символи праворуч`` + довжина ``текст посередині``, значення буде повернуто без змін. Наприклад, заголовок `The Dome` не буде змінено."

#: ../../__w/calibre/calibre/manual/template_lang.rst:191
msgid ""
"``str_in_list(separator, [ string, found_val, ]+ not_found_val)`` -- "
"interpret the value as a list of items separated by ``separator`` then "
"compare ``string`` against each value in the list. The ``string`` is not a "
"regular expression. If ``string`` is equal to any item (ignoring case) then "
"return the corresponding ``found_val``. If ``string`` contains "
"``separators`` then it is also treated as a list and each subvalue is "
"checked. The ``string`` and ``found_value`` pairs can be repeated as many "
"times as desired, permitting returning different values depending on "
"string's value. If none of the strings match then ``not_found_value`` is "
"returned. The strings are checked in order. The first match is returned."
msgstr "``str_in_list(роздільник, [ рядок, значення_якщо_знайдено, ]* значення_якщо_не_знайдено)`` — обробити значення як список записів, які відокремлено символом ``роздільник``, потім порівняти ``рядок`` із кожним значенням у списку. Значення ``рядок`` не є формальним виразом. Якщо ``рядок`` дорівнює будь-якому запису (без врахування регістру символів), повертає відповідне ``значення_якщо_знайдено``. Якщо ``рядок`` містить ``роздільник``, його також буде оброблено як список із перевіркою для кожного із вбудованих значень. Можна вказати довільнй кількість пар ``рядок`` і ``значення_якщо_знайдено``, що дає змогу повертати різні значення, залежно від значення рядка. Якщо не буде встановлено відповідності жодному з рядків, буде повернуто ``значення_якщо_не_знайдено``. Перевірка рядків виконується у вказаному порядку. Повернуто буде перший з відповідників."

#: ../../__w/calibre/calibre/manual/template_lang.rst:192
msgid ""
"``subitems(start_index, end_index)`` -- This function breaks apart lists of "
"tag-like hierarchical items such as genres. It interprets the value as a "
"comma-separated list of tag-like items, where each item is a period-"
"separated list. It returns a new list made by extracting from each item the "
"components from ``start_index`` to ``end_index``, then merging the results "
"back together. Duplicates are removed. The first subitem in a period-"
"separated list has an index of zero. If an index is negative then it counts "
"from the end of the list. As a special case, an end_index of zero is assumed"
" to be the length of the list."
msgstr "``subitems(значення, початковий_номер, кінцевий_номер)`` — цією функцією користуються для розбиття списків пунктів, зокрема списків жанрів. Функція обробляє значення як відокремлений комами список записів, у якому кожен з записів є відокремленим крапками списком. Повертає новий список, створений видобуванням з кожного запису компонентів від номера ``початковий_номер`` до ``кінцевий_номер``. Потім всі видобуті записи знову буде поєднано для отримання результату. Дублікати буде вилучено. Перший компонент у відокремленому крапками списку матиме номер нуль. Якщо номер буде від'ємним, його буде відраховано від кінця списку. Якщо буде вказано ``кінцевий_номер`` рівний нулеві, номер вважатиметься кінцевим у списку."

#: ../../__w/calibre/calibre/manual/template_lang.rst:194
#: ../../__w/calibre/calibre/manual/template_lang.rst:414
msgid "Examples:"
msgstr "Приклади:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:196
msgid "Assuming a #genre column containing `A.B.C`:"
msgstr "Припускаючи, що стовпчик #genre містить `A.B.C`:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:198
msgid "``{#genre:subitems(0,1)}`` returns \"A\""
msgstr "``{#genre:subitems(0,1)}`` повертає \"A\""

#: ../../__w/calibre/calibre/manual/template_lang.rst:199
msgid "``{#genre:subitems(0,2)}`` returns \"A.B\""
msgstr "``{#genre:subitems(0,2)}`` повертає \"A.B\""

#: ../../__w/calibre/calibre/manual/template_lang.rst:200
msgid "``{#genre:subitems(1,0)}`` returns \"B.C\""
msgstr "``{#genre:subitems(1,0)}`` повертає \"B.C\""

#: ../../__w/calibre/calibre/manual/template_lang.rst:202
msgid "Assuming a #genre column containing \"A.B.C, D.E\":"
msgstr "Припускаючи, що стовпчик #genre містить \"A.B.C, D.E\":"

#: ../../__w/calibre/calibre/manual/template_lang.rst:204
msgid "``{#genre:subitems(0,1)}`` returns \"A, D\""
msgstr "``{#genre:subitems(0,1)}`` повертає \"A, D\""

#: ../../__w/calibre/calibre/manual/template_lang.rst:205
msgid "``{#genre:subitems(0,2)}`` returns \"A.B, D.E\""
msgstr "``{#genre:subitems(0,2)}`` повертає \"A.B, D.E\""

#: ../../__w/calibre/calibre/manual/template_lang.rst:207
msgid ""
"``sublist(start_index, end_index, separator)`` -- interpret the value as a "
"list of items separated by ``separator``, returning a new list made from the"
" items from ``start_index`` to ``end_index``. The first item is number zero."
" If an index is negative, then it counts from the end of the list. As a "
"special case, an end_index of zero is assumed to be the length of the list."
msgstr "``sublist(початковий_номер, кінцевий_номер, роздільник)`` — обробляє значення як список пунктів, відокремлених роздільником ``роздільник``, повертає новий список, створений з пунктів з номера ``початковий_номер`` до номера ``кінцевий_номер``. Перший пункт має нульовий номер. Якщо вказано від'ємний номер, його буде відраховано від кінця списку. Якщо буде вказано ``кінцевий_номер`` рівний нулеві, номер вважатиметься кінцевим у списку."

#: ../../__w/calibre/calibre/manual/template_lang.rst:209
msgid ""
"Examples assuming that the tags column (which is comma-separated) contains "
"\"A, B ,C\":"
msgstr "Приклад, у яких припускаємо, що у стовпчику міток (значення відокремлено комами) міститься запис «A, B ,C»:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:211
msgid "``{tags:sublist(0,1,\\,)}`` returns \"A\""
msgstr "``{tags:sublist(0,1,\\,)}`` повертає \"A\""

#: ../../__w/calibre/calibre/manual/template_lang.rst:212
msgid "``{tags:sublist(-1,0,\\,)}`` returns \"C\""
msgstr "``{tags:sublist(-1,0,\\,)}`` повертає \"C\""

#: ../../__w/calibre/calibre/manual/template_lang.rst:213
msgid "``{tags:sublist(0,-1,\\,)}`` returns \"A, B\""
msgstr "``{tags:sublist(0,-1,\\,)}`` повертає \"A, B\""

#: ../../__w/calibre/calibre/manual/template_lang.rst:215
msgid ""
"``swap_around_articles(separator)`` -- returns the value with articles moved"
" to the end. The value can be a list, in which case each item in the list is"
" processed. If the value is a list then you must provide the ``separator``. "
"If no ``separator`` is provided then the value is treated as being a single "
"value, not a list. The `articles` are those used by calibre to generate the "
"``title_sort``."
msgstr "``swap_around_articles(роздільник)`` — повертає значення із артиклями, які пересунуто в кінець. Значенням може бути список, елементи якого буде оброблено окремо. Якщо значенням є список, вам слід вказати ``роздільник`` значень у списку. Якщо значення ``роздільник`` вказано не буде, значення вважатиметься одним рядком, а не списком. `Артиклями` вважаються рядки, які використовуються calibre для створення ``title_sort``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:216
msgid ""
"``swap_around_comma()`` -- given a value of the form ``B, A``, return ``A "
"B``. This is most useful for converting names in LN, FN format to FN LN. If "
"there is no comma in the value then the function returns the value "
"unchanged."
msgstr "``swap_around_comma(значення)`` — за заданими значеннями у форматі ``B, A`` повертає значення ``A B``. Найкорисніше для перетворення імен у форматі «Прізвище, Ім'я» на імена у форматі «Ім'я Прізвище». Якщо коми у значенні не буде виявлено, функція поверне значення без змін."

#: ../../__w/calibre/calibre/manual/template_lang.rst:217
msgid ""
"``switch([pattern, value,]+ else_value)`` -- for each ``pattern, value`` "
"pair, checks if the value matches the regular expression ``pattern`` and if "
"so returns the associated ``value``. If no ``pattern`` matches, then "
"``else_value`` is returned. You can have as many ``pattern, value`` pairs as"
" you wish. The first match is returned."
msgstr "``switch([взірець, значення,]+ інше_значення) — для кожної пари ``взірець, значення`` перевіряє, чи відповідає поле формальному виразу ``взірець``. Якщо це так, повертає «значення». Якщо відповідності з взірцем не буде знайдено, буде повернено «інше_значення». Можна визначати довільну кількість пар ``взірець, значення``. Буде повернуто перший з відповідників."

#: ../../__w/calibre/calibre/manual/template_lang.rst:218
msgid ""
"``test(text if not empty, text if empty)`` -- return ``text if not empty`` "
"if the value is not empty, otherwise return ``text if empty``."
msgstr "``test(текст для непорожнього, текст для порожнього)`` — повертає «текст для непорожнього», якщо значення не є порожнім. Якщо це не так, повертає ``текст для порожнього``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:219
msgid "``titlecase()`` -- returns the value of the field in title case."
msgstr "``titlecase()`` — повертає значення поля так, щоб великі літери у результаті використовувалися відповідно до правил щодо заголовків в англійській мові."

#: ../../__w/calibre/calibre/manual/template_lang.rst:220
msgid ""
"``transliterate()`` -- Return a string in a latin alphabet formed by "
"approximating the sound of the words in the source field. For example, if "
"the source field is ``Фёдор Миха́йлович Достоевский`` this function returns "
"``Fiodor Mikhailovich Dostoievskii``."
msgstr "``transliterate()`` — повертає рядок латинською абеткою, який сформовано на основі приблизного звучання слів у полі джерела даних. Наприклад, якщо у полі джерела даних міститься запис ``Фёдор Миха́йлович Достоевский``, ця функція поверне ``Fiodor Mikhailovich Dostoievskii``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:221
msgid "``uppercase()`` -- returns the value of the field in upper case."
msgstr "``uppercase()`` — повертає значення поля великими літерами."

#: ../../__w/calibre/calibre/manual/template_lang.rst:223
msgid "**Using functions and formatting in the same template**"
msgstr "**Використання функцій і форматування у одному шаблоні**"

#: ../../__w/calibre/calibre/manual/template_lang.rst:225
msgid ""
"Suppose you have an integer custom column ``#myint`` that you want displayed"
" with leading zeros, as in ``003``. One way to do this is to use a format of"
" ``0>3s``. However, by default if a number (integer or float) equals zero "
"then the value is displayed as the empty string so zero values will produce "
"the empty string, not ``000``. If you want to see ``000`` values then you "
"use both the format string and the ``ifempty`` function to change the empty "
"value back to a zero. The template would be::"
msgstr "Припустімо, у нас є нетиповий стовпчик із назвою ``#myint``, у якому містяться цілі числа. Вам потрібно представити їх у форматі із початковими нулями, ось так: ``003``. Для цього можна було б скористатися форматуванням ``0>3s``. Втім, типово, якщо число (ціле або дійсне) дорівнює нулеві, значення буде показано як порожній рядок. Отже, нульові значення початкові значення призводитимуть до порожніх рядків, а не до записів ``000``. Якщо вам потрібні саме значення ``000``, вам слід скористатися одразу і рядком форматування, і функцією ``ifempty`` для заміни порожнього значення на нульове. Шаблон може бути таким::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:229
msgid ""
"Note that you can use the prefix and suffix as well. If you want the number "
"to appear as ``[003]`` or ``[000]``, then use the template::"
msgstr "Зауважте, що ви можете також використовувати префікс і суфікс. Якщо ви хочете, щоб число було показано як ``[003]`` або ``[000]``, скористайтеся таким шаблоном::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:236
msgid "General Program Mode"
msgstr "Загальний режим програмування"

#: ../../__w/calibre/calibre/manual/template_lang.rst:238
msgid ""
"`General Program Mode` (`GPM`) replaces `template expressions` with a "
"program written in the `template language`. The syntax of the language is "
"defined by the following grammar::"
msgstr "`Загальний режим програмування замінює `вирази шаблонів` програмою, яку написано `мовою шаблонів`. Синтаксис мови визначено такою граматикою::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:288
msgid ""
"a ``top_expression`` always has a value. The value of an ``expression_list``"
" is the value of the last ``top_expression`` in the list. For example, the "
"value of the expression list ``1;2;'foobar';3`` is ``3``."
msgstr "``top_expression`` завжди має значення. Значення ``expression_list`` є значенням останнього ``top_expression`` у списку. Наприклад, значення списку виразів ``1;2;'foobar';3`` дорівнює ``3``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:289
msgid "In a logical context, any non-empty value is ``True``"
msgstr "У логічному контексті будь-яке непорожнє значення дорівнює ``True``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:290
msgid "In a logical context, the empty value is ``False``"
msgstr "У логічному контексті порожнє значення дорівнює ``False``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:291
msgid ""
"Strings and numbers can be used interchangeably. For example, ``10`` and "
"``'10'`` are the same thing."
msgstr "Рядки і числа можна використовувати на рівних правах. Наприклад, ``10`` і ``'10'`` є тим самим значенням."

#: ../../__w/calibre/calibre/manual/template_lang.rst:292
msgid ""
"Comments are lines starting with a '#' character. Comments beginning later "
"in a line are not supported."
msgstr "Коментарями вважаються усі рядки, на початку яких є символ «#». Підтримки коментарів, які починаються не з першого символу рядка, не передбачено."

#: ../../__w/calibre/calibre/manual/template_lang.rst:294
msgid "**Operator precedence**"
msgstr "**Пріоритетність операторів**"

#: ../../__w/calibre/calibre/manual/template_lang.rst:296
msgid ""
"The operator precedence (order of evaluation) from highest (evaluated first)"
" to lowest (evaluated last) is:"
msgstr "Пріоритетність операторів (порядок обчислення), від найвищої (обчислюються першими) до найнижчої (обчислюються останніми):"

#: ../../__w/calibre/calibre/manual/template_lang.rst:298
msgid ""
"Function calls, constants, parenthesized expressions, statement expressions,"
" assignment expressions, field references."
msgstr "Виклики функцій, сталі, вирази у дужках, вирази інструкцій, вирази надання значення, посилання на поля."

#: ../../__w/calibre/calibre/manual/template_lang.rst:299
msgid ""
"Unary plus (``+``) and minus (``-``). These operators evaluate right to "
"left."
msgstr "Унарні плюс (``+``) і мінус (``-``). Обчислення для цих операторів виконується справа ліворуч."

#: ../../__w/calibre/calibre/manual/template_lang.rst:301
msgid ""
"These and all the other arithmetic operators return integers if the "
"expression results in a fractional part equal to zero. For example, if an "
"expression returns ``3.0`` it is changed to ``3``."
msgstr "Ці і усі інші арифметичні операції повертають цілі числа, якщо обчислення виразу призводить до числа із дробовою частиною, яка рівна нулеві. Приклад: якщо результатом обчислення виразу є ``3.0``, його буде замінено на ``3``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:302
msgid ""
"Multiply (``*``) and divide (``/``). These operators are associative and "
"evaluate left to right. Use parentheses if you want to change the order of "
"evaluation."
msgstr "Множення (``*``) і ділення (``/``). Ці дії є асоціативними і обчислюються зліва праворуч. Скористайтеся дужками, якщо ви хочете змінити порядок обчислення."

#: ../../__w/calibre/calibre/manual/template_lang.rst:303
msgid ""
"Add (``+``) and subtract (``-``). These operators are associative and "
"evaluate left to right."
msgstr "Додавання (``+``) і віднімання (``-``). Ці дії є асоціативними, обчислення виконується зліва праворуч."

#: ../../__w/calibre/calibre/manual/template_lang.rst:304
msgid ""
"Numeric and string comparisons. These operators return ``'1'`` if the "
"comparison succeeds, otherwise the empty string (``''``). Comparisons are "
"not associative: ``a < b < c`` is a syntax error."
msgstr "Порівняння чисел і рядків. Ці оператори повертають ``'1'``, якщо порівняння справджується, інакше повертають порожній рядок (``''``). Порівняння не є асоціативними: ``a < b < c`` — синтаксична помилка."

#: ../../__w/calibre/calibre/manual/template_lang.rst:305
msgid ""
"String concatenation (``&``). The ``&`` operator returns a string formed by "
"concatenating the left-hand and right-hand expressions. Example: ``'aaa' & "
"'bbb'`` returns ``'aaabbb'``. The operator is associative and evaluates left"
" to right."
msgstr "Поєднання рядків (``&``). Оператор ``&`` повертає рядок, який сформовано об'єднанням виразів ліворуч і праворуч від нього. Приклад: ``'aaa' & 'bbb'`` повертає ``'aaabbb'``. Оператор є асоціативним і обчислюється зліва праворуч."

#: ../../__w/calibre/calibre/manual/template_lang.rst:306
msgid ""
"Unary logical not (``!``). This operator returns ``'1'`` if the expression "
"is False (evaluates to the empty string), otherwise ``''``."
msgstr "Унарне логічне заперечення (``!``). Цей оператор повертає ``'1'``, якщо вираз не є істинним (є порожнім рядком), інакше повертає ``''``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:307
msgid ""
"Logical and (``&&``). This operator returns '1' if both the left-hand and "
"right-hand expressions are True, or the empty string ``''`` if either is "
"False. It is associative, evaluates left to right, and does `short-"
"circuiting <https://chortle.ccsu.edu/java5/Notes/chap40/ch40_2.html>`_."
msgstr "Логічне «І» (``&&``). Цей оператор повертає '1', якщо вирази ліворуч і праворуч від нього є істинними, або порожній рядок ``''``, якщо хоча б одне з тверджень ліворуч і праворуч є хибним. Оператор є асоціативним, обчислюється зліва праворуч, і має властивість `скороченого обчислення <https://chortle.ccsu.edu/java5/Notes/chap40/ch40_2.html>`_."

#: ../../__w/calibre/calibre/manual/template_lang.rst:308
msgid ""
"Logical or (``||``). This operator returns ``'1'`` if either the left-hand "
"or right-hand expression is True, or ``''`` if both are False. It is "
"associative, evaluates left to right, and does `short-circuiting "
"<https://chortle.ccsu.edu/java5/Notes/chap40/ch40_2.html>`_. It is an "
"`inclusive or`, returning ``'1'`` if both the left- and right-hand "
"expressions are True."
msgstr "Логічне «АБО» (``||``) Цей оператор повертає ``'1'``, якщо твердження ліворуч або праворуч від нього є істинним, або ``''``, якщо обидва твердження є хибними. Є асоціативним, обчислюється зліва праворуч і має властивість `скороченого обчислення <https://chortle.ccsu.edu/java5/Notes/chap40/ch40_2.html>`_. Оператор є інклюзивним «АБО», тобто повертає ``'1'``, якщо вирази праворуч і ліворуч від нього є істинними."

#: ../../__w/calibre/calibre/manual/template_lang.rst:310
msgid "**Field references**"
msgstr "**Посилання на поля**"

#: ../../__w/calibre/calibre/manual/template_lang.rst:312
msgid ""
"A ``field_reference`` evaluates to the value of the metadata field named by "
"lookup name that follows the ``$`` or ``$$``. Using ``$`` is equivalent to "
"using the ``field()`` function. Using ``$$`` is equivalent to using the "
"``raw_field`` function. Examples::"
msgstr "Інструкцію ``field_reference`` буде замінено значенням поля метаданих, яке має назву пошуку, яку вказано після ``$`` або ``$$``. Використання ``$`` є еквівалентне до використання функції ``field()``. Використання ``$$`` є еквівалентним до використання функції ``raw_field``. Приклади::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:319
msgid "**If expressions**"
msgstr "**Вирази if**"

#: ../../__w/calibre/calibre/manual/template_lang.rst:321
msgid ""
"``If`` expressions first evaluate the ``condition``. If the ``condition`` is"
" True (a non-empty value) then the ``expression_list`` in the ``then`` "
"clause is evaluated. If it is False then if present the ``expression_list`` "
"in the ``elif`` or ``else`` clause is evaluated. The ``elif`` and ``else`` "
"parts are optional. The words ``if``, ``then``, ``elif``, ``else``, and "
"``fi`` are reserved; you cannot use them as identifier names. You can put "
"newlines and white space wherever they make sense. The ``condition`` is a "
"``top_expression`` not an ``expression_list``; semicolons are not allowed. "
"The ``expression_lists`` are semicolon-separated sequences of "
"``top_expressions``. An ``if`` expression returns the result of the last "
"``top_expression`` in the evaluated ``expression_list``, or the empty string"
" if no expression list was evaluated."
msgstr "У виразах ``if`` спочатку обчислюється ``умова``. Якщо ``умова`` справджується (обчислення дають непорожнє значення), обчислюється ``expression_list`` у інструкції ``then````. Якщо умова не справджується, обчислюється, якщо є, ``expression_list`` у інструкції ``elif`` або ``else``, якщо існують такі інструкції. Частини ``elif`` і ``else`` є необов'язковими. Слова ``if``, ``then``, ``elif``, ``else`` і ``fi`` є зарезервованими, ви не можете використовувати їх як назви ідентифікаторів. Ви можете вставляти розриви рядків та пробіли там, де захочете. Запис ``condition`` є ``top_expression``, а не ``expression_list``; не можна використовувати крапку з комою. Набори ``expression_lists`` є розділеними крапками з комами послідовності ``top_expression``. Вираз ``if`` повертає результат останнього ``top_expression`` у обчисленому ``expression_list`` або порожній рядок, якщо жодного списку виразів не було обчислено."

#: ../../__w/calibre/calibre/manual/template_lang.rst:323
msgid "Examples::"
msgstr "Приклади::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:336
msgid "Nested ``if`` example::"
msgstr "Приклад вкладеного``if``::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:349
msgid ""
"As said above, an ``if`` produces a value. This means that all the following"
" are equivalent::"
msgstr "Як ми вже згадували вище, ``if`` дає значення. Це означає, що усі вказані нижче інструкції є еквівалентними::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:355
msgid ""
"As a last example, this program returns the value of the ``series`` column "
"if the book has a series, otherwise the value of the ``title`` column::"
msgstr "Нарешті, приклад програми, яка повертає значення у стовпчику ``series``, якщо книга належить до циклу, інакше повертає значення стовпчика ``title``::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:359
msgid "**For expressions**"
msgstr "**Вирази for**"

#: ../../__w/calibre/calibre/manual/template_lang.rst:361
msgid ""
"The ``for`` expression iterates over a list of values, processing them one "
"at a time. The ``list_expression`` must evaluate either to a metadata field "
"``lookup name`` e.g., ``tags`` or ``#genre``, or to a list of values. The "
":ref:`range() function <range_function>` (see below) generates a list of "
"numbers. If the result is a valid ``lookup name`` then the field's value is "
"fetched and the separator specified for that field type is used. If the "
"result isn't a valid lookup name then it is assumed to be a list of values. "
"The list is assumed to be separated by commas unless the optional keyword "
"``separator`` is supplied, in which case the list values must be separated "
"by the result of evaluating the ``separator_expr``. A separator cannot be "
"used if the list is generated by ``range()``. Each value in the list is "
"assigned to the specified variable then the ``expression_list`` is "
"evaluated. You can use ``break`` to jump out of the loop, and ``continue`` "
"to jump to the beginning of the loop for the next iteration."
msgstr "Вираз ``for`` виконує ітерацію за списком значень, обробляючи їх по одному за раз. Вираз ``list_expression`` має оброблятися до ``назви для пошуку`` поля метаданих, наприклад ``tags`` або ``#genre``, або списку значень. Функція :ref:`range() <range_function>` (див. нижче) створює список чисел. Якщо результат є коректною ``назвою для пошуку``, отримується значення поля. Використовується роздільник, вказаний для відповідного типу поля. Якщо результат не є коректною назвою для пошуку, припускається, що це список значень. Припускається, що значення у списку розділено комами, якщо не вказано необов'язкове ключове слово ``separator``. Якщо ключове слово вказано, значення у списку має бути відокремлено результатом обчислення ``separator_expr``. Роздільник не можна використовувати, якщо список створено за допомогою ``range()``. Кожне зі значень у списку надається вказаній змінній, а потім обчислюється ``expression_list``. Ви можете скористатися ``break`` для виходу з циклу і ``continue`` для переходу на початок циклу для наступної ітерації."

#: ../../__w/calibre/calibre/manual/template_lang.rst:363
msgid ""
"Example: This template removes the first hierarchical name for each value in"
" Genre (``#genre``), constructing a list with the new names::"
msgstr "Приклад: цей шаблон вилучає першу ієрархічну назву для кожного значення у полі «Жанр» (``#genre``), будуючи список із новими назвами::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:373
msgid ""
"If the original Genre is `History.Military, Science Fiction.Alternate "
"History, ReadMe` then the template returns `Military, Alternate History, "
"ReadMe`. You could use this template in calibre's :guilabel:`Edit metadata "
"in bulk -> Search & replace` with :guilabel:`Search for` set to ``template``"
" to strip off the first level of the hierarchy and assign the resulting "
"value to Genre."
msgstr "Якщо початковим значенням поля «Жанр» було `History.Military, Science Fiction.Alternate History, ReadMe`, шаблон поверне `Military, Alternate History, ReadMe`. Ви можете скористатися цим шаблоном в інструменті calibre :guilabel:`Пакетне редагування метаданих -> Пошук із заміною` ^ у полі :guilabel:`Шукати` слід вказати ``шаблон`` для вилучення першого рівня ієрархії і визначення значення-результату для поля «Жанр»."

#: ../../__w/calibre/calibre/manual/template_lang.rst:376
msgid ""
"Note: the last line in the template, ``new_tags``, isn't strictly necessary "
"in this case because ``for`` returns the value of the last top_expression in"
" the expression list. The value of an assignment is the value of its "
"expression, so the value of the ``for`` statement is what was assigned to "
"``new_tags``."
msgstr "Зауваження: останній рядок у шаблоні, ``new_tags``, у цьому випадку не є строго обов'язковим, оскільки ``for`` повертає значення останнього top_expression у списку виразів. Значенням виразу надання значення є значення виразу, тому значенням інструкції ``for`` є те, що записано до ``new_tags``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:378
msgid "**Function definition**"
msgstr "**Визначення функції**"

#: ../../__w/calibre/calibre/manual/template_lang.rst:380
msgid ""
"If you have code in a template that repeats then you can put that code into "
"a local function. The ``def`` keyword starts the definition. It is followed "
"by the function name, the argument list, then the code in the function. The "
"function definition ends with the ``fed`` keyword."
msgstr "Якщо у вашому шаблоні є код, який слід виконувати декілька разів, ви можете розмістити цей код у локальній функції. Визначення функції слід розпочинати з ключового слова ``def``. Після нього слід вказати назву функції, список аргументів, а потім код функції. Визначення функції завершується ключовим словом ``fed``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:382
msgid ""
"Arguments are positional. When a function is called the supplied arguments "
"are matched left to right against the defined parameters, with the value of "
"the argument assigned to the parameter. It is an error to provide more "
"arguments than defined parameters. Parameters can have default values, such "
"as ``a = 25``. If an argument is not supplied for that parameter then the "
"default value is used, otherwise the parameter is set to the empty string."
msgstr "Аргументи є позиційними. Під час виклику функції надані аргументи заміщують собою зліва праворуч визначені параметри, значення аргументу стає значенням параметра. Надання більшої за кількість визначених параметрів кількості аргументів вважається помилкою. Параметри можуть мати типові значення, наприклад, ``a = 25``. Якщо для параметра не надано аргументу, буде використано типове значення. Якщо такого типового значення немає, буде використано порожній рядок."

#: ../../__w/calibre/calibre/manual/template_lang.rst:384
msgid "The ``return`` statement can be used in a local function."
msgstr "У локальній функції можна скористатися інструкцією ``return``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:386
msgid "A function must be defined before it can be used."
msgstr "Перш ніж функцією можна буде скористатися, її слід визначити."

#: ../../__w/calibre/calibre/manual/template_lang.rst:388
msgid ""
"Example: This template computes an approximate duration in years, months, "
"and days from a number of days. The function ``to_plural()`` formats the "
"computed values. Note that the example also uses the ``&`` operator::"
msgstr "Приклад: цей шаблон обчислює приблизну тривалість періоду часу у роках, місяцях та днях на основі кількості днів. Для форматування обчислених значень використано функцію ``to_plural()``. Зауважте, що у прикладі також використано оператор ``&``::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:403
msgid "**Relational operators**"
msgstr "**Оператори відношень**"

#: ../../__w/calibre/calibre/manual/template_lang.rst:405
msgid ""
"Relational operators return ``'1'`` if the comparison is true, otherwise the"
" empty string ('')."
msgstr "Оператори відношень повертають ``'1'``, якщо порівняння справджується, інакше повертають порожній рядок ('')."

#: ../../__w/calibre/calibre/manual/template_lang.rst:407
msgid ""
"There are two forms of relational operators: string comparisons and numeric "
"comparisons."
msgstr "Реалізовано дві форми операторів відношень: порівняння рядків і порівняння чисел."

#: ../../__w/calibre/calibre/manual/template_lang.rst:409
msgid ""
"String comparisons do case-insensitive string comparison using lexical "
"order. The supported string comparison operators are ``==``, ``!=``, ``<``, "
"``<=``, ``>``, ``>=``, ``in``, and ``inlist``. For the ``in`` operator, the "
"result of the left hand expression is interpreted as a regular expression "
"pattern. The ``in`` operator is True if the value of left-hand regular "
"expression matches the value of the right hand expression. The ``inlist`` "
"operator is true if the left hand regular expression matches any one of the "
"items in the right hand list where the items in the list are separated by "
"commas. The matches are case-insensitive."
msgstr "Порівняння рядків є порівнянням рядків без врахування регістру символів із використанням лексичного порядку. Підтримуваними операторами порівняння рядків є ``==``, ``!=``, ``<``, ``<=``, ``>``, ``>=``, ``in`` та ``inlist``. Для оператора ``in`` результат обчислення лівого операнда вважається формальним виразом взірця. Результатом обчислення ``in`` є True, якщо взірець у лівого операнда відповідає значенню правого операнда. Значенням оператора ``inlist`` є true, якщо формальний вираз ліворуч від нього відповідає будь-якому із записів операнда праворуч від нього; записи слід відокремлювати комами. Відповідність встановлюється без врахування регістру символів."

#: ../../__w/calibre/calibre/manual/template_lang.rst:412
msgid ""
"The numeric comparison operators are ``==#``, ``!=#``, ``<#``, ``<=#``, "
"``>#``, ``>=#``. The left and right expressions must evaluate to numeric "
"values with two exceptions: both the string value \"None\" (undefined field)"
" and the empty string evaluate to the value zero."
msgstr "Операторами числового порівняння є ``==#``, ``!=#``, ``<#``, ``<=#``, ``>#``, ``>=#``. Результатом обчислення лівого і правого операндів мають бути числові значення з двома виключеннями: рядкове значення \"None\" (невизначене поле) і порожнє значення вважаються рівними нулеві."

#: ../../__w/calibre/calibre/manual/template_lang.rst:416
msgid ""
"``program: field('series') == 'foo'`` returns ``'1'`` if the book's series "
"is 'foo', otherwise ``''``."
msgstr "``program: field('series') == 'foo'`` повертає ``'1'``, якщо циклом книги є 'foo', інакше повертає ``''``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:417
msgid ""
"``program: 'f.o' in field('series')`` returns ``'1'`` if the book's series "
"matches the regular expression ``f.o`` (e.g., `foo`, `Off Onyx`, etc.), "
"otherwise ``''``."
msgstr "``program: 'f.o' in field('series')`` повертає ``'1'``, якщо цикл книги відповідає формальному виразу ``f.o`` (наприклад, `foo`, `Off Onyx` тощо), інакше повертає ``''``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:418
msgid ""
"``program: 'science' inlist field('#genre')`` returns ``'1'`` if any of the "
"book's genres match the regular expression ``science``, e.g., `Science`, "
"`History of Science`, `Science Fiction` etc., otherwise ``''``."
msgstr "``program: 'science' inlist field('#genre')`` повертає ``'1'``, якщо будь-який із записів жанрів книги відповідає формальному виразу ``science``, наприклад, `Science`, `History of Science`, `Science Fiction` тощо). У інших випадках буде повернуто ``''``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:419
msgid ""
"``program: '^science$' inlist field('#genre')`` returns ``'1'`` if any of "
"the book's genres exactly match the regular expression ``^science$``, e.g., "
"`Science`. The genres `History of Science` and `Science Fiction` don't "
"match. If there isn't a match then returns ``''``."
msgstr "``program: '^science$' inlist field('#genre')`` повертає ``'1'``, якщо будь-який із записів жанрів книги точно відповідає формальному виразу ``^science$``, наприклад, `Science`. Жанри `History of Science` і `Science Fiction` вважаються невідповідними. Якщо відповідність не буде встановлено, програма поверне ``''``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:420
msgid ""
"``program: if field('series') != 'foo' then 'bar' else 'mumble' fi`` returns"
" ``'bar'`` if the book's series is not ``foo``. Otherwise it returns "
"``'mumble'``."
msgstr "``program: if field('series') != 'foo' then 'bar' else 'mumble' fi`` повертає ``'bar'``, якщо циклом книги не є ``foo``, інакше повертає ``mumble``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:421
msgid ""
"``program: if field('series') == 'foo' || field('series') == '1632' then "
"'yes' else 'no' fi`` returns ``'yes'`` if series is either ``'foo'`` or "
"``'1632'``, otherwise ``'no'``."
msgstr "``program: if field('series') == 'foo' || field('series') == '1632' then 'yes' else 'no' fi``  повертає ``yes``, якщо циклом є ``'foo'`` або ``'1632'``, інакше повертає ``no``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:422
msgid ""
"``program: if '^(foo|1632)$' in field('series') then 'yes' else 'no' fi`` "
"returns ``'yes'`` if series is either ``'foo'`` or ``'1632'``, otherwise "
"``'no'``."
msgstr "``program: if '^(foo|'1632)$' in field('series') then 'yes' else 'no' fi`` повертає ``'yes'``, якщо циклом є ``'foo'`` або ``'1632'``, інакше повертає ``'no'``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:423
msgid ""
"``program: if 11 > 2 then 'yes' else 'no' fi`` returns ``'no'`` because the "
"``>`` operator does a lexical comparison."
msgstr "``program: if 11 > 2 then 'yes' else 'no' fi`` повертає ``'no'``, оскільки оператор ``>`` виконує лексичне порівняння."

#: ../../__w/calibre/calibre/manual/template_lang.rst:424
msgid ""
"``program: if 11 ># 2 then 'yes' else 'no' fi`` returns ``'yes'`` because "
"the ``>#`` operator does a numeric comparison."
msgstr "``program: if 11 > 2 then 'yes' else 'no' fi`` повертає ``'yes'``, оскільки оператор ``>#`` виконує числове порівняння."

#: ../../__w/calibre/calibre/manual/template_lang.rst:426
msgid "**Additional available functions**"
msgstr "**Додаткові функції**"

#: ../../__w/calibre/calibre/manual/template_lang.rst:428
msgid ""
"The following functions are available in addition to those described in "
":ref:`Single Function Mode <single_mode>`."
msgstr "Окрім функцій, які описано у розділі :ref:`Режим єдиної функції <single_mode>`, можна скористатися описаними нижче функціями."

#: ../../__w/calibre/calibre/manual/template_lang.rst:430
msgid ""
"In `GPM` the functions described in `Single Function Mode` all require an "
"additional first parameter specifying the value to operate upon. All "
"parameters are expression_lists (see the grammar above)."
msgstr "У загальному режимі програмування функції, які описано для `режиму єдиної функції`, усі потребують додаткового першого параметра, який визначає значення, яке слід обробляти. Усі параметри належать до expression_lists (див. граматику вище)."

#: ../../__w/calibre/calibre/manual/template_lang.rst:432
msgid ""
"``add(x [, y]*)`` -- returns the sum of its arguments. Throws an exception "
"if an argument is not a number. In most cases you can use the ``+`` operator"
" instead of this function."
msgstr "``add(x [, y]*)`` — повертає суму своїх аргументів. Видає виключення, якщо аргумент не є числом. У більшості випадків ви можете скористатися замість цієї функції оператором ``+``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:433
msgid ""
"``and(value [, value]*)`` -- returns the string \"1\" if all values are not "
"empty, otherwise returns the empty string. You can have as many values as "
"you want. In most cases you can use the ``&&`` operator instead of this "
"function.  One reason not to replace ``and`` with ``&&`` is if short-"
"circuiting can change the results because of side effects. For example, "
"``and(a='',b=5)`` will always do both assignments, where the ``&&`` operator"
" won't do the second."
msgstr "``and(значення [, значення]*)`` — повертає рядок «1», якщо усі значення не є порожніми, інакше повертає порожній рядок. Кількість значень може бути довільною. У більшості випадків замість цієї функції можна скористатися оператором ``&&``. Однією з причин не замінювати ``and`` на ``&&`` є випадки, коли оптимізація обчислення може змінити результати через сторонні ефекти. Наприклад, ``and(a='',b=5)`` виконує обидва записи значень, а оператор ``&&`` не виконає другого з них."

#: ../../__w/calibre/calibre/manual/template_lang.rst:434
msgid ""
"``assign(id, val)`` -- assigns ``val`` to ``id``, then returns ``val``. "
"``id`` must be an identifier, not an expression. In most cases you can use "
"the ``=`` operator instead of this function."
msgstr "``assign(ідентифікатор, значення)`` — надає ідентифікатору ``значення``, потім повертає ``значення``. ``ідентифікатор`` має бути ідентифікатором, а не виразом. У більшості випадків можна замість цієї функції використовувати оператор ``=``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:435
msgid ""
"``approximate_formats()`` -- return a comma-separated list of formats "
"associated with the book. There is no guarantee that the list is correct, "
"although it probably is. This and other zero-parameter functions can be "
"called in Template Program Mode (see below) using the template "
"``{:'approximate_formats()'}``. Note that resulting format names are always "
"uppercase, as in EPUB. The ``approximate_formats()`` function is "
"significantly faster than the ``formats_...`` functions discussed below."
msgstr "``approximate_formats()`` — повернути розділений комами список форматів, які пов’язано з книгою. Гарантувати чинність такого списку не можна, хоча, ймовірно, він залишається чинним. Цю функцію та інші функції без параметрів можна викликати у режимі шаблонного програмування (див. нижче) за допомогою шаблона «{:'approximate_formats()'}». Зауважте, що назви форматів завжди слід вказувати великими літерами, ось так: EPUB. Функція ``approximate_formats()`` є значно швидшою за функції ``formats_...``, які описано нижче."

#: ../../__w/calibre/calibre/manual/template_lang.rst:436
msgid ""
"``author_links(val_separator, pair_separator)`` -- returns a string "
"containing a list of authors and those authors' link values in the form::"
msgstr "author_links(роздільник_значень, роздільник_пар) — повертає рядок, що містить список авторів з відповідними пов'язаними значеннями у такому форматі::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:440
msgid ""
"An author is separated from its link value by the ``val_separator`` string "
"with no added spaces. ``author:linkvalue`` pairs are separated by the "
"``pair_separator`` string argument with no added spaces. It is up to you to "
"choose separator strings that do not occur in author names or links. An "
"author is included even if the author link is empty."
msgstr "Запис автора буде відділено від пов'язаного із ним значення рядком ``роздільник_значень`` без додаткових пробілів. Пари ``автор:пов'язане значення`` буде відокремлено рядком ``роздільник_пар`` без додаткових пробілів. Ви можете вибирати рядки роздільників довільним чином, так, щоб вони не збігалися з іменами авторів або посиланнями. Запис автора буде включено, навіть якщо пов'язане з ним значення посилання є порожнім."

#: ../../__w/calibre/calibre/manual/template_lang.rst:441
msgid ""
"``author_sorts(val_separator)`` -- returns a string containing a list of "
"author's sort values for the authors of the book. The sort is the one in the"
" author metadata information (different from the author_sort in books). The "
"returned list has the form ``author sort 1`` ``val_separator`` ``author sort"
" 2`` etc. with no added spaces. The author sort values in this list are in "
"the same order as the authors of the book. If you want spaces around "
"``val_separator`` then include them in the ``val_separator`` string."
msgstr "``author_sorts(роздільник_значень)`` — повертає рядок, що містить список значень упорядкування записів авторів книги. Критерієм упорядковування є один із записів метаданих автора (відмінний від author_sort у книгах). Повернутий список має такий формат: ``упорядкування автора 1`` ``роздільник_значень`` ``упорядкування автора 2`` тощо без додавання пробілів. Значення упорядковування авторів у цьому списку перебувають у тому самому порядку, що і автори у книзі. Якщо вам потрібні пробіли навколо ``роздільника_значень``, додайте їх до рядка роздільника."

#: ../../__w/calibre/calibre/manual/template_lang.rst:442
msgid ""
"``book_count(query, use_vl)`` -- returns the count of books found by "
"searching for ``query``. If ``use_vl`` is ``0`` (zero) then virtual "
"libraries are ignored. This function and its companion ``book_values()`` are"
" particularly useful in template searches, supporting searches that combine "
"information from many books such as looking for series with only one book. "
"It cannot be used in composite columns unless the tweak "
"``allow_template_database_functions_in_composites`` is set to True. It can "
"be used only in the GUI."
msgstr "``book_count(запит, використати_віртуальні)`` — повертає кількість книг, які було знайдено за запитом ``запит``. Якщо значенням ``використати_віртуальні`` є ``0`` (нуль), віртуальні бібліотеки буде проігноровано. Ця функція і подібна до неї функція ``book_values()`` корисні, зокрема, у шаблонних пошуках, де передбачено підтримку пошуків, які поєднують відомості з багатьох книг, наприклад, пошуків циклів, де є лише одна книга. Функцією не можна користуватися у складених стовпчиках, якщо для коригування ``allow_template_database_functions_in_composites`` не встановлено значення True. Можна використовувати лише у графічному інтерфейсі."

#: ../../__w/calibre/calibre/manual/template_lang.rst:444
msgid ""
"For example this template search uses this function and its companion to "
"find all series with only one book:"
msgstr "Наприклад, у цьому шаблонному пошуку використано цю функцію і подібну до неї функцію для пошуку усіх циклів, які містять лише одну книгу:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:446
msgid ""
"Define a stored template (using :guilabel:`Preferences->Advanced->Template "
"functions`) named ``series_only_one_book`` (the name is arbitrary). The "
"template is::"
msgstr "Визначення збереженого шаблона (за допомогою пункту :guilabel:`Налаштування->Додатково->Шаблонні функції`) із назвою ``series_only_one_book`` (назва може бути довільною). Шаблон::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:461
msgid ""
"The first time the template runs (the first book checked) it stores the "
"results of the database lookups in a ``global`` template variable named "
"``vals``. These results are used to check subsequent books without redoing "
"the lookups."
msgstr "Під час першого запуску шаблона (перевірка першої книги) він зберігає результати пошуків у базі даних у ``загальній`` шаблонній змінній із назвою ``vals``. Ці результати буде використано для подальшого пошуку книг без повторної обробки усієї бази даних."

#: ../../__w/calibre/calibre/manual/template_lang.rst:463
msgid "Use the stored template in a template search::"
msgstr "Використання збереженого шаблона у шаблонному пошуку::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:467
msgid ""
"Using a stored template instead of putting the template into the search "
"eliminates problems caused by the requirement to escape quotes in search "
"expressions."
msgstr "Використання збереженого шаблона замість вписування шаблона у пошук усуває проблеми, які пов'язано із вимогою щодо екранування лапок у виразах для пошуку."

#: ../../__w/calibre/calibre/manual/template_lang.rst:468
msgid ""
"``book_values(column, query, sep, use_vl)`` -- returns a list of the unique "
"values contained in the column ``column`` (a lookup name), separated by "
"``sep``, in the books found by searching for ``query``. If ``use_vl`` is "
"``0`` (zero) then virtual libraries are ignored. This function and its "
"companion ``book_count()`` are particularly useful in template searches, "
"supporting searches that combine information from many books such as looking"
" for series with only one book. It cannot be used in composite columns "
"unless the tweak ``allow_template_database_functions_in_composites`` is set "
"to True. It can be used only in the GUI."
msgstr "``book_values(стовпчик, запит, роздільник, використати_віртуальні)`` — повертає список неповторюваних значень, що містяться у стовпчику ``стовпчик`` (назві пошуку), відокремлені роздільником ``роздільник``, у книгах, які було знайдено за запитом ``запит``. Якщо значенням ``використати_віртуальні`` є ``0`` (нуль), віртуальні бібліотеки буде проігноровано. Ця функція і подібна до неї функція ``book_count()`` корисні, зокрема, у шаблонних пошуках, де передбачено підтримку пошуків, які поєднують відомості з багатьох книг, наприклад, пошуків циклів, де є лише одна книга. Функцією не можна користуватися у складених стовпчиках, якщо для коригування ``allow_template_database_functions_in_composites`` не встановлено значення True. Можна використовувати лише у графічному інтерфейсі."

#: ../../__w/calibre/calibre/manual/template_lang.rst:469
msgid ""
"``booksize()`` -- returns the value of the calibre 'size' field. Returns '' "
"if there are no formats."
msgstr "``booksize()`` — повертає значення поля calibre «size». Повертає '', якщо форматів немає."

#: ../../__w/calibre/calibre/manual/template_lang.rst:470
msgid ""
"``check_yes_no(field_name, is_undefined, is_false, is_true)`` -- checks if "
"the value of the yes/no field named by the lookup name ``field_name`` is one"
" of the values specified by the parameters, returning ``'yes'`` if a match "
"is found otherwise returning the empty string. Set the parameter "
"``is_undefined``, ``is_false``, or ``is_true`` to 1 (the number) to check "
"that condition, otherwise set it to 0. Example:"
msgstr "``check_yes_no(назва_поля, is_undefined, is_false, is_true)`` — перевіряє, чи дорівнює значення поля «так/ні», вказаного назвою для пошуку ``назва_поля``, значенню, вказаному параметрами, повертає ``'yes'``, якщо знайдено відповідник, інакше, повертає порожній рядок. Встановіть для параметрів ``is_undefined``, ``is_false`` або ``is_true`` значення 1 (число), щоб перевірити відповідну умову, інакше, встановіть 0. Приклад:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:472
msgid ""
"``check_yes_no(\"#bool\", 1, 0, 1)`` returns ``'Yes'`` if the yes/no field "
"``#bool`` is either True or undefined (neither True nor False)."
msgstr "``check_yes_no(\"#bool\", 1, 0, 1)`` повертає ``'yes'``, якщо ``\"#bool\"`` поля так/ні або не визначено (він не є істинним і не є хибним), або дорівнює True."

#: ../../__w/calibre/calibre/manual/template_lang.rst:474
msgid ""
"More than one of ``is_undefined``, ``is_false``, or ``is_true`` can be set "
"to 1."
msgstr "Значення 1 можна встановлювати для декількох записів з набору ``is_undefined``, ``is_false`` або ``is_true``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:475
msgid ""
"``ceiling(x)`` -- returns the smallest integer greater than or equal to "
"``x``. Throws an exception if ``x`` is not a number."
msgstr "``ceiling(x)`` — повертає найменше ціле число, яке є більшим або рівним ``x``. Надсилає виключення, якщо ``x`` не є числом."

#: ../../__w/calibre/calibre/manual/template_lang.rst:476
msgid ""
"``character(character_name)`` -- returns the character named by "
"character_name. For example, ``character('newline')`` returns a newline "
"character (``'\\n'``). The supported character names are ``newline``, "
"``return``, ``tab``, and ``backslash``."
msgstr "``character(назва_символу)`` — повертає символ із назвою «назва_символу». Наприклад, ``character('newline')`` повертає символ розриву рядка (``'\\n'``). Передбачено підтримку таки назв символів: ``newline``, ``return``, ``tab`` і ``backslash``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:477
msgid ""
"``cmp(x, y, lt, eq, gt)`` -- compares ``x`` and ``y`` after converting both "
"to numbers. Returns ``lt`` if ``x <# y``, ``eq`` if ``x ==# y``, otherwise "
"``gt``. This function can usually be replaced with one of the numeric "
"compare operators (``==#``, ``<#``, ``>#``, etc)."
msgstr "``cmp(x, y, lt, eq, gt)`` — порівнює ``x`` і ``y`` після перетворення обох величин у числа. Повертає ``lt``, якщо `x <# y``, ``eq``, якщо ``x ==# y``, у всіх інших випадках повертає ``gt``. Цю функцію зазвичай можна замінити одним із операторів порівняння чисел (``==#``, ``<#``, ``>#`` тощо)."

#: ../../__w/calibre/calibre/manual/template_lang.rst:478
msgid ""
"``connected_device_name(storage_location_key)`` -- if a device is connected "
"then return the device name, otherwise return the empty string. Each storage"
" location on a device has its own device name. The ``storage_location_key`` "
"names are ``'main'``, ``'carda'`` and ``'cardb'``. This function works only "
"in the GUI."
msgstr "``connected_device_name(ключ_розташування_сховища)`` — якщо пристрій з'єднано, повертає назву пристрою, якщо ні — порожній рядок. Кожне розташування сховища даних на пристрої має власну назву. Значення параметра ``ключ_розташування_сховища``: ``'main'``, ``'card'`` і ``'cardb'``. Ця функція працює лише у графічному інтерфейсі користувача."

#: ../../__w/calibre/calibre/manual/template_lang.rst:479
msgid ""
"``connected_device_uuid(storage_location_key)`` -- if a device is connected "
"then return the device uuid (unique id), otherwise return the empty string. "
"Each storage location on a device has a different uuid. The "
"``storage_location_key`` location names are ``'main'``, ``'carda'`` and "
"``'cardb'``. This function works only in the GUI."
msgstr "``connected_device_uuid(ключ_розташування_сховища)`` — якщо пристрій з'єднано, повертає UUID (унікальний ідентифікатор) пристрою, якщо ні — порожній рядок. Кожне розташування сховища даних на пристрої має власний UUID. Значення параметра ``ключ_розташування_сховища``: ``'main'``, ``'carda'`` і ``'cardb'``. Ця функція працює лише у графічному інтерфейсі користувача."

#: ../../__w/calibre/calibre/manual/template_lang.rst:480
msgid ""
"``current_library_name()`` -- return the last name on the path to the "
"current calibre library."
msgstr "``current_library_name()`` — повертає останню адресу поточної бібліотеки calibre."

#: ../../__w/calibre/calibre/manual/template_lang.rst:481
msgid ""
"``current_library_path()`` -- return the full path to the current calibre "
"library."
msgstr "``current_library_path()`` — повертає повний шлях до поточної бібліотеки calibre."

#: ../../__w/calibre/calibre/manual/template_lang.rst:482
msgid ""
"``current_virtual_library_name()`` -- return the name of the current virtual"
" library if there is one, otherwise the empty string. Library name case is "
"preserved. Example: ``program: current_virtual_library_name()``. This "
"function works only in the GUI."
msgstr "``current_virtual_library_name()`` — повертає назву поточної віртуальної бібліотеки, якщо така є, і порожній рядок, якщо такої немає. Регістр символів назви бібліотеки буде збережено. Приклад: ``program: current_virtual_library_name()``. Ця функція працює лише у режимі графічного інтерфейсу користувача."

#: ../../__w/calibre/calibre/manual/template_lang.rst:483
msgid ""
"``date_arithmetic(date, calc_spec, fmt)`` -- Calculate a new date from "
"``date`` using ``calc_spec``. Return the new date formatted according to "
"optional ``fmt``: if not supplied then the result will be in ISO format. The"
" calc_spec is a string formed by concatenating pairs of ``vW`` "
"(``valueWhat``) where ``v`` is a possibly-negative number and W is one of "
"the following letters:"
msgstr "``date_arithmetic(дата, специфікація_обчислень, формат)`` — обчислення нової дати на основі дати ``дата`` з використанням ``специфікації_обчислень``. Повертає нову дату, форматовану відповідно до додаткового параметра ``формат``. Якщо формат не вказано, результат буде виведено у форматі ISO. Параметр ``специфікація_обчислень`` є рядком, який сформовано поєднанням пар ``зО`` (значенняОперація), де ``з`` є можливо від'ємним числом, а ``О`` є однією з таких літер:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:485
msgid "``s``: add ``v`` seconds to ``date``"
msgstr "``s`` — додати ``з`` секунд до значення ``дата``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:486
msgid "``m``: add ``v`` minutes to ``date``"
msgstr "``m`` — додати ``з`` хвилин до значення ``дата``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:487
msgid "``h``: add ``v`` hours to ``date``"
msgstr "``h`` — додати ``з`` годин до значення ``дата``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:488
msgid "``d``: add ``v`` days to ``date``"
msgstr "``d`` — додати ``з`` днів до значення ``дата``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:489
msgid "``w``: add ``v`` weeks to ``date``"
msgstr "``w`` — додати ``з`` тижнів до значення ``дата``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:490
msgid "``y``: add ``v`` years to ``date``, where a year is 365 days."
msgstr "``y`` — додати ``з`` років до значення ``дата``, де роком вважаються 365 днів."

#: ../../__w/calibre/calibre/manual/template_lang.rst:492
msgid ""
"Example: ``'1s3d-1m'`` will add 1 second, add 3 days, and subtract 1 minute "
"from ``date``."
msgstr "Приклад: ``1s3d-1m`` — додати 1 секунду, додати 3 дні і відняти 1 хвилину від дати ``дата``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:493
msgid ""
"``days_between(date1, date2)`` -- return the number of days between "
"``date1`` and ``date2``. The number is positive if ``date1`` is greater than"
" ``date2``, otherwise negative. If either ``date1`` or ``date2`` are not "
"dates, the function returns the empty string."
msgstr "days_between(дата1, дата2) — повертає кількість днів між датою дата1 і датою дата2``. Кількість днів є додатною, якщо дата1 перевищує дата2, інакше значення буде від'ємним. Якщо значення дата1 або значення дата2 не вдасться обробити як дату, функція поверне порожній рядок."

#: ../../__w/calibre/calibre/manual/template_lang.rst:494
msgid ""
"``divide(x, y)`` -- returns ``x / y``. Throws an exception if either ``x`` "
"or ``y`` are not numbers. This function can usually be replaced by the ``/``"
" operator."
msgstr "``divide(x, y)`` — повертає частку ``x / y``. Повідомляє про виключення, якщо ``x`` або ``y`` не є числом. Зазвичай, цю функцію можна замінити оператором ``/``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:495
msgid ""
"``eval(string)`` -- evaluates the string as a program, passing the local "
"variables. This permits using the template processor to construct complex "
"results from local variables. In :ref:`Template Program Mode "
"<template_mode>`, because the `{` and `}` characters are interpreted before "
"the template is evaluated you must use `[[` for the `{` character and `]]` "
"for the ``}`` character. They are converted automatically. Note also that "
"prefixes and suffixes (the `|prefix|suffix` syntax) cannot be used in the "
"argument to this function when using :ref:`Template Program Mode "
"<template_mode>`."
msgstr "``eval(рядок) — обробляє рядок як програму з передаванням локальних змінних <template_mode>`. Це надає змогу скористатися обробником шаблонів для побудови складних результатів на основі локальних змінних. У :ref:`режимі програмування шаблонів <template_mode>` символи «{» і «}» обробляють до обробки шаблона, тому вам слід використовувати «[[» для позначення символу «{» і «]]» для позначення символу «}». Перетворення буде виконано автоматично. Також слід зауважити, що у аргументі цієї функції не можна використовувати префікси і суфікси (тобто синтаксичні конструкції, подібні до «|префікс|суфікс»), якщо використовується :ref:`режим програмування шаблонів <template_mode>`."

#: ../../__w/calibre/calibre/manual/template_lang.rst:496
msgid ""
"``extra_file_size(file_name)`` -- returns the size in bytes of the extra "
"file ``file_name`` in the book's ``data/`` folder if it exists, otherwise "
"``-1``. See also the functions ``has_extra_files()``, ``extra_file_names()``"
" and ``extra_file_modtime()``. This function can be used only in the GUI."
msgstr "``extra_file_size(назва_файла)`` — повертає розмір у байтах додаткового файла «назва_файла» у теці «data/» книги, якщо він існує. Якщо файла не існує, повертає ``-1``. Див. також функції ``has_extra_files()``, ``extra_file_names()`` та ``extra_file_modtime()``. Цією функцією можна скористатися лише у графічному інтерфейсі."

#: ../../__w/calibre/calibre/manual/template_lang.rst:497
msgid ""
"``extra_file_modtime(file_name, format_string)`` -- returns the modification"
" time of the extra file ``file_name`` in the book's ``data/`` folder if it "
"exists, otherwise ``-1``. The modtime is formatted according to "
"``format_string`` (see ``format_date()`` for details). If ``format_string`` "
"is the empty string, returns the modtime as the floating point number of "
"seconds since the epoch.  See also the functions ``has_extra_files()``, "
"``extra_file_names()`` and ``extra_file_size()``. The epoch is OS dependent."
" This function can be used only in the GUI."
msgstr "``extra_file_modtime(назва_файла, рядок_формату)`` — повертає час внесення змін до додаткового файла ``назва_файла`` у теці ``data/`` книги, якщо він існує. Якщо файла не існує, повертає ``-1``. Час внесення змін буде форматовано відповідно до рядка формату (див. ``format_date()``). Якщо специфікатор формату є порожнім, повертає час внесення змін як десятковий дріб секунд з початку епохи. Див. також функції ``has_extra_files()``, ``extra_file_names()`` та ``extra_file_size()``. Значення епохи є специфічним для операційної системи. Цією функцією можна скористатися лише у графічному інтерфейсі."

#: ../../__w/calibre/calibre/manual/template_lang.rst:498
msgid ""
"``extra_file_names(sep [, pattern])`` returns a ``sep``-separated list of "
"extra files in the book's ``data/`` folder. If the optional parameter "
"``pattern``, a regular expression, is supplied then the list is filtered to "
"files that match ``pattern``. The pattern match is case insensitive. See "
"also the functions ``has_extra_files()``, ``extra_file_modtime()`` and "
"``extra_file_size()``. This function can be used only in the GUI."
msgstr "``extra_file_names(роздільник[, взірець])`` — список відокремлених роздільником назв файлів у теці ``data/`` книги. Якщо вказано необов'язковий параметр «взірець» (формальний вираз), список буде відфільтровано до файлів, які відповідають взірцю. Відповідність визначатиметься без врахування регістру символів. Див. також функції ``has_extra_files()``, ``extra_file_modtime()`` та ``extra_file_size()``. Цією функцією можна скористатися лише у графічному інтерфейсі."

#: ../../__w/calibre/calibre/manual/template_lang.rst:499
msgid ""
"``field(lookup_name)`` -- returns the value of the metadata field with "
"lookup name ``lookup_name``."
msgstr "``field(назва_для_пошуку)`` — повертає значення поля метаданих із назвою для пошуку ``назва_для_пошуку``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:500
msgid ""
"``field_exists(field_name)`` -- checks if a field (column) with the lookup "
"name ``field_name`` exists, returning ``'1'`` if so and the empty string if "
"not."
msgstr "``field_exists(назва_поля)`` — перевіряє, чи існує поле (стовпчик) із назвою для пошуку ``назва_поля``. Повертає ``'1'``, якщо поле існує, і порожній рядок, якщо не існує."

#: ../../__w/calibre/calibre/manual/template_lang.rst:501
msgid ""
"``finish_formatting(val, fmt, prefix, suffix)`` -- apply the format, prefix,"
" and suffix to a value in the same way as done in a template like "
"``{series_index:05.2f| - |- }``. This function is provided to ease "
"conversion of complex single-function- or template-program-mode templates to"
" `GPM` Templates. For example, the following program produces the same "
"output as the above template::"
msgstr "``finish_formatting(значення, формат, префікс, суфікс)`` — застосувати формат, префікс і суфікс до значення у спосіб, у який це виконується шаблоном, зокрема ``{series_index:05.2f| - |- }``. Цю функцію створено для спрощення перетворення складних шаблонів режиму єдиної функції і програмного режиму до шаблонів загального програмного режиму. Наприклад, наведена нижче програма виводить ті самі дані, що і вказаний вище програма-шаблон::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:505
msgid ""
"Another example: for the template "
"``{series:re(([^\\s])[^\\s]+(\\s|$),\\1)}{series_index:0>2s| - | - "
"}{title}`` use::"
msgstr "Інший приклад. Для шаблона ``{series:re(([^\\s])[^\\s]+(\\s|$),\\1)}{series_index:0>2s| - | - }{title}`` скористайтеся таким::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:514
msgid ""
"``first_matching_cmp(val, [ cmp, result, ]* else_result)`` -- compares ``val"
" < cmp`` in sequence, returning the associated result for the first "
"comparison that succeeds. Returns else_result if no comparison succeeds. "
"Example::"
msgstr "``first_matching_cmp(значення, [ умова, результат, ]* інший_результат)`` — послідовно виконує порівняння ``значення < умова``, повертаючи пов'язаний результат для першої з виконаних умов у послідовності. Повертає інший_результат, якщо жодну з умов не буде виконано. Приклад::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:519
msgid ""
"returns ``\"large\"``. The same example with a first value of 16 returns "
"``\"giant\"``."
msgstr "повертає ``\"large\"``. Той самий приклад із першим значенням 16 повертатиме ``\"giant\"``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:521
msgid ""
"``first_non_empty(value [, value]*)`` -- returns the first ``value`` that is"
" not empty. If all values are empty, then the empty string is returned. You "
"can have as many values as you want."
msgstr "``first_non_empty(значення [, значення]*)`` — повертає перше значення, яке не є порожнім. Якщо всі ``значення`` є порожніми, повертає порожній рядок. Ви можете вказати довільну кількість значень."

#: ../../__w/calibre/calibre/manual/template_lang.rst:522
msgid ""
"``floor(x)`` -- returns the largest integer less than or equal to ``x``. "
"Throws an exception if ``x`` is not a number."
msgstr "``floor(x)`` — повертає найбільше ціле число, яке є меншим або рівним ``x``. Надсилає виключення, якщо ``x`` не є числом."

#: ../../__w/calibre/calibre/manual/template_lang.rst:523
msgid ""
"``format_date(val, format_string)`` -- format the value, which must be a "
"date string, using the format_string, returning a string. The formatting "
"codes are:"
msgstr "``format_date(значення, рядок_формату)`` — форматувати значення, яке має бути рядком дати, на основі значення рядок_формату, повернути рядок. Коди форматування:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:525
msgid "``d    :`` the day as number without a leading zero (1 to 31)"
msgstr "``d    :`` номер дня без початкового нуля (від 1 до 31)"

#: ../../__w/calibre/calibre/manual/template_lang.rst:526
msgid "``dd   :`` the day as number with a leading zero (01 to 31)"
msgstr "``dd   :`` номер дня з початковим нулем (від 01 до 31)"

#: ../../__w/calibre/calibre/manual/template_lang.rst:527
msgid "``ddd  :`` the abbreviated localized day name (e.g. \"Mon\" to \"Sun\")."
msgstr "``ddd  :`` скорочена локалізована назва дня тижня (від «пн» до «нд»)."

#: ../../__w/calibre/calibre/manual/template_lang.rst:528
msgid "``dddd :`` the long localized day name (e.g. \"Monday\" to \"Sunday\")."
msgstr "``dddd :`` довга локалізована назва дня (від «понеділок» до «неділя»)."

#: ../../__w/calibre/calibre/manual/template_lang.rst:529
msgid "``M    :`` the month as number without a leading zero (1 to 12)."
msgstr "``M    :`` номер місяця без початкового нуля (від 1 до 12)."

#: ../../__w/calibre/calibre/manual/template_lang.rst:530
msgid "``MM   :`` the month as number with a leading zero (01 to 12)"
msgstr "``MM   :`` номер місяця з початковим нулем (від 01 до 12)"

#: ../../__w/calibre/calibre/manual/template_lang.rst:531
msgid "``MMM  :`` the abbreviated localized month name (e.g. \"Jan\" to \"Dec\")."
msgstr "``MMM  :`` скорочена локалізована назва місяця (від «січ» до «гру»)."

#: ../../__w/calibre/calibre/manual/template_lang.rst:532
msgid "``MMMM :`` the long localized month name (e.g. \"January\" to \"December\")."
msgstr "``MMMM :`` повна локалізована назва місяця (від «січень» до «грудень»)."

#: ../../__w/calibre/calibre/manual/template_lang.rst:533
msgid "``yy   :`` the year as two digit number (00 to 99)."
msgstr "``yy   :`` рік як двоцифрове значення (від 00 до 99)."

#: ../../__w/calibre/calibre/manual/template_lang.rst:534
msgid "``yyyy :`` the year as four digit number."
msgstr "``yyyy :`` рік як чотирицифрове значення."

#: ../../__w/calibre/calibre/manual/template_lang.rst:535
msgid ""
"``h    :`` the hours without a leading 0 (0 to 11 or 0 to 23, depending on "
"am/pm)"
msgstr "``h    :`` години без початкового 0 (від 0 до 11 або від 0 до 23, залежно від am/pm)"

#: ../../__w/calibre/calibre/manual/template_lang.rst:536
msgid ""
"``hh   :`` the hours with a leading 0 (00 to 11 or 00 to 23, depending on "
"am/pm)"
msgstr "``hh   :`` години з початковим 0 (від 00 до 11 або від 00 до 23, залежно від am/pm)"

#: ../../__w/calibre/calibre/manual/template_lang.rst:537
msgid "``m    :`` the minutes without a leading 0 (0 to 59)"
msgstr "``m    :`` хвилини без початкового 0 (від 0 до 59)"

#: ../../__w/calibre/calibre/manual/template_lang.rst:538
msgid "``mm   :`` the minutes with a leading 0 (00 to 59)"
msgstr "``mm   :`` хвилини з початковим 0 (від 00 до 59)"

#: ../../__w/calibre/calibre/manual/template_lang.rst:539
msgid "``s    :`` the seconds without a leading 0 (0 to 59)"
msgstr "``s    :`` секунди без початкового 0 (від 0 до 59)"

#: ../../__w/calibre/calibre/manual/template_lang.rst:540
msgid "``ss   :`` the seconds with a leading 0 (00 to 59)"
msgstr "``ss   :`` секунди з початковим 0 (від 00 до 59)"

#: ../../__w/calibre/calibre/manual/template_lang.rst:541
msgid ""
"``ap   :`` use a 12-hour clock instead of a 24-hour clock, with 'ap' "
"replaced by the localized string for am or pm."
msgstr "``ap   :`` використовувати 12-годинний формат замість 24-годинного, із 'ap', яке буде замінено на локалізований рядок для am або pm."

#: ../../__w/calibre/calibre/manual/template_lang.rst:542
msgid ""
"``AP   :`` use a 12-hour clock instead of a 24-hour clock, with 'AP' "
"replaced by the localized string for AM or PM."
msgstr "``AP   :`` використовувати 12-годинний формат замість 24-годинного, із 'AP', яке буде замінено на локалізований рядок для am або pm."

#: ../../__w/calibre/calibre/manual/template_lang.rst:543
msgid ""
"``iso  :`` the date with time and timezone. Must be the only format present."
msgstr "``iso  :`` дата із часом і часовим поясом. Має бути єдиним вказаним значенням форматування."

#: ../../__w/calibre/calibre/manual/template_lang.rst:544
msgid ""
"``to_number   :`` convert the date & time into a floating point number (a "
"`timestamp`)"
msgstr "``to_number   :`` перетворити дату і час у число із рухомою крапкою (`часову позначку`)"

#: ../../__w/calibre/calibre/manual/template_lang.rst:545
msgid ""
"``from_number :`` convert a floating point number (a `timestamp`) into an "
"``iso`` formatted date. If you want a different date format then add the "
"desired formatting string after ``from_number`` and a colon (``:``). "
"Example: ``from_number:MMM dd yyyy``"
msgstr "``from_number :`` перетворити число з рухомою крапкою (`часову позначку`) на дату у форматі ``iso``. Якщо вам потрібен інший формат дати, додайте бажаний рядок форматування після ``from_number`` і двокрапки (``:``). Приклад: ``from_number:MMM dd yyyy``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:547
msgid ""
"You might get unexpected results if the date you are formatting contains "
"localized month names, which can happen if you changed the date format "
"tweaks to contain ``MMMM``. In this case, instead of using the ``field()`` "
"function as in::"
msgstr "Результати можуть бути не такими, на які ви сподівалися, якщо форматована дата містить локалізовані назви місяців, що може трапитися, якщо ви змінили коригування формату на такі, які містять ``MMMM``. У цьому випадку скористайтеся функцією ``field()``, як у прикладі::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:551
msgid "use the ``raw_field()`` function as in::"
msgstr "скористайтеся функцією ``raw_field()``, як у::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:555
msgid ""
"``format_date_field(field_name, format_string)`` -- format the value in the "
"field ``field_name``, which must be the lookup name of date field, either "
"standard or custom. See ``format_date()`` for the formatting codes. This "
"function is much faster than format_date and should be used when you are "
"formatting the value in a field (column). It can't be used for computed "
"dates or dates in string variables. Examples::"
msgstr "``format_date_field(назва_поля, рядок_форматування)`` — форматувати значення у полі ``назва_поля``, яке має бути фільтром поля дати, стандартного або нетипового. Див. ``format_date()``, щоб дізнатися більше про коди форматування. Ця функція є набагато швидшою за format_date. Нею слід користуватися, якщо ви форматуєте значення у полі (стовпчику). Нею не можна користуватися для обчислених дат або дат у рядкових змінних. Приклади::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:560
msgid ""
"``formats_modtimes(date_format_string)`` -- return a comma-separated list of"
" colon-separated items ``FMT:DATE`` representing modification times for the "
"formats of a book. The ``date_format_string`` parameter specifies how the "
"date is to be formatted. See the ``format_date()`` function for details. You"
" can use the ``select`` function to get the modification time for a specific"
" format. Note that format names are always uppercase, as in EPUB."
msgstr "``formats_modtimes(рядок_формату_дати)`` — повертає відокремлений комами список відокремлених двокрапками пунктів ``ФОРМАТ:ДАТА``, які відповідають часу внесення змін до файлів форматів книги. Параметр ``рядок_формату_дати`` визначає спосіб форматування дати. Докладніше про цей формат можна дізнатися з опису функції ``format_date()``. Для отримання даних щодо часу внесення змін до одного з форматів ви можете скористатися функцією ``select``. Зауважте, що назви форматів буде вказано великими літерами, наприклад EPUB."

#: ../../__w/calibre/calibre/manual/template_lang.rst:561
msgid ""
"``formats_paths()`` -- return a comma-separated list of colon-separated "
"items ``FMT:PATH`` giving the full path to the formats of a book. You can "
"use the select function to get the path for a specific format. Note that "
"format names are always uppercase, as in EPUB."
msgstr "``formats_paths()`` — повернути розділений комами список розділених двокрапками записів ``ФОРМАТ:ШЛЯХ``, щоб відповідають шляхам до файлів книги у різних форматах. Для отримання шляху до файла певного формату ви можете скористатися функцією select. Зауважте, що назви форматів слід вказувати великими літерами, ось так: EPUB."

#: ../../__w/calibre/calibre/manual/template_lang.rst:562
msgid ""
"``formats_sizes()`` -- return a comma-separated list of colon-separated "
"``FMT:SIZE`` items giving the sizes in bytes of the formats of a book. You "
"can use the select function to get the size for a specific format. Note that"
" format names are always uppercase, as in EPUB."
msgstr "``formats_sizes()`` — повертає відокремлений комами список відокремлених двокрапками пунктів ``ФОРМАТ:РОЗМІР``, які відповідають об'єму у байтах файлів форматів книги. Для отримання даних щодо об'єму файла у одному з форматів ви можете скористатися функцією select. Зауважте, що назви форматів буде вказано великими літерами, наприклад EPUB."

#: ../../__w/calibre/calibre/manual/template_lang.rst:563
msgid ""
"``fractional_part(x)`` -- returns the value after the decimal point. For "
"example, ``fractional_part(3.14)`` returns ``0.14``. Throws an exception if "
"``x`` is not a number."
msgstr "``fractional_part(x)`` — повертає дробову частину десяткового числа. Наприклад, ``fractional_part(3.14)`` дорівнює ``0.14``. Надсилає виключення, якщо ``x`` не є числом."

#: ../../__w/calibre/calibre/manual/template_lang.rst:564
msgid ""
"``get_link(field_name, field_value)`` -- fetch the link for field "
"``field_name`` with value ``field_value``. If there is no attached link, "
"return the empty string. Examples:"
msgstr "``get_link(назва_поля, значення_поля)`` — отримати посилання для поля ``назва_поля`` зі значенням ``значення_поля``. Якщо немає пов'язаного посилання, повертає порожній рядок. Приклади:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:566
msgid "The following returns the link attached to the tag ``Fiction``::"
msgstr "Наведена нижче команда повертає посилання, яке пов'язане із міткою ``Fiction``::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:570
msgid ""
"This template makes a list of the links for all the tags associated with a "
"book in the form ``value:link, ...``::"
msgstr "Цей шаблон створює список посилань для усіх міток, які пов'язано із книгою, у форматі ``значення:посилання, ...``::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:582
msgid ""
"``has_cover()`` -- return ``'Yes'`` if the book has a cover, otherwise the "
"empty string."
msgstr "``hascover()`` — повертає «Yes», якщо у книги є зображення обкладинки, інакше повертає порожній рядок."

#: ../../__w/calibre/calibre/manual/template_lang.rst:583
msgid ""
"``has_extra_files([pattern])`` -- returns the count of extra files, "
"otherwise '' (the empty string). If the optional parameter ``pattern`` (a "
"regular expression) is supplied then the list is filtered to files that "
"match ``pattern`` before the files are counted. The pattern match is case "
"insensitive. See also the functions ``extra_file_names()``, "
"``extra_file_size()`` and ``extra_file_modtime()``. This function can be "
"used only in the GUI."
msgstr "``has_extra_files([взірець])`` — повертає кількість додаткових файлів, якщо такі є. Якщо файлів немає, повертає '' (порожній рядок). Якщо вказано необов'язковий параметр «взірець» (формальний вираз), список, перш ніж буде виконано обчислення кількості, буде відфільтровано до файлів, які відповідають взірцю. Відповідність визначатиметься без врахування регістру символів. Див. також функції ``extra_file_names()``, ``extra_file_size()`` та ``extra_file_modtime()``. Цією функцією можна скористатися лише у графічному інтерфейсі."

#: ../../__w/calibre/calibre/manual/template_lang.rst:584
msgid ""
"``identifier_in_list(val, id_name [, found_val, not_found_val])`` -- treat "
"``val`` as a list of identifiers separated by commas. An identifier has the "
"format ``id_name:value``. The ``id_name`` parameter is the id_name text to "
"search for, either ``id_name`` or ``id_name:regexp``. The first case matches"
" if there is any identifier matching that id_name. The second case matches "
"if id_name matches an identifier and the regexp matches the identifier's "
"value. If ``found_val`` and ``not_found_val`` are provided then if there is "
"a match then return ``found_val``, otherwise return ``not_found_val``. If "
"``found_val`` and ``not_found_val`` are not provided then if there is a "
"match then return the ``identifier:value`` pair, otherwise the empty string "
"(``''``)."
msgstr "``identifier_in_list(значення, назва_ідентифікатора [, значення_якщо_знайдено, значення_якщо_не_знайдено])`` — обробити значення як список відокремлених комами ідентифікаторів. Ідентифікатор слід записувати у форматі «назва_ідентифікатора:значення». Параметр ``назва_ідентифікатора`` є текстом назви ідентифікатора, який слід знайти, або у форматі «назва_ідентифікатора» або «назва_ідентифікатора:формальний_вираз». Відповідність у першому випадку буде встановлено, якщо буде виявлено будь-який ідентифікатор, що відповідає критерію «назва_ідентифікатора». У другому випадку відповідність буде встановлено, якщо «назва_ідентифікатора» відповідає ідентифікатору, а «формальний_вираз» відповідає значенню ідентифікатора. Якщо задано ``значення_якщо_знайдено`` і ``значення_якщо_не_знайдено``, якщо буде встановлено відповідність, програма поверне значення_якщо_знайдено. Якщо нічого не буде знайдено, програма поверне значення_якщо_не_знайдено. Якщо не задано ``значення_якщо_знайдено`` і ``значення_якщо_не_знайдено``, якщо буде встановлено відповідність, програма поверне пару ``ідентифікатор:значення``. Якщо значення не задано, буде повернуто порожній рядок (``''``)."

#: ../../__w/calibre/calibre/manual/template_lang.rst:585
msgid ""
"``is_marked()`` -- check whether the book is `marked` in calibre. If it is "
"then return the value of the mark, either ``'true'`` (lower case) or a "
"comma-separated list of named marks. Returns ``''`` (the empty string) if "
"the book is not marked. This function works only in the GUI."
msgstr "``is_marked()`` — перевірити, чи має книга стан `marked` у calibre. Якщо це так, буде повернуто значення позначки, або ``'true'`` (у нижньому регістрі), або список іменованих позначок, які відокремлено комами. Повертає ``''`` (порожній рядок), якщо книгу не позначено. Ця функція працює лише у графічному інтерфейсі."

#: ../../__w/calibre/calibre/manual/template_lang.rst:586
msgid ""
"``language_codes(lang_strings)`` -- return the `language codes "
"<https://www.loc.gov/standards/iso639-2/php/code_list.php>`_ for the "
"language names passed in `lang_strings`. The strings must be in the language"
" of the current locale. ``Lang_strings`` is a comma-separated list."
msgstr "``language_codes(рядки_мов)`` — повертає `коди мов <https://www.loc.gov/standards/iso639-2/php/code_list.php>`_ для назв мов, які передано за допомогою аргументу `рядки_мов`. Рядки має бути вказано мовою поточної локалі. Аргумент ``рядки_мов`` є списком значень, які відокремлено комами."

#: ../../__w/calibre/calibre/manual/template_lang.rst:587
msgid ""
"``list_contains(value, separator, [ pattern, found_val, ]* not_found_val)`` "
"-- (Alias of ``in_list``) Interpreting the value as a list of items "
"separated by ``separator``, evaluate the ``pattern`` against each value in "
"the list. If the ``pattern`` matches any value then return ``found_val``, "
"otherwise return ``not_found_val``. The ``pattern`` and ``found_value`` can "
"be repeated as many times as desired, permitting returning different values "
"depending on the search. The patterns are checked in order. The first match "
"is returned. Aliases: ``in_list()``, ``list_contains()``"
msgstr "``list_contains(значення, роздільник, [ взірець, значення_якщо_знайдено, ] значення_якщо_не_знайдено)`` — (альтернатива ``in_list``) обробляє значення як список пунктів, відокремлених ``роздільником``, порівнює взірець з кожним зі значень у списку. Якщо рядок збігається зі значенням, повертає ``значення_якщо_знайдено``, інакше повертає ``значення_якщо_не_знайдено``. Значення ``взірець`` і ``значення_якщо_знайдено`` можна повторювати довільну кількість разів, залежно від пошуку. Перевірка взірців виконується послідовно. Функція повертає перший знайдений відповідник. Варіанти: ``in_list()``, ``list_contains()``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:588
msgid ""
"``list_count(value, separator)`` -- interprets ``value`` as a list of items "
"separated by ``separator``, returning the count of items in the list. "
"Aliases: ``count()``, ``list_count()``"
msgstr "``list_count(значення, роздільник)`` — за заданим ``значенням`` списком пунктів, відокремлених роздільником ``роздільник``, повертає кількість пунктів у списку. Варіанти: ``count()``, ``list_count()``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:589
msgid ""
"``list_count_matching(list, pattern, separator)`` -- interprets ``list`` as "
"a list of items separated by ``separator``, returning the number of items in"
" the list that match the regular expression ``pattern``. Aliases: "
"``list_count_matching()``, ``count_matching()``"
msgstr "``list_count_matching(список, взірець, роздільник)`` — за заданим значенням списком пунктів, відокремлених роздільником «роздільник», повертає кількість пунктів у списку, які відповідають заданому формальним виразом взірцю. Варіанти: ``list_count_matching()``, ``count_matching()``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:590
msgid ""
"``list_difference(list1, list2, separator)`` -- return a list made by "
"removing from ``list1`` any item found in ``list2`` using a case-insensitive"
" comparison. The items in ``list1`` and ``list2`` are separated by "
"separator, as are the items in the returned list."
msgstr "``list_difference(список1, список2, роздільник)`` — повертає список, створений вилученням зі списку ``список1`` всіх пунктів, які містяться у списку ``список2``, на основі порівняння без врахування регістру. Пункти у списках ``список1`` і ``список2`` відокремлюються роздільником «роздільник», як і пункти у повернутому функцією списку."

#: ../../__w/calibre/calibre/manual/template_lang.rst:591
msgid ""
"``list_equals(list1, sep1, list2, sep2, yes_val, no_val)`` -- return "
"``yes_val`` if ``list1`` and `list2` contain the same items, otherwise "
"return ``no_val``. The items are determined by splitting each list using the"
" appropriate separator character (``sep1`` or ``sep2``). The order of items "
"in the lists is not relevant. The comparison is case-insensitive."
msgstr "``list_equals(список1, роздільник1, список2, роздільник2, значення_якщо_так, значення_якщо_ні)`` — повертає ``значення_якщо_так``, якщо ``список1`` і ``список2`` містять однакові записи``. Якщо це не так, повертає ``значення_якщо_ні``. Записи визначаються поділом кожного зі списків на основі вказаного символу роздільника (``роздільник1`` або ``роздільник2``). Порядок записів у списках не береться до уваги. Порівняння виконуватиметься без врахування регістру символів."

#: ../../__w/calibre/calibre/manual/template_lang.rst:592
msgid ""
"``list_intersection(list1, list2, separator)`` -- return a list made by "
"removing from ``list1`` any item not found in ``list2``, using a case-"
"insensitive comparison. The items in ``list1`` and ``list2`` are separated "
"by separator, as are the items in the returned list."
msgstr "``list_intersection(список1, список2, роздільник)`` — повертає список, створений вилученням зі списку ``список1`` всіх пунктів, яких немає у списку ``список2``, на основі порівняння без врахування регістру. Пункти у списках ``список1`` і ``список2`` відокремлюються роздільником «роздільник», як і пункти у повернутому функцією списку."

#: ../../__w/calibre/calibre/manual/template_lang.rst:593
msgid ""
"``list_join(with_separator, list1, separator1 [, list2, separator2]*)`` -- "
"return a list made by joining the items in the source lists (``list1`` etc) "
"using ``with_separator`` between the items in the result list. Items in each"
" source ``list[123...]`` are separated by the associated "
"``separator[123...]``. A list can contain zero values. It can be a field "
"like ``publisher`` that is single-valued, effectively a one-item list. "
"Duplicates are removed using a case-insensitive comparison. Items are "
"returned in the order they appear in the source lists. If items on lists "
"differ only in letter case then the last is used. All separators can be more"
" than one character."
msgstr "``list_join(із_роздільником, список1, роздільник1 [, список2, роздільник2]*)`` — повертає список, створений об'єднанням записів у початкових списках (``список1``, ``список2`` тощо) з використанням роздільника ``із_роздільником`` між записами у списку-результаті. Записи у кожному із початкових списків ``список[123...]`` розділено відповідним роздільником ``роздільник[123...]``. У списку можуть міститися нульові значення. Він може бути полем, подібним до поля видавця, яке має одне значення, фактично, списком з одного запису. Дублікати буде вилучено з використанням порівняння без врахування регістру символів. Записи буде повернуто у порядку, у якому їх вказано у початкових списках. Якщо записи у списках відрізняються лише регістром символів, буде використано останній з них. Усі роздільники можуть складатися з декількох символів."

#: ../../__w/calibre/calibre/manual/template_lang.rst:595
#: ../../__w/calibre/calibre/manual/template_lang.rst:617
msgid "Example::"
msgstr "Приклад::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:600
msgid ""
"You can use ``list_join`` on the results of previous calls to ``list_join`` "
"as follows::"
msgstr "Ви можете скористатися ``list_join`` для обробки результатів попередніх викликів ``list_join`` ось так::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:606
msgid ""
"You can use expressions to generate a list. For example, assume you want "
"items for ``authors`` and ``#genre``, but with the genre changed to the word"
" \"Genre: \" followed by the first letter of the genre, i.e. the genre "
"\"Fiction\" becomes \"Genre: F\". The following will do that::"
msgstr "Для створення списку ви можете скористатися виразами. Наприклад, припустімо, вам потрібні записи для ``authors`` і ``#genre``, але із жанром, заміненим на слово «Genre: », за яким має бути вказано першу літеру жанру, тобто, якщо жанром є «Fiction», матимемо «Genre: F». Результату можна досягти так::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:611
msgid ""
"``list_re(src_list, separator, include_re, opt_replace)`` -- Construct a "
"list by first separating ``src_list`` into items using the ``separator`` "
"character. For each item in the list, check if it matches ``include_re``. If"
" it does then add it to the list to be returned. If ``opt_replace`` is not "
"the empty string then apply the replacement before adding the item to the "
"returned list."
msgstr "``list_re(початковий_список, роздільник, фв_пошуку, пар_заміни)`` — будує список таким чином: спочатку поділяє ``початковий_список`` на запис на основі вказаного символу ``роздільник``. Для кожного з записів у списку перевіряє відповідність формальному виразу ``фв_пошуку``. Якщо відповідність буде встановлено, запис буде додано до повернутого списку. Якщо параметр ``пар_заміни`` не буде порожнім, заміну буде виконано до додавання запису до повернутого списку."

#: ../../__w/calibre/calibre/manual/template_lang.rst:612
msgid ""
"``list_re_group(src_list, separator, include_re, search_re [, "
"template_for_group]*)`` -- Like list_re except replacements are not "
"optional. It uses ``re_group(item, search_re, template ...)`` when doing the"
" replacements."
msgstr "``list_re_group(список_джерел, роздільник, фв_включення, фв_пошуку [, шаблон_групи]*)`` — Подібне до list_re, але замінники є обов’язковими. Використовує ``re_group(пункт_списку, фв_пошуку, шаблон ...)`` під час виконання замін у остаточному списку."

#: ../../__w/calibre/calibre/manual/template_lang.rst:613
msgid ""
"``list_remove_duplicates(list, separator)`` -- return a list made by "
"removing duplicate items in ``list``. If items differ only in case then the "
"last is returned. The items in ``list`` are separated by ``separator``, as "
"are the items in the returned list."
msgstr "``list_remove_duplicatesunion(список, роздільник)`` — повертає список, створений вилученням дублікатів з початкового ``списку``. Якщо записи пунктів відрізнятимуться лише регістром символів, буде повернуто лише останній з них. Пункти у ``списку`` має бути відокремлено ``роздільником``, який також буде використано під час формування списку-результату."

#: ../../__w/calibre/calibre/manual/template_lang.rst:614
msgid ""
"``list_sort(list, direction, separator)`` -- return ``list`` sorted using a "
"case-insensitive lexical sort. If ``direction`` is zero, ``list`` is sorted "
"ascending, otherwise descending. The list items are separated by "
"``separator``, as are the items in the returned list."
msgstr "``list_sort(список, напрямок, роздільник)`` — повертає список, впорядкований без врахування регістру. Якщо значенням параметра ``напрямок`` є нуль, список буде впорядковано за зростанням. Якщо значення буде іншим, список впорядковуватиметься за спаданням. Записи у початковому списку має бути відокремлено ``роздільником``, як і записи у списку-результаті."

#: ../../__w/calibre/calibre/manual/template_lang.rst:615
msgid ""
"``list_split(list_val, sep, id_prefix)`` -- splits ``list_val`` into "
"separate values using ``sep``, then assigns the values to local variables "
"named ``id_prefix_N`` where N is the position of the value in the list. The "
"first item has position 0 (zero). The function returns the last element in "
"the list."
msgstr "``lis_split(значення_список, роздільник, префікс_ідентифікатора)`` — ділить ``значення_список`` на окремі значення з використанням роздільника ``роздільник``, а потім надає значення локальним змінним із назвами ``префікс_ідентифікатора_N``, де N — позиція значення у списку. Перший запис має позицію 0 (нуль). Функція повертає останній елемент у списку."

#: ../../__w/calibre/calibre/manual/template_lang.rst:621
msgid "is equivalent to::"
msgstr "дає такий результат::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:627
msgid ""
"``list_union(list1, list2, separator)`` -- return a list made by merging the"
" items in ``list1`` and ``list2``, removing duplicate items using a case-"
"insensitive comparison. If items differ in case, the one in ``list1`` is "
"used. The items in ``list1`` and ``list2`` are separated by ``separator``, "
"as are the items in the returned list. Aliases: ``merge_lists()``, "
"``list_union()``"
msgstr "``list_union(список1, список2, роздільник)`` — повертає список, створений за допомогою об'єднання пунктів у списках ``список1`` і ``список2` з вилученням дублікатів, виявлених шляхом порівняння без врахування регістру символів. Якщо записи пунктів відрізнятимуться лише регістром символів, використовуватиметься пункт зі списку ``список1``. Пункти у списках ``список1`` і ``список2`` має бути відокремлено ``роздільником``, який також буде використано під час формування списку-результату. Варіанти: `merge_lists()``, ``list_union()``"

#: ../../__w/calibre/calibre/manual/template_lang.rst:628
msgid ""
"``mod(x, y)`` -- returns the ``floor`` of the remainder of ``x / y``. Throws"
" an exception if either ``x`` or ``y`` is not a number."
msgstr "``mod(x)`` — повертає ``floor`` від лишку від ділення ``x / y``. Повідомляє про виключення, якщо ``x`` або ``y`` не є числом."

#: ../../__w/calibre/calibre/manual/template_lang.rst:629
msgid ""
"``multiply(x [, y]*)`` -- returns the product of its arguments. Throws an "
"exception if any argument is not a number. This function can usually be "
"replaced by the ``*`` operator."
msgstr "``multiply(x [, y]*)`` — повертає добуток аргументів. Надсилає повідомлення про виключення, якщо аргумент не є числом. Зазвичай, цю функцію можна замінити оператором ``*``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:630
msgid ""
"``not(value)`` -- returns the string \"1\" if the value is empty, otherwise "
"returns the empty string. This function can usually be replaced with the "
"unary not (``!``) operator."
msgstr "``not(значення)`` — повертає рядок «1», якщо значення не є порожнім. Якщо значення є порожнім, повертає порожній рядок. Зазвичай, цю функцію можна замінити на унарний оператор «НІ» (``!``)."

#: ../../__w/calibre/calibre/manual/template_lang.rst:631
msgid ""
"``ondevice()`` -- return the string ``'Yes'`` if ``ondevice`` is set, "
"otherwise return the empty string."
msgstr "ondevice() — повертає ``'Yes'``, якщо встановлено ``ondevice``, інакше повертає порожній рядок"

#: ../../__w/calibre/calibre/manual/template_lang.rst:632
msgid ""
"``or(value [, value]*)`` -- returns the string ``'1'`` if any value is not "
"empty, otherwise returns the empty string. You can have as many values as "
"you want. This function can usually be replaced by the ``||`` operator. A "
"reason it cannot be replaced is if short-circuiting will change the results "
"because of side effects."
msgstr "``or(значення [, значення]*)`` — повертає рядок ``\"'1\"``, якщо хоч одне значення не є порожнім. Якщо всі значення є порожніми, повертає порожній рядок. Кількість значень може бути довільною. Зазвичай, цю функцію можна замінити оператором ``||``. Причиною того, що її не можна замінити, є те, що при оптимізації обчислення може бути змінено результати через сторонні ефекти."

#: ../../__w/calibre/calibre/manual/template_lang.rst:633
msgid ""
"``print(a [, b]*)`` -- prints the arguments to standard output. Unless you "
"start calibre from the command line (``calibre-debug -g``), the output will "
"go into a black hole. The ``print`` function always returns its first "
"argument."
msgstr "``print(a [, b]*)`` — виводить аргументи до стандартного виведення. Якщо ви не запускали calibre з командного рядка (calibre-debug -g), дані нікуди не буде виведено. Функція ``print`` завжди повертає свій перший аргумент."

#: ../../__w/calibre/calibre/manual/template_lang.rst:637
msgid ""
"``range(start, stop, step, limit)`` -- returns a list of numbers generated "
"by looping over the range specified by the parameters start, stop, and step,"
" with a maximum length of limit. The first value produced is 'start'. "
"Subsequent values ``next_v = current_v + step``. The loop continues while "
"``next_v < stop`` assuming ``step`` is positive, otherwise while ``next_v > "
"stop``. An empty list is produced if ``start`` fails the test: ``start >= "
"stop`` if ``step`` is positive. The ``limit`` sets the maximum length of the"
" list and has a default of 1000. The parameters ``start``, ``step``, and "
"``limit`` are optional. Calling ``range()`` with one argument specifies "
"``stop``. Two arguments specify ``start`` and ``stop``. Three arguments "
"specify ``start``, ``stop``, and ``step``. Four arguments specify ``start``,"
" ``stop``, ``step`` and ``limit``. Examples::"
msgstr "``range(початок, кінець, крок, обмеження)`` — повертає список, який створено циклічним проходженням діапазону, який вказано параметрами «початок», «кінець» та «крок» із максимальною довжиною «обмеження». Першим значенням у списку буде «початок». Наступними значеннями будуть ``наступне_значення = поточне_значення + крок``. Проходження циклу триватиме, доки ``наступне_значення < кінець`` , якщо ``крок`` є додатним, інакше, доки ``наступне_значення > кінець``. Буде виведено порожній список, якщо не буде виконано умову ``початок >= кінець`` і ``крок`` є додатним. Значення ``обмеження`` встановлює максимальну довжину списку. Типовим значенням є 1000. Параметри ``початок``, ``крок`` і ``обмеження`` є необов'язковими. Виклик ``range()`` із одним аргументом задає ``кінець``. Два аргументи задають ``початок`` і ``кінець``. Три аргументи задають ``початок``, ``кінець`` і ``крок``. Чотири аргументи задають ``початок``, ``кінець``, ``крок`` і ``обмеження``. Приклади::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:647
msgid ""
"``raw_field(lookup_name [, optional_default])`` -- returns the metadata "
"field named by ``lookup_name`` without applying any formatting. It evaluates"
" and returns the optional second argument ``optional_default`` if the "
"field's value is undefined (``None``)."
msgstr "``raw_field(назва_для_пошуку [, необов'язкове_типове_значення])`` — повертає вміст іменованого поля метаданих без застосування форматування. Обробляє і повертає додатковий другий аргумент, ``необов'язкове_типове_значення``, якщо значення поля не визначено (``None``)."

#: ../../__w/calibre/calibre/manual/template_lang.rst:648
msgid ""
"``raw_list(lookup_name, separator)`` -- returns the metadata list named by "
"``lookup_name`` without applying any formatting or sorting, with the items "
"separated by separator."
msgstr "``raw_list(назва_для_пошуку, роздільник)`` — повертає список метаданих з назвою «назва_для_пошуку» без застосування будь-якого форматування або упорядковування. Записи у списку буде відокремлено значенням «роздільник»."

#: ../../__w/calibre/calibre/manual/template_lang.rst:649
msgid ""
"``re_group(value, pattern [, template_for_group]*)`` --  return a string "
"made by applying the regular expression pattern to ``value`` and replacing "
"each matched instance with the value returned by the corresponding template."
" In :ref:`Template Program Mode <template_mode>`, like for the ``template`` "
"and the ``eval`` functions, you use ``[[`` for ``{`` and ``]]`` for ``}``."
msgstr "``re_group(значення, взірець [, шаблон_для_групи]*)`` — повертає рядок, створений за допомогою застосування формального виразу заданого зразком до ``значення`` та заміною кожного з відповідників значенням, повернутим відповідним шаблоном. У :ref:`режимі шаблонного програмування <template_mode>`, як і у функціях template та eval, замість ``{`` слід використовувати ``[[``, замість `}` — ``]]``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:651
msgid ""
"The following example looks for a series with more than one word and "
"uppercases the first word::"
msgstr "У наведеному нижче прикладі виконується пошук записів циклів із декількох слів і перша літера першого слова замінюється на велику::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:655
msgid ""
"``round(x)`` -- returns the nearest integer to ``x``. Throws an exception if"
" ``x`` is not a number."
msgstr "``round(x)`` — повертає найближче до ``x`` ціле число. Надсилає виключення, якщо ``x`` не є числом."

#: ../../__w/calibre/calibre/manual/template_lang.rst:656
msgid "``series_sort()`` -- returns the series sort value."
msgstr "series_sort() — повертає значення впорядкування циклу."

#: ../../__w/calibre/calibre/manual/template_lang.rst:657
msgid ""
"``strcat(a [, b]*)`` -- can take any number of arguments. Returns a string "
"formed by concatenating all the arguments."
msgstr "``strcat(a [, b]*)`` — може приймати довільну кількість аргументів. Повертає рядок, отриманий з'єднанням всіх аргументів.."

#: ../../__w/calibre/calibre/manual/template_lang.rst:658
msgid ""
"``strcat_max(max, string1 [, prefix2, string2]*)`` -- Returns a string "
"formed by concatenating the arguments. The returned value is initialized to "
"``string1``. Strings made from ``prefix, string`` pairs are added to the end"
" of the value as long as the resulting string length is less than ``max``. "
"Prefixes can be empty. Returns ``string1`` even if ``string1`` is longer "
"than ``max``. You can pass as many ``prefix, string`` pairs as you wish."
msgstr "strcat_max(максимум, рядок1 [, префікс2, рядок2]*) — повертає рядок, утворений об’єднанням аргументів функції. Початковим значенням результату буде ``рядок1``. Пари ``префікс, рядок`` додаватимуться в кінець результату, якщо довжина рядка-результату не перевищуватиме значення ``максимум``. Префікси можуть бути порожніми. Значення ``рядок1`` буде повернуто, навіть якщо довжина рядка ``рядок1`` перевищує ``максимум``. Функції можна передавати довільну кількість пар ``префікс, рядок``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:659
msgid ""
"``strcmp(x, y, lt, eq, gt)`` -- does a case-insensitive lexical comparison "
"of ``x`` and ``y``. Returns ``lt`` if ``x < y``, ``eq`` if ``x == y``, "
"otherwise ``gt``. This function can often be replaced by one of the lexical "
"comparison operators (``==``, ``>``, ``<``, etc.)"
msgstr "strcmp(x, y, lt, eq, gt) — виконує лексичне порівняння ``x`` і ``y`` без врахування регістру. Повертає ``lt``, якщо ``x < y`, ``eq``, якщо ``x == y``, в усіх інших випадках повертає ``gt``. Цю функцію часто може бути замінено одним із операторів лексичного порівняння (``==``, ``>``, ``<`` тощо)"

#: ../../__w/calibre/calibre/manual/template_lang.rst:660
msgid ""
"``strcmpcase(x, y, lt, eq, gt)`` -- does a case-sensitive lexical comparison"
" of ``x`` and ``y``. Returns ``lt`` if ``x < y``, ``eq`` if ``x == y``, "
"otherwise ``gt``."
msgstr "strcmpcase(x, y, lt, eq, gt) — виконує лексичне порівняння ``x`` і ``y`` із врахуванням регістру. Повертає ``lt``, якщо ``x < y``. Повертає ``eq``, якщо ``x == y``. За інших умов повертає ``gt``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:662
msgid ""
"Note: This is NOT the default behavior used by calibre, for example, in the "
"lexical comparison operators (``==``, ``>``, ``<``, etc.). This function "
"could cause unexpected results, preferably use ``strcmp()`` whenever "
"possible."
msgstr "Зауваження: це НЕ типова поведінка calibre, наприклад, у операторах лексичного порівняння (``==``, ``>``, ``<`` тощо). Використання цієї функції може призвести до неочікуваних результатів, радимо вам користуватися, якщо це можливо, ``strcmp()``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:664
msgid "``strlen(value)`` -- Returns the length of the string ``value``."
msgstr "``strlen(значення)`` — повертає довжину рядка ``значення``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:665
msgid ""
"``substr(str, start, end)`` -- returns the ``start``'th through the "
"``end``'th characters of ``str``. The first character in ``str`` is the "
"zero'th character. If ``end`` is negative, then it indicates that many "
"characters counting from the right. If ``end`` is zero, then it indicates "
"the last character. For example, ``substr('12345', 1, 0)`` returns "
"``'2345'``, and ``substr('12345', 1, -1)`` returns ``'234'``."
msgstr "``substr(рядок, початок, кінець)`` — повертає символи від символу з номером ``початок`` до символу з номером ``кінець`` у рядку ``рядок``. Вважається, що у рядок починається з нульового символу. Якщо значення ``кінець`` є від’ємним, символи буде відраховано у напрямку до початку рядка. Якщо значенням ``кінець`` є нуль, кінцем вважатиметься останній символ. Приклади: ``substr('12345', 1, 0)`` повертає ``'2345'``, а ``substr('12345', 1, -1)`` повертає ``'234'``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:666
msgid ""
"``subtract(x, y)`` -- returns ``x - y``. Throws an exception if either ``x``"
" or ``y`` are not numbers. This function can usually be replaced by the "
"``-`` operator."
msgstr "``subtract(x, y)`` — повертає різницю ``x - y``. Повідомляє про виключення, якщо ``x`` або ``y`` не є числом. Зазвичай, цю функцію можна замінити оператором ``-``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:667
msgid ""
"``switch_if([test_expression, value_expression,]+ else_expression)`` -- for "
"each ``test_expression, value_expression`` pair, checks if "
"``test_expression`` is True (non-empty) and if so returns the result of "
"``value_expression``. If no ``test_expression`` is True then the result of "
"``else_expression` is returned. You can have as many ``test_expression, "
"value_expression`` pairs as you want."
msgstr "``switch_if([вираз_перевірки, вираз_значення,]+ альтернативний_вираз)`` — для кожної пари ``вираз_перевірки, вираз_значення`` перевіряє, чи дорівнює ``вираз_перевірки`` True (непорожнє значення) і, якщо це так, повертає результат ``вираз_значення``. Якщо, жоден ``вираз_перевірки`` не дорівнює True, буде повернуто ``альтернативний_вираз``. Можлива кількість пар ``вираз_перевірки, вираз_значення`` є необмеженою."

#: ../../__w/calibre/calibre/manual/template_lang.rst:668
msgid ""
"``today()`` -- return a date+time string for today (now). This value is "
"designed for use in `format_date` or `days_between`, but can be manipulated "
"like any other string. The date is in `ISO "
"<https://en.wikipedia.org/wiki/ISO_8601>`_ date/time format."
msgstr "``today()`` — повертає сьогоднішню дату і час (зараз). Це значення створено для використання у `format_date` або `days_between`, але з ним можна працювати як зі звичайним рядком. Дату буде повернуто у форматі ISO <https://en.wikipedia.org/wiki/ISO_8601>`_."

#: ../../__w/calibre/calibre/manual/template_lang.rst:669
msgid ""
"``template(x)`` -- evaluates ``x`` as a template. The evaluation is done in "
"its own context, meaning that variables are not shared between the caller "
"and the template evaluation."
msgstr "``template(x)`` — обробляє ``x`` як шаблон. Обробка виконується у власному контексті, тобто змінні не є спільними для обробки функції виклику і шаблона."

#: ../../__w/calibre/calibre/manual/template_lang.rst:670
msgid ""
"``to_hex(val)`` -- returns the string ``val`` encoded in hex. This is useful"
" when constructing calibre URLs."
msgstr "``to_hex(значення)`` — повертає рядок ``значення``, який закодовано шістнадцятковими числами. Корисно при побудові адрес calibre."

#: ../../__w/calibre/calibre/manual/template_lang.rst:671
msgid ""
"``urls_from_identifiers(identifiers, sort_results)`` -- given a comma-"
"separated list of ``identifiers``, where an `identifier` is a colon-"
"separated pair of values (``id_name:id_value``), returns a comma-separated "
"list of HTML URLs generated from the identifiers. The list not sorted if "
"sort_results is ``0`` (character or number), otherwise it is sorted "
"alphabetically by the identifier name. The URLs are generated in the same "
"way as the built-in identifiers column when shown in :guilabel:`Book "
"details`."
msgstr "``urls_from_identifiers(ідентифікатори, упорядкувати_результати)`` — за заданим списком відокремлених комами ``ідентифікаторів``, де ідентифікатором є пара відокремлених двокрапкою значень (``назва:значення_ідентифікатора``), повертає список відокремлених комами адрес HTML на основі ідентифікаторів. Список лишиться неупорядкованим, якщо упорядкувати_результати має значення ``0`` (символ або число), інакше, список буде упорядковано за назвами ідентифікаторів. Адреси буде створено у той самий спосіб, що і для вбудованого стовпчика ідентифікаторів, який показано на панелі подробиць щодо книги."

#: ../../__w/calibre/calibre/manual/template_lang.rst:676
msgid "More complex programs in template expressions - Template Program Mode"
msgstr "Складніші програми у виразах шаблонів — режим програмування шаблонів."

#: ../../__w/calibre/calibre/manual/template_lang.rst:678
msgid ""
"`Template Program Mode` (`TPM`) is a blend of :ref:`General Program Mode "
"<general_mode>` and :ref:`Single Function Mode <single_mode>`. `TPM` differs"
" from Single Function Mode in that it permits writing template expressions "
"that refer to other metadata fields, use nested functions, modify variables,"
" and do arithmetic. It differs from `General Program Mode` in that the "
"template is contained between ``{`` and ``}`` characters and doesn't begin "
"with the word ``program:``. The program portion of the template is a General"
" Program Mode expression list."
msgstr "`Режим програмування шаблонів` є сумішшю :ref:`загального режиму програмування <general_mode>` і :ref:`режиму єдиної функції <single_mode>`. Режим програмування шаблонів відрізняється від режиму єдиної функції тим, що у ньому можна писати вирази шаблонів, які посилаються на інші поля метаданих, використовувати вкладені функції, змінювати значення змінних і виконувати арифметичні дії. Він відрізняється від загального режиму програмування тим, що шаблон міститься між символами ``{`` і ``}`` і не починається зі слова ``program:``. Програмна частина шаблона є списком виразів загального режиму програмування."

#: ../../__w/calibre/calibre/manual/template_lang.rst:681
msgid ""
"Example: assume you want a template to show the series for a book if it has "
"one, otherwise show the value of a custom field #genre. You cannot do this "
"in the :ref:`Single Function Mode <single_mode>` because you cannot make "
"reference to another metadata field within a template expression. In `TPM` "
"you can, as the following expression demonstrates::"
msgstr "Почнімо з прикладу. Припустімо, що ви хочете, щоб ваш шаблон показував цикл для книги, яка належить до циклу, і значення нетипового поля #genre, якщо книга не належить до циклів. Зробити це за допомогою :ref:`режиму єдиної функції <single_mode>` неможливо, оскільки ви не можете послатися на інше поле метаданих у виразі шаблона. Але у програмному режимі ви можете це зробити. Спрацює такий вираз::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:686
msgid "The example shows several things:"
msgstr "Приклад демонструє декілька речей:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:688
msgid ""
"`TPM` is used if the expression begins with ``:'`` and ends with ``'}``. "
"Anything else is assumed to be in :ref:`Single Function Mode <single_mode>`."
msgstr "`Режим програмування шаблонів` буде використано, якщо вираз починається з ``:'`` і завершується ``'}``. Усі інші варіанти вважатимуться використанням :ref:`режиму єдиної функції <single_mode>`."

#: ../../__w/calibre/calibre/manual/template_lang.rst:689
msgid ""
"the variable ``$`` stands for the field named in the template: the "
"expression is operating upon, ``#series`` in this case."
msgstr "змінна ``$`` позначає іменоване у шаблоні поле, яке обробляє вираз; у нашому випадку це ``#series``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:690
msgid ""
"functions must be given all their arguments. There is no default value. For "
"example, the standard built-in functions must be given an additional initial"
" parameter indicating the source field."
msgstr "функціями мають передаватися усі їхні аргументи. Типового значення немає. Наприклад, стандартним вбудованим функціями слід передавати додатковий початковий параметр, який вказує на поле джерела даних."

#: ../../__w/calibre/calibre/manual/template_lang.rst:691
msgid "white space is ignored and can be used anywhere within the expression."
msgstr "пробіли буде проігноровано; їх можна використовувати будь-де у виразі."

#: ../../__w/calibre/calibre/manual/template_lang.rst:692
msgid ""
"constant strings are enclosed in matching quotes, either ``'`` or ``\"``."
msgstr "сталі рядки слід брати у відповідні лапки ``'`` або ``\"``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:694
msgid ""
"All the functions listed under `Single Function Mode` and `General Program "
"Mode` can be used in `TPM`."
msgstr "У `режимі програмування шаблонів` можна користуватися усіма функціями зі списків `режиму єдиної функції` і `загальному режимі програмування`."

#: ../../__w/calibre/calibre/manual/template_lang.rst:696
msgid ""
"In `TPM`, using ``{`` and ``}`` characters in string literals can lead to "
"errors or unexpected results because they confuse the template processor. It"
" tries to treat them as template expression boundaries, not characters. In "
"some but not all cases you can replace a ``{`` with ``[[`` and a ``}`` with "
"`]]`. Generally, if your program contains ``{`` and ``}`` characters then "
"you should use `General Program Mode`."
msgstr "У режимі програмування шаблонів використання символів ``{`` і ``}`` у рядкових літералах режиму програмування шаблонів може призвести до помилок або неочікуваних результатів, оскільки ці символи заважають нормальній роботі обробника шаблонів. Він намагається обробити їх як межі виразу шаблона, а не символи. У деяких, але не в усіх випадках, ви можете замінити ``{`` на ``[[`` і ``}`` на `]]`. Загалом кажучи, якщо у вашій програмі є символи ``{`` і ``}``, вам слід користуватися `загальним режимом програмування`."

#: ../../__w/calibre/calibre/manual/template_lang.rst:698
msgid ""
"As with `General Program Mode`, for functions documented under :ref:`Single "
"Function Mode <single_mode>` you must supply the value the function is to "
"act upon as the first parameter in addition to the documented parameters. In"
" `TPM` you can use ``$`` to access the value specified by the ``lookup "
"name`` for the template expression."
msgstr "Як і у `загальному режимі програмування`, для функцій з документації до :ref:`режиму єдиної функції <single_mode>` вам доведеться передати функції значення, з яким вона має працювати, як перший параметр, додаткового до документованих параметрів. У режимі програмування шаблонів ви можете скористатися ``$`` для доступу до значення, яке вказано ``назвою для пошуку`` для виразу шаблона."

#: ../../__w/calibre/calibre/manual/template_lang.rst:703
msgid "Python Template Mode"
msgstr "Режим шаблонів Python"

#: ../../__w/calibre/calibre/manual/template_lang.rst:705
msgid ""
"Python Template Mode (PTM) lets you write templates using native python and "
"the `calibre API <https://manual.calibre-ebook.com/develop.html#api-"
"documentation-for-various-parts-of-calibre>`_. The database API will be of "
"most use; further discussion is beyond the scope of this manual. PTM "
"templates are faster and can do more complicated operations but you must "
"know how to write code in python using the calibre API."
msgstr "Режим шаблонів Python (PTM) надає вам змогу писати шаблони за допомогою мови Python та `програмного інтерфейсу calibre <https://manual.calibre-ebook.com/develop.html#api-documentation-for-various-parts-of-calibre>`_. Найкориснішим програмним інтерфейсом буде програмний інтерфейс роботи з базою даних. Подальше обговорення не належить до предмета цього підручника. Шаблони PTM є швидшими і можуть виконувати складніші дії, але вам потрібні будуть значення щодо написання коду мовою Python за допомогою програмного інтерфейсу calibre."

#: ../../__w/calibre/calibre/manual/template_lang.rst:707
msgid "A PTM template begins with:"
msgstr "Шаблон PTM розпочинається так:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:725
msgid ""
"You can add the above text to your template using the context menu, usually "
"accessed with a right click. The comments are not significant and can be "
"removed. You must use python indenting."
msgstr "Ви можете додати наведений вище текст до вашого шаблона за допомогою контекстного меню, доступ до якого можна отримати за допомогою клацання правою кнопкою миші. Коментарі є необов'язковими — їх можна вилучити. Вам слід використовувати відступи, які використовують у Python."

#: ../../__w/calibre/calibre/manual/template_lang.rst:727
msgid ""
"The context object supports ``str(context)`` that returns a string of the "
"context's contents, and ``context.attributes`` that returns a list of the "
"attribute names in the context."
msgstr "Для об'єкта контексту передбачено підтримку ``str(контекст)``, яка повертає рядок вмісту контексту, та ``context.attributes``, який повертає список назв атрибутів у контексті."

#: ../../__w/calibre/calibre/manual/template_lang.rst:729
msgid ""
"The ``context.funcs`` attribute allows calling Built-in and User template "
"functions, and Stored GPM/Python templates, so that you can execute them "
"directly in your code. The functions are retrieved using their names. If the"
" name conflicts with a Python keyword, add an underscore to the end of the "
"name. Examples:"
msgstr "За допомогою атрибуту ``context.funcs`` можна викликати вбудовані функції та функції шаблонів користувача, а також збережені шаблони GPM/Python так, щоб їх можна було виконати безпосередньо у вашому коді. Функції буде отримано за назвами. Якщо виникне конфлікт назв із ключовим словом Python, додайте символ підкреслювання наприкінці назви. Приклади:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:736
msgid ""
"Here is an example of a PTM template that produces a list of all the authors"
" for a series. The list is stored in a `Column built from other columns, "
"behaves like tags`. It shows in :guilabel:`Book details` and has the "
":guilabel:`on separate lines` checked (in :guilabel:`Preferences->Look & "
"feel->Book details`). That option requires the list to be comma-separated. "
"To satisfy that requirement the template converts commas in author names to "
"semicolons then builds a comma-separated list of authors. The authors are "
"then sorted, which is why the template uses author_sort."
msgstr "Нижче наведено приклад шаблона PTM, який створює список усіх авторів для циклу книг. Список буде збережено до «стовпчика побудованого на основі інших стовпчиків, який поводитиме себе як мітки». Його буде показано у :guilabel:`Подробицях щодо книги`, для нього буде використано позначений стан пункту :guilabel:`в окремих рядках` (на сторінці :guilabel:`Налаштування->Вигляд та поведінка->Подробиці щодо книги`). Використання цього пункту потребуватиме відокремлення записів у списку комами. Щоб виконати цю вимогу, шаблон перетворить коми у іменах авторів на крапки з комами, а потім побудує список відокремлених комами записів авторів. Записи авторів буде упорядковано, тому у шаблоні використано author_sort."

#: ../../__w/calibre/calibre/manual/template_lang.rst:757
msgid "The output in :guilabel:`Book details` looks like this:"
msgstr "Виведені дані на панелі :guilabel:`Подробиці щодо книги` виглядатимуть так:"

#: ../../__w/calibre/calibre/manual/template_lang.rst-1
msgid "E-book conversion dialog"
msgstr "Вікно перетворення електронних книг"

#: ../../__w/calibre/calibre/manual/template_lang.rst:765
msgid "Stored templates"
msgstr "Збережені шаблони"

#: ../../__w/calibre/calibre/manual/template_lang.rst:767
msgid ""
"Both :ref:`General Program Mode <general_mode>` and :ref:`Python Template "
"Mode <python_mode>` support saving templates and calling those templates "
"from another template, much like calling stored functions. You save "
"templates using :guilabel:`Preferences->Advanced->Template functions`. More "
"information is provided in that dialog. You call a template the same way you"
" call a function, passing positional arguments if desired. An argument can "
"be any expression. Examples of calling a template, assuming the stored "
"template is named ``foo``:"
msgstr "У :ref:`загальному режимі програмування <general_mode>` і :ref:`режимі шаблонів Python<python_mode> передбачено можливість збереження шаблонів загального режиму програмування та виклику цих шаблонів з інших шаблонів, подібно до виклику збережених функцій. Зберегти шаблони можна за допомогою пункту :guilabel:`Налаштування->Додатково->Шаблонні функції`. у відповідному діалоговому вікні буде наведено довідкову інформації. Викликати шаблон можна у той самий спосіб, що і функцію, передавши йому, якщо потрібно, позиційні аргументи. Аргументом може бути будь-який вираз. Приклади виклику шаблону, де ми припускаємо, що збережений шаблон має назву ``foo``:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:769
msgid "``foo()`` -- call the template passing no arguments."
msgstr "``foo()`` — виклик шаблону без передавання аргументів."

#: ../../__w/calibre/calibre/manual/template_lang.rst:770
msgid ""
"``foo(a, b)`` call the template passing the values of the two variables "
"``a`` and ``b``."
msgstr "``foo(a, b)`` — виклик шаблону з передаванням значень двох змінних — ``a`` і ``b``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:771
msgid ""
"``foo(if field('series') then field('series_index') else 0 fi)`` -- if the "
"book has a ``series`` then pass the ``series_index``, otherwise pass the "
"value ``0``."
msgstr "``foo(if field('series') then field('series_index') else 0 fi)`` — якщо книга належить до циклу, передати номер книги у циклі, інакше — передати значення ``0``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:773
msgid ""
"In GPM you retrieve the arguments passed in the call to the stored template "
"using the ``arguments`` function. It both declares and initializes local "
"variables, effectively parameters. The variables are positional; they get "
"the value of the parameter given in the call in the same position. If the "
"corresponding parameter is not provided in the call then ``arguments`` "
"assigns that variable the provided default value. If there is no default "
"value then the variable is set to the empty string. For example, the "
"following ``arguments`` function declares 2 variables, ``key``, "
"``alternate``::"
msgstr "Отримання аргументів відбувається за допомогою виклику збереженого шаблона за допомогою функції ``arguments``. Ця функція одразу оголошує і ініціалізує локальні змінні, які виконують роль параметрів. Ці змінні є позиційними — їм надається значення, яке стоїть у виклику на відповідній позиції. Якщо відповідне значення змінної не було надано у виклику, ``arguments`` надає параметру типового значення. Якщо типове значення не вказано, змінній буде надано значення порожнього рядка. Наприклад, наведена нижче функція ``arguments`` оголошує 2 змінні — ``key``, ``alternate``::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:777
msgid "Examples, again assuming the stored template is named ``foo``:"
msgstr "У наведених нижче прикладах знову припускаємо, що збережений шаблон має назву ``foo``:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:779
msgid ""
"``foo('#myseries')`` -- argument ``key`` is assigned the value "
"``'myseries'`` and the argument ``alternate`` is assigned the default value "
"``'series'``."
msgstr "``foo('#myseries')`` — аргумент ``key`` матиме значення ``'myseries'``, а аргумент ``alternate`` матиме типове значення ``'series'``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:780
msgid ""
"``foo('series', '#genre')`` the variable ``key`` is assigned the value "
"``'series'`` and the variable ``alternate`` is assigned the value "
"``'#genre'``."
msgstr "``foo('series', '#genre')`` — змінній ``key`` буде надано значення ``'series'``, а змінній ``alternate`` — значення ``'#genre'``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:781
msgid ""
"``foo()`` -- the variable ``key`` is assigned the empty string and the "
"variable ``alternate`` is assigned the value ``'series'``."
msgstr "``foo()`` -— змінній ``key`` буде надано значення порожнього рядка, а змінній ``alternate`` — значення ``'series'``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:783
msgid ""
"In PTM the arguments are passed in the ``arguments`` parameter, which is a "
"list of strings. There isn't any way to specify default values. You must "
"check the length of the ``arguments`` list to be sure that the number of "
"arguments is what you expect."
msgstr "У PTM аргументи буде передано у формі параметра ``arguments``, який є списком рядків. Не існує способу вказати типові значення. Вам слід перевірити довжину списку ``arguments``, щоб переконатися, що кількість аргументів є тією, на яку ви сподіваєтеся."

#: ../../__w/calibre/calibre/manual/template_lang.rst:785
msgid ""
"An easy way to test stored templates is using the ``Template tester`` "
"dialog. For ease of access give it a keyboard shortcut in "
":guilabel:`Preferences->Advanced->Keyboard shortcuts->Template tester`. "
"Giving the ``Stored templates`` dialog a shortcut will help switching more "
"rapidly between the tester and editing the stored template's source code."
msgstr "Простим способом тестування збережених шаблонів є використання вікна ``Засіб тестування шаблонів``. Для полегшення доступу надайте цьому вікну клавіатурного скорочення за допомогою пункту :guilabel:`Налаштування->Додатково->Клавіатурні скорочення->Засіб тестування шаблонів`. Надання клавіатурного скорочення вікну ``Збережені шаблони`` допоможе вам швидше перемикатися між тестуванням та редагування початкового коду збереженого шаблону."

#: ../../__w/calibre/calibre/manual/template_lang.rst:788
msgid "Providing additional information to templates"
msgstr "Надання додаткової інформації шаблонам"

#: ../../__w/calibre/calibre/manual/template_lang.rst:790
msgid ""
"A developer can choose to pass additional information to the template "
"processor, such as application-specific book metadata or information about "
"what the processor is being asked to do. A template can access this "
"information and use it during the evaluation."
msgstr "Розробник може передати додаткові відомості обробнику шаблонів, зокрема, специфічні для книги метадані або відомості про те, що слід виконати обробнику. Шаблон може отримувати доступ до цих відомостей і використовувати їх під час обробки."

#: ../../__w/calibre/calibre/manual/template_lang.rst:792
msgid "**Developer: how to pass additional information**"
msgstr "**Розробник: як передати додаткові відомості**"

#: ../../__w/calibre/calibre/manual/template_lang.rst:794
msgid ""
"The additional information is a Python dictionary containing pairs "
"``variable_name: variable_value`` where the values must be strings. The "
"template can access the dictionary, creating template local variables named "
"``variable_name`` containing the value ``variable_value``. The user cannot "
"change the name so it is best to use names that won't collide with other "
"template local variables, for example by prefixing the name with an "
"underscore."
msgstr "Додатковими відомостями є словник Python, який містить пари ``назва_змінної: значення_змінної``, де значеннями мають бути рядки. Шаблон може отримувати доступ до словника, створюючи локальні змінні із назвами ``назва_змінної``, які міститимуть значення ``значення_змінної``. Користувач не може змінювати назву, тому краще користуватися назвами, які не збігатимуться із локальними змінними інших шаблонів. Можна, наприклад, додати до усіх назв початковий символ підкреслювання."

#: ../../__w/calibre/calibre/manual/template_lang.rst:796
msgid ""
"This dictionary is passed to the template processor (the ``formatter``) "
"using the named parameter ``global_vars=your_dict``. The full method "
"signature is::"
msgstr "Цей словник буде передано обробнику шаблонів (``форматувальнику``) за допомогою іменованого параметра ``global_vars=ваш_словник``. Ось повний запис методу::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:804
msgid "**Template writer: how to access the additional information**"
msgstr "**Розробник шаблонів: як отримати доступ до додаткових відомостей**"

#: ../../__w/calibre/calibre/manual/template_lang.rst:806
msgid ""
"You access the additional information (the ``globals`` dictionary) in a "
"template using the template function::"
msgstr "Отримати доступ до додаткових відомостей (словника ``globals``) у шаблоні можна за допомогою шаблонної функції::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:810
msgid ""
"where ``id`` is any legal variable name. This function checks whether the "
"additional information provided by the developer contains the name. If it "
"does then the function assigns the provided value to a template local "
"variable with that name. If the name is not in the additional information "
"and if an ``expression`` is provided, the ``expression`` is evaluated and "
"the result is assigned to the local variable. If neither a value nor an "
"expression is provided, the function assigns the empty string (``''``) to "
"the local variable."
msgstr "де записом ``ідентифікатор`` є будь-яка коректна назва змінної. Ця функція перевіряє, чи у додаткових відомостях, наданих розробником, міститься відповідна назва. Якщо це так, функція призначає надане значення змінної локальній змінній із вказаною назвою. Якщо назву змінної не буде виявлено у додаткових відомостях і якщо вказано ``вираз``, буде виконано обчислення ``виразу`` із призначенням результату локальній змінній. Якщо не буде знайдено ні значення, ні виразу, локальній змінній буде призначено порожній рядок (``''``)."

#: ../../__w/calibre/calibre/manual/template_lang.rst:812
msgid ""
"A template can set a value in the ``globals`` dictionary using the template "
"function::"
msgstr "Шаблон може встановлювати значення у словнику ``globals`` за допомогою шаблонної функції::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:816
msgid ""
"This function sets the ``globals`` dictionary key:value pair ``id:value`` "
"where ``value`` is the value of the template local variable ``id``. If that "
"local variable doesn't exist then ``value`` is set to the result of "
"evaluating ``expression``."
msgstr "Ця функція встановлює значення пари словника ``globals`` ключ:значення ``ідентифікатор:значення``, де ``значенням`` є значення локальної змінної шаблона ``ідентифікатор``. Якщо такої локальної змінної не існує, ``значення`` буде встановлено для результату обчислення ``виразу``."

#: ../../__w/calibre/calibre/manual/template_lang.rst:819
msgid "Notes on the difference between modes"
msgstr "Зауваження щодо відмінностей між режимами"

#: ../../__w/calibre/calibre/manual/template_lang.rst:821
msgid ""
"The three program modes, :ref:`Single Function Mode <single_mode>` (SFM), "
":ref:`Template Program Mode <template_mode>` (`TPM`), and :ref:`General "
"Program Mode <general_mode>` (`GPM`), work differently. SFM is intended to "
"be 'simple' so it hides a lot of programming language bits."
msgstr "У роботі трьох режимів програмування, :ref:`режиму єдиної функції <single_mode>`, :ref:`режиму програмування шаблонів <template_mode>` та :ref:`загального режиму програмування <general_mode>` є відмінності. Режим єдиної функції є «простим», тому у ньому багато можливостей програмування «приховано»."

#: ../../__w/calibre/calibre/manual/template_lang.rst:823
msgid "Differences:"
msgstr "Відмінності:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:825
msgid ""
"In SFM the value of the column is always passed as an 'invisible' first "
"argument to a function included in the template."
msgstr "У режимі єдиної функції значення стовпчика завжди передається як «невидимий» перший аргумент функції, включено до шаблона."

#: ../../__w/calibre/calibre/manual/template_lang.rst:826
msgid ""
"SFM doesn't support the difference between variables and strings; all values"
" are strings."
msgstr "У режимі єдиної функції не передбачено підтримки розрізнення між змінними і рядками; усі значення є рядками."

#: ../../__w/calibre/calibre/manual/template_lang.rst:827
msgid ""
"The following SFM template returns either the series name or the string \"no"
" series\"::"
msgstr "У наведеному нижче шаблоні режиму єдиної функції шаблон повертає або назву циклу, або рядок «no series»::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:831
msgid "The equivalent template in `TPM` is ::"
msgstr "Еквівалентний шаблон у режимі програмування шаблонів::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:835
msgid "The equivalent template in `GPM` is::"
msgstr "Еквівалентний шаблон у `режимі загального програмування`::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:839
msgid ""
"The first argument to ``ifempty`` is the value of the field ``series``. The "
"second argument is the string ``no series``. In SFM the first argument, the "
"value of the field, is automatically passed (the invisible argument)."
msgstr "Першим аргументом ``ifempty`` є значення поля ``series``, а другим аргументом — рядок ``no series``. У режимі єдиної функції перший аргумент, значення поля, передається автоматично (невидимий аргумент)."

#: ../../__w/calibre/calibre/manual/template_lang.rst:840
msgid ""
"Several template functions, for example ``booksize()`` and "
"``current_library_name()``, take no arguments. Because of the 'invisible "
"argument' you cannot use these functions in SFM."
msgstr "Декілька шаблонних функцій, зокрема ``booksize()`` і ``current_library_name()``, не приймають аргументів. Через наявність невидимого аргументу ви не зможете скористатися цими функціями у режимі єдиної функції."

#: ../../__w/calibre/calibre/manual/template_lang.rst:841
msgid ""
"Nested functions, where a function calls another function to compute an "
"argument, cannot be used in SFM. For example this template, intended to "
"return the first 5 characters of the series value uppercased, won't work in "
"SFM::"
msgstr "У режимі єдиної функції не можна скористатися вкладеними функціями, коли одна з функцій викликає іншу функцію для обчислення свого аргументу. Наприклад, цей шаблон, який призначено для отримання перших 5 літер значення назви циклу у верхньому регістрі, не працюватиме у режимі єдиної функції::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:845
msgid ""
"`TPM` and `GPM` support nested functions. The above template in `TPM` would "
"be::"
msgstr "У шаблонному режимі програмування та загальному режимі програмування передбачено підтримку вкладених функцій. Наведений вище шаблон у шаблонному режимі програмування можна записати так::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:849
msgid "In `GPM` it would be::"
msgstr "У `загальному режимі програмування` це було б::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:853
msgid ""
"As noted in the above :ref:`Template Program Mode <template_mode>` section, "
"using ``{`` and ``}`` characters in `TPM` string literals can lead to errors"
" or unexpected results because they confuse the template processor. It tries"
" to treat them as template boundaries, not characters. In some but not all "
"cases you can replace a ``{`` with ``[[`` and a ``}`` with `]]`. Generally, "
"if your program contains ``{`` and ``}`` characters then you should use "
"`General Program Mode`."
msgstr "Як було зауважено вище у розділі :ref:`Режим програмування шаблонів <template_mode>`, використання символів ``{`` і ``}`` у рядкових літералах режиму програмування шаблонів може призвести до помилок або неочікуваних результатів, оскільки ці символи заважають нормальній роботі обробника шаблонів. Він намагається обробити їх як межі шаблона, а не символи. У деяких, але не в усіх випадках, ви можете замінити ``{`` на ``[[`` і ``}`` на `]]`. Загалом кажучи, якщо у вашій програмі є символи ``{`` і ``}``, вам слід користуватися `загальним режимом програмування`."

#: ../../__w/calibre/calibre/manual/template_lang.rst:857
msgid "User-defined Python template functions"
msgstr "Визначені користувачем шаблонні функції Python"

#: ../../__w/calibre/calibre/manual/template_lang.rst:859
msgid ""
"You can add your own Python functions to the template processor. Such "
"functions can be used in any of the three template programming modes. The "
"functions are added by going to :guilabel:`Preferences -> Advanced -> "
"Template functions`. Instructions are shown in that dialog."
msgstr "Ви можете додавати власні функції мовою Python до обробника шаблонів. Такими функціями можна скористатися в усіх трьох режимах програмування шаблонів. Додати функції можна за допомогою сторінки :guilabel:`Налаштування -> Додатково -> Шаблонні функції`. У діалоговому вікні, яке буде відкрито програмою, можна знайти відповідні настанови."

#: ../../__w/calibre/calibre/manual/template_lang.rst:862
msgid "Special notes for save/send templates"
msgstr "Спеціальні нотатки щодо шаблонів збереження або надсилання"

#: ../../__w/calibre/calibre/manual/template_lang.rst:864
msgid ""
"Special processing is applied when a template is used in a `save to disk` or"
" `send to device` template. The values of the fields are cleaned, replacing "
"characters that are special to file systems with underscores, including "
"slashes. This means that field text cannot be used to create folders. "
"However, slashes are not changed in prefix or suffix strings, so slashes in "
"these strings will cause folders to be created. Because of this, you can "
"create variable-depth folder structure."
msgstr "До шаблонів, які використовуються для дій `зберегти на диск` і `надіслати на пристрій`, застосовується спеціальна обробка. Значення полів буде очищено із заміною символів, які мають спеціальне значення у файлових системах, зокрема символів похилих рисок, на символи підкреслювання. Це означає, що текст поля не можна використовувати для створення тек. Втім, похилі риски не замінюватимуться у рядках префікса і суфікса, отже похилі риски у цих рядках можна використати для створення тек. Таким чином, ви можете створити структуру тек довільного рівня вкладеності."

#: ../../__w/calibre/calibre/manual/template_lang.rst:866
msgid ""
"For example, assume we want the folder structure `series/series_index - "
"title`, with the caveat that if series does not exist, then the title should"
" be in the top folder. The template to do this is::"
msgstr "Наприклад, припустімо ми хочемо створити структуру тек `цикл/номер_у_циклі - назва`, із умовою, що якщо циклу не існує, назву слід розташувати у верхній теці. Шаблон для виконання цього завдання::"

#: ../../__w/calibre/calibre/manual/template_lang.rst:870
msgid "The slash and the hyphen appear only if series is not empty."
msgstr "Похила риска і дефіс мають з'являтися, лише якщо цикл не є порожнім."

#: ../../__w/calibre/calibre/manual/template_lang.rst:872
msgid ""
"The lookup function lets us do even fancier processing. For example, assume "
"that if a book has a series, then we want the folder structure "
"`series/series index - title.fmt`. If the book does not have a series then "
"we want the folder structure `genre/author_sort/title.fmt`. If the book has "
"no genre then we want to use 'Unknown'. We want two completely different "
"paths, depending on the value of series."
msgstr "Функція `lookup` надає вам змогу виконувати виконувати навіть ще вишуканішу обробку. Наприклад, припустімо, що якщо книга належить до циклу, ми хочемо мати структуру тек `цикл/номер у циклі - назва.формат`. Якщо книга не належить до циклу, нам потрібна структура тек `жанр/упорядковане ім’я автора/назва.формат`. Якщо ж книга не належить до певного жанру, слід скористатися текою 'Unknown'. Нам потрібно два повністю різних шляхи, залежно від значення параметра циклу."

#: ../../__w/calibre/calibre/manual/template_lang.rst:874
msgid "To accomplish this, we:"
msgstr "Для виконання цього завдання ми:"

#: ../../__w/calibre/calibre/manual/template_lang.rst:876
msgid ""
"Create a composite field (give it lookup name #aa) containing "
"``{series}/{series_index} - {title}``. If the series is not empty, then this"
" template will produce `series/series_index - title`."
msgstr "Створимо складене поле (надавши йому назву #aa), що міститиме дані ``{series}/{series_index} - {title}``. Якщо значення циклу (series) є непорожнім, такий шаблон дасть нам `цикл/номер_у_циклі - назва`."

#: ../../__w/calibre/calibre/manual/template_lang.rst:877
msgid ""
"Create a composite field (give it lookup name #bb) containing "
"``{#genre:ifempty(Unknown)}/{author_sort}/{title}``. This template produces "
"`genre/author_sort/title`, where an empty genre is replaced with `Unknown`."
msgstr "Створимо складене поле (надавши йому назву #bb) із вмістом ``{#genre:ifempty(Unknown)}/{author_sort}/{title}``. Цей шаблон дає `жанр/упорядковані_автори/назва`. Якщо немає даних щодо жанру, запис жанру буде замінено на `Unknown`."

#: ../../__w/calibre/calibre/manual/template_lang.rst:878
msgid ""
"Set the save template to ``{series:lookup(.,#aa,#bb)}``. This template "
"chooses composite field ``#aa`` if series is not empty and composite field "
"``#bb`` if series is empty. We therefore have two completely different save "
"paths, depending on whether or not `series` is empty."
msgstr "Встановимо шаблон збереження ``{series:lookup(.,#aa,#bb)}``. Цей шаблон вибирає складене поле ``#aa``, якщо значення запису циклу є непорожнім, і складене поле ``#bb``, якщо значення запису циклу є порожнім. Таким чином, ми матимемо повністю різні шляхи для збереження книг, залежно від того, чи є запис `series` порожнім."

#: ../../__w/calibre/calibre/manual/template_lang.rst:881
msgid "Tips"
msgstr "Підказки"

#: ../../__w/calibre/calibre/manual/template_lang.rst:883
msgid ""
"Use the Template Tester to test templates. Add the tester to the context "
"menu for books in the library and/or give it a keyboard shortcut."
msgstr "Для перевірки шаблонів скористайтеся засобом перевірки шаблонів. Додайте пункт засобу до контекстного меню для книг у бібліотеці і/або встановіть для нього клавіатурне скорочення."

#: ../../__w/calibre/calibre/manual/template_lang.rst:884
msgid ""
"Templates can use other templates by referencing composite columns built "
"with the desired template. Alternatively, you can use Stored Templates."
msgstr "У шаблонах можна використовувати інші шаблони шляхом посилання на складені стовпчики, які побудовано за допомогою бажаних шаблонів. Крім того, ви можете скористатися «Збереженими шаблонами»."

#: ../../__w/calibre/calibre/manual/template_lang.rst:885
msgid ""
"In a plugboard, you can set a field to empty (or whatever is equivalent to "
"empty) by using the special template ``{}``. This template will always "
"evaluate to an empty string."
msgstr "У наборі метаданих ви можете вказати порожні значення поля (або вказати будь-який еквівалент порожнього поля) за допомогою спеціального шаблона ``{}``. Цей шаблон завжди обробляється як порожній рядок."

#: ../../__w/calibre/calibre/manual/template_lang.rst:886
msgid ""
"The technique described above to show numbers even if they have a zero value"
" works with the standard field series_index."
msgstr "Описана вище методика для показу чисел працює зі стандартним полем series_index, навіть якщо вміст відповідного поля є порожнім."

#: ../../__w/calibre/calibre/manual/template_lang.rst:891
msgid "Function reference"
msgstr "Довідник з функцій"
