diff --git a/client/strings/uk.json b/client/strings/uk.json
index 4655681d..10724bad 100644
--- a/client/strings/uk.json
+++ b/client/strings/uk.json
@@ -1,5 +1,6 @@
{
"ButtonAdd": "Додати",
+ "ButtonAddApiKey": "Додати ключ API",
"ButtonAddChapters": "Додати глави",
"ButtonAddDevice": "Додати пристрій",
"ButtonAddLibrary": "Додати бібліотеку",
@@ -20,6 +21,7 @@
"ButtonChooseAFolder": "Обрати теку",
"ButtonChooseFiles": "Обрати файли",
"ButtonClearFilter": "Очистити фільтр",
+ "ButtonClose": "Закрити",
"ButtonCloseFeed": "Закрити стрічку",
"ButtonCloseSession": "Закрити відкритий сеанс",
"ButtonCollections": "Добірки",
@@ -119,6 +121,7 @@
"HeaderAccount": "Профіль",
"HeaderAddCustomMetadataProvider": "Додати користувацький постачальник метаданих",
"HeaderAdvanced": "Розширені",
+ "HeaderApiKeys": "Ключі API",
"HeaderAppriseNotificationSettings": "Налаштування сповіщень Apprise",
"HeaderAudioTracks": "Аудіодоріжки",
"HeaderAudiobookTools": "Інструменти керування файлами книг",
@@ -162,6 +165,7 @@
"HeaderMetadataOrderOfPrecedence": "Порядок метаданих",
"HeaderMetadataToEmbed": "Вбудувати метадані",
"HeaderNewAccount": "Новий профіль",
+ "HeaderNewApiKey": "Новий ключ API",
"HeaderNewLibrary": "Нова бібліотека",
"HeaderNotificationCreate": "Створити сповіщення",
"HeaderNotificationUpdate": "Оновити сповіщення",
@@ -206,6 +210,7 @@
"HeaderTableOfContents": "Зміст",
"HeaderTools": "Інструменти",
"HeaderUpdateAccount": "Оновити профіль",
+ "HeaderUpdateApiKey": "Оновити ключ API",
"HeaderUpdateAuthor": "Оновити автора",
"HeaderUpdateDetails": "Оновити подробиці",
"HeaderUpdateLibrary": "Оновити бібліотеку",
@@ -235,6 +240,10 @@
"LabelAllUsersExcludingGuests": "Усі, крім гостей",
"LabelAllUsersIncludingGuests": "Усі, включно з гостями",
"LabelAlreadyInYourLibrary": "Вже у вашій бібліотеці",
+ "LabelApiKeyCreated": "Ключ API \"{0}\" успішно створено.",
+ "LabelApiKeyCreatedDescription": "Обов’язково скопіюйте ключ API зараз, оскільки ви більше не зможете його побачити.",
+ "LabelApiKeyUser": "Діяти від імені користувача",
+ "LabelApiKeyUserDescription": "Цей ключ API матиме ті самі дозволи, що й користувач, від імені якого він діє. Це відображатиметься в журналах так само, як і в разі надсилання запиту користувачем.",
"LabelApiToken": "Токен API",
"LabelAppend": "Додати",
"LabelAudioBitrate": "Бітрейт аудіо (наприклад, 128k)",
@@ -346,6 +355,10 @@
"LabelExample": "Приклад",
"LabelExpandSeries": "Розгорнути серії",
"LabelExpandSubSeries": "Розгорнути підсерії",
+ "LabelExpired": "Термін дії минув",
+ "LabelExpiresAt": "Термін дії закінчується о",
+ "LabelExpiresInSeconds": "Термін дії закінчується через (секунди)",
+ "LabelExpiresNever": "Ніколи",
"LabelExplicit": "Відвертий",
"LabelExplicitChecked": "Відверта (з прапорцем)",
"LabelExplicitUnchecked": "Не відверта (без прапорця)",
@@ -455,6 +468,7 @@
"LabelNewestEpisodes": "Нові епізоди",
"LabelNextBackupDate": "Дата наступного резервного копіювання",
"LabelNextScheduledRun": "Наступний запланований запуск",
+ "LabelNoApiKeys": "Без ключів API",
"LabelNoCustomMetadataProviders": "Без постачальників метаданих",
"LabelNoEpisodesSelected": "Не вибрано жодного епізоду",
"LabelNotFinished": "Незавершені",
@@ -544,6 +558,7 @@
"LabelSelectAll": "Вибрати все",
"LabelSelectAllEpisodes": "Вибрати всі епізоди",
"LabelSelectEpisodesShowing": "Вибрати {0} показаних епізодів",
+ "LabelSelectUser": "Виберіть користувача",
"LabelSelectUsers": "Вибрати користувачів",
"LabelSendEbookToDevice": "Надіслати електронну книгу на...",
"LabelSequence": "Послідовність",
@@ -709,6 +724,7 @@
"MessageAppriseDescription": "Щоб скористатися цією функцією, вам потрібно мати запущену Apprise API або API, що оброблятиме ті ж запити.
Аби надсилати сповіщення, URL-адреса API Apprise мусить бути повною, наприклад, якщо ваш API розміщено за адресою http://192.168.1.1:8337
, то необхідно вказати адресу http://192.168.1.1:8337/notify
.",
"MessageAsinCheck": "Переконайтесь, що ви використовуєте ASIN з правильної регіональної Audible зони, а не з Amazon.",
"MessageAuthenticationOIDCChangesRestart": "Перезавантажте сервер після збереження, щоб застосувати зміни OIDC.",
+ "MessageAuthenticationSecurityMessage": "Автентифікацію покращено для безпеки. Усім користувачам потрібно повторно увійти в систему.",
"MessageBackupsDescription": "Резервні копії містять користувачів, прогрес, подробиці елементів бібліотеки, налаштування сервера та зображення з /metadata/items
та /metadata/authors
. Резервні копії не містять жодних файлів з тек бібліотеки.",
"MessageBackupsLocationEditNote": "Примітка: оновлення розташування резервної копії не переносить та не змінює існуючих копій",
"MessageBackupsLocationNoEditNote": "Примітка: розташування резервної копії встановлюється за допомогою змінної середовища та не може бути змінене тут.",
@@ -730,6 +746,7 @@
"MessageChaptersNotFound": "Розділи не знайдені",
"MessageCheckingCron": "Перевірка планувальника...",
"MessageConfirmCloseFeed": "Ви дійсно бажаєте закрити цей канал?",
+ "MessageConfirmDeleteApiKey": "Ви впевнені, що хочете видалити ключ API? \"{0}\"?",
"MessageConfirmDeleteBackup": "Ви дійсно бажаєте видалити резервну копію за {0}?",
"MessageConfirmDeleteDevice": "Ви впевнені, що хочете видалити пристрій для читання \"{0}\"?",
"MessageConfirmDeleteFile": "Файл буде видалено з вашої файлової системи. Ви впевнені?",
@@ -819,7 +836,7 @@
"MessageNoItems": "Елементи відсутні",
"MessageNoItemsFound": "Елементів не знайдено",
"MessageNoListeningSessions": "Сеанси прослуховування відсутні",
- "MessageNoLogs": "Немає журнали",
+ "MessageNoLogs": "Немає журналів",
"MessageNoMediaProgress": "Прогрес відсутній",
"MessageNoNotifications": "Сповіщення відсутні",
"MessageNoPodcastFeed": "Некоректний подкаст: немає каналу",
@@ -1001,6 +1018,8 @@
"ToastEpisodeDownloadQueueClearSuccess": "Чергу на скачування епізодів очищено",
"ToastEpisodeUpdateSuccess": "{0} епізодів оновлено",
"ToastErrorCannotShare": "Не можна типово поширити на цей пристрій",
+ "ToastFailedToCreate": "Не вдалося створити",
+ "ToastFailedToDelete": "Не вдалося видалити",
"ToastFailedToLoadData": "Не вдалося завантажити дані",
"ToastFailedToMatch": "Не вдалося знайти відповідність",
"ToastFailedToShare": "Не вдалося поділитися",
@@ -1032,6 +1051,7 @@
"ToastMustHaveAtLeastOnePath": "Повинен бути хоча б один шлях",
"ToastNameEmailRequired": "Ім'я та електронна пошта обов'язкові",
"ToastNameRequired": "Ім'я обов'язкове",
+ "ToastNewApiKeyUserError": "Потрібно вибрати користувача",
"ToastNewEpisodesFound": "{0} нових епізодів знайдено",
"ToastNewUserCreatedFailed": "Не вдалося створити акаунт: \"{0}\"",
"ToastNewUserCreatedSuccess": "Новий акаунт створено",
@@ -1066,7 +1086,7 @@
"ToastProviderRemoveSuccess": "Постачальник видалений",
"ToastRSSFeedCloseFailed": "Не вдалося закрити RSS-канал",
"ToastRSSFeedCloseSuccess": "RSS-канал закрито",
- "ToastRemoveFailed": "Не вдалося видалити",
+ "ToastRemoveFailed": "Не вдалося вилучити",
"ToastRemoveItemFromCollectionFailed": "Не вдалося видалити елемент із добірки",
"ToastRemoveItemFromCollectionSuccess": "Елемент видалено з добірки",
"ToastRemoveItemsWithIssuesFailed": "Не вдалося видалити елементи бібліотеки з проблемами",