mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-07-30 04:20:16 +02:00
Compare commits
49 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
b7c477fd40 | ||
|
045d8cfbe8 | ||
|
ea6e0b37a3 | ||
|
d58eba984e | ||
|
3d46237d17 | ||
|
ed3cff87ca | ||
|
2002581106 | ||
|
e968d50aac | ||
|
1e03194765 | ||
|
10c558faaf | ||
|
dcf6957842 | ||
|
77bebc48bc | ||
|
cad14dd6a4 | ||
|
5d72af5b20 | ||
|
1fcb923469 | ||
|
f89bc41ac1 | ||
|
70988a91fd | ||
|
f3481f94dd | ||
|
204eadd809 | ||
|
69f2ec1777 | ||
|
b98c23e369 | ||
|
64779fb55a | ||
|
845cf0a035 | ||
|
9dba240202 | ||
|
8aa682028f | ||
|
cb80b80efb | ||
|
eb1d997413 | ||
|
986badc653 | ||
|
2432db0b31 | ||
|
5be2c9b51d | ||
|
d801994fed | ||
|
19bb9a0331 | ||
|
b8dc6f9a53 | ||
|
3a7ba00486 | ||
|
86416df7dd | ||
|
704f209e4d | ||
|
e1bed6f0cf | ||
|
61c88596f0 | ||
|
a07c51a04a | ||
|
0e46a83843 | ||
|
1a4b9658c3 | ||
|
9b922abe48 | ||
|
6f0f883d88 | ||
|
aafcc4d96e | ||
|
e019c8027b | ||
|
b6acb43055 | ||
|
d9f6e3328e | ||
|
0e50132e13 | ||
|
c74e8456d2 |
2
.flutter
2
.flutter
Submodule .flutter updated: 80c2e84975...2663184aa7
@@ -26,6 +26,7 @@ Currently supported App sources:
|
||||
- [Aptoide](https://aptoide.com/)
|
||||
- [Uptodown](https://uptodown.com/)
|
||||
- [Huawei AppGallery](https://appgallery.huawei.com/)
|
||||
- [Tencent App Store](https://sj.qq.com/)
|
||||
- Jenkins Jobs
|
||||
- [APKMirror](https://apkmirror.com/) (Track-Only)
|
||||
- Open Source - App-Specific:
|
||||
|
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "Dijeli sa AppVerifier-om, zatim se vratite kada ste spremni.",
|
||||
"wiki": "Pomoć/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Konfiguracije aplikacije obezbeđene pomoću velikog broja ljudi (crowdsourcing) (koristite na svoju odgovornost)",
|
||||
"allowInsecure": "Allow insecure HTTP requests",
|
||||
"removeAppQuestion": {
|
||||
"one": "Želite li ukloniti aplikaciju?",
|
||||
"other": "Želite li ukloniti aplikacije?"
|
||||
|
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "Sdílejte do aplikace AppVerifier a po dokončení se sem vraťte.",
|
||||
"wiki": "Nápověda/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Konfigurace aplikací s využitím crowdsourcingu (použití na vlastní nebezpečí)",
|
||||
"allowInsecure": "Povolení nezabezpečených požadavků HTTP",
|
||||
"removeAppQuestion": {
|
||||
"one": "Odstranit Apku?",
|
||||
"other": "Odstranit Apky?"
|
||||
|
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "Del til AppVerifier, og vend tilbage hertil, når du er klar.",
|
||||
"wiki": "Hjælp/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Crowdsourcede app-konfigurationer (brug på egen risiko)",
|
||||
"allowInsecure": "Tillad usikre HTTP-anmodninger",
|
||||
"removeAppQuestion": {
|
||||
"one": "Fjern app?",
|
||||
"other": "Fjern apps?"
|
||||
|
@@ -250,7 +250,7 @@
|
||||
"enableBackgroundUpdates": "Hintergrundaktualisierungen aktivieren",
|
||||
"backgroundUpdateReqsExplanation": "Die Hintergrundaktualisierung ist möglicherweise nicht für alle Apps möglich.",
|
||||
"backgroundUpdateLimitsExplanation": "Der Erfolg einer Hintergrundinstallation kann nur festgestellt werden, wenn Obtainium geöffnet wird.",
|
||||
"verifyLatestTag": "Überprüfe das „latest“ Tag",
|
||||
"verifyLatestTag": "„Latest“-Tag überprüfen",
|
||||
"intermediateLinkRegex": "Filter für einen „Zwischen“-Link, der zuerst besucht werden soll",
|
||||
"filterByLinkText": "Links durch Linktext filtern",
|
||||
"intermediateLinkNotFound": "„Zwischen“-Link nicht gefunden",
|
||||
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "Geben Sie die Daten an AppVerifier weiter und kehren Sie dann hierher zurück, wenn Sie fertig sind.",
|
||||
"wiki": "Hilfe/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Crowdsourced App-Konfigurationen (Verwendung auf eigene Gefahr)",
|
||||
"allowInsecure": "Unsichere HTTP-Anfragen zulassen",
|
||||
"removeAppQuestion": {
|
||||
"one": "App entfernen?",
|
||||
"other": "Apps entfernen?"
|
||||
|
378
assets/translations/en-EO.json
Normal file
378
assets/translations/en-EO.json
Normal file
@@ -0,0 +1,378 @@
|
||||
{
|
||||
"invalidURLForSource": "Nevalida apo-URL {}",
|
||||
"noReleaseFound": "Ne eblas trovi taŭgan eldonon",
|
||||
"noVersionFound": "Ne eblas determini la eldonversion",
|
||||
"urlMatchesNoSource": "La URL ne konformas al konata fonto",
|
||||
"cantInstallOlderVersion": "Ne eblas instali malnovan version de la Apo",
|
||||
"appIdMismatch": "La identigilo de la elŝutita pakaĵo ne konformas al la identigilo de la ekzistanta apo",
|
||||
"functionNotImplemented": "Tiu klaso ne fasonadas tiun funkcion",
|
||||
"placeholder": "Rezervilo",
|
||||
"someErrors": "Eraroj okazis",
|
||||
"unexpectedError": "Neatendita eraro",
|
||||
"ok": "Okej",
|
||||
"and": "kaj",
|
||||
"githubPATLabel": "Github persona atingoĵetono (pliigas la kvantolimon)",
|
||||
"includePrereleases": "Inkluzivi la pra-eldonojn",
|
||||
"fallbackToOlderReleases": "Reveno al malnovaj versioj",
|
||||
"filterReleaseTitlesByRegEx": "Filtri la eldontitoljn per regula esprimo",
|
||||
"invalidRegEx": "Nevalida regula esprimo",
|
||||
"noDescription": "Neniu priskribo",
|
||||
"cancel": "Nuligi",
|
||||
"continue": "Daŭrigi",
|
||||
"requiredInBrackets": "(Neprigata)",
|
||||
"dropdownNoOptsError": "ERARO: LA MALVOLVANTA LISTO DEVAS HAVI ALMENAŬ UNU OPCION",
|
||||
"colour": "Koloro",
|
||||
"standard": "Norma",
|
||||
"custom": "Agordita",
|
||||
"useMaterialYou": "Uzi Material You",
|
||||
"githubStarredRepos": "Stelaj GitHub-deponejoj",
|
||||
"uname": "Uzantnomo",
|
||||
"wrongArgNum": "Malĝusta nombro da provizitaj argumentoj",
|
||||
"xIsTrackOnly": "{} estas nur sekvitaj",
|
||||
"source": "Fonto",
|
||||
"app": "Apo",
|
||||
"appsFromSourceAreTrackOnly": "Apoj el tiu fonto estas 'Nur sekvitaj'.",
|
||||
"youPickedTrackOnly": "Vi selektis la opcion 'Nur sekvitaj'.",
|
||||
"trackOnlyAppDescription": "La apo estas sekvota por ĝisdatigoj, sed Obtainium ne povos elŝuti aŭ instali ĝin.",
|
||||
"cancelled": "Nuligita",
|
||||
"appAlreadyAdded": "Jam aldonita apo",
|
||||
"alreadyUpToDateQuestion": "Ĉu la apo estas ĝisdata?",
|
||||
"addApp": "Aldoni apon",
|
||||
"appSourceURL": "URL de la apofonto",
|
||||
"error": "Eraro",
|
||||
"add": "Aldoni",
|
||||
"searchSomeSourcesLabel": "Serĉi (nur kelkaj fontoj)",
|
||||
"search": "Serĉi",
|
||||
"additionalOptsFor": "Kromaj opcioj por {}",
|
||||
"supportedSources": "Taskiĝata fontoj",
|
||||
"trackOnlyInBrackets": "(Nur sekvita)",
|
||||
"searchableInBrackets": "(Serĉebla)",
|
||||
"appsString": "Apoj",
|
||||
"noApps": "Neniu apo",
|
||||
"noAppsForFilter": "Neniu apo por filtri",
|
||||
"byX": "Laŭ {}",
|
||||
"percentProgress": "Progreso: {}%",
|
||||
"pleaseWait": "Bonvolu atendi",
|
||||
"updateAvailable": "Havebla ĝisdatigo",
|
||||
"notInstalled": "Neinstalita",
|
||||
"pseudoVersion": "Pseŭdoversio",
|
||||
"selectAll": "Selekti ĉion",
|
||||
"deselectX": "Malselekti {}",
|
||||
"xWillBeRemovedButRemainInstalled": "{} estas farigota de Obtainium sed restos instalata en la disponaĵo.",
|
||||
"removeSelectedAppsQuestion": "Farigi la selektitajn apojn?",
|
||||
"removeSelectedApps": "Farigi la selektitajn apojn",
|
||||
"updateX": "Ĝisdatigi {}",
|
||||
"installX": "Instali {}",
|
||||
"markXTrackOnlyAsUpdated": "Marki {}\n(Nur sekvita)\nkiel ĝisdata",
|
||||
"changeX": "Ŝanĝi {}",
|
||||
"installUpdateApps": "Instali/ĝisdatigi apojn",
|
||||
"installUpdateSelectedApps": "Instali/ĝisdatigi la selektitajn apojn",
|
||||
"markXSelectedAppsAsUpdated": "Marki la {} selektitajn apojn kiel ĝisdataj?",
|
||||
"no": "Ne",
|
||||
"yes": "Jes",
|
||||
"markSelectedAppsUpdated": "Marki la selektitajn apojn kiel ĝisdataj",
|
||||
"pinToTop": "Alpingli supre",
|
||||
"unpinFromTop": "Malalpingli el supro",
|
||||
"resetInstallStatusForSelectedAppsQuestion": "Rekomenci la instaladostaton de la selektitaj apoj?",
|
||||
"installStatusOfXWillBeResetExplanation": "Instaladostato de ĉiuj selektitaj apoj estas rekomencota.\n\nTio povas utili kiam la versio de la montrata application en Obtainium estas malĝusta kaŭze de malsukcesaj ĝidatigoj aŭ aliaj problemoj.",
|
||||
"customLinkMessage": "Tiuj ligiloj funkcias en disponaĵoj kun Obtainium instalita",
|
||||
"shareAppConfigLinks": "Diskonigi la apo-agordojn kiel HTML ligilo",
|
||||
"shareSelectedAppURLs": "Diskonigi la selektitajn apo-URLjn",
|
||||
"resetInstallStatus": "Rekomenci la instaladostaton de la apoj",
|
||||
"more": "Pli",
|
||||
"removeOutdatedFilter": "Forigi la filtron de malmodernaj apoj",
|
||||
"showOutdatedOnly": "Nur montri malmodernajn apojn",
|
||||
"filter": "Filtro",
|
||||
"filterApps": "Filtri la apojn",
|
||||
"appName": "Aponomo",
|
||||
"author": "Aŭtoro",
|
||||
"upToDateApps": "Ĝisdataj apoj",
|
||||
"nonInstalledApps": "Neinstalita apoj",
|
||||
"importExport": "Importi/Eksporti",
|
||||
"settings": "Agordoj",
|
||||
"exportedTo": "Eksportita en {}",
|
||||
"obtainiumExport": "Eksporti Obtainium-n",
|
||||
"invalidInput": "Nevalida enigo",
|
||||
"importedX": "Importita {}",
|
||||
"obtainiumImport": "Importi Obtainium-n",
|
||||
"importFromURLList": "Eksporti el URL-listo",
|
||||
"searchQuery": "Informmendo de serĉo",
|
||||
"appURLList": "Listo de URLj de la apo",
|
||||
"line": "Horizontalo",
|
||||
"searchX": "Serĉi {}",
|
||||
"noResults": "Neniu rezulto",
|
||||
"importX": "Importi {}",
|
||||
"importedAppsIdDisclaimer": "La importitaj apoj povas montriĝi malĝuste kiel \"Neinstalitaj\".\nPor solvi tion, reinstalu ilin per Obtainium.\nTiu ne afekcios la apodatumoj.\n\nAkefcias nur la URL-ajn lak triajn importmetodojn.",
|
||||
"importErrors": "Eraroj de importado",
|
||||
"importedXOfYApps": "{} apoj el {} importitaj.",
|
||||
"followingURLsHadErrors": "La sekvantaj URLj havis erarojn:",
|
||||
"selectURL": "Selekti URLn",
|
||||
"selectURLs": "Selekti URLjn",
|
||||
"pick": "Elekti",
|
||||
"theme": "Temo",
|
||||
"dark": "Malhela",
|
||||
"light": "Hela",
|
||||
"followSystem": "Konformi al sistemo",
|
||||
"followSystemThemeExplanation": "Konformi al sistemtemo nur eblas kun triaj aplikaĵoj.",
|
||||
"useBlackTheme": "Uzi puran nigran temon",
|
||||
"appSortBy": "Klasi apojn laŭ",
|
||||
"authorName": "Aŭtoro/Nomo",
|
||||
"nameAuthor": "Nomo/Aŭtoro",
|
||||
"asAdded": "Aldondato",
|
||||
"appSortOrder": "Ordo de la apoklasifiko",
|
||||
"ascending": "Kreskanta",
|
||||
"descending": "Malkreskanta",
|
||||
"bgUpdateCheckInterval": "Serĉo-intertempo de fonaj ĝisdatigoj",
|
||||
"neverManualOnly": "Neniam - Nur Malaŭtomata",
|
||||
"appearance": "Aspekto",
|
||||
"showWebInAppView": "Montri la fonta retpaĝo en la langeto 'Apoj'",
|
||||
"pinUpdates": "Alpingli ĝisatigojn en la supro de la langeto 'Apoj'",
|
||||
"updates": "Ĝisdatigoj",
|
||||
"sourceSpecific": "Fontspecifa",
|
||||
"appSource": "Apofonto",
|
||||
"noLogs": "Neniu protokolo",
|
||||
"appLogs": "Apoprotokoloj",
|
||||
"close": "Fermi",
|
||||
"share": "Diskonigi",
|
||||
"appNotFound": "Netrovebla apo",
|
||||
"obtainiumExportHyphenatedLowercase": "eksporto-obtainium",
|
||||
"pickAnAPK": "Selektu APKn",
|
||||
"appHasMoreThanOnePackage": "{} havas pli ol unu pakaĵon:",
|
||||
"deviceSupportsXArch": "Via disponaĵo taskiĝas la CPU-arkitekturon {}.",
|
||||
"deviceSupportsFollowingArchs": "Via disponaĵo taskiĝas la sekvantajn CPU-arkitekturojn:",
|
||||
"warning": "Avertu",
|
||||
"sourceIsXButPackageFromYPrompt": "La apofonto estas '{}' sed la pakaĵo de ĝisdatigo devenas de '{}'. Daŭrigi?",
|
||||
"updatesAvailable": "Haveblaj ĝisdatigoj",
|
||||
"updatesAvailableNotifDescription": "Sciigas al la uzanto, ke ĝisdatigoj haveblas por unu aŭ pluraj apoj sekvitaj fare de Obtainium.",
|
||||
"noNewUpdates": "Neniu nova ĝisdatigo.",
|
||||
"xHasAnUpdate": "{} havas ĝisdatigon.",
|
||||
"appsUpdated": "Ĝisdataj apoj",
|
||||
"appsNotUpdated": "Malsukcesis ĝisdatigi aplikaĵojn",
|
||||
"appsUpdatedNotifDescription": "Sciigas al la uzanto, ke ĝisdatigoj de unu aŭ pluraj apoj estas instalitaj fone.",
|
||||
"xWasUpdatedToY": "{} estas ĝidatigita en {}.",
|
||||
"xWasNotUpdatedToY": "Malsukcesas ĝisdatigi de {} en {}.",
|
||||
"errorCheckingUpdates": "Eraro serĉante ĝisdatigojn",
|
||||
"errorCheckingUpdatesNotifDescription": "Sciigas al la uzanto, kiam la serĉo de fonaj ĝisdatigoj malsukcesas.",
|
||||
"appsRemoved": "Forigitaj Apoj",
|
||||
"appsRemovedNotifDescription": "Sciigas al la uzanto, ke unu aŭ pluraj apoj estas forigitaj kaŭze de eraroj dum ilia ŝarĝado.",
|
||||
"xWasRemovedDueToErrorY": "{} estas forigita kaŭze de tiu eraro: {}",
|
||||
"completeAppInstallation": "Kompleta instalado de la apo",
|
||||
"obtainiumMustBeOpenToInstallApps": "Obtainium devas esti malfermita por instali apojn",
|
||||
"completeAppInstallationNotifDescription": "Petas la uzanton reiri en Obtainium por fini la instaladon de apo",
|
||||
"checkingForUpdates": "Serĉante ĝisdatigojn",
|
||||
"checkingForUpdatesNotifDescription": "Dumtempa sciigo kiu aperas dum la serĉo de ĝisdatigoj",
|
||||
"pleaseAllowInstallPerm": "Bonvolu permesi al Obtainium instali apojn",
|
||||
"trackOnly": "Nur sekvita",
|
||||
"errorWithHttpStatusCode": "Eraro {}",
|
||||
"versionCorrectionDisabled": "Versiokorekto malaktivigita (ŝajnas, ke la kromaĵo ne funkcias)",
|
||||
"unknown": "Nekonata",
|
||||
"none": "Nenio",
|
||||
"never": "Neniam",
|
||||
"latestVersionX": "Lasta versio: {}",
|
||||
"installedVersionX": "Instalita versio: {}",
|
||||
"lastUpdateCheckX": "Lasta serĉo de ĝisdatigoj: {}",
|
||||
"remove": "Forigi",
|
||||
"yesMarkUpdated": "Jes, marki kiel ĝisdata",
|
||||
"fdroid": "Oficiala F-Droid",
|
||||
"appIdOrName": "Identigilo aŭ nomo de la apo",
|
||||
"appId": "Identigilo de la apo",
|
||||
"appWithIdOrNameNotFound": "Neniu apo estas trovita kun tiu identigilo aŭ nomo",
|
||||
"reposHaveMultipleApps": "Deponejoj povas enhavi plurajn apojn",
|
||||
"fdroidThirdPartyRepo": "Tria deponejo de F-Droid",
|
||||
"steamMobile": "Telefona Steam",
|
||||
"steamChat": "Steam Babilejo",
|
||||
"install": "Instali",
|
||||
"markInstalled": "Marki kiel instalita",
|
||||
"update": "Ĝisdatigi",
|
||||
"markUpdated": "Marki kiel ĝisdata",
|
||||
"additionalOptions": "Kromaj opcioj",
|
||||
"disableVersionDetection": "Malaktivigi la versiodetekto",
|
||||
"noVersionDetectionExplanation": "Tiu opcio devas esti uzata nur por apoj, kie la versiodetekto ne funkcias ĝuste.",
|
||||
"downloadingX": "Elŝutante {}",
|
||||
"downloadX": "Elŝuti {}",
|
||||
"downloadedX": "Elŝutita {}",
|
||||
"releaseAsset": "Aktiva versio",
|
||||
"downloadNotifDescription": "Sciigas al la uzanto pri la progreso de apo-elŝuton",
|
||||
"noAPKFound": "Neniu trovita APK",
|
||||
"noVersionDetection": "Neniu versiodetekto",
|
||||
"categorize": "Kategorii",
|
||||
"categories": "Kategorioj",
|
||||
"category": "Kategorio",
|
||||
"noCategory": "Neniu kategorio",
|
||||
"noCategories": "Neniuj kategorioj",
|
||||
"deleteCategoriesQuestion": "Forigi la kategoriojn?",
|
||||
"categoryDeleteWarning": "Ĉiuj apoj el forigitaj kategorioj iĝos nekategoriitaj.",
|
||||
"addCategory": "Aldoni kategorion",
|
||||
"label": "Etikedo",
|
||||
"language": "Lingvo",
|
||||
"copiedToClipboard": "Kopiita en la tondujo",
|
||||
"storagePermissionDenied": "Permeso de stoko malkonsentita",
|
||||
"selectedCategorizeWarning": "Tio substituos ĉiujn difinitajn kategoriojn de la selektitaj apoj.",
|
||||
"filterAPKsByRegEx": "Filtri APKj per regula esprimo",
|
||||
"removeFromObtainium": "Forigi el Obtainium",
|
||||
"uninstallFromDevice": "Malinstali el la disponaĵo",
|
||||
"onlyWorksWithNonVersionDetectApps": "Funkcias nur por apoj kun malaktiva versiodetekto.",
|
||||
"releaseDateAsVersion": "Uzi eldondato kiel versioĉeno",
|
||||
"releaseDateAsVersionExplanation": "Tiu opcio devas esti uzata nur por apoj, por kiu la versiodetekto ne funkcias ĝuste, sed eldondato estas havebla.",
|
||||
"changes": "Modifoj",
|
||||
"releaseDate": "Eldondato",
|
||||
"importFromURLsInFile": "Importi el URLj en dosiero (kiel OPML)",
|
||||
"versionDetectionExplanation": "Akordigi la versioĉeno laŭ la versio detektita fare de la operaciumo",
|
||||
"versionDetection": "Versiodetekto",
|
||||
"standardVersionDetection": "Norma versiodetekto",
|
||||
"groupByCategory": "Grupigi per kategorio",
|
||||
"autoApkFilterByArch": "Provi filtri APKj per CPU-arkitekturo se ebla",
|
||||
"overrideSource": "Substitui la fonton",
|
||||
"dontShowAgain": "Ne plu montri",
|
||||
"dontShowTrackOnlyWarnings": "Ne plu montri 'Nur sekvita' avertojn",
|
||||
"dontShowAPKOriginWarnings": "Ne plu montri avertojn pri APK-origino",
|
||||
"moveNonInstalledAppsToBottom": "Movi neinstalatajn apojn al malsupro de la langeto Apoj",
|
||||
"gitlabPATLabel": "GitLab persona atingoĵetono",
|
||||
"about": "Pri",
|
||||
"requiresCredentialsInSettings": "{} bezonas kromajn informojn (en Agordoj)",
|
||||
"checkOnStart": "Serĉi ĝisdatigojn starte",
|
||||
"tryInferAppIdFromCode": "Provi dedukti la identigilon de la apo el la fontkodo",
|
||||
"removeOnExternalUninstall": "Aŭtomate forigi ekstere malinstalitajn apojn",
|
||||
"pickHighestVersionCode": "Aŭtomate selekti la plej ĵusan version el APK-kodo",
|
||||
"checkUpdateOnDetailPage": "Serĉi ĝisdatigojn dum la malfermo de la detala apopaĝo",
|
||||
"disablePageTransitions": "Malaktivigi la animaciojn de paĝotransiro",
|
||||
"reversePageTransitions": "Inversigi la animaciojn de paĝotransiro",
|
||||
"minStarCount": "Minimuma nombro da steloj",
|
||||
"addInfoBelow": "Aldonu ĉi tiu informo ĉi-suba.",
|
||||
"addInfoInSettings": "Aldonu tiu informo en la agordoj.",
|
||||
"githubSourceNote": "La kvantolimo de GitHub povas esti evitata danke al API-ŝlosilo.",
|
||||
"sortByLastLinkSegment": "Klasi laŭ la lasta segmento de la ligilo",
|
||||
"filterReleaseNotesByRegEx": "Filtri versionotojn per regula esprimo",
|
||||
"customLinkFilterRegex": "Filtro de APK-ligilo agordita per regula esprimo (defaŭlte '.apk$')",
|
||||
"appsPossiblyUpdated": "Provitaj apoĝisdatigoj",
|
||||
"appsPossiblyUpdatedNotifDescription": "Sciigas al la uzanto, ke ĝisdatigoj de unu aŭ pluraj apoj eble estas aplikitaj fone",
|
||||
"xWasPossiblyUpdatedToY": "{} povas esti ĝisdata kiel {}.",
|
||||
"enableBackgroundUpdates": "Aktivigi fonajn ĝisdatigojn",
|
||||
"backgroundUpdateReqsExplanation": "Fonaj ĝisdatigoj ne eblas por ĉiuj apoj.",
|
||||
"backgroundUpdateLimitsExplanation": "La sukceso de fona instalado povas esti nur determinata dum la malfermo de Obtainium.",
|
||||
"verifyLatestTag": "Inspekti la etikedon 'latest'",
|
||||
"intermediateLinkRegex": "Filtri por 'pera' vizitota ligilo",
|
||||
"filterByLinkText": "Filtri ligilojn laŭ ligiloteksto",
|
||||
"intermediateLinkNotFound": "Netrovebla pera ligilo",
|
||||
"intermediateLink": "Pera ligilo",
|
||||
"exemptFromBackgroundUpdates": "Escepti el la fonaj ĝisdatigoj (se aktiva)",
|
||||
"bgUpdatesOnWiFiOnly": "Malaktivigi fonajn ĝisdatigojn se sen vifio",
|
||||
"autoSelectHighestVersionCode": "Aŭtomate selekti la plej ĵusan version de la APK-kodo",
|
||||
"versionExtractionRegEx": "Ekstrakti la versioĉenon per regula esprimo",
|
||||
"trimVersionString": "Mallongigi la versioĉenon per regula esprimo",
|
||||
"matchGroupToUseForX": "Konformecogrupo uzota por \"{}\"",
|
||||
"matchGroupToUse": "Grupo de konformeco uzota por la eltiraĵo de la versio per regula esprimo",
|
||||
"highlightTouchTargets": "Emfazi malpi evidentajn klavojn",
|
||||
"pickExportDir": "Selekti la dosierujon de eksporto",
|
||||
"autoExportOnChanges": "Aŭtomate eksporti dum modifoj",
|
||||
"includeSettings": "Inkluzivi la agordojn",
|
||||
"filterVersionsByRegEx": "Filtri versiojn per regula esprimo",
|
||||
"trySelectingSuggestedVersionCode": "Provi selekti la sugestitan version fare de la APK-kodo",
|
||||
"dontSortReleasesList": "Konservi la ordo de la API-versio",
|
||||
"reverseSort": "Inversigi klasifikon",
|
||||
"takeFirstLink": "Uzi la unuan ligilon",
|
||||
"skipSort": "Salti la klasifikon",
|
||||
"debugMenu": "Menu de eraroserĉado",
|
||||
"bgTaskStarted": "Fona tasko startita - inspektu la protokolojn.",
|
||||
"runBgCheckNow": "Ruli la serĉo de fonaj ĝisdatigoj nun",
|
||||
"versionExtractWholePage": "Apliki eltiraĵon de la versioĉeno per regula esprimo al la tuta paĝo",
|
||||
"installing": "Instalante",
|
||||
"skipUpdateNotifications": "Salti la sciigojn de ĝisdatigo",
|
||||
"updatesAvailableNotifChannel": "Haveblaj ĝisdatigoj",
|
||||
"appsUpdatedNotifChannel": "Ĝisdataj aplikaĵoj",
|
||||
"appsPossiblyUpdatedNotifChannel": "Provitaj apoĝisdatigoj",
|
||||
"errorCheckingUpdatesNotifChannel": "Eraro serĉante ĝisdatigojn",
|
||||
"appsRemovedNotifChannel": "Forigitaj aplikaĵoj",
|
||||
"downloadingXNotifChannel": "Elŝutante {}",
|
||||
"completeAppInstallationNotifChannel": "Kompleta apo instalado",
|
||||
"checkingForUpdatesNotifChannel": "Serĉante ĝisdatigojn",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Nur serĉi la ĝisdatigojn de instalitaj kaj 'nur sekvitaj' apoj",
|
||||
"supportFixedAPKURL": "Taskiĝo de la fiksaj APK URLj",
|
||||
"selectX": "Selekti {}",
|
||||
"parallelDownloads": "Permesi dumajn elŝutojn",
|
||||
"useShizuku": "Uzi Shizuku aŭ Sui por instali",
|
||||
"shizukuBinderNotFound": "La servo Shizuku estas netrovebla",
|
||||
"shizukuOld": "Malnova versio de Shizuku (<11) - bonvolu ĝisdatigi ĝin",
|
||||
"shizukuOldAndroidWithADB": "Shizuku funkcias en Android < 8.1 kun ADB - bonvolu ĝisdatigi Android aŭ uzu Sui anstataŭe",
|
||||
"shizukuPretendToBeGooglePlay": "Determini Google Play kiel instalfonto (se Shizuku estas uzata)",
|
||||
"useSystemFont": "Uzi la sistema tiparo",
|
||||
"useVersionCodeAsOSVersion": "Uzi versiokodo de la apo kiel versio detektita fare de la operaciumo",
|
||||
"requestHeader": "Titolo de la informmendo",
|
||||
"useLatestAssetDateAsReleaseDate": "Uzi la lastan publikigitan elementon kiel eldondato",
|
||||
"defaultPseudoVersioningMethod": "Defaŭlta metodo de fikcia versio",
|
||||
"partialAPKHash": "Parta APKa haketo",
|
||||
"APKLinkHash": "Haketo de la APKa ligilo",
|
||||
"directAPKLink": "Rekta APKa ligilo",
|
||||
"pseudoVersionInUse": "Pseŭdoversio estas uzata",
|
||||
"installed": "Instalita",
|
||||
"latest": "Lasta versio",
|
||||
"invertRegEx": "Inversigi la regula esprimo",
|
||||
"note": "Noto",
|
||||
"selfHostedNote": "La malvolvanta listo \"{}\" povas esti uzata por aliri al memgastigataj/agordata instancoj el ajna fonto.",
|
||||
"badDownload": "La APK ne povis esti analizita (neakordigebla aŭ nekompleta elŝuto)",
|
||||
"beforeNewInstallsShareToAppVerifier": "Diskonigi novajn aplikaĵojn kun AppVerifier (se havebla)",
|
||||
"appVerifierInstructionToast": "Diskonigu kun AppVerifier, poste revenu ĉi tie kiam preta.",
|
||||
"wiki": "Helpo/Vikio",
|
||||
"crowdsourcedConfigsLabel": "Komunumaj apo-agordoj (uzu kun singardo)",
|
||||
"allowInsecure": "Allow insecure HTTP requests",
|
||||
"removeAppQuestion": {
|
||||
"one": "Forigi la aplikaĵon?",
|
||||
"other": "Forigi la aplikaĵojn?"
|
||||
},
|
||||
"tooManyRequestsTryAgainInMinutes": {
|
||||
"one": "Tro da informmendoj (limigita kvanto) - reprovu en {} minuto",
|
||||
"other": "Tro da informmendoj (limigita kvanto) - reprovu en {} minutoj"
|
||||
},
|
||||
"bgUpdateGotErrorRetryInMinutes": {
|
||||
"one": "La serĉo de fonaj ĝisdatigoj renkontis al {}, nova programota provo en {} minuto",
|
||||
"other": "La serĉo de fonaj ĝisdatigoj renkontis al {}, nova programota provo en {} minutoj"
|
||||
},
|
||||
"bgCheckFoundUpdatesWillNotifyIfNeeded": {
|
||||
"one": "La serĉo de fonaj ĝisdatigoj trovis {} ĝisdatigon - la uzanto estas sciigota se necesa",
|
||||
"other": "La serĉo de fonaj ĝisdatigoj trovis {} ĝisdatigojn - la uzanto estas sciigota se necesa"
|
||||
},
|
||||
"apps": {
|
||||
"one": "{} Apo",
|
||||
"other": "{} Apoj"
|
||||
},
|
||||
"url": {
|
||||
"one": "{} URL",
|
||||
"other": "{} URLj"
|
||||
},
|
||||
"minute": {
|
||||
"one": "{} Minuto",
|
||||
"other": "{} Minutoj"
|
||||
},
|
||||
"hour": {
|
||||
"one": "{} Horo",
|
||||
"other": "{} Horoj"
|
||||
},
|
||||
"day": {
|
||||
"one": "{} Tago",
|
||||
"other": "{} Tagoj"
|
||||
},
|
||||
"clearedNLogsBeforeXAfterY": {
|
||||
"one": "Purigis {n} protokolon (antaŭe = {before}, malantaŭe = {after})",
|
||||
"other": "Purigis {n} protokolojn (antaŭe = {before}, malantaŭe = {after})"
|
||||
},
|
||||
"xAndNMoreUpdatesAvailable": {
|
||||
"one": "{} kaj 1 alia apo havas ĝisdatigojn.",
|
||||
"other": "{} kaj {} aliaj apoj havas ĝisdatigojn."
|
||||
},
|
||||
"xAndNMoreUpdatesInstalled": {
|
||||
"one": "{} kaj 1 alia apo ĝisdatiĝis.",
|
||||
"other": "{} kaj {} aliaj apoj ĝisdatiĝis."
|
||||
},
|
||||
"xAndNMoreUpdatesFailed": {
|
||||
"one": "Ne eblas ĝisdatigi {} kaj 1 alian apon.",
|
||||
"other": "Ne eblas ĝisdatigi {} et {} aliajn apojn."
|
||||
},
|
||||
"xAndNMoreUpdatesPossiblyInstalled": {
|
||||
"one": "{} kaj 1 alia apo eble ĝisdatiĝis.",
|
||||
"other": "{} kaj {} aliaj apoj eble ĝisdatiĝis."
|
||||
},
|
||||
"apk": {
|
||||
"one": "{} APK",
|
||||
"other": "{} APKj"
|
||||
}
|
||||
}
|
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "Share to AppVerifier, then return here when ready.",
|
||||
"wiki": "Help/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (use at your own risk)",
|
||||
"allowInsecure": "Allow insecure HTTP requests",
|
||||
"removeAppQuestion": {
|
||||
"one": "Remove App?",
|
||||
"other": "Remove Apps?"
|
||||
|
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "Comparta con AppVerifier y vuelva aquí cuando esté listo.",
|
||||
"wiki": "Ayuda/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (uso bajo su propia responsabilidad)",
|
||||
"allowInsecure": "Permitir peticiones HTTP inseguras",
|
||||
"removeAppQuestion": {
|
||||
"one": "¿Eliminar aplicación?",
|
||||
"other": "¿Eliminar aplicaciones?"
|
||||
|
@@ -22,9 +22,9 @@
|
||||
"requiredInBrackets": "(ضروری)",
|
||||
"dropdownNoOptsError": "خطا: کشویی باید حداقل یک گزینه داشته باشد",
|
||||
"colour": "رنگ",
|
||||
"standard": "Standard",
|
||||
"custom": "Custom",
|
||||
"useMaterialYou": "Use Material You",
|
||||
"standard": "استاندارد",
|
||||
"custom": "سفارشی",
|
||||
"useMaterialYou": "از Material You استفاده کنید",
|
||||
"githubStarredRepos": "مخازن ستاره دار گیتهاب",
|
||||
"uname": "نام کاربری",
|
||||
"wrongArgNum": "تعداد آرگومان های ارائه شده اشتباه است",
|
||||
@@ -88,22 +88,22 @@
|
||||
"author": "سازنده",
|
||||
"upToDateApps": "برنامه های به روز",
|
||||
"nonInstalledApps": "برنامه های نصب نشده",
|
||||
"importExport": "درون ریزی/برون ریزی",
|
||||
"importExport": "وارد کردن/صادر کردن",
|
||||
"settings": "تنظیمات",
|
||||
"exportedTo": "برون ریزی به{}",
|
||||
"obtainiumExport": "صادرکردن Obtainium",
|
||||
"exportedTo": "صادر کردن به{}",
|
||||
"obtainiumExport": "صادر کردن Obtainium",
|
||||
"invalidInput": "ورودی نامعتبر",
|
||||
"importedX": "وارد شده {}",
|
||||
"obtainiumImport": "واردکردن Obtainium",
|
||||
"importFromURLList": "درون ریزی از فهرست آدرس اینترنتی",
|
||||
"obtainiumImport": "وارد کردن Obtainium",
|
||||
"importFromURLList": "وارد کردن از فهرست آدرس اینترنتی",
|
||||
"searchQuery": "جستجوی سوال",
|
||||
"appURLList": "فهرست آدرس اینترنتی برنامه",
|
||||
"line": "خط",
|
||||
"searchX": "جستجو {}",
|
||||
"noResults": "نتیجه ای پیدا نشد",
|
||||
"importX": "درون ریزی {}",
|
||||
"importX": " وارد کردن {}",
|
||||
"importedAppsIdDisclaimer": "ممکن است برنامههای وارد شده به اشتباه بهعنوان \"نصب نشده\" نشان داده شوند.\nبرای رفع این مشکل، آنها را دوباره از طریق Obtainium نصب کنید.\nاین نباید روی دادههای برنامه تأثیر بگذارد.\n\nفقط بر روی آدرس اینترنتی و روشهای درون ریزی شخص ثالث تأثیر میگذارد.",
|
||||
"importErrors": "خطاهای درون ریزی",
|
||||
"importErrors": "خطاهای وارد کردن",
|
||||
"importedXOfYApps": "{} از {} برنامه وارد شد.",
|
||||
"followingURLsHadErrors": "آدرس های اینترنتی زیر دارای خطا بودند:",
|
||||
"selectURL": "آدرس اینترنتی انتخاب شده",
|
||||
@@ -135,7 +135,7 @@
|
||||
"close": "بستن",
|
||||
"share": "اشتراک گذاری",
|
||||
"appNotFound": "برنامه پیدا نشد",
|
||||
"obtainiumExportHyphenatedLowercase": "برون ریزی-obtainium",
|
||||
"obtainiumExportHyphenatedLowercase": "صادر کردن-obtainium",
|
||||
"pickAnAPK": "یک APK انتخاب کنید",
|
||||
"appHasMoreThanOnePackage": "{} بیش از یک بسته دارد:",
|
||||
"deviceSupportsXArch": "دستگاه شما از معماری پردازنده {} پشتیبانی میکند",
|
||||
@@ -216,7 +216,7 @@
|
||||
"releaseDateAsVersionExplanation": "این گزینه فقط باید برای برنامه هایی استفاده شود که تشخیص نسخه به درستی کار نمی کند، اما تاریخ انتشار در دسترس است.",
|
||||
"changes": "تغییرات",
|
||||
"releaseDate": "تاریخ انتشار",
|
||||
"importFromURLsInFile": "درون ریزی از آدرس های اینترنتی موجود در فایل (مانند OPML)",
|
||||
"importFromURLsInFile": "وارد کردن از آدرس های اینترنتی موجود در فایل (مانند OPML)",
|
||||
"versionDetectionExplanation": "تطبیق رشته نسخه با نسخه شناسایی شده از سیستم عامل",
|
||||
"versionDetection": "تشخیص نسخه",
|
||||
"standardVersionDetection": "تشخیص نسخه استاندارد",
|
||||
@@ -259,12 +259,12 @@
|
||||
"bgUpdatesOnWiFiOnly": "بهروزرسانیهای پسزمینه را در صورت عدم اتصال به WiFi غیرفعال کنید",
|
||||
"autoSelectHighestVersionCode": "انتخاب خودکار بالاترین نسخه کد APK",
|
||||
"versionExtractionRegEx": "نسخه استخراج RegEx",
|
||||
"trimVersionString": "Trim Version String With RegEx",
|
||||
"matchGroupToUseForX": "Match Group to Use for \"{}\"",
|
||||
"trimVersionString": "برش رشته نسخه با RegEx",
|
||||
"matchGroupToUseForX": "مطابقت دادن گروه برای استفاده برای \"{}\"",
|
||||
"matchGroupToUse": "گروه مورد استفاده را مطابقت دهید",
|
||||
"highlightTouchTargets": "اهداف لمسی کمتر واضح را برجسته کنید",
|
||||
"pickExportDir": "فهرست برون ریزی را انتخاب کنید",
|
||||
"autoExportOnChanges": "برون ریزی خودکار تغییرات",
|
||||
"pickExportDir": "فهرست صادر کردن را انتخاب کنید",
|
||||
"autoExportOnChanges": "صادر کردن خودکار تغییرات",
|
||||
"includeSettings": "شامل تنظیمات",
|
||||
"filterVersionsByRegEx": "فیلتر کردن نسخه ها با RegEx",
|
||||
"trySelectingSuggestedVersionCode": "نسخه پیشنهادی APK نسخه کد را انتخاب کنید",
|
||||
@@ -290,11 +290,11 @@
|
||||
"supportFixedAPKURL": "پشتیبانی از URL های APK ثابت",
|
||||
"selectX": "انتخاب کنید {}",
|
||||
"parallelDownloads": "اجازه دانلود موازی",
|
||||
"useShizuku": "Use Shizuku or Sui to install",
|
||||
"useShizuku": "برای نصب از Shizuku یا Sui استفاده کنید",
|
||||
"shizukuBinderNotFound": "Shizuku در حال اجرا نیست",
|
||||
"shizukuOld": "Old Shizuku version (<11) - update it",
|
||||
"shizukuOldAndroidWithADB": "Shizuku running on Android < 8.1 with ADB - update Android or use Sui instead",
|
||||
"shizukuPretendToBeGooglePlay": "Set Google Play as the installation source (if Shizuku is used)",
|
||||
"shizukuOld": "نسخه قدیمی Shizuku (<11) - آن را به روز کنید",
|
||||
"shizukuOldAndroidWithADB": "Shizuku در Android < 8.1 با ADB اجرا می شود - اندروید را به روز کنید یا به جای آن از Sui استفاده کنید",
|
||||
"shizukuPretendToBeGooglePlay": "Google Play را به عنوان منبع نصب تنظیم کنید (در صورت استفاده از Shizuku)",
|
||||
"useSystemFont": "استفاده از فونت سیستم",
|
||||
"useVersionCodeAsOSVersion": "استفاده کد نسخه برنامه به جای نسخه شناسایی شده توسط سیستم عامل استفاده کنید",
|
||||
"requestHeader": "درخواست سطر بالایی",
|
||||
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "در AppVerifier به اشتراک بگذارید، سپس پس از آماده شدن به اینجا برگردید.",
|
||||
"wiki": "راهنما/ویکی",
|
||||
"crowdsourcedConfigsLabel": "تنظیمات برنامه Crowdsourced (با مسئولیت خود استفاده کنید)",
|
||||
"allowInsecure": "درخواست های HTTP ناامن را مجاز کنید",
|
||||
"removeAppQuestion": {
|
||||
"one": "برنامه حذف شود؟",
|
||||
"other": "برنامه ها حذف شوند؟"
|
||||
|
@@ -88,23 +88,23 @@
|
||||
"author": "Auteur",
|
||||
"upToDateApps": "Applications à jour",
|
||||
"nonInstalledApps": "Applications non installées",
|
||||
"importExport": "Sauvegarder/Restaurer",
|
||||
"importExport": "Importer/Exporter",
|
||||
"settings": "Paramètres",
|
||||
"exportedTo": "Sauvegardé vers {}",
|
||||
"obtainiumExport": "Sauvegarder Obtainium",
|
||||
"exportedTo": "Exporté vers {}",
|
||||
"obtainiumExport": "Exporter Obtainium",
|
||||
"invalidInput": "Entrée invalide",
|
||||
"importedX": "Restauré {}",
|
||||
"obtainiumImport": "Restaurer Obtainium",
|
||||
"importFromURLList": "Restaurer depuis une liste d'URL",
|
||||
"importedX": "Importé {}",
|
||||
"obtainiumImport": "Importer sur Obtainium",
|
||||
"importFromURLList": "Importer depuis une liste d'URL",
|
||||
"searchQuery": "Requête de recherche",
|
||||
"appURLList": "Liste d'URL de l'application",
|
||||
"line": "Ligne",
|
||||
"searchX": "Rechercher {}",
|
||||
"noResults": "Aucun résultat",
|
||||
"importX": "Restauré {}",
|
||||
"importX": "Importation de {}",
|
||||
"importedAppsIdDisclaimer": "Les applications importées peuvent s'afficher de manière incorrecte comme étant \"Non installées\".\nPour résoudre ce problème, réinstallez-les via Obtainium.\nCela n'affectera pas les données des applications.\n\nN'affecte que les méthodes d'importation d'URL et par des tiers.",
|
||||
"importErrors": "Erreurs lors de la restauration",
|
||||
"importedXOfYApps": "{} applications sur {} ont été restaurées.",
|
||||
"importErrors": "Erreurs lors de l'importation",
|
||||
"importedXOfYApps": "{} applications sur {} ont été importés.",
|
||||
"followingURLsHadErrors": "Les URL suivants comportent des erreurs :",
|
||||
"selectURL": "Sélectionner l'URL",
|
||||
"selectURLs": "Sélectionner les URL",
|
||||
@@ -263,8 +263,8 @@
|
||||
"matchGroupToUseForX": "Groupe de correspondance à utiliser pour \"{}\"",
|
||||
"matchGroupToUse": "Groupe de correspondance à utiliser pour l'extraction de la version par Expression régulière",
|
||||
"highlightTouchTargets": "Mettre en évidence les touches moins évidentes",
|
||||
"pickExportDir": "Selectionner le dossier pour l'exportation",
|
||||
"autoExportOnChanges": "Exportation automatique lors de modification",
|
||||
"pickExportDir": "Selectionner le dossier d'exportation",
|
||||
"autoExportOnChanges": "Exporter automatiquement lors de modifications",
|
||||
"includeSettings": "Inclure les paramètres",
|
||||
"filterVersionsByRegEx": "Filtrer les versions par expression régulière",
|
||||
"trySelectingSuggestedVersionCode": "Essayer de sélectionner la version suggérée du code APK",
|
||||
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "Partagez avec AppVerifier, puis revenez ici lorsque tout est prêt.",
|
||||
"wiki": "Aide/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Configurations d'applications par la communauté (à utiliser à vos risques et périls)",
|
||||
"allowInsecure": "Autoriser les requêtes HTTP non sécurisées",
|
||||
"removeAppQuestion": {
|
||||
"one": "Supprimer l'application ?",
|
||||
"other": "Supprimer les applications ?"
|
||||
|
@@ -1,198 +1,198 @@
|
||||
{
|
||||
"invalidURLForSource": "Érvénytelen a(z) {} app URL-je",
|
||||
"invalidURLForSource": "Érvénytelen a(z) {} alkalmazás webcíme",
|
||||
"noReleaseFound": "Nem található megfelelő kiadás",
|
||||
"noVersionFound": "Nem sikerült meghatározni a kiadás verzióját",
|
||||
"urlMatchesNoSource": "Az URL nem egyezik ismert forrással",
|
||||
"cantInstallOlderVersion": "Nem telepíthető egy app régebbi verziója",
|
||||
"appIdMismatch": "A letöltött csomagazonosító nem egyezik a meglévő app azonosítóval",
|
||||
"functionNotImplemented": "Ez az osztály nem valósította meg ezt a függvényt",
|
||||
"placeholder": "Helykitöltő",
|
||||
"urlMatchesNoSource": "A webcím nem egyezik egyetlen ismert forrással sem",
|
||||
"cantInstallOlderVersion": "Nem telepíthető egy alkalmazás régebbi verziója",
|
||||
"appIdMismatch": "A letöltött csomagazonosító nem egyezik a meglévő alkalmazás azonosítójával",
|
||||
"functionNotImplemented": "Ebben az ágban nincs implementálva ez a funkció",
|
||||
"placeholder": "Helyőrző",
|
||||
"someErrors": "Néhány hiba történt",
|
||||
"unexpectedError": "Váratlan hiba",
|
||||
"ok": "Oké",
|
||||
"ok": "Rendben",
|
||||
"and": "és",
|
||||
"githubPATLabel": "GitHub Personal Access Token (megnöveli a díjkorlátot)",
|
||||
"githubPATLabel": "GitHub személyes hozzáférési token (megnöveli a lekérdezés-korlátozást)",
|
||||
"includePrereleases": "Tartalmazza az előzetes kiadásokat",
|
||||
"fallbackToOlderReleases": "Visszatérés a régebbi kiadásokhoz",
|
||||
"filterReleaseTitlesByRegEx": "A kiadás címeinek szűrése reguláris kifejezéssel",
|
||||
"invalidRegEx": "Érvénytelen reguláris kifejezés",
|
||||
"noDescription": "Nincs leírás",
|
||||
"cancel": "Mégse",
|
||||
"continue": "Tovább",
|
||||
"requiredInBrackets": "(Kötelező)",
|
||||
"dropdownNoOptsError": "HIBA: A LEDOBÁST LEGALÁBB EGY OPCIÓHOZ KELL RENDELNI",
|
||||
"continue": "Folytatás",
|
||||
"requiredInBrackets": "(Szükséges)",
|
||||
"dropdownNoOptsError": "HIBA: A LEGÖRDÜLŐ LISTÁNAK LEGALÁBB EGY OPCIÓVAL KELL RENDELKEZNIE",
|
||||
"colour": "Szín",
|
||||
"standard": "Standard",
|
||||
"custom": "Custom",
|
||||
"useMaterialYou": "Használja az Ön által használt anyagot",
|
||||
"githubStarredRepos": "GitHub Csillagos Repo-k",
|
||||
"uname": "Felh.név",
|
||||
"wrongArgNum": "Rossz számú argumentumot adott meg",
|
||||
"standard": "Általános",
|
||||
"custom": "Egyéni",
|
||||
"useMaterialYou": "Material You használata",
|
||||
"githubStarredRepos": "Csillagozott GitHub tárolók",
|
||||
"uname": "Felhasználónév",
|
||||
"wrongArgNum": "A megadott argumentumok száma nem megfelelő",
|
||||
"xIsTrackOnly": "A(z) {} csak nyomonkövethető",
|
||||
"source": "Forrás",
|
||||
"app": "Alkalmazás",
|
||||
"appsFromSourceAreTrackOnly": "Az ebből a forrásból származó alkalmazások 'Csak nyomon követhetőek'.",
|
||||
"youPickedTrackOnly": "A 'Csak követés' opciót választotta.",
|
||||
"appsFromSourceAreTrackOnly": "Az ebből a forrásból származó alkalmazások „csak nyomonkövethetőek”.",
|
||||
"youPickedTrackOnly": "„Csak nyomonkövetés” opciót választotta.",
|
||||
"trackOnlyAppDescription": "Az alkalmazás frissítéseit nyomon követi, de az Obtainium nem tudja letölteni vagy telepíteni.",
|
||||
"cancelled": "Törölve",
|
||||
"appAlreadyAdded": "Az app már hozzáadva",
|
||||
"alreadyUpToDateQuestion": "Az app már naprakész?",
|
||||
"addApp": "App hozzáadás",
|
||||
"appSourceURL": "App forrás URL",
|
||||
"cancelled": "Visszavonva",
|
||||
"appAlreadyAdded": "Az alkalmazás már hozzá van adva",
|
||||
"alreadyUpToDateQuestion": "Az alkalmazás már naprakész?",
|
||||
"addApp": "Hozzáadás",
|
||||
"appSourceURL": "Alkalmazás forrásának webcíme",
|
||||
"error": "Hiba",
|
||||
"add": "Hozzáadás",
|
||||
"searchSomeSourcesLabel": "Keresés (csak egyes források)",
|
||||
"searchSomeSourcesLabel": "Keresés (csak bizonyos források)",
|
||||
"search": "Keresés",
|
||||
"additionalOptsFor": "További lehetőségek a következőhöz: {}",
|
||||
"supportedSources": "Támogatott források",
|
||||
"trackOnlyInBrackets": "(Csak nyomonkövetés)",
|
||||
"searchableInBrackets": "(Kereshető)",
|
||||
"appsString": "Appok",
|
||||
"noApps": "Nincs App",
|
||||
"noAppsForFilter": "Nincsenek appok a szűrőhöz",
|
||||
"appsString": "Alkalmazások",
|
||||
"noApps": "Nincsenek alkalmazások",
|
||||
"noAppsForFilter": "Nincsenek alkalmazások a szűrőhöz",
|
||||
"byX": "Fejlesztő: {}",
|
||||
"percentProgress": "Folyamat: {}%",
|
||||
"pleaseWait": "Kis türelmet",
|
||||
"updateAvailable": "Frissítés érhető el",
|
||||
"notInstalled": "Nem telepített",
|
||||
"pseudoVersion": "ál-verzió",
|
||||
"selectAll": "Mindet kiválaszt",
|
||||
"deselectX": "Törölje {} kijelölését",
|
||||
"pseudoVersion": "pszeudo-verzió",
|
||||
"selectAll": "Összes kiválasztása",
|
||||
"deselectX": "A(z) {} kiválasztásának elvetése",
|
||||
"xWillBeRemovedButRemainInstalled": "A(z) {} el lesz távolítva az Obtainiumból, de továbbra is telepítve marad az eszközön.",
|
||||
"removeSelectedAppsQuestion": "Eltávolítja a kiválasztott appokat?",
|
||||
"removeSelectedApps": "Távolítsa el a kiválasztott appokat",
|
||||
"updateX": "Frissítés: {}",
|
||||
"installX": "Telepítés: {}",
|
||||
"markXTrackOnlyAsUpdated": "Jelölje meg: {}\n(Csak nyomon követhető)\nmint Frissített",
|
||||
"changeX": "Változás {}",
|
||||
"installUpdateApps": "Appok telepítése/frissítése",
|
||||
"installUpdateSelectedApps": "Telepítse/frissítse a kiválasztott appokat",
|
||||
"markXSelectedAppsAsUpdated": "Megjelöl {} kiválasztott alkalmazást frissítettként?",
|
||||
"removeSelectedAppsQuestion": "A kiválasztott alkalmazások eltávolítása?",
|
||||
"removeSelectedApps": "A kiválasztott alkalmazások eltávolítása",
|
||||
"updateX": "A(z) {} frissítése",
|
||||
"installX": "A(z) {} telepítése",
|
||||
"markXTrackOnlyAsUpdated": "Megjelölés: {}\n(Csak nyomon követhető)\nmint Frissített",
|
||||
"changeX": "{} változtatás",
|
||||
"installUpdateApps": "Alkalmazások telepítése/frissítése",
|
||||
"installUpdateSelectedApps": "A kiválasztott alkalmazások telepítése/frissítése",
|
||||
"markXSelectedAppsAsUpdated": "A(z) {} kiválasztott alkalmazás megjelölése frissítettként?",
|
||||
"no": "Nem",
|
||||
"yes": "Igen",
|
||||
"markSelectedAppsUpdated": "Jelölje meg a kiválasztott appokat frissítettként",
|
||||
"pinToTop": "Rögzítés felülre",
|
||||
"unpinFromTop": "Eltávolít felülről",
|
||||
"resetInstallStatusForSelectedAppsQuestion": "Visszaállítja a kiválasztott appok telepítési állapotát?",
|
||||
"installStatusOfXWillBeResetExplanation": "A kiválasztott appok telepítési állapota visszaáll.\n\nEz akkor segíthet, ha az Obtainiumban megjelenített app verzió hibás, frissítések vagy egyéb problémák miatt.",
|
||||
"markSelectedAppsUpdated": "A kiválasztott alkalmazások megjelölése frissítettként",
|
||||
"pinToTop": "Kitűzés felülre",
|
||||
"unpinFromTop": "Kitűzés megszüntetése",
|
||||
"resetInstallStatusForSelectedAppsQuestion": "Visszaállítja a kiválasztott alkalmazások telepítési állapotát?",
|
||||
"installStatusOfXWillBeResetExplanation": "A kiválasztott alkalmazások telepítési állapota visszaáll.\n\nEz akkor segíthet, ha az Obtainiumban megjelenített alkalmazás-verzió hibás, a frissítések vagy egyéb problémák miatt.",
|
||||
"customLinkMessage": "Ezek a hivatkozások a telepített Obtainium-mal rendelkező eszközökön működnek",
|
||||
"shareAppConfigLinks": "App konfiguráció megosztása HTML linkként",
|
||||
"shareSelectedAppURLs": "Ossza meg a kiválasztott app URL címeit",
|
||||
"shareAppConfigLinks": "Alkalmazás-konfiguráció megosztása HTML hivatkozásként",
|
||||
"shareSelectedAppURLs": "A kiválasztott alkalmazás hivatkozásának megosztása",
|
||||
"resetInstallStatus": "Telepítési állapot visszaállítása",
|
||||
"more": "További",
|
||||
"removeOutdatedFilter": "Távolítsa el az elavult app szűrőt",
|
||||
"showOutdatedOnly": "Csak az elavult appok megjelenítése",
|
||||
"removeOutdatedFilter": "Elavult-alkalmazás szűrő eltávolítása",
|
||||
"showOutdatedOnly": "Csak az elavult alkalmazások megjelenítése",
|
||||
"filter": "Szűrő",
|
||||
"filterApps": "Appok szűrése",
|
||||
"appName": "App név",
|
||||
"filterApps": "Alkalmazások szűrése",
|
||||
"appName": "Név",
|
||||
"author": "Szerző",
|
||||
"upToDateApps": "Naprakész appok",
|
||||
"nonInstalledApps": "Nem telepített appok",
|
||||
"importExport": "Import Export",
|
||||
"upToDateApps": "Naprakész alkalmazások",
|
||||
"nonInstalledApps": "Nem telepített alkalmazások",
|
||||
"importExport": "Import/Export",
|
||||
"settings": "Beállítások",
|
||||
"exportedTo": "Exportálva ide {}",
|
||||
"obtainiumExport": "Obtainium Adat Exportálás",
|
||||
"exportedTo": "Exportálva ide: {}",
|
||||
"obtainiumExport": "Obtainium adatainak exportálása",
|
||||
"invalidInput": "Hibás bemenet",
|
||||
"importedX": "Importálva innen {}",
|
||||
"obtainiumImport": "Obtainium Adat Importálás",
|
||||
"importFromURLList": "Importálás URL listából",
|
||||
"importedX": "Importálva innen: {}",
|
||||
"obtainiumImport": "Obtainium adatok importálása",
|
||||
"importFromURLList": "Importálás webcím-listából",
|
||||
"searchQuery": "Keresési lekérdezés",
|
||||
"appURLList": "App URL lista",
|
||||
"appURLList": "Alkalmazás webcím-lista",
|
||||
"line": "Sor",
|
||||
"searchX": "Keresés {}",
|
||||
"searchX": "{} keresése",
|
||||
"noResults": "Nincs találat",
|
||||
"importX": "Importálás: {}",
|
||||
"importedAppsIdDisclaimer": "Előfordulhat, hogy az importált appok helytelenül \"Nincs telepítve\" jelzéssel jelennek meg.\nA probléma megoldásához telepítse újra őket az Obtainiumon keresztül.\nEz nem érinti az alkalmazásadatokat.\n\nCsak az URL-ekre és a harmadik féltől származó importálási módszerekre vonatkozik..",
|
||||
"importX": "{} importálása",
|
||||
"importedAppsIdDisclaimer": "Előfordulhat, hogy az importált alkalmazások helytelenül „Nincs telepítve” jelzéssel jelennek meg.\nA probléma megoldásához telepítse újra őket az Obtainiumon keresztül.\nEz nem érinti az alkalmazásadatokat.\n\nCsak a hivatkozásokra és a harmadik féltől származó importálási módszerekre vonatkozik..",
|
||||
"importErrors": "Importálási hibák",
|
||||
"importedXOfYApps": "{}/{} app importálva.",
|
||||
"followingURLsHadErrors": "A következő URL-ek hibákat tartalmaztak:",
|
||||
"selectURL": "Válassza ki az URL-t",
|
||||
"selectURLs": "Kiválasztott URL-ek",
|
||||
"pick": "Válasszon",
|
||||
"importedXOfYApps": "{}/{} alkalmazás importálva.",
|
||||
"followingURLsHadErrors": "A következő webcímek hibákat tartalmaztak:",
|
||||
"selectURL": "Webcím kiválasztása",
|
||||
"selectURLs": "Webcímek kiválasztása",
|
||||
"pick": "Kiválasztás",
|
||||
"theme": "Téma",
|
||||
"dark": "Sötét",
|
||||
"light": "Világos",
|
||||
"followSystem": "Rendszer szerint",
|
||||
"followSystem": "Rendszerbeállítás használata",
|
||||
"followSystemThemeExplanation": "A következő rendszer téma csak harmadik féltől származó alkalmazások használatával lehetséges",
|
||||
"useBlackTheme": "Használjon teljesen fekete sötét témát",
|
||||
"appSortBy": "App rendezés...",
|
||||
"appSortBy": "Elrendezés",
|
||||
"authorName": "Szerző/Név",
|
||||
"nameAuthor": "Név/Szerző",
|
||||
"asAdded": "Mint Hozzáadott",
|
||||
"appSortOrder": "Appok rendezése",
|
||||
"asAdded": "Mint hozzáadott",
|
||||
"appSortOrder": "Rendezési sorrend",
|
||||
"ascending": "Emelkedő",
|
||||
"descending": "Csökkenő",
|
||||
"bgUpdateCheckInterval": "Háttérfrissítés ellenőrzés időköze",
|
||||
"neverManualOnly": "Soha – csak manuális",
|
||||
"bgUpdateCheckInterval": "Időtartam a frissítések háttér-ellenőrzése között",
|
||||
"neverManualOnly": "Soha – csak kézi",
|
||||
"appearance": "Megjelenés",
|
||||
"showWebInAppView": "Forrás megjelenítése az Appok nézetben",
|
||||
"pinUpdates": "Frissítések kitűzése az App nézet tetejére",
|
||||
"showWebInAppView": "Forrás megjelenítése az alkalmazásnézetben",
|
||||
"pinUpdates": "Frissítések kitűzése az alkalmazásnézet tetejére",
|
||||
"updates": "Frissítések",
|
||||
"sourceSpecific": "Forrás-specifikus",
|
||||
"appSource": "App forrás",
|
||||
"sourceSpecific": "Forrásspecifikus",
|
||||
"appSource": "Alkalmazás forrása",
|
||||
"noLogs": "Nincsenek naplók",
|
||||
"appLogs": "App naplók",
|
||||
"appLogs": "Alkalmazásnaplók",
|
||||
"close": "Bezárás",
|
||||
"share": "Megosztás",
|
||||
"appNotFound": "App nem található",
|
||||
"appNotFound": "Az alkalmazás nem található",
|
||||
"obtainiumExportHyphenatedLowercase": "obtainium-export",
|
||||
"pickAnAPK": "Válasszon egy APK-t",
|
||||
"appHasMoreThanOnePackage": "A(z) {} egynél több csomaggal rendelkezik:",
|
||||
"deviceSupportsXArch": "Eszköze támogatja a {} CPU architektúrát.",
|
||||
"deviceSupportsFollowingArchs": "Az eszköze a következő CPU architektúrákat támogatja:",
|
||||
"deviceSupportsXArch": "Ez az eszköz támogatja a(z) {} CPU architektúrát.",
|
||||
"deviceSupportsFollowingArchs": "Ez az eszköz a következő CPU architektúrákat támogatja:",
|
||||
"warning": "Figyelem",
|
||||
"sourceIsXButPackageFromYPrompt": "Az alkalmazás forrása „{}”, de a kiadási csomag innen származik: „{}”. Folytatja?",
|
||||
"updatesAvailable": "Frissítések érhetők el",
|
||||
"updatesAvailableNotifDescription": "Értesíti a felhasználót, hogy frissítések állnak rendelkezésre egy vagy több, az Obtainium által nyomon követett alkalmazáshoz",
|
||||
"sourceIsXButPackageFromYPrompt": "Az alkalmazás forrása a(z) „{}” tároló, de a kiadási csomag innen származik: „{}”. Folytatja?",
|
||||
"updatesAvailable": "Frissítések érhetőek el",
|
||||
"updatesAvailableNotifDescription": "Értesíti a felhasználót, hogy egy vagy több, az Obtainium által nyomonkövetett alkalmazáshoz frissítések állnak rendelkezésre",
|
||||
"noNewUpdates": "Nincsenek új frissítések.",
|
||||
"xHasAnUpdate": "A(z) {} frissítést kapott.",
|
||||
"appsUpdated": "Alkalmazások frissítve",
|
||||
"appsNotUpdated": "Nem sikerült frissíteni az alkalmazásokat",
|
||||
"appsUpdatedNotifDescription": "Értesíti a felhasználót, hogy egy/több app frissítése megtörtént a háttérben",
|
||||
"xWasUpdatedToY": "{} frissítve a következőre: {}.",
|
||||
"xWasNotUpdatedToY": "A {} frissítése a {}-ra nem sikerült.",
|
||||
"appsUpdatedNotifDescription": "Értesíti a felhasználót, hogy egy vagy több alkalmazás frissítése a háttérben történt.",
|
||||
"xWasUpdatedToY": "A(z) {} frissítve lett a következőre: {}.",
|
||||
"xWasNotUpdatedToY": "Nem sikerült frissíteni a következőt: {}, erre: {}.",
|
||||
"errorCheckingUpdates": "Hiba a frissítések keresésekor",
|
||||
"errorCheckingUpdatesNotifDescription": "Értesítés, amely akkor jelenik meg, ha a háttérbeli frissítések ellenőrzése sikertelen",
|
||||
"errorCheckingUpdatesNotifDescription": "Értesítés, amely akkor jelenik meg, ha a háttérfrissítés ellenőrzése nem sikerül",
|
||||
"appsRemoved": "Alkalmazások eltávolítva",
|
||||
"appsRemovedNotifDescription": "Értesíti a felhasználót egy vagy több alkalmazás eltávolításáról a betöltésük során fellépő hibák miatt",
|
||||
"xWasRemovedDueToErrorY": "A(z) {} a következő hiba miatt lett eltávolítva: {}",
|
||||
"completeAppInstallation": "Teljes app telepítés",
|
||||
"obtainiumMustBeOpenToInstallApps": "Az Obtainiumnak megnyitva kell lennie az alkalmazások telepítéséhez",
|
||||
"appsRemovedNotifDescription": "Értesíti a felhasználót, hogy egy vagy több alkalmazás betöltés közbeni hiba miatt eltávolításra került",
|
||||
"xWasRemovedDueToErrorY": "A(z) {} eltávolításra került a következő hiba miatt: {}",
|
||||
"completeAppInstallation": "Teljes alkalmazástelepítés",
|
||||
"obtainiumMustBeOpenToInstallApps": "Az alkalmazások telepítéséhez az Obtainiumnak megnyitva kell lennie",
|
||||
"completeAppInstallationNotifDescription": "Megkéri a felhasználót, hogy térjen vissza az Obtainiumhoz, hogy befejezze az alkalmazás telepítését",
|
||||
"checkingForUpdates": "Frissítések keresése",
|
||||
"checkingForUpdatesNotifDescription": "Átmeneti értesítés, amely a frissítések keresésekor jelenik meg",
|
||||
"pleaseAllowInstallPerm": "Kérjük, engedélyezze az Obtainiumnak az alkalmazások telepítését",
|
||||
"trackOnly": "Csak követés",
|
||||
"pleaseAllowInstallPerm": "Engedélyezze az Obtainiumnak az alkalmazások telepítését",
|
||||
"trackOnly": "Csak nyomonkövetés",
|
||||
"errorWithHttpStatusCode": "Hiba {}",
|
||||
"versionCorrectionDisabled": "Verzió korrekció letiltva (úgy tűnik, a beépülő modul nem működik)",
|
||||
"versionCorrectionDisabled": "Verziókorrekció letiltva (úgy tűnik, hogy a bővítmény nem működik)",
|
||||
"unknown": "Ismeretlen",
|
||||
"none": "Egyik sem",
|
||||
"none": "Semmi",
|
||||
"never": "Soha",
|
||||
"latestVersionX": "Legújabb verzió: {}",
|
||||
"installedVersionX": "Telepített verzió: {}",
|
||||
"lastUpdateCheckX": "Frissítés ellenőrizve: {}",
|
||||
"lastUpdateCheckX": "Frissítések utoljára ellenőrizve: {}",
|
||||
"remove": "Eltávolítás",
|
||||
"yesMarkUpdated": "Igen, megjelölés frissítettként",
|
||||
"fdroid": "F-Droid hivatalos",
|
||||
"appIdOrName": "App ID vagy név",
|
||||
"appId": "Alkalmazásazonosító",
|
||||
"appWithIdOrNameNotFound": "Nem található app ezzel az azonosítóval vagy névvel",
|
||||
"reposHaveMultipleApps": "A repók több alkalmazást is tartalmazhatnak",
|
||||
"fdroidThirdPartyRepo": "F-Droid Harmadik-fél Repo",
|
||||
"steamMobile": "Steam mobil",
|
||||
"appIdOrName": "Az alkalmazás-azonosító vagy név",
|
||||
"appId": "Alkalmazás-azonosító",
|
||||
"appWithIdOrNameNotFound": "Nem található alkalmazás ezzel az azonosítóval vagy névvel",
|
||||
"reposHaveMultipleApps": "A tárolók több alkalmazást is tartalmazhatnak",
|
||||
"fdroidThirdPartyRepo": "F-Droid harmadik féltől származó tároló",
|
||||
"steamMobile": "Steam Mobil",
|
||||
"steamChat": "Steam Chat",
|
||||
"install": "Telepít",
|
||||
"markInstalled": "Telepítettnek jelöl",
|
||||
"update": "Frissít",
|
||||
"markUpdated": "Frissítettnek jelöl",
|
||||
"additionalOptions": "További lehetőségek",
|
||||
"install": "Telepítés",
|
||||
"markInstalled": "Telepítettnek jelölés",
|
||||
"update": "Frissítés",
|
||||
"markUpdated": "Frissítettnek jelölés",
|
||||
"additionalOptions": "További beállítások",
|
||||
"disableVersionDetection": "Verzió érzékelés letiltása",
|
||||
"noVersionDetectionExplanation": "Ezt a beállítást csak olyan alkalmazásoknál szabad használni, ahol a verzióérzékelés nem működik megfelelően.",
|
||||
"downloadingX": "{} letöltés",
|
||||
"downloadX": "Letöltés {}",
|
||||
"downloadedX": "Letöltés {}",
|
||||
"releaseAsset": "Kiadási tartalom",
|
||||
"downloadNotifDescription": "Értesíti a felhasználót az app letöltésének előrehaladásáról",
|
||||
"downloadingX": "{} letöltése",
|
||||
"downloadX": "{} letöltése",
|
||||
"downloadedX": "{} letöltve",
|
||||
"releaseAsset": "Kiadási csomag",
|
||||
"downloadNotifDescription": "Értesíti a felhasználót az alkalmazás letöltésének előrehaladásáról",
|
||||
"noAPKFound": "Nem található APK",
|
||||
"noVersionDetection": "Nincs verzió érzékelés",
|
||||
"categorize": "Kategorizálás",
|
||||
@@ -201,8 +201,8 @@
|
||||
"noCategory": "Nincs kategória",
|
||||
"noCategories": "Nincsenek kategóriák",
|
||||
"deleteCategoriesQuestion": "Törli a kategóriákat?",
|
||||
"categoryDeleteWarning": "A(z) {} összes app kategorizálatlan állapotba kerül.",
|
||||
"addCategory": "Új kategória",
|
||||
"categoryDeleteWarning": "A törölt kategóriákban lévő összes alkalmazás kategorizálatlanná válik.",
|
||||
"addCategory": "Kategória hozzáadása",
|
||||
"label": "Címke",
|
||||
"language": "Nyelv",
|
||||
"copiedToClipboard": "Másolva a vágólapra",
|
||||
@@ -210,133 +210,134 @@
|
||||
"selectedCategorizeWarning": "Ez felváltja a kiválasztott alkalmazások meglévő kategória-beállításait.",
|
||||
"filterAPKsByRegEx": "Az APK-k szűrése reguláris kifejezéssel",
|
||||
"removeFromObtainium": "Eltávolítás az Obtainiumból",
|
||||
"uninstallFromDevice": "Eltávolítás a készülékről",
|
||||
"uninstallFromDevice": "Eltávolítás az eszközről",
|
||||
"onlyWorksWithNonVersionDetectApps": "Csak azoknál az alkalmazásoknál működik, amelyeknél a verzióérzékelés le van tiltva.",
|
||||
"releaseDateAsVersion": "Használja a Kiadás dátumát, mint verziót",
|
||||
"releaseDateAsVersionExplanation": "Ezt a beállítást csak olyan alkalmazásoknál szabad használni, ahol a verzió érzékelése nem működik megfelelően, de elérhető a kiadás dátuma.",
|
||||
"changes": "Változtatások",
|
||||
"releaseDateAsVersion": "Használja a kiadás dátumát, mint verziót",
|
||||
"releaseDateAsVersionExplanation": "Ezt a beállítást csak olyan alkalmazásoknál szabad használni, ahol a verzióérzékelés nem működik megfelelően, de elérhető a kiadás dátuma.",
|
||||
"changes": "Változások",
|
||||
"releaseDate": "Kiadás dátuma",
|
||||
"importFromURLsInFile": "Importálás fájlban található URL-ből (mint pl. OPML)",
|
||||
"versionDetectionExplanation": "A verzió karakterlánc egyeztetése az OS által észlelt verzióval",
|
||||
"versionDetection": "Verzió érzékelés",
|
||||
"standardVersionDetection": "Alapért. verzió érzékelés",
|
||||
"groupByCategory": "Csoportosítás Kategória alapján",
|
||||
"importFromURLsInFile": "Importálás fájlban található webcímből (pl. OPML)",
|
||||
"versionDetectionExplanation": "A verzió-karakterlánc egyeztetése az OS által észlelt verzióval",
|
||||
"versionDetection": "Verzióérzékelés",
|
||||
"standardVersionDetection": "Alapértelmezett verzióérzékelés",
|
||||
"groupByCategory": "Csoportosítás kategória alapján",
|
||||
"autoApkFilterByArch": "Ha lehetséges, próbálja CPU architektúra szerint szűrni az APK-kat",
|
||||
"overrideSource": "Forrás felülbírálása",
|
||||
"dontShowAgain": "Ne mutassa ezt újra",
|
||||
"dontShowTrackOnlyWarnings": "Ne jelenítsen meg 'Csak nyomon követés' figyelmeztetést",
|
||||
"dontShowAPKOriginWarnings": "Ne jelenítsen meg az APK eredetére vonatkozó figyelmeztetéseket",
|
||||
"moveNonInstalledAppsToBottom": "Helyezze át a nem telepített appokat az App nézet aljára",
|
||||
"overrideSource": "Forrás felülírása",
|
||||
"dontShowAgain": "Ne jelenítse meg ezt többé",
|
||||
"dontShowTrackOnlyWarnings": "Ne jelenítse meg a „Csak nyomonkövetés” figyelmeztetést",
|
||||
"dontShowAPKOriginWarnings": "Ne jelenítse meg az APK eredetére vonatkozó figyelmeztetéseket",
|
||||
"moveNonInstalledAppsToBottom": "Helyezze át a nem telepített alkalmazásokat az alkalmazás-nézet aljára",
|
||||
"gitlabPATLabel": "GitLab személyes hozzáférési token",
|
||||
"about": "Rólunk",
|
||||
"requiresCredentialsInSettings": "{}: Ehhez további hitelesítő adatokra van szükség (a Beállításokban)",
|
||||
"checkOnStart": "Egyszer az alkalmazás indításakor is",
|
||||
"tryInferAppIdFromCode": "Próbálja kikövetkeztetni az app azonosítót a forráskódból",
|
||||
"removeOnExternalUninstall": "A külsőleg eltávolított appok auto. eltávolítása",
|
||||
"pickHighestVersionCode": "A legmagasabb verziószámú APK auto. kiválasztása",
|
||||
"checkUpdateOnDetailPage": "Frissítések keresése az app részleteit tartalmazó oldal megnyitásakor",
|
||||
"about": "Névjegy",
|
||||
"requiresCredentialsInSettings": "A(z) {} alkalmazásnak további hitelesítő adatokra van szüksége (a beállításokban)",
|
||||
"checkOnStart": "Frissítések keresése indításkor",
|
||||
"tryInferAppIdFromCode": "Próbálja meg kikövetkeztetni az alkalmazás azonosítóját a forráskódból",
|
||||
"removeOnExternalUninstall": "A külsőleg eltávolított alkalmazások automatikus eltávolítása",
|
||||
"pickHighestVersionCode": "A legmagasabb verziószámú APK automatikus kiválasztása",
|
||||
"checkUpdateOnDetailPage": "Frissítések keresése az alkalmazás részleteit tartalmazó oldal megnyitásakor",
|
||||
"disablePageTransitions": "Lap áttűnési animációk letiltása",
|
||||
"reversePageTransitions": "Fordított lap áttűnési animációk",
|
||||
"minStarCount": "Minimális csillag szám",
|
||||
"addInfoBelow": "Adja hozzá ezt az infót alább.",
|
||||
"addInfoInSettings": "Adja hozzá ezt az infót a Beállításokban.",
|
||||
"githubSourceNote": "A GitHub sebességkorlátozás elkerülhető API-kulcs használatával.",
|
||||
"sortByLastLinkSegment": "Rendezés csak a link utolsó szegmense szerint",
|
||||
"minStarCount": "Minimális csillagozási szám",
|
||||
"addInfoBelow": "Adja hozzá ezt az információt alább.",
|
||||
"addInfoInSettings": "Adja hozzá ezt az információt a beállításokban.",
|
||||
"githubSourceNote": "A GitHub/GitLab lekérdezés-korlátozás elkerülhető egy API-kulcs használatával.",
|
||||
"sortByLastLinkSegment": "Rendezés csak a hivatkozás utolsó szegmense szerint",
|
||||
"filterReleaseNotesByRegEx": "Kiadási megjegyzések szűrése reguláris kifejezéssel",
|
||||
"customLinkFilterRegex": "Egyéni APK hivatkozásszűrő reguláris kifejezéssel (Alapérték '.apk$')",
|
||||
"appsPossiblyUpdated": "App frissítési kísérlet",
|
||||
"customLinkFilterRegex": "Egyéni APK hivatkozásszűrő reguláris kifejezéssel (Alapértelmezett „.apk$”)",
|
||||
"appsPossiblyUpdated": "Megkísérelt alkalmazás-frissítések",
|
||||
"appsPossiblyUpdatedNotifDescription": "Értesíti a felhasználót, hogy egy vagy több alkalmazás frissítése lehetséges a háttérben",
|
||||
"xWasPossiblyUpdatedToY": "{} frissítve lehet erre {}.",
|
||||
"enableBackgroundUpdates": "Frissítések a háttérben",
|
||||
"backgroundUpdateReqsExplanation": "Előfordulhat, hogy nem minden appnál lehetséges a háttérbeli frissítés.",
|
||||
"xWasPossiblyUpdatedToY": "A(z) {} frissülhetett a következőre: {}.",
|
||||
"enableBackgroundUpdates": "Háttérfrissítések engedélyezése",
|
||||
"backgroundUpdateReqsExplanation": "Előfordulhat, hogy nem minden alkalmazásnál lehetséges a háttérbeli frissítés.",
|
||||
"backgroundUpdateLimitsExplanation": "A háttérben történő telepítés sikeressége csak az Obtainium megnyitásakor állapítható meg.",
|
||||
"verifyLatestTag": "Ellenőrizze a „legújabb” címkét",
|
||||
"intermediateLinkRegex": "Szűrés egy 'köztes' látogatási linkre",
|
||||
"filterByLinkText": "A hivatkozások szűrése linkszöveg alapján",
|
||||
"intermediateLinkNotFound": "Köztes link nem található",
|
||||
"intermediateLink": "Köztes link",
|
||||
"intermediateLinkRegex": "Szűrés egy „köztes” hivatkozás megnyitásához",
|
||||
"filterByLinkText": "Hivatkozások szűrése egy hivatkozásszöveg alapján",
|
||||
"intermediateLinkNotFound": "Köztes hivatkozás nem található",
|
||||
"intermediateLink": "Köztes hivatkozás",
|
||||
"exemptFromBackgroundUpdates": "Mentes a háttérben történő frissítések alól (ha engedélyezett)",
|
||||
"bgUpdatesOnWiFiOnly": "Tiltsa le a háttérben frissítéseket, ha nincs Wi-Fi-n",
|
||||
"autoSelectHighestVersionCode": "A legmagasabb verziószámú APK auto. kiválasztása",
|
||||
"versionExtractionRegEx": "Verzió kibontása reguláris kifejezéssel",
|
||||
"trimVersionString": "Trim Version String RegEx-szel",
|
||||
"matchGroupToUseForX": "A \"{}\" csoporthoz használandó csoport egyeztetése",
|
||||
"matchGroupToUse": "Párosítsa a csoportot a használathoz",
|
||||
"highlightTouchTargets": "Emelje ki a kevésbé nyilvánvaló érintési célokat",
|
||||
"pickExportDir": "Válassza az Exportálási könyvtárat",
|
||||
"autoExportOnChanges": "Auto-exportálás a változások után",
|
||||
"bgUpdatesOnWiFiOnly": "A háttérben futó frissítések letiltása, ha nincs Wi-Fi",
|
||||
"autoSelectHighestVersionCode": "A legmagasabb verziószámú APK automatikus kiválasztása",
|
||||
"versionExtractionRegEx": "Verziókarakterlánc-kivonatolása reguláris kifejezéssel",
|
||||
"trimVersionString": "Verziókarakterlánc levágása reguláris kifejezéssel",
|
||||
"matchGroupToUseForX": "A(z) „{}” esetén használandó csoport egyeztetése",
|
||||
"matchGroupToUse": "Verziókarakterlánc-kivonatoláshoz használandó csoport reguláris kifejezéssel való egyeztetése",
|
||||
"highlightTouchTargets": "A kevésbé nyilvánvaló érintési pontok kiemelése",
|
||||
"pickExportDir": "Válassza ki a könyvtárat, ahová exportálni szeretne",
|
||||
"autoExportOnChanges": "Automatikus exportálás a változások után",
|
||||
"includeSettings": "Tartalmazza a beállításokat",
|
||||
"filterVersionsByRegEx": "Verziók szűrése reguláris kifejezéssel",
|
||||
"trySelectingSuggestedVersionCode": "Próbálja ki a javasolt verziókódú APK-t",
|
||||
"dontSortReleasesList": "Az API-ból származó kiadási sorrend megőrzése",
|
||||
"reverseSort": "Fordított rendezés",
|
||||
"takeFirstLink": "Vegye az első linket",
|
||||
"skipSort": "A válogatás kihagyása",
|
||||
"reverseSort": "Fordított elrendezés",
|
||||
"takeFirstLink": "Vegye az első hivatkozást",
|
||||
"skipSort": "Rendezés kihagyása",
|
||||
"debugMenu": "Hibakereső menü",
|
||||
"bgTaskStarted": "A háttérfeladat elindult – ellenőrizze a naplókat.",
|
||||
"runBgCheckNow": "Futtassa a Háttérben frissítés ellenőrzését most",
|
||||
"versionExtractWholePage": "Alkalmazza a Version Extraction Regex-et az egész oldalra",
|
||||
"runBgCheckNow": "Frissítések keresése a háttérben",
|
||||
"versionExtractWholePage": "„Verziókarakterlánc-kivonatolása reguláris kifejezéssel” alkalmazása az egész oldalra",
|
||||
"installing": "Telepítés",
|
||||
"skipUpdateNotifications": "A frissítési értesítések kihagyása",
|
||||
"updatesAvailableNotifChannel": "Frissítések érhetők el",
|
||||
"updatesAvailableNotifChannel": "Frissítések érhetőek el",
|
||||
"appsUpdatedNotifChannel": "Alkalmazások frissítve",
|
||||
"appsPossiblyUpdatedNotifChannel": "App frissítési kísérlet",
|
||||
"appsPossiblyUpdatedNotifChannel": "Megkísérelt alkalmazás-frissítések",
|
||||
"errorCheckingUpdatesNotifChannel": "Hiba a frissítések keresésekor",
|
||||
"appsRemovedNotifChannel": "Alkalmazások eltávolítva",
|
||||
"downloadingXNotifChannel": "{} letöltés",
|
||||
"completeAppInstallationNotifChannel": "Teljes app telepítés",
|
||||
"appsRemovedNotifChannel": "Eltávolított alkalmazások",
|
||||
"downloadingXNotifChannel": "A(z) {} letöltése",
|
||||
"completeAppInstallationNotifChannel": "Teljes alkalmazás telepítés",
|
||||
"checkingForUpdatesNotifChannel": "Frissítések keresése",
|
||||
"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": "Párhuzamos letöltéseket enged",
|
||||
"useShizuku": "Használja Shizuku vagy Sui telepítéséhez",
|
||||
"shizukuBinderNotFound": "A Shizuku nem fut",
|
||||
"shizukuOld": "Régi Shizuku verzió (<11) - frissítsd!",
|
||||
"shizukuOldAndroidWithADB": "Shizuku fut Android < 8.1 ADB-vel - frissítse az Androidot vagy használja a Sui-t helyette",
|
||||
"shizukuPretendToBeGooglePlay": "Állítsa be a Google Play-t telepítési forrásként (ha Shizuku-t használ)",
|
||||
"useSystemFont": "Használja a rendszer betűtípusát",
|
||||
"useVersionCodeAsOSVersion": "Az app verziókód használata a rendszer által észlelt verzióként",
|
||||
"requestHeader": "Kérelem fejléc",
|
||||
"useLatestAssetDateAsReleaseDate": "Használja a legújabb tartalomfeltöltést megjelenési dátumként",
|
||||
"defaultPseudoVersioningMethod": "Alapértelmezett álverziós módszer",
|
||||
"partialAPKHash": "Részleges APK Hash",
|
||||
"APKLinkHash": "APK Link Hash",
|
||||
"directAPKLink": "Közvetlen APK Link",
|
||||
"pseudoVersionInUse": "Egy álverzió van használatban",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Csak a telepített és a csak nyomonkövethető alkalmazások frissítéseinek ellenőrzése",
|
||||
"supportFixedAPKURL": "Támogatja a rögzített APK webcímeket",
|
||||
"selectX": "{} kiválasztása",
|
||||
"parallelDownloads": "Párhuzamos letöltések engedélyezése",
|
||||
"useShizuku": "Shizuku vagy Sui használata a telepítéshez",
|
||||
"shizukuBinderNotFound": "A Shizuku szolgáltatás nem fut",
|
||||
"shizukuOld": "Régi Shizuku verzió (<11) - frissítse",
|
||||
"shizukuOldAndroidWithADB": "A Shizuku csak Android < 8.1 ADB-vel fut - frissítse az Androidot vagy használja a Sui-t helyette",
|
||||
"shizukuPretendToBeGooglePlay": "Állítsa be a Google Playt telepítési forrásként (ha Shizukut használ)",
|
||||
"useSystemFont": "A rendszer betűtípusának használata",
|
||||
"useVersionCodeAsOSVersion": "Az alkalmazás verziókódjának használata a rendszer által észlelt verzióként",
|
||||
"requestHeader": "Kérelemfejléc",
|
||||
"useLatestAssetDateAsReleaseDate": "A kiadás dátumaként használja a legutóbbi csomagfeltöltést",
|
||||
"defaultPseudoVersioningMethod": "Alapértelmezett pszeudo-verziós módszer",
|
||||
"partialAPKHash": "Részleges APK hasító értéke",
|
||||
"APKLinkHash": "APK hivatkozás hasító értéke",
|
||||
"directAPKLink": "Közvetlen APK hivatkozás",
|
||||
"pseudoVersionInUse": "Egy pszeudo-verzió van használatban",
|
||||
"installed": "Telepített",
|
||||
"latest": "Legújabb",
|
||||
"invertRegEx": "Invertált reguláris kifejezés",
|
||||
"note": "Megjegyzés:",
|
||||
"selfHostedNote": "A \"{}\" legördülő menü használható bármely forrás saját üzemeltetésű/egyéni példányainak eléréséhez.",
|
||||
"invertRegEx": "Reguláris kifejezés invertálása",
|
||||
"note": "Megjegyzés",
|
||||
"selfHostedNote": "A(z) „{}” legördülő menü segítségével elérhetővé válnak a bármilyen más forrásból származó saját üzemeltetésű- vagy egyéni példányok.",
|
||||
"badDownload": "Az APK-t nem lehetett elemezni (inkompatibilis vagy részleges letöltés)",
|
||||
"beforeNewInstallsShareToAppVerifier": "Új alkalmazások megosztása az AppVerifierrel (ha elérhető)",
|
||||
"appVerifierInstructionToast": "Ossza meg az AppVerifierrel, majd térjen vissza ide, ha kész.",
|
||||
"wiki": "Súgó/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (használat saját felelősségre)",
|
||||
"crowdsourcedConfigsLabel": "Crowdsource-ből származó alkalmazások beállítása (saját felelősségére használja)",
|
||||
"allowInsecure": "Bizonytalan HTTP-kérések engedélyezése",
|
||||
"removeAppQuestion": {
|
||||
"one": "Eltávolítja az alkalmazást?",
|
||||
"other": "Eltávolítja az alkalmazásokat?"
|
||||
},
|
||||
"tooManyRequestsTryAgainInMinutes": {
|
||||
"one": "Túl sok kérés (korlátozott arány) – próbálja újra {} perc múlva",
|
||||
"other": "Túl sok kérés (korlátozott arány) – próbálja újra {} perc múlva"
|
||||
"one": "Túl sok kérés (lekérdezés-korlátozás) – próbálja újra {} perc múlva,\nvagy adjon meg egy GitHub/GitLab API-kulcsot",
|
||||
"other": "Túl sok kérés (lekérdezés-korlátozás) – próbálja újra {} perc múlva,\nvagy adjon meg egy GitHub/GitLab API-kulcsot"
|
||||
},
|
||||
"bgUpdateGotErrorRetryInMinutes": {
|
||||
"one": "A háttérfrissítések ellenőrzése {}-t észlelt, {} perc múlva ütemezi az újrapróbálkozást",
|
||||
"other": "A háttérfrissítések ellenőrzése {}-t észlelt, {} perc múlva ütemezi az újrapróbálkozást"
|
||||
"one": "Frissítések ellenőrzése a háttérben a következőt észlelte: {} - Újrapróbálkozás: {} perc múlva",
|
||||
"other": "Frissítések ellenőrzése a háttérben a következőt észlelte: {} - Újrapróbálkozás: {} perc múlva"
|
||||
},
|
||||
"bgCheckFoundUpdatesWillNotifyIfNeeded": {
|
||||
"one": "A háttérfrissítés ellenőrzése {} frissítést talált – szükség esetén értesíti a felhasználót",
|
||||
"other": "A háttérfrissítés ellenőrzése {} frissítést talált – szükség esetén értesíti a felhasználót"
|
||||
"one": "Frissítések ellenőrzése a háttérben {} frissítést talált - szükség esetén értesíti a felhasználót",
|
||||
"other": "Frissítések ellenőrzése a háttérben {} frissítést talált - szükség esetén értesíti a felhasználót"
|
||||
},
|
||||
"apps": {
|
||||
"one": "{} app",
|
||||
"other": "{} app"
|
||||
"one": "{} alkalmazás",
|
||||
"other": "{} alkalmazás"
|
||||
},
|
||||
"url": {
|
||||
"one": "{} URL",
|
||||
"other": "{} URL"
|
||||
"one": "{} webcím",
|
||||
"other": "{} webcím"
|
||||
},
|
||||
"minute": {
|
||||
"one": "{} perc",
|
||||
@@ -351,27 +352,27 @@
|
||||
"other": "{} nap"
|
||||
},
|
||||
"clearedNLogsBeforeXAfterY": {
|
||||
"one": "{n} napló törölve (előtte = {előtte}, utána = {utána})",
|
||||
"other": "{n} napló törölve (előtte = {előtte}, utána = {utána})"
|
||||
"one": "{n} napló törölve lett ({after} után és {before} előtt)",
|
||||
"other": "{n} napló törölve lett ({after} után és {before} előtt)"
|
||||
},
|
||||
"xAndNMoreUpdatesAvailable": {
|
||||
"one": "A(z) {} és 1 további alkalmazás frissítéseket kapott.",
|
||||
"other": "{} és {} további alkalmazás frissítéseket kapott."
|
||||
"one": "A(z) {} és 1 további alkalmazás frissítést kapott.",
|
||||
"other": "A(z) {} és {} további alkalmazás frissítést kapott."
|
||||
},
|
||||
"xAndNMoreUpdatesInstalled": {
|
||||
"one": "A(z) {} és 1 további alkalmazás frissítve.",
|
||||
"other": "{} és {} további alkalmazás frissítve."
|
||||
"other": "A(z) {} és {} további alkalmazás frissítve."
|
||||
},
|
||||
"xAndNMoreUpdatesFailed": {
|
||||
"one": "Nem sikerült frissíteni {} és még 1 alkalmazást.",
|
||||
"other": "Nem sikerült frissíteni {} és {} további alkalmazásokat."
|
||||
"one": "Nem sikerült frissíteni a következőt: {}, valamint 1 további alkalmazást.",
|
||||
"other": "Nem sikerült frissíteni a következőt: {}, valamint {} további alkalmazást."
|
||||
},
|
||||
"xAndNMoreUpdatesPossiblyInstalled": {
|
||||
"one": "{} és 1 további alkalmazás is frissült.",
|
||||
"other": "{} és {} további alkalmazás is frissült."
|
||||
"one": "A(z) {}, valamint 1 további alkalmazás sikeresen frissítve.",
|
||||
"other": "A(z) {}, valamint {} további alkalmazás sikeresen frissítve."
|
||||
},
|
||||
"apk": {
|
||||
"one": "{} APK",
|
||||
"other": "{} APK-k"
|
||||
"other": "{} APK"
|
||||
}
|
||||
}
|
||||
|
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "Condividete con AppVerifier, quindi tornate qui quando siete pronti.",
|
||||
"wiki": "Aiuto/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Configurazioni di app in crowdsourcing (uso a proprio rischio)",
|
||||
"allowInsecure": "Consentire le richieste HTTP non sicure",
|
||||
"removeAppQuestion": {
|
||||
"one": "Rimuovere l'app?",
|
||||
"other": "Rimuovere le app?"
|
||||
|
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "AppVerifierに共有し、準備ができたらここに戻ってください。",
|
||||
"wiki": "ヘルプ/ウィキ",
|
||||
"crowdsourcedConfigsLabel": "クラウドソーシングによるアプリの設定(利用は自己責任で)",
|
||||
"allowInsecure": "安全でないHTTPリクエストを許可する",
|
||||
"removeAppQuestion": {
|
||||
"one": "アプリを削除しますか?",
|
||||
"other": "アプリを削除しますか?"
|
||||
|
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "Deel het met AppVerifier en keer daarna hier terug.",
|
||||
"wiki": "Help/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Crowdsourced App-configuraties (gebruik op eigen risico)",
|
||||
"allowInsecure": "Onveilige HTTP-verzoeken toestaan",
|
||||
"removeAppQuestion": {
|
||||
"one": "App verwijderen?",
|
||||
"other": "Apps verwijderen?"
|
||||
|
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "Udostępnij w AppVerifier, a następnie wróć tutaj, gdy będziesz gotowy.",
|
||||
"wiki": "Pomoc/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Konfiguracje aplikacji pochodzące z crowdsourcingu (korzystanie na własne ryzyko)",
|
||||
"allowInsecure": "Zezwalaj na niezabezpieczone żądania HTTP",
|
||||
"removeAppQuestion": {
|
||||
"one": "Usunąć aplikację?",
|
||||
"few": "Usunąć aplikacje?",
|
||||
|
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "Partilhe com o AppVerifier e, em seguida, regresse aqui quando estiver pronto.",
|
||||
"wiki": "Ajuda/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Configurações de aplicações de crowdsourcing (utilização por sua conta e risco)",
|
||||
"allowInsecure": "Permitir pedidos HTTP inseguros",
|
||||
"removeAppQuestion": {
|
||||
"one": "Remover aplicativo?",
|
||||
"other": "Remover aplicativos?"
|
||||
|
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "Поделитесь с AppVerifier, а затем вернитесь сюда, когда будете готовы.",
|
||||
"wiki": "Помощь/Вики",
|
||||
"crowdsourcedConfigsLabel": "Конфигурации приложений на основе краудсорсинга (используйте на свой страх и риск)",
|
||||
"allowInsecure": "Разрешить небезопасные HTTP-запросы",
|
||||
"removeAppQuestion": {
|
||||
"one": "Удалить приложение?",
|
||||
"other": "Удалить приложения?"
|
||||
|
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "Dela till AppVerifier och återvänd sedan hit när du är klar.",
|
||||
"wiki": "Hjälp/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Crowdsourcade appkonfigurationer (använd på egen risk)",
|
||||
"allowInsecure": "Tillåt osäkra HTTP-förfrågningar",
|
||||
"removeAppQuestion": {
|
||||
"one": "Ta Bort App?",
|
||||
"other": "Ta Bort Appar?"
|
||||
|
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "AppVerifier ile paylaşın, hazır olduğunuzda buraya dönün.",
|
||||
"wiki": "Yardım/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Kitle Kaynaklı Uygulama Yapılandırmaları (riski size ait olmak üzere kullanın)",
|
||||
"allowInsecure": "Güvensiz HTTP isteklerine izin ver",
|
||||
"removeAppQuestion": {
|
||||
"one": "Uygulamayı Kaldır?",
|
||||
"other": "Uygulamaları Kaldır?"
|
||||
|
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "Надішліть на AppVerifier, а потім поверніться сюди, коли будете готові.",
|
||||
"wiki": "Довідка/Вікі",
|
||||
"crowdsourcedConfigsLabel": "Краудсорсингові конфігурації додатків (використовуйте на свій страх і ризик)",
|
||||
"allowInsecure": "Дозволити незахищені HTTP-запити",
|
||||
"removeAppQuestion": {
|
||||
"one": "Видалити застосунок?",
|
||||
"other": "Видалити застосунки?"
|
||||
|
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "Chia sẻ lên AppVerifier, sau đó quay lại đây khi sẵn sàng.",
|
||||
"wiki": "Trợ giúp/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (use at your own risk)",
|
||||
"allowInsecure": "Allow insecure HTTP requests",
|
||||
"removeAppQuestion": {
|
||||
"one": "Gỡ ứng dụng?",
|
||||
"other": "Gỡ ứng dụng?"
|
||||
|
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "分享至 AppVerifier,然後準備好時回到此處。",
|
||||
"wiki": "幫助/維基",
|
||||
"crowdsourcedConfigsLabel": "群眾外包的應用程式設定(使用風險自負)",
|
||||
"allowInsecure": "Allow insecure HTTP requests",
|
||||
"removeAppQuestion": {
|
||||
"one": "移除應用程式?",
|
||||
"other": "移除應用程式?"
|
@@ -314,6 +314,7 @@
|
||||
"appVerifierInstructionToast": "分享至 AppVerifier,完成后返回此处。",
|
||||
"wiki": "帮助/Wiki",
|
||||
"crowdsourcedConfigsLabel": "众包应用程序配置(使用风险自负)",
|
||||
"allowInsecure": "允许不安全的 HTTP 请求",
|
||||
"removeAppQuestion": {
|
||||
"one": "是否删除应用?",
|
||||
"other": "是否删除应用?"
|
||||
|
@@ -10,7 +10,7 @@ class APKCombo extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
RegExp standardUrlRegEx = RegExp(
|
||||
'^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+[^/]+',
|
||||
caseSensitive: false);
|
||||
|
@@ -32,7 +32,7 @@ class APKMirror extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
RegExp standardUrlRegEx = RegExp(
|
||||
'^https?://(www\\.)?${getSourceRegex(hosts)}/apk/[^/]+/[^/]+',
|
||||
caseSensitive: false);
|
||||
|
@@ -29,7 +29,7 @@ class APKPure extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
RegExp standardUrlRegExB = RegExp(
|
||||
'^https?://m.${getSourceRegex(hosts)}(/+[^/]{2})?/+[^/]+/+[^/]+',
|
||||
caseSensitive: false);
|
||||
@@ -109,11 +109,16 @@ class APKPure extends AppSource {
|
||||
'')
|
||||
?.group(0)
|
||||
?.trim();
|
||||
String? type = apkInfo
|
||||
?.querySelector('div.info-top span.tag')
|
||||
?.text
|
||||
.trim() ??
|
||||
'APK';
|
||||
var types = apkInfo
|
||||
?.querySelectorAll('div.info-top span.tag')
|
||||
.map((e) => e.text.trim())
|
||||
.map((t) => t == 'APKs' ? 'APK' : t) ??
|
||||
[];
|
||||
String type = types.isEmpty
|
||||
? 'APK'
|
||||
: types.length == 1
|
||||
? types.first
|
||||
: types.last;
|
||||
String? dateString = apkInfo
|
||||
?.querySelector('div.info-bottom span.time')
|
||||
?.text
|
||||
|
@@ -14,7 +14,7 @@ class Aptoide extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
RegExp standardUrlRegEx = RegExp(
|
||||
'^https?://([^\\.]+\\.){2,}${getSourceRegex(hosts)}',
|
||||
caseSensitive: false);
|
||||
|
@@ -16,7 +16,7 @@ class Codeberg extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
RegExp standardUrlRegEx = RegExp(
|
||||
'^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+',
|
||||
caseSensitive: false);
|
||||
|
@@ -1,12 +1,12 @@
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:obtainium/app_sources/html.dart';
|
||||
import 'package:obtainium/custom_errors.dart';
|
||||
import 'package:obtainium/providers/source_provider.dart';
|
||||
|
||||
class DirectAPKLink extends AppSource {
|
||||
HTML html = HTML();
|
||||
|
||||
DirectAPKLink() {
|
||||
neverAutoSelect = true;
|
||||
name = tr('directAPKLink');
|
||||
additionalSourceAppSpecificSettingFormItems = html
|
||||
.additionalSourceAppSpecificSettingFormItems
|
||||
@@ -24,6 +24,19 @@ class DirectAPKLink extends AppSource {
|
||||
];
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
if (!forSelection) {
|
||||
return url;
|
||||
}
|
||||
RegExp standardUrlRegExA = RegExp('.+\\.apk\$', caseSensitive: false);
|
||||
var match = standardUrlRegExA.firstMatch(url);
|
||||
if (match == null) {
|
||||
throw InvalidURLError(name);
|
||||
}
|
||||
return match.group(0)!;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<Map<String, String>?> getRequestHeaders(
|
||||
Map<String, dynamic> additionalSettings,
|
||||
|
@@ -38,7 +38,7 @@ class FDroid extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
RegExp standardUrlRegExB = RegExp(
|
||||
'^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+packages/+[^/]+',
|
||||
caseSensitive: false);
|
||||
|
@@ -43,7 +43,7 @@ class FDroidRepo extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
var standardUri = Uri.parse(url);
|
||||
var pathSegments = standardUri.pathSegments;
|
||||
if (pathSegments.isNotEmpty && pathSegments.last == 'index.xml') {
|
||||
|
@@ -154,7 +154,7 @@ class GitHub extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
RegExp standardUrlRegEx = RegExp(
|
||||
'^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+',
|
||||
caseSensitive: false);
|
||||
|
@@ -52,7 +52,7 @@ class GitLab extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
RegExp standardUrlRegEx = RegExp(
|
||||
'^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+',
|
||||
caseSensitive: false);
|
||||
|
@@ -288,7 +288,7 @@ class HTML extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
return url;
|
||||
}
|
||||
|
||||
@@ -350,7 +350,8 @@ class HTML extends AppSource {
|
||||
? rel.hashCode.toString()
|
||||
: (await checkPartialDownloadHashDynamic(rel,
|
||||
headers: await getRequestHeaders(additionalSettings,
|
||||
forAPKDownload: true)))
|
||||
forAPKDownload: true),
|
||||
allowInsecure: additionalSettings['allowInsecure'] == true))
|
||||
.toString();
|
||||
return APKDetails(version, [rel].map((e) => MapEntry(e, e)).toList(),
|
||||
AppNames(uri.host, tr('app')));
|
||||
|
@@ -12,7 +12,7 @@ class HuaweiAppGallery extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
RegExp standardUrlRegEx = RegExp(
|
||||
'^https?://(www\\.)?${getSourceRegex(hosts)}(/#)?/(app|appdl)/[^/]+',
|
||||
caseSensitive: false);
|
||||
|
@@ -14,7 +14,7 @@ class IzzyOnDroid extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
RegExp standardUrlRegExA = RegExp(
|
||||
'^https?://android.${getSourceRegex(hosts)}/repo/apk/[^/]+',
|
||||
caseSensitive: false);
|
||||
|
@@ -10,7 +10,7 @@ class Mullvad extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
RegExp standardUrlRegEx = RegExp(
|
||||
'^https?://(www\\.)?${getSourceRegex(hosts)}',
|
||||
caseSensitive: false);
|
||||
|
@@ -10,7 +10,7 @@ class NeutronCode extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
RegExp standardUrlRegEx = RegExp(
|
||||
'^https?://(www\\.)?${getSourceRegex(hosts)}/downloads/file/[^/]+',
|
||||
caseSensitive: false);
|
||||
|
@@ -9,7 +9,7 @@ class Signal extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
return 'https://${hosts[0]}';
|
||||
}
|
||||
|
||||
|
@@ -9,7 +9,7 @@ class SourceForge extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
var sourceRegex = getSourceRegex(hosts);
|
||||
RegExp standardUrlRegExC =
|
||||
RegExp('^https?://(www\\.)?$sourceRegex/p/.+', caseSensitive: false);
|
||||
|
@@ -20,7 +20,7 @@ class SourceHut extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
RegExp standardUrlRegEx = RegExp(
|
||||
'^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+',
|
||||
caseSensitive: false);
|
||||
|
@@ -20,7 +20,7 @@ class SteamMobile extends AppSource {
|
||||
final apks = {'steam': tr('steamMobile'), 'steam-chat-app': tr('steamChat')};
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
return 'https://${hosts[0]}';
|
||||
}
|
||||
|
||||
|
@@ -11,7 +11,7 @@ class TelegramApp extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
return 'https://${hosts[0]}';
|
||||
}
|
||||
|
||||
|
78
lib/app_sources/tencent.dart
Normal file
78
lib/app_sources/tencent.dart
Normal file
@@ -0,0 +1,78 @@
|
||||
import 'dart:convert';
|
||||
|
||||
import 'package:obtainium/custom_errors.dart';
|
||||
import 'package:obtainium/providers/source_provider.dart';
|
||||
|
||||
class Tencent extends AppSource {
|
||||
Tencent() {
|
||||
name = 'Tencent App Store';
|
||||
hosts = ['sj.qq.com'];
|
||||
naiveStandardVersionDetection = true;
|
||||
showReleaseDateAsVersionToggle = true;
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
RegExp standardUrlRegEx = RegExp(
|
||||
'^https?://${getSourceRegex(hosts)}/appdetail/[^/]+',
|
||||
caseSensitive: false);
|
||||
var match = standardUrlRegEx.firstMatch(url);
|
||||
if (match == null) {
|
||||
throw InvalidURLError(name);
|
||||
}
|
||||
return match.group(0)!;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String?> tryInferringAppId(String standardUrl,
|
||||
{Map<String, dynamic> additionalSettings = const {}}) async {
|
||||
return Uri.parse(standardUrl).pathSegments.last;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<APKDetails> getLatestAPKDetails(
|
||||
String standardUrl,
|
||||
Map<String, dynamic> additionalSettings,
|
||||
) async {
|
||||
String appId = (await tryInferringAppId(standardUrl))!;
|
||||
String baseHost = Uri.parse(standardUrl)
|
||||
.host
|
||||
.split('.')
|
||||
.reversed
|
||||
.toList()
|
||||
.sublist(0, 2)
|
||||
.reversed
|
||||
.join('.');
|
||||
|
||||
var res = await sourceRequest(
|
||||
'https://upage.html5.$baseHost/wechat-apkinfo', additionalSettings,
|
||||
followRedirects: false, postBody: {"packagename": appId});
|
||||
|
||||
if (res.statusCode == 200) {
|
||||
var json = jsonDecode(res.body);
|
||||
if (json['app_detail_records'][appId] == null) {
|
||||
throw NoReleasesError();
|
||||
}
|
||||
var version =
|
||||
json['app_detail_records'][appId]['apk_all_data']['version_name'];
|
||||
var apkUrl = json['app_detail_records'][appId]['apk_all_data']['url'];
|
||||
if (apkUrl == null) {
|
||||
throw NoAPKError();
|
||||
}
|
||||
var appName = json['app_detail_records'][appId]['app_info']['name'];
|
||||
var author = json['app_detail_records'][appId]['app_info']['author'];
|
||||
var releaseDate =
|
||||
json['app_detail_records'][appId]['app_info']['update_time'];
|
||||
|
||||
return APKDetails(
|
||||
version,
|
||||
[MapEntry(Uri.parse(apkUrl).queryParameters['fsname']!, apkUrl)],
|
||||
AppNames(author, appName),
|
||||
releaseDate: releaseDate != null
|
||||
? DateTime.fromMillisecondsSinceEpoch(releaseDate * 1000)
|
||||
: null);
|
||||
} else {
|
||||
throw getObtainiumHttpError(res);
|
||||
}
|
||||
}
|
||||
}
|
@@ -14,7 +14,7 @@ class Uptodown extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
RegExp standardUrlRegEx = RegExp(
|
||||
'^https?://([^\\.]+\\.){2,}${getSourceRegex(hosts)}',
|
||||
caseSensitive: false);
|
||||
|
@@ -21,7 +21,7 @@ class VLC extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
return 'https://${hosts[0]}';
|
||||
}
|
||||
|
||||
|
@@ -10,7 +10,7 @@ class WhatsApp extends AppSource {
|
||||
}
|
||||
|
||||
@override
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
return 'https://${hosts[0]}';
|
||||
}
|
||||
|
||||
|
@@ -23,6 +23,7 @@ import 'package:easy_localization/src/localization.dart';
|
||||
List<MapEntry<Locale, String>> supportedLocales = const [
|
||||
MapEntry(Locale('en'), 'English'),
|
||||
MapEntry(Locale('zh'), '简体中文'),
|
||||
MapEntry(Locale('zh_Hant_TW'), '臺灣話'),
|
||||
MapEntry(Locale('it'), 'Italiano'),
|
||||
MapEntry(Locale('ja'), '日本語'),
|
||||
MapEntry(Locale('hu'), 'Magyar'),
|
||||
@@ -41,6 +42,8 @@ List<MapEntry<Locale, String>> supportedLocales = const [
|
||||
MapEntry(Locale('tr'), 'Türkçe'),
|
||||
MapEntry(Locale('uk'), 'Українська'),
|
||||
MapEntry(Locale('da'), 'Dansk'),
|
||||
MapEntry(Locale('en', 'EO'),
|
||||
'Esperanto'), // https://github.com/aissat/easy_localization/issues/220#issuecomment-846035493
|
||||
];
|
||||
const fallbackLocale = Locale('en');
|
||||
const localeDir = 'assets/translations';
|
||||
@@ -245,15 +248,17 @@ class _ObtainiumState extends State<Obtainium> {
|
||||
colorScheme: settingsProvider.theme == ThemeSettings.dark
|
||||
? darkColorScheme
|
||||
: lightColorScheme,
|
||||
fontFamily:
|
||||
settingsProvider.useSystemFont ? 'SystemFont' : 'Wix-Madefor-Display'),
|
||||
fontFamily: settingsProvider.useSystemFont
|
||||
? 'SystemFont'
|
||||
: 'Wix-Madefor-Display'),
|
||||
darkTheme: ThemeData(
|
||||
useMaterial3: true,
|
||||
colorScheme: settingsProvider.theme == ThemeSettings.light
|
||||
? lightColorScheme
|
||||
: darkColorScheme,
|
||||
fontFamily:
|
||||
settingsProvider.useSystemFont ? 'SystemFont' : 'Wix-Madefor-Display'),
|
||||
fontFamily: settingsProvider.useSystemFont
|
||||
? 'SystemFont'
|
||||
: 'Wix-Madefor-Display'),
|
||||
home: Shortcuts(shortcuts: <LogicalKeySet, Intent>{
|
||||
LogicalKeySet(LogicalKeyboardKey.select): const ActivateIntent(),
|
||||
}, child: const HomePage()));
|
||||
|
@@ -248,7 +248,8 @@ class _AppPageState extends State<AppPage> {
|
||||
children: [
|
||||
const SizedBox(height: 20),
|
||||
FutureBuilder(
|
||||
future: appsProvider.updateAppIcon(app?.app.id),
|
||||
future:
|
||||
appsProvider.updateAppIcon(app?.app.id, ignoreCache: true),
|
||||
builder: (ctx, val) {
|
||||
return app?.icon != null
|
||||
? Row(
|
||||
|
@@ -416,6 +416,8 @@ class AppsPageState extends State<AppsPage> {
|
||||
? Image.memory(
|
||||
listedApps[appIndex].icon!,
|
||||
gaplessPlayback: true,
|
||||
opacity: AlwaysStoppedAnimation(
|
||||
listedApps[appIndex].installedInfo == null ? 0.6 : 1),
|
||||
)
|
||||
: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
|
@@ -17,6 +17,7 @@ import 'package:device_info_plus/device_info_plus.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:http/io_client.dart';
|
||||
import 'package:obtainium/components/generated_form.dart';
|
||||
import 'package:obtainium/components/generated_form_modal.dart';
|
||||
import 'package:obtainium/custom_errors.dart';
|
||||
@@ -146,17 +147,23 @@ Future<File> downloadFileWithRetry(String url, String fileName,
|
||||
bool fileNameHasExt, Function? onProgress, String destDir,
|
||||
{bool useExisting = true,
|
||||
Map<String, String>? headers,
|
||||
int retries = 3}) async {
|
||||
int retries = 3,
|
||||
bool allowInsecure = false}) async {
|
||||
try {
|
||||
return await downloadFile(
|
||||
url, fileName, fileNameHasExt, onProgress, destDir,
|
||||
useExisting: useExisting, headers: headers);
|
||||
useExisting: useExisting,
|
||||
headers: headers,
|
||||
allowInsecure: allowInsecure);
|
||||
} catch (e) {
|
||||
if (retries > 0 && e is ClientException) {
|
||||
await Future.delayed(const Duration(seconds: 5));
|
||||
return await downloadFileWithRetry(
|
||||
url, fileName, fileNameHasExt, onProgress, destDir,
|
||||
useExisting: useExisting, headers: headers, retries: (retries - 1));
|
||||
useExisting: useExisting,
|
||||
headers: headers,
|
||||
retries: (retries - 1),
|
||||
allowInsecure: allowInsecure);
|
||||
} else {
|
||||
rethrow;
|
||||
}
|
||||
@@ -173,11 +180,14 @@ String hashListOfLists(List<List<int>> data) {
|
||||
Future<String> checkPartialDownloadHashDynamic(String url,
|
||||
{int startingSize = 1024,
|
||||
int lowerLimit = 128,
|
||||
Map<String, String>? headers}) async {
|
||||
Map<String, String>? headers,
|
||||
bool allowInsecure = false}) async {
|
||||
for (int i = startingSize; i >= lowerLimit; i -= 256) {
|
||||
List<String> ab = await Future.wait([
|
||||
checkPartialDownloadHash(url, i, headers: headers),
|
||||
checkPartialDownloadHash(url, i, headers: headers)
|
||||
checkPartialDownloadHash(url, i,
|
||||
headers: headers, allowInsecure: allowInsecure),
|
||||
checkPartialDownloadHash(url, i,
|
||||
headers: headers, allowInsecure: allowInsecure)
|
||||
]);
|
||||
if (ab[0] == ab[1]) {
|
||||
return ab[0];
|
||||
@@ -187,13 +197,13 @@ Future<String> checkPartialDownloadHashDynamic(String url,
|
||||
}
|
||||
|
||||
Future<String> checkPartialDownloadHash(String url, int bytesToGrab,
|
||||
{Map<String, String>? headers}) async {
|
||||
{Map<String, String>? headers, bool allowInsecure = false}) async {
|
||||
var req = Request('GET', Uri.parse(url));
|
||||
if (headers != null) {
|
||||
req.headers.addAll(headers);
|
||||
}
|
||||
req.headers[HttpHeaders.rangeHeader] = 'bytes=0-$bytesToGrab';
|
||||
var client = http.Client();
|
||||
var client = IOClient(createHttpClient(allowInsecure));
|
||||
var response = await client.send(req);
|
||||
if (response.statusCode < 200 || response.statusCode > 299) {
|
||||
throw ObtainiumError(response.reasonPhrase ?? tr('unexpectedError'));
|
||||
@@ -204,12 +214,14 @@ Future<String> checkPartialDownloadHash(String url, int bytesToGrab,
|
||||
|
||||
Future<File> downloadFile(String url, String fileName, bool fileNameHasExt,
|
||||
Function? onProgress, String destDir,
|
||||
{bool useExisting = true, Map<String, String>? headers}) async {
|
||||
{bool useExisting = true,
|
||||
Map<String, String>? headers,
|
||||
bool allowInsecure = false}) async {
|
||||
// Send the initial request but cancel it as soon as you have the headers
|
||||
var reqHeaders = headers ?? {};
|
||||
var req = Request('GET', Uri.parse(url));
|
||||
req.headers.addAll(reqHeaders);
|
||||
var client = http.Client();
|
||||
var client = IOClient(createHttpClient(allowInsecure));
|
||||
StreamedResponse response = await client.send(req);
|
||||
var resHeaders = response.headers;
|
||||
|
||||
@@ -275,7 +287,7 @@ Future<File> downloadFile(String url, String fileName, bool fileNameHasExt,
|
||||
IOSink? sink;
|
||||
if (rangeFeatureEnabled && fullContentLength != null && rangeStart > 0) {
|
||||
client.close();
|
||||
client = http.Client();
|
||||
client = IOClient(createHttpClient(allowInsecure));
|
||||
req = Request('GET', Uri.parse(url));
|
||||
req.headers.addAll(reqHeaders);
|
||||
req.headers.addAll({'range': 'bytes=$rangeStart-${fullContentLength - 1}'});
|
||||
@@ -318,12 +330,12 @@ Future<File> downloadFile(String url, String fileName, bool fileNameHasExt,
|
||||
}
|
||||
|
||||
Future<Map<String, String>> getHeaders(String url,
|
||||
{Map<String, String>? headers}) async {
|
||||
{Map<String, String>? headers, bool allowInsecure = false}) async {
|
||||
var req = http.Request('GET', Uri.parse(url));
|
||||
if (headers != null) {
|
||||
req.headers.addAll(headers);
|
||||
}
|
||||
var client = http.Client();
|
||||
var client = IOClient(createHttpClient(allowInsecure));
|
||||
var response = await client.send(req);
|
||||
if (response.statusCode < 200 || response.statusCode > 299) {
|
||||
throw ObtainiumError(response.reasonPhrase ?? tr('unexpectedError'));
|
||||
@@ -363,6 +375,7 @@ class AppsProvider with ChangeNotifier {
|
||||
late Stream<FGBGType>? foregroundStream;
|
||||
late StreamSubscription<FGBGType>? foregroundSubscription;
|
||||
late Directory APKDir;
|
||||
late Directory iconsCacheDir;
|
||||
late SettingsProvider settingsProvider = SettingsProvider();
|
||||
|
||||
Iterable<AppInMemory> getAppValues() => apps.values.map((a) => a.deepCopy());
|
||||
@@ -381,12 +394,21 @@ class AppsProvider with ChangeNotifier {
|
||||
var cacheDirs = await getExternalCacheDirectories();
|
||||
if (cacheDirs?.isNotEmpty ?? false) {
|
||||
APKDir = cacheDirs!.first;
|
||||
iconsCacheDir = Directory('${cacheDirs.first.path}/icons');
|
||||
if (!iconsCacheDir.existsSync()) {
|
||||
iconsCacheDir.createSync();
|
||||
}
|
||||
} else {
|
||||
APKDir =
|
||||
Directory('${(await getExternalStorageDirectory())!.path}/apks');
|
||||
if (!APKDir.existsSync()) {
|
||||
APKDir.createSync();
|
||||
}
|
||||
iconsCacheDir =
|
||||
Directory('${(await getExternalStorageDirectory())!.path}/icons');
|
||||
if (!iconsCacheDir.existsSync()) {
|
||||
iconsCacheDir.createSync();
|
||||
}
|
||||
}
|
||||
if (!isBg) {
|
||||
// Load Apps into memory (in background processes, this is done later instead of in the constructor)
|
||||
@@ -468,7 +490,9 @@ class AppsProvider with ChangeNotifier {
|
||||
notificationsProvider?.notify(notif);
|
||||
}
|
||||
prevProg = prog;
|
||||
}, APKDir.path, useExisting: useExisting);
|
||||
}, APKDir.path,
|
||||
useExisting: useExisting,
|
||||
allowInsecure: app.additionalSettings['allowInsecure'] == true);
|
||||
// Set to 90 for remaining steps, will make null in 'finally'
|
||||
if (apps[app.id] != null) {
|
||||
apps[app.id]!.downloadProgress = -1;
|
||||
@@ -967,11 +991,16 @@ class AppsProvider with ChangeNotifier {
|
||||
}
|
||||
for (var res in downloadResults) {
|
||||
if (!errors.appIdNames.containsKey(res['id'])) {
|
||||
await installFn(
|
||||
res['id'] as String,
|
||||
res['willBeSilent'] as bool,
|
||||
res['downloadedFile'] as DownloadedApk?,
|
||||
res['downloadedDir'] as DownloadedXApkDir?);
|
||||
try {
|
||||
await installFn(
|
||||
res['id'] as String,
|
||||
res['willBeSilent'] as bool,
|
||||
res['downloadedFile'] as DownloadedApk?,
|
||||
res['downloadedDir'] as DownloadedXApkDir?);
|
||||
} catch (e) {
|
||||
var id = res['id'] as String;
|
||||
errors.add(id, e, appName: apps[id]?.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1031,7 +1060,8 @@ class AppsProvider with ChangeNotifier {
|
||||
.getRequestHeaders(app.additionalSettings,
|
||||
forAPKDownload:
|
||||
fileUrl.key.endsWith('.apk') ? true : false),
|
||||
useExisting: false);
|
||||
useExisting: false,
|
||||
allowInsecure: app.additionalSettings['allowInsecure'] == true);
|
||||
notificationsProvider
|
||||
.notify(DownloadedNotification(fileUrl.key, fileUrl.value));
|
||||
} catch (e) {
|
||||
@@ -1277,10 +1307,16 @@ class AppsProvider with ChangeNotifier {
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> updateAppIcon(String? appId) async {
|
||||
Future<void> updateAppIcon(String? appId, {bool ignoreCache = false}) async {
|
||||
if (apps[appId]?.icon == null) {
|
||||
var icon =
|
||||
(await apps[appId]?.installedInfo?.applicationInfo?.getAppIcon());
|
||||
var cachedIcon = File('${iconsCacheDir.path}/$appId.png');
|
||||
var alreadyCached = cachedIcon.existsSync() && !ignoreCache;
|
||||
var icon = alreadyCached
|
||||
? (await cachedIcon.readAsBytes())
|
||||
: (await apps[appId]?.installedInfo?.applicationInfo?.getAppIcon());
|
||||
if (icon != null && !alreadyCached) {
|
||||
cachedIcon.writeAsBytes(icon.toList());
|
||||
}
|
||||
if (icon != null) {
|
||||
apps.update(
|
||||
apps[appId]!.app.id,
|
||||
@@ -1578,12 +1614,13 @@ class AppsProvider with ChangeNotifier {
|
||||
}
|
||||
String? returnPath;
|
||||
if (!pickOnly) {
|
||||
var encoder = const JsonEncoder.withIndent(" ");
|
||||
Map<String, dynamic> finalExport = generateExportJSON();
|
||||
var result = await saf.createFile(exportDir,
|
||||
displayName:
|
||||
'${tr('obtainiumExportHyphenatedLowercase')}-${DateTime.now().toIso8601String().replaceAll(':', '-')}${isAuto ? '-auto' : ''}.json',
|
||||
mimeType: 'application/json',
|
||||
bytes: Uint8List.fromList(utf8.encode(jsonEncode(finalExport))));
|
||||
bytes: Uint8List.fromList(utf8.encode(encoder.convert(finalExport))));
|
||||
if (result == null) {
|
||||
throw ObtainiumError(tr('unexpectedError'));
|
||||
}
|
||||
|
@@ -2,11 +2,13 @@
|
||||
// AppSource is an abstract class with a concrete implementation for each source
|
||||
|
||||
import 'dart:convert';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:device_info_plus/device_info_plus.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:html/dom.dart';
|
||||
import 'package:http/http.dart';
|
||||
import 'package:http/io_client.dart';
|
||||
import 'package:obtainium/app_sources/apkmirror.dart';
|
||||
import 'package:obtainium/app_sources/apkpure.dart';
|
||||
import 'package:obtainium/app_sources/aptoide.dart';
|
||||
@@ -26,6 +28,7 @@ import 'package:obtainium/app_sources/sourceforge.dart';
|
||||
import 'package:obtainium/app_sources/sourcehut.dart';
|
||||
import 'package:obtainium/app_sources/steammobile.dart';
|
||||
import 'package:obtainium/app_sources/telegramapp.dart';
|
||||
import 'package:obtainium/app_sources/tencent.dart';
|
||||
import 'package:obtainium/app_sources/uptodown.dart';
|
||||
import 'package:obtainium/app_sources/vlc.dart';
|
||||
import 'package:obtainium/app_sources/whatsapp.dart';
|
||||
@@ -399,6 +402,15 @@ getSourceRegex(List<String> hosts) {
|
||||
return '(${hosts.join('|').replaceAll('.', '\\.')})';
|
||||
}
|
||||
|
||||
HttpClient createHttpClient(bool insecure) {
|
||||
final client = HttpClient();
|
||||
if (insecure) {
|
||||
client.badCertificateCallback =
|
||||
(X509Certificate cert, String host, int port) => true;
|
||||
}
|
||||
return client;
|
||||
}
|
||||
|
||||
abstract class AppSource {
|
||||
List<String> hosts = [];
|
||||
bool hostChanged = false;
|
||||
@@ -454,17 +466,25 @@ abstract class AppSource {
|
||||
|
||||
Future<Response> sourceRequest(
|
||||
String url, Map<String, dynamic> additionalSettings,
|
||||
{bool followRedirects = true}) async {
|
||||
{bool followRedirects = true, Object? postBody}) async {
|
||||
var requestHeaders = await getRequestHeaders(additionalSettings);
|
||||
if (requestHeaders != null || followRedirects == false) {
|
||||
var req = Request('GET', Uri.parse(url));
|
||||
var req = Request(postBody == null ? 'GET' : 'POST', Uri.parse(url));
|
||||
req.followRedirects = followRedirects;
|
||||
if (requestHeaders != null) {
|
||||
req.headers.addAll(requestHeaders);
|
||||
}
|
||||
return Response.fromStream(await Client().send(req));
|
||||
if (postBody != null) {
|
||||
req.headers[HttpHeaders.contentTypeHeader] = 'application/json';
|
||||
req.body = jsonEncode(postBody);
|
||||
}
|
||||
return Response.fromStream(await IOClient(
|
||||
createHttpClient(additionalSettings['allowInsecure'] == true))
|
||||
.send(req));
|
||||
} else {
|
||||
return get(Uri.parse(url));
|
||||
return postBody == null
|
||||
? get(Uri.parse(url))
|
||||
: post(Uri.parse(url), body: jsonEncode(postBody));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -472,7 +492,7 @@ abstract class AppSource {
|
||||
//
|
||||
}
|
||||
|
||||
String sourceSpecificStandardizeURL(String url) {
|
||||
String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
|
||||
throw NotImplementedError();
|
||||
}
|
||||
|
||||
@@ -538,6 +558,10 @@ abstract class AppSource {
|
||||
GeneratedFormSwitch('shizukuPretendToBeGooglePlay',
|
||||
label: tr('shizukuPretendToBeGooglePlay'), defaultValue: false)
|
||||
],
|
||||
[
|
||||
GeneratedFormSwitch('allowInsecure',
|
||||
label: tr('allowInsecure'), defaultValue: false)
|
||||
],
|
||||
[
|
||||
GeneratedFormSwitch('exemptFromBackgroundUpdates',
|
||||
label: tr('exemptFromBackgroundUpdates'))
|
||||
@@ -765,6 +789,7 @@ class SourceProvider {
|
||||
Aptoide(),
|
||||
Uptodown(),
|
||||
HuaweiAppGallery(),
|
||||
Tencent(),
|
||||
Jenkins(),
|
||||
APKMirror(),
|
||||
Signal(),
|
||||
@@ -809,7 +834,7 @@ class SourceProvider {
|
||||
for (var s in sources.where(
|
||||
(element) => element.hosts.isEmpty && !element.neverAutoSelect)) {
|
||||
try {
|
||||
s.sourceSpecificStandardizeURL(url);
|
||||
s.sourceSpecificStandardizeURL(url, forSelection: true);
|
||||
source = s;
|
||||
break;
|
||||
} catch (e) {
|
||||
|
100
pubspec.lock
100
pubspec.lock
@@ -47,10 +47,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: app_links
|
||||
sha256: "4acba851087b25136e8f6e32a53bd4536eb3bec69947ddb66e7b9a5792ceb0c7"
|
||||
sha256: ad1a6d598e7e39b46a34f746f9a8b011ee147e4c275d407fa457e7a62f84dd99
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.2.0"
|
||||
version: "6.3.2"
|
||||
app_links_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -103,10 +103,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: background_fetch
|
||||
sha256: b5c298c911bc2ce41152668bc72eb0488f0665d75bc6d1e69e7d8367763eddcd
|
||||
sha256: e9f26ae54d88310b7ac2a68f2f9fcee0081a4d5f11100f233a70702021e7ac4f
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.5"
|
||||
version: "1.3.7"
|
||||
boolean_selector:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -303,18 +303,18 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flex_color_picker
|
||||
sha256: "809af4ec82ede3b140ed0219b97d548de99e47aa4b99b14a10f705a2dbbcba5e"
|
||||
sha256: "12dc855ae8ef5491f529b1fc52c655f06dcdf4114f1f7fdecafa41eec2ec8d79"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.5.1"
|
||||
version: "3.6.0"
|
||||
flex_seed_scheme:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flex_seed_scheme
|
||||
sha256: cc08c81879ecfd2ab840664ce4770980da0b8a319e35f51bcf763849b7f7596b
|
||||
sha256: "7639d2c86268eff84a909026eb169f008064af0fb3696a651b24b0fa24a40334"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.2"
|
||||
version: "3.4.1"
|
||||
flutter:
|
||||
dependency: "direct main"
|
||||
description: flutter
|
||||
@@ -388,26 +388,26 @@ packages:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: flutter_launcher_icons
|
||||
sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea"
|
||||
sha256: "619817c4b65b322b5104b6bb6dfe6cda62d9729bd7ad4303ecc8b4e690a67a77"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.13.1"
|
||||
version: "0.14.1"
|
||||
flutter_lints:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: flutter_lints
|
||||
sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c"
|
||||
sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.0"
|
||||
version: "5.0.0"
|
||||
flutter_local_notifications:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_local_notifications
|
||||
sha256: c500d5d9e7e553f06b61877ca6b9c8b92c570a4c8db371038702e8ce57f8a50f
|
||||
sha256: "49eeef364fddb71515bc78d5a8c51435a68bccd6e4d68e25a942c5e47761ae71"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "17.2.2"
|
||||
version: "17.2.3"
|
||||
flutter_local_notifications_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -433,18 +433,18 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_markdown
|
||||
sha256: a23c41ee57573e62fc2190a1f36a0480c4d90bde3a8a8d7126e5d5992fb53fb7
|
||||
sha256: e17575ca576a34b46c58c91f9948891117a1bd97815d2e661813c7f90c647a78
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.3+1"
|
||||
version: "0.7.3+2"
|
||||
flutter_plugin_android_lifecycle:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_plugin_android_lifecycle
|
||||
sha256: "9d98bd47ef9d34e803d438f17fd32b116d31009f534a6fa5ce3a1167f189a6de"
|
||||
sha256: "9ee02950848f61c4129af3d6ec84a1cfc0e47931abc746b03e7a3bc3e8ff6eda"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.21"
|
||||
version: "2.0.22"
|
||||
flutter_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
@@ -571,10 +571,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: lints
|
||||
sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235"
|
||||
sha256: "3315600f3fb3b135be672bf4a178c55f274bebe368325ae18462c89ac1e3b413"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.0"
|
||||
version: "5.0.0"
|
||||
markdown:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -611,10 +611,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: mime
|
||||
sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2"
|
||||
sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.5"
|
||||
version: "1.0.6"
|
||||
nested:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -715,18 +715,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: permission_handler_html
|
||||
sha256: d220eb8476b466d58b161e10b3001d93999010a26228a3fb89c4280db1249546
|
||||
sha256: af26edbbb1f2674af65a8f4b56e1a6f526156bc273d0e65dd8075fab51c78851
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.1.3+1"
|
||||
version: "0.1.3+2"
|
||||
permission_handler_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: permission_handler_platform_interface
|
||||
sha256: fe0ffe274d665be8e34f9c59705441a7d248edebbe5d9e3ec2665f88b79358ea
|
||||
sha256: e9c8eadee926c4532d0305dff94b85bf961f16759c3af791486613152af4b4f9
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.2.2"
|
||||
version: "4.2.3"
|
||||
permission_handler_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -827,10 +827,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_android
|
||||
sha256: a7e8467e9181cef109f601e3f65765685786c1a738a83d7fbbde377589c0d974
|
||||
sha256: "480ba4345773f56acda9abf5f50bd966f581dac5d514e5fc4a18c62976bbba7e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.1"
|
||||
version: "2.3.2"
|
||||
shared_preferences_foundation:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -913,18 +913,18 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: sqflite
|
||||
sha256: a43e5a27235518c03ca238e7b4732cf35eabe863a369ceba6cbefa537a66f16d
|
||||
sha256: ff5a2436ef8ebdfda748fbfe957f9981524cb5ff11e7bafa8c42771840e8a788
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.3+1"
|
||||
version: "2.3.3+2"
|
||||
sqflite_common:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: sqflite_common
|
||||
sha256: "7b41b6c3507854a159e24ae90a8e3e9cc01eb26a477c118d6dca065b5f55453e"
|
||||
sha256: "2d8e607db72e9cb7748c9c6e739e2c9618320a5517de693d5a24609c4671b1a4"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.5.4+2"
|
||||
version: "2.5.4+4"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -953,10 +953,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: synchronized
|
||||
sha256: a824e842b8a054f91a728b783c177c1e4731f6b124f9192468457a8913371255
|
||||
sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.2.0"
|
||||
version: "3.3.0+3"
|
||||
term_glyph:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1001,10 +1001,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_android
|
||||
sha256: f0c73347dfcfa5b3db8bc06e1502668265d39c08f310c29bff4e28eea9699f79
|
||||
sha256: e35a698ac302dd68e41f73250bd9517fe3ab5fa4f18fe4647a0872db61bacbab
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.3.9"
|
||||
version: "6.3.10"
|
||||
url_launcher_ios:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1025,10 +1025,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_macos
|
||||
sha256: "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de"
|
||||
sha256: "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.2.0"
|
||||
version: "3.2.1"
|
||||
url_launcher_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1057,10 +1057,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: uuid
|
||||
sha256: "83d37c7ad7aaf9aa8e275490669535c8080377cfa7a7004c24dfac53afffaa90"
|
||||
sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.4.2"
|
||||
version: "4.5.1"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1073,34 +1073,34 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc
|
||||
sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "14.2.4"
|
||||
version: "14.2.5"
|
||||
web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web
|
||||
sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062
|
||||
sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.0"
|
||||
version: "1.1.0"
|
||||
webview_flutter:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: webview_flutter
|
||||
sha256: "6869c8786d179f929144b4a1f86e09ac0eddfe475984951ea6c634774c16b522"
|
||||
sha256: ec81f57aa1611f8ebecf1d2259da4ef052281cb5ad624131c93546c79ccc7736
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.8.0"
|
||||
version: "4.9.0"
|
||||
webview_flutter_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: webview_flutter_android
|
||||
sha256: c66651fba15f9d7ddd31daec42da8d6bce46c85610a7127e3ebcb39a4395c3c9
|
||||
sha256: "6e64fcb1c19d92024da8f33503aaeeda35825d77142c01d0ea2aa32edc79fdc8"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.16.6"
|
||||
version: "3.16.7"
|
||||
webview_flutter_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1129,10 +1129,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: win32_registry
|
||||
sha256: "723b7f851e5724c55409bb3d5a32b203b3afe8587eaf5dafb93a5fed8ecda0d6"
|
||||
sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.4"
|
||||
version: "1.1.5"
|
||||
xdg_directories:
|
||||
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: 1.1.20+2277
|
||||
version: 1.1.23+2280
|
||||
|
||||
environment:
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
@@ -84,14 +84,14 @@ dependencies:
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
sdk: flutter
|
||||
flutter_launcher_icons: ^0.13.1
|
||||
flutter_launcher_icons: ^0.14.1
|
||||
|
||||
# The "flutter_lints" package below contains a set of recommended lints to
|
||||
# encourage good coding practices. The lint set provided by the package is
|
||||
# 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: ^4.0.0
|
||||
flutter_lints: ^5.0.0
|
||||
|
||||
flutter_launcher_icons:
|
||||
android: "ic_launcher"
|
||||
|
Reference in New Issue
Block a user