Compare commits

...

16 Commits

Author SHA1 Message Date
4f42b5a3ee Merge pull request #1228 from ImranR98/dev
Save Search Preferences (#1226)
2023-12-31 23:42:22 -05:00
5d9645eaff Save Search Preferences (#1226) 2023-12-31 23:41:46 -05:00
c032808d82 Merge pull request #1227 from ImranR98/dev
- Add www subdomain support for various sources (#1222)
- Disable standard version detection for WhatsApp (should never have been enabled)
2023-12-31 23:29:31 -05:00
282c94266e Merge remote-tracking branch 'origin/main' into dev 2023-12-31 23:28:09 -05:00
e2f7d52bee Increment version 2023-12-31 23:27:23 -05:00
6317f0162a Disable standard version detection for WhatsApp (should never have been enabled) 2023-12-31 22:05:50 -05:00
436a6310d7 Add www subdomain support for various sources (#1222) 2023-12-31 15:59:44 -05:00
70fcfc1753 Merge remote-tracking branch 'origin/main' into dev 2023-12-30 10:50:22 -05:00
1e34048c0c Merge pull request #1218 from LilligantMatsuri/main
Update Chinese translation
2023-12-30 10:50:12 -05:00
45b1b23262 Merge pull request #1215 from oSoWoSo/cz
Update cs.json
2023-12-30 10:50:04 -05:00
07842ace4e Merge pull request #1217 from gidano/main
Update hu.json
2023-12-30 10:49:34 -05:00
8e75280093 Merge pull request #1220 from ImranR98/dev
Fix intermediate link bug (#1219)
2023-12-30 10:49:21 -05:00
029b9ef498 Fix intermediate link bug (#1219) 2023-12-30 10:49:05 -05:00
51970abce7 Update zh.json
- Add & translate new strings
- Minor improvements

Signed-off-by: Matsuri <matsuri@vmoe.info>
2023-12-30 16:55:01 +08:00
f6faa19e5f Update hu.json 2023-12-30 09:45:46 +01:00
dd7217ca54 Update cs.json 2023-12-30 04:31:05 +01:00
21 changed files with 210 additions and 178 deletions

View File

@ -9,36 +9,36 @@
"placeholder": "Zástupce",
"someErrors": "Vyskytly se nějaké chyby",
"unexpectedError": "Neočekávaná chyba",
"ok": "Okay",
"ok": "Ok",
"and": "a",
"githubPATLabel": "GitHub Personal Access Token (Raises Rate Limit)",
"includePrereleases": "includepreleases",
"fallbackToOlderReleases": "Fallback to older releases",
"filterReleaseTitlesByRegEx": "Názvy vydání podle regulárního výrazu\filtr",
"githubPATLabel": "GitHub Personal Access Token (zvyšuje limit rychlosti)",
"includePrereleases": "Zahrnout předběžné verze",
"fallbackToOlderReleases": "Přechod na starší verze",
"filterReleaseTitlesByRegEx": "Filtrovat názvy verzí podle regulárního výrazu",
"invalidRegEx": "Neplatný regulární výraz",
"noDescription": "Žádný popis",
"cancel": "Zrušit",
"continue": "Pokračovat",
"requiredInBracets": "(Required)",
"dropdownNoOptsError": "ERROR: DROPDOWN MUSÍ MÍT AŽ JEDNU MOŽNOST",
"color": "barva",
"colour": "Barva",
"githubStarredRepos": "GitHub Starred Repos",
"uname": "username",
"wrongArgNum": "Špatný počet předložených argumentů",
"xIsTrackOnly": "{} je určeno pouze pro sledování",
"source": "zdroj",
"uname": "Uživatelské jméno",
"wrongArgNum": "Nesprávný počet zadaných argumentů",
"xIsTrackOnly":"{} je určeno pouze pro sledování",
"source": "Zdroj",
"app": "App",
"appsFromSourceAreTrackOnly": "Aplikace z tohoto zdroje jsou 'Jen sledovány'.",
"youPickedTrackOnly": "Vybrali jste možnost 'Jen sledovat'.",
"appsFromSourceAreTrackOnly": "Aplikace z tohoto zdroje jsou Jen sledovány.",
"youPickedTrackOnly": "Vybrali jste možnost Jen sledovat.",
"trackOnlyAppDescription": "Aplikace je sledována kvůli aktualizacím, ale Obtainium ji nebude stahovat ani instalovat.",
"cancelled": "Zrušeno",
"appAlreadyAdded": "Aplikace již přidána",
"alreadyUpToDateQuestion": "App already up to date?",
"addApp": "Přidat aplikaci",
"appSourceURL": "zdrojová adresa URL aplikace",
"appSourceURL": "Zdrojová adresa URL aplikace",
"error": "Chyba",
"add": "Přidat",
"searchSomeSourcesLabel": "Vyhledávání (pouze konkrétní zdroje)",
"searchSomeSourcesLabel": "Vyhledávání (pouze pro určité zdroje)",
"search": "Hledat",
"additionalOptsFor": "Další možnosti pro {}",
"supportedSources": "Podporované zdroje",
@ -46,45 +46,45 @@
"searchableInBrackets": "(s možností vyhledávání)",
"appsString": "Apky",
"noApps": "Žádné aplikace",
"noAppsForFilter": "žádné aplikace pro vybraný filtr",
"byX": "By {}",
"noAppsForFilter": "Žádné aplikace pro vybraný filtr",
"byX": "Od {}",
"percentProgress": "Pokrok: {}%",
"pleaseWait": "Počkejte prosím",
"updateAvailable": "Aktualizace je k dispozici",
"estimateInBracketsShort": "(approx.)",
"notInstalled": "Není nainstalováno",
"estimateInBrackets": "(přibližně)",
"selectAll": "Vybrat Vše",
"selectAll": "Vybrat vše",
"deselectX": "{} deselected",
"xWillBeRemovedButRemainInstalled": "{} bude odstraněn z Obtainium, ale zůstane nainstalován v zařízení.",
"removeSelectedAppsQuestion": "Odebrat vybrané aplikace?",
"removeSelectedApps": "Odebrat vybrané aplikace",
"updateX": "Aktualizovat {}",
"installX": "Instalovat {}",
"markXTrackOnlyAsUpdated": "Označit {}\n(Track-Only)\njako aktualizované",
"markXTrackOnlyAsUpdated": "Označit {}\n(Jen sledované)\njako aktualizované",
"changeX": "Změnit {}",
"installUpdateApps": "Instalovat/aktualizovat aplikace",
"installUpdateSelectedApps": "Instalovat/aktualizovat vybrané aplikace",
"markXSelectedAppsAsUpdated": "označit {} vybrané aplikace jako aktuální?",
"markXSelectedAppsAsUpdated": "Označit {} vybrané aplikace jako aktuální?",
"no": "Ne",
"yes": "ano",
"markSelectedAppsUpdated": "označit vybrané aplikace jako aktuální",
"yes": "Ano",
"markSelectedAppsUpdated": "Označit vybrané aplikace jako aktuální",
"pinToTop": "Připnout nahoru",
"unpinFromTop": "'Unpin Top'",
"unpinFromTop": "Odepnout shora",
"resetInstallStatusForSelectedAppsQuestion": "Obnovit stav instalace vybraných aplikací?",
"installStatusOfXWillBeResetExplanation": "Stav instalace vybraných aplikací bude resetován. To může být užitečné, pokud je verze aplikace zobrazená v Obtainium nesprávná z důvodu neúspěšných aktualizací nebo jiných problémů.",
"shareSelectedAppURLs": "Sdílet adresy URL vybraných aplikací",
"resetInstallStatus": "Obnovení stavu instalace",
"more": "more",
"removeOutdatedFilter": "Odstranit filtr aplikace 'Not Current'",
"showOutdatedOnly": "Zobrazit pouze aplikace, které nejsou aktuální",
"resetInstallStatus": "Obnovit stav instalace",
"more": "Více",
"removeOutdatedFilter": "Odstranit filtr Neaktuální",
"showOutdatedOnly": "Zobrazovat pouze zastaralé aplikace",
"filter": "Filtr",
"filterActive": "Filtr *",
"filterApps": "Filtrovat aplikace",
"appName": "název aplikace",
"appName": "Název aplikace",
"author": "Autor",
"upToDateApps": "Apps with current version",
"nonInstalledApps": "Apps not installed",
"upToDateApps": "Aktuální apky",
"nonInstalledApps": "Neinstalované apky",
"importExport": "Import/Export",
"settings": "Nastavení",
"exportedTo": "Exportováno do {}",
@ -93,76 +93,76 @@
"importedX": "Importováno {}",
"obtainiumImport": "Obtainium Import",
"importFromURLList": "Import ze seznamu URL",
"searchQuery": "Search Query",
"appURLList": "App URL List",
"line": "line",
"searchQuery": "Vyhledávací dotaz",
"appURLList": "Seznam adres aplikací",
"line": "Linka",
"searchX": "Search {}",
"noResults": "Nebyly nalezeny žádné výsledky",
"importX": "Import {}",
"importedAppsIdDisclaimer": "Importované aplikace mohou být nesprávně zobrazeny jako \"Neinstalované\". Chcete-li to opravit, nainstalujte je znovu prostřednictvím Obtainium. To nemá vliv na data aplikací. Ovlivňuje pouze metody importu URL a třetích stran.",
"importErrors": "Import Errors",
"importedXOfYApps": "{}importováno {}aplikací.",
"followingURLsHadErrors": "U následujících adres URL došlo k chybám:",
"importedAppsIdDisclaimer": "Importované aplikace mohou být nesprávně zobrazeny jako \"Neinstalovány\". Chcete-li to opravit, nainstalujte je znovu prostřednictvím Obtainium. To nemá vliv na data aplikací. Ovlivňuje pouze metody importu URL a třetích stran.",
"importErrors": "Chyba importu",
"importedXOfYApps": "{}importováno z {} aplikací.",
"followingURLsHadErrors": "U následujících adres došlo k chybám:",
"okay": "Okay",
"selectURL": "Select URL",
"selectURLs": "Select URLs",
"selectURL": "Vybrat adresu",
"selectURLs": "Select adresy",
"pick": "Vybrat",
"theme": "Téma",
"dark": "Tmavé",
"light": "Světlé",
"followSystem": "Follow System",
"followSystem": "Jako systém",
"obtainium": "Obtainium",
"materialYou": "Material You",
"useBlackTheme": "Použít čistě černé tmavé téma",
"appSortBy": "Seřadit aplikaci podle",
"authorName": "autor/jméno",
"nameAuthor": "jméno/autor",
"asAdded": "AsAdded",
"appSortOrder": "Sort App By",
"appSortBy": "Seřadit podle",
"authorName": "Autor/Jméno",
"nameAuthor": "Jméno/Autor",
"asAdded": "Přidáno",
"appSortOrder": "Seřadit",
"ascending": "Vzestupně",
"descending": "Sestupně",
"bgUpdateCheckInterval": "Background Update Check Interval",
"bgUpdateCheckInterval": "Interval kontroly aktualizace na pozadí",
"neverManualOnly": "Nikdy - pouze ručně",
"appearance": "Vzhled",
"showWebInAppView": "Zobrazit zdrojové webové stránky v zobrazení aplikace",
"pinUpdates": "Připnout aplikace s aktualizacemi nahoře",
"pinUpdates": "Připnout aplikace s aktualizacemi nahoru",
"updates": "Updates",
"sourceSpecific": "source specific",
"appSource": "zdroj aplikace",
"sourceSpecific": "Specifické pro zdroj",
"appSource": "Zdroj aplikace",
"noLogs": "Žádné protokoly",
"appLogs": "App Logs",
"appLogs": "Záznamy apky",
"close": "Zavřít",
"share": "Sdílet",
"appNotFound": "App not found",
"appNotFound": "Aplikace nenalezena",
"obtainiumExportHyphenatedLowercase": "obtainium-export",
"pickAnAPK": "Vybrat APK",
"appHasMoreThanOnePackage": "{} má více než jeden balíček:",
"deviceSupportsXArch": "Vaše zařízení podporuje architekturu CPU {}.",
"deviceSupportsFollowingArchs": "Vaše zařízení podporuje následující architektury CPU:",
"warning": "Varování",
"sourceIsXButPackageFromYPrompt": "The app source is '{}' but the release package is from '{}'. Pokračovat?",
"updatesAvailable": "dostupné aktualizace",
"sourceIsXButPackageFromYPrompt": "Zdroj aplikace je '{}', ale balíček pro vydání je z '{}'. Pokračovat?",
"updatesAvailable": "Dostupné aktualizace",
"updatesAvailableNotifDescription": "Upozorňuje uživatele, že jsou k dispozici aktualizace pro jednu nebo více aplikací sledovaných Obtainium",
"noNewUpdates": "Žádné nové aktualizace.",
"xHasAnUpdate": "{} má aktualizaci.",
"appsUpdated": "Aplikace aktualizovány",
"appsUpdatedNotifDescription": "Upozorňuje uživatele, že byly provedeny aktualizace jedné nebo více aplikací na pozadí",
"xWasUpdatedToY": "{} byl aktualizován na {}",
"errorCheckingUpdates": "Chybová kontrola aktualizací",
"errorCheckingUpdatesNotifDescription": "Oznámení zobrazené při neúspěšné kontrole aktualizací na pozadí",
"appsUpdatedNotifDescription": "Upozornit, že byly provedeny aktualizace jedné nebo více aplikací na pozadí",
"xWasUpdatedToY": "{} byla aktualizována na {}",
"errorCheckingUpdates": "Chyba kontroly aktualizací",
"errorCheckingUpdatesNotifDescription": "Zobrazit oznámení při neúspěšné kontrole aktualizací na pozadí",
"appsRemoved": "Odstraněné aplikace",
"appsRemovedNotifDescription": "Oznámení uživateli, že jedna nebo více aplikací byly odstraněny z důvodu chyb při načítání",
"appsRemovedNotifDescription": "Oznámit, že jedna nebo více aplikací bylo odstraněno z důvodu chyb při načítání",
"xWasRemovedDueToErrorY": "{} byla odstraněna z důvodu následující chyby: {}",
"completeAppInstallation": "Dokončit instalaci aplikace",
"obtainiumMustBeOpenToInstallApps": "Obtainium musí být otevřeno, aby bylo možné instalovat aplikace",
"completeAppInstallationNotifDescription": "Vyzvat uživatele k návratu do Obtainium pro dokončení instalace aplikací",
"completeAppInstallationNotifDescription": "Vyzvat k návratu do Obtainium pro dokončení instalace aplikací",
"checkingForUpdates": "Zkontrolovat aktualizace",
"checkingForUpdatesNotifDescription": "Dočasné oznámení zobrazené při kontrole aktualizací",
"pleaseAllowInstallPerm": "Povolte prosím Obtainium instalovat aplikace",
"trackOnly": "Jen sledovat",
"errorWithHttpStatusCode": "error {}",
"errorWithHttpStatusCode": "Chyba {}",
"versionCorrectionDisabled": "Oprava verze zakázána (zásuvný modul zřejmě nefunguje)",
"unknown": "Unknown",
"unknown": "Neznám",
"none": "None",
"never": "Nikdy",
"latestVersionX": "Nejnovější verze: {}",
@ -170,12 +170,12 @@
"lastUpdateCheckX": "Poslední kontrola aktualizace: {}",
"remove": "Odebrat",
"yesMarkUpdated": "Ano, označit jako aktualizované",
"fdroid": "F-Droid Official",
"appIdOrName": "App ID or Name",
"fdroid": "Oficiální repozitář F-Droid",
"appIdOrName": "ID nebo název apky",
"appId": "App ID",
"appWithIdOrNameNotFound": "Žádná aplikace s tímto ID nebo názvem nebyla nalezena",
"reposHaveMultipleApps": "Repozitáře mohou obsahovat více aplikací",
"fdroidThirdPartyRepo": "F-Droid Third-Party Repo",
"fdroidThirdPartyRepo": "F-Droid repozitář třetí strany",
"steam": "Steam",
"steamMobile": "Steam Mobile",
"steamChat": "Steam Chat",
@ -183,106 +183,111 @@
"markInstalled": "Označit jako nainstalovaný",
"update": "Aktualizovat",
"markUpdated": "Označit jako aktuální",
"additionalOptions": "Additional Options",
"disableVersionDetection": "Zakázat detekci verze",
"noVersionDetectionExplanation": "Tato volba by měla být použita pouze u aplikací, kde detekce verzí nefunguje správně.",
"downloadingX": "download {}",
"additionalOptions": "Další možnosti",
"disableVersionDetection": "Deaktivovat detekci verze",
"noVersionDetectionExplanation": "Tato možnost by měla být použita pouze u aplikace, kde detekce verzí nefunguje správně.",
"downloadingX": "Stáhnout {}",
"downloadNotifDescription": "Informuje uživatele o průběhu stahování aplikace",
"noAPKFound": "Žádná APK nebyla nalezena",
"noVersionDetection": "Žádná detekce verze",
"categorize": "Kategorizovat",
"categories": "Kategorie",
"category": "kategorie",
"category": "Kategorie",
"noCategory": "Žádná kategorie",
"noCategories": "Žádné kategorie",
"deleteCategoriesQuestion": "Smazat kategorie?",
"categoryDeleteWarning": "Všechny aplikace v odstraněných kategoriích budou nastaveny na nekategorizované.",
"addCategory": "přidat kategorii",
"label": "štítek",
"addCategory": "Přidat kategorii",
"label": "Štítek",
"language": "Jazyk",
"copiedToClipboard": "zkopírováno do schránky",
"storagePermissionDenied": "povolení k ukládání odepřeno",
"copiedToClipboard": "Zkopírováno do schránky",
"storagePermissionDenied": "Oprávnění k ukládání odepřeno",
"selectedCategorizeWarning": "Toto nahradí všechna stávající nastavení kategorií pro vybrané aplikace.",
"filterAPKsByRegEx": "Filtrovat APK podle regulárního výrazu",
"removeFromObtainium": "Odebrat z Obtainium",
"uninstallFromDevice": "Odinstalovat ze zařízení",
"onlyWorksWithNonVersionDetectApps": "Funguje pouze pro aplikace s vypnutou detekcí verze.",
"releaseDateAsVersion": "Použít datum vydání jako verzi",
"releaseDateAsVersionExplanation": "Tato možnost by měla být použita pouze u aplikací, u kterých detekce verze nefunguje správně, ale je k dispozici datum vydání.",
"releaseDateAsVersionExplanation": "Tato možnost by měla být použita pouze u aplikace, kde detekce verzí nefunguje správně, ale je k dispozici datum vydání.",
"changes": "Změny",
"releaseDate": "datum vydání",
"releaseDate": "Datum vydání",
"importFromURLsInFile": "Importovat adresy URL ze souboru (např. OPML)",
"versionDetection": "detekce verze",
"standardVersionDetection": "standardní detekce verze",
"versionDetection": "Detekce verze",
"standardVersionDetection": "Standardní detekce verze",
"groupByCategory": "Seskupit podle kategorie",
"autoApkFilterByArch": "Pokud je to možné, pokuste se filtrovat soubory APK podle architektury procesoru",
"overrideSource": "Přepsat zdroj",
"dontShowAgain": "Nezobrazovat znovu",
"dontShowTrackOnlyWarnings": "Nezobrazovat varování pro 'Track Only'",
"dontShowTrackOnlyWarnings": "Nezobrazovat varování pro 'Jen sledované'",
"dontShowAPKOriginWarnings": "Nezobrazovat varování pro původ APK",
"moveNonInstalledAppsToBottom": "Přesunout nenainstalované aplikace na konec zobrazení Aplikace",
"gitlabPATLabel": "GitLab Personal Access Token\n(Umožňuje vyhledávání a lepší zjišťování APK)",
"about": "About",
"about": "O",
"requiresCredentialsInSettings": "{}: Vyžaduje další pověření (v nastavení)",
"checkOnStart": "Zkontrolovat jednou při spuštění",
"tryInferAppIdFromCode": "Pokusit se určit ID aplikace ze zdrojového kódu",
"removeOnExternalUninstall": "Automaticky odstranit externě odinstalované aplikace",
"pickHighestVersionCode": "Automaticky vybrat APK s kódem nejvyšší verze",
"checkUpdateOnDetailPage": "Zkontrolovat aktualizace při otevření stránky s podrobnostmi aplikace",
"pickHighestVersionCode": "Automaticky vybrat nejvyšší verzi APK",
"checkUpdateOnDetailPage": "Zkontrolovat aktualizaci při otevření stránky s podrobnostmi aplikace",
"disablePageTransitions": "Zakázat animace pro přechody stránek",
"reversePageTransitions": "Obrátit animace pro přechody stránek",
"minStarCount": "Minimální počet hvězdiček",
"addInfoBelow": "Přidat tuto informaci na konec stránky",
"addInfoBelow": "Přidat tuto informaci na konec stránky.",
"addInfoInSettings": "Přidat tuto informaci do nastavení.",
"githubSourceNote": "Omezení rychlosti GitHub lze obejít pomocí klíče API.",
"gitlabSourceNote": "Extrakce GitLab APK nemusí fungovat bez klíče API",
"sortByLastLinkSegment": "Sort by only the last segment of the link",
"sortByLastLinkSegment": "Seřadit pouze podle poslední části odkazu",
"filterReleaseNotesByRegEx": "Filtrovat poznámky k vydání podle regulárního výrazu",
"customLinkFilterRegex": "Vlastní filtr odkazů APK podle regulárního výrazu (výchozí '.apk$')",
"appsPossiblyUpdated": "Byly provedeny pokusy o aktualizaci aplikací",
"appsPossiblyUpdatedNotifDescription": "Upozorňuje uživatele, že na pozadí mohly být provedeny aktualizace jedné nebo více aplikací",
"xWasPossiblyUpdatedToY": "{} mohlo být aktualizováno na {}.",
"xWasPossiblyUpdatedToY":"{} mohlo být aktualizováno na {}.",
"enableBackgroundUpdates": "Povolit aktualizace na pozadí",
"backgroundUpdateReqsExplanation": "Aktualizace na pozadí nemusí být možné pro všechny aplikace.",
"backgroundUpdateLimitsExplanation": "Úspěšnost instalace na pozadí lze určit pouze v případě, že je otevřen Obtainium.",
"verifyLatestTag": "Ověřit značku 'latest'",
"intermediateLinkRegex": "Filter for an 'Intermediate' Link to Visit",
"filterByLinkText": "Filter links by link text",
"intermediateLinkNotFound": "Intermediate link not found",
"intermediateLink": "Intermediate link",
"exemptFromBackgroundUpdates": "Vyloučit aktualizace na pozadí (pokud jsou povoleny)",
"bgUpdatesOnWiFiOnly": "Zakázat aktualizace na pozadí, pokud není přítomna Wi-Fi",
"autoSelectHighestVersionCode": "Automatický výběr nejvyššího kódu verze APK",
"versionExtractionRegEx": "Version Extraction RegEx",
"matchGroupToUse": "Match Group to Use",
"backgroundUpdateReqsExplanation": "Aktualizace na pozadí nemusí být možná pro všechny aplikace.",
"backgroundUpdateLimitsExplanation": "Úspěšnost instalace na pozadí lze určit pouze v případě, že je otevřeno Obtainium.",
"verifyLatestTag": "Zkontrolovat značku latest",
"intermediateLinkRegex": "Filtrovat mezipropojení, které by mělo být navštíveno jako první",
"filterByLinkText": "Filtrovat odkazy podle textu odkazu",
"intermediateLinkNotFound": "Připojený odkaz nenalezen",
"intermediateLink": "Připojený odkaz",
"exemptFromBackgroundUpdates": "Vyloučit z aktualizací na pozadí (je-li povoleno)",
"bgUpdatesOnWiFiOnly": "Deaktivovat aktualizace na pozadí, pokud není k dispozici Wi-Fi",
"autoSelectHighestVersionCode": "Automaticky vybrat nejvyšší verzi APK",
"versionExtractionRegEx": "Extrakce verze pomocí RegEx",
"matchGroupToUse": "Odpovídá použité skupině",
"highlightTouchTargets": "Zvýraznit méně zjevné cíle dotyku",
"pickExportDir": "Vybrat adresář pro export",
"autoExportOnChanges": "Automatický export při změnách",
"includeSettings": "Include settings",
"filterVersionsByRegEx": "Filtrovat verze podle regulárního výrazu",
"trySelectingSuggestedVersionCode": "Zkusit vybrat navrhovaný kód verze APK",
"dontSortReleasesList": "Retain release order from API",
"reverseSort": "Reverse sorting",
"takeFirstLink": "Take first link",
"skipSort": "Skip 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",
"updatesAvailableNotifChannel": "dostupné aktualizace",
"appsUpdatedNotifChannel": "Aplikace aktualizovány",
"appsPossiblyUpdatedNotifChannel": "Byly provedeny pokusy o aktualizaci aplikací",
"errorCheckingUpdatesNotifChannel": "Chybová kontrola aktualizací",
"appsRemovedNotifChannel": "Odstraněné aplikace",
"downloadingXNotifChannel": "download {}",
"autoExportOnChanges": "Automatický export při změně",
"includeSettings": "Zahrnout nastavení",
"filterVersionsByRegEx": "Filtrovat verze podle regulárních výrazů",
"trySelectingSuggestedVersionCode": "Zkusit vybrat navrhovanou verzi APK",
"dontSortReleasesList": "Seřadit vydání z rozhraní API",
"reverseSort": "Obrácené třídění",
"takeFirstLink": "Použít první odkaz",
"skipSort": "Přeskočit třídění",
"debugMenu": "Nabídka ladění",
"bgTaskStarted": "Spuštěna úloha na pozadí - zkontrolujte protokoly.",
"runBgCheckNow": "Spustit kontrolu aktualizací na pozadí nyní",
"versionExtractWholePage": "Použít extrakci verze pomocí RegEx na celou stránku",
"installing": "Instaluji",
"skipUpdateNotifications": "Neposkytovat oznámení o aktualizaci",
"updatesAvailableNotifChannel": "Dostupné aktualizace",
"appsUpdatedNotifChannel": "Apky aktualizovány",
"appsPossiblyUpdatedNotifChannel": "Byly provedeny pokusy o aktualizace aplikací",
"errorCheckingUpdatesNotifChannel": "Chyba při kontrole aktualizací",
"appsRemovedNotifChannel": "Odstraněné apky",
"downloadingXNotifChannel": "Stáhnout {}",
"completeAppInstallationNotifChannel": "Dokončit instalaci aplikace",
"checkingForUpdatesNotifChannel": "Zkontrolovat aktualizace",
"onlyCheckInstalledOrTrackOnlyApps": "Only check installed and Track-Only apps for updates",
"supportFixedAPKURL": "Support fixed APK URLs",
"selectX": "Select {}",
"parallelDownloads": "Allow parallel downloads",
"onlyCheckInstalledOrTrackOnlyApps": "Na aktualizace kontrolovat pouze nainstalované aplikace a aplikace označené Track only",
"supportFixedAPKURL": "Odhadnout novější verzi na základě prvních třiceti číslic kontrolního součtu adresy URL APK, pokud není podporována jinak",
"selectX": "Vybrat {}",
"parallelDownloads": "Povolit souběžné stahování",
"installMethod": "Metoda instalace",
"normal": "Normální",
"shizuku": "Shizuku",
"root": "Správce",
"shizukuBinderNotFound": "Shizuku neběží",
"removeAppQuestion": {
"one": "Odstranit Apku?",
"other": "Odstranit Apky?"
@ -292,47 +297,47 @@
"other": "Příliš mnoho požadavků (omezená rychlost) - zkuste to znovu za {} minut"
},
"bgUpdateGotErrorRetryInMinutes": {
"one": "Při kontrole aktualizace na pozadí byla zjištěna chyba {}, opakování pokusu bude naplánováno za {} minut",
"other": "Během kontroly aktualizace na pozadí byla zjištěna chyba {}, opakování bude naplánováno za {} minut"
"one": "Při kontrole aktualizace na pozadí byla zjištěna chyba {}, opakování bude naplánováno za {} minut",
"other": "Při kontrole aktualizací na pozadí byla zjištěna chyba {}, opakování bude naplánováno za {} minut"
},
"bgCheckFoundUpdatesWillNotifyIfNeeded": {
"one": "Při kontrole aktualizací na pozadí nalezena {}aktualizace - v případě potřeby upozorní uživatele",
"other": "Kontrola aktualizací na pozadí našla {} aktualizací - v případě potřeby upozorní uživatele"
"other": "Kontrola aktualizací na pozadí nalezla {} aktualizací - v případě potřeby upozorní uživatele"
},
"apps": {
"one": "{} App",
"other": "{} apps"
"one": "{} Apka",
"other": "{} Apky"
},
"url": {
"jedna": "{} URL",
"other": "{} URLs"
"one": "{} Adresa",
"other": "{} Adres"
},
"minute": {
"one": "{} minute",
"other": "{} minutes"
"one": "{} Minuta",
"other": "{} Minut"
},
"hour": {
"jedna": "{} hodina",
"other": "{} hours"
"one": "{} Hodina",
"other": "{} Hodin"
},
"day": {
"jedna": "{} den",
"other": "{} dny"
"one": "{} Den",
"other": "{} Dnů"
},
"clearedNLogsBeforeXAfterY": {
"one": "{n} log vymazán (před = {před}, po = {po})",
"other": "{n} logů vymazáno (před = {před}, po = {po})"
"one": "{n} Záznam vymazán (před = {before}, po = {after})",
"other": "{n} Záznamů vymazáno (před = {before}, po = {after})"
},
"xAndNMoreUpdatesAvailable": {
"one": "{} a 1 další aplikace mají aktualizace.",
"other": "{} a {} další aplikace mají aktualizace."
},
"xAndNMoreUpdatesInstalled": {
"one": "{} a {} další aplikace mají aktualizace.",
"další": "{} a {} další aplikace byly aktualizovány."
"one": "{} a 1 další aplikace mají aktualizace.",
"other": "{} a {} další aplikace byly aktualizovány."
},
"xAndNMoreUpdatesPossiblyInstalled": {
"one": "{} a {} další aplikace byly možná aktualizovány",
"other": "{} a {} další aplikace mohly být aktualizovány."
"one": "{} a 1 další aplikace možno aktualizovat",
"other": "{} a {} další aplikace mohou být aktualizovány."
}
}
}

View File

@ -282,7 +282,7 @@
"onlyCheckInstalledOrTrackOnlyApps": "Csak a telepített és a csak követhető appokat ellenőrizze frissítésekért",
"supportFixedAPKURL": "Támogatja a rögzített APK URL-eket",
"selectX": "Kiválaszt {}",
"parallelDownloads": "Allow parallel downloads",
"parallelDownloads": "Párhuzamos letöltéseket enged",
"removeAppQuestion": {
"one": "Eltávolítja az alkalmazást?",
"other": "Eltávolítja az alkalmazást?"

View File

@ -223,7 +223,7 @@
"moveNonInstalledAppsToBottom": "将未安装应用置底",
"gitlabPATLabel": "GitLab 个人访问令牌(启用搜索功能并增强 APK 发现)",
"about": "相关文档",
"requiresCredentialsInSettings": "{}: 此功能需要额外的凭据(在“设置”中添加)",
"requiresCredentialsInSettings": "{}此功能需要额外的凭据(在“设置”中添加)",
"checkOnStart": "启动时进行一次检查",
"tryInferAppIdFromCode": "尝试从源代码推断应用 ID",
"removeOnExternalUninstall": "自动删除已卸载的外部应用",
@ -236,9 +236,9 @@
"addInfoInSettings": "在“设置”中添加此凭据。",
"githubSourceNote": "使用访问令牌可避免触发 GitHub 的 API 请求限制。",
"gitlabSourceNote": "未使用访问令牌时可能无法从 GitLab 获取 APK 文件。",
"sortByLastLinkSegment": "Sort by only the last segment of the link",
"sortByLastLinkSegment": "仅根据链接的末尾部分进行筛选",
"filterReleaseNotesByRegEx": "筛选发行说明(正则表达式)",
"customLinkFilterRegex": "筛选自定义来源 APK 文件链接\n正则表达式默认匹配模式为“.apk$”)",
"customLinkFilterRegex": "筛选自定义来源 APK 文件链接\n正则表达式默认匹配模式为“.apk$”)",
"appsPossiblyUpdated": "已尝试更新应用",
"appsPossiblyUpdatedNotifDescription": "当应用已尝试在后台更新时发送通知",
"xWasPossiblyUpdatedToY": "已尝试将“{}”更新至 {}。",
@ -246,29 +246,29 @@
"backgroundUpdateReqsExplanation": "后台更新未必适用于所有的应用。",
"backgroundUpdateLimitsExplanation": "只有在启动 Obtainium 时才能确认安装是否成功。",
"verifyLatestTag": "验证“Latest”标签",
"intermediateLinkRegex": "Filter for an 'Intermediate' Link to Visit",
"filterByLinkText": "Filter links by link text",
"intermediateLinkNotFound": "未找到中转链接",
"intermediateLink": "Intermediate link",
"exemptFromBackgroundUpdates": "禁用后台更新\n(如果已经全局启用)",
"intermediateLinkRegex": "筛选中转链接(正则表达式)",
"filterByLinkText": "根据链接文本进行筛选",
"intermediateLinkNotFound": "未找到中转链接",
"intermediateLink": "中转链接",
"exemptFromBackgroundUpdates": "禁用后台更新(如果已经全局启用)",
"bgUpdatesOnWiFiOnly": "未连接 Wi-Fi 时禁用后台更新",
"autoSelectHighestVersionCode": "自动选择版本号最高的 APK 文件",
"versionExtractionRegEx": "提取版本号(正则表达式)",
"versionExtractionRegEx": "版本号提取规则(正则表达式)",
"matchGroupToUse": "引用的捕获组",
"highlightTouchTargets": "突出展示不明显的触摸区域",
"pickExportDir": "选择导出文件夹",
"autoExportOnChanges": "数据变更时自动导出",
"includeSettings": "Include settings",
"includeSettings": "同时导出应用设置",
"filterVersionsByRegEx": "筛选版本号(正则表达式)",
"trySelectingSuggestedVersionCode": "尝试选择推荐版本的 APK 文件",
"dontSortReleasesList": "保持来自 API 的发行顺序",
"reverseSort": "反转排序",
"takeFirstLink": "Take first link",
"skipSort": "Skip sorting",
"takeFirstLink": "选取第一个链接",
"skipSort": "不进行排序",
"debugMenu": "调试选项",
"bgTaskStarted": "后台任务已启动 - 详见日志",
"runBgCheckNow": "立即进行后台更新检查",
"versionExtractWholePage": "将提取版本号的正则表达式应用于整页面",
"versionExtractWholePage": "将版本号提取规则应用于整页面",
"installing": "正在安装",
"skipUpdateNotifications": "忽略更新通知",
"updatesAvailableNotifChannel": "更新可用",
@ -280,9 +280,14 @@
"completeAppInstallationNotifChannel": "完成应用安装",
"checkingForUpdatesNotifChannel": "正在检查更新",
"onlyCheckInstalledOrTrackOnlyApps": "只对已安装和“仅追踪”的应用进行更新检查",
"supportFixedAPKURL": "Support fixed APK URLs",
"selectX": "Select {}",
"parallelDownloads": "Allow parallel downloads",
"supportFixedAPKURL": "支持固定的 APK 文件链接",
"selectX": "选择 {}",
"parallelDownloads": "启用并行下载",
"installMethod": "安装方式",
"normal": "常规",
"shizuku": "Shizuku",
"root": "Root",
"shizukuBinderNotFound": "Shizuku 服务未运行",
"removeAppQuestion": {
"one": "是否删除应用?",
"other": "是否删除应用?"

View File

@ -10,7 +10,7 @@ class APKCombo extends AppSource {
@override
String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp('^https?://$host/+[^/]+/+[^/]+');
RegExp standardUrlRegEx = RegExp('^https?://(www\\.)?$host/+[^/]+/+[^/]+');
var match = standardUrlRegEx.firstMatch(url.toLowerCase());
if (match == null) {
throw InvalidURLError(name);

View File

@ -34,7 +34,7 @@ class APKPure extends AppSource {
url = 'https://$host${Uri.parse(url).path}';
}
RegExp standardUrlRegExA =
RegExp('^https?://$host/+[^/]+/+[^/]+(/+[^/]+)?');
RegExp('^https?://(www\\.)?$host/+[^/]+/+[^/]+(/+[^/]+)?');
match = standardUrlRegExA.firstMatch(url.toLowerCase());
if (match == null) {
throw InvalidURLError(name);

View File

@ -16,7 +16,7 @@ class Codeberg extends AppSource {
@override
String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp('^https?://$host/[^/]+/[^/]+');
RegExp standardUrlRegEx = RegExp('^https?://(www\\.)?$host/[^/]+/[^/]+');
RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase());
if (match == null) {
throw InvalidURLError(name);

View File

@ -38,13 +38,14 @@ class FDroid extends AppSource {
@override
String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegExB =
RegExp('^https?://$host/+[^/]+/+packages/+[^/]+');
RegExp('^https?://(www\\.)?$host/+[^/]+/+packages/+[^/]+');
RegExpMatch? match = standardUrlRegExB.firstMatch(url.toLowerCase());
if (match != null) {
url =
'https://${Uri.parse(url.substring(0, match.end)).host}/packages/${Uri.parse(url).pathSegments.last}';
}
RegExp standardUrlRegExA = RegExp('^https?://$host/+packages/+[^/]+');
RegExp standardUrlRegExA =
RegExp('^https?://(www\\.)?$host/+packages/+[^/]+');
match = standardUrlRegExA.firstMatch(url.toLowerCase());
if (match == null) {
throw InvalidURLError(name);

View File

@ -149,7 +149,7 @@ class GitHub extends AppSource {
@override
String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp('^https?://$host/[^/]+/[^/]+');
RegExp standardUrlRegEx = RegExp('^https?://(www\\.)?$host/[^/]+/[^/]+');
RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase());
if (match == null) {
throw InvalidURLError(name);

View File

@ -52,7 +52,7 @@ class GitLab extends AppSource {
@override
String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp('^https?://$host/[^/]+/[^/]+');
RegExp standardUrlRegEx = RegExp('^https?://(www\\.)?$host/[^/]+/[^/]+');
RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase());
if (match == null) {
throw InvalidURLError(name);

View File

@ -13,7 +13,7 @@ class HuaweiAppGallery extends AppSource {
@override
String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp('^https?://$host/app/[^/]+');
RegExp standardUrlRegEx = RegExp('^https?://(www\\.)?$host/app/[^/]+');
RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase());
if (match == null) {
throw InvalidURLError(name);

View File

@ -11,7 +11,7 @@ class Mullvad extends AppSource {
@override
String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp('^https?://$host');
RegExp standardUrlRegEx = RegExp('^https?://(www\\.)?$host');
RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase());
if (match == null) {
throw InvalidURLError(name);

View File

@ -10,7 +10,8 @@ class NeutronCode extends AppSource {
@override
String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp('^https?://$host/downloads/file/[^/]+');
RegExp standardUrlRegEx =
RegExp('^https?://(www\\.)?$host/downloads/file/[^/]+');
RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase());
if (match == null) {
throw InvalidURLError(name);

View File

@ -10,13 +10,14 @@ class SourceForge extends AppSource {
@override
String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegExB = RegExp('^https?://$host/p/[^/]+');
RegExp standardUrlRegExB = RegExp('^https?://(www\\.)?$host/p/[^/]+');
RegExpMatch? match = standardUrlRegExB.firstMatch(url.toLowerCase());
if (match != null) {
url =
'https://${Uri.parse(url.substring(0, match.end)).host}/projects/${url.substring(Uri.parse(url.substring(0, match.end)).host.length + '/projects/'.length + 1)}';
}
RegExp standardUrlRegExA = RegExp('^https?://$host/projects/[^/]+');
RegExp standardUrlRegExA =
RegExp('^https?://(www\\.)?$host/projects/[^/]+');
match = standardUrlRegExA.firstMatch(url.toLowerCase());
if (match == null) {
throw InvalidURLError(name);

View File

@ -20,7 +20,7 @@ class SourceHut extends AppSource {
@override
String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegEx = RegExp('^https?://$host/[^/]+/[^/]+');
RegExp standardUrlRegEx = RegExp('^https?://(www\\.)?$host/[^/]+/[^/]+');
RegExpMatch? match = standardUrlRegEx.firstMatch(url.toLowerCase());
if (match == null) {
throw InvalidURLError(name);

View File

@ -6,6 +6,8 @@ import 'package:obtainium/providers/source_provider.dart';
class WhatsApp extends AppSource {
WhatsApp() {
host = 'whatsapp.com';
overrideVersionDetectionFormDefault('noVersionDetection',
disableStandard: true, disableRelDate: true);
}
@override

View File

@ -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.15.1';
const String currentVersion = '0.15.3';
const String currentReleaseTag =
'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES
@ -152,7 +152,6 @@ class _ObtainiumState extends State<Obtainium> {
requiresStorageNotLow: false,
requiresDeviceIdle: false,
requiredNetworkType: NetworkType.ANY), (String taskId) async {
// We don't want periodic tasks in the foreground - ignore
await bgUpdateCheck(taskId, null);
BackgroundFetch.finish(taskId);
}, (String taskId) async {

View File

@ -286,10 +286,14 @@ class AddAppPageState extends State<AddAppPage> {
selectedByDefault: true,
onlyOneSelectionAllowed: false,
titlesAreLinks: false,
deselectThese: settingsProvider.searchDeselected,
);
}) ??
[];
if (searchSources.isNotEmpty) {
settingsProvider.searchDeselected = sourceStrings.keys
.where((s) => !searchSources.contains(s))
.toList();
var results = await Future.wait(sourceProvider.sources
.where((e) => searchSources.contains(e.name))
.map((e) async {
@ -306,7 +310,6 @@ class AddAppPageState extends State<AddAppPage> {
}
}));
// .then((results) async {
// Interleave results instead of simple reduce
Map<String, List<String>> res = {};
var si = 0;

View File

@ -604,11 +604,13 @@ class SelectionModal extends StatefulWidget {
this.selectedByDefault = true,
this.onlyOneSelectionAllowed = false,
this.titlesAreLinks = true,
this.title});
this.title,
this.deselectThese = const []});
String? title;
Map<String, List<String>> entries;
bool selectedByDefault;
List<String> deselectThese;
bool onlyOneSelectionAllowed;
bool titlesAreLinks;
@ -622,9 +624,13 @@ class _SelectionModalState extends State<SelectionModal> {
@override
void initState() {
super.initState();
for (var url in widget.entries.entries) {
entrySelections.putIfAbsent(url,
() => widget.selectedByDefault && !widget.onlyOneSelectionAllowed);
for (var entry in widget.entries.entries) {
entrySelections.putIfAbsent(
entry,
() =>
widget.selectedByDefault &&
!widget.onlyOneSelectionAllowed &&
!widget.deselectThese.contains(entry.key));
}
if (widget.selectedByDefault && widget.onlyOneSelectionAllowed) {
selectOnlyOne(widget.entries.entries.first.key);

View File

@ -446,4 +446,13 @@ class SettingsProvider with ChangeNotifier {
prefs?.setBool('parallelDownloads', val);
notifyListeners();
}
List<String> get searchDeselected {
return prefs?.getStringList('searchDeselected') ?? [];
}
set searchDeselected(List<String> list) {
prefs?.setStringList('searchDeselected', list);
notifyListeners();
}
}

View File

@ -160,7 +160,7 @@ appJSONCompatibilityModifiers(Map<String, dynamic> json) {
if ((additionalSettings['intermediateLink']?.length ?? 0) > 0) {
additionalSettings['intermediateLink'] =
additionalSettings['intermediateLink'].where((e) {
return e['intermediateLinkRegex']?.isNotEmpty == true;
return e['customLinkFilterRegex']?.isNotEmpty == true;
}).toList();
}
}

View File

@ -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.15.1+237 # When changing this, update the tag in main() accordingly
version: 0.15.3+239 # When changing this, update the tag in main() accordingly
environment:
sdk: '>=3.0.0 <4.0.0'