Compare commits

..

85 Commits

Author SHA1 Message Date
Imran
7507e7bf5c Merge pull request #1867 from ImranR98/dev
Fix broken SourceHut source (#1864)
2024-09-30 15:48:45 -05:00
Imran Remtulla
783e8029b6 Increment version 2024-09-30 16:47:58 -04:00
Imran Remtulla
3554257918 Fix broken SourceHut source (#1864) 2024-09-30 16:43:19 -04:00
Imran
ef98ceaaa2 Merge pull request #1863 from ImranR98/dev
Add Indonesian to language menu
2024-09-29 12:38:09 -05:00
Imran Remtulla
86540e703d Increment version 2024-09-29 13:36:20 -04:00
Imran Remtulla
1b7c340e2c Add Indonesian to language menu 2024-09-29 13:35:40 -04:00
Imran
ba6148dfef Merge pull request #1862 from summoner001/main
Update hu.json
2024-09-29 12:29:53 -05:00
Imran
6b47048e43 Merge pull request #1861 from robifr/translation
Add id.json file to support Indonesian language
2024-09-29 12:29:38 -05:00
Imran
b698947ecf Update en.json 2024-09-29 13:29:25 -04:00
Imran
e677d3179c Revert changes to en.json 2024-09-29 13:28:56 -04:00
summoner001
25ef35c13c Update hu.json
Minor fix
2024-09-29 16:30:13 +02:00
summoner001
ba167fed33 Update hu.json
Minor fix
2024-09-29 16:28:37 +02:00
summoner001
d03c4dec4e Update hu.json
Minor fix
2024-09-29 16:19:04 +02:00
summoner001
e2525eef74 Update hu.json
Fix the coherence of the translation after viewing the text in the app.
2024-09-29 16:09:48 +02:00
robi
35caec61c5 Add id.json file to support Indonesian language 2024-09-29 15:00:34 +07:00
robi
33a7af216c Corrected versionCode string to version code 2024-09-29 13:44:52 +07:00
Imran
b7c477fd40 Merge pull request #1857 from ImranR98/dev
Increment version for bugfix release
2024-09-28 12:43:58 -05:00
Imran
045d8cfbe8 Merge pull request #1855 from summoner001/main
Update hu.json
2024-09-28 12:43:36 -05:00
Imran Remtulla
ea6e0b37a3 Increment version for bugfix release 2024-09-28 13:43:11 -04:00
Imran
d58eba984e Merge pull request #1854 from mxhdee/main
Update Farsi (Persian)
2024-09-28 12:37:54 -05:00
summoner001
3d46237d17 Update hu.json
Use „” commas without \ backslash in hungarian translation.
2024-09-28 09:56:13 +02:00
summoner001
ed3cff87ca Update hu.json
Fix unrecognized string escape in line 311
2024-09-28 08:09:37 +02:00
Mxhdee
2002581106 Update fa.json (Persian) 2024-09-28 07:26:47 +02:00
Mxhdee
e968d50aac Update fa.json (Persian) 2024-09-28 07:09:18 +02:00
Imran
1e03194765 Merge pull request #1853 from ImranR98/dev
- Add Tencent App Store (#1848)
- Enable icon caching (#1837)
2024-09-27 18:05:56 -05:00
Imran Remtulla
10c558faaf Increment version 2024-09-27 19:03:17 -04:00
Imran Remtulla
dcf6957842 Remove unused code 2024-09-27 19:02:54 -04:00
Imran Remtulla
77bebc48bc Enable icon caching (#1837) 2024-09-27 19:01:57 -04:00
Imran Remtulla
cad14dd6a4 Update Flutter, upgrade packages 2024-09-27 18:34:52 -04:00
Imran Remtulla
5d72af5b20 Add Tencent App Store (#1848) 2024-09-27 18:28:37 -04:00
Imran
1fcb923469 Merge pull request #1832 from summoner001/main
Update hu.json
2024-09-27 15:17:14 -05:00
Imran
f89bc41ac1 Merge pull request #1850 from lagodimos/format-json
Format exported json
2024-09-27 15:17:01 -05:00
summoner001
70988a91fd Update hu.json
fixing translation of URL
2024-09-25 10:21:03 +02:00
Giannis Lagodimos
f3481f94dd format exported json
Make the exported applications' file more readable in case it is needed to be opened with a text editor.
2024-09-22 22:50:17 +03:00
summoner001
204eadd809 Update hu.json
Minor sentence fixes
2024-09-21 17:23:00 +02:00
summoner001
69f2ec1777 Update hu.json
Fixing the hungarian translation
2024-09-15 17:11:06 +02:00
summoner001
b98c23e369 Update hu.json
fixing a typo
2024-09-10 10:53:27 +02:00
summoner001
64779fb55a Update hu.json
fixing access token and api key translation
2024-09-10 10:51:52 +02:00
summoner001
845cf0a035 Update hu.json
Fixing sentence
2024-09-09 19:31:34 +02:00
summoner001
9dba240202 Update hu.json
Fixing sentences
2024-09-09 19:25:39 +02:00
summoner001
8aa682028f Update hu.json
Translating the "regex" word
2024-09-09 19:17:00 +02:00
summoner001
cb80b80efb Update hu.json
fixing a typo
2024-09-09 17:47:46 +02:00
summoner001
eb1d997413 Update hu.json
fixing a translation word
2024-09-09 17:46:10 +02:00
summoner001
986badc653 Update hu.json
fixing a typo
2024-09-09 17:45:04 +02:00
summoner001
2432db0b31 Update hu.json
Rewieving the hungarian translation. Fixing typos, sentences and the coherence.
2024-09-09 17:29:01 +02:00
Imran
5be2c9b51d Merge pull request #1826 from ImranR98/dev
- Improved APKPure compatibility by prioritizing APK when available (over XAPK)
- Auto-select direct APK source for URLs ending in '.apk' (#1820)
- Handle install failures more gracefully on apps page (#1782)
- Enabled ZH-TW and EO languages
- Added "allow insecure request" option (#1825)
2024-09-08 04:00:49 -04:00
Imran Remtulla
d801994fed Added "allow insecure request" option (#1825) 2024-09-08 03:58:51 -04:00
Imran Remtulla
19bb9a0331 Update packages + Flutter, increment version 2024-09-08 03:27:20 -04:00
Imran Remtulla
b8dc6f9a53 Dart fix 2024-09-08 03:25:52 -04:00
Imran Remtulla
3a7ba00486 Merge remote-tracking branch 'origin/main' into dev 2024-09-08 03:24:26 -04:00
Imran Remtulla
86416df7dd Enabled ZH-TW and EO languages 2024-09-08 03:23:29 -04:00
Imran
704f209e4d Merge pull request #1824 from DwainZwerg/patch-1
Update de.json
2024-09-08 03:14:40 -04:00
Imran Remtulla
e1bed6f0cf Handle install failures more gracefully on apps page (#1782) 2024-09-08 03:11:49 -04:00
Imran Remtulla
61c88596f0 Bugfix 2024-09-08 02:54:43 -04:00
Imran Remtulla
a07c51a04a Merge remote-tracking branch 'origin/main' into dev 2024-09-08 02:51:22 -04:00
Imran Remtulla
0e46a83843 Auto-select direct APK source for URLs ending in '.apk' (#1820) 2024-09-08 02:51:11 -04:00
DwainZwerg
1a4b9658c3 Update de.json
see https://github.com/ImranR98/Obtainium/pull/1783#issuecomment-2310350237
2024-09-08 08:48:54 +02:00
Imran
9b922abe48 Merge pull request #1815 from pgmtx/add-esperanto
Add Esperanto translation
2024-09-08 02:40:57 -04:00
Imran
6f0f883d88 Merge pull request #1807 from Kevinr99089/main
Fr: Rollback import export change
2024-09-08 02:40:48 -04:00
Imran
aafcc4d96e Merge pull request #1803 from gidano/Updated_hu
Updated hu.json
2024-09-08 02:40:39 -04:00
Imran Remtulla
e019c8027b Improved APKPure compatibility by prioritizing APK when available (over XAPK) 2024-09-05 13:10:02 -04:00
pgmtx
b6acb43055 Finished proofreading 2024-08-28 23:06:33 +02:00
pgmtx
d9f6e3328e Created eo.json file and added first translations 2024-08-27 19:43:07 +02:00
Kévin
0e50132e13 Rollback import export change
- The changes made to "Import and Export", translated as "Sauvegarder et Restaurer" have been cancelled because some of the text goes beyond the box.
- Back to "Importer et Exporter" by correcting past errors.
2024-08-22 16:26:10 +02:00
gidano
c74e8456d2 Updated hu.json 2024-08-20 08:35:30 +02:00
Imran
33c60c9d4f Merge pull request #1801 from ImranR98/dev
Switch back to old Shizuku plugin version (new one broke build)
2024-08-19 23:03:40 -04:00
Imran Remtulla
151e085655 Switch back to old Shizuku plugin version (new one broke build) 2024-08-19 23:03:20 -04:00
Imran
b1d641ae24 Merge pull request #1783 from Mr-Update/patch-1
Update de.json
2024-08-19 22:56:51 -04:00
Imran
7ddb35f933 Update de.json 2024-08-19 22:56:38 -04:00
Imran
b05a2ed14f Merge pull request #1800 from ImranR98/dev
- GitLab bugfix for some APK URLs (#1790)
- Fix Uptodown - was completely broken (#1796)
- Slight XAPK support improvement + BG install bugfix
2024-08-19 22:55:37 -04:00
Imran Remtulla
b22a82d11b Upgrade packages, increment version 2024-08-19 22:54:24 -04:00
Imran Remtulla
ee051153ca Merge remote-tracking branch 'origin/main' into dev 2024-08-19 22:53:44 -04:00
Imran
46871191c4 Merge pull request #1787 from Kevinr99089/main
French corrections
2024-08-19 22:48:45 -04:00
Imran
0cb518d434 Merge pull request #1785 from PeterDaveHelloKitchen/Improve-zh-TW-translation
Improve zh-TW traditional Chinese translation
2024-08-19 22:48:36 -04:00
Imran Remtulla
03778fd743 Fix Uptodown - was completely broken (#1796) 2024-08-19 22:37:57 -04:00
Imran Remtulla
514ca3e28b Slight XAPK support improvement + BG install bugfix 2024-08-19 21:29:19 -04:00
Imran Remtulla
37e90dabe7 GitLab bugfix for some APK URLs (#1790) 2024-08-19 20:55:37 -04:00
Mr-Update
ee99f2b71f Update de.json 2024-08-17 21:39:56 +02:00
Kévin
ca9289f104 Some words corrected #5
- Correction of some words suggested by [AntoninDelFabbro](https://github.com/AntoninDelFabbro).
2024-08-14 16:10:30 +02:00
Peter Dave Hello
aefe7eaa5f Improve zh-TW traditional Chinese translation 2024-08-11 04:19:53 +08:00
Mr-Update
e979f7c6f3 Update de.json 2024-08-09 00:13:02 +02:00
Kévin
e2118a3b53 Some words corrected #4
- Correction of some words suggested by [AntoninDelFabbro](https://github.com/AntoninDelFabbro).
- Additional modification to be made later (awaiting reply)
2024-08-08 02:07:15 +02:00
Kévin
d3a5d3b0fa Some words corrected #3
- Correction of some words suggested by [AntoninDelFabbro](https://github.com/AntoninDelFabbro).
- Additional modification to be made later (awaiting reply)
2024-08-07 13:49:07 +02:00
Kévin
bc7c70aca6 Correcting some words #2
- I made half of the modifications previously
- Correction of some words suggested by [AntoninDelFabbro](https://github.com/AntoninDelFabbro).
- Additional modification to be made later (awaiting reply)
2024-08-07 13:39:57 +02:00
Kévin
6cde454bd9 Some words corrected #01
- Correction of some words suggested by [AntoninDelFabbro](https://github.com/AntoninDelFabbro).
- Additional modification to be made later (awaiting reply)
2024-08-07 12:42:06 +02:00
56 changed files with 1594 additions and 609 deletions

View File

@@ -26,6 +26,7 @@ Currently supported App sources:
- [Aptoide](https://aptoide.com/) - [Aptoide](https://aptoide.com/)
- [Uptodown](https://uptodown.com/) - [Uptodown](https://uptodown.com/)
- [Huawei AppGallery](https://appgallery.huawei.com/) - [Huawei AppGallery](https://appgallery.huawei.com/)
- [Tencent App Store](https://sj.qq.com/)
- Jenkins Jobs - Jenkins Jobs
- [APKMirror](https://apkmirror.com/) (Track-Only) - [APKMirror](https://apkmirror.com/) (Track-Only)
- Open Source - App-Specific: - Open Source - App-Specific:

View File

@@ -314,6 +314,7 @@
"appVerifierInstructionToast": "Dijeli sa AppVerifier-om, zatim se vratite kada ste spremni.", "appVerifierInstructionToast": "Dijeli sa AppVerifier-om, zatim se vratite kada ste spremni.",
"wiki": "Pomoć/Wiki", "wiki": "Pomoć/Wiki",
"crowdsourcedConfigsLabel": "Konfiguracije aplikacije obezbeđene pomoću velikog broja ljudi (crowdsourcing) (koristite na svoju odgovornost)", "crowdsourcedConfigsLabel": "Konfiguracije aplikacije obezbeđene pomoću velikog broja ljudi (crowdsourcing) (koristite na svoju odgovornost)",
"allowInsecure": "Allow insecure HTTP requests",
"removeAppQuestion": { "removeAppQuestion": {
"one": "Želite li ukloniti aplikaciju?", "one": "Želite li ukloniti aplikaciju?",
"other": "Želite li ukloniti aplikacije?" "other": "Želite li ukloniti aplikacije?"

View File

@@ -314,6 +314,7 @@
"appVerifierInstructionToast": "Sdílejte do aplikace AppVerifier a po dokončení se sem vraťte.", "appVerifierInstructionToast": "Sdílejte do aplikace AppVerifier a po dokončení se sem vraťte.",
"wiki": "Nápověda/Wiki", "wiki": "Nápověda/Wiki",
"crowdsourcedConfigsLabel": "Konfigurace aplikací s využitím crowdsourcingu (použití na vlastní nebezpečí)", "crowdsourcedConfigsLabel": "Konfigurace aplikací s využitím crowdsourcingu (použití na vlastní nebezpečí)",
"allowInsecure": "Povolení nezabezpečených požadavků HTTP",
"removeAppQuestion": { "removeAppQuestion": {
"one": "Odstranit Apku?", "one": "Odstranit Apku?",
"other": "Odstranit Apky?" "other": "Odstranit Apky?"

View File

@@ -314,6 +314,7 @@
"appVerifierInstructionToast": "Del til AppVerifier, og vend tilbage hertil, når du er klar.", "appVerifierInstructionToast": "Del til AppVerifier, og vend tilbage hertil, når du er klar.",
"wiki": "Hjælp/Wiki", "wiki": "Hjælp/Wiki",
"crowdsourcedConfigsLabel": "Crowdsourcede app-konfigurationer (brug på egen risiko)", "crowdsourcedConfigsLabel": "Crowdsourcede app-konfigurationer (brug på egen risiko)",
"allowInsecure": "Tillad usikre HTTP-anmodninger",
"removeAppQuestion": { "removeAppQuestion": {
"one": "Fjern app?", "one": "Fjern app?",
"other": "Fjern apps?" "other": "Fjern apps?"

View File

@@ -11,7 +11,7 @@
"unexpectedError": "Unerwarteter Fehler", "unexpectedError": "Unerwarteter Fehler",
"ok": "OK", "ok": "OK",
"and": "und", "and": "und",
"githubPATLabel": "GitHub Personal Access Token (Erhöht das Ratenlimit)", "githubPATLabel": "Persönlicher Zugangstoken für GitHub (erhöht das Ratenlimit)",
"includePrereleases": "Vorabversionen einbeziehen", "includePrereleases": "Vorabversionen einbeziehen",
"fallbackToOlderReleases": "Fallback auf ältere Versionen", "fallbackToOlderReleases": "Fallback auf ältere Versionen",
"filterReleaseTitlesByRegEx": "Release-Titel nach regulärem Ausdruck\nfiltern", "filterReleaseTitlesByRegEx": "Release-Titel nach regulärem Ausdruck\nfiltern",
@@ -24,15 +24,15 @@
"colour": "Farbe", "colour": "Farbe",
"standard": "Standard", "standard": "Standard",
"custom": "Benutzerdefiniert", "custom": "Benutzerdefiniert",
"useMaterialYou": "Verwende Material You", "useMaterialYou": "Material You verwenden",
"githubStarredRepos": "GitHub Starred Repos", "githubStarredRepos": "GitHub Starred Repos",
"uname": "Benutzername", "uname": "Benutzername",
"wrongArgNum": "Falsche Anzahl von Argumenten (Parametern) übermittelt", "wrongArgNum": "Falsche Anzahl von Argumenten (Parametern) übermittelt",
"xIsTrackOnly": "{} ist nur zur Nachverfolgung", "xIsTrackOnly": "{} ist nur zur Nachverfolgung",
"source": "Quelle", "source": "Quelle",
"app": "App", "app": "App",
"appsFromSourceAreTrackOnly": "Apps aus dieser Quelle sind nur zum Nachverfolgen.", "appsFromSourceAreTrackOnly": "Apps aus dieser Quelle sind nur zur Nachverfolgung.",
"youPickedTrackOnly": "Sie haben die Option „Nur Nachverfolgen“ gewählt.", "youPickedTrackOnly": "Sie haben die Option „Nur nachverfolgen“ gewählt.",
"trackOnlyAppDescription": "Die App wird auf Aktualisierungen überwacht, aber Obtainium wird sie nicht herunterladen oder installieren.", "trackOnlyAppDescription": "Die App wird auf Aktualisierungen überwacht, aber Obtainium wird sie nicht herunterladen oder installieren.",
"cancelled": "Abgebrochen", "cancelled": "Abgebrochen",
"appAlreadyAdded": "App bereits hinzugefügt", "appAlreadyAdded": "App bereits hinzugefügt",
@@ -45,7 +45,7 @@
"search": "Suchen", "search": "Suchen",
"additionalOptsFor": "Zusatzoptionen für {}", "additionalOptsFor": "Zusatzoptionen für {}",
"supportedSources": "Unterstützte Quellen", "supportedSources": "Unterstützte Quellen",
"trackOnlyInBrackets": "(Nur Nachverfolgen)", "trackOnlyInBrackets": "(Nur nachverfolgen)",
"searchableInBrackets": "(Durchsuchbar)", "searchableInBrackets": "(Durchsuchbar)",
"appsString": "Apps", "appsString": "Apps",
"noApps": "Keine Apps", "noApps": "Keine Apps",
@@ -61,22 +61,22 @@
"xWillBeRemovedButRemainInstalled": "{} wird aus Obtainium entfernt, bleibt aber auf dem Gerät installiert.", "xWillBeRemovedButRemainInstalled": "{} wird aus Obtainium entfernt, bleibt aber auf dem Gerät installiert.",
"removeSelectedAppsQuestion": "Ausgewählte Apps entfernen?", "removeSelectedAppsQuestion": "Ausgewählte Apps entfernen?",
"removeSelectedApps": "Ausgewählte Apps entfernen", "removeSelectedApps": "Ausgewählte Apps entfernen",
"updateX": "Aktualisiere {}", "updateX": "{} aktualisieren",
"installX": "Installiere {}", "installX": "{} installieren",
"markXTrackOnlyAsUpdated": "Markiere {}\n(Nur Nachverfolgen)\nals aktualisiert", "markXTrackOnlyAsUpdated": "Markiere {}\n(Nur nachverfolgen)\nals aktualisiert",
"changeX": "Ändere {}", "changeX": "{} ändern",
"installUpdateApps": "Apps installieren/aktualisieren", "installUpdateApps": "Apps installieren/aktualisieren",
"installUpdateSelectedApps": "Ausgewählte Apps installieren/aktualisieren", "installUpdateSelectedApps": "Ausgewählte Apps installieren/aktualisieren",
"markXSelectedAppsAsUpdated": "Markiere {} ausgewählte Apps als aktuell?", "markXSelectedAppsAsUpdated": "{} ausgewählte Apps als aktuell markieren?",
"no": "Nein", "no": "Nein",
"yes": "Ja", "yes": "Ja",
"markSelectedAppsUpdated": "Markiere ausgewählte Apps als aktuell", "markSelectedAppsUpdated": "Ausgewählte Apps als aktuell markieren",
"pinToTop": "Oben anheften", "pinToTop": "Oben anheften",
"unpinFromTop": "„Oben anheften“ aufheben", "unpinFromTop": "„Oben anheften“ aufheben",
"resetInstallStatusForSelectedAppsQuestion": "Installationsstatus für ausgewählte Apps zurücksetzen?", "resetInstallStatusForSelectedAppsQuestion": "Installationsstatus für ausgewählte Apps zurücksetzen?",
"installStatusOfXWillBeResetExplanation": "Der Installationsstatus der ausgewählten Apps wird zurückgesetzt. Dies kann hilfreich sein, wenn die in Obtainium angezeigte App-Version aufgrund fehlgeschlagener Aktualisierungen oder anderer Probleme falsch ist.", "installStatusOfXWillBeResetExplanation": "Der Installationsstatus der ausgewählten Apps wird zurückgesetzt. Dies kann hilfreich sein, wenn die in Obtainium angezeigte App-Version aufgrund fehlgeschlagener Aktualisierungen oder anderer Probleme falsch ist.",
"customLinkMessage": "Diese Links funktionieren auf Geräten, wo Obtainium installiert ist", "customLinkMessage": "Diese Links funktionieren auf Geräten, wo Obtainium installiert ist",
"shareAppConfigLinks": "Teile die Appkonfiguration als HTML-Link", "shareAppConfigLinks": "App-Konfiguration als HTML-Link teilen",
"shareSelectedAppURLs": "Ausgewählte App-URLs teilen", "shareSelectedAppURLs": "Ausgewählte App-URLs teilen",
"resetInstallStatus": "Installationsstatus zurücksetzen", "resetInstallStatus": "Installationsstatus zurücksetzen",
"more": "Mehr", "more": "Mehr",
@@ -84,25 +84,25 @@
"showOutdatedOnly": "Nur nicht aktuelle Apps anzeigen", "showOutdatedOnly": "Nur nicht aktuelle Apps anzeigen",
"filter": "Filter", "filter": "Filter",
"filterApps": "Apps filtern", "filterApps": "Apps filtern",
"appName": "App Name", "appName": "App-Name",
"author": "Autor", "author": "Autor",
"upToDateApps": "Apps mit aktueller Version", "upToDateApps": "Apps mit aktueller Version",
"nonInstalledApps": "Nicht installierte Apps", "nonInstalledApps": "Nicht installierte Apps",
"importExport": "Import/Export", "importExport": "Import/Export",
"settings": "Einstellungen", "settings": "Einstellungen",
"exportedTo": "Exportiert zu {}", "exportedTo": "Exportiert nach {}",
"obtainiumExport": "Obtainium-Export", "obtainiumExport": "Obtainium-Export",
"invalidInput": "Ungültige Eingabe", "invalidInput": "Ungültige Eingabe",
"importedX": "Importiert {}", "importedX": "{} importiert",
"obtainiumImport": "Obtainium-Import", "obtainiumImport": "Obtainium-Import",
"importFromURLList": "Importieren aus URL-Liste", "importFromURLList": "Aus URL-Liste importieren",
"searchQuery": "Suchanfrage", "searchQuery": "Suchanfrage",
"appURLList": "App URL-Liste", "appURLList": "App-URL-Liste",
"line": "Linie", "line": "Linie",
"searchX": "Suche {}", "searchX": "{} suchen",
"noResults": "Keine Ergebnisse gefunden", "noResults": "Keine Ergebnisse gefunden",
"importX": "Importieren {}", "importX": "{} importieren",
"importedAppsIdDisclaimer": "Importierte Apps werden möglicherweise fälschlicherweise als \"Nicht installiert\" angezeigt. Um dies zu beheben, installieren Sie sie erneut über Obtainium. Dies hat keine Auswirkungen auf App-Daten. Es betrifft nur URL- und Drittanbieter-Importmethoden.", "importedAppsIdDisclaimer": "Importierte Apps werden manchmal fälschlicherweise als Nicht installiert angezeigt. Um dies zu beheben, installieren Sie sie erneut über Obtainium. Dies hat keine Auswirkungen auf App-Daten. Es betrifft nur URL- und Drittanbieter-Importmethoden.",
"importErrors": "Importfehler", "importErrors": "Importfehler",
"importedXOfYApps": "{} von {} Apps importiert.", "importedXOfYApps": "{} von {} Apps importiert.",
"followingURLsHadErrors": "Bei folgenden URLs traten Fehler auf:", "followingURLsHadErrors": "Bei folgenden URLs traten Fehler auf:",
@@ -113,8 +113,8 @@
"dark": "Dunkel", "dark": "Dunkel",
"light": "Hell", "light": "Hell",
"followSystem": "System folgen", "followSystem": "System folgen",
"followSystemThemeExplanation": "Das Folgen des Systemthemes ist unter Android <10 nur mit Hilfe von Drittanbieteranwendungen möglich", "followSystemThemeExplanation": "Das Folgen des Systemthemes ist unter Android < 10 nur mit Hilfe von Drittanbieterapps möglich",
"useBlackTheme": "Verwende Pure Black Dark Theme", "useBlackTheme": "Pure Black Dark Theme verwenden",
"appSortBy": "App sortieren nach", "appSortBy": "App sortieren nach",
"authorName": "Autor/Name", "authorName": "Autor/Name",
"nameAuthor": "Name/Autor", "nameAuthor": "Name/Autor",
@@ -146,8 +146,8 @@
"updatesAvailableNotifDescription": "Benachrichtigt den Nutzer, dass Aktualisierungen für eine oder mehrere von Obtainium verfolgte Apps verfügbar sind", "updatesAvailableNotifDescription": "Benachrichtigt den Nutzer, dass Aktualisierungen für eine oder mehrere von Obtainium verfolgte Apps verfügbar sind",
"noNewUpdates": "Keine neuen Aktualisierungen.", "noNewUpdates": "Keine neuen Aktualisierungen.",
"xHasAnUpdate": "{} hat eine Aktualisierung.", "xHasAnUpdate": "{} hat eine Aktualisierung.",
"appsUpdated": "Apps aktualisiert", "appsUpdated": "App wurde aktualisiert",
"appsNotUpdated": "Aktualisierung der Anwendungen fehlgeschlagen", "appsNotUpdated": "Aktualisierung der Apps fehlgeschlagen",
"appsUpdatedNotifDescription": "Benachrichtigt den Benutzer, dass Aktualisierungen für eine oder mehrere Apps im Hintergrund durchgeführt wurden", "appsUpdatedNotifDescription": "Benachrichtigt den Benutzer, dass Aktualisierungen für eine oder mehrere Apps im Hintergrund durchgeführt wurden",
"xWasUpdatedToY": "{} wurde auf {} aktualisiert.", "xWasUpdatedToY": "{} wurde auf {} aktualisiert.",
"xWasNotUpdatedToY": "Die Aktualisierung von {} auf {} ist fehlgeschlagen.", "xWasNotUpdatedToY": "Die Aktualisierung von {} auf {} ist fehlgeschlagen.",
@@ -156,13 +156,13 @@
"appsRemoved": "Apps entfernt", "appsRemoved": "Apps entfernt",
"appsRemovedNotifDescription": "Benachrichtigt den Benutzer, dass eine oder mehrere Apps aufgrund von Fehlern beim Laden entfernt wurden", "appsRemovedNotifDescription": "Benachrichtigt den Benutzer, dass eine oder mehrere Apps aufgrund von Fehlern beim Laden entfernt wurden",
"xWasRemovedDueToErrorY": "{} wurde aufgrund des folgenden Fehlers entfernt: {}", "xWasRemovedDueToErrorY": "{} wurde aufgrund des folgenden Fehlers entfernt: {}",
"completeAppInstallation": "App Installation abschließen", "completeAppInstallation": "App-Installation abschließen",
"obtainiumMustBeOpenToInstallApps": "Obtainium muss geöffnet sein, um Apps zu installieren", "obtainiumMustBeOpenToInstallApps": "Obtainium muss geöffnet sein, um Apps zu installieren",
"completeAppInstallationNotifDescription": "Aufforderung an den Benutzer, zu Obtainium zurückzukehren, um die Installation einer App abzuschließen", "completeAppInstallationNotifDescription": "Aufforderung an den Benutzer, zu Obtainium zurückzukehren, um die Installation einer App abzuschließen",
"checkingForUpdates": "Nach Aktualisierungen suchen", "checkingForUpdates": "Nach Aktualisierungen suchen",
"checkingForUpdatesNotifDescription": "Vorübergehende Benachrichtigung, die bei der Suche nach Aktualisierungen angezeigt wird", "checkingForUpdatesNotifDescription": "Vorübergehende Benachrichtigung, die bei der Suche nach Aktualisierungen angezeigt wird",
"pleaseAllowInstallPerm": "Bitte erlauben Sie Obtainium die Installation von Apps", "pleaseAllowInstallPerm": "Bitte erlauben Sie Obtainium die Installation von Apps",
"trackOnly": "Nur Nachverfolgen", "trackOnly": "Nur nachverfolgen",
"errorWithHttpStatusCode": "Fehler {}", "errorWithHttpStatusCode": "Fehler {}",
"versionCorrectionDisabled": "Versionskorrektur deaktiviert (Plugin scheint nicht zu funktionieren)", "versionCorrectionDisabled": "Versionskorrektur deaktiviert (Plugin scheint nicht zu funktionieren)",
"unknown": "Unbekannt", "unknown": "Unbekannt",
@@ -173,25 +173,25 @@
"lastUpdateCheckX": "Letzte Aktualisierungsprüfung: {}", "lastUpdateCheckX": "Letzte Aktualisierungsprüfung: {}",
"remove": "Entfernen", "remove": "Entfernen",
"yesMarkUpdated": "Ja, als aktualisiert markieren", "yesMarkUpdated": "Ja, als aktualisiert markieren",
"fdroid": "offizielles F-Droid-Repo", "fdroid": "Offizielles F-Droid-Repo",
"appIdOrName": "App ID oder Name", "appIdOrName": "App-ID oder Name",
"appId": "App ID", "appId": "App-ID",
"appWithIdOrNameNotFound": "Es wurde keine App mit dieser ID oder diesem Namen gefunden", "appWithIdOrNameNotFound": "Es wurde keine App mit dieser ID oder diesem Namen gefunden",
"reposHaveMultipleApps": "Repos können mehrere Apps enthalten", "reposHaveMultipleApps": "Repos können mehrere Apps enthalten",
"fdroidThirdPartyRepo": "F-Droid Drittparteienrepo", "fdroidThirdPartyRepo": "F-Droid-Drittanbieter-Repo",
"steamMobile": "Steam Mobile", "steamMobile": "Steam Mobile",
"steamChat": "Steam-Chat", "steamChat": "Steam-Chat",
"install": "Installieren", "install": "Installieren",
"markInstalled": "Als Installiert markieren", "markInstalled": "Als installiert markieren",
"update": "Aktualisieren", "update": "Aktualisieren",
"markUpdated": "Als Aktuell markieren", "markUpdated": "Als aktuell markieren",
"additionalOptions": "Zusätzliche Optionen", "additionalOptions": "Zusätzliche Optionen",
"disableVersionDetection": "Versionsermittlung deaktivieren", "disableVersionDetection": "Versionserkennung deaktivieren",
"noVersionDetectionExplanation": "Diese Option sollte nur für Apps verwendet werden, bei denen die Versionserkennung nicht korrekt funktioniert.", "noVersionDetectionExplanation": "Diese Option sollte nur für Apps verwendet werden, bei denen die Versionserkennung nicht korrekt funktioniert.",
"downloadingX": "Lade {} herunter", "downloadingX": "{} wird heruntergeladen",
"downloadX": "{} herunterladen", "downloadX": "{} herunterladen",
"downloadedX": "{} heruntergeladen", "downloadedX": "{} heruntergeladen",
"releaseAsset": "release Asset", "releaseAsset": "Release-Asset",
"downloadNotifDescription": "Benachrichtigt den Nutzer über den Fortschritt beim Herunterladen einer App", "downloadNotifDescription": "Benachrichtigt den Nutzer über den Fortschritt beim Herunterladen einer App",
"noAPKFound": "Keine APK gefunden", "noAPKFound": "Keine APK gefunden",
"noVersionDetection": "Keine Versionserkennung", "noVersionDetection": "Keine Versionserkennung",
@@ -216,52 +216,52 @@
"releaseDateAsVersionExplanation": "Diese Option sollte nur für Apps verwendet werden, bei denen die Versionserkennung nicht korrekt funktioniert, aber ein Veröffentlichungsdatum verfügbar ist.", "releaseDateAsVersionExplanation": "Diese Option sollte nur für Apps verwendet werden, bei denen die Versionserkennung nicht korrekt funktioniert, aber ein Veröffentlichungsdatum verfügbar ist.",
"changes": "Änderungen", "changes": "Änderungen",
"releaseDate": "Veröffentlichungsdatum", "releaseDate": "Veröffentlichungsdatum",
"importFromURLsInFile": "Importieren von URLs aus Datei (z. B. OPML)", "importFromURLsInFile": "URLs aus Datei importieren (z. B. OPML)",
"versionDetectionExplanation": "Abgleich der Versionsnummer mit der vom Betriebssystem erkannten Version", "versionDetectionExplanation": "Abgleich der Versionsnummer mit der vom Betriebssystem erkannten Version",
"versionDetection": "Versionserkennung", "versionDetection": "Versionserkennung",
"standardVersionDetection": "Standardversionserkennung", "standardVersionDetection": "Standardversionserkennung",
"groupByCategory": "Nach Kategorie gruppieren", "groupByCategory": "Nach Kategorie gruppieren",
"autoApkFilterByArch": "Nach Möglichkeit versuchen, APKs nach CPU-Architektur zu filtern", "autoApkFilterByArch": "Nach Möglichkeit versuchen, APKs nach CPU-Architektur zu filtern",
"overrideSource": "Quelle überschreiben", "overrideSource": "Quelle überschreiben",
"dontShowAgain": "Nicht noch einmal zeigen", "dontShowAgain": "Nicht noch einmal anzeigen",
"dontShowTrackOnlyWarnings": "Warnung für 'Nur Nachverfolgen' nicht anzeigen", "dontShowTrackOnlyWarnings": "Warnung für 'Nur nachverfolgen' nicht anzeigen",
"dontShowAPKOriginWarnings": "Warnung für APK-Herkunft nicht anzeigen", "dontShowAPKOriginWarnings": "Warnung für APK-Herkunft nicht anzeigen",
"moveNonInstalledAppsToBottom": "Nicht installierte Apps ans Ende der Apps Ansicht verschieben", "moveNonInstalledAppsToBottom": "Nicht installierte Apps ans Ende der App-Ansicht verschieben",
"gitlabPATLabel": "GitLab Personal Access Token", "gitlabPATLabel": "Persönlicher Zugangstoken für GitLab",
"about": "Über", "about": "Über",
"requiresCredentialsInSettings": "{}: Benötigt zusätzliche Anmeldedaten (in den Einstellungen)", "requiresCredentialsInSettings": "{}: Benötigt zusätzliche Anmeldedaten (in den Einstellungen)",
"checkOnStart": "Überprüfe einmalig beim Start", "checkOnStart": "Einmalig beim Start überprüfen",
"tryInferAppIdFromCode": "Versuche, die App-ID aus dem Quellcode zu ermitteln", "tryInferAppIdFromCode": "Versuchen, die App-ID aus dem Quellcode zu ermitteln",
"removeOnExternalUninstall": "Automatisches Entfernen von extern deinstallierten Apps", "removeOnExternalUninstall": "Automatisches Entfernen von extern deinstallierten Apps",
"pickHighestVersionCode": "Automatische Auswahl des APK mit höchstem Versionscode", "pickHighestVersionCode": "Automatische Auswahl des APK mit höchstem Versionscode",
"checkUpdateOnDetailPage": "Nach Aktualisierungen suchen, wenn eine App-Detailseite geöffnet wird", "checkUpdateOnDetailPage": "Nach Aktualisierungen suchen, wenn eine App-Detailseite geöffnet wird",
"disablePageTransitions": "Animationen für Seitenübergänge deaktivieren", "disablePageTransitions": "Animationen für Seitenübergänge deaktivieren",
"reversePageTransitions": "Umgekehrte Animationen für Seitenübergänge", "reversePageTransitions": "Umgekehrte Animationen für Seitenübergänge",
"minStarCount": "Minimale Anzahl von Sternen", "minStarCount": "Minimale Anzahl von Sternen",
"addInfoBelow": "Fügen Sie diese Informationen unten hinzu.", "addInfoBelow": "Diese Information unten hinzufügen.",
"addInfoInSettings": "Fügen Sie diese Info in den Einstellungen hinzu.", "addInfoInSettings": "Diese Information in den Einstellungen hinzufügen.",
"githubSourceNote": "Die GitHub-Ratenbegrenzung kann mit einem API-Schlüssel umgangen werden.", "githubSourceNote": "Die GitHub-Ratenbegrenzung kann mit einem API-Schlüssel umgangen werden.",
"sortByLastLinkSegment": "Sortiere nur nach dem letzten Teil des Links", "sortByLastLinkSegment": "Nur nach dem letzten Teil des Links sortieren",
"filterReleaseNotesByRegEx": "Versionshinweise nach regulärem Ausdruck filtern", "filterReleaseNotesByRegEx": "Versionshinweise nach regulärem Ausdruck filtern",
"customLinkFilterRegex": "Benutzerdefinierter APK Link Filter nach Regulärem Ausdruck (Standard '.apk$')", "customLinkFilterRegex": "Benutzerdefinierter APK-Linkfilter durch regulären Ausdruck (Standard '.apk$')",
"appsPossiblyUpdated": "App Aktualisierungen wurden versucht", "appsPossiblyUpdated": "App-Aktualisierungen wurden versucht",
"appsPossiblyUpdatedNotifDescription": "Benachrichtigt den Benutzer, dass Aktualisierungen für eine oder mehrere Apps möglicherweise im Hintergrund durchgeführt wurden", "appsPossiblyUpdatedNotifDescription": "Benachrichtigt den Benutzer, dass Aktualisierungen für eine oder mehrere Apps möglicherweise im Hintergrund durchgeführt wurden",
"xWasPossiblyUpdatedToY": "{} wurde möglicherweise aktualisiert auf {}.", "xWasPossiblyUpdatedToY": "{} wurde möglicherweise aktualisiert auf {}.",
"enableBackgroundUpdates": "Aktiviere Hintergrundaktualisierungen", "enableBackgroundUpdates": "Hintergrundaktualisierungen aktivieren",
"backgroundUpdateReqsExplanation": "Die Hintergrundaktualisierung ist möglicherweise nicht für alle Apps möglich.", "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.", "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", "intermediateLinkRegex": "Filter für einen „Zwischen“-Link, der zuerst besucht werden soll",
"filterByLinkText": "Filtere Links durch Linktext", "filterByLinkText": "Links durch Linktext filtern",
"intermediateLinkNotFound": "„Zwischen“-Link nicht gefunden", "intermediateLinkNotFound": "„Zwischen“-Link nicht gefunden",
"intermediateLink": "„Zwischen“-Link", "intermediateLink": "„Zwischen“-Link",
"exemptFromBackgroundUpdates": "Ausschluss von Hintergrundaktualisierungen (falls aktiviert)", "exemptFromBackgroundUpdates": "Ausschluss von Hintergrundaktualisierungen (falls aktiviert)",
"bgUpdatesOnWiFiOnly": "Hintergrundaktualisierungen deaktivieren, wenn kein WLAN vorhanden ist", "bgUpdatesOnWiFiOnly": "Hintergrundaktualisierungen deaktivieren, wenn kein WLAN vorhanden ist",
"autoSelectHighestVersionCode": "Automatisch höchste APK-Version auswählen", "autoSelectHighestVersionCode": "Automatisch höchste APK-Version auswählen",
"versionExtractionRegEx": "Versions-Extraktion per RegEx", "versionExtractionRegEx": "Versionsextraktion per RegEx",
"trimVersionString": "Trim Version String mit RegEx", "trimVersionString": "Versionszeichenfolge mit RegEx kürzen",
"matchGroupToUseForX": "Zu verwendende Abgleichsgruppe für \"{}\"", "matchGroupToUseForX": "Zu verwendende Abgleichsgruppe für „{}“",
"matchGroupToUse": "zu verwendende Gruppe abgleichen", "matchGroupToUse": "Zu verwendende Gruppe abgleichen",
"highlightTouchTargets": "Weniger offensichtliche Touch-Ziele hervorheben", "highlightTouchTargets": "Weniger offensichtliche Touch-Ziele hervorheben",
"pickExportDir": "Export-Verzeichnis wählen", "pickExportDir": "Export-Verzeichnis wählen",
"autoExportOnChanges": "Automatischer Export bei Änderung(en)", "autoExportOnChanges": "Automatischer Export bei Änderung(en)",
@@ -270,37 +270,37 @@
"trySelectingSuggestedVersionCode": "Versuchen, den vorgeschlagenen APK-Versionscode auszuwählen", "trySelectingSuggestedVersionCode": "Versuchen, den vorgeschlagenen APK-Versionscode auszuwählen",
"dontSortReleasesList": "Freigaberelease von der API ordern", "dontSortReleasesList": "Freigaberelease von der API ordern",
"reverseSort": "Umgekehrtes Sortieren", "reverseSort": "Umgekehrtes Sortieren",
"takeFirstLink": "Verwende den ersten Link", "takeFirstLink": "Ersten Link verwenden",
"skipSort": "Überspringe Sortieren", "skipSort": "Sortieren überspringen",
"debugMenu": "Debug-Menü", "debugMenu": "Debug-Menü",
"bgTaskStarted": "Hintergrundaufgabe gestartet Logs prüfen.", "bgTaskStarted": "Hintergrundaufgabe gestartet Logs prüfen.",
"runBgCheckNow": "Hintergrundaktualisierungsprüfung jetzt durchführen", "runBgCheckNow": "Hintergrundaktualisierungsprüfung jetzt durchführen",
"versionExtractWholePage": "Versions-Extraktion per RegEx auf die gesamte Seite anwenden", "versionExtractWholePage": "Versionsextraktion per RegEx auf die gesamte Seite anwenden",
"installing": "Installiere", "installing": "Installieren",
"skipUpdateNotifications": "Keine Benachrichtigung zu App-Aktualisierungen geben", "skipUpdateNotifications": "Update-Benachrichtigungen überspringen",
"updatesAvailableNotifChannel": "Aktualisierungen verfügbar", "updatesAvailableNotifChannel": "Aktualisierungen verfügbar",
"appsUpdatedNotifChannel": "Apps aktualisiert", "appsUpdatedNotifChannel": "Apps aktualisiert",
"appsPossiblyUpdatedNotifChannel": "App Aktualisierungen wurden versucht", "appsPossiblyUpdatedNotifChannel": "App-Aktualisierungen wurden versucht",
"errorCheckingUpdatesNotifChannel": "Fehler beim Prüfen auf Aktualisierungen", "errorCheckingUpdatesNotifChannel": "Fehler beim Prüfen auf Aktualisierungen",
"appsRemovedNotifChannel": "Apps entfernt", "appsRemovedNotifChannel": "Apps entfernt",
"downloadingXNotifChannel": "Lade {} herunter", "downloadingXNotifChannel": "{} herunterladen",
"completeAppInstallationNotifChannel": "App Installation abschließen", "completeAppInstallationNotifChannel": "App-Installation abschließen",
"checkingForUpdatesNotifChannel": "Nach Aktualisierungen suchen", "checkingForUpdatesNotifChannel": "Nach Aktualisierungen suchen",
"onlyCheckInstalledOrTrackOnlyApps": "Überprüfe nur installierte und mit „nur Nachverfolgen“ markierte Apps auf Aktualisierungen", "onlyCheckInstalledOrTrackOnlyApps": "Nur installierte und mit „Nur nachverfolgen“ markierte Apps auf Aktualisierungen prüfen",
"supportFixedAPKURL": "neuere Version anhand der ersten dreißig Zahlen der Checksumme der APK URL erraten, wenn anderweitig nicht unterstützt", "supportFixedAPKURL": "Unterstützung von festen APK-URLs",
"selectX": "Wähle {}", "selectX": "{} wählen",
"parallelDownloads": "Erlaube parallele Downloads", "parallelDownloads": "Parallele Downloads erlauben",
"useShizuku": "Verwenden Sie Shizuku oder Sui zur Installation", "useShizuku": "Shizuku oder Sui zur Installation verwenden",
"shizukuBinderNotFound": "Kompatibler Shizukudienst wurde nicht gefunden", "shizukuBinderNotFound": "Kompatibler Shizuku-Dienst wurde nicht gefunden",
"shizukuOld": "Alte Shizuku-Version (< 11) - aktualisieren Sie sie", "shizukuOld": "Alte Shizuku-Version (< 11) - aktualisieren Sie sie",
"shizukuOldAndroidWithADB": "Shizuku läuft auf Android < 8.1 mit ADB - aktualisieren Sie Android oder verwenden Sie stattdessen Sui", "shizukuOldAndroidWithADB": "Shizuku läuft auf Android < 8.1 mit ADB - aktualisieren Sie Android oder verwenden Sie stattdessen Sui",
"shizukuPretendToBeGooglePlay": "Google Play als Installationsquelle festlegen (wenn Shizuku verwendet wird)", "shizukuPretendToBeGooglePlay": "Google Play als Installationsquelle festlegen (wenn Shizuku verwendet wird)",
"useSystemFont": "Verwende die Systemschriftart", "useSystemFont": "Systemschriftart verwenden",
"useVersionCodeAsOSVersion": "Verwende die Appversion als erkannte Version vom Betriebssystem", "useVersionCodeAsOSVersion": "App-Version als erkannte Version vom Betriebssystem verwenden",
"requestHeader": "Request Header", "requestHeader": "Kopfzeile anfordern",
"useLatestAssetDateAsReleaseDate": "Den letzten Asset-Upload als Veröffentlichungsdatum verwenden", "useLatestAssetDateAsReleaseDate": "Letzten Asset-Upload als Veröffentlichungsdatum verwenden",
"defaultPseudoVersioningMethod": "Standardmäßiges Verfahren zur Pseudo-Versionierung", "defaultPseudoVersioningMethod": "Standardmäßiges Verfahren zur Pseudo-Versionierung",
"partialAPKHash": "partieller APK-Hash", "partialAPKHash": "Partieller APK-Hash",
"APKLinkHash": "APK-Link-Hash", "APKLinkHash": "APK-Link-Hash",
"directAPKLink": "Direkter APK-Link", "directAPKLink": "Direkter APK-Link",
"pseudoVersionInUse": "Es werden Pseudoversionen verwendet", "pseudoVersionInUse": "Es werden Pseudoversionen verwendet",
@@ -308,19 +308,20 @@
"latest": "Neueste Version", "latest": "Neueste Version",
"invertRegEx": "Regulären Ausdruck invertieren", "invertRegEx": "Regulären Ausdruck invertieren",
"note": "Hinweis", "note": "Hinweis",
"selfHostedNote": "Das „{}“-Dropdown-Menü kann verwendet werden, um selbst gehostete/angepasste Instanzen einer beliebigen Quelle zu erreichen.", "selfHostedNote": "Das „{}“-Drop-down-Menü kann verwendet werden, um selbst gehostete/angepasste Instanzen einer beliebigen Quelle zu erreichen.",
"badDownload": "Die APK konnte nicht geparst werden (inkompatibler oder teilweiser Download)", "badDownload": "Die APK konnte nicht geparst werden (inkompatibler oder teilweiser Download)",
"beforeNewInstallsShareToAppVerifier": "Neue Apps mit AppVerifier teilen (falls verfügbar)", "beforeNewInstallsShareToAppVerifier": "Neue Apps mit AppVerifier teilen (falls verfügbar)",
"appVerifierInstructionToast": "Geben Sie die Daten an AppVerifier weiter und kehren Sie dann hierher zurück, wenn Sie fertig sind.", "appVerifierInstructionToast": "Geben Sie die Daten an AppVerifier weiter und kehren Sie dann hierher zurück, wenn Sie fertig sind.",
"wiki": "Hilfe/Wiki", "wiki": "Hilfe/Wiki",
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (Verwendung auf eigene Gefahr)", "crowdsourcedConfigsLabel": "Crowdsourced App-Konfigurationen (Verwendung auf eigene Gefahr)",
"allowInsecure": "Unsichere HTTP-Anfragen zulassen",
"removeAppQuestion": { "removeAppQuestion": {
"one": "App entfernen?", "one": "App entfernen?",
"other": "Apps entfernen?" "other": "Apps entfernen?"
}, },
"tooManyRequestsTryAgainInMinutes": { "tooManyRequestsTryAgainInMinutes": {
"one": "Zu viele Anfragen (Rate begrenzt) versuche es in {} Minute erneut", "one": "Zu viele Anfragen (Rate begrenzt) versuchen Sie es in {} Minute erneut",
"other": "Zu viele Anfragen (Rate begrenzt) versuche es in {} Minuten erneut" "other": "Zu viele Anfragen (Rate begrenzt) versuchen Sie es in {} Minuten erneut"
}, },
"bgUpdateGotErrorRetryInMinutes": { "bgUpdateGotErrorRetryInMinutes": {
"one": "Bei der Aktualisierungsprüfung im Hintergrund wurde ein {} festgestellt, eine erneute Prüfung wird in {} Minute geplant", "one": "Bei der Aktualisierungsprüfung im Hintergrund wurde ein {} festgestellt, eine erneute Prüfung wird in {} Minute geplant",
@@ -359,16 +360,16 @@
"other": "{} und {} weitere Apps haben Aktualisierungen." "other": "{} und {} weitere Apps haben Aktualisierungen."
}, },
"xAndNMoreUpdatesInstalled": { "xAndNMoreUpdatesInstalled": {
"one": "{} und 1 weitere Anwendung wurden aktualisiert.", "one": "{} und 1 weitere App wurden aktualisiert.",
"other": "{} und {} weitere Anwendungen wurden aktualisiert." "other": "{} und {} weitere Apps wurden aktualisiert."
}, },
"xAndNMoreUpdatesFailed": { "xAndNMoreUpdatesFailed": {
"one": "Aktualisierung fehlgeschlagen {} und 1 weitere Anwendung.", "one": "Die Aktualisierung von {} und 1 weiteren App ist fehlgeschlagen.",
"other": "Die Aktualisierung von {} und {} weiteren Anwendungen ist fehlgeschlagen." "other": "Die Aktualisierung von {} und {} weiteren Apps ist fehlgeschlagen."
}, },
"xAndNMoreUpdatesPossiblyInstalled": { "xAndNMoreUpdatesPossiblyInstalled": {
"one": "{} und 1 weitere Anwendung wurden möglicherweise aktualisiert.", "one": "{} und 1 weitere App wurden möglicherweise aktualisiert.",
"other": "{} und {} weitere Anwendungen wurden möglicherweise aktualisiert." "other": "{} und {} weitere Apps wurden möglicherweise aktualisiert."
}, },
"apk": { "apk": {
"one": "{} APK", "one": "{} APK",

View 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"
}
}

View File

@@ -314,6 +314,7 @@
"appVerifierInstructionToast": "Share to AppVerifier, then return here when ready.", "appVerifierInstructionToast": "Share to AppVerifier, then return here when ready.",
"wiki": "Help/Wiki", "wiki": "Help/Wiki",
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (use at your own risk)", "crowdsourcedConfigsLabel": "Crowdsourced App Configurations (use at your own risk)",
"allowInsecure": "Allow insecure HTTP requests",
"removeAppQuestion": { "removeAppQuestion": {
"one": "Remove App?", "one": "Remove App?",
"other": "Remove Apps?" "other": "Remove Apps?"

View File

@@ -314,6 +314,7 @@
"appVerifierInstructionToast": "Comparta con AppVerifier y vuelva aquí cuando esté listo.", "appVerifierInstructionToast": "Comparta con AppVerifier y vuelva aquí cuando esté listo.",
"wiki": "Ayuda/Wiki", "wiki": "Ayuda/Wiki",
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (uso bajo su propia responsabilidad)", "crowdsourcedConfigsLabel": "Crowdsourced App Configurations (uso bajo su propia responsabilidad)",
"allowInsecure": "Permitir peticiones HTTP inseguras",
"removeAppQuestion": { "removeAppQuestion": {
"one": "¿Eliminar aplicación?", "one": "¿Eliminar aplicación?",
"other": "¿Eliminar aplicaciones?" "other": "¿Eliminar aplicaciones?"

View File

@@ -22,9 +22,9 @@
"requiredInBrackets": "(ضروری)", "requiredInBrackets": "(ضروری)",
"dropdownNoOptsError": "خطا: کشویی باید حداقل یک گزینه داشته باشد", "dropdownNoOptsError": "خطا: کشویی باید حداقل یک گزینه داشته باشد",
"colour": "رنگ", "colour": "رنگ",
"standard": "Standard", "standard": "استاندارد",
"custom": "Custom", "custom": "سفارشی",
"useMaterialYou": "Use Material You", "useMaterialYou": "از Material You استفاده کنید",
"githubStarredRepos": "مخازن ستاره دار گیتهاب", "githubStarredRepos": "مخازن ستاره دار گیتهاب",
"uname": "نام کاربری", "uname": "نام کاربری",
"wrongArgNum": "تعداد آرگومان های ارائه شده اشتباه است", "wrongArgNum": "تعداد آرگومان های ارائه شده اشتباه است",
@@ -88,22 +88,22 @@
"author": "سازنده", "author": "سازنده",
"upToDateApps": "برنامه های به روز", "upToDateApps": "برنامه های به روز",
"nonInstalledApps": "برنامه های نصب نشده", "nonInstalledApps": "برنامه های نصب نشده",
"importExport": "درون ریزی/برون ریزی", "importExport": "وارد کردن/صادر کردن",
"settings": "تنظیمات", "settings": "تنظیمات",
"exportedTo": "برون ریزی به{}", "exportedTo": "صادر کردن به{}",
"obtainiumExport": "صادر کردن Obtainium", "obtainiumExport": "صادر کردن Obtainium",
"invalidInput": "ورودی نامعتبر", "invalidInput": "ورودی نامعتبر",
"importedX": "وارد شده {}", "importedX": "وارد شده {}",
"obtainiumImport": "وارد کردن Obtainium", "obtainiumImport": "وارد کردن Obtainium",
"importFromURLList": "درون ریزی از فهرست آدرس اینترنتی", "importFromURLList": "وارد کردن از فهرست آدرس اینترنتی",
"searchQuery": "جستجوی سوال", "searchQuery": "جستجوی سوال",
"appURLList": "فهرست آدرس اینترنتی برنامه", "appURLList": "فهرست آدرس اینترنتی برنامه",
"line": "خط", "line": "خط",
"searchX": "جستجو {}", "searchX": "جستجو {}",
"noResults": "نتیجه ای پیدا نشد", "noResults": "نتیجه ای پیدا نشد",
"importX": "درون ریزی {}", "importX": " وارد کردن {}",
"importedAppsIdDisclaimer": "ممکن است برنامه‌های وارد شده به اشتباه به‌عنوان \"نصب نشده\" نشان داده شوند.\nبرای رفع این مشکل، آنها را دوباره از طریق Obtainium نصب کنید.\nاین نباید روی داده‌های برنامه تأثیر بگذارد.\n\nفقط بر روی آدرس اینترنتی و روش‌های درون ریزی شخص ثالث تأثیر می‌گذارد.", "importedAppsIdDisclaimer": "ممکن است برنامه‌های وارد شده به اشتباه به‌عنوان \"نصب نشده\" نشان داده شوند.\nبرای رفع این مشکل، آنها را دوباره از طریق Obtainium نصب کنید.\nاین نباید روی داده‌های برنامه تأثیر بگذارد.\n\nفقط بر روی آدرس اینترنتی و روش‌های درون ریزی شخص ثالث تأثیر می‌گذارد.",
"importErrors": "خطاهای درون ریزی", "importErrors": "خطاهای وارد کردن",
"importedXOfYApps": "{} از {} برنامه وارد شد.", "importedXOfYApps": "{} از {} برنامه وارد شد.",
"followingURLsHadErrors": "آدرس های اینترنتی زیر دارای خطا بودند:", "followingURLsHadErrors": "آدرس های اینترنتی زیر دارای خطا بودند:",
"selectURL": "آدرس اینترنتی انتخاب شده", "selectURL": "آدرس اینترنتی انتخاب شده",
@@ -135,7 +135,7 @@
"close": "بستن", "close": "بستن",
"share": "اشتراک گذاری", "share": "اشتراک گذاری",
"appNotFound": "برنامه پیدا نشد", "appNotFound": "برنامه پیدا نشد",
"obtainiumExportHyphenatedLowercase": "برون ریزی-obtainium", "obtainiumExportHyphenatedLowercase": "صادر کردن-obtainium",
"pickAnAPK": "یک APK انتخاب کنید", "pickAnAPK": "یک APK انتخاب کنید",
"appHasMoreThanOnePackage": "{} بیش از یک بسته دارد:", "appHasMoreThanOnePackage": "{} بیش از یک بسته دارد:",
"deviceSupportsXArch": "دستگاه شما از معماری پردازنده {} پشتیبانی میکند", "deviceSupportsXArch": "دستگاه شما از معماری پردازنده {} پشتیبانی میکند",
@@ -216,7 +216,7 @@
"releaseDateAsVersionExplanation": "این گزینه فقط باید برای برنامه هایی استفاده شود که تشخیص نسخه به درستی کار نمی کند، اما تاریخ انتشار در دسترس است.", "releaseDateAsVersionExplanation": "این گزینه فقط باید برای برنامه هایی استفاده شود که تشخیص نسخه به درستی کار نمی کند، اما تاریخ انتشار در دسترس است.",
"changes": "تغییرات", "changes": "تغییرات",
"releaseDate": "تاریخ انتشار", "releaseDate": "تاریخ انتشار",
"importFromURLsInFile": "درون ریزی از آدرس های اینترنتی موجود در فایل (مانند OPML)", "importFromURLsInFile": "وارد کردن از آدرس های اینترنتی موجود در فایل (مانند OPML)",
"versionDetectionExplanation": "تطبیق رشته نسخه با نسخه شناسایی شده از سیستم عامل", "versionDetectionExplanation": "تطبیق رشته نسخه با نسخه شناسایی شده از سیستم عامل",
"versionDetection": "تشخیص نسخه", "versionDetection": "تشخیص نسخه",
"standardVersionDetection": "تشخیص نسخه استاندارد", "standardVersionDetection": "تشخیص نسخه استاندارد",
@@ -259,12 +259,12 @@
"bgUpdatesOnWiFiOnly": "به‌روزرسانی‌های پس‌زمینه را در صورت عدم اتصال به WiFi غیرفعال کنید", "bgUpdatesOnWiFiOnly": "به‌روزرسانی‌های پس‌زمینه را در صورت عدم اتصال به WiFi غیرفعال کنید",
"autoSelectHighestVersionCode": "انتخاب خودکار بالاترین نسخه کد APK", "autoSelectHighestVersionCode": "انتخاب خودکار بالاترین نسخه کد APK",
"versionExtractionRegEx": "نسخه استخراج RegEx", "versionExtractionRegEx": "نسخه استخراج RegEx",
"trimVersionString": "Trim Version String With RegEx", "trimVersionString": "برش رشته نسخه با RegEx",
"matchGroupToUseForX": "Match Group to Use for \"{}\"", "matchGroupToUseForX": "مطابقت دادن گروه برای استفاده برای \"{}\"",
"matchGroupToUse": "گروه مورد استفاده را مطابقت دهید", "matchGroupToUse": "گروه مورد استفاده را مطابقت دهید",
"highlightTouchTargets": "اهداف لمسی کمتر واضح را برجسته کنید", "highlightTouchTargets": "اهداف لمسی کمتر واضح را برجسته کنید",
"pickExportDir": "فهرست برون ریزی را انتخاب کنید", "pickExportDir": "فهرست صادر کردن را انتخاب کنید",
"autoExportOnChanges": "برون ریزی خودکار تغییرات", "autoExportOnChanges": "صادر کردن خودکار تغییرات",
"includeSettings": "شامل تنظیمات", "includeSettings": "شامل تنظیمات",
"filterVersionsByRegEx": "فیلتر کردن نسخه ها با RegEx", "filterVersionsByRegEx": "فیلتر کردن نسخه ها با RegEx",
"trySelectingSuggestedVersionCode": "نسخه پیشنهادی APK نسخه کد را انتخاب کنید", "trySelectingSuggestedVersionCode": "نسخه پیشنهادی APK نسخه کد را انتخاب کنید",
@@ -290,11 +290,11 @@
"supportFixedAPKURL": "پشتیبانی از URL های APK ثابت", "supportFixedAPKURL": "پشتیبانی از URL های APK ثابت",
"selectX": "انتخاب کنید {}", "selectX": "انتخاب کنید {}",
"parallelDownloads": "اجازه دانلود موازی", "parallelDownloads": "اجازه دانلود موازی",
"useShizuku": "Use Shizuku or Sui to install", "useShizuku": "برای نصب از Shizuku یا Sui استفاده کنید",
"shizukuBinderNotFound": "Shizuku در حال اجرا نیست", "shizukuBinderNotFound": "Shizuku در حال اجرا نیست",
"shizukuOld": "Old Shizuku version (<11) - update it", "shizukuOld": "نسخه قدیمی Shizuku (<11) - آن را به روز کنید",
"shizukuOldAndroidWithADB": "Shizuku running on Android < 8.1 with ADB - update Android or use Sui instead", "shizukuOldAndroidWithADB": "Shizuku در Android < 8.1 با ADB اجرا می شود - اندروید را به روز کنید یا به جای آن از Sui استفاده کنید",
"shizukuPretendToBeGooglePlay": "Set Google Play as the installation source (if Shizuku is used)", "shizukuPretendToBeGooglePlay": "Google Play را به عنوان منبع نصب تنظیم کنید (در صورت استفاده از Shizuku)",
"useSystemFont": "استفاده از فونت سیستم", "useSystemFont": "استفاده از فونت سیستم",
"useVersionCodeAsOSVersion": "استفاده کد نسخه برنامه به جای نسخه شناسایی شده توسط سیستم عامل استفاده کنید", "useVersionCodeAsOSVersion": "استفاده کد نسخه برنامه به جای نسخه شناسایی شده توسط سیستم عامل استفاده کنید",
"requestHeader": "درخواست سطر بالایی", "requestHeader": "درخواست سطر بالایی",
@@ -314,6 +314,7 @@
"appVerifierInstructionToast": "در AppVerifier به اشتراک بگذارید، سپس پس از آماده شدن به اینجا برگردید.", "appVerifierInstructionToast": "در AppVerifier به اشتراک بگذارید، سپس پس از آماده شدن به اینجا برگردید.",
"wiki": "راهنما/ویکی", "wiki": "راهنما/ویکی",
"crowdsourcedConfigsLabel": "تنظیمات برنامه Crowdsourced (با مسئولیت خود استفاده کنید)", "crowdsourcedConfigsLabel": "تنظیمات برنامه Crowdsourced (با مسئولیت خود استفاده کنید)",
"allowInsecure": "درخواست های HTTP ناامن را مجاز کنید",
"removeAppQuestion": { "removeAppQuestion": {
"one": "برنامه حذف شود؟", "one": "برنامه حذف شود؟",
"other": "برنامه ها حذف شوند؟" "other": "برنامه ها حذف شوند؟"

View File

@@ -1,5 +1,5 @@
{ {
"invalidURLForSource": "URL de l'application {} n'es pas valide", "invalidURLForSource": "URL de l'application {} invalide",
"noReleaseFound": "Impossible de trouver une publication correspondante", "noReleaseFound": "Impossible de trouver une publication correspondante",
"noVersionFound": "Impossible de déterminer la version de la publication", "noVersionFound": "Impossible de déterminer la version de la publication",
"urlMatchesNoSource": "L'URL ne correspond pas à une source connue", "urlMatchesNoSource": "L'URL ne correspond pas à une source connue",
@@ -7,7 +7,7 @@
"appIdMismatch": "L'ID du paquet téléchargé ne correspond pas à l'ID de l'application existante", "appIdMismatch": "L'ID du paquet téléchargé ne correspond pas à l'ID de l'application existante",
"functionNotImplemented": "Cette classe n'implémente pas cette fonction", "functionNotImplemented": "Cette classe n'implémente pas cette fonction",
"placeholder": "Espace réservé", "placeholder": "Espace réservé",
"someErrors": "Des erreurs se sont produites", "someErrors": "Des erreurs sont survenues",
"unexpectedError": "Erreur inattendue", "unexpectedError": "Erreur inattendue",
"ok": "Ok", "ok": "Ok",
"and": "et", "and": "et",
@@ -20,7 +20,7 @@
"cancel": "Annuler", "cancel": "Annuler",
"continue": "Continuer", "continue": "Continuer",
"requiredInBrackets": "(Requis)", "requiredInBrackets": "(Requis)",
"dropdownNoOptsError": "ERREUR: LE DÉROULEMENT DOIT AVOIR AU MOINS UNE OPT", "dropdownNoOptsError": "ERREUR: LA LISTE DÉROULANTE DOIT AVOIR AU MOINS UNE OPTION",
"colour": "Couleur", "colour": "Couleur",
"standard": "Standard", "standard": "Standard",
"custom": "Personnalisé", "custom": "Personnalisé",
@@ -33,10 +33,10 @@
"app": "Application", "app": "Application",
"appsFromSourceAreTrackOnly": "Les applications de cette source sont en 'Suivi uniquement'.", "appsFromSourceAreTrackOnly": "Les applications de cette source sont en 'Suivi uniquement'.",
"youPickedTrackOnly": "Vous avez sélectionné l'option 'Suivi uniquement'.", "youPickedTrackOnly": "Vous avez sélectionné l'option 'Suivi uniquement'.",
"trackOnlyAppDescription": "L'application sera suivie pour les mises à jour, mais Obtainium ne pourra pas le télécharger ou l'installer.", "trackOnlyAppDescription": "L'application sera suivie pour les mises à jour, mais Obtainium ne pourra pas la télécharger ou l'installer.",
"cancelled": "Annulé", "cancelled": "Annulé",
"appAlreadyAdded": "L'application a déjà été ajoutée", "appAlreadyAdded": "Application déjà ajoutée",
"alreadyUpToDateQuestion": "L'application est déjà à jour ?", "alreadyUpToDateQuestion": "L'application est à jour?",
"addApp": "Ajouter Appli", "addApp": "Ajouter Appli",
"appSourceURL": "URL source de l'application", "appSourceURL": "URL source de l'application",
"error": "Erreur", "error": "Erreur",
@@ -48,8 +48,8 @@
"trackOnlyInBrackets": "(Suivi uniquement)", "trackOnlyInBrackets": "(Suivi uniquement)",
"searchableInBrackets": "(Interrogeable)", "searchableInBrackets": "(Interrogeable)",
"appsString": "Applications", "appsString": "Applications",
"noApps": "Aucune applications", "noApps": "Aucune application",
"noAppsForFilter": "Aucune application à Filtrer", "noAppsForFilter": "Aucune application à filtrer",
"byX": "Par {}", "byX": "Par {}",
"percentProgress": "Progression : {}%", "percentProgress": "Progression : {}%",
"pleaseWait": "Veuillez patienter", "pleaseWait": "Veuillez patienter",
@@ -60,7 +60,7 @@
"deselectX": "Déselectionner {}", "deselectX": "Déselectionner {}",
"xWillBeRemovedButRemainInstalled": "{} sera supprimée d'Obtainium mais restera installée sur l'appareil.", "xWillBeRemovedButRemainInstalled": "{} sera supprimée d'Obtainium mais restera installée sur l'appareil.",
"removeSelectedAppsQuestion": "Supprimer les applications sélectionnées ?", "removeSelectedAppsQuestion": "Supprimer les applications sélectionnées ?",
"removeSelectedApps": "Les applications sélectionnées ont étés supprimés", "removeSelectedApps": "Les applications sélectionnées ont été supprimées",
"updateX": "Mettre à jour {}", "updateX": "Mettre à jour {}",
"installX": "Installer {}", "installX": "Installer {}",
"markXTrackOnlyAsUpdated": "Marquer {}\n(Suivi uniquement)\ncomme étant à jour", "markXTrackOnlyAsUpdated": "Marquer {}\n(Suivi uniquement)\ncomme étant à jour",
@@ -78,7 +78,7 @@
"customLinkMessage": "Ces liens fonctionnent sur les appareils sur lesquels Obtainium est installé", "customLinkMessage": "Ces liens fonctionnent sur les appareils sur lesquels Obtainium est installé",
"shareAppConfigLinks": "Partager la configuration de l'application sous forme de lien HTML", "shareAppConfigLinks": "Partager la configuration de l'application sous forme de lien HTML",
"shareSelectedAppURLs": "Partager les URL des applications sélectionnées", "shareSelectedAppURLs": "Partager les URL des applications sélectionnées",
"resetInstallStatus": "L'état d'installation des applications ont étés réinitialisés", "resetInstallStatus": "L'état d'installation des applications a été réinitialisé",
"more": "Plus", "more": "Plus",
"removeOutdatedFilter": "Supprimer le filtre des applications obsolètes", "removeOutdatedFilter": "Supprimer le filtre des applications obsolètes",
"showOutdatedOnly": "Afficher uniquement les applications obsolètes", "showOutdatedOnly": "Afficher uniquement les applications obsolètes",
@@ -94,17 +94,17 @@
"obtainiumExport": "Exporter Obtainium", "obtainiumExport": "Exporter Obtainium",
"invalidInput": "Entrée invalide", "invalidInput": "Entrée invalide",
"importedX": "Importé {}", "importedX": "Importé {}",
"obtainiumImport": "Importer Obtainium", "obtainiumImport": "Importer sur Obtainium",
"importFromURLList": "Importer depuis une liste d'URL", "importFromURLList": "Importer depuis une liste d'URL",
"searchQuery": "Requête de recherche", "searchQuery": "Requête de recherche",
"appURLList": "Liste d'URL de l'application", "appURLList": "Liste d'URL de l'application",
"line": "File d'attente", "line": "Ligne",
"searchX": "Rechercher {}", "searchX": "Rechercher {}",
"noResults": "Aucun résultat", "noResults": "Aucun résultat",
"importX": "Importer {}", "importX": "Importation de {}",
"importedAppsIdDisclaimer": "Les applications importées peuvent s'afficher de manière incorrecte comme \"Non installées\".\nPour résoudre ce problème, réinstallez-les via Obtainium.\nCela n'affectera pas les données des applications. Cela n'affecte que la méthode d'importation par URL et par des tiers.", "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 d'importation", "importErrors": "Erreurs lors de l'importation",
"importedXOfYApps": "{} applications sur {} ont étés importées.", "importedXOfYApps": "{} applications sur {} ont été importés.",
"followingURLsHadErrors": "Les URL suivants comportent des erreurs :", "followingURLsHadErrors": "Les URL suivants comportent des erreurs :",
"selectURL": "Sélectionner l'URL", "selectURL": "Sélectionner l'URL",
"selectURLs": "Sélectionner les URL", "selectURLs": "Sélectionner les URL",
@@ -125,18 +125,18 @@
"bgUpdateCheckInterval": "Intervalle de recherche de mises à jour en arrière-plan", "bgUpdateCheckInterval": "Intervalle de recherche de mises à jour en arrière-plan",
"neverManualOnly": "Jamais - Manuellement uniquement", "neverManualOnly": "Jamais - Manuellement uniquement",
"appearance": "Apparence", "appearance": "Apparence",
"showWebInAppView": "Afficher la page Web source dans la vue Applications", "showWebInAppView": "Afficher la page Web source dans l'onglet 'Applications'",
"pinUpdates": "Épingler les mises à jour en haut de la vue Applications", "pinUpdates": "Épingler les mises à jour en haut de l'onglet 'Applications'",
"updates": "Mises à jour", "updates": "Mises à jour",
"sourceSpecific": "Spécifique à la source", "sourceSpecific": "Spécifique à la source",
"appSource": "Source de l'application", "appSource": "Source de l'application",
"noLogs": "Aucun journal", "noLogs": "Aucun journal",
"appLogs": "Journaux d'applications", "appLogs": "Journaux d'application",
"close": "Fermer", "close": "Fermer",
"share": "Partager", "share": "Partager",
"appNotFound": "Application introuvable", "appNotFound": "Application introuvable",
"obtainiumExportHyphenatedLowercase": "export-obtainium", "obtainiumExportHyphenatedLowercase": "export-obtainium",
"pickAnAPK": "Selectionner une APK", "pickAnAPK": "Selectionner un APK",
"appHasMoreThanOnePackage": "{} a plus d'un paquet:", "appHasMoreThanOnePackage": "{} a plus d'un paquet:",
"deviceSupportsXArch": "Votre appareil prend en charge l'architecture CPU {}.", "deviceSupportsXArch": "Votre appareil prend en charge l'architecture CPU {}.",
"deviceSupportsFollowingArchs": "Votre appareil prend en charge les architectures CPU suivants: ", "deviceSupportsFollowingArchs": "Votre appareil prend en charge les architectures CPU suivants: ",
@@ -148,7 +148,7 @@
"xHasAnUpdate": "{} a une mise à jour.", "xHasAnUpdate": "{} a une mise à jour.",
"appsUpdated": "Applications mises à jour", "appsUpdated": "Applications mises à jour",
"appsNotUpdated": "Échec de la mise à jour des applications", "appsNotUpdated": "Échec de la mise à jour des applications",
"appsUpdatedNotifDescription": "Notifie à l'utilisateur que des mises à jour d'une ou plusieurs applications ont été installés en arrière-plan.", "appsUpdatedNotifDescription": "Notifie à l'utilisateur que des mises à jour d'une ou plusieurs applications ont été installées en arrière-plan.",
"xWasUpdatedToY": "{} a été mis à jour en {}.", "xWasUpdatedToY": "{} a été mis à jour en {}.",
"xWasNotUpdatedToY": "Échec de la mise à jour de {} vers {}.", "xWasNotUpdatedToY": "Échec de la mise à jour de {} vers {}.",
"errorCheckingUpdates": "Erreur lors de la recherche de mises à jour", "errorCheckingUpdates": "Erreur lors de la recherche de mises à jour",
@@ -172,14 +172,14 @@
"installedVersionX": "Version installée : {}", "installedVersionX": "Version installée : {}",
"lastUpdateCheckX": "Dernière recherche de mises à jour : {}", "lastUpdateCheckX": "Dernière recherche de mises à jour : {}",
"remove": "Supprimer", "remove": "Supprimer",
"yesMarkUpdated": "Oui, Marquer comme étant à jour", "yesMarkUpdated": "Oui, marquer comme étant à jour",
"fdroid": "F-Droid Officiel", "fdroid": "F-Droid Officiel",
"appIdOrName": "ID ou nom de l'application", "appIdOrName": "ID ou nom de l'application",
"appId": "ID de l'application", "appId": "ID de l'application",
"appWithIdOrNameNotFound": "Aucune application n'a été trouvée avec cet identifiant ou ce nom", "appWithIdOrNameNotFound": "Aucune application n'a été trouvée avec cet identifiant ou ce nom",
"reposHaveMultipleApps": "Les dépôts peuvent contenir plusieurs applications", "reposHaveMultipleApps": "Les dépôts peuvent contenir plusieurs applications",
"fdroidThirdPartyRepo": "Dépôt tiers F-Droid", "fdroidThirdPartyRepo": "Dépôt tiers F-Droid",
"steamMobile": "Steam Mobile", "steamMobile": "Application mobile Steam",
"steamChat": "Steam Chat", "steamChat": "Steam Chat",
"install": "Installer", "install": "Installer",
"markInstalled": "Marquer comme étant installé", "markInstalled": "Marquer comme étant installé",
@@ -191,16 +191,16 @@
"downloadingX": "Téléchargement {}", "downloadingX": "Téléchargement {}",
"downloadX": "Télécharger {}", "downloadX": "Télécharger {}",
"downloadedX": "Téléchargé {}", "downloadedX": "Téléchargé {}",
"releaseAsset": "Version actif", "releaseAsset": "Version active",
"downloadNotifDescription": "Notifie l'utilisateur sur l'avancement du téléchargement d'une application", "downloadNotifDescription": "Notifie l'utilisateur sur l'avancement du téléchargement d'une application",
"noAPKFound": "Aucun APK trouvé", "noAPKFound": "Aucun APK trouvé",
"noVersionDetection": "Aucune version trouvée", "noVersionDetection": "Aucune version trouvée",
"categorize": "Catégoriser", "categorize": "Catégoriser",
"categories": "Catégories", "categories": "Catégories",
"category": "Catégorie", "category": "Catégorie",
"noCategory": "Aucune Catégorie", "noCategory": "Aucune catégorie",
"noCategories": "Aucune Catégories", "noCategories": "Aucune catégories",
"deleteCategoriesQuestion": "Supprimer les Catégories ?", "deleteCategoriesQuestion": "Supprimer les catégories?",
"categoryDeleteWarning": "Toutes les applications des catégories supprimées seront définies comme non catégorisées .", "categoryDeleteWarning": "Toutes les applications des catégories supprimées seront définies comme non catégorisées .",
"addCategory": "Ajouter une catégorie", "addCategory": "Ajouter une catégorie",
"label": "Nom", "label": "Nom",
@@ -213,20 +213,20 @@
"uninstallFromDevice": "Désinstaller de l'appareil", "uninstallFromDevice": "Désinstaller de l'appareil",
"onlyWorksWithNonVersionDetectApps": "Ne fonctionne que pour les applications dont la détection de la version est désactivée.", "onlyWorksWithNonVersionDetectApps": "Ne fonctionne que pour les applications dont la détection de la version est désactivée.",
"releaseDateAsVersion": "Utiliser la date de sortie comme version", "releaseDateAsVersion": "Utiliser la date de sortie comme version",
"releaseDateAsVersionExplanation": "Cette option ne doit être utilisée que pour les applications pour lesquelles la détection de la version ne fonctionne pas correctement, mais pour lesquelles une date de sortie est disponible.", "releaseDateAsVersionExplanation": "Cette option ne doit être utilisée que pour les applications pour lesquelles la détection de la version ne fonctionne pas correctement, mais dont une date de sortie est disponible.",
"changes": "Correctifs", "changes": "Modifications",
"releaseDate": "Date de sortie", "releaseDate": "Date de sortie",
"importFromURLsInFile": "Importer à partir des URLs d'un fichier (Comme OPML)", "importFromURLsInFile": "Importer à partir des URLs d'un fichier (comme OPML)",
"versionDetectionExplanation": "Reporter la chaîne de version par la version détectée par le système d'exploitation", "versionDetectionExplanation": "Reporter la chaîne de version selon la version détectée par le système d'exploitation",
"versionDetection": "Détection de la version", "versionDetection": "Détection de la version",
"standardVersionDetection": "Détection de la version standard", "standardVersionDetection": "Détection de la version standard",
"groupByCategory": "Grouper par Catégorie", "groupByCategory": "Grouper par catégorie",
"autoApkFilterByArch": "Essayer de filtrer les APKs par architecture CPU si possible", "autoApkFilterByArch": "Essayer de filtrer les APKs par architecture CPU si possible",
"overrideSource": "Remplacer la source", "overrideSource": "Remplacer la source",
"dontShowAgain": "Ne plus afficher", "dontShowAgain": "Ne plus afficher",
"dontShowTrackOnlyWarnings": "Ne plus afficher les erreurs 'Suivi uniquement'", "dontShowTrackOnlyWarnings": "Ne plus afficher les erreurs 'Suivi uniquement'",
"dontShowAPKOriginWarnings": "Ne plus afficher les erreurs sur l'origine de l'APK", "dontShowAPKOriginWarnings": "Ne plus afficher les erreurs sur l'origine de l'APK",
"moveNonInstalledAppsToBottom": "Déplacer les applications non installés vers le bas de la vue Applications", "moveNonInstalledAppsToBottom": "Déplacer les applications non installées vers le bas de la vue Applications",
"gitlabPATLabel": "Jeton d'accès personnel GitLab", "gitlabPATLabel": "Jeton d'accès personnel GitLab",
"about": "À propos", "about": "À propos",
"requiresCredentialsInSettings": "{} a besoin d'un complément d'information (dans les Paramètres)", "requiresCredentialsInSettings": "{} a besoin d'un complément d'information (dans les Paramètres)",
@@ -263,18 +263,18 @@
"matchGroupToUseForX": "Groupe de correspondance à utiliser pour \"{}\"", "matchGroupToUseForX": "Groupe de correspondance à utiliser pour \"{}\"",
"matchGroupToUse": "Groupe de correspondance à utiliser pour l'extraction de la version par Expression régulière", "matchGroupToUse": "Groupe de correspondance à utiliser pour l'extraction de la version par Expression régulière",
"highlightTouchTargets": "Mettre en évidence les touches moins évidentes", "highlightTouchTargets": "Mettre en évidence les touches moins évidentes",
"pickExportDir": "Selectionner le dossier pour l'exportation", "pickExportDir": "Selectionner le dossier d'exportation",
"autoExportOnChanges": "Exportation automatique lors de modification", "autoExportOnChanges": "Exporter automatiquement lors de modifications",
"includeSettings": "Inclure les paramètres", "includeSettings": "Inclure les paramètres",
"filterVersionsByRegEx": "Filtrer les versions par expression régulière", "filterVersionsByRegEx": "Filtrer les versions par expression régulière",
"trySelectingSuggestedVersionCode": "Essayez de sélectionner la version suggérée du Code APK", "trySelectingSuggestedVersionCode": "Essayer de sélectionner la version suggérée du code APK",
"dontSortReleasesList": "Conserver l'ordre de la version de l'API", "dontSortReleasesList": "Conserver l'ordre de la version de l'API",
"reverseSort": "Tri inversé", "reverseSort": "Tri inversé",
"takeFirstLink": "Utiliser le premier lien", "takeFirstLink": "Utiliser le premier lien",
"skipSort": "Ignorer le tri", "skipSort": "Ignorer le tri",
"debugMenu": "Menu de déboggage", "debugMenu": "Menu de déboggage",
"bgTaskStarted": "Tâche en arrière plan démarrée - vérifier les journaux.", "bgTaskStarted": "Tâche en arrière-plan démarrée - vérifier les journaux.",
"runBgCheckNow": "Exécuter la recherche de la mise à jour en l'arrière-plan maintenant", "runBgCheckNow": "Exécuter la recherche de mise à jour en arrière-plan maintenant",
"versionExtractWholePage": "Appliquer l'extraction de la version par expression régulière à l'ensemble de la page", "versionExtractWholePage": "Appliquer l'extraction de la version par expression régulière à l'ensemble de la page",
"installing": "Installation", "installing": "Installation",
"skipUpdateNotifications": "Ignorer les notifications de mise à jour", "skipUpdateNotifications": "Ignorer les notifications de mise à jour",
@@ -288,10 +288,10 @@
"checkingForUpdatesNotifChannel": "Recherche de mises à jour", "checkingForUpdatesNotifChannel": "Recherche de mises à jour",
"onlyCheckInstalledOrTrackOnlyApps": "Rechercher uniquement les mises à jour des applications installées et des applications 'Suivi uniquement'", "onlyCheckInstalledOrTrackOnlyApps": "Rechercher uniquement les mises à jour des applications installées et des applications 'Suivi uniquement'",
"supportFixedAPKURL": "Prise en charge des URL APK fixes", "supportFixedAPKURL": "Prise en charge des URL APK fixes",
"selectX": "Selectionner {}", "selectX": "Sélectionner {}",
"parallelDownloads": "Autoriser les téléchargements simultanés", "parallelDownloads": "Autoriser les téléchargements simultanés",
"useShizuku": "Utiliser Shizuku ou Sui pour l'installation", "useShizuku": "Utiliser Shizuku ou Sui pour l'installation",
"shizukuBinderNotFound": "Le service Shizuku n'es pas démarré", "shizukuBinderNotFound": "Le service Shizuku est introuvable",
"shizukuOld": "Ancienne version de Shizuku (<11) - veuillez le mettre à jour", "shizukuOld": "Ancienne version de Shizuku (<11) - veuillez le mettre à jour",
"shizukuOldAndroidWithADB": "Shizuku fonctionne sur Android < 8.1 avec ADB - veuillez mettre à jour Android ou utiliser Sui à la place", "shizukuOldAndroidWithADB": "Shizuku fonctionne sur Android < 8.1 avec ADB - veuillez mettre à jour Android ou utiliser Sui à la place",
"shizukuPretendToBeGooglePlay": "Définir Google Play comme source d'installation (si Shizuku est utilisé)", "shizukuPretendToBeGooglePlay": "Définir Google Play comme source d'installation (si Shizuku est utilisé)",
@@ -299,7 +299,7 @@
"useVersionCodeAsOSVersion": "Utiliser le code de version de l'application détectée par le système d'exploitation", "useVersionCodeAsOSVersion": "Utiliser le code de version de l'application détectée par le système d'exploitation",
"requestHeader": "Intitulé de la demande", "requestHeader": "Intitulé de la demande",
"useLatestAssetDateAsReleaseDate": "Utiliser le dernier élément mis en ligne comme date de sortie", "useLatestAssetDateAsReleaseDate": "Utiliser le dernier élément mis en ligne comme date de sortie",
"defaultPseudoVersioningMethod": "Methode de version fictive par défaut", "defaultPseudoVersioningMethod": "Méthode de version fictive par défaut",
"partialAPKHash": "Hash partiel de l'APK", "partialAPKHash": "Hash partiel de l'APK",
"APKLinkHash": "Hash du lien APK", "APKLinkHash": "Hash du lien APK",
"directAPKLink": "Lien direct de l'APK", "directAPKLink": "Lien direct de l'APK",
@@ -308,12 +308,13 @@
"latest": "Dernière version", "latest": "Dernière version",
"invertRegEx": "Inverser l'expression régulière", "invertRegEx": "Inverser l'expression régulière",
"note": "Note", "note": "Note",
"selfHostedNote": "La liste déroulante \"{}\" peut être utilisé pour accéder à des instances auto-hébergées/personnalisées de n'importe quelle source.", "selfHostedNote": "La liste déroulante \"{}\" peut être utilisée pour accéder à des instances auto-hébergées/personnalisées de n'importe quelle source.",
"badDownload": "L'APK n'a pas pu être analysé (téléchargement incompatible ou partiel)", "badDownload": "L'APK n'a pas pu être analysé (téléchargement incompatible ou partiel)",
"beforeNewInstallsShareToAppVerifier": "Partager les nouvelles applications avec AppVerifier (si disponible)", "beforeNewInstallsShareToAppVerifier": "Partager les nouvelles applications avec AppVerifier (si disponible)",
"appVerifierInstructionToast": "Partagez avec AppVerifier, puis revenez ici lorsque tout est prêt.", "appVerifierInstructionToast": "Partagez avec AppVerifier, puis revenez ici lorsque tout est prêt.",
"wiki": "Aide/Wiki", "wiki": "Aide/Wiki",
"crowdsourcedConfigsLabel": "Configurations d'applications par la communauté (à utiliser à vos risques et périls)", "crowdsourcedConfigsLabel": "Configurations d'applications par la communauté (à utiliser à vos risques et périls)",
"allowInsecure": "Autoriser les requêtes HTTP non sécurisées",
"removeAppQuestion": { "removeAppQuestion": {
"one": "Supprimer l'application?", "one": "Supprimer l'application?",
"other": "Supprimer les applications?" "other": "Supprimer les applications?"
@@ -359,7 +360,7 @@
"other": "{} et {} autres applications ont des mises à jour." "other": "{} et {} autres applications ont des mises à jour."
}, },
"xAndNMoreUpdatesInstalled": { "xAndNMoreUpdatesInstalled": {
"one": "{} et 1 autre application ont étés mis à jour.", "one": "{} et 1 autre application ont été mises à jour.",
"other": "{} et {} autres applications ont étés mis à jour." "other": "{} et {} autres applications ont étés mis à jour."
}, },
"xAndNMoreUpdatesFailed": { "xAndNMoreUpdatesFailed": {
@@ -367,7 +368,7 @@
"other": "Échec de la mise à jour de {} et {} autres applications." "other": "Échec de la mise à jour de {} et {} autres applications."
}, },
"xAndNMoreUpdatesPossiblyInstalled": { "xAndNMoreUpdatesPossiblyInstalled": {
"one": "{} et 1 autre application ont peut-être étés mis à jour.", "one": "{} et 1 autre application ont peut-être été mises à jour.",
"other": "{} et {} autres applications ont peut-être étés mis à jour." "other": "{} et {} autres applications ont peut-être étés mis à jour."
}, },
"apk": { "apk": {

View File

@@ -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", "noReleaseFound": "Nem található megfelelő kiadás",
"noVersionFound": "Nem sikerült meghatározni a kiadás verzióját", "noVersionFound": "Nem sikerült meghatározni a kiadás verzióját",
"urlMatchesNoSource": "Az URL nem egyezik ismert forrással", "urlMatchesNoSource": "A webcím nem egyezik egyetlen ismert forrással sem",
"cantInstallOlderVersion": "Nem telepíthető egy app régebbi verziója", "cantInstallOlderVersion": "Nem telepíthető egy alkalmazás régebbi verziója",
"appIdMismatch": "A letöltött csomagazonosító nem egyezik a meglévő app azonosítóval", "appIdMismatch": "A letöltött csomagazonosító nem egyezik a meglévő alkalmazás azonosítóval",
"functionNotImplemented": "Ez az osztály nem valósította meg ezt a függvényt", "functionNotImplemented": "Ebben az ágban nincs implementálva ez a funkció",
"placeholder": "Helykitöltő", "placeholder": "Helyőrző",
"someErrors": "Néhány hiba történt", "someErrors": "Néhány hiba történt",
"unexpectedError": "Váratlan hiba", "unexpectedError": "Váratlan hiba",
"ok": "Oké", "ok": "Rendben",
"and": "és", "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", "includePrereleases": "Tartalmazza az előzetes kiadásokat",
"fallbackToOlderReleases": "Visszatérés a régebbi kiadásokhoz", "fallbackToOlderReleases": "Visszatérés a régebbi kiadásokhoz",
"filterReleaseTitlesByRegEx": "A kiadás címeinek szűrése reguláris kifejezéssel", "filterReleaseTitlesByRegEx": "A kiadás címeinek szűrése reguláris kifejezéssel",
"invalidRegEx": "Érvénytelen reguláris kifejezés", "invalidRegEx": "Érvénytelen reguláris kifejezés",
"noDescription": "Nincs leírás", "noDescription": "Nincs leírás",
"cancel": "Mégse", "cancel": "Mégse",
"continue": "Tovább", "continue": "Folytatás",
"requiredInBrackets": "(Kötelező)", "requiredInBrackets": "(Szükséges)",
"dropdownNoOptsError": "HIBA: A LEDOBÁST LEGALÁBB EGY OPCIÓHOZ KELL RENDELNI", "dropdownNoOptsError": "HIBA: A LEGÖRDÜLŐ LISTÁNAK LEGALÁBB EGY OPCIÓVAL KELL RENDELKEZNIE",
"colour": "Szín", "colour": "Szín",
"standard": "Standard", "standard": "Általános",
"custom": "Custom", "custom": "Egyéni",
"useMaterialYou": "Használja az Ön által használt anyagot", "useMaterialYou": "Material You használata",
"githubStarredRepos": "GitHub Csillagos Repo-k", "githubStarredRepos": "Csillagozott GitHub tárolók",
"uname": "Felh.név", "uname": "Felhasználónév",
"wrongArgNum": "Rossz számú argumentumot adott meg", "wrongArgNum": "A megadott argumentumok száma nem megfelelő",
"xIsTrackOnly": "A(z) {} csak nyomonkövethető", "xIsTrackOnly": "A(z) {} csak nyomonkövethető",
"source": "Forrás", "source": "Forrás",
"app": "Alkalmazás", "app": "Alkalmazás",
"appsFromSourceAreTrackOnly": "Az ebből a forrásból származó alkalmazások 'Csak nyomon követhetőek'.", "appsFromSourceAreTrackOnly": "Az ebből a forrásból származó alkalmazások „csak nyomonkövethetők”.",
"youPickedTrackOnly": "A 'Csak követés' opciót választotta.", "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.", "trackOnlyAppDescription": "Az alkalmazás frissítéseit nyomon követi, de az Obtainium nem tudja letölteni vagy telepíteni.",
"cancelled": "Törölve", "cancelled": "Visszavonva",
"appAlreadyAdded": "Az app már hozzáadva", "appAlreadyAdded": "Az alkalmazás már hozzá van adva",
"alreadyUpToDateQuestion": "Az app már naprakész?", "alreadyUpToDateQuestion": "Az alkalmazás már naprakész?",
"addApp": "App hozzáadás", "addApp": "Hozzáadás",
"appSourceURL": "App forrás URL", "appSourceURL": "Alkalmazás forrásának webcíme",
"error": "Hiba", "error": "Hiba",
"add": "Hozzáadás", "add": "Hozzáadás",
"searchSomeSourcesLabel": "Keresés (csak egyes források)", "searchSomeSourcesLabel": "Keresés (csak bizonyos források)",
"search": "Keresés", "search": "Keresés",
"additionalOptsFor": "További lehetőségek a következőhöz: {}", "additionalOptsFor": "További lehetőségek a következőhöz: {}",
"supportedSources": "Támogatott források", "supportedSources": "Támogatott források",
"trackOnlyInBrackets": "(Csak nyomonkövetés)", "trackOnlyInBrackets": "(Csak nyomonkövetés)",
"searchableInBrackets": "(Kereshető)", "searchableInBrackets": "(Kereshető)",
"appsString": "Appok", "appsString": "Alkalmazások",
"noApps": "Nincs App", "noApps": "Nincsenek alkalmazások",
"noAppsForFilter": "Nincsenek appok a szűrőhöz", "noAppsForFilter": "Nincsenek alkalmazások a szűrőhöz",
"byX": "Fejlesztő: {}", "byX": "Fejlesztő: {}",
"percentProgress": "Folyamat: {}%", "percentProgress": "Folyamat: {}%",
"pleaseWait": "Kis türelmet", "pleaseWait": "Kis türelmet",
"updateAvailable": "Frissítés érhető el", "updateAvailable": "Frissítés érhető el",
"notInstalled": "Nem telepített", "notInstalled": "Nem telepített",
"pseudoVersion": "ál-verzió", "pseudoVersion": "pszeudoverzió",
"selectAll": "Mindet kiválaszt", "selectAll": "Összes kiválasztása",
"deselectX": "Törölje {} kijelölését", "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.", "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?", "removeSelectedAppsQuestion": "A kiválasztott alkalmazások eltávolítása?",
"removeSelectedApps": "Távolítsa el a kiválasztott appokat", "removeSelectedApps": "A kiválasztott alkalmazások eltávolítása",
"updateX": "Frissítés: {}", "updateX": "A(z) {} frissítése",
"installX": "Telepítés: {}", "installX": "A(z) {} telepítése",
"markXTrackOnlyAsUpdated": "Jelölje meg: {}\n(Csak nyomon követhető)\nmint Frissített", "markXTrackOnlyAsUpdated": "Megjelölés: {}\n(Csak nyomonkövetés)\nFrissítettként",
"changeX": "Változás {}", "changeX": "{} változtatás",
"installUpdateApps": "Appok telepítése/frissítése", "installUpdateApps": "Alkalmazások telepítése/frissítése",
"installUpdateSelectedApps": "Telepítse/frissítse a kiválasztott appokat", "installUpdateSelectedApps": "A kiválasztott alkalmazások telepítése/frissítése",
"markXSelectedAppsAsUpdated": "Megjelöl {} kiválasztott alkalmazást frissítettként?", "markXSelectedAppsAsUpdated": "A(z) {} kiválasztott alkalmazás megjelölése frissítettként?",
"no": "Nem", "no": "Nem",
"yes": "Igen", "yes": "Igen",
"markSelectedAppsUpdated": "Jelölje meg a kiválasztott appokat frissítettként", "markSelectedAppsUpdated": "A kiválasztott alkalmazások megjelölése frissítettként",
"pinToTop": "Rögzítés felülre", "pinToTop": "Kitűzés felülre",
"unpinFromTop": "Eltávolít felülről", "unpinFromTop": "Kitűzés megszüntetése",
"resetInstallStatusForSelectedAppsQuestion": "Visszaállítja a kiválasztott appok telepítési állapotát?", "resetInstallStatusForSelectedAppsQuestion": "Visszaállítja a kiválasztott alkalmazások 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.", "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", "customLinkMessage": "Ezek a hivatkozások a telepített Obtainiummal rendelkező eszközökön működnek",
"shareAppConfigLinks": "App konfiguráció megosztása HTML linkként", "shareAppConfigLinks": "Alkalmazás-konfiguráció megosztása HTML-hivatkozásként",
"shareSelectedAppURLs": "Ossza meg a kiválasztott app URL címeit", "shareSelectedAppURLs": "A kiválasztott alkalmazás hivatkozásának megosztása",
"resetInstallStatus": "Telepítési állapot visszaállítása", "resetInstallStatus": "Telepítési állapot visszaállítása",
"more": "További", "more": "További",
"removeOutdatedFilter": "Távolítsa el az elavult app szűrőt", "removeOutdatedFilter": "Elavult-alkalmazás szűrő eltávolítása",
"showOutdatedOnly": "Csak az elavult appok megjelenítése", "showOutdatedOnly": "Csak az elavult alkalmazások megjelenítése",
"filter": "Szűrő", "filter": "Szűrő",
"filterApps": "Appok szűrése", "filterApps": "Alkalmazások szűrése",
"appName": "App név", "appName": "Név",
"author": "Szerző", "author": "Szerző",
"upToDateApps": "Naprakész appok", "upToDateApps": "Naprakész alkalmazások",
"nonInstalledApps": "Nem telepített appok", "nonInstalledApps": "Nem telepített alkalmazások",
"importExport": "Import Export", "importExport": "Import/Export",
"settings": "Beállítások", "settings": "Beállítások",
"exportedTo": "Exportálva ide {}", "exportedTo": "Exportálva ide: {}",
"obtainiumExport": "Obtainium Adat Exportálás", "obtainiumExport": "Obtainium adatok exportálása",
"invalidInput": "Hibás bemenet", "invalidInput": "Hibás bemenet",
"importedX": "Importálva innen {}", "importedX": "Importálva innen: {}",
"obtainiumImport": "Obtainium Adat Importálás", "obtainiumImport": "Obtainium adatok importálása",
"importFromURLList": "Importálás URL listából", "importFromURLList": "Importálás webcímlistából",
"searchQuery": "Keresési lekérdezés", "searchQuery": "Keresési lekérdezés",
"appURLList": "App URL lista", "appURLList": "Alkalmazás-webcímlista",
"line": "Sor", "line": "Sor",
"searchX": "Keresés {}", "searchX": "{} keresése",
"noResults": "Nincs találat", "noResults": "Nincs találat",
"importX": "Importálás: {}", "importX": "{} importálása",
"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..", "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 webcímekre és a harmadik féltől származó importálási módszerekre vonatkozik.",
"importErrors": "Importálási hibák", "importErrors": "Importálási hibák",
"importedXOfYApps": "{}/{} app importálva.", "importedXOfYApps": "{}/{} alkalmazás importálva.",
"followingURLsHadErrors": "A következő URL-ek hibákat tartalmaztak:", "followingURLsHadErrors": "A következő webcímek hibákat tartalmaztak:",
"selectURL": "Válassza ki az URL-t", "selectURL": "Webcím kiválasztása",
"selectURLs": "Kiválasztott URL-ek", "selectURLs": "Webcímek kiválasztása",
"pick": "Válasszon", "pick": "Kiválasztás",
"theme": "Téma", "theme": "Téma",
"dark": "Sötét", "dark": "Sötét",
"light": "Világos", "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", "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", "useBlackTheme": "Használjon teljesen fekete sötét témát",
"appSortBy": "App rendezés...", "appSortBy": "Elrendezés",
"authorName": "Szerző/Név", "authorName": "Szerző/Név",
"nameAuthor": "Név/Szerző", "nameAuthor": "Név/Szerző",
"asAdded": "Mint Hozzáadott", "asAdded": "Hozzáadás dátuma",
"appSortOrder": "Appok rendezése", "appSortOrder": "Elrendezés sorrendje",
"ascending": "Emelkedő", "ascending": "Növekvő",
"descending": "Csökkenő", "descending": "Csökkenő",
"bgUpdateCheckInterval": "Háttérfrissítés ellenőrzés időköze", "bgUpdateCheckInterval": "Időtartam a frissítések háttérellenőrzése között",
"neverManualOnly": "Soha csak manuális", "neverManualOnly": "Soha csak kézi",
"appearance": "Megjelenés", "appearance": "Megjelenés",
"showWebInAppView": "Forrás megjelenítése az Appok nézetben", "showWebInAppView": "Forrás megjelenítése az alkalmazásnézetben",
"pinUpdates": "Frissítések kitűzése az App nézet tetejére", "pinUpdates": "Frissítések kitűzése az alkalmazásnézet tetejére",
"updates": "Frissítések", "updates": "Frissítések",
"sourceSpecific": "Forrás-specifikus", "sourceSpecific": "Forrásspecifikus",
"appSource": "App forrás", "appSource": "Alkalmazás forrása",
"noLogs": "Nincsenek naplók", "noLogs": "Nincsenek naplók",
"appLogs": "App naplók", "appLogs": "Alkalmazásnaplók",
"close": "Bezárás", "close": "Bezárás",
"share": "Megosztás", "share": "Megosztás",
"appNotFound": "App nem található", "appNotFound": "Az alkalmazás nem található",
"obtainiumExportHyphenatedLowercase": "obtainium-export", "obtainiumExportHyphenatedLowercase": "obtainium-adat",
"pickAnAPK": "Válasszon egy APK-t", "pickAnAPK": "Válasszon egy APK-t",
"appHasMoreThanOnePackage": "A(z) {} egynél több csomaggal rendelkezik:", "appHasMoreThanOnePackage": "A(z) {} egynél több csomaggal rendelkezik:",
"deviceSupportsXArch": "Eszköze támogatja a {} CPU architektúrát.", "deviceSupportsXArch": "Ez az eszköz támogatja a(z) {} CPU architektúrát.",
"deviceSupportsFollowingArchs": "Az eszköze a következő CPU architektúrákat támogatja:", "deviceSupportsFollowingArchs": "Ez az eszköz a következő CPU architektúrákat támogatja:",
"warning": "Figyelem", "warning": "Figyelem",
"sourceIsXButPackageFromYPrompt": "Az alkalmazás forrása „{}”, de a kiadási csomag innen származik: „{}”. Folytatja?", "sourceIsXButPackageFromYPrompt": "Az alkalmazás forrása a(z) „{}” tároló, de a kiadási csomag innen származik: „{}”. Folytatja?",
"updatesAvailable": "Frissítések érhetők el", "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", "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.", "noNewUpdates": "Nincsenek új frissítések.",
"xHasAnUpdate": "A(z) {} frissítést kapott.", "xHasAnUpdate": "A(z) {} frissítést kapott.",
"appsUpdated": "Alkalmazások frissítve", "appsUpdated": "Alkalmazások frissítve",
"appsNotUpdated": "Nem sikerült frissíteni az alkalmazásokat", "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", "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": "{} frissítve a következőre: {}.", "xWasUpdatedToY": "A(z) {} frissítve lett a következőre: {}.",
"xWasNotUpdatedToY": "A {} frissítése a {}-ra nem sikerült.", "xWasNotUpdatedToY": "Nem sikerült frissíteni a következőt: {}, erre: {}.",
"errorCheckingUpdates": "Hiba a frissítések keresésekor", "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", "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", "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) {} a következő hiba miatt lett eltávolítva: {}", "xWasRemovedDueToErrorY": "A(z) {} eltávolításra került a következő hiba miatt: {}",
"completeAppInstallation": "Teljes app telepítés", "completeAppInstallation": "Teljes alkalmazástelepítés",
"obtainiumMustBeOpenToInstallApps": "Az Obtainiumnak megnyitva kell lennie az alkalmazások telepítéséhez", "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", "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", "checkingForUpdates": "Frissítések keresése",
"checkingForUpdatesNotifDescription": "Átmeneti értesítés, amely a frissítések keresésekor jelenik meg", "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", "pleaseAllowInstallPerm": "Engedélyezze az Obtainiumnak az alkalmazások telepítését",
"trackOnly": "Csak követés", "trackOnly": "Csak nyomonkövetés",
"errorWithHttpStatusCode": "Hiba {}", "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", "unknown": "Ismeretlen",
"none": "Egyik sem", "none": "Semmi",
"never": "Soha", "never": "Soha",
"latestVersionX": "Legújabb verzió: {}", "latestVersionX": "Legújabb verzió: {}",
"installedVersionX": "Telepített verzió: {}", "installedVersionX": "Telepített verzió: {}",
"lastUpdateCheckX": "Frissítés ellenőrizve: {}", "lastUpdateCheckX": "Frissítések utoljára ellenőrizve: {}",
"remove": "Eltávolítás", "remove": "Eltávolítás",
"yesMarkUpdated": "Igen, megjelölés frissítettként", "yesMarkUpdated": "Igen, megjelölés frissítettként",
"fdroid": "F-Droid hivatalos", "fdroid": "F-Droid hivatalos",
"appIdOrName": "App ID vagy név", "appIdOrName": "Az alkalmazás-azonosító vagy név",
"appId": "Alkalmazásazonosító", "appId": "Alkalmazás-azonosító",
"appWithIdOrNameNotFound": "Nem található app ezzel az azonosítóval vagy névvel", "appWithIdOrNameNotFound": "Nem található alkalmazás ezzel az azonosítóval vagy névvel",
"reposHaveMultipleApps": "A repók több alkalmazást is tartalmazhatnak", "reposHaveMultipleApps": "A tárolók több alkalmazást is tartalmazhatnak",
"fdroidThirdPartyRepo": "F-Droid Harmadik-fél Repo", "fdroidThirdPartyRepo": "F-Droid harmadik féltől származó tároló",
"steamMobile": "Steam mobil", "steamMobile": "Steam Mobil",
"steamChat": "Steam Chat", "steamChat": "Steam Chat",
"install": "Telepít", "install": "Telepítés",
"markInstalled": "Telepítettnek jelöl", "markInstalled": "Telepítettnek jelölés",
"update": "Frissít", "update": "Frissítés",
"markUpdated": "Frissítettnek jelöl", "markUpdated": "Frissítettnek jelölés",
"additionalOptions": "További lehetőségek", "additionalOptions": "További beállítások",
"disableVersionDetection": "Verzióérzékelés letiltása", "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.", "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", "downloadingX": "{} letöltése",
"downloadX": "Letöltés {}", "downloadX": "{} letöltése",
"downloadedX": "Letöltés {}", "downloadedX": "{} letöltve",
"releaseAsset": "Kiadási tartalom", "releaseAsset": "Kiadási csomag",
"downloadNotifDescription": "Értesíti a felhasználót az app letöltésének előrehaladásáról", "downloadNotifDescription": "Értesíti a felhasználót az alkalmazás letöltésének előrehaladásáról",
"noAPKFound": "Nem található APK", "noAPKFound": "Nem található APK",
"noVersionDetection": "Nincs verzióérzékelés", "noVersionDetection": "Nincs verzióérzékelés",
"categorize": "Kategorizálás", "categorize": "Kategorizálás",
@@ -201,8 +201,8 @@
"noCategory": "Nincs kategória", "noCategory": "Nincs kategória",
"noCategories": "Nincsenek kategóriák", "noCategories": "Nincsenek kategóriák",
"deleteCategoriesQuestion": "Törli a kategóriákat?", "deleteCategoriesQuestion": "Törli a kategóriákat?",
"categoryDeleteWarning": "A(z) {} összes app kategorizálatlan állapotba kerül.", "categoryDeleteWarning": "A törölt kategóriákban lévő összes alkalmazás kategorizálatlanná válik.",
"addCategory": "Új kategória", "addCategory": "Kategória hozzáadása",
"label": "Címke", "label": "Címke",
"language": "Nyelv", "language": "Nyelv",
"copiedToClipboard": "Másolva a vágólapra", "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.", "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", "filterAPKsByRegEx": "Az APK-k szűrése reguláris kifejezéssel",
"removeFromObtainium": "Eltávolítás az Obtainiumból", "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.", "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", "releaseDateAsVersion": "Használja a kiadás dátumát verzióként",
"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.", "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áltoztatások", "changes": "Változások",
"releaseDate": "Kiadás dátuma", "releaseDate": "Kiadás dátuma",
"importFromURLsInFile": "Importálás fájlban található URL-ből (mint pl. OPML)", "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", "versionDetectionExplanation": "A verziókarakterlánc egyeztetése az rendszer által észlelt verzióval",
"versionDetection": "Verzióérzékelés", "versionDetection": "Verzióérzékelés",
"standardVersionDetection": "Alapért. verzió érzékelés", "standardVersionDetection": "Alapértelmezett verzióérzékelés",
"groupByCategory": "Csoportosítás Kategória alapján", "groupByCategory": "Csoportosítás kategória alapján",
"autoApkFilterByArch": "Ha lehetséges, próbálja CPU architektúra szerint szűrni az APK-kat", "autoApkFilterByArch": "Ha lehetséges, próbálja CPU architektúra szerint szűrni az APK-kat",
"overrideSource": "Forrás felülbírása", "overrideSource": "Forrás felülírása",
"dontShowAgain": "Ne mutassa ezt újra", "dontShowAgain": "Ne jelenítse meg ezt többé",
"dontShowTrackOnlyWarnings": "Ne jelenítsen meg 'Csak nyomon követés' figyelmeztetést", "dontShowTrackOnlyWarnings": "Ne jelenítse meg a „Csak nyomonkövetés figyelmeztetést",
"dontShowAPKOriginWarnings": "Ne jelenítsen meg az APK eredetére vonatkozó figyelmeztetéseket", "dontShowAPKOriginWarnings": "Ne jelenítse meg az APK eredetére vonatkozó figyelmeztetéseket",
"moveNonInstalledAppsToBottom": "Helyezze át a nem telepített appokat az App nézet aljára", "moveNonInstalledAppsToBottom": "Helyezze át a nem telepített alkalmazásokat az alkalmazásnézet aljára",
"gitlabPATLabel": "GitLab személyes hozzáférési token", "gitlabPATLabel": "GitLab személyes hozzáférési token",
"about": "Rólunk", "about": "Névjegy",
"requiresCredentialsInSettings": "{}: Ehhez további hitelesítő adatokra van szükség (a Beállításokban)", "requiresCredentialsInSettings": "A(z) {} alkalmazásnak további hitelesítő adatokra van szüksége (a beállításokban)",
"checkOnStart": "Egyszer az alkalmazás indításakor is", "checkOnStart": "Frissítések keresése indításkor",
"tryInferAppIdFromCode": "Próbálja kikövetkeztetni az app azonosítót a forráskódból", "tryInferAppIdFromCode": "Próbálja meg kikövetkeztetni az alkalmazás azonosítót a forráskódból",
"removeOnExternalUninstall": "A külsőleg eltávolított appok auto. eltávolítása", "removeOnExternalUninstall": "A külsőleg eltávolított alkalmazások automatikus eltávolítása",
"pickHighestVersionCode": "A legmagasabb verziószámú APK auto. kiválasztása", "pickHighestVersionCode": "A legmagasabb verziószámú APK automatikus kiválasztása",
"checkUpdateOnDetailPage": "Frissítések keresése az app részleteit tartalmazó oldal megnyitásakor", "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", "disablePageTransitions": "Lap áttűnési animációk letiltása",
"reversePageTransitions": "Fordított lap áttűnési animációk", "reversePageTransitions": "Fordított lap áttűnési animációk",
"minStarCount": "Minimális csillag szám", "minStarCount": "Minimális csillagozási szám",
"addInfoBelow": "Adja hozzá ezt az infót alább.", "addInfoBelow": "Adja hozzá ezt az információt alább.",
"addInfoInSettings": "Adja hozzá ezt az infót a Beállításokban.", "addInfoInSettings": "Adja hozzá ezt az információt a beállításokban.",
"githubSourceNote": "A GitHub sebességkorlátozás elkerülhető API-kulcs használatával.", "githubSourceNote": "A GitHub/GitLab lekérdezés-korlátozás elkerülhető egy API-kulcs használatával.",
"sortByLastLinkSegment": "Rendezés csak a link utolsó szegmense szerint", "sortByLastLinkSegment": "Rendezés csak a hivatkozás utolsó szakasza szerint",
"filterReleaseNotesByRegEx": "Kiadási megjegyzések szűrése reguláris kifejezéssel", "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$')", "customLinkFilterRegex": "Egyéni APK-hivatkozásszűrő reguláris kifejezéssel (Alapértelmezett „.apk$)",
"appsPossiblyUpdated": "App frissítési kísérlet", "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", "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 {}.", "xWasPossiblyUpdatedToY": "A(z) {} frissülhetett a következőre: {}.",
"enableBackgroundUpdates": "Frissítések a háttérben", "enableBackgroundUpdates": "Háttérfrissítések engedélyezése",
"backgroundUpdateReqsExplanation": "Előfordulhat, hogy nem minden appnál lehetséges a háttérbeli frissítés.", "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.", "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", "verifyLatestTag": "Ellenőrizze a „legújabb” címkét",
"intermediateLinkRegex": "Szűrés egy 'köztes' látogatási linkre", "intermediateLinkRegex": "Szűrő egy köztes” hivatkozás felkereséséhez",
"filterByLinkText": "A hivatkozások szűrése linkszöveg alapján", "filterByLinkText": "Hivatkozások szűrése hivatkozásszöveg alapján",
"intermediateLinkNotFound": "Köztes link nem található", "intermediateLinkNotFound": "Köztes hivatkozás nem található",
"intermediateLink": "Köztes link", "intermediateLink": "Köztes hivatkozás",
"exemptFromBackgroundUpdates": "Mentes a háttérben történő frissítések alól (ha engedélyezett)", "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", "bgUpdatesOnWiFiOnly": "A háttérben futó frissítések letiltása, ha nincs Wi-Fi",
"autoSelectHighestVersionCode": "A legmagasabb verziószámú APK auto. kiválasztása", "autoSelectHighestVersionCode": "A legmagasabb verziószámú APK automatikus kiválasztása",
"versionExtractionRegEx": "Verzió kibontása reguláris kifejezéssel", "versionExtractionRegEx": "Verziókarakterlánc-kivonatolása reguláris kifejezéssel",
"trimVersionString": "Trim Version String RegEx-szel", "trimVersionString": "Verziókarakterlánc levágása reguláris kifejezéssel",
"matchGroupToUseForX": "A \"{}\" csoporthoz használandó csoport egyeztetése", "matchGroupToUseForX": "A(z) „{}” esetén használandó csoport egyeztetése",
"matchGroupToUse": "Párosítsa a csoportot a használathoz", "matchGroupToUse": "Verziókarakterlánc-kivonatoláshoz használandó csoport reguláris kifejezéssel való egyeztetése",
"highlightTouchTargets": "Emelje ki a kevésbé nyilvánvaló érintési célokat", "highlightTouchTargets": "A kevésbé nyilvánvaló érintési pontok kiemelése",
"pickExportDir": "Válassza az Exportálási könyvtárat", "pickExportDir": "Válassza ki a könyvtárat, ahová exportálni szeretne",
"autoExportOnChanges": "Auto-exportálás a változások után", "autoExportOnChanges": "Automatikus exportálás a változások után",
"includeSettings": "Tartalmazza a beállításokat", "includeSettings": "Tartalmazza a beállításokat",
"filterVersionsByRegEx": "Verziók szűrése reguláris kifejezéssel", "filterVersionsByRegEx": "Verziók szűrése reguláris kifejezéssel",
"trySelectingSuggestedVersionCode": "Próbálja ki a javasolt verziókódú APK-t", "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", "dontSortReleasesList": "Az API-ból származó kiadási sorrend megőrzése",
"reverseSort": "Fordított rendezés", "reverseSort": "Fordított elrendezés",
"takeFirstLink": "Vegye az első linket", "takeFirstLink": "Vegye az első hivatkozást",
"skipSort": "A válogatás kihagyása", "skipSort": "Rendezés kihagyása",
"debugMenu": "Hibakereső menü", "debugMenu": "Hibakereső menü",
"bgTaskStarted": "A háttérfeladat elindult ellenőrizze a naplókat.", "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", "runBgCheckNow": "Frissítések keresése a háttérben",
"versionExtractWholePage": "Alkalmazza a Version Extraction Regex-et az egész oldalra", "versionExtractWholePage": "„Verziókarakterlánc-kivonatolása reguláris kifejezéssel” alkalmazása az egész oldalra",
"installing": "Telepítés", "installing": "Telepítés",
"skipUpdateNotifications": "A frissítési értesítések kihagyása", "skipUpdateNotifications": "A frissítési értesítések kihagyása",
"updatesAvailableNotifChannel": "Frissítések érhetők el", "updatesAvailableNotifChannel": "Frissítések érhetők el",
"appsUpdatedNotifChannel": "Alkalmazások frissítve", "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", "errorCheckingUpdatesNotifChannel": "Hiba a frissítések keresésekor",
"appsRemovedNotifChannel": "Alkalmazások eltávolítva", "appsRemovedNotifChannel": "Eltávolított alkalmazások",
"downloadingXNotifChannel": "{} letöltés", "downloadingXNotifChannel": "A(z) {} letöltése",
"completeAppInstallationNotifChannel": "Teljes app telepítés", "completeAppInstallationNotifChannel": "Teljes alkalmazás telepítés",
"checkingForUpdatesNotifChannel": "Frissítések keresése", "checkingForUpdatesNotifChannel": "Frissítések keresése",
"onlyCheckInstalledOrTrackOnlyApps": "Csak a telepített és a csak követhető appokat ellenőrizze frissítésekért", "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 URL-eket", "supportFixedAPKURL": "Támogatja a rögzített APK webcímeket",
"selectX": "Kiválaszt {}", "selectX": "{} kiválasztása",
"parallelDownloads": "Párhuzamos letöltéseket enged", "parallelDownloads": "Párhuzamos letöltések engedélyezése",
"useShizuku": "Használja Shizuku vagy Sui telepítéséhez", "useShizuku": "Shizuku vagy Sui használata a telepítéshez",
"shizukuBinderNotFound": "A Shizuku nem fut", "shizukuBinderNotFound": "A Shizuku szolgáltatás nem fut",
"shizukuOld": "Régi Shizuku verzió (<11) - frissítsd!", "shizukuOld": "Régi Shizuku verzió (<11) - frissítse",
"shizukuOldAndroidWithADB": "Shizuku fut Android < 8.1 ADB-vel - frissítse az Androidot vagy használja a Sui-t helyette", "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 Play-t telepítési forrásként (ha Shizuku-t használ)", "shizukuPretendToBeGooglePlay": "Állítsa be a Google Playt telepítési forrásként (ha Shizukut használ)",
"useSystemFont": "Használja a rendszer betűtípusát", "useSystemFont": "A rendszer betűtípusának használata",
"useVersionCodeAsOSVersion": "Az app verziókód használata a rendszer által észlelt verzióként", "useVersionCodeAsOSVersion": "Az alkalmazás verziókódjának használata a rendszer által észlelt verzióként",
"requestHeader": "Kérelemfejléc", "requestHeader": "Kérelemfejléc",
"useLatestAssetDateAsReleaseDate": "Használja a legújabb tartalomfeltöltést megjelenési dátumként", "useLatestAssetDateAsReleaseDate": "A kiadás dátumaként használja a legutóbbi csomagfeltöltést",
"defaultPseudoVersioningMethod": "Alapértelmezett álverziós módszer", "defaultPseudoVersioningMethod": "Alapértelmezett pszeudoverziós módszer",
"partialAPKHash": "Részleges APK Hash", "partialAPKHash": "Részleges APK hasító értéke",
"APKLinkHash": "APK Link Hash", "APKLinkHash": "APK hivatkozás hasító értéke",
"directAPKLink": "Közvetlen APK Link", "directAPKLink": "Közvetlen APK hivatkozás",
"pseudoVersionInUse": "Egy álverzió van használatban", "pseudoVersionInUse": "Egy pszeudoverzió van használatban",
"installed": "Telepített", "installed": "Telepített",
"latest": "Legújabb", "latest": "Legújabb",
"invertRegEx": "Invertált reguláris kifejezés", "invertRegEx": "Reguláris kifejezés invertálása",
"note": "Megjegyzé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.", "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)", "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ő)", "beforeNewInstallsShareToAppVerifier": "Új alkalmazások megosztása az AppVerifierrel (ha elérhető)",
"appVerifierInstructionToast": "Ossza meg az AppVerifierrel, majd térjen vissza ide, ha kész.", "appVerifierInstructionToast": "Ossza meg az AppVerifierrel, majd térjen vissza ide, ha kész.",
"wiki": "Súgó/Wiki", "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": "Nem biztonságos HTTP-kérések engedélyezése",
"removeAppQuestion": { "removeAppQuestion": {
"one": "Eltávolítja az alkalmazást?", "one": "Eltávolítja az alkalmazást?",
"other": "Eltávolítja az alkalmazásokat?" "other": "Eltávolítja az alkalmazásokat?"
}, },
"tooManyRequestsTryAgainInMinutes": { "tooManyRequestsTryAgainInMinutes": {
"one": "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 (korlátozott arány) próbálja újra {} perc múlva" "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": { "bgUpdateGotErrorRetryInMinutes": {
"one": "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": "A háttérfrissítések ellenőrzése {}-t észlelt, {} perc múlva ütemezi az újrapróbálkozást" "other": "Frissítések ellenőrzése a háttérben a következőt észlelte: {} - Újrapróbálkozás: {} perc múlva"
}, },
"bgCheckFoundUpdatesWillNotifyIfNeeded": { "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", "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": "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": "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": { "apps": {
"one": "{} app", "one": "{} alkalmazás",
"other": "{} app" "other": "{} alkalmazás"
}, },
"url": { "url": {
"one": "{} URL", "one": "{} webcím",
"other": "{} URL" "other": "{} webcím"
}, },
"minute": { "minute": {
"one": "{} perc", "one": "{} perc",
@@ -351,27 +352,27 @@
"other": "{} nap" "other": "{} nap"
}, },
"clearedNLogsBeforeXAfterY": { "clearedNLogsBeforeXAfterY": {
"one": "{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 (előtte = {előtte}, utána = {utána})" "other": "{n} napló törölve lett ({after} után és {before} előtt)"
}, },
"xAndNMoreUpdatesAvailable": { "xAndNMoreUpdatesAvailable": {
"one": "A(z) {} és 1 további alkalmazás frissítéseket kapott.", "one": "A(z) {} és 1 további alkalmazás frissítést kapott.",
"other": "{} és {} további alkalmazás frissítéseket kapott." "other": "A(z) {} és {} további alkalmazás frissítést kapott."
}, },
"xAndNMoreUpdatesInstalled": { "xAndNMoreUpdatesInstalled": {
"one": "A(z) {} és 1 további alkalmazás frissítve.", "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": { "xAndNMoreUpdatesFailed": {
"one": "Nem sikerült frissíteni {} és még 1 alkalmazást.", "one": "Nem sikerült frissíteni a következőt: {}, valamint 1 további alkalmazást.",
"other": "Nem sikerült frissíteni {} és {} további alkalmazásokat." "other": "Nem sikerült frissíteni a következőt: {}, valamint {} további alkalmazást."
}, },
"xAndNMoreUpdatesPossiblyInstalled": { "xAndNMoreUpdatesPossiblyInstalled": {
"one": "{} és 1 további alkalmazás is frissült.", "one": "A(z) {}, valamint 1 további alkalmazás sikeresen frissítve.",
"other": "{} és {} további alkalmazás is frissült." "other": "A(z) {}, valamint {} további alkalmazás sikeresen frissítve."
}, },
"apk": { "apk": {
"one": "{} APK", "one": "{} APK",
"other": "{} APK-k" "other": "{} APK"
} }
} }

378
assets/translations/id.json Normal file
View File

@@ -0,0 +1,378 @@
{
"invalidURLForSource": "Bukan URL aplikasi {} yang valid",
"noReleaseFound": "Tidak dapat menemukan rilis yang sesuai",
"noVersionFound": "Tidak dapat memastikan versi rilis yang sesuai",
"urlMatchesNoSource": "URL tidak sesuai dengan sumber yang diketahui",
"cantInstallOlderVersion": "Tidak dapat memasang versi aplikasi yang lebih lama",
"appIdMismatch": "ID paket yang diunduh tidak sama dengan ID aplikasi yang ada",
"functionNotImplemented": "Kelas ini belum mengimplementasikan fungsi ini",
"placeholder": "Tempat penampung",
"someErrors": "Terjadi beberapa kesalahan",
"unexpectedError": "Kesalahan tidak terduga",
"ok": "Oke",
"and": "dan",
"githubPATLabel": "Token Akses Pribadi GitHub (tingkatkan batasan tarif)",
"includePrereleases": "Sertakan pra-rilis",
"fallbackToOlderReleases": "Alternatif kembali ke rilis lama",
"filterReleaseTitlesByRegEx": "Filter judul rilis dengan ekspresi reguler",
"invalidRegEx": "Ekspresi reguler tidak valid",
"noDescription": "Tidak ada deskripsi",
"cancel": "Batal",
"continue": "Lanjut",
"requiredInBrackets": "(Diperlukan)",
"dropdownNoOptsError": "KESALAHAN: DROPDOWN HARUS MEMILIKI SETIDAKNYA SATU OPSI",
"colour": "Warna",
"standard": "Standar",
"custom": "Kustom",
"useMaterialYou": "Gunakan Material You",
"githubStarredRepos": "Repositori berbintang GitHub",
"uname": "Nama pengguna",
"wrongArgNum": "Salah memberikan jumlah argumen",
"xIsTrackOnly": "{} adalah Pelacakan Saja",
"source": "Sumber",
"app": "Aplikasi",
"appsFromSourceAreTrackOnly": "Aplikasi dari sumber ini hanya untuk 'Pelacakan Saja'.",
"youPickedTrackOnly": "Anda telah memilih opsi Pelacakan Saja.",
"trackOnlyAppDescription": "Aplikasi akan dilacak untuk pembaruan, tetapi Obtainium tidak akan dapat mengunduh atau memasangnya.",
"cancelled": "Dibatalkan",
"appAlreadyAdded": "Aplikasi sudah ditambahkan",
"alreadyUpToDateQuestion": "Aplikasi sudah yang terbaru?",
"addApp": "Tambah aplikasi",
"appSourceURL": "Tambah sumber URL",
"error": "Kesalahan",
"add": "Tambah",
"searchSomeSourcesLabel": "Cari (beberapa sumber saja)",
"search": "Cari",
"additionalOptsFor": "Opsi tambahan untuk {}",
"supportedSources": "Sumber yang didukung",
"trackOnlyInBrackets": "(Pelacakan Saja)",
"searchableInBrackets": "(Dapat dicari)",
"appsString": "Aplikasi",
"noApps": "Tidak ada aplikasi",
"noAppsForFilter": "Tidak ada aplikasi untuk difilter",
"byX": "Oleh {}",
"percentProgress": "Perkembangan: {}%",
"pleaseWait": "Harap tunggu",
"updateAvailable": "Pembaruan tersedia",
"notInstalled": "Tidak terpasang",
"pseudoVersion": "versi semu",
"selectAll": "Pilih semua",
"deselectX": "Batal pilih {}",
"xWillBeRemovedButRemainInstalled": "{} akan dihapus dari Obtainium tetapi tetap terpasang di perangkat.",
"removeSelectedAppsQuestion": "Hapus aplikasi terpilih?",
"removeSelectedApps": "Hapus aplikasi terpilih",
"updateX": "Perbarui {}",
"installX": "Pasang {}",
"markXTrackOnlyAsUpdated": "Tandai {}\n(Pelacakan Saja)\nsudah diperbarui",
"changeX": "Ubah {}",
"installUpdateApps": "Pasang/perbarui aplikasi",
"installUpdateSelectedApps": "Pasang/perbarui aplikasi terpilih",
"markXSelectedAppsAsUpdated": "Tandai {} aplikasi terpilih sudah diperbarui?",
"no": "Tidak",
"yes": "Ya",
"markSelectedAppsUpdated": "Tandai aplikasi terpilih sudah diperbarui",
"pinToTop": "Sematkan ke atas",
"unpinFromTop": "Lepaskan semat dari atas",
"resetInstallStatusForSelectedAppsQuestion": "Atur ulang status pemasangan untuk aplikasi terpilih?",
"installStatusOfXWillBeResetExplanation": "Status pemasangan dari aplikasi terpilih akan diatur ulang.\n\nHal ini bisa membantu saat versi aplikasi yang ditampilkan di Obtainium salah akibat pembaruan yang gagal atau masalah lainnya.",
"customLinkMessage": "Tautan ini berfungsi pada perangkat yang terpasang Obtainium",
"shareAppConfigLinks": "Bagikan konfigurasi aplikasi sebagai tautan HTML",
"shareSelectedAppURLs": "Bagikan URL aplikasi terpilih",
"resetInstallStatus": "Atur ulang status pemasangan",
"more": "Lebih banyak",
"removeOutdatedFilter": "Hapus filter aplikasi yang usang",
"showOutdatedOnly": "Tampilkan aplikasi yang usang saja",
"filter": "Filter",
"filterApps": "Filter aplikasi",
"appName": "Nama aplikasi",
"author": "Pencipta",
"upToDateApps": "Aplikasi terbaru",
"nonInstalledApps": "Aplikasi tidak terpasang",
"importExport": "Impor/ekspor",
"settings": "Pengaturan",
"exportedTo": "Diekspor ke {}",
"obtainiumExport": "Ekspor Obtainium",
"invalidInput": "Masukan tidak valid",
"importedX": "{} diimpor",
"obtainiumImport": "Impor Obtainium",
"importFromURLList": "Impor dari daftar URL",
"searchQuery": "Cari Kueri",
"appURLList": "Daftar URL aplikasi",
"line": "Baris",
"searchX": "Cari {}",
"noResults": "Tidak ada hasil yang ditemukan",
"importX": "Impor {}",
"importedAppsIdDisclaimer": "Aplikasi yang diimpor mungkin secara salah ditampilkan sebagai \"Tidak terpasang\".\nUntuk memperbaikinya, lakukan pemasangan ulang melalui Obtainium.\nHal ini seharusnya tidak mempengaruhi data aplikasi.\n\nHanya mempengaruhi metode impor URL dan pihak ketiga.",
"importErrors": "Kesalahan impor",
"importedXOfYApps": "{} dari {} aplikasi diimpor.",
"followingURLsHadErrors": "URL berikut mengalami kesalahan:",
"selectURL": "Pilih URL",
"selectURLs": "Pilih URL",
"pick": "Pilih",
"theme": "Tema",
"dark": "Gelap",
"light": "Terang",
"followSystem": "Mengikuti sistem",
"followSystemThemeExplanation": "Tema mengikuti sistem hanya mungkin dengan menggunakan aplikasi pihak ketiga",
"useBlackTheme": "Gunakan tema hitam pekat",
"appSortBy": "Penyortiran aplikasi berdasarkan",
"authorName": "Pencipta/nama",
"nameAuthor": "Nama/pencipta",
"asAdded": "Tanggal ditambahkan",
"appSortOrder": "Urutan penyortiran aplikasi",
"ascending": "Menaik",
"descending": "Menurun",
"bgUpdateCheckInterval": "Interval pemeriksaan pembaruan di latar belakang",
"neverManualOnly": "Tidak pernah - manual saja",
"appearance": "Tampilan",
"showWebInAppView": "Tampilkan halaman web sumber dalam tampilan aplikasi",
"pinUpdates": "Sematkan pembaruan ke atas tampilan aplikasi",
"updates": "Pembaruan",
"sourceSpecific": "Sumber spesifik",
"appSource": "Sumber aplikasi",
"noLogs": "Tidak ada catatan",
"appLogs": "Catatan aplikasi",
"close": "Tutup",
"share": "Bagikan",
"appNotFound": "Aplikasi tidak ditemukan",
"obtainiumExportHyphenatedLowercase": "ekspor-obtainium",
"pickAnAPK": "Pilih APK",
"appHasMoreThanOnePackage": "{} memiliki lebih dari satu paket:",
"deviceSupportsXArch": "Perangkat Anda mendukung arsitektur CPU {}.",
"deviceSupportsFollowingArchs": "Perangkat anda mendukung arsitektur CPU berikut:",
"warning": "Peringatan",
"sourceIsXButPackageFromYPrompt": "Sumber aplikasinya adalah '{}' tetapi paket rilisnya berasal dari '{}'. Lanjutkan?",
"updatesAvailable": "Pembaruan tersedia",
"updatesAvailableNotifDescription": "Memberi tahu pengguna bahwa pembaruan tersedia untuk aplikasi yang dilacak oleh Obtainium",
"noNewUpdates": "Tidak ada pembaruan baru.",
"xHasAnUpdate": "{} memiliki pembaruan.",
"appsUpdated": "Aplikasi diperbarui",
"appsNotUpdated": "Gagal memperbarui aplikasi",
"appsUpdatedNotifDescription": "Memberi tahu pengguna bahwa pembaruan terhadap aplikasi diterapkan di latar belakang",
"xWasUpdatedToY": "{} telah diperbarui ke {}.",
"xWasNotUpdatedToY": "Gagal memperbarui {} ke {}.",
"errorCheckingUpdates": "Kesalahan dalam memeriksa pembaruan",
"errorCheckingUpdatesNotifDescription": "Notifikasi yang ditampilkan saat pemeriksaan pembaruan latar belakang gagal",
"appsRemoved": "Aplikasi dihapus",
"appsRemovedNotifDescription": "Memberi tahu pengguna bahwa aplikasi aplikasi dihapus karena kesalahan saat memuatnya",
"xWasRemovedDueToErrorY": "{} dihapus karena kesalahan berikut: {}",
"completeAppInstallation": "Selesaikan pemasangan aplikasi",
"obtainiumMustBeOpenToInstallApps": "Obtainium harus terbuka untuk memasang aplikasi",
"completeAppInstallationNotifDescription": "Meminta pengguna kembali ke Obtainium untuk menyelesaikan pemasangan aplikasi",
"checkingForUpdates": "Memeriksa pembaruan",
"checkingForUpdatesNotifDescription": "Notifikasi sementara yang ditampilkan saat memeriksa pembaruan",
"pleaseAllowInstallPerm": "Harap izinkan Obtainium untuk memasang aplikasi",
"trackOnly": "Pelacakan Saja",
"errorWithHttpStatusCode": "Kesalahan {}",
"versionCorrectionDisabled": "Koreksi versi dinonaktifkan (sepertinya plugin tidak berfungsi)",
"unknown": "Tidak diketahui",
"none": "Tidak ada",
"never": "Tidak pernah",
"latestVersionX": "Terbaru: {}",
"installedVersionX": "Terpasang: {}",
"lastUpdateCheckX": "Terakhir memeriksa pembaruan: {}",
"remove": "Hapus",
"yesMarkUpdated": "Ya, tandai bahwa sudah diperbarui",
"fdroid": "F-Droid Resmi",
"appIdOrName": "ID atau nama aplikasi",
"appId": "ID aplikasi",
"appWithIdOrNameNotFound": "Tidak ada aplikasi yang ditemukan dengan ID atau nama tersebut",
"reposHaveMultipleApps": "Repositori dapat berisi beberapa aplikasi",
"fdroidThirdPartyRepo": "Repositori pihak ketiga F-Droid",
"steamMobile": "Steam Mobile",
"steamChat": "Obrolan Steam",
"install": "Pasang",
"markInstalled": "Tandai terpasang",
"update": "perbarui",
"markUpdated": "Tandai diperbarui",
"additionalOptions": "Opsi tambahan",
"disableVersionDetection": "Nonaktifkan pendeteksi versi",
"noVersionDetectionExplanation": "Opsi ini hanya boleh digunakan untuk aplikasi dengan pendeteksi versi yang tidak berfungsi dengan benar.",
"downloadingX": "Mengunduh {}",
"downloadX": "Unduh {}",
"downloadedX": "{} diunduh",
"releaseAsset": "Aset rilis",
"downloadNotifDescription": "Memberi tahu pengguna perkembangan dalam mengunduh aplikasi",
"noAPKFound": "Tidak ada APK ditemukan",
"noVersionDetection": "Tidak ada pendeteksi versi",
"categorize": "Kategorikan",
"categories": "Kategori",
"category": "Kategori",
"noCategory": "Tidak ada kategori",
"noCategories": "Tidak ada kategori",
"deleteCategoriesQuestion": "Hapus kategori?",
"categoryDeleteWarning": "Semua aplikasi dalam kategori yang dihapus akan diatur sebagai tidak terkategori.",
"addCategory": "Tambah kategori",
"label": "Label",
"language": "Language",
"copiedToClipboard": "Disalin ke papan klip",
"storagePermissionDenied": "Izin penyimpanan ditolak",
"selectedCategorizeWarning": "Ini akan mengganti pengaturan kategori yang ada untuk aplikasi terpilih.",
"filterAPKsByRegEx": "Filter APK dengan ekspresi reguler",
"removeFromObtainium": "Hapus dari Obtainium",
"uninstallFromDevice": "Copot pemasangan dari perangkat",
"onlyWorksWithNonVersionDetectApps": "Hanya bekerja untuk aplikasi dengan pendeteksi versi yang nonaktif.",
"releaseDateAsVersion": "Gunakan tanggal rilis sebagai versi string",
"releaseDateAsVersionExplanation": "Opsi ini hanya boleh digunakan untuk aplikasi dengan pendeteksi versi yang tidak berfungsi dengan benar, tetapi tanggal rilisnya tersedia.",
"changes": "Perubahan",
"releaseDate": "Tanggal rilis",
"importFromURLsInFile": "Impor dari URL dalam berkas (seperti OPML)",
"versionDetectionExplanation": "Sesuaikan string versi dengan versi yang terdeteksi dari OS",
"versionDetection": "Pendeteksi versi",
"standardVersionDetection": "Pendeteksi versi standar",
"groupByCategory": "Kelompokkan berdasarkan kategori",
"autoApkFilterByArch": "Coba filter APK berdasarkan arsitektur CPU jika memungkinkan",
"overrideSource": "Ganti sumber",
"dontShowAgain": "Jangan tampilkan lagi",
"dontShowTrackOnlyWarnings": "Jangan tampilkan peringatan 'Pelacakan Saja'",
"dontShowAPKOriginWarnings": "Jangan tampilkan peringatan asal APK",
"moveNonInstalledAppsToBottom": "Pindahkan aplikasi tidak terpasang ke bawah tampilan aplikasi",
"gitlabPATLabel": "Token Akses Pribadi GitLab",
"about": "Tentang",
"requiresCredentialsInSettings": "{} memerlukan kredensial tambahan (dalam pengaturan)",
"checkOnStart": "Periksa pembaruan saat proses memulai",
"tryInferAppIdFromCode": "Coba simpulkan ID aplikasi dari kode sumber",
"removeOnExternalUninstall": "Secara otomatis menghapus aplikasi yang dicopot pemasangannya dari luar",
"pickHighestVersionCode": "Pilih otomatis APK dengan versi kode tertinggi",
"checkUpdateOnDetailPage": "Periksa pembaruan saat membuka halaman detail aplikasi",
"disablePageTransitions": "Nonaktifkan animasi transisi halaman",
"reversePageTransitions": "Animasi transisi halaman secara terbalik",
"minStarCount": "Jumlah bintang minimum",
"addInfoBelow": "Tambahkan info ini di bawah.",
"addInfoInSettings": "Tambahkan info ini di pengaturan.",
"githubSourceNote": "Pembatasan tarif pada GitHub dapat dihindari dengan menggunakan kunci API.",
"sortByLastLinkSegment": "Urutkan hanya berdasarkan segmen terakhir tautan",
"filterReleaseNotesByRegEx": "Filter catatan perilisan dengan ekspresi reguler",
"customLinkFilterRegex": "Filter tautan APK kustom dengan ekspresi reguler (Standar '.apk$')",
"appsPossiblyUpdated": "Pembaruan aplikasi dicoba",
"appsPossiblyUpdatedNotifDescription": "Memberi tahu pengguna bahwa pembaruan terhadap aplikasi berpotensi diterapkan di latar belakang",
"xWasPossiblyUpdatedToY": "{} mungkin telah diperbarui ke {}.",
"enableBackgroundUpdates": "Aktifkan pembaruan latar belakang",
"backgroundUpdateReqsExplanation": "Pembaruan latar belakang mungkin tidak dapat dilakukan untuk semua aplikasi.",
"backgroundUpdateLimitsExplanation": "Keberhasilan pemasangan di latar belakang hanya dapat ditentukan ketika Obtainium terbuka.",
"verifyLatestTag": "Verifikasi label 'terbaru'",
"intermediateLinkRegex": "Filter tautan 'perantara' untuk dikunjungi",
"filterByLinkText": "Filter tautan berdasarkan teks tautan",
"intermediateLinkNotFound": "Tautan perantara tidak ditemukan",
"intermediateLink": "Tautan perantara",
"exemptFromBackgroundUpdates": "Dikecualikan dari pembaruan latar belakang (jika diaktifkan)",
"bgUpdatesOnWiFiOnly": "Nonaktifkan pembaruan latar belakang saat tidak menggunakan WiFi",
"autoSelectHighestVersionCode": "Secara otomatis pilih APK dengan versi kode tertinggi",
"versionExtractionRegEx": "Reguler ekspresi terkait ekstraksi versi string",
"trimVersionString": "Potong versi string dengan reguler ekspresi",
"matchGroupToUseForX": "Cocokkan grup yang akan digunakan untuk \"{}\"",
"matchGroupToUse": "Cocokkan grup yang akan digunakan untuk reguler ekspresi terkait ekstraksi versi string",
"highlightTouchTargets": "Sorot target sentuh yang kurang jelas",
"pickExportDir": "Pilih direktori ekspor",
"autoExportOnChanges": "Otomatis ekspor terhadap perubahan",
"includeSettings": "Sertakan pengaturan",
"filterVersionsByRegEx": "Filter versi dengan ekspresi reguler",
"trySelectingSuggestedVersionCode": "Coba pilih APK dengan version kode yang disarankan",
"dontSortReleasesList": "Pertahankan urutan rilis dari API",
"reverseSort": "Penyortiran terbalik",
"takeFirstLink": "Ambil tautan pertama",
"skipSort": "Lewati penyortiran",
"debugMenu": "Menu debug",
"bgTaskStarted": "Tugas latar belakang dimulai - periksa catatan.",
"runBgCheckNow": "Jalankan pemeriksaan pembaruan latar belakang sekarang",
"versionExtractWholePage": "Terapkan reguler ekspresi terkait ekstraksi versi string ke seluruh halaman",
"installing": "Memasang",
"skipUpdateNotifications": "Lewati notifikasi pembaruan",
"updatesAvailableNotifChannel": "Pembaruan tersedia",
"appsUpdatedNotifChannel": "Aplikasi diperbarui",
"appsPossiblyUpdatedNotifChannel": "Pembaruan aplikasi dicoba",
"errorCheckingUpdatesNotifChannel": "Kesalahan dalam memeriksa pembaruan",
"appsRemovedNotifChannel": "Aplikasi dihapus",
"downloadingXNotifChannel": "Mengunduh {}",
"completeAppInstallationNotifChannel": "Selesaikan pemasangan aplikasi",
"checkingForUpdatesNotifChannel": "Memeriksa pembaruan",
"onlyCheckInstalledOrTrackOnlyApps": "Hanya periksa aplikasi yang dipasang dan ditandai 'Pelacakan Saja' untuk pembaruan",
"supportFixedAPKURL": "Mendukung URL APK tetap",
"selectX": "Pilih {}",
"parallelDownloads": "Izinkan mengunduh paralel",
"useShizuku": "Gunakan Shizuku atau Sui untuk memasang",
"shizukuBinderNotFound": "Layanan Shizuku tidak berjalan",
"shizukuOld": "Versi Shizuku lama (<11) - harap perbarui",
"shizukuOldAndroidWithADB": "Shizuku berjalan di Android < 8.1 dengan ADB - perbarui Android atau gunakan Sui sebagai gantinya",
"shizukuPretendToBeGooglePlay": "Atur Google Play sebagai sumber pemasangan (jika Shizuku digunakan)",
"useSystemFont": "Gunakan font sistem",
"useVersionCodeAsOSVersion": "Gunakan versi kode aplikasi sebagai versi yang terdeteksi OS",
"requestHeader": "Header permintaan",
"useLatestAssetDateAsReleaseDate": "Gunakan unggahan aset terbaru sebagai tanggal rilis",
"defaultPseudoVersioningMethod": "Metode versi semu standar",
"partialAPKHash": "Hash APK parsial",
"APKLinkHash": "Hash tautan APK",
"directAPKLink": "Tautan APK langsung",
"pseudoVersionInUse": "Versi semu sedang digunakan",
"installed": "Terpasang",
"latest": "Terbaru",
"invertRegEx": "Balikkan ekspresi reguler",
"note": "Catatan",
"selfHostedNote": "Dropdown \"{}\" bisa digunakan untuk menjangkau instansi yang dihosting sendiri/kustom dari sumber mana pun.",
"badDownload": "APK tidak dapat diurai (tidak kompatibel atau diunduh sebagian)",
"beforeNewInstallsShareToAppVerifier": "Bagikan aplikasi baru dengan AppVerifier (jika tersedia)",
"appVerifierInstructionToast": "Bagikan ke AppVerifier, lalu kembali ke sini jika sudah siap.",
"wiki": "Bantuan/Wiki",
"crowdsourcedConfigsLabel": "Konfigurasi aplikasi Crowdsourced (risiko penggunaan ditanggung sendiri)",
"allowInsecure": "Izinkan permintaan HTTP yang tidak aman",
"removeAppQuestion": {
"one": "Hapus aplikasi?",
"other": "Hapus aplikasi?"
},
"tooManyRequestsTryAgainInMinutes": {
"one": "Terlalu banyak permintaan (tarif dibatasi) - coba lagi dalam {} menit",
"other": "Terlalu banyak permintaan (tarif dibatasi) - coba lagi dalam {} menit"
},
"bgUpdateGotErrorRetryInMinutes": {
"one": "Pemeriksaan pembaruan latar belakang menemui {}, akan menjadwalkan pemeriksaan ulang dalam {} menit",
"other": "Pemeriksaan pembaruan latar belakang menemui {}, akan menjadwalkan pemeriksaan ulang dalam {} menit"
},
"bgCheckFoundUpdatesWillNotifyIfNeeded": {
"one": "Pemeriksaan pembaruan latar belakang menemukan {} pembaruan - akan memberi tahu pengguna jika diperlukan",
"other": "Pemeriksaan pembaruan latar belakang menemukan {} pembaruan - akan memberi tahu pengguna jika diperlukan"
},
"apps": {
"one": "{} aplikasi",
"other": "{} aplikasi"
},
"url": {
"one": "{} URL",
"other": "{} URL"
},
"minute": {
"one": "{} menit",
"other": "{} menit"
},
"hour": {
"one": "{} jam",
"other": "{} jam"
},
"day": {
"one": "{} hari",
"other": "{} hari"
},
"clearedNLogsBeforeXAfterY": {
"one": "Menghapus {n} catatan (sebelum = {before}, setelah = {after})",
"other": "Menghapus {n} catatan (sebelum = {before}, setelah = {after})"
},
"xAndNMoreUpdatesAvailable": {
"one": "{} dan 1 aplikasi lainnya mendapat pembaruan.",
"other": "{} dan {} aplikasi lainnya mendapat pembaruan."
},
"xAndNMoreUpdatesInstalled": {
"one": "{} dan 1 aplikasi lainnya telah diperbarui.",
"other": "{} dan {} aplikasi lainnya telah diperbarui."
},
"xAndNMoreUpdatesFailed": {
"one": "Gagal memperbarui {} dan 1 aplikasi lainnya.",
"other": "Gagal memperbarui {} dan {} aplikasi lainnya."
},
"xAndNMoreUpdatesPossiblyInstalled": {
"one": "{} dan 1 aplikasi lainnya mungkin telah diperbarui.",
"other": "{} dan {} aplikasi lainnya mungkin telah diperbarui."
},
"apk": {
"one": "{} APK",
"other": "{} APK"
}
}

View File

@@ -314,6 +314,7 @@
"appVerifierInstructionToast": "Condividete con AppVerifier, quindi tornate qui quando siete pronti.", "appVerifierInstructionToast": "Condividete con AppVerifier, quindi tornate qui quando siete pronti.",
"wiki": "Aiuto/Wiki", "wiki": "Aiuto/Wiki",
"crowdsourcedConfigsLabel": "Configurazioni di app in crowdsourcing (uso a proprio rischio)", "crowdsourcedConfigsLabel": "Configurazioni di app in crowdsourcing (uso a proprio rischio)",
"allowInsecure": "Consentire le richieste HTTP non sicure",
"removeAppQuestion": { "removeAppQuestion": {
"one": "Rimuovere l'app?", "one": "Rimuovere l'app?",
"other": "Rimuovere le app?" "other": "Rimuovere le app?"

View File

@@ -314,6 +314,7 @@
"appVerifierInstructionToast": "AppVerifierに共有し、準備ができたらここに戻ってください。", "appVerifierInstructionToast": "AppVerifierに共有し、準備ができたらここに戻ってください。",
"wiki": "ヘルプ/ウィキ", "wiki": "ヘルプ/ウィキ",
"crowdsourcedConfigsLabel": "クラウドソーシングによるアプリの設定(利用は自己責任で)", "crowdsourcedConfigsLabel": "クラウドソーシングによるアプリの設定(利用は自己責任で)",
"allowInsecure": "安全でないHTTPリクエストを許可する",
"removeAppQuestion": { "removeAppQuestion": {
"one": "アプリを削除しますか?", "one": "アプリを削除しますか?",
"other": "アプリを削除しますか?" "other": "アプリを削除しますか?"

View File

@@ -314,6 +314,7 @@
"appVerifierInstructionToast": "Deel het met AppVerifier en keer daarna hier terug.", "appVerifierInstructionToast": "Deel het met AppVerifier en keer daarna hier terug.",
"wiki": "Help/Wiki", "wiki": "Help/Wiki",
"crowdsourcedConfigsLabel": "Crowdsourced App-configuraties (gebruik op eigen risico)", "crowdsourcedConfigsLabel": "Crowdsourced App-configuraties (gebruik op eigen risico)",
"allowInsecure": "Onveilige HTTP-verzoeken toestaan",
"removeAppQuestion": { "removeAppQuestion": {
"one": "App verwijderen?", "one": "App verwijderen?",
"other": "Apps verwijderen?" "other": "Apps verwijderen?"

View File

@@ -314,6 +314,7 @@
"appVerifierInstructionToast": "Udostępnij w AppVerifier, a następnie wróć tutaj, gdy będziesz gotowy.", "appVerifierInstructionToast": "Udostępnij w AppVerifier, a następnie wróć tutaj, gdy będziesz gotowy.",
"wiki": "Pomoc/Wiki", "wiki": "Pomoc/Wiki",
"crowdsourcedConfigsLabel": "Konfiguracje aplikacji pochodzące z crowdsourcingu (korzystanie na własne ryzyko)", "crowdsourcedConfigsLabel": "Konfiguracje aplikacji pochodzące z crowdsourcingu (korzystanie na własne ryzyko)",
"allowInsecure": "Zezwalaj na niezabezpieczone żądania HTTP",
"removeAppQuestion": { "removeAppQuestion": {
"one": "Usunąć aplikację?", "one": "Usunąć aplikację?",
"few": "Usunąć aplikacje?", "few": "Usunąć aplikacje?",

View File

@@ -314,6 +314,7 @@
"appVerifierInstructionToast": "Partilhe com o AppVerifier e, em seguida, regresse aqui quando estiver pronto.", "appVerifierInstructionToast": "Partilhe com o AppVerifier e, em seguida, regresse aqui quando estiver pronto.",
"wiki": "Ajuda/Wiki", "wiki": "Ajuda/Wiki",
"crowdsourcedConfigsLabel": "Configurações de aplicações de crowdsourcing (utilização por sua conta e risco)", "crowdsourcedConfigsLabel": "Configurações de aplicações de crowdsourcing (utilização por sua conta e risco)",
"allowInsecure": "Permitir pedidos HTTP inseguros",
"removeAppQuestion": { "removeAppQuestion": {
"one": "Remover aplicativo?", "one": "Remover aplicativo?",
"other": "Remover aplicativos?" "other": "Remover aplicativos?"

View File

@@ -314,6 +314,7 @@
"appVerifierInstructionToast": "Поделитесь с AppVerifier, а затем вернитесь сюда, когда будете готовы.", "appVerifierInstructionToast": "Поделитесь с AppVerifier, а затем вернитесь сюда, когда будете готовы.",
"wiki": "Помощь/Вики", "wiki": "Помощь/Вики",
"crowdsourcedConfigsLabel": "Конфигурации приложений на основе краудсорсинга (используйте на свой страх и риск)", "crowdsourcedConfigsLabel": "Конфигурации приложений на основе краудсорсинга (используйте на свой страх и риск)",
"allowInsecure": "Разрешить небезопасные HTTP-запросы",
"removeAppQuestion": { "removeAppQuestion": {
"one": "Удалить приложение?", "one": "Удалить приложение?",
"other": "Удалить приложения?" "other": "Удалить приложения?"

View File

@@ -314,6 +314,7 @@
"appVerifierInstructionToast": "Dela till AppVerifier och återvänd sedan hit när du är klar.", "appVerifierInstructionToast": "Dela till AppVerifier och återvänd sedan hit när du är klar.",
"wiki": "Hjälp/Wiki", "wiki": "Hjälp/Wiki",
"crowdsourcedConfigsLabel": "Crowdsourcade appkonfigurationer (använd på egen risk)", "crowdsourcedConfigsLabel": "Crowdsourcade appkonfigurationer (använd på egen risk)",
"allowInsecure": "Tillåt osäkra HTTP-förfrågningar",
"removeAppQuestion": { "removeAppQuestion": {
"one": "Ta Bort App?", "one": "Ta Bort App?",
"other": "Ta Bort Appar?" "other": "Ta Bort Appar?"

View File

@@ -314,6 +314,7 @@
"appVerifierInstructionToast": "AppVerifier ile paylaşın, hazır olduğunuzda buraya dönün.", "appVerifierInstructionToast": "AppVerifier ile paylaşın, hazır olduğunuzda buraya dönün.",
"wiki": "Yardım/Wiki", "wiki": "Yardım/Wiki",
"crowdsourcedConfigsLabel": "Kitle Kaynaklı Uygulama Yapılandırmaları (riski size ait olmak üzere kullanın)", "crowdsourcedConfigsLabel": "Kitle Kaynaklı Uygulama Yapılandırmaları (riski size ait olmak üzere kullanın)",
"allowInsecure": "Güvensiz HTTP isteklerine izin ver",
"removeAppQuestion": { "removeAppQuestion": {
"one": "Uygulamayı Kaldır?", "one": "Uygulamayı Kaldır?",
"other": "Uygulamaları Kaldır?" "other": "Uygulamaları Kaldır?"

View File

@@ -314,6 +314,7 @@
"appVerifierInstructionToast": "Надішліть на AppVerifier, а потім поверніться сюди, коли будете готові.", "appVerifierInstructionToast": "Надішліть на AppVerifier, а потім поверніться сюди, коли будете готові.",
"wiki": "Довідка/Вікі", "wiki": "Довідка/Вікі",
"crowdsourcedConfigsLabel": "Краудсорсингові конфігурації додатків (використовуйте на свій страх і ризик)", "crowdsourcedConfigsLabel": "Краудсорсингові конфігурації додатків (використовуйте на свій страх і ризик)",
"allowInsecure": "Дозволити незахищені HTTP-запити",
"removeAppQuestion": { "removeAppQuestion": {
"one": "Видалити застосунок?", "one": "Видалити застосунок?",
"other": "Видалити застосунки?" "other": "Видалити застосунки?"

View File

@@ -314,6 +314,7 @@
"appVerifierInstructionToast": "Chia sẻ lên AppVerifier, sau đó quay lại đây khi sẵn sàng.", "appVerifierInstructionToast": "Chia sẻ lên AppVerifier, sau đó quay lại đây khi sẵn sàng.",
"wiki": "Trợ giúp/Wiki", "wiki": "Trợ giúp/Wiki",
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (use at your own risk)", "crowdsourcedConfigsLabel": "Crowdsourced App Configurations (use at your own risk)",
"allowInsecure": "Allow insecure HTTP requests",
"removeAppQuestion": { "removeAppQuestion": {
"one": "Gỡ ứng dụng?", "one": "Gỡ ứng dụng?",
"other": "Gỡ ứng dụng?" "other": "Gỡ ứng dụng?"

View File

@@ -4,28 +4,28 @@
"noVersionFound": "無法確定版本", "noVersionFound": "無法確定版本",
"urlMatchesNoSource": "URL 不符合已知來源", "urlMatchesNoSource": "URL 不符合已知來源",
"cantInstallOlderVersion": "無法安裝舊版本的應用程式", "cantInstallOlderVersion": "無法安裝舊版本的應用程式",
"appIdMismatch": "下載的套件 ID 與現有的應用程式 ID 不匹配", "appIdMismatch": "下載的套件 ID 與現有的應用程式 ID 不相符",
"functionNotImplemented": "此類別尚未實作此功能", "functionNotImplemented": "此類別尚未實作此功能",
"placeholder": "佔位", "placeholder": "佔位字串",
"someErrors": "發生了一些錯誤", "someErrors": "發生了一些錯誤",
"unexpectedError": "意外錯誤", "unexpectedError": "意外錯誤",
"ok": "確定", "ok": "確定",
"and": "和", "and": "和",
"githubPATLabel": "GitHub 個人存取權杖(增加速率限制)", "githubPATLabel": "GitHub 個人存取權杖(放寬速率限制)",
"includePrereleases": "包含預發佈版本", "includePrereleases": "包含預先釋出版本",
"fallbackToOlderReleases": "回退到舊版本", "fallbackToOlderReleases": "回退到舊版本",
"filterReleaseTitlesByRegEx": "用正則表達式過濾版本標題", "filterReleaseTitlesByRegEx": "用正則表達式過濾版本發佈標題",
"invalidRegEx": "無效的正則表達式", "invalidRegEx": "無效的正則表達式",
"noDescription": "描述", "noDescription": "沒有描述",
"cancel": "取消", "cancel": "取消",
"continue": "繼續", "continue": "繼續",
"requiredInBrackets": "(必填)", "requiredInBrackets": "必填",
"dropdownNoOptsError": "錯誤:下拉選單必須至少有一個選項", "dropdownNoOptsError": "錯誤:下拉選單必須至少有一個選項",
"colour": "顏色", "colour": "顏色",
"standard": "標準", "standard": "標準",
"custom": "自訂", "custom": "自訂",
"useMaterialYou": "使用 Material You", "useMaterialYou": "使用 Material You",
"githubStarredRepos": "GitHub Starred Repos", "githubStarredRepos": "GitHub 打星星的專案",
"uname": "使用者名稱", "uname": "使用者名稱",
"wrongArgNum": "提供的參數數量錯誤", "wrongArgNum": "提供的參數數量錯誤",
"xIsTrackOnly": "{} 是僅追蹤", "xIsTrackOnly": "{} 是僅追蹤",
@@ -35,16 +35,16 @@
"youPickedTrackOnly": "您已選擇「僅追蹤」選項。", "youPickedTrackOnly": "您已選擇「僅追蹤」選項。",
"trackOnlyAppDescription": "該應用程式將被追蹤更新,但 Obtainium 將無法下載或安裝它。", "trackOnlyAppDescription": "該應用程式將被追蹤更新,但 Obtainium 將無法下載或安裝它。",
"cancelled": "已取消", "cancelled": "已取消",
"appAlreadyAdded": "應用程式已添加", "appAlreadyAdded": "應用程式已新增",
"alreadyUpToDateQuestion": "應用程式已經是最新的?", "alreadyUpToDateQuestion": "應用程式已經是最新的?",
"addApp": "添加應用程式", "addApp": "新增應用程式",
"appSourceURL": "應用程式來源 URL", "appSourceURL": "應用程式來源 URL",
"error": "錯誤", "error": "錯誤",
"add": "添加", "add": "新增",
"searchSomeSourcesLabel": "搜尋(僅限部分來源)", "searchSomeSourcesLabel": "搜尋(僅限部分來源)",
"search": "搜尋", "search": "搜尋",
"additionalOptsFor": "{} 的其他選項", "additionalOptsFor": "{} 的其他選項",
"supportedSources": "支的來源", "supportedSources": "支的來源",
"trackOnlyInBrackets": "(僅追蹤)", "trackOnlyInBrackets": "(僅追蹤)",
"searchableInBrackets": "(可搜尋)", "searchableInBrackets": "(可搜尋)",
"appsString": "應用程式", "appsString": "應用程式",
@@ -58,7 +58,7 @@
"pseudoVersion": "偽版本", "pseudoVersion": "偽版本",
"selectAll": "全選", "selectAll": "全選",
"deselectX": "取消選取 {}", "deselectX": "取消選取 {}",
"xWillBeRemovedButRemainInstalled": "{} 將從 Obtainium 中移除,但仍然安裝在設備上。", "xWillBeRemovedButRemainInstalled": "{} 將從 Obtainium 中移除,但仍然安裝在裝置上。",
"removeSelectedAppsQuestion": "移除選取的應用程式?", "removeSelectedAppsQuestion": "移除選取的應用程式?",
"removeSelectedApps": "移除選取的應用程式", "removeSelectedApps": "移除選取的應用程式",
"updateX": "更新 {}", "updateX": "更新 {}",
@@ -71,12 +71,12 @@
"no": "否", "no": "否",
"yes": "是", "yes": "是",
"markSelectedAppsUpdated": "標記選取的應用程式為已更新", "markSelectedAppsUpdated": "標記選取的應用程式為已更新",
"pinToTop": "釘選到頂", "pinToTop": "釘選到頂",
"unpinFromTop": "取消釘選", "unpinFromTop": "取消釘選",
"resetInstallStatusForSelectedAppsQuestion": "重設選取應用程式的安裝狀態?", "resetInstallStatusForSelectedAppsQuestion": "重設選取應用程式的安裝狀態?",
"installStatusOfXWillBeResetExplanation": "任何選取應用程式的安裝狀態將被重設。\n\n這可以在由於更新失敗或其他問題導致 Obtainium 顯示的應用程式版本不正確時有所幫助。", "installStatusOfXWillBeResetExplanation": "任何選取應用程式的安裝狀態將被重設。\n\n這可以在由於更新失敗或其他問題導致 Obtainium 顯示的應用程式版本不正確時有所幫助。",
"customLinkMessage": "這些連結適用於已安裝 Obtainium 的設備", "customLinkMessage": "這些連結適用於已安裝 Obtainium 的裝置",
"shareAppConfigLinks": "分享應用程式配置為 HTML 連結", "shareAppConfigLinks": "分享應用程式設定為 HTML 連結",
"shareSelectedAppURLs": "分享選取的應用程式 URL", "shareSelectedAppURLs": "分享選取的應用程式 URL",
"resetInstallStatus": "重設安裝狀態", "resetInstallStatus": "重設安裝狀態",
"more": "更多", "more": "更多",
@@ -95,14 +95,14 @@
"invalidInput": "無效的輸入", "invalidInput": "無效的輸入",
"importedX": "已匯入 {}", "importedX": "已匯入 {}",
"obtainiumImport": "Obtainium 匯入", "obtainiumImport": "Obtainium 匯入",
"importFromURLList": "從 URL 列表匯入", "importFromURLList": "從 URL 清單匯入",
"searchQuery": "搜尋查詢", "searchQuery": "搜尋查詢",
"appURLList": "應用程式 URL 清單", "appURLList": "應用程式 URL 清單",
"line": "行", "line": "行",
"searchX": "搜尋 {}", "searchX": "搜尋 {}",
"noResults": "找到結果", "noResults": "沒有找到結果",
"importX": "匯入 {}", "importX": "匯入 {}",
"importedAppsIdDisclaimer": "匯入的應用程式可能會錯誤地顯示為「未安裝」。\n要修正此問題過 Obtainium 重新安裝它們。\n這不應該影響應用程式數據。\n\n僅影響 URL 和第三方匯入方法。", "importedAppsIdDisclaimer": "匯入的應用程式可能會錯誤地顯示為「未安裝」。\n要修正此問題過 Obtainium 重新安裝它們。\n這不應該影響應用程式資料。\n\n僅影響 URL 和第三方匯入方法。",
"importErrors": "匯入錯誤", "importErrors": "匯入錯誤",
"importedXOfYApps": "已匯入 {} 個中的 {} 個應用程式。", "importedXOfYApps": "已匯入 {} 個中的 {} 個應用程式。",
"followingURLsHadErrors": "以下 URL 有錯誤:", "followingURLsHadErrors": "以下 URL 有錯誤:",
@@ -118,7 +118,7 @@
"appSortBy": "應用程式排序依據", "appSortBy": "應用程式排序依據",
"authorName": "作者/名稱", "authorName": "作者/名稱",
"nameAuthor": "名稱/作者", "nameAuthor": "名稱/作者",
"asAdded": "添加順序", "asAdded": "新增順序",
"appSortOrder": "應用程式排序順序", "appSortOrder": "應用程式排序順序",
"ascending": "升序", "ascending": "升序",
"descending": "降序", "descending": "降序",
@@ -134,12 +134,12 @@
"appLogs": "應用程式日誌", "appLogs": "應用程式日誌",
"close": "關閉", "close": "關閉",
"share": "分享", "share": "分享",
"appNotFound": "找到應用程式", "appNotFound": "沒有找到應用程式",
"obtainiumExportHyphenatedLowercase": "obtainium-export", "obtainiumExportHyphenatedLowercase": "obtainium-export",
"pickAnAPK": "選擇一個 APK", "pickAnAPK": "選擇一個 APK",
"appHasMoreThanOnePackage": "{} 有多個套件:", "appHasMoreThanOnePackage": "{} 有多個套件:",
"deviceSupportsXArch": "您的設備支持 {} CPU 架構。", "deviceSupportsXArch": "您的裝置支援 {} CPU 架構。",
"deviceSupportsFollowingArchs": "您的設備支持以下 CPU 架構:", "deviceSupportsFollowingArchs": "您的裝置支援以下 CPU 架構:",
"warning": "警告", "warning": "警告",
"sourceIsXButPackageFromYPrompt": "應用程式來源是 「{}」,但發佈套件來自 「{}」。要繼續嗎?", "sourceIsXButPackageFromYPrompt": "應用程式來源是 「{}」,但發佈套件來自 「{}」。要繼續嗎?",
"updatesAvailable": "有可用的更新", "updatesAvailable": "有可用的更新",
@@ -148,7 +148,7 @@
"xHasAnUpdate": "{} 有一個更新。", "xHasAnUpdate": "{} 有一個更新。",
"appsUpdated": "應用程式已更新", "appsUpdated": "應用程式已更新",
"appsNotUpdated": "未能更新應用程式", "appsNotUpdated": "未能更新應用程式",
"appsUpdatedNotifDescription": "通知使用者一個或多個應用程式的更新已在背景中用", "appsUpdatedNotifDescription": "通知使用者一個或多個應用程式的更新已在背景中用",
"xWasUpdatedToY": "{} 已更新到 {}。", "xWasUpdatedToY": "{} 已更新到 {}。",
"xWasNotUpdatedToY": "未能將 {} 更新到 {}。", "xWasNotUpdatedToY": "未能將 {} 更新到 {}。",
"errorCheckingUpdates": "檢查更新時出錯", "errorCheckingUpdates": "檢查更新時出錯",
@@ -158,13 +158,13 @@
"xWasRemovedDueToErrorY": "{} 已因以下錯誤被移除:{}", "xWasRemovedDueToErrorY": "{} 已因以下錯誤被移除:{}",
"completeAppInstallation": "完成應用程式安裝", "completeAppInstallation": "完成應用程式安裝",
"obtainiumMustBeOpenToInstallApps": "Obtainium 必須開啟才能安裝應用程式", "obtainiumMustBeOpenToInstallApps": "Obtainium 必須開啟才能安裝應用程式",
"completeAppInstallationNotifDescription": "請使用者回 Obtainium 以完成應用程式安裝", "completeAppInstallationNotifDescription": "請使用者回 Obtainium 以完成應用程式安裝",
"checkingForUpdates": "正在檢查更新", "checkingForUpdates": "正在檢查更新",
"checkingForUpdatesNotifDescription": "檢查更新時顯示的暫時性通知", "checkingForUpdatesNotifDescription": "檢查更新時顯示的暫時性通知",
"pleaseAllowInstallPerm": "請允許 Obtainium 安裝應用程式", "pleaseAllowInstallPerm": "請允許 Obtainium 安裝應用程式",
"trackOnly": "僅追蹤", "trackOnly": "僅追蹤",
"errorWithHttpStatusCode": "錯誤 {}", "errorWithHttpStatusCode": "錯誤 {}",
"versionCorrectionDisabled": "版本校正已用(外掛程式似乎無法正常工作)", "versionCorrectionDisabled": "版本校正已用(外掛程式似乎無法正常工作)",
"unknown": "未知", "unknown": "未知",
"none": "無", "none": "無",
"never": "從不", "never": "從不",
@@ -186,47 +186,47 @@
"update": "更新", "update": "更新",
"markUpdated": "標記為已更新", "markUpdated": "標記為已更新",
"additionalOptions": "額外選項", "additionalOptions": "額外選項",
"disableVersionDetection": "用版本測", "disableVersionDetection": "用版本測",
"noVersionDetectionExplanation": "此選項僅應用於版本測無法正確工作的應用程式。", "noVersionDetectionExplanation": "此選項僅應用於版本測無法正確工作的應用程式。",
"downloadingX": "正在下載 {}", "downloadingX": "正在下載 {}",
"downloadX": "下載 {}", "downloadX": "下載 {}",
"downloadedX": "已下載 {}", "downloadedX": "已下載 {}",
"releaseAsset": "發佈資源", "releaseAsset": "發佈資源",
"downloadNotifDescription": "通知使用者應用程式下載進度", "downloadNotifDescription": "通知使用者應用程式下載進度",
"noAPKFound": "找到 APK", "noAPKFound": "沒有找到 APK",
"noVersionDetection": "無版本測", "noVersionDetection": "無版本測",
"categorize": "分類", "categorize": "分類",
"categories": "類別", "categories": "類別",
"category": "類別", "category": "類別",
"noCategory": "無類別", "noCategory": "無類別",
"noCategories": "無類別", "noCategories": "無類別",
"deleteCategoriesQuestion": "刪除類別?", "deleteCategoriesQuestion": "刪除類別?",
"categoryDeleteWarning": "所有在已刪除類別中的應用程式將被設為未分類。", "categoryDeleteWarning": "所有在已刪除類別中的應用程式將被設為未分類。",
"addCategory": "新增類別", "addCategory": "新增類別",
"label": "標籤", "label": "標籤",
"language": "語言", "language": "語言",
"copiedToClipboard": "已複製到剪貼簿", "copiedToClipboard": "已複製到剪貼簿",
"storagePermissionDenied": "存取權限被拒絕", "storagePermissionDenied": "存取權限被拒絕",
"selectedCategorizeWarning": "這將替換選取應用程式的任何現有類別設。", "selectedCategorizeWarning": "這將替換選取應用程式的任何現有類別設。",
"filterAPKsByRegEx": "用正則表達式過濾 APK", "filterAPKsByRegEx": "用正則表達式過濾 APK",
"removeFromObtainium": "從 Obtainium 移除", "removeFromObtainium": "從 Obtainium 移除",
"uninstallFromDevice": "從設備解除安裝", "uninstallFromDevice": "從裝置解除安裝",
"onlyWorksWithNonVersionDetectApps": "僅適用於用版本測的應用程式。", "onlyWorksWithNonVersionDetectApps": "僅適用於用版本測的應用程式。",
"releaseDateAsVersion": "使用發佈日期作為版本字串", "releaseDateAsVersion": "使用發佈日期作為版本字串",
"releaseDateAsVersionExplanation": "此選項僅應用於版本測無法正確工作但有發佈日期的應用程式。", "releaseDateAsVersionExplanation": "此選項僅應用於版本測無法正確工作但有發佈日期的應用程式。",
"changes": "變更", "changes": "變更",
"releaseDate": "發佈日期", "releaseDate": "發佈日期",
"importFromURLsInFile": "從文件中的 URL 匯入(如 OPML", "importFromURLsInFile": "從檔案中的 URL 匯入(如 OPML",
"versionDetectionExplanation": "將版本字串與作業系統測到的版本對比", "versionDetectionExplanation": "將版本字串與作業系統測到的版本對比",
"versionDetection": "版本測", "versionDetection": "版本測",
"standardVersionDetection": "標準版本測", "standardVersionDetection": "標準版本測",
"groupByCategory": "按類別分組", "groupByCategory": "按類別分組",
"autoApkFilterByArch": "如果可能,嘗試按 CPU 架構過濾 APK", "autoApkFilterByArch": "如果可能,嘗試按 CPU 架構過濾 APK",
"overrideSource": "覆蓋來源", "overrideSource": "覆蓋來源",
"dontShowAgain": "不要再顯示", "dontShowAgain": "不要再顯示",
"dontShowTrackOnlyWarnings": "不要顯示「僅追蹤」警告", "dontShowTrackOnlyWarnings": "不要顯示「僅追蹤」警告",
"dontShowAPKOriginWarnings": "不要顯示 APK 來源警告", "dontShowAPKOriginWarnings": "不要顯示 APK 來源警告",
"moveNonInstalledAppsToBottom": "將未安裝的應用程式移到應用程式視圖的底部", "moveNonInstalledAppsToBottom": "將未安裝的應用程式移到應用程式檢視的末端",
"gitlabPATLabel": "GitLab 個人存取權杖", "gitlabPATLabel": "GitLab 個人存取權杖",
"about": "關於", "about": "關於",
"requiresCredentialsInSettings": "{} 需要額外的憑證(在設定中)", "requiresCredentialsInSettings": "{} 需要額外的憑證(在設定中)",
@@ -234,34 +234,34 @@
"tryInferAppIdFromCode": "嘗試從原始碼推斷應用程式 ID", "tryInferAppIdFromCode": "嘗試從原始碼推斷應用程式 ID",
"removeOnExternalUninstall": "自動移除外部解除安裝的應用程式", "removeOnExternalUninstall": "自動移除外部解除安裝的應用程式",
"pickHighestVersionCode": "自動選取最高版本號的 APK", "pickHighestVersionCode": "自動選取最高版本號的 APK",
"checkUpdateOnDetailPage": "在開應用程式詳細頁面時檢查更新", "checkUpdateOnDetailPage": "在開應用程式詳細頁面時檢查更新",
"disablePageTransitions": "用頁面過渡動畫", "disablePageTransitions": "用頁面過渡動畫",
"reversePageTransitions": "反轉頁面過渡動畫", "reversePageTransitions": "反轉頁面過渡動畫",
"minStarCount": "最少星數", "minStarCount": "最少星數",
"addInfoBelow": "在下方添加此資訊。", "addInfoBelow": "在下方新增此資訊。",
"addInfoInSettings": "在設定中增加此資訊。", "addInfoInSettings": "在設定中增加此資訊。",
"githubSourceNote": "使用 API 金鑰可以避免 GitHub 的速率限制。", "githubSourceNote": "使用 API 金鑰可以避免 GitHub 的速率限制。",
"sortByLastLinkSegment": "僅按連結的最後一段排序", "sortByLastLinkSegment": "僅按連結的最後一段排序",
"filterReleaseNotesByRegEx": "用正則表達式過濾發佈說明", "filterReleaseNotesByRegEx": "用正則表達式過濾發佈說明",
"customLinkFilterRegex": "自定 APK 連結過濾正則表達式(預設為 '.apk$'", "customLinkFilterRegex": "自定 APK 連結過濾正則表達式(預設為 '.apk$'",
"appsPossiblyUpdated": "嘗試更新應用程式", "appsPossiblyUpdated": "嘗試更新應用程式",
"appsPossiblyUpdatedNotifDescription": "通知使用者一個或多個應用程式的更新可能已在背景中用", "appsPossiblyUpdatedNotifDescription": "通知使用者一個或多個應用程式的更新可能已在背景中用",
"xWasPossiblyUpdatedToY": "{} 可能已更新到 {}。", "xWasPossiblyUpdatedToY": "{} 可能已更新到 {}。",
"enableBackgroundUpdates": "啟用背景更新", "enableBackgroundUpdates": "啟用背景更新",
"backgroundUpdateReqsExplanation": "並非所有應用程式都能進行背景更新。", "backgroundUpdateReqsExplanation": "並非所有應用程式都能進行背景更新。",
"backgroundUpdateLimitsExplanation": "背景安裝的成功與否只能在開 Obtainium 時確定。", "backgroundUpdateLimitsExplanation": "背景安裝的成功與否只能在開 Obtainium 時確定。",
"verifyLatestTag": "驗證「最新」標籤", "verifyLatestTag": "驗證「最新」標籤",
"intermediateLinkRegex": "過濾要訪問的「中間」連結", "intermediateLinkRegex": "過濾要存取的「中間」連結",
"filterByLinkText": "按連結文過濾連結", "filterByLinkText": "按連結文過濾連結",
"intermediateLinkNotFound": "找到中間連結", "intermediateLinkNotFound": "沒有找到中間連結",
"intermediateLink": "中間連結", "intermediateLink": "中間連結",
"exemptFromBackgroundUpdates": "免除背景更新(若已啟用)", "exemptFromBackgroundUpdates": "免除背景更新(若已啟用)",
"bgUpdatesOnWiFiOnly": "用非 WiFi 的背景更新", "bgUpdatesOnWiFiOnly": "用非 WiFi 的背景更新",
"autoSelectHighestVersionCode": "自動選擇最高 versionCode 的 APK", "autoSelectHighestVersionCode": "自動選擇最高 versionCode 的 APK",
"versionExtractionRegEx": "版本字串提取正則表達式", "versionExtractionRegEx": "版本字串提取正則表達式",
"trimVersionString": "Trim Version String With RegEx", "trimVersionString": "用正則表達式修剪版本字串",
"matchGroupToUseForX": "Match Group to Use for \"{}\"", "matchGroupToUseForX": "用於「{}」的對應群組",
"matchGroupToUse": "要用於版本字串提取的匹配組", "matchGroupToUse": "要用於版本字串提取的對應群組",
"highlightTouchTargets": "突出顯示不明顯的觸控目標", "highlightTouchTargets": "突出顯示不明顯的觸控目標",
"pickExportDir": "選擇匯出目錄", "pickExportDir": "選擇匯出目錄",
"autoExportOnChanges": "更改時自動匯出", "autoExportOnChanges": "更改時自動匯出",
@@ -275,7 +275,7 @@
"debugMenu": "除錯選單", "debugMenu": "除錯選單",
"bgTaskStarted": "背景任務已啟動 - 檢查日誌。", "bgTaskStarted": "背景任務已啟動 - 檢查日誌。",
"runBgCheckNow": "立即執行背景更新檢查", "runBgCheckNow": "立即執行背景更新檢查",
"versionExtractWholePage": "將版本字串提取正則表達式用於整個頁面", "versionExtractWholePage": "將版本字串提取正則表達式用於整個頁面",
"installing": "正在安裝", "installing": "正在安裝",
"skipUpdateNotifications": "跳過更新通知", "skipUpdateNotifications": "跳過更新通知",
"updatesAvailableNotifChannel": "有可用的更新", "updatesAvailableNotifChannel": "有可用的更新",
@@ -291,12 +291,12 @@
"selectX": "選擇 {}", "selectX": "選擇 {}",
"parallelDownloads": "允許平行下載", "parallelDownloads": "允許平行下載",
"useShizuku": "使用 Shizuku 或 Sui 來安裝", "useShizuku": "使用 Shizuku 或 Sui 來安裝",
"shizukuBinderNotFound": "Shizuku 服務未運", "shizukuBinderNotFound": "Shizuku 服務未運",
"shizukuOld": "舊版 Shizuku (<11) - 請更新", "shizukuOld": "舊版 Shizuku (<11) - 請更新",
"shizukuOldAndroidWithADB": "Shizuku 在 Android 8.1 以下版本使用 ADB 行 - 請更新 Android 或改用 Sui", "shizukuOldAndroidWithADB": "Shizuku 在 Android 8.1 以下版本使用 ADB 行 - 請更新 Android 或改用 Sui",
"shizukuPretendToBeGooglePlay": "設 Google Play 為安裝來源(如果使用 Shizuku", "shizukuPretendToBeGooglePlay": "設 Google Play 為安裝來源(如果使用 Shizuku",
"useSystemFont": "使用系統字", "useSystemFont": "使用系統字",
"useVersionCodeAsOSVersion": "使用應用程式 versionCode 作為作系統測的版本", "useVersionCodeAsOSVersion": "使用應用程式 versionCode 作為作系統測的版本",
"requestHeader": "請求標頭", "requestHeader": "請求標頭",
"useLatestAssetDateAsReleaseDate": "使用最新資源上傳日期作為發佈日期", "useLatestAssetDateAsReleaseDate": "使用最新資源上傳日期作為發佈日期",
"defaultPseudoVersioningMethod": "預設偽版本管理方法", "defaultPseudoVersioningMethod": "預設偽版本管理方法",
@@ -308,12 +308,13 @@
"latest": "最新", "latest": "最新",
"invertRegEx": "反轉正則表達式", "invertRegEx": "反轉正則表達式",
"note": "備註", "note": "備註",
"selfHostedNote": "可使用「{}」下拉選單來訪問任何來源的自託管/自定義實例。", "selfHostedNote": "可使用「{}」下拉選單來存取任何來源的自託管/自訂執行個體。",
"badDownload": "無法解析 APK容或下載不完整)", "badDownload": "無法解析 APK容或下載不完整)",
"beforeNewInstallsShareToAppVerifier": "將新應用程式分享到 AppVerifier如果可用", "beforeNewInstallsShareToAppVerifier": "將新應用程式分享到 AppVerifier如果可用",
"appVerifierInstructionToast": "分享至 AppVerifier然後準備好時回此處。", "appVerifierInstructionToast": "分享至 AppVerifier然後準備好時回此處。",
"wiki": "幫助/維基", "wiki": "幫助/維基",
"crowdsourcedConfigsLabel": "群眾外包的應用程式配置(使用風險自負)", "crowdsourcedConfigsLabel": "群眾外包的應用程式設定(使用風險自負)",
"allowInsecure": "Allow insecure HTTP requests",
"removeAppQuestion": { "removeAppQuestion": {
"one": "移除應用程式?", "one": "移除應用程式?",
"other": "移除應用程式?" "other": "移除應用程式?"

View File

@@ -314,6 +314,7 @@
"appVerifierInstructionToast": "分享至 AppVerifier完成后返回此处。", "appVerifierInstructionToast": "分享至 AppVerifier完成后返回此处。",
"wiki": "帮助/Wiki", "wiki": "帮助/Wiki",
"crowdsourcedConfigsLabel": "众包应用程序配置(使用风险自负)", "crowdsourcedConfigsLabel": "众包应用程序配置(使用风险自负)",
"allowInsecure": "允许不安全的 HTTP 请求",
"removeAppQuestion": { "removeAppQuestion": {
"one": "是否删除应用?", "one": "是否删除应用?",
"other": "是否删除应用?" "other": "是否删除应用?"

View File

@@ -10,7 +10,7 @@ class APKCombo extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
RegExp standardUrlRegEx = RegExp( RegExp standardUrlRegEx = RegExp(
'^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+[^/]+', '^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+[^/]+',
caseSensitive: false); caseSensitive: false);

View File

@@ -32,7 +32,7 @@ class APKMirror extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
RegExp standardUrlRegEx = RegExp( RegExp standardUrlRegEx = RegExp(
'^https?://(www\\.)?${getSourceRegex(hosts)}/apk/[^/]+/[^/]+', '^https?://(www\\.)?${getSourceRegex(hosts)}/apk/[^/]+/[^/]+',
caseSensitive: false); caseSensitive: false);

View File

@@ -29,7 +29,7 @@ class APKPure extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
RegExp standardUrlRegExB = RegExp( RegExp standardUrlRegExB = RegExp(
'^https?://m.${getSourceRegex(hosts)}(/+[^/]{2})?/+[^/]+/+[^/]+', '^https?://m.${getSourceRegex(hosts)}(/+[^/]{2})?/+[^/]+/+[^/]+',
caseSensitive: false); caseSensitive: false);
@@ -109,11 +109,16 @@ class APKPure extends AppSource {
'') '')
?.group(0) ?.group(0)
?.trim(); ?.trim();
String? type = apkInfo var types = apkInfo
?.querySelector('div.info-top span.tag') ?.querySelectorAll('div.info-top span.tag')
?.text .map((e) => e.text.trim())
.trim() ?? .map((t) => t == 'APKs' ? 'APK' : t) ??
'APK'; [];
String type = types.isEmpty
? 'APK'
: types.length == 1
? types.first
: types.last;
String? dateString = apkInfo String? dateString = apkInfo
?.querySelector('div.info-bottom span.time') ?.querySelector('div.info-bottom span.time')
?.text ?.text

View File

@@ -14,7 +14,7 @@ class Aptoide extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
RegExp standardUrlRegEx = RegExp( RegExp standardUrlRegEx = RegExp(
'^https?://([^\\.]+\\.){2,}${getSourceRegex(hosts)}', '^https?://([^\\.]+\\.){2,}${getSourceRegex(hosts)}',
caseSensitive: false); caseSensitive: false);

View File

@@ -16,7 +16,7 @@ class Codeberg extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
RegExp standardUrlRegEx = RegExp( RegExp standardUrlRegEx = RegExp(
'^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+', '^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+',
caseSensitive: false); caseSensitive: false);

View File

@@ -1,12 +1,12 @@
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:obtainium/app_sources/html.dart'; import 'package:obtainium/app_sources/html.dart';
import 'package:obtainium/custom_errors.dart';
import 'package:obtainium/providers/source_provider.dart'; import 'package:obtainium/providers/source_provider.dart';
class DirectAPKLink extends AppSource { class DirectAPKLink extends AppSource {
HTML html = HTML(); HTML html = HTML();
DirectAPKLink() { DirectAPKLink() {
neverAutoSelect = true;
name = tr('directAPKLink'); name = tr('directAPKLink');
additionalSourceAppSpecificSettingFormItems = html additionalSourceAppSpecificSettingFormItems = html
.additionalSourceAppSpecificSettingFormItems .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 @override
Future<Map<String, String>?> getRequestHeaders( Future<Map<String, String>?> getRequestHeaders(
Map<String, dynamic> additionalSettings, Map<String, dynamic> additionalSettings,

View File

@@ -38,7 +38,7 @@ class FDroid extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
RegExp standardUrlRegExB = RegExp( RegExp standardUrlRegExB = RegExp(
'^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+packages/+[^/]+', '^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+packages/+[^/]+',
caseSensitive: false); caseSensitive: false);

View File

@@ -43,7 +43,7 @@ class FDroidRepo extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
var standardUri = Uri.parse(url); var standardUri = Uri.parse(url);
var pathSegments = standardUri.pathSegments; var pathSegments = standardUri.pathSegments;
if (pathSegments.isNotEmpty && pathSegments.last == 'index.xml') { if (pathSegments.isNotEmpty && pathSegments.last == 'index.xml') {

View File

@@ -154,7 +154,7 @@ class GitHub extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
RegExp standardUrlRegEx = RegExp( RegExp standardUrlRegEx = RegExp(
'^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+', '^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+',
caseSensitive: false); caseSensitive: false);

View File

@@ -52,7 +52,7 @@ class GitLab extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
RegExp standardUrlRegEx = RegExp( RegExp standardUrlRegEx = RegExp(
'^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+', '^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+',
caseSensitive: false); caseSensitive: false);
@@ -202,7 +202,7 @@ class GitLab extends AppSource {
} }
finalResult.apkUrls = finalResult.apkUrls.map((apkUrl) { finalResult.apkUrls = finalResult.apkUrls.map((apkUrl) {
if (RegExp('^$standardUrl/-/jobs/[0-9]+/artifacts/file/[^/]+\$') if (RegExp('^$standardUrl/-/jobs/[0-9]+/artifacts/file/[^/]+')
.hasMatch(apkUrl.value)) { .hasMatch(apkUrl.value)) {
return MapEntry( return MapEntry(
apkUrl.key, apkUrl.value.replaceFirst('/file/', '/raw/')); apkUrl.key, apkUrl.value.replaceFirst('/file/', '/raw/'));

View File

@@ -288,7 +288,7 @@ class HTML extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
return url; return url;
} }
@@ -350,7 +350,8 @@ class HTML extends AppSource {
? rel.hashCode.toString() ? rel.hashCode.toString()
: (await checkPartialDownloadHashDynamic(rel, : (await checkPartialDownloadHashDynamic(rel,
headers: await getRequestHeaders(additionalSettings, headers: await getRequestHeaders(additionalSettings,
forAPKDownload: true))) forAPKDownload: true),
allowInsecure: additionalSettings['allowInsecure'] == true))
.toString(); .toString();
return APKDetails(version, [rel].map((e) => MapEntry(e, e)).toList(), return APKDetails(version, [rel].map((e) => MapEntry(e, e)).toList(),
AppNames(uri.host, tr('app'))); AppNames(uri.host, tr('app')));

View File

@@ -12,7 +12,7 @@ class HuaweiAppGallery extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
RegExp standardUrlRegEx = RegExp( RegExp standardUrlRegEx = RegExp(
'^https?://(www\\.)?${getSourceRegex(hosts)}(/#)?/(app|appdl)/[^/]+', '^https?://(www\\.)?${getSourceRegex(hosts)}(/#)?/(app|appdl)/[^/]+',
caseSensitive: false); caseSensitive: false);

View File

@@ -14,7 +14,7 @@ class IzzyOnDroid extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
RegExp standardUrlRegExA = RegExp( RegExp standardUrlRegExA = RegExp(
'^https?://android.${getSourceRegex(hosts)}/repo/apk/[^/]+', '^https?://android.${getSourceRegex(hosts)}/repo/apk/[^/]+',
caseSensitive: false); caseSensitive: false);

View File

@@ -10,7 +10,7 @@ class Mullvad extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
RegExp standardUrlRegEx = RegExp( RegExp standardUrlRegEx = RegExp(
'^https?://(www\\.)?${getSourceRegex(hosts)}', '^https?://(www\\.)?${getSourceRegex(hosts)}',
caseSensitive: false); caseSensitive: false);

View File

@@ -10,7 +10,7 @@ class NeutronCode extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
RegExp standardUrlRegEx = RegExp( RegExp standardUrlRegEx = RegExp(
'^https?://(www\\.)?${getSourceRegex(hosts)}/downloads/file/[^/]+', '^https?://(www\\.)?${getSourceRegex(hosts)}/downloads/file/[^/]+',
caseSensitive: false); caseSensitive: false);

View File

@@ -9,7 +9,7 @@ class Signal extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
return 'https://${hosts[0]}'; return 'https://${hosts[0]}';
} }

View File

@@ -9,7 +9,7 @@ class SourceForge extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
var sourceRegex = getSourceRegex(hosts); var sourceRegex = getSourceRegex(hosts);
RegExp standardUrlRegExC = RegExp standardUrlRegExC =
RegExp('^https?://(www\\.)?$sourceRegex/p/.+', caseSensitive: false); RegExp('^https?://(www\\.)?$sourceRegex/p/.+', caseSensitive: false);

View File

@@ -20,7 +20,7 @@ class SourceHut extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
RegExp standardUrlRegEx = RegExp( RegExp standardUrlRegEx = RegExp(
'^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+', '^https?://(www\\.)?${getSourceRegex(hosts)}/[^/]+/[^/]+',
caseSensitive: false); caseSensitive: false);
@@ -60,8 +60,17 @@ class SourceHut extends AppSource {
int ind = 0; int ind = 0;
for (var entry in parsedHtml.querySelectorAll('item').sublist(0, 6)) { for (var entry in parsedHtml.querySelectorAll('item').sublist(0, 6)) {
// Limit 5 for speed ind++;
if (!fallbackToOlderReleases && ind > 0) { String releasePage = // querySelector('link') fails for some reason
entry
.querySelector('guid') // Luckily guid is identical
?.innerHtml
.trim() ??
'';
if (!releasePage.startsWith('$standardUrl/refs')) {
continue;
}
if (!fallbackToOlderReleases && ind > 1) {
break; break;
} }
String? version = entry.querySelector('title')?.text.trim(); String? version = entry.querySelector('title')?.text.trim();
@@ -69,7 +78,6 @@ class SourceHut extends AppSource {
throw NoVersionError(); throw NoVersionError();
} }
String? releaseDateString = entry.querySelector('pubDate')?.innerHtml; String? releaseDateString = entry.querySelector('pubDate')?.innerHtml;
String releasePage = '$standardUrl/refs/$version';
DateTime? releaseDate; DateTime? releaseDate;
try { try {
releaseDate = releaseDateString != null releaseDate = releaseDateString != null
@@ -98,7 +106,6 @@ class SourceHut extends AppSource {
AppNames(entry.querySelector('author')?.innerHtml.trim() ?? appName, AppNames(entry.querySelector('author')?.innerHtml.trim() ?? appName,
appName), appName),
releaseDate: releaseDate)); releaseDate: releaseDate));
ind++;
} }
if (apkDetailsList.isEmpty) { if (apkDetailsList.isEmpty) {
throw NoReleasesError(); throw NoReleasesError();

View File

@@ -20,7 +20,7 @@ class SteamMobile extends AppSource {
final apks = {'steam': tr('steamMobile'), 'steam-chat-app': tr('steamChat')}; final apks = {'steam': tr('steamMobile'), 'steam-chat-app': tr('steamChat')};
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
return 'https://${hosts[0]}'; return 'https://${hosts[0]}';
} }

View File

@@ -11,7 +11,7 @@ class TelegramApp extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
return 'https://${hosts[0]}'; return 'https://${hosts[0]}';
} }

View 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);
}
}
}

View File

@@ -10,10 +10,11 @@ class Uptodown extends AppSource {
allowSubDomains = true; allowSubDomains = true;
naiveStandardVersionDetection = true; naiveStandardVersionDetection = true;
showReleaseDateAsVersionToggle = true; showReleaseDateAsVersionToggle = true;
urlsAlwaysHaveExtension = true;
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
RegExp standardUrlRegEx = RegExp( RegExp standardUrlRegEx = RegExp(
'^https?://([^\\.]+\\.){2,}${getSourceRegex(hosts)}', '^https?://([^\\.]+\\.){2,}${getSourceRegex(hosts)}',
caseSensitive: false); caseSensitive: false);
@@ -39,20 +40,29 @@ class Uptodown extends AppSource {
} }
var html = parse(res.body); var html = parse(res.body);
String? version = html.querySelector('div.version')?.innerHtml; String? version = html.querySelector('div.version')?.innerHtml;
String? apkUrl =
'${standardUrl.split('/').reversed.toList().sublist(1).reversed.join('/')}/post-download';
String? name = html.querySelector('#detail-app-name')?.innerHtml.trim(); String? name = html.querySelector('#detail-app-name')?.innerHtml.trim();
String? author = html.querySelector('#author-link')?.innerHtml.trim(); String? author = html.querySelector('#author-link')?.innerHtml.trim();
var detailElements = html.querySelectorAll('#technical-information td'); var detailElements = html.querySelectorAll('#technical-information td');
String? appId = (detailElements.elementAtOrNull(2))?.innerHtml.trim(); String? appId = (detailElements.elementAtOrNull(2))?.innerHtml.trim();
String? dateStr = (detailElements.elementAtOrNull(29))?.innerHtml.trim(); String? dateStr = (detailElements.elementAtOrNull(29))?.innerHtml.trim();
String? fileId =
html.querySelector('#detail-app-name')?.attributes['data-file-id'];
String? extension = html
.querySelectorAll('td')
.where((e) => e.text.toLowerCase().trim() == 'file type')
.firstOrNull
?.nextElementSibling
?.text
.toLowerCase()
.trim();
return Map.fromEntries([ return Map.fromEntries([
MapEntry('version', version), MapEntry('version', version),
MapEntry('apkUrl', apkUrl),
MapEntry('appId', appId), MapEntry('appId', appId),
MapEntry('name', name), MapEntry('name', name),
MapEntry('author', author), MapEntry('author', author),
MapEntry('dateStr', dateStr) MapEntry('dateStr', dateStr),
MapEntry('fileId', fileId),
MapEntry('extension', extension)
]); ]);
} }
@@ -64,14 +74,16 @@ class Uptodown extends AppSource {
var appDetails = var appDetails =
await getAppDetailsFromPage(standardUrl, additionalSettings); await getAppDetailsFromPage(standardUrl, additionalSettings);
var version = appDetails['version']; var version = appDetails['version'];
var apkUrl = appDetails['apkUrl'];
var appId = appDetails['appId']; var appId = appDetails['appId'];
var fileId = appDetails['fileId'];
var extension = appDetails['extension'];
if (version == null) { if (version == null) {
throw NoVersionError(); throw NoVersionError();
} }
if (apkUrl == null) { if (fileId == null) {
throw NoAPKError(); throw NoAPKError();
} }
var apkUrl = '$standardUrl/$fileId-x';
if (appId == null) { if (appId == null) {
throw NoReleasesError(); throw NoReleasesError();
} }
@@ -82,8 +94,8 @@ class Uptodown extends AppSource {
if (dateStr != null) { if (dateStr != null) {
relDate = parseDateTimeMMMddCommayyyy(dateStr); relDate = parseDateTimeMMMddCommayyyy(dateStr);
} }
return APKDetails( return APKDetails(version, [MapEntry('$appId.$extension', apkUrl)],
version, getApkUrlsFromUrls([apkUrl]), AppNames(author, appName), AppNames(author, appName),
releaseDate: relDate); releaseDate: relDate);
} }
@@ -96,7 +108,7 @@ class Uptodown extends AppSource {
} }
var html = parse(res.body); var html = parse(res.body);
var finalUrlKey = var finalUrlKey =
html.querySelector('.post-download')?.attributes['data-url']; html.querySelector('#detail-download-button')?.attributes['data-url'];
if (finalUrlKey == null) { if (finalUrlKey == null) {
throw NoAPKError(); throw NoAPKError();
} }

View File

@@ -21,7 +21,7 @@ class VLC extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
return 'https://${hosts[0]}'; return 'https://${hosts[0]}';
} }

View File

@@ -10,7 +10,7 @@ class WhatsApp extends AppSource {
} }
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
return 'https://${hosts[0]}'; return 'https://${hosts[0]}';
} }

View File

@@ -23,6 +23,7 @@ import 'package:easy_localization/src/localization.dart';
List<MapEntry<Locale, String>> supportedLocales = const [ List<MapEntry<Locale, String>> supportedLocales = const [
MapEntry(Locale('en'), 'English'), MapEntry(Locale('en'), 'English'),
MapEntry(Locale('zh'), '简体中文'), MapEntry(Locale('zh'), '简体中文'),
MapEntry(Locale('zh_Hant_TW'), '臺灣話'),
MapEntry(Locale('it'), 'Italiano'), MapEntry(Locale('it'), 'Italiano'),
MapEntry(Locale('ja'), '日本語'), MapEntry(Locale('ja'), '日本語'),
MapEntry(Locale('hu'), 'Magyar'), MapEntry(Locale('hu'), 'Magyar'),
@@ -41,6 +42,9 @@ List<MapEntry<Locale, String>> supportedLocales = const [
MapEntry(Locale('tr'), 'Türkçe'), MapEntry(Locale('tr'), 'Türkçe'),
MapEntry(Locale('uk'), 'Українська'), MapEntry(Locale('uk'), 'Українська'),
MapEntry(Locale('da'), 'Dansk'), MapEntry(Locale('da'), 'Dansk'),
MapEntry(Locale('en', 'EO'),
'Esperanto'), // https://github.com/aissat/easy_localization/issues/220#issuecomment-846035493
MapEntry(Locale('in'), 'Bahasa Indonesia')
]; ];
const fallbackLocale = Locale('en'); const fallbackLocale = Locale('en');
const localeDir = 'assets/translations'; const localeDir = 'assets/translations';
@@ -245,15 +249,17 @@ class _ObtainiumState extends State<Obtainium> {
colorScheme: settingsProvider.theme == ThemeSettings.dark colorScheme: settingsProvider.theme == ThemeSettings.dark
? darkColorScheme ? darkColorScheme
: lightColorScheme, : lightColorScheme,
fontFamily: fontFamily: settingsProvider.useSystemFont
settingsProvider.useSystemFont ? 'SystemFont' : 'Wix-Madefor-Display'), ? 'SystemFont'
: 'Wix-Madefor-Display'),
darkTheme: ThemeData( darkTheme: ThemeData(
useMaterial3: true, useMaterial3: true,
colorScheme: settingsProvider.theme == ThemeSettings.light colorScheme: settingsProvider.theme == ThemeSettings.light
? lightColorScheme ? lightColorScheme
: darkColorScheme, : darkColorScheme,
fontFamily: fontFamily: settingsProvider.useSystemFont
settingsProvider.useSystemFont ? 'SystemFont' : 'Wix-Madefor-Display'), ? 'SystemFont'
: 'Wix-Madefor-Display'),
home: Shortcuts(shortcuts: <LogicalKeySet, Intent>{ home: Shortcuts(shortcuts: <LogicalKeySet, Intent>{
LogicalKeySet(LogicalKeyboardKey.select): const ActivateIntent(), LogicalKeySet(LogicalKeyboardKey.select): const ActivateIntent(),
}, child: const HomePage())); }, child: const HomePage()));

View File

@@ -248,7 +248,8 @@ class _AppPageState extends State<AppPage> {
children: [ children: [
const SizedBox(height: 20), const SizedBox(height: 20),
FutureBuilder( FutureBuilder(
future: appsProvider.updateAppIcon(app?.app.id), future:
appsProvider.updateAppIcon(app?.app.id, ignoreCache: true),
builder: (ctx, val) { builder: (ctx, val) {
return app?.icon != null return app?.icon != null
? Row( ? Row(

View File

@@ -416,6 +416,8 @@ class AppsPageState extends State<AppsPage> {
? Image.memory( ? Image.memory(
listedApps[appIndex].icon!, listedApps[appIndex].icon!,
gaplessPlayback: true, gaplessPlayback: true,
opacity: AlwaysStoppedAnimation(
listedApps[appIndex].installedInfo == null ? 0.6 : 1),
) )
: Row( : Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,

View File

@@ -17,6 +17,7 @@ import 'package:device_info_plus/device_info_plus.dart';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.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.dart';
import 'package:obtainium/components/generated_form_modal.dart'; import 'package:obtainium/components/generated_form_modal.dart';
import 'package:obtainium/custom_errors.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 fileNameHasExt, Function? onProgress, String destDir,
{bool useExisting = true, {bool useExisting = true,
Map<String, String>? headers, Map<String, String>? headers,
int retries = 3}) async { int retries = 3,
bool allowInsecure = false}) async {
try { try {
return await downloadFile( return await downloadFile(
url, fileName, fileNameHasExt, onProgress, destDir, url, fileName, fileNameHasExt, onProgress, destDir,
useExisting: useExisting, headers: headers); useExisting: useExisting,
headers: headers,
allowInsecure: allowInsecure);
} catch (e) { } catch (e) {
if (retries > 0 && e is ClientException) { if (retries > 0 && e is ClientException) {
await Future.delayed(const Duration(seconds: 5)); await Future.delayed(const Duration(seconds: 5));
return await downloadFileWithRetry( return await downloadFileWithRetry(
url, fileName, fileNameHasExt, onProgress, destDir, url, fileName, fileNameHasExt, onProgress, destDir,
useExisting: useExisting, headers: headers, retries: (retries - 1)); useExisting: useExisting,
headers: headers,
retries: (retries - 1),
allowInsecure: allowInsecure);
} else { } else {
rethrow; rethrow;
} }
@@ -173,11 +180,14 @@ String hashListOfLists(List<List<int>> data) {
Future<String> checkPartialDownloadHashDynamic(String url, Future<String> checkPartialDownloadHashDynamic(String url,
{int startingSize = 1024, {int startingSize = 1024,
int lowerLimit = 128, int lowerLimit = 128,
Map<String, String>? headers}) async { Map<String, String>? headers,
bool allowInsecure = false}) async {
for (int i = startingSize; i >= lowerLimit; i -= 256) { for (int i = startingSize; i >= lowerLimit; i -= 256) {
List<String> ab = await Future.wait([ List<String> ab = await Future.wait([
checkPartialDownloadHash(url, i, headers: headers), checkPartialDownloadHash(url, i,
checkPartialDownloadHash(url, i, headers: headers) headers: headers, allowInsecure: allowInsecure),
checkPartialDownloadHash(url, i,
headers: headers, allowInsecure: allowInsecure)
]); ]);
if (ab[0] == ab[1]) { if (ab[0] == ab[1]) {
return ab[0]; return ab[0];
@@ -187,13 +197,13 @@ Future<String> checkPartialDownloadHashDynamic(String url,
} }
Future<String> checkPartialDownloadHash(String url, int bytesToGrab, 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)); var req = Request('GET', Uri.parse(url));
if (headers != null) { if (headers != null) {
req.headers.addAll(headers); req.headers.addAll(headers);
} }
req.headers[HttpHeaders.rangeHeader] = 'bytes=0-$bytesToGrab'; req.headers[HttpHeaders.rangeHeader] = 'bytes=0-$bytesToGrab';
var client = http.Client(); var client = IOClient(createHttpClient(allowInsecure));
var response = await client.send(req); var response = await client.send(req);
if (response.statusCode < 200 || response.statusCode > 299) { if (response.statusCode < 200 || response.statusCode > 299) {
throw ObtainiumError(response.reasonPhrase ?? tr('unexpectedError')); 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, Future<File> downloadFile(String url, String fileName, bool fileNameHasExt,
Function? onProgress, String destDir, 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 // Send the initial request but cancel it as soon as you have the headers
var reqHeaders = headers ?? {}; var reqHeaders = headers ?? {};
var req = Request('GET', Uri.parse(url)); var req = Request('GET', Uri.parse(url));
req.headers.addAll(reqHeaders); req.headers.addAll(reqHeaders);
var client = http.Client(); var client = IOClient(createHttpClient(allowInsecure));
StreamedResponse response = await client.send(req); StreamedResponse response = await client.send(req);
var resHeaders = response.headers; var resHeaders = response.headers;
@@ -225,7 +237,9 @@ Future<File> downloadFile(String url, String fileName, bool fileNameHasExt,
ext != 'apk') { ext != 'apk') {
ext = 'apk'; ext = 'apk';
} }
fileName = fileName.split('/').last; // Ensure the fileName is a file name fileName = fileNameHasExt
? fileName
: fileName.split('/').last; // Ensure the fileName is a file name
File downloadedFile = File('$destDir/$fileName.$ext'); File downloadedFile = File('$destDir/$fileName.$ext');
if (fileNameHasExt) { if (fileNameHasExt) {
// If the user says the filename already has an ext, ignore whatever you inferred from above // If the user says the filename already has an ext, ignore whatever you inferred from above
@@ -273,7 +287,7 @@ Future<File> downloadFile(String url, String fileName, bool fileNameHasExt,
IOSink? sink; IOSink? sink;
if (rangeFeatureEnabled && fullContentLength != null && rangeStart > 0) { if (rangeFeatureEnabled && fullContentLength != null && rangeStart > 0) {
client.close(); client.close();
client = http.Client(); client = IOClient(createHttpClient(allowInsecure));
req = Request('GET', Uri.parse(url)); req = Request('GET', Uri.parse(url));
req.headers.addAll(reqHeaders); req.headers.addAll(reqHeaders);
req.headers.addAll({'range': 'bytes=$rangeStart-${fullContentLength - 1}'}); req.headers.addAll({'range': 'bytes=$rangeStart-${fullContentLength - 1}'});
@@ -316,12 +330,12 @@ Future<File> downloadFile(String url, String fileName, bool fileNameHasExt,
} }
Future<Map<String, String>> getHeaders(String url, 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)); var req = http.Request('GET', Uri.parse(url));
if (headers != null) { if (headers != null) {
req.headers.addAll(headers); req.headers.addAll(headers);
} }
var client = http.Client(); var client = IOClient(createHttpClient(allowInsecure));
var response = await client.send(req); var response = await client.send(req);
if (response.statusCode < 200 || response.statusCode > 299) { if (response.statusCode < 200 || response.statusCode > 299) {
throw ObtainiumError(response.reasonPhrase ?? tr('unexpectedError')); throw ObtainiumError(response.reasonPhrase ?? tr('unexpectedError'));
@@ -361,6 +375,7 @@ class AppsProvider with ChangeNotifier {
late Stream<FGBGType>? foregroundStream; late Stream<FGBGType>? foregroundStream;
late StreamSubscription<FGBGType>? foregroundSubscription; late StreamSubscription<FGBGType>? foregroundSubscription;
late Directory APKDir; late Directory APKDir;
late Directory iconsCacheDir;
late SettingsProvider settingsProvider = SettingsProvider(); late SettingsProvider settingsProvider = SettingsProvider();
Iterable<AppInMemory> getAppValues() => apps.values.map((a) => a.deepCopy()); Iterable<AppInMemory> getAppValues() => apps.values.map((a) => a.deepCopy());
@@ -379,12 +394,21 @@ class AppsProvider with ChangeNotifier {
var cacheDirs = await getExternalCacheDirectories(); var cacheDirs = await getExternalCacheDirectories();
if (cacheDirs?.isNotEmpty ?? false) { if (cacheDirs?.isNotEmpty ?? false) {
APKDir = cacheDirs!.first; APKDir = cacheDirs!.first;
iconsCacheDir = Directory('${cacheDirs.first.path}/icons');
if (!iconsCacheDir.existsSync()) {
iconsCacheDir.createSync();
}
} else { } else {
APKDir = APKDir =
Directory('${(await getExternalStorageDirectory())!.path}/apks'); Directory('${(await getExternalStorageDirectory())!.path}/apks');
if (!APKDir.existsSync()) { if (!APKDir.existsSync()) {
APKDir.createSync(); APKDir.createSync();
} }
iconsCacheDir =
Directory('${(await getExternalStorageDirectory())!.path}/icons');
if (!iconsCacheDir.existsSync()) {
iconsCacheDir.createSync();
}
} }
if (!isBg) { if (!isBg) {
// Load Apps into memory (in background processes, this is done later instead of in the constructor) // Load Apps into memory (in background processes, this is done later instead of in the constructor)
@@ -447,11 +471,15 @@ class AppsProvider with ChangeNotifier {
notificationsProvider?.cancel(notif.id); notificationsProvider?.cancel(notif.id);
int? prevProg; int? prevProg;
var fileNameNoExt = '${app.id}-${downloadUrl.hashCode}'; var fileNameNoExt = '${app.id}-${downloadUrl.hashCode}';
if (source.urlsAlwaysHaveExtension) {
fileNameNoExt =
'$fileNameNoExt.${app.apkUrls[app.preferredApkIndex].key.split('.').last}';
}
var headers = await source.getRequestHeaders(app.additionalSettings, var headers = await source.getRequestHeaders(app.additionalSettings,
forAPKDownload: true); forAPKDownload: true);
var downloadedFile = await downloadFileWithRetry( var downloadedFile = await downloadFileWithRetry(
downloadUrl, fileNameNoExt, false, headers: headers, downloadUrl, fileNameNoExt, source.urlsAlwaysHaveExtension,
(double? progress) { headers: headers, (double? progress) {
int? prog = progress?.ceil(); int? prog = progress?.ceil();
if (apps[app.id] != null) { if (apps[app.id] != null) {
apps[app.id]!.downloadProgress = progress; apps[app.id]!.downloadProgress = progress;
@@ -462,7 +490,9 @@ class AppsProvider with ChangeNotifier {
notificationsProvider?.notify(notif); notificationsProvider?.notify(notif);
} }
prevProg = prog; 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' // Set to 90 for remaining steps, will make null in 'finally'
if (apps[app.id] != null) { if (apps[app.id] != null) {
apps[app.id]!.downloadProgress = -1; apps[app.id]!.downloadProgress = -1;
@@ -485,8 +515,17 @@ class AppsProvider with ChangeNotifier {
.listSync() .listSync()
.where((e) => e.path.toLowerCase().endsWith('.apk')) .where((e) => e.path.toLowerCase().endsWith('.apk'))
.toList(); .toList();
newInfo = for (var i = 0; i < apks.length; i++) {
await pm.getPackageArchiveInfo(archiveFilePath: apks.first.path); try {
newInfo = await pm.getPackageArchiveInfo(
archiveFilePath: apks.first.path);
break;
} catch (e) {
if (i == apks.length - 1) {
rethrow;
}
}
}
} }
if (newInfo == null) { if (newInfo == null) {
downloadedFile.delete(); downloadedFile.delete();
@@ -844,7 +883,11 @@ class AppsProvider with ChangeNotifier {
if (needBGWorkaround) { if (needBGWorkaround) {
// ignore: use_build_context_synchronously // ignore: use_build_context_synchronously
installApk(downloadedFile, contextIfNewInstall, installApk(downloadedFile, contextIfNewInstall,
needsBGWorkaround: true); needsBGWorkaround: true,
shizukuPretendToBeGooglePlay: apps[id]!
.app
.additionalSettings['shizukuPretendToBeGooglePlay'] ==
true);
} else { } else {
// ignore: use_build_context_synchronously // ignore: use_build_context_synchronously
sayInstalled = await installApk(downloadedFile, contextIfNewInstall, sayInstalled = await installApk(downloadedFile, contextIfNewInstall,
@@ -948,11 +991,16 @@ class AppsProvider with ChangeNotifier {
} }
for (var res in downloadResults) { for (var res in downloadResults) {
if (!errors.appIdNames.containsKey(res['id'])) { if (!errors.appIdNames.containsKey(res['id'])) {
try {
await installFn( await installFn(
res['id'] as String, res['id'] as String,
res['willBeSilent'] as bool, res['willBeSilent'] as bool,
res['downloadedFile'] as DownloadedApk?, res['downloadedFile'] as DownloadedApk?,
res['downloadedDir'] as DownloadedXApkDir?); res['downloadedDir'] as DownloadedXApkDir?);
} catch (e) {
var id = res['id'] as String;
errors.add(id, e, appName: apps[id]?.name);
}
} }
} }
@@ -1012,7 +1060,8 @@ class AppsProvider with ChangeNotifier {
.getRequestHeaders(app.additionalSettings, .getRequestHeaders(app.additionalSettings,
forAPKDownload: forAPKDownload:
fileUrl.key.endsWith('.apk') ? true : false), fileUrl.key.endsWith('.apk') ? true : false),
useExisting: false); useExisting: false,
allowInsecure: app.additionalSettings['allowInsecure'] == true);
notificationsProvider notificationsProvider
.notify(DownloadedNotification(fileUrl.key, fileUrl.value)); .notify(DownloadedNotification(fileUrl.key, fileUrl.value));
} catch (e) { } catch (e) {
@@ -1258,10 +1307,16 @@ class AppsProvider with ChangeNotifier {
notifyListeners(); notifyListeners();
} }
Future<void> updateAppIcon(String? appId) async { Future<void> updateAppIcon(String? appId, {bool ignoreCache = false}) async {
if (apps[appId]?.icon == null) { if (apps[appId]?.icon == null) {
var icon = var cachedIcon = File('${iconsCacheDir.path}/$appId.png');
(await apps[appId]?.installedInfo?.applicationInfo?.getAppIcon()); 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) { if (icon != null) {
apps.update( apps.update(
apps[appId]!.app.id, apps[appId]!.app.id,
@@ -1559,12 +1614,13 @@ class AppsProvider with ChangeNotifier {
} }
String? returnPath; String? returnPath;
if (!pickOnly) { if (!pickOnly) {
var encoder = const JsonEncoder.withIndent(" ");
Map<String, dynamic> finalExport = generateExportJSON(); Map<String, dynamic> finalExport = generateExportJSON();
var result = await saf.createFile(exportDir, var result = await saf.createFile(exportDir,
displayName: displayName:
'${tr('obtainiumExportHyphenatedLowercase')}-${DateTime.now().toIso8601String().replaceAll(':', '-')}${isAuto ? '-auto' : ''}.json', '${tr('obtainiumExportHyphenatedLowercase')}-${DateTime.now().toIso8601String().replaceAll(':', '-')}${isAuto ? '-auto' : ''}.json',
mimeType: 'application/json', mimeType: 'application/json',
bytes: Uint8List.fromList(utf8.encode(jsonEncode(finalExport)))); bytes: Uint8List.fromList(utf8.encode(encoder.convert(finalExport))));
if (result == null) { if (result == null) {
throw ObtainiumError(tr('unexpectedError')); throw ObtainiumError(tr('unexpectedError'));
} }

View File

@@ -2,11 +2,13 @@
// AppSource is an abstract class with a concrete implementation for each source // AppSource is an abstract class with a concrete implementation for each source
import 'dart:convert'; import 'dart:convert';
import 'dart:io';
import 'package:device_info_plus/device_info_plus.dart'; import 'package:device_info_plus/device_info_plus.dart';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:html/dom.dart'; import 'package:html/dom.dart';
import 'package:http/http.dart'; import 'package:http/http.dart';
import 'package:http/io_client.dart';
import 'package:obtainium/app_sources/apkmirror.dart'; import 'package:obtainium/app_sources/apkmirror.dart';
import 'package:obtainium/app_sources/apkpure.dart'; import 'package:obtainium/app_sources/apkpure.dart';
import 'package:obtainium/app_sources/aptoide.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/sourcehut.dart';
import 'package:obtainium/app_sources/steammobile.dart'; import 'package:obtainium/app_sources/steammobile.dart';
import 'package:obtainium/app_sources/telegramapp.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/uptodown.dart';
import 'package:obtainium/app_sources/vlc.dart'; import 'package:obtainium/app_sources/vlc.dart';
import 'package:obtainium/app_sources/whatsapp.dart'; import 'package:obtainium/app_sources/whatsapp.dart';
@@ -399,6 +402,15 @@ getSourceRegex(List<String> hosts) {
return '(${hosts.join('|').replaceAll('.', '\\.')})'; 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 { abstract class AppSource {
List<String> hosts = []; List<String> hosts = [];
bool hostChanged = false; bool hostChanged = false;
@@ -412,6 +424,7 @@ abstract class AppSource {
bool showReleaseDateAsVersionToggle = false; bool showReleaseDateAsVersionToggle = false;
bool versionDetectionDisallowed = false; bool versionDetectionDisallowed = false;
List<String> excludeCommonSettingKeys = []; List<String> excludeCommonSettingKeys = [];
bool urlsAlwaysHaveExtension = false;
AppSource() { AppSource() {
name = runtimeType.toString(); name = runtimeType.toString();
@@ -453,17 +466,25 @@ abstract class AppSource {
Future<Response> sourceRequest( Future<Response> sourceRequest(
String url, Map<String, dynamic> additionalSettings, String url, Map<String, dynamic> additionalSettings,
{bool followRedirects = true}) async { {bool followRedirects = true, Object? postBody}) async {
var requestHeaders = await getRequestHeaders(additionalSettings); var requestHeaders = await getRequestHeaders(additionalSettings);
if (requestHeaders != null || followRedirects == false) { 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; req.followRedirects = followRedirects;
if (requestHeaders != null) { if (requestHeaders != null) {
req.headers.addAll(requestHeaders); 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 { } else {
return get(Uri.parse(url)); return postBody == null
? get(Uri.parse(url))
: post(Uri.parse(url), body: jsonEncode(postBody));
} }
} }
@@ -471,7 +492,7 @@ abstract class AppSource {
// //
} }
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) {
throw NotImplementedError(); throw NotImplementedError();
} }
@@ -537,6 +558,10 @@ abstract class AppSource {
GeneratedFormSwitch('shizukuPretendToBeGooglePlay', GeneratedFormSwitch('shizukuPretendToBeGooglePlay',
label: tr('shizukuPretendToBeGooglePlay'), defaultValue: false) label: tr('shizukuPretendToBeGooglePlay'), defaultValue: false)
], ],
[
GeneratedFormSwitch('allowInsecure',
label: tr('allowInsecure'), defaultValue: false)
],
[ [
GeneratedFormSwitch('exemptFromBackgroundUpdates', GeneratedFormSwitch('exemptFromBackgroundUpdates',
label: tr('exemptFromBackgroundUpdates')) label: tr('exemptFromBackgroundUpdates'))
@@ -764,6 +789,7 @@ class SourceProvider {
Aptoide(), Aptoide(),
Uptodown(), Uptodown(),
HuaweiAppGallery(), HuaweiAppGallery(),
Tencent(),
Jenkins(), Jenkins(),
APKMirror(), APKMirror(),
Signal(), Signal(),
@@ -808,7 +834,7 @@ class SourceProvider {
for (var s in sources.where( for (var s in sources.where(
(element) => element.hosts.isEmpty && !element.neverAutoSelect)) { (element) => element.hosts.isEmpty && !element.neverAutoSelect)) {
try { try {
s.sourceSpecificStandardizeURL(url); s.sourceSpecificStandardizeURL(url, forSelection: true);
source = s; source = s;
break; break;
} catch (e) { } catch (e) {

View File

@@ -47,10 +47,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: app_links name: app_links
sha256: ae5f9a1b7d40d26178f605414be81ed4260350b4fae8259fe5ca4f89fe70c4af sha256: ad1a6d598e7e39b46a34f746f9a8b011ee147e4c275d407fa457e7a62f84dd99
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.1.4" version: "6.3.2"
app_links_linux: app_links_linux:
dependency: transitive dependency: transitive
description: description:
@@ -103,10 +103,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: background_fetch name: background_fetch
sha256: b5c298c911bc2ce41152668bc72eb0488f0665d75bc6d1e69e7d8367763eddcd sha256: e9f26ae54d88310b7ac2a68f2f9fcee0081a4d5f11100f233a70702021e7ac4f
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.5" version: "1.3.7"
boolean_selector: boolean_selector:
dependency: transitive dependency: transitive
description: description:
@@ -159,10 +159,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: connectivity_plus name: connectivity_plus
sha256: "3e7d1d9dbae40ae82cbe6c23c518f0c4ffe32764ee9749b9a99d32cbac8734f6" sha256: "2056db5241f96cdc0126bd94459fc4cdc13876753768fc7a31c425e50a7177d0"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.0.4" version: "6.0.5"
connectivity_plus_platform_interface: connectivity_plus_platform_interface:
dependency: transitive dependency: transitive
description: description:
@@ -183,10 +183,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: crypto name: crypto
sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.3" version: "3.0.5"
csslib: csslib:
dependency: transitive dependency: transitive
description: description:
@@ -215,10 +215,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: device_info_plus name: device_info_plus
sha256: "93429694c9253d2871b3af80cf11b3cbb5c65660d402ed7bf69854ce4a089f82" sha256: a7fd703482b391a87d60b6061d04dfdeab07826b96f9abd8f5ed98068acc0074
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "10.1.1" version: "10.1.2"
device_info_plus_platform_interface: device_info_plus_platform_interface:
dependency: transitive dependency: transitive
description: description:
@@ -271,10 +271,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: ffi name: ffi
sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21" sha256: "16ed7b077ef01ad6170a3d0c57caa4a112a38d7a2ed5602e0aca9ca6f3d98da6"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.2" version: "2.1.3"
file: file:
dependency: transitive dependency: transitive
description: description:
@@ -287,10 +287,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: file_picker name: file_picker
sha256: "825aec673606875c33cd8d3c4083f1a3c3999015a84178b317b7ef396b7384f3" sha256: "167bb619cdddaa10ef2907609feb8a79c16dfa479d3afaf960f8e223f754bf12"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "8.0.7" version: "8.1.2"
fixnum: fixnum:
dependency: transitive dependency: transitive
description: description:
@@ -303,18 +303,18 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: flex_color_picker name: flex_color_picker
sha256: "809af4ec82ede3b140ed0219b97d548de99e47aa4b99b14a10f705a2dbbcba5e" sha256: "12dc855ae8ef5491f529b1fc52c655f06dcdf4114f1f7fdecafa41eec2ec8d79"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.5.1" version: "3.6.0"
flex_seed_scheme: flex_seed_scheme:
dependency: transitive dependency: transitive
description: description:
name: flex_seed_scheme name: flex_seed_scheme
sha256: cc08c81879ecfd2ab840664ce4770980da0b8a319e35f51bcf763849b7f7596b sha256: "7639d2c86268eff84a909026eb169f008064af0fb3696a651b24b0fa24a40334"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.2" version: "3.4.1"
flutter: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
@@ -332,10 +332,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_fgbg name: flutter_fgbg
sha256: "5e61a2ff2e2e83614ae7690bea3dfa74bbd91b5c083e81ce07692411ce65e3d7" sha256: e02ad0738ba5fc7f331b62acb0d74aa540626a6441ae18fad685faa5ac4ad7a5
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.4.0" version: "0.6.0"
flutter_keyboard_visibility: flutter_keyboard_visibility:
dependency: transitive dependency: transitive
description: description:
@@ -388,26 +388,26 @@ packages:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: flutter_launcher_icons name: flutter_launcher_icons
sha256: "526faf84284b86a4cb36d20a5e45147747b7563d921373d4ee0559c54fcdbcea" sha256: "619817c4b65b322b5104b6bb6dfe6cda62d9729bd7ad4303ecc8b4e690a67a77"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.13.1" version: "0.14.1"
flutter_lints: flutter_lints:
dependency: "direct dev" dependency: "direct dev"
description: description:
name: flutter_lints name: flutter_lints
sha256: "3f41d009ba7172d5ff9be5f6e6e6abb4300e263aab8866d2a0842ed2a70f8f0c" sha256: "5398f14efa795ffb7a33e9b6a08798b26a180edac4ad7db3f231e40f82ce11e1"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.0.0" version: "5.0.0"
flutter_local_notifications: flutter_local_notifications:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_local_notifications name: flutter_local_notifications
sha256: dd6676d8c2926537eccdf9f72128bbb2a9d0814689527b17f92c248ff192eaf3 sha256: "49eeef364fddb71515bc78d5a8c51435a68bccd6e4d68e25a942c5e47761ae71"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "17.2.1+2" version: "17.2.3"
flutter_local_notifications_linux: flutter_local_notifications_linux:
dependency: transitive dependency: transitive
description: description:
@@ -433,18 +433,18 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_markdown name: flutter_markdown
sha256: "2e8a801b1ded5ea001a4529c97b1f213dcb11c6b20668e081cafb23468593514" sha256: e17575ca576a34b46c58c91f9948891117a1bd97815d2e661813c7f90c647a78
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.3" version: "0.7.3+2"
flutter_plugin_android_lifecycle: flutter_plugin_android_lifecycle:
dependency: transitive dependency: transitive
description: description:
name: flutter_plugin_android_lifecycle name: flutter_plugin_android_lifecycle
sha256: "9d98bd47ef9d34e803d438f17fd32b116d31009f534a6fa5ce3a1167f189a6de" sha256: "9ee02950848f61c4129af3d6ec84a1cfc0e47931abc746b03e7a3bc3e8ff6eda"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.21" version: "2.0.22"
flutter_test: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter
@@ -467,10 +467,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: fluttertoast name: fluttertoast
sha256: "7eae679e596a44fdf761853a706f74979f8dd3cd92cf4e23cae161fda091b847" sha256: "95f349437aeebe524ef7d6c9bde3e6b4772717cf46a0eb6a3ceaddc740b297cc"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "8.2.6" version: "8.2.8"
fraction: fraction:
dependency: transitive dependency: transitive
description: description:
@@ -571,10 +571,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: lints name: lints
sha256: "976c774dd944a42e83e2467f4cc670daef7eed6295b10b36ae8c85bcbf828235" sha256: "3315600f3fb3b135be672bf4a178c55f274bebe368325ae18462c89ac1e3b413"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.0.0" version: "5.0.0"
markdown: markdown:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -611,10 +611,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: mime name: mime
sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.5" version: "1.0.6"
nested: nested:
dependency: transitive dependency: transitive
description: description:
@@ -651,10 +651,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: path_provider_android name: path_provider_android
sha256: "490539678396d4c3c0b06efdaab75ae60675c3e0c66f72bc04c2e2c1e0e2abeb" sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.9" version: "2.2.10"
path_provider_foundation: path_provider_foundation:
dependency: transitive dependency: transitive
description: description:
@@ -699,10 +699,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: permission_handler_android name: permission_handler_android
sha256: eaf2a1ec4472775451e88ca6a7b86559ef2f1d1ed903942ed135e38ea0097dca sha256: "76e4ab092c1b240d31177bb64d2b0bea43f43d0e23541ec866151b9f7b2490fa"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "12.0.8" version: "12.0.12"
permission_handler_apple: permission_handler_apple:
dependency: transitive dependency: transitive
description: description:
@@ -715,18 +715,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: permission_handler_html name: permission_handler_html
sha256: "6cac773d389e045a8d4f85418d07ad58ef9e42a56e063629ce14c4c26344de24" sha256: af26edbbb1f2674af65a8f4b56e1a6f526156bc273d0e65dd8075fab51c78851
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.1.2" version: "0.1.3+2"
permission_handler_platform_interface: permission_handler_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: permission_handler_platform_interface name: permission_handler_platform_interface
sha256: fe0ffe274d665be8e34f9c59705441a7d248edebbe5d9e3ec2665f88b79358ea sha256: e9c8eadee926c4532d0305dff94b85bf961f16759c3af791486613152af4b4f9
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.2.2" version: "4.2.3"
permission_handler_windows: permission_handler_windows:
dependency: transitive dependency: transitive
description: description:
@@ -803,10 +803,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: share_plus name: share_plus
sha256: "59dfd53f497340a0c3a81909b220cfdb9b8973a91055c4e5ab9b9b9ad7c513c0" sha256: "468c43f285207c84bcabf5737f33b914ceb8eb38398b91e5e3ad1698d1b72a52"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "10.0.0" version: "10.0.2"
share_plus_platform_interface: share_plus_platform_interface:
dependency: transitive dependency: transitive
description: description:
@@ -819,34 +819,34 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: shared_preferences name: shared_preferences
sha256: c272f9cabca5a81adc9b0894381e9c1def363e980f960fa903c604c471b22f68 sha256: "746e5369a43170c25816cc472ee016d3a66bc13fcf430c0bc41ad7b4b2922051"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.1" version: "2.3.2"
shared_preferences_android: shared_preferences_android:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_android name: shared_preferences_android
sha256: "041be4d9d2dc6079cf342bc8b761b03787e3b71192d658220a56cac9c04a0294" sha256: "480ba4345773f56acda9abf5f50bd966f581dac5d514e5fc4a18c62976bbba7e"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.0" version: "2.3.2"
shared_preferences_foundation: shared_preferences_foundation:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_foundation name: shared_preferences_foundation
sha256: "671e7a931f55a08aa45be2a13fe7247f2a41237897df434b30d2012388191833" sha256: c4b35f6cb8f63c147312c054ce7c2254c8066745125264f0c88739c417fc9d9f
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.5.0" version: "2.5.2"
shared_preferences_linux: shared_preferences_linux:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_linux name: shared_preferences_linux
sha256: "2ba0510d3017f91655b7543e9ee46d48619de2a2af38e5c790423f7007c7ccc1" sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.4.0" version: "2.4.1"
shared_preferences_platform_interface: shared_preferences_platform_interface:
dependency: transitive dependency: transitive
description: description:
@@ -859,18 +859,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_web name: shared_preferences_web
sha256: "59dc807b94d29d52ddbb1b3c0d3b9d0a67fc535a64e62a5542c8db0513fcb6c2" sha256: d2ca4132d3946fec2184261726b355836a82c33d7d5b67af32692aff18a4684e
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.4.1" version: "2.4.2"
shared_preferences_windows: shared_preferences_windows:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_windows name: shared_preferences_windows
sha256: "398084b47b7f92110683cac45c6dc4aae853db47e470e5ddcd52cab7f7196ab2" sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.4.0" version: "2.4.1"
shared_storage: shared_storage:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -913,18 +913,18 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: sqflite name: sqflite
sha256: a43e5a27235518c03ca238e7b4732cf35eabe863a369ceba6cbefa537a66f16d sha256: ff5a2436ef8ebdfda748fbfe957f9981524cb5ff11e7bafa8c42771840e8a788
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.3+1" version: "2.3.3+2"
sqflite_common: sqflite_common:
dependency: transitive dependency: transitive
description: description:
name: sqflite_common name: sqflite_common
sha256: "3da423ce7baf868be70e2c0976c28a1bb2f73644268b7ffa7d2e08eab71f16a4" sha256: "2d8e607db72e9cb7748c9c6e739e2c9618320a5517de693d5a24609c4671b1a4"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.5.4" version: "2.5.4+4"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
@@ -953,10 +953,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: synchronized name: synchronized
sha256: "539ef412b170d65ecdafd780f924e5be3f60032a1128df156adad6c5b373d558" sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.0+1" version: "3.3.0+3"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
@@ -1001,10 +1001,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_android name: url_launcher_android
sha256: "94d8ad05f44c6d4e2ffe5567ab4d741b82d62e3c8e288cc1fcea45965edf47c9" sha256: e35a698ac302dd68e41f73250bd9517fe3ab5fa4f18fe4647a0872db61bacbab
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.3.8" version: "6.3.10"
url_launcher_ios: url_launcher_ios:
dependency: transitive dependency: transitive
description: description:
@@ -1017,18 +1017,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_linux name: url_launcher_linux
sha256: ab360eb661f8879369acac07b6bb3ff09d9471155357da8443fd5d3cf7363811 sha256: e2b9622b4007f97f504cd64c0128309dfb978ae66adbe944125ed9e1750f06af
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.1" version: "3.2.0"
url_launcher_macos: url_launcher_macos:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_macos name: url_launcher_macos
sha256: "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de" sha256: "769549c999acdb42b8bcfa7c43d72bf79a382ca7441ab18a808e101149daf672"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.2.0" version: "3.2.1"
url_launcher_platform_interface: url_launcher_platform_interface:
dependency: transitive dependency: transitive
description: description:
@@ -1057,10 +1057,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: uuid name: uuid
sha256: "83d37c7ad7aaf9aa8e275490669535c8080377cfa7a7004c24dfac53afffaa90" sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.4.2" version: "4.5.1"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
@@ -1073,34 +1073,34 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: vm_service name: vm_service
sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "14.2.4" version: "14.2.5"
web: web:
dependency: transitive dependency: transitive
description: description:
name: web name: web
sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27" sha256: cd3543bd5798f6ad290ea73d210f423502e71900302dde696f8bff84bf89a1cb
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.5.1" version: "1.1.0"
webview_flutter: webview_flutter:
dependency: "direct main" dependency: "direct main"
description: description:
name: webview_flutter name: webview_flutter
sha256: "6869c8786d179f929144b4a1f86e09ac0eddfe475984951ea6c634774c16b522" sha256: ec81f57aa1611f8ebecf1d2259da4ef052281cb5ad624131c93546c79ccc7736
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.8.0" version: "4.9.0"
webview_flutter_android: webview_flutter_android:
dependency: transitive dependency: transitive
description: description:
name: webview_flutter_android name: webview_flutter_android
sha256: c66651fba15f9d7ddd31daec42da8d6bce46c85610a7127e3ebcb39a4395c3c9 sha256: "6e64fcb1c19d92024da8f33503aaeeda35825d77142c01d0ea2aa32edc79fdc8"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.16.6" version: "3.16.7"
webview_flutter_platform_interface: webview_flutter_platform_interface:
dependency: transitive dependency: transitive
description: description:
@@ -1113,26 +1113,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: webview_flutter_wkwebview name: webview_flutter_wkwebview
sha256: "9c62cc46fa4f2d41e10ab81014c1de470a6c6f26051a2de32111b2ee55287feb" sha256: "1942a12224ab31e9508cf00c0c6347b931b023b8a4f0811e5dec3b06f94f117d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.14.0" version: "3.15.0"
win32: win32:
dependency: transitive dependency: transitive
description: description:
name: win32 name: win32
sha256: "015002c060f1ae9f41a818f2d5640389cc05283e368be19dc8d77cecb43c40c9" sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.5.3" version: "5.5.4"
win32_registry: win32_registry:
dependency: transitive dependency: transitive
description: description:
name: win32_registry name: win32_registry
sha256: "723b7f851e5724c55409bb3d5a32b203b3afe8587eaf5dafb93a5fed8ecda0d6" sha256: "21ec76dfc731550fd3e2ce7a33a9ea90b828fdf19a5c3bcf556fa992cfa99852"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.4" version: "1.1.5"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:
@@ -1158,5 +1158,5 @@ packages:
source: hosted source: hosted
version: "3.1.2" version: "3.1.2"
sdks: sdks:
dart: ">=3.4.0 <4.0.0" dart: ">=3.5.0 <4.0.0"
flutter: ">=3.22.0" flutter: ">=3.24.0"

View File

@@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # 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 # 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. # of the product and file versions while build-number is used as the build suffix.
version: 1.1.19+2276 version: 1.1.25+2282
environment: environment:
sdk: '>=3.0.0 <4.0.0' sdk: '>=3.0.0 <4.0.0'
@@ -37,7 +37,7 @@ dependencies:
# Use with the CupertinoIcons class for iOS style icons. # Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.5 cupertino_icons: ^1.0.5
path_provider: ^2.0.11 path_provider: ^2.0.11
flutter_fgbg: ^0.4.0 flutter_fgbg: ^0.6.0
flutter_local_notifications: ^17.0.0 flutter_local_notifications: ^17.0.0
provider: ^6.0.3 provider: ^6.0.3
http: ^1.0.0 http: ^1.0.0
@@ -84,14 +84,14 @@ dependencies:
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
sdk: flutter 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 # The "flutter_lints" package below contains a set of recommended lints to
# encourage good coding practices. The lint set provided by the package is # 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 # activated in the `analysis_options.yaml` file located at the root of your
# package. See that file for information about deactivating specific lint # package. See that file for information about deactivating specific lint
# rules and activating additional ones. # rules and activating additional ones.
flutter_lints: ^4.0.0 flutter_lints: ^5.0.0
flutter_launcher_icons: flutter_launcher_icons:
android: "ic_launcher" android: "ic_launcher"