diff --git a/assets/translations/uk.json b/assets/translations/uk.json new file mode 100644 index 00000000..fd3365b6 --- /dev/null +++ b/assets/translations/uk.json @@ -0,0 +1,359 @@ +{ + "invalidURLForSource": "Неправильна URL-адреса для джерела застосунку {}", + "noReleaseFound": "Не вдалося знайти відповідне видання", + "noVersionFound": "Не вдалося визначити версію видання", + "urlMatchesNoSource": "URL не відповідає відомому джерелу", + "cantInstallOlderVersion": "Не можна встановити старішу версію застосунку", + "appIdMismatch": "Ідентифікатор пакета, завантажений, не відповідає ідентифікатору існуючого застосунку", + "functionNotImplemented": "Цей клас не реалізував цю функцію", + "placeholder": "Заповнювач", + "someErrors": "Виникла деяка помилка", + "unexpectedError": "Неочікувана помилка", + "ok": "Добре", + "and": "та", + "githubPATLabel": "Персональний ключ доступу GitHub (збільшує обмеження на швидкість)", + "includePrereleases": "Включити попередні видання", + "fallbackToOlderReleases": "Повернутися до старіших видань", + "filterReleaseTitlesByRegEx": "Фільтрувати заголовки видань за допомогою регулярного виразу", + "invalidRegEx": "Неприпустимий регулярний вираз", + "noDescription": "Немає опису", + "cancel": "Скасувати", + "continue": "Продовжити", + "requiredInBrackets": "(Обов'язково)", + "dropdownNoOptsError": "ПОМИЛКА: В ВИПАДАЮЧОМУ СПИСКУ МАЄ БУТИ ХОЧА Б ОДИН ЕЛЕМЕНТ", + "colour": "Колір", + "githubStarredRepos": "Відзначені репозиторії GitHub", + "uname": "Ім'я користувача", + "wrongArgNum": "Надано неправильну кількість аргументів", + "xIsTrackOnly": "{} - тільки відстежування", + "source": "Джерело", + "app": "застосунок", + "appsFromSourceAreTrackOnly": "Додатки з цього джерела є лише для відстежування.", + "youPickedTrackOnly": "Ви вибрали опцію лише для відстежування.", + "trackOnlyAppDescription": "Застосунок буде відстежуватися для оновлень, але Obtainium не зможе його завантажити або встановити.", + "cancelled": "Скасовано", + "appAlreadyAdded": "Застосунок вже додано", + "alreadyUpToDateQuestion": "Застосунок вже оновлено?", + "addApp": "Додати Застосунок", + "appSourceURL": "URL-адреса джерела застосунку", + "error": "Помилка", + "add": "Додати", + "searchSomeSourcesLabel": "Пошук (Лише деякі джерела)", + "search": "Пошук", + "additionalOptsFor": "Додаткові опції для {}", + "supportedSources": "Підтримувані джерела", + "trackOnlyInBrackets": "(Тільки для відстеження)", + "searchableInBrackets": "(Можливий пошук)", + "appsString": "Додатки", + "noApps": "Додатків немає", + "noAppsForFilter": "Додатків для фільтрації немає", + "byX": "За {}", + "percentProgress": "Прогрес: {}%", + "pleaseWait": "Будь ласка, зачекайте", + "updateAvailable": "Доступно оновлення", + "notInstalled": "Не встановлено", + "pseudoVersion": "псевдо-версія", + "selectAll": "Вибрати все", + "deselectX": "Скасувати вибір {}", + "xWillBeRemovedButRemainInstalled": "{} буде видалено з Obtainium, але залишиться встановленим на пристрої.", + "removeSelectedAppsQuestion": "Видалити вибрані додатки?", + "removeSelectedApps": "Видалити вибрані додатки", + "updateX": "Оновити {}", + "installX": "Встановити {}", + "markXTrackOnlyAsUpdated": "Позначити {}\n(Тільки відстежування)\nяк оновлено", + "changeX": "Змінити {}", + "installUpdateApps": "Встановити/Оновити додатки", + "installUpdateSelectedApps": "Встановити/Оновити вибрані додатки", + "markXSelectedAppsAsUpdated": "Позначити {} вибрані додатки як оновлені?", + "no": "Ні", + "yes": "Так", + "markSelectedAppsUpdated": "Позначити вибрані додатки як оновлені", + "pinToTop": "Закріпити угорі", + "unpinFromTop": "Відкріпити зверху", + "resetInstallStatusForSelectedAppsQuestion": "Скинути статус встановлення для вибраних додатків?", + "installStatusOfXWillBeResetExplanation": "Статус встановлення будь-яких вибраних додатків буде скинутий.\n\nЦе може допомогти, коли версія застосунку, відображена в Obtainium, є неправильною через невдалі оновлення або інші проблеми.", + "customLinkMessage": "Ці посилання працюють на пристроях з встановленим Obtainium", + "shareAppConfigLinks": "Поділитися посиланнями на конфігурацію Застосунку як HTML", + "shareSelectedAppURLs": "Поділитися вибраними URL-адресами додатків", + "resetInstallStatus": "Скинути статус встановлення", + "more": "Більше", + "removeOutdatedFilter": "Видалити фільтр застарілих додатків", + "showOutdatedOnly": "Показати лише застарілі додатки", + "filter": "Фільтр", + "filterApps": "Фільтрувати додатки", + "appName": "Назва застосунку", + "author": "Автор", + "upToDateApps": "Актуальні додатки", + "nonInstalledApps": "Невстановлені додатки", + "importExport": "Імпорт/Експорт", + "settings": "Налаштування", + "exportedTo": "Експортовано в {}", + "obtainiumExport": "Експорт з Obtainium", + "invalidInput": "Недійсний ввід", + "importedX": "Імпортовано {}", + "obtainiumImport": "Імпорт в Obtainium", + "importFromURLList": "Імпорт зі списку URL-адрес", + "searchQuery": "Пошуковий запит", + "appURLList": "Список URL-адрес додатків", + "line": "Лінія", + "searchX": "Пошук {}", + "noResults": "Результати відсутні", + "importX": "Імпорт {}", + "importedAppsIdDisclaimer": "Імпортовані додатки можуть неправильно відображатися як \"Не встановлені\".\nДля виправлення цього перевстановіть їх через Obtainium.\nЦе не повинно вплинути на дані додатків.\n\nПов'язано лише з URL-адресами та імпортом від третіх сторін.", + "importErrors": "Помилки імпорту", + "importedXOfYApps": "Імпортовано {} з {} додатків.", + "followingURLsHadErrors": "Помилки в наступних URL-адресах:", + "selectURL": "Вибрати URL", + "selectURLs": "Вибрати URL-адреси", + "pick": "Вибрати", + "theme": "Тема", + "dark": "Темна", + "light": "Світла", + "followSystem": "Дотримуватися системи", + "useBlackTheme": "Використовувати чисто чорну темну тему", + "appSortBy": "Сортувати додатки за", + "authorName": "Автор/Назва", + "nameAuthor": "Назва/Автор", + "asAdded": "За додаванням", + "appSortOrder": "Порядок сортування додатків", + "ascending": "За зростанням", + "descending": "За спаданням", + "bgUpdateCheckInterval": "Інтервал перевірки оновлень у фоновому режимі", + "neverManualOnly": "Ніколи - Тільки вручну", + "appearance": "Вигляд", + "showWebInAppView": "Показати джерело застосунку у вигляді веб-сторінки", + "pinUpdates": "Закріпити оновлення у верхній частині вигляду додатків", + "updates": "Оновлення", + "sourceSpecific": "Певне джерело", + "appSource": "Джерело застосунку", + "noLogs": "Немає логів", + "appLogs": "Лог застосунку", + "close": "Закрити", + "share": "Поділитися", + "appNotFound": "Застосунок не знайдено", + "obtainiumExportHyphenatedLowercase": "експорт з Obtainium", + "pickAnAPK": "Вибрати APK", + "appHasMoreThanOnePackage": "{} має більше одного пакету:", + "deviceSupportsXArch": "Ваш пристрій підтримує архітектуру процесора {}.", + "deviceSupportsFollowingArchs": "Ваш пристрій підтримує наступні архітектури процесора:", + "warning": "Попередження", + "sourceIsXButPackageFromYPrompt": "Джерело застосунку - '{}' але пакет випуску походить з '{}'. Продовжити?", + "updatesAvailable": "Доступні оновлення", + "updatesAvailableNotifDescription": "Повідомляє користувача, що доступні оновлення для одного чи декількох додатків, які відстежує Obtainium", + "noNewUpdates": "Немає нових оновлень.", + "xHasAnUpdate": "{} має оновлення.", + "appsUpdated": "Додатки оновлено", + "appsUpdatedNotifDescription": "Повідомляє користувача, що оновлення одного чи декількох додатків було застосовано в фоновому режимі", + "xWasUpdatedToY": "{} було оновлено до {}.", + "errorCheckingUpdates": "Помилка перевірки оновлень", + "errorCheckingUpdatesNotifDescription": "Повідомлення, яке з'являється, коли перевірка оновлень в фоновому режимі завершується невдачею", + "appsRemoved": "Додатки видалено", + "appsRemovedNotifDescription": "Повідомляє користувача, що один чи декілька додатків були видалені через помилки при завантаженні", + "xWasRemovedDueToErrorY": "{} було видалено через цю помилку: {}", + "completeAppInstallation": "Завершення установки застосунку", + "obtainiumMustBeOpenToInstallApps": "Для встановлення додатків Obtainium має бути відкритий", + "completeAppInstallationNotifDescription": "Прохання користувача повернутися до Obtainium для завершення установки застосунку", + "checkingForUpdates": "Перевірка оновлень", + "checkingForUpdatesNotifDescription": "Тимчасове повідомлення, яке з'являється при перевірці оновлень", + "pleaseAllowInstallPerm": "Будь ласка, дозвольте Obtainium встановлювати додатки", + "trackOnly": "Тільки відстеження", + "errorWithHttpStatusCode": "Помилка {} HTTP-коду", + "versionCorrectionDisabled": "Виправлення версії вимкнено (здається, плагін не працює)", + "unknown": "Невідомо", + "none": "Нічого", + "never": "Ніколи", + "latestVersionX": "Остання версія: {}", + "installedVersionX": "Встановлено: {}", + "lastUpdateCheckX": "Остання перевірка оновлень: {}", + "remove": "Видалити", + "yesMarkUpdated": "Так, позначити як оновлене", + "fdroid": "F-Droid Офіційний", + "appIdOrName": "Ідентифікатор або назва застосунку", + "appId": "Ідентифікатор застосунку", + "appWithIdOrNameNotFound": "Застосунок з таким ідентифікатором або назвою не знайдено", + "reposHaveMultipleApps": "Сховища можуть містити кілька додатків", + "fdroidThirdPartyRepo": "F-Droid Стороннє сховище", + "steamMobile": "Мобільний Steam", + "steamChat": "Чат Steam", + "install": "Встановити", + "markInstalled": "Позначити як встановлене", + "update": "Оновити", + "markUpdated": "Позначити як оновлене", + "additionalOptions": "Додаткові опції", + "disableVersionDetection": "Вимкнути визначення версії", + "noVersionDetectionExplanation": "Цю опцію слід використовувати лише для додатків, де визначення версії працює неправильно.", + "downloadingX": "Завантаження {}", + "downloadNotifDescription": "Повідомляє користувача про прогрес завантаження застосунку", + "noAPKFound": "APK не знайдено", + "noVersionDetection": "Визначення версії відключено", + "categorize": "Категоризувати", + "categories": "Категорії", + "category": "Категорія", + "noCategory": "Без категорії", + "noCategories": "Немає категорій", + "deleteCategoriesQuestion": "Видалити категорії?", + "categoryDeleteWarning": "Усі додатки у видалених категоріях будуть переведені у некатегоризовані.", + "addCategory": "Додати категорію", + "label": "Мітка", + "language": "Мова", + "copiedToClipboard": "Скопійовано в буфер обміну", + "storagePermissionDenied": "Відмовлено у дозволі на доступ до сховища", + "selectedCategorizeWarning": "Це замінить будь-які існуючі налаштування категорій для вибраних додатків.", + "filterAPKsByRegEx": "Фільтрувати APK за регулярним виразом", + "removeFromObtainium": "Видалити з Obtainium", + "uninstallFromDevice": "Видалити з пристрою", + "onlyWorksWithNonVersionDetectApps": "Працює лише з застосунками з вимкненим визначенням версії.", + "releaseDateAsVersion": "Використовувати дату випуску як рядок версії", + "releaseDateAsVersionExplanation": "Цю опцію слід використовувати лише для додатків, де визначення версії працює неправильно, але є дата випуску.", + "changes": "Зміни", + "releaseDate": "Дата випуску", + "importFromURLsInFile": "Імпорт з URL-адрес у файлі (наприклад, OPML)", + "versionDetectionExplanation": "Порівняти рядок версії з версією, визначеною операційною системою", + "versionDetection": "Визначення версії", + "standardVersionDetection": "Стандартне визначення версії", + "groupByCategory": "Групувати за категоріями", + "autoApkFilterByArch": "Спробувати фільтрувати APK за архітектурою ЦП, якщо можливо", + "overrideSource": "Перевизначити джерело", + "dontShowAgain": "Не показувати це знову", + "dontShowTrackOnlyWarnings": "Не показувати попередження про 'Тільки відстеження'", + "dontShowAPKOriginWarnings": "Не показувати попередження про походження APK", + "moveNonInstalledAppsToBottom": "Перемістити невстановлені додатки вниз у перегляді додатків", + "gitlabPATLabel": "Особистий токен GitLab (Увімкнення пошуку та краще виявлення APK)", + "about": "Про програму", + "requiresCredentialsInSettings": "{} потребує додаткових облікових даних (у налаштуваннях)", + "checkOnStart": "Перевірити наявність оновлень при запуску", + "tryInferAppIdFromCode": "Спробувати вивести ідентифікатор застосунку з вихідного коду", + "removeOnExternalUninstall": "Автоматично видаляти додатки, які було видалено зовнішнім чином", + "pickHighestVersionCode": "Автоматично вибрати APK з найвищим кодом версії", + "checkUpdateOnDetailPage": "Перевіряти наявність оновлень при відкритті сторінки деталей застосунку", + "disablePageTransitions": "Вимкнути анімації переходів між сторінками", + "reversePageTransitions": "Зворотні анімації переходів між сторінками", + "minStarCount": "Мінімальна кількість зірок", + "addInfoBelow": "Додати цю інформацію нижче.", + "addInfoInSettings": "Додати цю інформацію у налаштуваннях.", + "githubSourceNote": "Лімітування швидкості GitHub можна уникнути, використовуючи ключ API.", + "gitlabSourceNote": "Вилучення APK з GitLab може не працювати без ключа API.", + "sortByLastLinkSegment": "Сортувати лише за останнім сегментом посилання", + "filterReleaseNotesByRegEx": "Фільтрувати примітки до релізу за регулярним виразом", + "customLinkFilterRegex": "Фільтр кастомного посилання на APK за регулярним виразом (за замовчуванням '.apk$')", + "appsPossiblyUpdated": "Оновлення додатків спробовано", + "appsPossiblyUpdatedNotifDescription": "Повідомляє користувача, що оновлення одного або декількох додатків можливо були застосовані в фоновому режимі", + "xWasPossiblyUpdatedToY": "{} можливо було оновлено до {}.", + "enableBackgroundUpdates": "Увімкнути оновлення в фоновому режимі", + "backgroundUpdateReqsExplanation": "Оновлення в фоновому режимі може бути неможливим для всіх додатків.", + "backgroundUpdateLimitsExplanation": "Успіх фонової установки може бути визначений лише після відкриття Obtainium.", + "verifyLatestTag": "Перевірити тег 'latest'", + "intermediateLinkRegex": "Фільтр для 'Проміжного' Посилання для Відвідування", + "filterByLinkText": "Фільтрувати посилання за текстом посилання", + "intermediateLinkNotFound": "Проміжне посилання не знайдено", + "intermediateLink": "Проміжне посилання", + "exemptFromBackgroundUpdates": "Виключено з фонових оновлень (якщо ввімкнено)", + "bgUpdatesOnWiFiOnly": "Вимкнути фонові оновлення поза Wi-Fi", + "autoSelectHighestVersionCode": "Автоматичний вибір APK з найвищим кодом версії", + "versionExtractionRegEx": "Регулярний вираз для вилучення рядка версії", + "matchGroupToUse": "Група співпадінь для використання в регулярному виразі вилучення версії", + "highlightTouchTargets": "Підсвічувати менш очевидні області дотику", + "pickExportDir": "Вибрати каталог експорту", + "autoExportOnChanges": "Автоматичний експорт при змінах", + "includeSettings": "Включити налаштування", + "filterVersionsByRegEx": "Фільтрувати версії за регулярним виразом", + "trySelectingSuggestedVersionCode": "Спробуйте вибрати запропонований код версії APK", + "dontSortReleasesList": "Зберігати порядок випуску з API", + "reverseSort": "Зворотне сортування", + "takeFirstLink": "Вибрати перше посилання", + "skipSort": "Пропустити сортування", + "debugMenu": "Меню налагодження", + "bgTaskStarted": "Запущено фонове завдання - перевірте журнали.", + "runBgCheckNow": "Запустити перевірку оновлень в фоновому режимі зараз", + "versionExtractWholePage": "Застосувати регулярний вираз вилучення версії до всієї сторінки", + "installing": "Встановлення", + "skipUpdateNotifications": "Пропустити сповіщення про оновлення", + "updatesAvailableNotifChannel": "Доступні оновлення", + "appsUpdatedNotifChannel": "Додатки оновлені", + "appsPossiblyUpdatedNotifChannel": "Спроба оновлення додатків", + "errorCheckingUpdatesNotifChannel": "Помилка перевірки оновлень", + "appsRemovedNotifChannel": "Додатки видалені", + "downloadingXNotifChannel": "Завантаження {}", + "completeAppInstallationNotifChannel": "Завершення встановлення застосунку", + "checkingForUpdatesNotifChannel": "Перевірка оновлень", + "onlyCheckInstalledOrTrackOnlyApps": "Перевіряти лише встановлені та додатки, які відстежуються для оновлень", + "supportFixedAPKURL": "Підтримка фіксованих посилань на APK", + "selectX": "Вибрати {}", + "parallelDownloads": "Дозволити паралельні завантаження", + "installMethod": "Метод встановлення", + "normal": "Звичайний", + "root": "Root", + "shizukuBinderNotFound": "Сумісний сервіс Shizuku не було знайдено", + "useSystemFont": "Використовувати системний шрифт", + "systemFontError": "Помилка завантаження системного шрифту: {}", + "useVersionCodeAsOSVersion": "Використовувати код версії застосунку як версію, визначену операційною системою", + "requestHeader": "Заголовок запиту", + "useLatestAssetDateAsReleaseDate": "Використовувати останню дату завантаження ресурсу як дату випуску", + "defaultPseudoVersioningMethod": "Метод за замовчуванням псевдо-версіонування", + "partialAPKHash": "Хеш часткового APK", + "APKLinkHash": "Хеш посилання на APK", + "directAPKLink": "Пряме посилання на APK", + "pseudoVersionInUse": "Використовується псевдо-версія", + "installed": "Встановлено", + "latest": "Остання", + "invertRegEx": "Інвертувати регулярний вираз", + "note": "Примітка", + "selfHostedNote": "Випадаючий список \"{}\" може використовуватися для доступу до власних/призначених для самостійного використання екземплярів будь-якого джерела.", + "badDownload": "APK не вдалося розпарсити (несумісний або часткове завантаження)", + "removeAppQuestion": { + "one": "Видалити Застосунок?", + "other": "Видалити додатки?" + }, + "tooManyRequestsTryAgainInMinutes": { + "one": "Забагато запитів (обмеження швидкості) - повторіть спробу через {} хвилину", + "other": "Забагато запитів (обмеження швидкості) - повторіть спробу через {} хвилин" + }, + "bgUpdateGotErrorRetryInMinutes": { + "one": "Помилка перевірки оновлень у фоновому режимі - спробую знову через {} хвилину", + "other": "Помилка перевірки оновлень у фоновому режимі - спробую знову через {} хвилин" + }, + "bgCheckFoundUpdatesWillNotifyIfNeeded": { + "one": "Фонова перевірка оновлень знайшла {} оновлення - сповістить користувача, якщо це необхідно", + "other": "Фонова перевірка оновлень знайшла {} оновлень - сповістить користувача, якщо це необхідно" + }, + "apps": { + "one": "{} Застосунок", + "other": "{} Додатки" + }, + "url": { + "one": "{} URL", + "other": "{} URL-адреси" + }, + "minute": { + "one": "{} Хвилина", + "other": "{} Хвилин" + }, + "hour": { + "one": "{} Година", + "other": "{} Годин" + }, + "day": { + "one": "{} День", + "other": "{} Днів" + }, + "clearedNLogsBeforeXAfterY": { + "one": "Очищено {n} журнал (до = {before}, після = {after})", + "other": "Очищено {n} журналів (до = {before}, після = {after})" + }, + "xAndNMoreUpdatesAvailable": { + "one": "{} і 1 інше Застосунок мають оновлення.", + "other": "{} і {} інших додатки мають оновлення." + }, + "xAndNMoreUpdatesInstalled": { + "one": "{} і 1 інше Застосунок було оновлено.", + "other": "{} і {} інших додатків було оновлено." + }, + "xAndNMoreUpdatesPossiblyInstalled": { + "one": "{} і 1 інше Застосунок можливо було оновлено.", + "other": "{} і {} інших додатків можливо було оновлено." + }, + "apk": { + "one": "{} APK", + "other": "{} APK-файли" + } +} diff --git a/lib/main.dart b/lib/main.dart index 3b7abda4..32f2c0b3 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -38,6 +38,7 @@ List> supportedLocales = const [ MapEntry(Locale('nl'), 'Nederlands'), MapEntry(Locale('vi'), 'Tiếng Việt'), MapEntry(Locale('tr'), 'Türkçe'), + MapEntry(Locale('uk'), 'Українська'), ]; const fallbackLocale = Locale('en'); const localeDir = 'assets/translations';