mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-08-21 21:49:30 +02:00
Compare commits
16 Commits
v0.14.28-b
...
v0.14.31-b
Author | SHA1 | Date | |
---|---|---|---|
|
b8c0e18bb4 | ||
|
a083da1546 | ||
|
2518c70ec8 | ||
|
6ead8d261c | ||
|
b5f76a6ebc | ||
|
5e38bca535 | ||
|
c39142ee77 | ||
|
d0174479d7 | ||
|
aa23267d70 | ||
|
92f5da306d | ||
|
858a50a414 | ||
|
b7544939c2 | ||
|
63fa6d4660 | ||
|
9506c11951 | ||
|
a0ecb4e2bb | ||
|
a726b09f26 |
@@ -274,6 +274,7 @@
|
||||
"downloadingXNotifChannel": "Preuzimanje {}",
|
||||
"completeAppInstallationNotifChannel": "Dovršite instalaciju aplikacije",
|
||||
"checkingForUpdatesNotifChannel": "Tražim moguće nadogradnje",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Only check installed and Track-Only apps for updates",
|
||||
"removeAppQuestion": {
|
||||
"one": "Želite li ukloniti aplikaciju?",
|
||||
"other": "Želite li ukloniti aplikacije?"
|
||||
|
@@ -274,6 +274,7 @@
|
||||
"downloadingXNotifChannel": "download {}",
|
||||
"completeAppInstallationNotifChannel": "Dokončit instalaci aplikace",
|
||||
"checkingForUpdatesNotifChannel": "Zkontrolovat aktualizace",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Only check installed and Track-Only apps for updates",
|
||||
"removeAppQuestion": {
|
||||
"one": "Odstranit Apku?",
|
||||
"other": "Odstranit Apky?"
|
||||
|
@@ -250,14 +250,14 @@
|
||||
"intermediateLinkNotFound": "„Zwischen“link nicht gefunden",
|
||||
"exemptFromBackgroundUpdates": "Ausschluss von Hintergrundaktualisierungen (falls aktiviert)",
|
||||
"bgUpdatesOnWiFiOnly": "Hintergrundaktualisierungen deaktivieren, wenn kein WLAN vorhanden ist",
|
||||
"autoSelectHighestVersionCode": "Automatisch höchste APK-Code-Version auswählen",
|
||||
"autoSelectHighestVersionCode": "Automatisch höchste APK-Version auswählen",
|
||||
"versionExtractionRegEx": "Versions-Extraktion per RegEx",
|
||||
"matchGroupToUse": "Zu verwendende Gruppe abgleichen",
|
||||
"highlightTouchTargets": "Weniger offensichtliche Ziele hervorheben",
|
||||
"matchGroupToUse": "zu verwendende Gruppe abgleichen",
|
||||
"highlightTouchTargets": "Weniger offensichtliche Touch-Ziele hervorheben",
|
||||
"pickExportDir": "Export-Verzeichnis wählen",
|
||||
"autoExportOnChanges": "Automatischer Export bei Änderung",
|
||||
"autoExportOnChanges": "Automatischer Export bei Änderung(en)",
|
||||
"filterVersionsByRegEx": "Versionen nach regulären Ausdrücken filtern",
|
||||
"trySelectingSuggestedVersionCode": "Versuchen, die vorgeschlagene APK-Code-Version auszuwählen",
|
||||
"trySelectingSuggestedVersionCode": "Versuchen, den vorgeschlagenen APK-Versionscode auszuwählen",
|
||||
"dontSortReleasesList": "Freigaberelease von der API ordern",
|
||||
"reverseSort": "Umgekehrtes Sortieren",
|
||||
"debugMenu": "Debug-Menü",
|
||||
@@ -274,6 +274,7 @@
|
||||
"downloadingXNotifChannel": "Lade {} herunter",
|
||||
"completeAppInstallationNotifChannel": "App Installation abschließen",
|
||||
"checkingForUpdatesNotifChannel": "Nach Aktualisierungen suchen",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Only check installed and Track-Only apps for updates",
|
||||
"removeAppQuestion": {
|
||||
"one": "App entfernen?",
|
||||
"other": "Apps entfernen?"
|
||||
|
@@ -274,6 +274,7 @@
|
||||
"downloadingXNotifChannel": "Downloading {}",
|
||||
"completeAppInstallationNotifChannel": "Complete App Installation",
|
||||
"checkingForUpdatesNotifChannel": "Checking for Updates",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Only check installed and Track-Only apps for updates",
|
||||
"removeAppQuestion": {
|
||||
"one": "Remove App?",
|
||||
"other": "Remove Apps?"
|
||||
|
@@ -274,6 +274,7 @@
|
||||
"downloadingXNotifChannel": "Descargando {}",
|
||||
"completeAppInstallationNotifChannel": "Instalación Completa de la Aplicación",
|
||||
"checkingForUpdatesNotifChannel": "Buscando Actualizaciones",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Only check installed and Track-Only apps for updates",
|
||||
"removeAppQuestion": {
|
||||
"one": "¿Eliminar Aplicación?",
|
||||
"other": "¿Eliminar Aplicaciones?"
|
||||
|
@@ -274,6 +274,7 @@
|
||||
"downloadingXNotifChannel": "در حال دانلود {}",
|
||||
"completeAppInstallationNotifChannel": "نصب کامل برنامه",
|
||||
"checkingForUpdatesNotifChannel": "بررسی بهروزرسانیها",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Only check installed and Track-Only apps for updates",
|
||||
"removeAppQuestion": {
|
||||
"one": "برنامه حذف شود؟",
|
||||
"other": "برنامه ها حذف شوند؟"
|
||||
|
@@ -274,6 +274,7 @@
|
||||
"downloadingXNotifChannel": "Téléchargement {}",
|
||||
"completeAppInstallationNotifChannel": "Installation complète de l'application",
|
||||
"checkingForUpdatesNotifChannel": "Vérification des mises à jour",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Only check installed and Track-Only apps for updates",
|
||||
"removeAppQuestion": {
|
||||
"one": "Supprimer l'application ?",
|
||||
"other": "Supprimer les applications ?"
|
||||
|
@@ -274,6 +274,7 @@
|
||||
"downloadingXNotifChannel": "{} letöltés",
|
||||
"completeAppInstallationNotifChannel": "Teljes app telepítés",
|
||||
"checkingForUpdatesNotifChannel": "Frissítések keresése",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Only check installed and Track-Only apps for updates",
|
||||
"removeAppQuestion": {
|
||||
"one": "Eltávolítja az alkalmazást?",
|
||||
"other": "Eltávolítja az alkalmazást?"
|
||||
|
@@ -11,7 +11,7 @@
|
||||
"unexpectedError": "Errore imprevisto",
|
||||
"ok": "Va bene",
|
||||
"and": "e",
|
||||
"githubPATLabel": "GitHub Personal Access Token (diminuisce limite di traffico)",
|
||||
"githubPATLabel": "GitHub Personal Access Token (riduce limite di traffico)",
|
||||
"includePrereleases": "Includi prerelease",
|
||||
"fallbackToOlderReleases": "Ripiega su release precedenti",
|
||||
"filterReleaseTitlesByRegEx": "Filtra release con espressioni regolari",
|
||||
@@ -51,9 +51,9 @@
|
||||
"percentProgress": "Avanzamento: {}%",
|
||||
"pleaseWait": "In attesa",
|
||||
"updateAvailable": "Aggiornamento disponibile",
|
||||
"estimateInBracketsShort": "(prev.)",
|
||||
"estimateInBracketsShort": "(stim.)",
|
||||
"notInstalled": "Non installato",
|
||||
"estimateInBrackets": "(previsto)",
|
||||
"estimateInBrackets": "(stimato)",
|
||||
"selectAll": "Seleziona tutto",
|
||||
"deselectN": "Deseleziona {}",
|
||||
"xWillBeRemovedButRemainInstalled": "Verà effettuata la rimozione di {}, ma non la disinstallazione.",
|
||||
@@ -61,7 +61,7 @@
|
||||
"removeSelectedApps": "Rimuovi le app selezionate",
|
||||
"updateX": "Aggiorna {}",
|
||||
"installX": "Installa {}",
|
||||
"markXTrackOnlyAsUpdated": "Contrassegna {}\n(Solo-Monitoraggio)\ncome aggiornato",
|
||||
"markXTrackOnlyAsUpdated": "Contrassegna {}\n(Solo-Monitoraggio)\ncome aggiornata",
|
||||
"changeX": "Modifica {}",
|
||||
"installUpdateApps": "Installa/Aggiorna app",
|
||||
"installUpdateSelectedApps": "Installa/Aggiorna le app selezionate",
|
||||
@@ -128,7 +128,7 @@
|
||||
"pinUpdates": "Fissa aggiornamenti disponibili in alto",
|
||||
"updates": "Aggiornamenti",
|
||||
"sourceSpecific": "Specifiche per la fonte",
|
||||
"appSource": "Sorgente dell'app",
|
||||
"appSource": "Codice dell'app",
|
||||
"noLogs": "Nessun log",
|
||||
"appLogs": "Log dell'app",
|
||||
"close": "Chiudi",
|
||||
@@ -169,7 +169,7 @@
|
||||
"installedVersionX": "Versione installata: {}",
|
||||
"lastUpdateCheckX": "Ultimo controllo degli aggiornamenti: {}",
|
||||
"remove": "Rimuovi",
|
||||
"yesMarkUpdated": "Sì, contrassegna come aggiornato",
|
||||
"yesMarkUpdated": "Sì, contrassegna come aggiornata",
|
||||
"fdroid": "F-Droid ufficiale",
|
||||
"appIdOrName": "ID o nome dell'app",
|
||||
"appId": "ID dell'app",
|
||||
@@ -180,9 +180,9 @@
|
||||
"steamMobile": "Steam Mobile",
|
||||
"steamChat": "Steam Chat",
|
||||
"install": "Installa",
|
||||
"markInstalled": "Contrassegna come installato",
|
||||
"markInstalled": "Contrassegna come installata",
|
||||
"update": "Aggiorna",
|
||||
"markUpdated": "Contrassegna come aggiornato",
|
||||
"markUpdated": "Contrassegna come aggiornata",
|
||||
"additionalOptions": "Opzioni aggiuntive",
|
||||
"disableVersionDetection": "Disattiva il rilevamento della versione",
|
||||
"noVersionDetectionExplanation": "Questa opzione dovrebbe essere usata solo per le app la cui versione non viene rilevata correttamente.",
|
||||
@@ -221,59 +221,60 @@
|
||||
"dontShowTrackOnlyWarnings": "Non mostrare gli avvisi 'Solo-Monitoraggio'",
|
||||
"dontShowAPKOriginWarnings": "Non mostrare gli avvisi di origine dell'APK",
|
||||
"moveNonInstalledAppsToBottom": "Sposta le app non installate in fondo alla lista",
|
||||
"gitlabPATLabel": "GitLab Personal Access Token\n(attiva la ricerca and Better APK Discovery)",
|
||||
"gitlabPATLabel": "GitLab Personal Access Token\n(attiva la ricerca e migliora la rilevazione di apk)",
|
||||
"about": "Informazioni",
|
||||
"requiresCredentialsInSettings": "Servono credenziali aggiuntive (in Impostazioni)",
|
||||
"checkOnStart": "Controlla una volta all'avvio",
|
||||
"tryInferAppIdFromCode": "Prova a dedurre l'ID dell'app dal codice sorgente",
|
||||
"removeOnExternalUninstall": "Automatically remove externally uninstalled Apps",
|
||||
"pickHighestVersionCode": "Auto-select highest version code APK",
|
||||
"checkUpdateOnDetailPage": "Check for updates on opening an App detail page",
|
||||
"disablePageTransitions": "Disable page transition animations",
|
||||
"reversePageTransitions": "Reverse page transition animations",
|
||||
"minStarCount": "Minimum Star Count",
|
||||
"addInfoBelow": "Add this info below.",
|
||||
"addInfoInSettings": "Add this info in the Settings.",
|
||||
"githubSourceNote": "GitHub rate limiting can be avoided using an API key.",
|
||||
"gitlabSourceNote": "GitLab APK extraction may not work without an API key.",
|
||||
"sortByFileNamesNotLinks": "Sort by file names instead of full links",
|
||||
"filterReleaseNotesByRegEx": "Filter Release Notes by Regular Expression",
|
||||
"customLinkFilterRegex": "Custom APK Link Filter by Regular Expression (Default '.apk$')",
|
||||
"appsPossiblyUpdated": "App Updates Attempted",
|
||||
"appsPossiblyUpdatedNotifDescription": "Notifies the user that updates to one or more Apps were potentially applied in the background",
|
||||
"xWasPossiblyUpdatedToY": "{} may have been updated to {}.",
|
||||
"enableBackgroundUpdates": "Enable background updates",
|
||||
"backgroundUpdateReqsExplanation": "Background updates may not be possible for all apps.",
|
||||
"backgroundUpdateLimitsExplanation": "The success of a background install can only be determined when Obtainium is opened.",
|
||||
"verifyLatestTag": "Verify the 'latest' tag",
|
||||
"intermediateLinkRegex": "Filter for an 'Intermediate' Link to Visit First",
|
||||
"intermediateLinkNotFound": "Intermediate link not found",
|
||||
"exemptFromBackgroundUpdates": "Exempt from background updates (if enabled)",
|
||||
"bgUpdatesOnWiFiOnly": "Disable background updates when not on WiFi",
|
||||
"autoSelectHighestVersionCode": "Auto-select highest versionCode APK",
|
||||
"versionExtractionRegEx": "Version Extraction RegEx",
|
||||
"matchGroupToUse": "Match Group to Use",
|
||||
"highlightTouchTargets": "Highlight less obvious touch targets",
|
||||
"pickExportDir": "Pick Export Directory",
|
||||
"autoExportOnChanges": "Auto-export on changes",
|
||||
"filterVersionsByRegEx": "Filter Versions by Regular Expression",
|
||||
"trySelectingSuggestedVersionCode": "Try selecting suggested versionCode APK",
|
||||
"dontSortReleasesList": "Retain release order from API",
|
||||
"reverseSort": "Reverse sorting",
|
||||
"debugMenu": "Debug Menu",
|
||||
"bgTaskStarted": "Background task started - check logs.",
|
||||
"runBgCheckNow": "Run Background Update Check Now",
|
||||
"versionExtractWholePage": "Apply Version Extraction Regex to Entire Page",
|
||||
"installing": "Installing",
|
||||
"skipUpdateNotifications": "Skip update notifications",
|
||||
"removeOnExternalUninstall": "Rimuovi automaticamente app disinstallate esternamente",
|
||||
"pickHighestVersionCode": "Auto-seleziona APK con version code più alto",
|
||||
"checkUpdateOnDetailPage": "Controlla aggiornamenti all'apertura dei dettagli dell'app",
|
||||
"disablePageTransitions": "Disattiva animazioni di transizione pagina",
|
||||
"reversePageTransitions": "Inverti animazioni di transizione pagina",
|
||||
"minStarCount": "Numero minimo di stelle",
|
||||
"addInfoBelow": "Aggiungi questa info sotto.",
|
||||
"addInfoInSettings": "Aggiungi questa info nelle impostazioni.",
|
||||
"githubSourceNote": "Il limite di ricerca GitHub può essere evitato usando una chiave API.",
|
||||
"gitlabSourceNote": "L'estrazione di APK da GitLab potrebbe non funzionare senza chiave API.",
|
||||
"sortByFileNamesNotLinks": "Ordina per nome del file invece dei link completi",
|
||||
"filterReleaseNotesByRegEx": "Filtra le note di rilascio con espressione regolare",
|
||||
"customLinkFilterRegex": "Filtra link APK personalizzato con espressione regolare (predefinito '.apk$')",
|
||||
"appsPossiblyUpdated": "Aggiornamenti app tentati",
|
||||
"appsPossiblyUpdatedNotifDescription": "Notifica all'utente che sono stati potenzialmente applicati in secondo piano aggiornamenti a una o più app",
|
||||
"xWasPossiblyUpdatedToY": "{} potrebbe essere stata aggiornata alla {}.",
|
||||
"enableBackgroundUpdates": "Attiva aggiornamenti in secondo piano",
|
||||
"backgroundUpdateReqsExplanation": "Gli aggiornamenti in secondo piano potrebbero non essere possibili per tutte le app.",
|
||||
"backgroundUpdateLimitsExplanation": "La riuscita di un'installazione in secondo piano può essere determinata solo quando viene aperto Obtainium.",
|
||||
"verifyLatestTag": "Verifica l'etichetta 'Latest'",
|
||||
"intermediateLinkRegex": "Filtra un link 'Intermedio' da visitare prima",
|
||||
"intermediateLinkNotFound": "Link intermedio non trovato",
|
||||
"exemptFromBackgroundUpdates": "Esente da aggiornamenti in secondo piano (se attivo)",
|
||||
"bgUpdatesOnWiFiOnly": "Disattiva aggiornamenti in secondo piano quando non si usa il WiFi",
|
||||
"autoSelectHighestVersionCode": "Auto-seleziona APK con versionCode più alto",
|
||||
"versionExtractionRegEx": "RegEx di estrazione versione",
|
||||
"matchGroupToUse": "Gruppo da usare",
|
||||
"highlightTouchTargets": "Evidenzia elementi toccabili meno ovvi",
|
||||
"pickExportDir": "Scegli cartella esp.",
|
||||
"autoExportOnChanges": "Auto-esporta dopo modifiche",
|
||||
"filterVersionsByRegEx": "Filtra versioni con espressione regolare",
|
||||
"trySelectingSuggestedVersionCode": "Prova a selezionare APK con versionCode suggerito",
|
||||
"dontSortReleasesList": "Conserva l'ordine di release da API",
|
||||
"reverseSort": "Ordine inverso",
|
||||
"debugMenu": "Menu di debug",
|
||||
"bgTaskStarted": "Attività in secondo piano iniziata - controllo log.",
|
||||
"runBgCheckNow": "Inizia aggiornamento in secondo piano ora",
|
||||
"versionExtractWholePage": "Applica regex di estrazione versione a tutta la pagina",
|
||||
"installing": "Installazione",
|
||||
"skipUpdateNotifications": "Salta notifiche di aggiornamento",
|
||||
"updatesAvailableNotifChannel": "Aggiornamenti disponibili",
|
||||
"appsUpdatedNotifChannel": "App aggiornate",
|
||||
"appsPossiblyUpdatedNotifChannel": "App Updates Attempted",
|
||||
"appsPossiblyUpdatedNotifChannel": "Aggiornamenti app tentati",
|
||||
"errorCheckingUpdatesNotifChannel": "Controllo degli errori per gli aggiornamenti",
|
||||
"appsRemovedNotifChannel": "App rimosse",
|
||||
"downloadingXNotifChannel": "Scaricamento di {} in corso",
|
||||
"completeAppInstallationNotifChannel": "Completa l'installazione dell'app",
|
||||
"checkingForUpdatesNotifChannel": "Controllo degli aggiornamenti in corso",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Only check installed and Track-Only apps for updates",
|
||||
"removeAppQuestion": {
|
||||
"one": "Rimuovere l'app?",
|
||||
"other": "Rimuovere le app?"
|
||||
@@ -323,7 +324,7 @@
|
||||
"other": "{} e altre {} app sono state aggiornate."
|
||||
},
|
||||
"xAndNMoreUpdatesPossiblyInstalled": {
|
||||
"one": "{} and 1 more app may have been updated.",
|
||||
"other": "{} and {} more apps may have been updated."
|
||||
"one": "{} e un'altra app potrebbero essere state aggiornate.",
|
||||
"other": "{} e altre {} app potrebbero essere state aggiornate."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -274,6 +274,7 @@
|
||||
"downloadingXNotifChannel": "{} をダウンロード中",
|
||||
"completeAppInstallationNotifChannel": "アプリのインストールを完了する",
|
||||
"checkingForUpdatesNotifChannel": "アップデートを確認中",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Only check installed and Track-Only apps for updates",
|
||||
"removeAppQuestion": {
|
||||
"one": "アプリを削除しますか?",
|
||||
"other": "アプリを削除しますか?"
|
||||
|
@@ -274,6 +274,7 @@
|
||||
"downloadingXNotifChannel": "Pobieranie aplikacji",
|
||||
"completeAppInstallationNotifChannel": "Ukończenie instalacji aplikacji",
|
||||
"checkingForUpdatesNotifChannel": "Sprawdzanie dostępności aktualizacji",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Only check installed and Track-Only apps for updates",
|
||||
"removeAppQuestion": {
|
||||
"one": "Usunąć aplikację?",
|
||||
"few": "Usunąć aplikacje?",
|
||||
|
@@ -263,9 +263,9 @@
|
||||
"debugMenu": "Menu Debug",
|
||||
"bgTaskStarted": "Tarefa em segundo plano iniciada - verifique os logs.",
|
||||
"runBgCheckNow": "Execute a verificação de atualização em segundo plano agora",
|
||||
"versionExtractWholePage": "Apply Version Extraction Regex to Entire Page",
|
||||
"installing": "Installing",
|
||||
"skipUpdateNotifications": "Skip update notifications",
|
||||
"versionExtractWholePage": "Aplicar Regex de Extração de Versão à Página Inteira",
|
||||
"installing": "Instalando",
|
||||
"skipUpdateNotifications": "Pular notificações de update",
|
||||
"updatesAvailableNotifChannel": "Atualizações Disponíveis",
|
||||
"appsUpdatedNotifChannel": "Apps Atualizados",
|
||||
"appsPossiblyUpdatedNotifChannel": "Tentativas de atualização de Apps",
|
||||
@@ -274,6 +274,7 @@
|
||||
"downloadingXNotifChannel": "Baixando {}",
|
||||
"completeAppInstallationNotifChannel": "Instalação completa do App",
|
||||
"checkingForUpdatesNotifChannel": "Checando por Atualizações",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Only check installed and Track-Only apps for updates",
|
||||
"removeAppQuestion": {
|
||||
"one": "Remover App?",
|
||||
"other": "Remover Apps?"
|
||||
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"invalidURLForSource": "Неверный URL-адрес {} приложения",
|
||||
"invalidURLForSource": "Неверный URL-адрес приложения: {}",
|
||||
"noReleaseFound": "Не удалось найти подходящий релиз",
|
||||
"noVersionFound": "Не удалось определить версию релиза",
|
||||
"urlMatchesNoSource": "URL-адрес не соответствует известному источнику",
|
||||
@@ -9,41 +9,41 @@
|
||||
"placeholder": "Заполнитель",
|
||||
"someErrors": "Возникли некоторые ошибки",
|
||||
"unexpectedError": "Неожиданная ошибка",
|
||||
"ok": "Окей",
|
||||
"ok": "Ok",
|
||||
"and": "и",
|
||||
"githubPATLabel": "Персональный токен доступа GitHub (увеличивает лимит запросов)",
|
||||
"githubPATLabel": "Персональный токен доступа GitHub\n(увеличивает лимит запросов)",
|
||||
"includePrereleases": "Включить предварительные релизы",
|
||||
"fallbackToOlderReleases": "Откатиться к более старым версиям",
|
||||
"filterReleaseTitlesByRegEx": "Фильтровать заголовки релизов\nс помощью регулярного выражения",
|
||||
"fallbackToOlderReleases": "Откатываться к предыдущей версии",
|
||||
"filterReleaseTitlesByRegEx": "Фильтровать заголовки релизов\n(регулярное выражение)",
|
||||
"invalidRegEx": "Неверное регулярное выражение",
|
||||
"noDescription": "Нет описания",
|
||||
"cancel": "Отмена",
|
||||
"continue": "Продолжить",
|
||||
"requiredInBrackets": "(Обязательно)",
|
||||
"dropdownNoOptsError": "Ошибка: Выпадающий список должен содержать хотя бы одну опцию",
|
||||
"requiredInBrackets": "(обязательно)",
|
||||
"dropdownNoOptsError": "Ошибка: в выпадающем списке должна быть выбрана хотя бы одна настройка",
|
||||
"colour": "Цвет",
|
||||
"githubStarredRepos": "Помеченные звездочкой репозитории на GitHub",
|
||||
"githubStarredRepos": "Избранные репозитории GitHub",
|
||||
"uname": "Имя пользователя",
|
||||
"wrongArgNum": "Неправильное количество предоставленных аргументов",
|
||||
"xIsTrackOnly": "{} только для отслеживания",
|
||||
"source": "Источник",
|
||||
"app": "Приложение",
|
||||
"appsFromSourceAreTrackOnly": "Приложения из этого источника являются 'только для отслеживания'.",
|
||||
"youPickedTrackOnly": "Вы выбрали опцию 'Только для отслеживания'.",
|
||||
"trackOnlyAppDescription": "Приложение будет отслеживаться на предмет обновлений, но Obtainium не сможет загрузить или установить его.",
|
||||
"appsFromSourceAreTrackOnly": "Приложения из этого источника настроены только для отслеживания",
|
||||
"youPickedTrackOnly": "Вы выбрали опцию 'Только для отслеживания'",
|
||||
"trackOnlyAppDescription": "Приложение будет отслеживаться на предмет обновлений, но Obtainium не сможет загрузить или установить его",
|
||||
"cancelled": "Отменено",
|
||||
"appAlreadyAdded": "Приложение уже добавлено",
|
||||
"alreadyUpToDateQuestion": "Приложение уже обновлено?",
|
||||
"addApp": "Добавить приложение",
|
||||
"addApp": "Добавить",
|
||||
"appSourceURL": "URL-источник приложения",
|
||||
"error": "Ошибка",
|
||||
"add": "Добавить",
|
||||
"searchSomeSourcesLabel": "Поиск (только в некоторых источниках)",
|
||||
"searchSomeSourcesLabel": "Поиск (в некоторых источниках)",
|
||||
"search": "Поиск",
|
||||
"additionalOptsFor": "Дополнительные опции для {}",
|
||||
"additionalOptsFor": "Дополнительные настройки для {}",
|
||||
"supportedSources": "Поддерживаемые источники",
|
||||
"trackOnlyInBrackets": "(Только для отслеживания)",
|
||||
"searchableInBrackets": "(Поиск)",
|
||||
"trackOnlyInBrackets": "(только отслеживание)",
|
||||
"searchableInBrackets": "(поиск)",
|
||||
"appsString": "Приложения",
|
||||
"noApps": "Нет приложений",
|
||||
"noAppsForFilter": "Нет приложений для фильтра",
|
||||
@@ -54,9 +54,9 @@
|
||||
"estimateInBracketsShort": "(Оценка)",
|
||||
"notInstalled": "Не установлено",
|
||||
"estimateInBrackets": "(Оценка)",
|
||||
"selectAll": "Выбрать все",
|
||||
"selectAll": "Выбрать всё",
|
||||
"deselectN": "Отменить выбор {}",
|
||||
"xWillBeRemovedButRemainInstalled": "{} будет удалено из Obtainium, но останется установленным на устройстве.",
|
||||
"xWillBeRemovedButRemainInstalled": "{} будет удалено из Obtainium, но останется на устройстве",
|
||||
"removeSelectedAppsQuestion": "Удалить выбранные приложения?",
|
||||
"removeSelectedApps": "Удалить выбранные приложения",
|
||||
"updateX": "Обновить {}",
|
||||
@@ -65,17 +65,17 @@
|
||||
"changeX": "Изменить {}",
|
||||
"installUpdateApps": "Установить/Обновить приложения",
|
||||
"installUpdateSelectedApps": "Установить/Обновить выбранные приложения",
|
||||
"markXSelectedAppsAsUpdated": "Отметить {} выбранные приложения как обновленные?",
|
||||
"markXSelectedAppsAsUpdated": "Выбрано приложений: {}. Отметить как обновлённые?",
|
||||
"no": "Нет",
|
||||
"yes": "Да",
|
||||
"markSelectedAppsUpdated": "Отметить выбранные приложения как обновленные",
|
||||
"markSelectedAppsUpdated": "Отметить выбранные приложения как обновлённые",
|
||||
"pinToTop": "Закрепить сверху",
|
||||
"unpinFromTop": "Открепить",
|
||||
"resetInstallStatusForSelectedAppsQuestion": "Сбросить статус установки для выбранных приложений?",
|
||||
"installStatusOfXWillBeResetExplanation": "Статус установки для выбранных приложений будет сброшен.\n\nЭто может помочь, если версия приложения, отображаемая в Obtainium, неправильная из-за неудачных обновлений или других проблем.",
|
||||
"installStatusOfXWillBeResetExplanation": "Статус установки для выбранных приложений будет сброшен.\n\nЭто может помочь, если версия приложения, отображаемая в Obtainium, некорректная — из-за неудачных обновлений или других проблем",
|
||||
"shareSelectedAppURLs": "Поделиться выбранными URL-адресами приложений",
|
||||
"resetInstallStatus": "Сбросить статус установки",
|
||||
"more": "Еще",
|
||||
"more": "Ещё",
|
||||
"removeOutdatedFilter": "Удалить фильтр для устаревших приложений",
|
||||
"showOutdatedOnly": "Показывать только устаревшие приложения",
|
||||
"filter": "Фильтр",
|
||||
@@ -85,7 +85,7 @@
|
||||
"author": "Автор",
|
||||
"upToDateApps": "Приложения со свежими обновлениями",
|
||||
"nonInstalledApps": "Неустановленные приложения",
|
||||
"importExport": "Импорт/экспорт",
|
||||
"importExport": "Данные",
|
||||
"settings": "Настройки",
|
||||
"exportedTo": "Экспортировано в {}",
|
||||
"obtainiumExport": "Экспорт из Obtainium",
|
||||
@@ -99,63 +99,63 @@
|
||||
"searchX": "Поиск {}",
|
||||
"noResults": "Результатов не найдено",
|
||||
"importX": "Импорт {}",
|
||||
"importedAppsIdDisclaimer": "Импортированные приложения могут неверно отображаться как 'Не установлены'.\nДля исправления этой проблемы повторно установите их через Obtainium.\nЭто не должно повлиять на данные приложения.\n\nПроблемы возникают только при импорте из URL-адреса и сторонних источников.",
|
||||
"importedAppsIdDisclaimer": "Импортированные приложения могут неверно отображаться как неустановленные.\nДля исправления этой проблемы повторно установите их через Obtainium.\nЭто не должно повлиять на данные приложения.\n\nПроблемы возникают только при импорте из URL-адреса и сторонних источников",
|
||||
"importErrors": "Ошибка импорта",
|
||||
"importedXOfYApps": "Импортировано {} из {} приложений.",
|
||||
"importedXOfYApps": "Импортировано приложений: {} из {}",
|
||||
"followingURLsHadErrors": "При импорте следующие URL-адреса содержали ошибки:",
|
||||
"okay": "Окей",
|
||||
"okay": "Ok",
|
||||
"selectURL": "Выбрать URL-адрес",
|
||||
"selectURLs": "Выбрать URL-адреса",
|
||||
"pick": "Выбрать",
|
||||
"theme": "Тема",
|
||||
"dark": "Темная",
|
||||
"dark": "Тёмная",
|
||||
"light": "Светлая",
|
||||
"followSystem": "Как в системе",
|
||||
"followSystem": "Системная",
|
||||
"obtainium": "Obtainium",
|
||||
"materialYou": "Material You",
|
||||
"useBlackTheme": "Использовать чёрную тему",
|
||||
"appSortBy": "Сортировка приложений по",
|
||||
"appSortBy": "Сортировка приложений",
|
||||
"authorName": "Автор/Название",
|
||||
"nameAuthor": "Название/Автор",
|
||||
"asAdded": "В порядке добавления",
|
||||
"appSortOrder": "Порядок сортировки приложений",
|
||||
"appSortOrder": "Порядок",
|
||||
"ascending": "По возрастанию",
|
||||
"descending": "По убыванию",
|
||||
"bgUpdateCheckInterval": "Интервал проверки обновлений в фоновом режиме",
|
||||
"neverManualOnly": "Никогда - Только вручную",
|
||||
"neverManualOnly": "Никогда — только вручную",
|
||||
"appearance": "Внешний вид",
|
||||
"showWebInAppView": "Показывать исходную веб-страницу в представлении приложения",
|
||||
"pinUpdates": "Закрепить обновления сверху списка приложений",
|
||||
"showWebInAppView": "Показывать исходную веб-страницу на странице приложения",
|
||||
"pinUpdates": "Отображать обновления приложений сверху списка",
|
||||
"updates": "Обновления",
|
||||
"sourceSpecific": "Специфика источника",
|
||||
"appSource": "Источник приложения",
|
||||
"sourceSpecific": "Настройки источников",
|
||||
"appSource": "Исходный код",
|
||||
"noLogs": "Нет журналов",
|
||||
"appLogs": "Журналы приложений",
|
||||
"appLogs": "Логи",
|
||||
"close": "Закрыть",
|
||||
"share": "Поделиться",
|
||||
"appNotFound": "Приложение не найдено",
|
||||
"obtainiumExportHyphenatedLowercase": "obtainium-export",
|
||||
"pickAnAPK": "Выберите APK-файл",
|
||||
"appHasMoreThanOnePackage": "{} имеет более одного пакета:",
|
||||
"deviceSupportsXArch": "Ваше устройство поддерживает архитектуру процессора {}.",
|
||||
"deviceSupportsXArch": "Ваше устройство поддерживает архитектуру процессора {}",
|
||||
"deviceSupportsFollowingArchs": "Ваше устройство поддерживает следующие архитектуры процессора:",
|
||||
"warning": "Предупреждение",
|
||||
"sourceIsXButPackageFromYPrompt": "Источник приложения - '{}', но пакет для установки получен из '{}'. Продолжить?",
|
||||
"sourceIsXButPackageFromYPrompt": "Источник приложения — '{}', но пакет для установки получен из '{}'. Продолжить?",
|
||||
"updatesAvailable": "Доступны обновления",
|
||||
"updatesAvailableNotifDescription": "Уведомляет пользователя о наличии обновлений для одного или нескольких приложений, отслеживаемых Obtainium",
|
||||
"noNewUpdates": "Нет новых обновлений.",
|
||||
"xHasAnUpdate": "{} есть обновление.",
|
||||
"updatesAvailableNotifDescription": "Уведомляет о наличии обновлений для одного или нескольких приложений в Obtainium",
|
||||
"noNewUpdates": "Нет новых обновлений",
|
||||
"xHasAnUpdate": "{} есть обновление",
|
||||
"appsUpdated": "Приложения обновлены",
|
||||
"appsUpdatedNotifDescription": "Уведомляет пользователя о том, что обновления для одного или нескольких приложений были применены в фоновом режиме",
|
||||
"xWasUpdatedToY": "{} была обновлена до версии {}.",
|
||||
"appsUpdatedNotifDescription": "Уведомляет об обновлении одного или нескольких приложений в фоновом режиме",
|
||||
"xWasUpdatedToY": "{} была обновлена до версии {}",
|
||||
"errorCheckingUpdates": "Ошибка при проверке обновлений",
|
||||
"errorCheckingUpdatesNotifDescription": "Уведомление, которое появляется, когда проверка обновлений в фоновом режиме завершилась с ошибкой",
|
||||
"errorCheckingUpdatesNotifDescription": "Уведомление о завершении проверки обновлений в фоновом режиме с ошибкой",
|
||||
"appsRemoved": "Приложение удалено",
|
||||
"appsRemovedNotifDescription": "Уведомляет пользователя о том, что одно или несколько приложений было удалено из-за ошибок при их загрузке",
|
||||
"appsRemovedNotifDescription": "Уведомление об удалении одного или несколько приложений из-за ошибок при их загрузке",
|
||||
"xWasRemovedDueToErrorY": "{} был удален из-за ошибки: {}",
|
||||
"completeAppInstallation": "Завершение установки приложения",
|
||||
"obtainiumMustBeOpenToInstallApps": "Для установки приложений Obtainium должен быть открыт",
|
||||
"completeAppInstallationNotifDescription": "Просит пользователя вернуться в Obtainium, чтобы завершить установку приложения",
|
||||
"obtainiumMustBeOpenToInstallApps": "Obtainium должен быть открыт для установки приложений",
|
||||
"completeAppInstallationNotifDescription": "Уведомление о необходимости открыть Obtainium для завершения установки приложения",
|
||||
"checkingForUpdates": "Проверка обновлений",
|
||||
"checkingForUpdatesNotifDescription": "Временное уведомление, которое появляется при проверке обновлений",
|
||||
"pleaseAllowInstallPerm": "Пожалуйста, разрешите Obtainium устанавливать приложения",
|
||||
@@ -167,14 +167,14 @@
|
||||
"never": "Никогда",
|
||||
"latestVersionX": "Последняя версия: {}",
|
||||
"installedVersionX": "Установленная версия: {}",
|
||||
"lastUpdateCheckX": "Последняя проверка обновлений: {}",
|
||||
"lastUpdateCheckX": "Последняя проверка: {}",
|
||||
"remove": "Удалить",
|
||||
"yesMarkUpdated": "Да, отметить как обновленное",
|
||||
"fdroid": "Официальный F-Droid",
|
||||
"fdroid": "Официальные репозитории F-Droid",
|
||||
"appIdOrName": "ID или название приложения",
|
||||
"appId": "ID приложения",
|
||||
"appWithIdOrNameNotFound": "Приложение с таким ID или названием не было найдено",
|
||||
"reposHaveMultipleApps": "В хранилище может быть несколько приложений",
|
||||
"reposHaveMultipleApps": "В хранилище несколько приложений",
|
||||
"fdroidThirdPartyRepo": "Сторонние репозитории F-Droid",
|
||||
"steam": "Steam",
|
||||
"steamMobile": "Steam Mobile",
|
||||
@@ -182,75 +182,75 @@
|
||||
"install": "Установить",
|
||||
"markInstalled": "Пометить как установленное",
|
||||
"update": "Обновить",
|
||||
"markUpdated": "Отметить обновленным",
|
||||
"additionalOptions": "Дополнительные опции",
|
||||
"markUpdated": "Отметить обновлённым",
|
||||
"additionalOptions": "Дополнительные настройки",
|
||||
"disableVersionDetection": "Отключить обнаружение версии",
|
||||
"noVersionDetectionExplanation": "Эта опция должна использоваться только для приложений, где обнаружение версии не работает корректно.",
|
||||
"noVersionDetectionExplanation": "Эта настройка должна использоваться только для приложений, где обнаружение версии не работает корректно",
|
||||
"downloadingX": "Загрузка {}",
|
||||
"downloadNotifDescription": "Уведомляет пользователя о прогрессе загрузки приложения",
|
||||
"noAPKFound": "APK не найден",
|
||||
"noVersionDetection": "Версий не обнаружено",
|
||||
"noVersionDetection": "Обнаружение версий отключено",
|
||||
"categorize": "Категоризировать",
|
||||
"categories": "Категории",
|
||||
"category": "Категория",
|
||||
"noCategory": "Без категории",
|
||||
"noCategories": "Без категорий",
|
||||
"deleteCategoriesQuestion": "Удалить категории?",
|
||||
"categoryDeleteWarning": "Все приложения в удаленных категориях будут помечены как без категории.",
|
||||
"categoryDeleteWarning": "Все приложения в удаленных категориях будут помечены как без категории",
|
||||
"addCategory": "Добавить категорию",
|
||||
"label": "Метка",
|
||||
"language": "Язык",
|
||||
"copiedToClipboard": "Скопировано в буфер обмена",
|
||||
"storagePermissionDenied": "Отказано в доступе к хранилищу",
|
||||
"selectedCategorizeWarning": "Это заменит все текущие настройки категорий для выбранных приложений.",
|
||||
"filterAPKsByRegEx": "Фильтровать APK-файлы с помощью\nрегулярного выражения",
|
||||
"selectedCategorizeWarning": "Это заменит все текущие настройки категорий для выбранных приложений",
|
||||
"filterAPKsByRegEx": "Отфильтровать APK-файлы\n(регулярное выражение)",
|
||||
"removeFromObtainium": "Удалить из Obtainium",
|
||||
"uninstallFromDevice": "Удалить с устройства",
|
||||
"onlyWorksWithNonVersionDetectApps": "Работает только для приложений с отключенным определением версии.",
|
||||
"releaseDateAsVersion": "Использовать дату выпуска в качестве версии",
|
||||
"releaseDateAsVersionExplanation": "Этот параметр следует использовать только для приложений, в которых определение версии не работает правильно, но имеется дата выпуска.",
|
||||
"onlyWorksWithNonVersionDetectApps": "Работает только для приложений с отключенным определением версии",
|
||||
"releaseDateAsVersion": "Дата выпуска вместо версии",
|
||||
"releaseDateAsVersionExplanation": "Этот параметр следует использовать только для приложений, в которых определение версии не работает правильно, но имеется дата выпуска",
|
||||
"changes": "Изменения",
|
||||
"releaseDate": "Дата выпуска",
|
||||
"importFromURLsInFile": "Импорт URL-адресов из файла (например, OPML)",
|
||||
"importFromURLsInFile": "Импорт из файла URL-адресов (например: OPML)",
|
||||
"versionDetection": "Определение версии",
|
||||
"standardVersionDetection": "Стандартное определение версии",
|
||||
"standardVersionDetection": "Стандартное",
|
||||
"groupByCategory": "Группировать по категориям",
|
||||
"autoApkFilterByArch": "Попытка фильтрации APK-файлов по архитектуре процессора, если это возможно",
|
||||
"autoApkFilterByArch": "Попытаться отфильтровать APK-файлы по архитектуре процессора",
|
||||
"overrideSource": "Переопределить источник",
|
||||
"dontShowAgain": "Не показывать снова",
|
||||
"dontShowTrackOnlyWarnings": "Не показывать предупреждения о только отслеживаемых приложениях",
|
||||
"dontShowAPKOriginWarnings": "Не показывать предупреждения об источнике APK-файлов",
|
||||
"moveNonInstalledAppsToBottom": "Переместить неустановленные приложения вниз списка",
|
||||
"gitlabPATLabel": "Персональный токен доступа GitLab\n(Включает поиск и улучшает обнаружение APK)",
|
||||
"about": "О приложении",
|
||||
"dontShowAPKOriginWarnings": "Не показывать предупреждения об отличающемся источнике APK-файлов",
|
||||
"moveNonInstalledAppsToBottom": "Отображать неустановленные приложения внизу списка",
|
||||
"gitlabPATLabel": "Персональный токен доступа GitLab\n(включает поиск и улучшает обнаружение APK)",
|
||||
"about": "Описание",
|
||||
"requiresCredentialsInSettings": "Для этого требуются дополнительные учетные данные (в настройках)",
|
||||
"checkOnStart": "Проверять наличие обновлений при запуске",
|
||||
"tryInferAppIdFromCode": "Попытаться определить ID приложения из исходного кода",
|
||||
"removeOnExternalUninstall": "Автоматически убирать из списка удаленные извне приложения",
|
||||
"pickHighestVersionCode": "Автовыбор кода наивысшей версии APK",
|
||||
"checkUpdateOnDetailPage": "Проверять наличие обновлений при открытии страницы представления приложения",
|
||||
"pickHighestVersionCode": "Автовыбор актуальной версии кода APK",
|
||||
"checkUpdateOnDetailPage": "Проверять наличие обновлений при открытии страницы приложения",
|
||||
"disablePageTransitions": "Отключить анимацию перехода между страницами",
|
||||
"reversePageTransitions": "Реверс анимации перехода между страницами",
|
||||
"minStarCount": "Минимальное количество звёзд",
|
||||
"addInfoBelow": "Добавьте эту информацию ниже.",
|
||||
"addInfoInSettings": "Добавьте эту информацию в Настройки.",
|
||||
"githubSourceNote": "Лимит запросов GitHub можно обойти, используя ключ API.",
|
||||
"gitlabSourceNote": "Извлечение APK из GitLab может не работать без ключа API.",
|
||||
"sortByFileNamesNotLinks": "Сортировать по именам файлов, а не по полным ссылкам",
|
||||
"filterReleaseNotesByRegEx": "Фильтровать примечания к выпуску по регулярному выражению",
|
||||
"customLinkFilterRegex": "Пользовательский фильтр ссылок APK по регулярному выражению (по умолчанию '.apk$')",
|
||||
"addInfoBelow": "Добавьте эту информацию ниже",
|
||||
"addInfoInSettings": "Добавьте эту информацию в Настройки",
|
||||
"githubSourceNote": "Используя ключ API можно обойти лимит запросов GitHub",
|
||||
"gitlabSourceNote": "Без ключа API может не работать извлечение APK с GitLab",
|
||||
"sortByFileNamesNotLinks": "Сортировать по именам файлов, а не ссылкам целиком",
|
||||
"filterReleaseNotesByRegEx": "Фильтровать примечания к выпуску\n(регулярное выражение)",
|
||||
"customLinkFilterRegex": "Пользовательский фильтр ссылок APK\n(регулярное выражение, по умолчанию: '.apk$')",
|
||||
"appsPossiblyUpdated": "Попытки обновления приложений",
|
||||
"appsPossiblyUpdatedNotifDescription": "Уведомляет пользователя о возможных обновлениях одного или нескольких приложений в фоновом режиме",
|
||||
"xWasPossiblyUpdatedToY": "{} возможно был обновлен до {}.",
|
||||
"appsPossiblyUpdatedNotifDescription": "Уведомление о возможных обновлениях одного или нескольких приложений в фоновом режиме",
|
||||
"xWasPossiblyUpdatedToY": "{} возможно был обновлен до {}",
|
||||
"enableBackgroundUpdates": "Включить обновления в фоне",
|
||||
"backgroundUpdateReqsExplanation": "Фоновые обновления могут быть невозможны для всех приложений.",
|
||||
"backgroundUpdateLimitsExplanation": "Успех фоновой установки можно определить только после открытия Obtainium.",
|
||||
"verifyLatestTag": "Проверьте тег 'последний'",
|
||||
"intermediateLinkRegex": "Фильтр ссылок 'промежуточного' типа для приоритетного посещения",
|
||||
"backgroundUpdateReqsExplanation": "Фоновые обновления могут быть возможны не для всех приложений",
|
||||
"backgroundUpdateLimitsExplanation": "Успешность фоновой установки можно определить только после открытия Obtainium",
|
||||
"verifyLatestTag": "Проверять тег 'latest'",
|
||||
"intermediateLinkRegex": "Фильтр промежуточных ссылок для первоочередного посещения\n(регулярное выражение)",
|
||||
"intermediateLinkNotFound": "Промежуточная ссылка не найдена",
|
||||
"exemptFromBackgroundUpdates": "Исключить из фоновых обновлений (если включено)",
|
||||
"bgUpdatesOnWiFiOnly": "Отключить фоновые обновления, если нет соединения с Wi-Fi",
|
||||
"autoSelectHighestVersionCode": "Автоматически выбирать APK с наивысшим кодом версии",
|
||||
"autoSelectHighestVersionCode": "Автоматически выбирать APK с актуальной версией кода",
|
||||
"versionExtractionRegEx": "Регулярное выражение для извлечения версии",
|
||||
"matchGroupToUse": "Выберите группу для использования",
|
||||
"highlightTouchTargets": "Выделить менее очевидные элементы управления касанием",
|
||||
@@ -258,14 +258,14 @@
|
||||
"autoExportOnChanges": "Автоэкспорт при изменениях",
|
||||
"filterVersionsByRegEx": "Фильтровать версии по регулярному выражению",
|
||||
"trySelectingSuggestedVersionCode": "Попробуйте выбрать предложенный код версии APK",
|
||||
"dontSortReleasesList": "Сохранить порядок выпусков от API",
|
||||
"dontSortReleasesList": "Сохранить порядок релизов от API",
|
||||
"reverseSort": "Обратная сортировка",
|
||||
"debugMenu": "Меню Отладки",
|
||||
"bgTaskStarted": "Фоновая задача начата - проверьте журналы.",
|
||||
"debugMenu": "Меню отладки",
|
||||
"bgTaskStarted": "Фоновая задача начата — проверьте журналы",
|
||||
"runBgCheckNow": "Запустить проверку фонового обновления сейчас",
|
||||
"versionExtractWholePage": "Apply Version Extraction Regex to Entire Page",
|
||||
"installing": "Installing",
|
||||
"skipUpdateNotifications": "Skip update notifications",
|
||||
"versionExtractWholePage": "Применить регулярное выражение версии ко всей странице",
|
||||
"installing": "Устанавливается",
|
||||
"skipUpdateNotifications": "Не оповещать об обновлениях",
|
||||
"updatesAvailableNotifChannel": "Доступны обновления",
|
||||
"appsUpdatedNotifChannel": "Приложения обновлены",
|
||||
"appsPossiblyUpdatedNotifChannel": "Попытки обновления приложений",
|
||||
@@ -274,56 +274,57 @@
|
||||
"downloadingXNotifChannel": "Загрузка {}",
|
||||
"completeAppInstallationNotifChannel": "Завершение установки приложения",
|
||||
"checkingForUpdatesNotifChannel": "Проверка обновлений",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Only check installed and Track-Only apps for updates",
|
||||
"removeAppQuestion": {
|
||||
"one": "Удалить приложение?",
|
||||
"other": "Удалить приложения?"
|
||||
},
|
||||
"tooManyRequestsTryAgainInMinutes": {
|
||||
"one": "Слишком много запросов (ограничение скорости) - попробуйте снова через {} минуту",
|
||||
"other": "Слишком много запросов (ограничение скорости) - попробуйте снова через {} минуты"
|
||||
"one": "Слишком много запросов (ограничение скорости) — попробуйте снова через {} минуту",
|
||||
"other": "Слишком много запросов (ограничение скорости) — попробуйте снова через {} минуты"
|
||||
},
|
||||
"bgUpdateGotErrorRetryInMinutes": {
|
||||
"one": "При проверке обновлений в фоновом режиме возникла ошибка {}, повторная проверка будет запланирована через {} минуту",
|
||||
"other": "При проверке обновлений в фоновом режиме возникла ошибка {}, повторная проверка будет запланирована через {} минуты"
|
||||
},
|
||||
"bgCheckFoundUpdatesWillNotifyIfNeeded": {
|
||||
"one": "В ходе проверки обновления в фоновом режиме было обнаружено {} обновление - Пользователю будет отправлено уведомление, если это необходимо",
|
||||
"other": "В ходе проверки обновления в фоновом режиме было обнаружено {} обновлений - Пользователю будет отправлено уведомление, если это необходимо"
|
||||
"one": "В ходе проверки обновления в фоновом режиме было обнаружено {} обновление — Пользователю будет отправлено уведомление, если это необходимо",
|
||||
"other": "В ходе проверки обновления в фоновом режиме было обнаружено {} обновлений — Пользователю будет отправлено уведомление, если это необходимо"
|
||||
},
|
||||
"apps": {
|
||||
"one": "{} Приложение",
|
||||
"other": "{} Приложений"
|
||||
"one": "{} приложение",
|
||||
"other": "{} приложений"
|
||||
},
|
||||
"url": {
|
||||
"one": "{} URL-адрес",
|
||||
"other": "{} URL-адреса"
|
||||
},
|
||||
"minute": {
|
||||
"one": "{} Минута",
|
||||
"other": "{} Минуты"
|
||||
"one": "{} минута",
|
||||
"other": "{} минуты"
|
||||
},
|
||||
"hour": {
|
||||
"one": "{} Час",
|
||||
"other": "{} Часов"
|
||||
"one": "{} час",
|
||||
"other": "{} часов"
|
||||
},
|
||||
"day": {
|
||||
"one": "{} День",
|
||||
"other": "{} Дней"
|
||||
"one": "{} день",
|
||||
"other": "{} дней"
|
||||
},
|
||||
"clearedNLogsBeforeXAfterY": {
|
||||
"one": "Очищен {n} журнал (до = {before}, после = {after})",
|
||||
"other": "Очищено {n} журналов (до = {before}, после = {after})"
|
||||
},
|
||||
"xAndNMoreUpdatesAvailable": {
|
||||
"one": "У {} и еще 1 приложения есть обновление.",
|
||||
"other": "У {} и ещё {} приложений есть обновления."
|
||||
"one": "У {} и еще 1 приложения есть обновление",
|
||||
"other": "У {} и ещё {} приложений есть обновления"
|
||||
},
|
||||
"xAndNMoreUpdatesInstalled": {
|
||||
"one": "{} и ещё 1 приложение были обновлены.",
|
||||
"other": "{} и ещё {} приложений были обновлены."
|
||||
"one": "{} и ещё 1 приложение были обновлены",
|
||||
"other": "{} и ещё {} приложений были обновлены"
|
||||
},
|
||||
"xAndNMoreUpdatesPossiblyInstalled": {
|
||||
"one": "{} и ещё 1 приложение могли быть обновлены.",
|
||||
"other": "{} и ещё {} приложений могли быть обновлены."
|
||||
"one": "{} и ещё 1 приложение могли быть обновлены",
|
||||
"other": "{} и ещё {} приложений могли быть обновлены"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -274,6 +274,7 @@
|
||||
"downloadingXNotifChannel": "正在下载{}",
|
||||
"completeAppInstallationNotifChannel": "完成应用安装",
|
||||
"checkingForUpdatesNotifChannel": "正在检查更新",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Only check installed and Track-Only apps for updates",
|
||||
"removeAppQuestion": {
|
||||
"one": "是否删除应用?",
|
||||
"other": "是否删除应用?"
|
||||
|
@@ -8,6 +8,8 @@ class FDroidRepo extends AppSource {
|
||||
FDroidRepo() {
|
||||
name = tr('fdroidThirdPartyRepo');
|
||||
canSearch = true;
|
||||
excludeFromMassSearch = true;
|
||||
neverAutoSelect = true;
|
||||
|
||||
additionalSourceAppSpecificSettingFormItems = [
|
||||
[
|
||||
|
@@ -219,7 +219,9 @@ class HTML extends AppSource {
|
||||
additionalSettings['versionExtractionRegEx'] as String?;
|
||||
if (versionExtractionRegEx?.isNotEmpty == true) {
|
||||
var match = RegExp(versionExtractionRegEx!).allMatches(
|
||||
res.body.split('\r\n').join('\n').split('\n').join('\\n'));
|
||||
additionalSettings['versionExtractWholePage'] == true
|
||||
? res.body.split('\r\n').join('\n').split('\n').join('\\n')
|
||||
: rel);
|
||||
if (match.isEmpty) {
|
||||
throw NoVersionError();
|
||||
}
|
||||
|
@@ -19,7 +19,7 @@ import 'package:easy_localization/src/easy_localization_controller.dart';
|
||||
// ignore: implementation_imports
|
||||
import 'package:easy_localization/src/localization.dart';
|
||||
|
||||
const String currentVersion = '0.14.28';
|
||||
const String currentVersion = '0.14.31';
|
||||
const String currentReleaseTag =
|
||||
'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES
|
||||
|
||||
|
@@ -153,8 +153,7 @@ class _AddAppPageState extends State<AddAppPage> {
|
||||
overrideSource: pickedSourceOverride,
|
||||
inferAppIdIfOptional: inferAppIdIfOptional);
|
||||
// Only download the APK here if you need to for the package ID
|
||||
if (isTempId(app) &&
|
||||
app.additionalSettings['trackOnly'] != true) {
|
||||
if (isTempId(app) && app.additionalSettings['trackOnly'] != true) {
|
||||
// ignore: use_build_context_synchronously
|
||||
var apkUrl = await appsProvider.confirmApkUrl(app, context);
|
||||
if (apkUrl == null) {
|
||||
@@ -260,8 +259,9 @@ class _AddAppPageState extends State<AddAppPage> {
|
||||
searching = true;
|
||||
});
|
||||
try {
|
||||
var results = await Future.wait(
|
||||
sourceProvider.sources.where((e) => e.canSearch).map((e) async {
|
||||
var results = await Future.wait(sourceProvider.sources
|
||||
.where((e) => e.canSearch && !e.excludeFromMassSearch)
|
||||
.map((e) async {
|
||||
try {
|
||||
return await e.search(searchQuery);
|
||||
} catch (err) {
|
||||
|
@@ -141,7 +141,8 @@ class _ImportExportPageState extends State<ImportExportPage> {
|
||||
}
|
||||
});
|
||||
appsProvider.addMissingCategories(settingsProvider);
|
||||
showMessage(tr('importedX', args: [plural('apps', value)]), context);
|
||||
showMessage(
|
||||
tr('importedX', args: [plural('apps', value)]), context);
|
||||
});
|
||||
} else {
|
||||
// User canceled the picker
|
||||
|
@@ -310,6 +310,23 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||
})
|
||||
],
|
||||
),
|
||||
height16,
|
||||
Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
Flexible(
|
||||
child: Text(tr(
|
||||
'onlyCheckInstalledOrTrackOnlyApps'))),
|
||||
Switch(
|
||||
value: settingsProvider
|
||||
.onlyCheckInstalledOrTrackOnlyApps,
|
||||
onChanged: (value) {
|
||||
settingsProvider
|
||||
.onlyCheckInstalledOrTrackOnlyApps =
|
||||
value;
|
||||
})
|
||||
],
|
||||
),
|
||||
height32,
|
||||
Text(
|
||||
tr('sourceSpecific'),
|
||||
@@ -535,7 +552,8 @@ class _SettingsPageState extends State<SettingsPage> {
|
||||
onPressed: () {
|
||||
context.read<LogsProvider>().get().then((logs) {
|
||||
if (logs.isEmpty) {
|
||||
showMessage(ObtainiumError(tr('noLogs')), context);
|
||||
showMessage(
|
||||
ObtainiumError(tr('noLogs')), context);
|
||||
} else {
|
||||
showDialog(
|
||||
context: context,
|
||||
|
@@ -281,7 +281,8 @@ class AppsProvider with ChangeNotifier {
|
||||
'${downloadedFile.parent.path}/${app.id}-${downloadUrl.hashCode}.${downloadedFile.path.split('.').last}');
|
||||
if (apps[originalAppId] != null) {
|
||||
await removeApps([originalAppId]);
|
||||
await saveApps([app], onlyIfExists: !isTempIdBool && !idChangeWasAllowed);
|
||||
await saveApps([app],
|
||||
onlyIfExists: !isTempIdBool && !idChangeWasAllowed);
|
||||
}
|
||||
}
|
||||
} else if (isTempIdBool) {
|
||||
@@ -716,9 +717,11 @@ class AppsProvider with ChangeNotifier {
|
||||
if (app?.app == null) {
|
||||
return false;
|
||||
}
|
||||
var naiveStandardVersionDetection = SourceProvider()
|
||||
.getSource(app!.app.url, overrideSource: app.app.overrideSource)
|
||||
.naiveStandardVersionDetection;
|
||||
var naiveStandardVersionDetection =
|
||||
app!.app.additionalSettings['naiveStandardVersionDetection'] == true ||
|
||||
SourceProvider()
|
||||
.getSource(app.app.url, overrideSource: app.app.overrideSource)
|
||||
.naiveStandardVersionDetection;
|
||||
return app.app.additionalSettings['trackOnly'] != true &&
|
||||
app.app.additionalSettings['versionDetection'] !=
|
||||
'releaseDateAsVersion' &&
|
||||
@@ -739,9 +742,11 @@ class AppsProvider with ChangeNotifier {
|
||||
var versionDetectionIsStandard =
|
||||
app.additionalSettings['versionDetection'] ==
|
||||
'standardVersionDetection';
|
||||
var naiveStandardVersionDetection = SourceProvider()
|
||||
.getSource(app.url, overrideSource: app.overrideSource)
|
||||
.naiveStandardVersionDetection;
|
||||
var naiveStandardVersionDetection =
|
||||
app.additionalSettings['naiveStandardVersionDetection'] == true ||
|
||||
SourceProvider()
|
||||
.getSource(app.url, overrideSource: app.overrideSource)
|
||||
.naiveStandardVersionDetection;
|
||||
// FIRST, COMPARE THE APP'S REPORTED AND REAL INSTALLED VERSIONS, WHERE ONE IS NULL
|
||||
if (installedInfo == null && app.installedVersion != null && !trackOnly) {
|
||||
// App says it's installed but isn't really (and isn't track only) - set to not installed
|
||||
@@ -1055,12 +1060,21 @@ class AppsProvider with ChangeNotifier {
|
||||
}
|
||||
|
||||
List<String> getAppsSortedByUpdateCheckTime(
|
||||
{DateTime? ignoreAppsCheckedAfter}) {
|
||||
{DateTime? ignoreAppsCheckedAfter,
|
||||
bool onlyCheckInstalledOrTrackOnlyApps = false}) {
|
||||
List<String> appIds = apps.values
|
||||
.where((app) =>
|
||||
app.app.lastUpdateCheck == null ||
|
||||
ignoreAppsCheckedAfter == null ||
|
||||
app.app.lastUpdateCheck!.isBefore(ignoreAppsCheckedAfter))
|
||||
.where((app) {
|
||||
if (!onlyCheckInstalledOrTrackOnlyApps) {
|
||||
return true;
|
||||
} else {
|
||||
return app.app.installedVersion != null ||
|
||||
app.app.additionalSettings['trackOnly'] == true;
|
||||
}
|
||||
})
|
||||
.map((e) => e.app.id)
|
||||
.toList();
|
||||
appIds.sort((a, b) =>
|
||||
@@ -1073,14 +1087,18 @@ class AppsProvider with ChangeNotifier {
|
||||
Future<List<App>> checkUpdates(
|
||||
{DateTime? ignoreAppsCheckedAfter,
|
||||
bool throwErrorsForRetry = false,
|
||||
List<String>? specificIds}) async {
|
||||
List<String>? specificIds,
|
||||
SettingsProvider? sp}) async {
|
||||
SettingsProvider settingsProvider = sp ?? this.settingsProvider;
|
||||
List<App> updates = [];
|
||||
MultiAppMultiError errors = MultiAppMultiError();
|
||||
if (!gettingUpdates) {
|
||||
gettingUpdates = true;
|
||||
try {
|
||||
List<String> appIds = getAppsSortedByUpdateCheckTime(
|
||||
ignoreAppsCheckedAfter: ignoreAppsCheckedAfter);
|
||||
ignoreAppsCheckedAfter: ignoreAppsCheckedAfter,
|
||||
onlyCheckInstalledOrTrackOnlyApps:
|
||||
settingsProvider.onlyCheckInstalledOrTrackOnlyApps);
|
||||
if (specificIds != null) {
|
||||
appIds = appIds.where((aId) => specificIds.contains(aId)).toList();
|
||||
}
|
||||
@@ -1362,7 +1380,9 @@ Future<void> bgUpdateCheck(int taskId, Map<String, dynamic>? params) async {
|
||||
entry['key'] as String, entry['value'] as int))
|
||||
.toList() ??
|
||||
appsProvider
|
||||
.getAppsSortedByUpdateCheckTime()
|
||||
.getAppsSortedByUpdateCheckTime(
|
||||
onlyCheckInstalledOrTrackOnlyApps: appsProvider
|
||||
.settingsProvider.onlyCheckInstalledOrTrackOnlyApps)
|
||||
.map((e) => MapEntry(e, 0)))
|
||||
];
|
||||
List<MapEntry<String, int>> toInstall = <MapEntry<String, int>>[
|
||||
@@ -1446,7 +1466,8 @@ Future<void> bgUpdateCheck(int taskId, Map<String, dynamic>? params) async {
|
||||
// Check for updates
|
||||
notificationsProvider.notify(notif, cancelExisting: true);
|
||||
updates = await appsProvider.checkUpdates(
|
||||
specificIds: toCheck.map((e) => e.key).toList());
|
||||
specificIds: toCheck.map((e) => e.key).toList(),
|
||||
sp: appsProvider.settingsProvider);
|
||||
} catch (e) {
|
||||
// If there were errors, group them into toRetry and toThrow based on max retry count per app
|
||||
if (e is Map) {
|
||||
|
@@ -406,4 +406,13 @@ class SettingsProvider with ChangeNotifier {
|
||||
prefs?.setBool('autoExportOnChanges', val);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
bool get onlyCheckInstalledOrTrackOnlyApps {
|
||||
return prefs?.getBool('onlyCheckInstalledOrTrackOnlyApps') ?? false;
|
||||
}
|
||||
|
||||
set onlyCheckInstalledOrTrackOnlyApps(bool val) {
|
||||
prefs?.setBool('onlyCheckInstalledOrTrackOnlyApps', val);
|
||||
notifyListeners();
|
||||
}
|
||||
}
|
||||
|
@@ -330,6 +330,7 @@ abstract class AppSource {
|
||||
bool appIdInferIsOptional = false;
|
||||
bool allowSubDomains = false;
|
||||
bool naiveStandardVersionDetection = false;
|
||||
bool neverAutoSelect = false;
|
||||
|
||||
AppSource() {
|
||||
name = runtimeType.toString();
|
||||
@@ -493,6 +494,7 @@ abstract class AppSource {
|
||||
}
|
||||
|
||||
bool canSearch = false;
|
||||
bool excludeFromMassSearch = false;
|
||||
List<GeneratedFormItem> searchQuerySettingFormItems = [];
|
||||
Future<Map<String, List<String>>> search(String query,
|
||||
{Map<String, dynamic> querySettings = const {}}) {
|
||||
@@ -604,7 +606,8 @@ class SourceProvider {
|
||||
}
|
||||
}
|
||||
if (source == null) {
|
||||
for (var s in sources.where((element) => element.host == null)) {
|
||||
for (var s in sources.where(
|
||||
(element) => element.host == null && !element.neverAutoSelect)) {
|
||||
try {
|
||||
s.sourceSpecificStandardizeURL(url);
|
||||
source = s;
|
||||
@@ -673,7 +676,6 @@ class SourceProvider {
|
||||
}
|
||||
}
|
||||
}
|
||||
String apkVersion = apk.version.replaceAll('/', '-');
|
||||
var name = currentApp != null ? currentApp.name.trim() : '';
|
||||
name = name.isNotEmpty ? name : apk.names.name;
|
||||
App finalApp = App(
|
||||
@@ -688,7 +690,7 @@ class SourceProvider {
|
||||
apk.names.author,
|
||||
name,
|
||||
currentApp?.installedVersion,
|
||||
apkVersion,
|
||||
apk.version,
|
||||
apk.apkUrls,
|
||||
apk.apkUrls.length - 1 >= 0 ? apk.apkUrls.length - 1 : 0,
|
||||
additionalSettings,
|
||||
|
40
pubspec.lock
40
pubspec.lock
@@ -118,10 +118,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: connectivity_plus
|
||||
sha256: "94d51c6f1299133a2baa4c5c3d2c11ec7d7fb4768dee5c52a56f7d7522fcf70e"
|
||||
sha256: b502a681ba415272ecc41400bd04fe543ed1a62632137dc84d25a91e7746f55f
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.0.0"
|
||||
version: "5.0.1"
|
||||
connectivity_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -182,10 +182,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: device_info_plus
|
||||
sha256: "86add5ef97215562d2e090535b0a16f197902b10c369c558a100e74ea06e8659"
|
||||
sha256: "7035152271ff67b072a211152846e9f1259cf1be41e34cd3e0b5463d2d6b8419"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "9.0.3"
|
||||
version: "9.1.0"
|
||||
device_info_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -198,10 +198,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: dynamic_color
|
||||
sha256: "96bff3df72e3d428bda2b874c7a521e8c86f592cae626ea594922fcc8d166e0c"
|
||||
sha256: "8b8bd1d798bd393e11eddeaa8ae95b12ff028bf7d5998fc5d003488cd5f4ce2f"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.6.7"
|
||||
version: "1.6.8"
|
||||
easy_localization:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -283,10 +283,10 @@ packages:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: flutter_lints
|
||||
sha256: a25a15ebbdfc33ab1cd26c63a6ee519df92338a9c10f122adda92938253bef04
|
||||
sha256: ad76540d21c066228ee3f9d1dad64a9f7e46530e8bb7c85011a88bc1fd874bc5
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.3"
|
||||
version: "3.0.0"
|
||||
flutter_local_notifications:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -418,10 +418,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: lints
|
||||
sha256: "0a217c6c989d21039f1498c3ed9f3ed71b354e69873f13a8dfc3c9fe76f1b452"
|
||||
sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.1"
|
||||
version: "3.0.0"
|
||||
markdown:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -618,18 +618,18 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: share_plus
|
||||
sha256: "6cec740fa0943a826951223e76218df002804adb588235a8910dc3d6b0654e11"
|
||||
sha256: f74fc3f1cbd99f39760182e176802f693fa0ec9625c045561cfad54681ea93dd
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.1.0"
|
||||
version: "7.2.1"
|
||||
share_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: share_plus_platform_interface
|
||||
sha256: "357412af4178d8e11d14f41723f80f12caea54cf0d5cd29af9dcdab85d58aea7"
|
||||
sha256: df08bc3a07d01f5ea47b45d03ffcba1fa9cd5370fb44b3f38c70e42cced0f956
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.3.0"
|
||||
version: "3.3.1"
|
||||
shared_preferences:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -707,6 +707,14 @@ packages:
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.10.0"
|
||||
sprintf:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: sprintf
|
||||
sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.0.0"
|
||||
sqflite:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -855,10 +863,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: uuid
|
||||
sha256: "648e103079f7c64a36dc7d39369cabb358d377078a051d6ae2ad3aa539519313"
|
||||
sha256: b715b8d3858b6fa9f68f87d20d98830283628014750c2b09b6f516c1da4af2a7
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.0.7"
|
||||
version: "4.1.0"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||
# In Windows, build-name is used as the major, minor, and patch parts
|
||||
# of the product and file versions while build-number is used as the build suffix.
|
||||
version: 0.14.28+220 # When changing this, update the tag in main() accordingly
|
||||
version: 0.14.31+223 # When changing this, update the tag in main() accordingly
|
||||
|
||||
environment:
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
@@ -77,7 +77,7 @@ dev_dependencies:
|
||||
# activated in the `analysis_options.yaml` file located at the root of your
|
||||
# package. See that file for information about deactivating specific lint
|
||||
# rules and activating additional ones.
|
||||
flutter_lints: ^2.0.1
|
||||
flutter_lints: ^3.0.0
|
||||
|
||||
flutter_launcher_icons:
|
||||
android: "ic_launcher"
|
||||
|
Reference in New Issue
Block a user