Compare commits

...

50 Commits

Author SHA1 Message Date
Imran
78e20984ed Merge pull request #1778 from ImranR98/dev
Yet another APKPure bugfix (last one)
2024-08-06 16:48:37 -04:00
Imran Remtulla
f963996a19 Version increment 2024-08-06 16:48:02 -04:00
Imran Remtulla
1ddf2869a6 Yet another APKPure bugfix (last one) 2024-08-06 16:47:38 -04:00
Imran
f9b97b4469 Merge pull request #1777 from ImranR98/dev
APKPure bugfix: Correctly extract APKs that are multi-arch but not universal
2024-08-06 15:52:31 -04:00
Imran Remtulla
6f706ab493 Update Flutter version + update packages, increment version 2024-08-06 15:51:54 -04:00
Imran Remtulla
ed2e6e2e9e APKPure bugfix: Correctly extract APKs that are multi-arch but not universal 2024-08-06 15:49:44 -04:00
Imran
f00758cd83 Merge pull request #1774 from ImranR98/dev
- Fix bug introduced in v1.1.16: APKPure fails to find universal APKs
- Fix bugs found in APKPure URL matching
2024-08-06 11:47:56 -04:00
Imran
25bd61f289 Merge pull request #1773 from Kevinr99089/main
Updating certain words (French File)
2024-08-06 11:46:46 -04:00
Imran Remtulla
25d19d22cf Increment version 2024-08-06 11:46:25 -04:00
Imran Remtulla
9ffb91266f Re-order some sources 2024-08-06 11:45:49 -04:00
Imran Remtulla
8d921cfbf1 Fix bugs in APKPure URL matching 2024-08-06 11:45:01 -04:00
Imran Remtulla
3ed6b168e1 Fix bug from previous version: APKPure fails to find universal APKs 2024-08-06 11:36:39 -04:00
Kévin
4a45c900c3 Some minor corrections
- A job well done is the key (of I don't know what, but it's the key...)
2024-08-06 01:50:03 +02:00
Imran
7e9e6958a3 Merge pull request #1771 from Kevinr99089/main
French translation completely revised
2024-08-05 18:01:02 -04:00
Kévin
9de082f684 Last modification before PR 2024-08-05 23:38:41 +02:00
Kévin
b40afc7329 Add files via upload 2024-08-05 23:32:32 +02:00
Imran
4fb3da45e9 Merge pull request #1770 from ImranR98/dev
- APKPure: Filter releases by available architecture (#598)
- Use a more obvious icon (magnifying glass) for the "filter apps" button (#1762)
2024-08-05 16:33:29 -04:00
Imran Remtulla
1f8e051ed6 Merge remote-tracking branch 'origin/main' into dev 2024-08-05 16:31:15 -04:00
Imran Remtulla
adc4e7c2b4 Fix error after fgbg package update in previous commit 2024-08-05 16:30:12 -04:00
Imran Remtulla
325d2f48dc More consistent tagline 2024-08-05 16:25:02 -04:00
Imran Remtulla
aa00f42a23 Update packages, increment version 2024-08-05 16:24:30 -04:00
Imran Remtulla
62dbffab52 Use a more obvious icon (magnifying glass) for the "filter apps" button (#1762) 2024-08-05 16:21:42 -04:00
Imran Remtulla
fd38444836 Improvement on previous commit 2024-08-05 16:08:12 -04:00
Imran Remtulla
71cc49a30f APKPure: Filter releases by available architecture (#598) 2024-08-05 15:53:44 -04:00
Imran
e4187c8e17 Merge pull request #1755 from ImranR98/dev
Update GitLab for new uploads URL scheme (#1742), Ability to share selective exports (#1752)
2024-07-28 17:28:53 -04:00
Imran Remtulla
15ae98d426 Update Flutter + packages, increment version 2024-07-28 17:27:18 -04:00
Imran Remtulla
7b4fa2269e Merge remote-tracking branch 'origin/main' into dev 2024-07-28 17:25:02 -04:00
Imran
656e14793d Merge pull request #1748 from asandikci/main
translate: update turkish
2024-07-28 17:24:41 -04:00
Imran
d23381147b Merge pull request #1746 from bluefly000/japanese-translation
Update ja.json
2024-07-28 17:24:33 -04:00
Imran
cfe184c6d5 Merge pull request #1749 from VladWinner/main
Change the font (support for more languages)
2024-07-28 17:20:21 -04:00
Imran Remtulla
9c16f24a08 Ability to share selective exports (#1752) 2024-07-28 17:18:36 -04:00
Imran Remtulla
ce200403e0 Update GitLab for new uploads URL scheme (#1742) 2024-07-28 16:41:01 -04:00
Vlad Loktionov
caca84f84d Change the font (support for more languages) 2024-07-26 01:18:14 +03:00
Aliberk Sandıkçı
ac2d7b9639 translate: update turkish 2024-07-24 20:02:57 +03:00
bluefly000
78069a9b26 Update ja.json 2024-07-24 14:35:05 +09:00
Imran
3e23fffaea Merge pull request #1725 from ImranR98/dev
- Attempt bugfix for error when on VPN (#1120)
- Translation fixes (#1699)
- GitHub search bugfix (#1705)
- Fix missing trailing slash for path-less URLs (#1715)
- Rename Codeberg to Forgejo (#1722)
- Rename "Version String Extraction" to "Trim Version String" for non-HTML Sources (#1723)
2024-07-14 20:56:22 -04:00
Imran Remtulla
624b9fb6dc Update packages, increment version 2024-07-14 20:50:48 -04:00
Imran Remtulla
fbd6189721 GitHub search bugfix (#1705) 2024-07-14 20:42:20 -04:00
Imran Remtulla
6a44fe227c Fix missing trailing slash for path-less URLs (#1715) 2024-07-14 20:27:42 -04:00
Imran Remtulla
d1cb2688c6 Rename "Version String Extraction" to "Trim Version String" for non-HTML Sources (#1723)
Rename Codeberg to Forgejo (#1722)
2024-07-14 20:20:41 -04:00
Imran
b43b2f9740 Merge pull request #1720 from Erudaro/main
Update bs.json
2024-07-14 02:08:43 -04:00
Imran
6288a9cb8d Merge pull request #1710 from DwainZwerg/for-eXense-auth-Update-ru.json-see-#1703](https/github.com/ImranR98/Obtainium/issues/1703)
for eXense-auth: Update ru.json (issue#1703)
2024-07-14 02:08:31 -04:00
Erudaro
18c6f75054 Update bs.json 2024-07-13 23:56:33 +00:00
DwainZwerg
1f8d187b84 Update ru.json
see [#1703](https://github.com/ImranR98/Obtainium/issues/1703)
2024-07-07 12:13:07 +02:00
Imran Remtulla
77618ad1ff Merge remote-tracking branch 'origin/main' into dev 2024-06-30 13:02:43 -04:00
Imran
75efd335e9 Update release.yml 2024-06-30 12:56:28 -04:00
Imran
c4438de200 Update release.yml 2024-06-30 12:55:38 -04:00
Imran Remtulla
e3c9a227d3 Translation fixes 2024-06-29 17:04:34 -04:00
Imran Remtulla
548f859349 Merge remote-tracking branch 'origin/main' into dev 2024-06-29 16:49:16 -04:00
Imran Remtulla
db413badec Attempt bugfix for error when on VPN (#1120) 2024-06-29 16:48:59 -04:00
39 changed files with 1026 additions and 846 deletions

View File

@@ -6,6 +6,9 @@ on:
beta: beta:
type: boolean type: boolean
description: Is beta? description: Is beta?
draft:
type: boolean
description: Is draft?
jobs: jobs:
build: build:
@@ -35,13 +38,7 @@ jobs:
- name: Check submodule - name: Check submodule
id: check_submodule id: check_submodule
run: | run: |
SUBMODULE_COMMIT_LONG="$(git submodule status | head -1 | tail -c +2 | awk '{print $1}')" git checkout ${{ inputs.checkout }}
FLUTTER_COMMIT_SHORT="$(flutter --version | head -2 | tail -1 | awk '{print $4}')"
echo "SUBMODULE_COMMIT_LONG=$SUBMODULE_COMMIT_LONG, FLUTTER_COMMIT_SHORT=$FLUTTER_COMMIT_SHORT"
if ! [[ "$SUBMODULE_COMMIT_LONG" =~ ^$FLUTTER_COMMIT_SHORT ]]; then
echo "Your submodule has not been updated!"
exit 1
fi
- name: Extract Version - name: Extract Version
id: extract_version id: extract_version
@@ -92,5 +89,6 @@ jobs:
token: ${{ secrets.GH_ACCESS_TOKEN }} token: ${{ secrets.GH_ACCESS_TOKEN }}
tag: "${{ steps.extract_version.outputs.tag }}" tag: "${{ steps.extract_version.outputs.tag }}"
prerelease: "${{ steps.extract_version.outputs.beta }}" prerelease: "${{ steps.extract_version.outputs.beta }}"
draft: "${{ inputs.draft }}"
artifacts: ./build/app/outputs/flutter-apk/*-release*.apk* artifacts: ./build/app/outputs/flutter-apk/*-release*.apk*
generateReleaseNotes: true generateReleaseNotes: true

View File

@@ -2,7 +2,7 @@
[![Ceasefire Now](https://badge.techforpalestine.org/default)](https://techforpalestine.org/learn-more) [![Ceasefire Now](https://badge.techforpalestine.org/default)](https://techforpalestine.org/learn-more)
Get Android App Updates Directly From the Source. Get Android app updates straight from the source.
Obtainium allows you to install and update apps directly from their releases pages, and receive notifications when new releases are made available. Obtainium allows you to install and update apps directly from their releases pages, and receive notifications when new releases are made available.
@@ -16,7 +16,7 @@ Currently supported App sources:
- Open Source - General: - Open Source - General:
- [GitHub](https://github.com/) - [GitHub](https://github.com/)
- [GitLab](https://gitlab.com/) - [GitLab](https://gitlab.com/)
- [Codeberg](https://codeberg.org/) - [Forgejo](https://forgejo.org/) ([Codeberg](https://codeberg.org/))
- [F-Droid](https://f-droid.org/) - [F-Droid](https://f-droid.org/)
- Third Party F-Droid Repos - Third Party F-Droid Repos
- [IzzyOnDroid](https://android.izzysoft.de/) - [IzzyOnDroid](https://android.izzysoft.de/)
@@ -25,9 +25,9 @@ Currently supported App sources:
- [APKPure](https://apkpure.net/) - [APKPure](https://apkpure.net/)
- [Aptoide](https://aptoide.com/) - [Aptoide](https://aptoide.com/)
- [Uptodown](https://uptodown.com/) - [Uptodown](https://uptodown.com/)
- [APKMirror](https://apkmirror.com/) (Track-Only)
- [Huawei AppGallery](https://appgallery.huawei.com/) - [Huawei AppGallery](https://appgallery.huawei.com/)
- Jenkins Jobs - Jenkins Jobs
- [APKMirror](https://apkmirror.com/) (Track-Only)
- Open Source - App-Specific: - Open Source - App-Specific:
- [Signal](https://signal.org/) - [Signal](https://signal.org/)
- [VLC](https://videolan.org/) - [VLC](https://videolan.org/)

Binary file not shown.

Binary file not shown.

View File

@@ -24,7 +24,7 @@
"colour": "Boja", "colour": "Boja",
"standard": "Standard", "standard": "Standard",
"custom": "Custom", "custom": "Custom",
"useMaterialYou": "Use Material You", "useMaterialYou": "Koristi Material You temu",
"githubStarredRepos": "GitHub repo-i sa zvjezdicom", "githubStarredRepos": "GitHub repo-i sa zvjezdicom",
"uname": "Korisničko ime", "uname": "Korisničko ime",
"wrongArgNum": "Naveden je pogrešan broj argumenata", "wrongArgNum": "Naveden je pogrešan broj argumenata",
@@ -113,7 +113,7 @@
"dark": "Tamna", "dark": "Tamna",
"light": "Svijetla", "light": "Svijetla",
"followSystem": "Pratite sistem", "followSystem": "Pratite sistem",
"followSystemThemeExplanation": "Following system theme is possible only by using third-party applications", "followSystemThemeExplanation": "Praćenje sistemske teme je moguće jedino koristeći aplikacije treće strane",
"useBlackTheme": "Koristite čisto crnu tamnu temu", "useBlackTheme": "Koristite čisto crnu tamnu temu",
"appSortBy": "Aplikacije sortirane po", "appSortBy": "Aplikacije sortirane po",
"authorName": "Autor/Ime", "authorName": "Autor/Ime",
@@ -147,10 +147,10 @@
"noNewUpdates": "Nema novih ažuriranja.", "noNewUpdates": "Nema novih ažuriranja.",
"xHasAnUpdate": "{} ima ažuriranje.", "xHasAnUpdate": "{} ima ažuriranje.",
"appsUpdated": "Aplikacije su ažurirane", "appsUpdated": "Aplikacije su ažurirane",
"appsNotUpdated": "Failed to update applications", "appsNotUpdated": "Neuspješno ažuriranje aplikacija",
"appsUpdatedNotifDescription": "Obavještava korisnika da su u pozadini primijenjena ažuriranja na jednu ili više aplikacija", "appsUpdatedNotifDescription": "Obavještava korisnika da su u pozadini primijenjena ažuriranja na jednu ili više aplikacija",
"xWasUpdatedToY": "{} je ažuriran na {}.", "xWasUpdatedToY": "{} je ažuriran na {}.",
"xWasNotUpdatedToY": "Failed to update {} to {}.", "xWasNotUpdatedToY": "Neuspješno ažuriranje {} na {}.",
"errorCheckingUpdates": "Greška pri provjeri ažuriranja", "errorCheckingUpdates": "Greška pri provjeri ažuriranja",
"errorCheckingUpdatesNotifDescription": "Obavijest koja se prikazuje kada provjera sigurnosnog ažuriranja ne uspije", "errorCheckingUpdatesNotifDescription": "Obavijest koja se prikazuje kada provjera sigurnosnog ažuriranja ne uspije",
"appsRemoved": "Aplikacije su uklonjene", "appsRemoved": "Aplikacije su uklonjene",
@@ -191,7 +191,7 @@
"downloadingX": "Preuzimanje {}", "downloadingX": "Preuzimanje {}",
"downloadX": "Download {}", "downloadX": "Download {}",
"downloadedX": "Downloaded {}", "downloadedX": "Downloaded {}",
"releaseAsset": "Release Asset", "releaseAsset": "Fajlovi verzije",
"downloadNotifDescription": "Obavještava korisnika o napretku u preuzimanju aplikacije", "downloadNotifDescription": "Obavještava korisnika o napretku u preuzimanju aplikacije",
"noAPKFound": "APK nije pronađen", "noAPKFound": "APK nije pronađen",
"noVersionDetection": "Nema detekcije verzije", "noVersionDetection": "Nema detekcije verzije",
@@ -253,12 +253,14 @@
"verifyLatestTag": "Provjerite 'posljednu' ('latest') oznaku", "verifyLatestTag": "Provjerite 'posljednu' ('latest') oznaku",
"intermediateLinkRegex": "Filter za 'srednju' vezu za posjetu", "intermediateLinkRegex": "Filter za 'srednju' vezu za posjetu",
"filterByLinkText": "Filtriraj linkove prema tekstu linka", "filterByLinkText": "Filtriraj linkove prema tekstu linka",
"intermediateLinkNotFound": "Intermediate link nije nađen", "intermediateLinkNotFound": "Intermediate veza nije nađena",
"intermediateLink": "srednja karika", "intermediateLink": "Intermediate veza",
"exemptFromBackgroundUpdates": "Izuzmi iz ažuriranja u pozadini (ako su uključeni)", "exemptFromBackgroundUpdates": "Izuzmi iz ažuriranja u pozadini (ako su uključeni)",
"bgUpdatesOnWiFiOnly": "Isključite ažuriranje u pozadini kada niste na WiFi-ju", "bgUpdatesOnWiFiOnly": "Isključite ažuriranje u pozadini kada niste na WiFi-ju",
"autoSelectHighestVersionCode": "Automatski izaberite najveću (verziju) versionCode APK-a", "autoSelectHighestVersionCode": "Automatski izaberite najveću (verziju) versionCode APK-a",
"versionExtractionRegEx": "RegEx ekstrakcija verzije", "versionExtractionRegEx": "RegEx ekstrakcija verzije",
"trimVersionString": "Trim Version String With RegEx",
"matchGroupToUseForX": "Match Group to Use for \"{}\"",
"matchGroupToUse": "Podjesite grupu za upotebu", "matchGroupToUse": "Podjesite grupu za upotebu",
"highlightTouchTargets": "Istaknite manje vidljive touch mete", "highlightTouchTargets": "Istaknite manje vidljive touch mete",
"pickExportDir": "Izaberite datoteku za izvoz", "pickExportDir": "Izaberite datoteku za izvoz",
@@ -288,11 +290,11 @@
"supportFixedAPKURL": "Podržite fiksne APK URL-ove", "supportFixedAPKURL": "Podržite fiksne APK URL-ove",
"selectX": "Izaberite {}", "selectX": "Izaberite {}",
"parallelDownloads": "Dozvoli paralelna preuzimanja", "parallelDownloads": "Dozvoli paralelna preuzimanja",
"useShizuku": "Use Shizuku or Sui to install", "useShizuku": "Koristi Shizuku ili Sui za instaliranje",
"shizukuBinderNotFound": "Shizuku is not running", "shizukuBinderNotFound": "Shizuku nije pokrenut",
"shizukuOld": "Old Shizuku version (<11) - update it", "shizukuOld": "Stara Shizuku verzija (<11) - ažurirajte je",
"shizukuOldAndroidWithADB": "Shizuku running on Android < 8.1 with ADB - update Android or use Sui instead", "shizukuOldAndroidWithADB": "Shizuku pokrenut na Android-u < 8.1 pomoću ADB-a - ažurirajte Android ili koristite Sui",
"shizukuPretendToBeGooglePlay": "Set Google Play as the installation source (if Shizuku is used)", "shizukuPretendToBeGooglePlay": "Postavi Google Play kao izvor instalacije (samo ako je Shizuku u upotrebi)",
"useSystemFont": "Koristite sistemski font", "useSystemFont": "Koristite sistemski font",
"useVersionCodeAsOSVersion": "Koristite kod verzije aplikacije kao verziju koju je otkrio OS", "useVersionCodeAsOSVersion": "Koristite kod verzije aplikacije kao verziju koju je otkrio OS",
"requestHeader": "Zaglavlje zahtjeva", "requestHeader": "Zaglavlje zahtjeva",
@@ -305,13 +307,13 @@
"installed": "Instalirano", "installed": "Instalirano",
"latest": "Najnoviji", "latest": "Najnoviji",
"invertRegEx": "Obrni regularni izraz", "invertRegEx": "Obrni regularni izraz",
"note": "Note", "note": "Zabelješke",
"selfHostedNote": "The \"{}\" dropdown can be used to reach self-hosted/custom instances of any source.", "selfHostedNote": "\"{}\" padajući meni se može koristiti da dosegnete vlastite/prilagođene instance bilo kojeg izvora.",
"badDownload": "The APK could not be parsed (incompatible or partial download)", "badDownload": "APK ne može biti raščlanjen (nekomaptibilno ili delimično preuzimanje)",
"beforeNewInstallsShareToAppVerifier": "Share new Apps with AppVerifier (if available)", "beforeNewInstallsShareToAppVerifier": "Dijeli nove aplikacije sa AppVerifier-om (ako je dostupno)",
"appVerifierInstructionToast": "Share to AppVerifier, then return here when ready.", "appVerifierInstructionToast": "Dijeli sa AppVerifier-om, zatim se vratite kada ste spremni.",
"wiki": "Help/Wiki", "wiki": "Pomoć/Wiki",
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (use at your own risk)", "crowdsourcedConfigsLabel": "Konfiguracije aplikacije obezbeđene pomoću velikog broja ljudi (crowdsourcing) (koristite na svoju odgovornost)",
"removeAppQuestion": { "removeAppQuestion": {
"one": "Želite li ukloniti aplikaciju?", "one": "Želite li ukloniti aplikaciju?",
"other": "Želite li ukloniti aplikacije?" "other": "Želite li ukloniti aplikacije?"
@@ -370,6 +372,6 @@
}, },
"apk": { "apk": {
"one": "{} APK", "one": "{} APK",
"other": "{} APKs" "other": "{} APK-a"
} }
} }

View File

@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "Deaktivovat aktualizace na pozadí, pokud není k dispozici Wi-Fi", "bgUpdatesOnWiFiOnly": "Deaktivovat aktualizace na pozadí, pokud není k dispozici Wi-Fi",
"autoSelectHighestVersionCode": "Automaticky vybrat nejvyšší verzi APK", "autoSelectHighestVersionCode": "Automaticky vybrat nejvyšší verzi APK",
"versionExtractionRegEx": "Extrakce verze pomocí RegEx", "versionExtractionRegEx": "Extrakce verze pomocí RegEx",
"trimVersionString": "Oříznutí řetězce verze pomocí příkazu RegEx",
"matchGroupToUseForX": "Skupina shody, která se použije pro \"{}\"",
"matchGroupToUse": "Odpovídá použité skupině", "matchGroupToUse": "Odpovídá použité skupině",
"highlightTouchTargets": "Zvýraznit méně zjevné cíle dotyku", "highlightTouchTargets": "Zvýraznit méně zjevné cíle dotyku",
"pickExportDir": "Vybrat adresář pro export", "pickExportDir": "Vybrat adresář pro export",

View File

@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "Deaktivér baggrundsopdateringer, når du ikke er på WiFi", "bgUpdatesOnWiFiOnly": "Deaktivér baggrundsopdateringer, når du ikke er på WiFi",
"autoSelectHighestVersionCode": "Auto-vælg højeste versionKode af APK", "autoSelectHighestVersionCode": "Auto-vælg højeste versionKode af APK",
"versionExtractionRegEx": "RegEx for versionsstrengsudtrækning", "versionExtractionRegEx": "RegEx for versionsstrengsudtrækning",
"trimVersionString": "Trim versionsstrengen med RegEx",
"matchGroupToUseForX": "Matchgruppe til brug for \"{}\"",
"matchGroupToUse": "Match gruppe til brug til RegEx for versionsstrengsudtrækning", "matchGroupToUse": "Match gruppe til brug til RegEx for versionsstrengsudtrækning",
"highlightTouchTargets": "Fremhæv mindre åbenlyse berøringsmål", "highlightTouchTargets": "Fremhæv mindre åbenlyse berøringsmål",
"pickExportDir": "Vælg eksportmappe", "pickExportDir": "Vælg eksportmappe",
@@ -305,7 +307,7 @@
"installed": "Installeret", "installed": "Installeret",
"latest": "Seneste", "latest": "Seneste",
"invertRegEx": "Inverter regulært udtryk", "invertRegEx": "Inverter regulært udtryk",
"note": "Note", "note": "Bemærk",
"selfHostedNote": "Rullemenuen \"{}\" kan bruges til at nå selvhostede/brugerdefinerede instanser af enhver kilde.", "selfHostedNote": "Rullemenuen \"{}\" kan bruges til at nå selvhostede/brugerdefinerede instanser af enhver kilde.",
"badDownload": "APK'en kunne ikke analyseres (inkompatibel eller delvis hentning)", "badDownload": "APK'en kunne ikke analyseres (inkompatibel eller delvis hentning)",
"beforeNewInstallsShareToAppVerifier": "Del nye apps med AppVerifier (hvis tilgængelig)", "beforeNewInstallsShareToAppVerifier": "Del nye apps med AppVerifier (hvis tilgængelig)",

View File

@@ -259,6 +259,8 @@
"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": "Versions-Extraktion per RegEx",
"trimVersionString": "Trim Version String mit RegEx",
"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",
@@ -329,12 +331,12 @@
"other": "Die Hintergrundaktualisierungsprüfung fand {} Aktualisierungen benachrichtigt den Benutzer, falls erforderlich" "other": "Die Hintergrundaktualisierungsprüfung fand {} Aktualisierungen benachrichtigt den Benutzer, falls erforderlich"
}, },
"apps": { "apps": {
"eine": "{} App", "one": "{} App",
"andere": "{} Apps" "other": "{} Apps"
}, },
"url": { "url": {
"eine": "{} URL", "one": "{} URL",
"andere": "{} URLs" "other": "{} URLs"
}, },
"minute": { "minute": {
"one": "{} Minute", "one": "{} Minute",

View File

@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "Disable background updates when not on WiFi", "bgUpdatesOnWiFiOnly": "Disable background updates when not on WiFi",
"autoSelectHighestVersionCode": "Auto-select highest versionCode APK", "autoSelectHighestVersionCode": "Auto-select highest versionCode APK",
"versionExtractionRegEx": "Version String Extraction RegEx", "versionExtractionRegEx": "Version String Extraction RegEx",
"trimVersionString": "Trim Version String With RegEx",
"matchGroupToUseForX": "Match Group to Use for \"{}\"",
"matchGroupToUse": "Match Group to Use for Version String Extraction RegEx", "matchGroupToUse": "Match Group to Use for Version String Extraction RegEx",
"highlightTouchTargets": "Highlight less obvious touch targets", "highlightTouchTargets": "Highlight less obvious touch targets",
"pickExportDir": "Pick Export Directory", "pickExportDir": "Pick Export Directory",

View File

@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "Deshabilitar las actualizaciones en segundo plano sin WiFi", "bgUpdatesOnWiFiOnly": "Deshabilitar las actualizaciones en segundo plano sin WiFi",
"autoSelectHighestVersionCode": "Auto selección del paquete APK con versión más reciente", "autoSelectHighestVersionCode": "Auto selección del paquete APK con versión más reciente",
"versionExtractionRegEx": "Versión de extracción regex", "versionExtractionRegEx": "Versión de extracción regex",
"trimVersionString": "Recortar cadena de versión con RegEx",
"matchGroupToUseForX": "Grupo de coincidencia a utilizar para \"{}\"",
"matchGroupToUse": "Grupo a usar para versión de extracción regex", "matchGroupToUse": "Grupo a usar para versión de extracción regex",
"highlightTouchTargets": "Resaltar objetivos menos obvios", "highlightTouchTargets": "Resaltar objetivos menos obvios",
"pickExportDir": "Directorio para exportar", "pickExportDir": "Directorio para exportar",
@@ -333,8 +335,8 @@
"other": "{} Aplicaciones" "other": "{} Aplicaciones"
}, },
"url": { "url": {
"uno": "{} URL", "one": "{} URL",
"otro": "{} URL" "other": "{} URL"
}, },
"minute": { "minute": {
"one": "{} minuto", "one": "{} minuto",

View File

@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "به‌روزرسانی‌های پس‌زمینه را در صورت عدم اتصال به WiFi غیرفعال کنید", "bgUpdatesOnWiFiOnly": "به‌روزرسانی‌های پس‌زمینه را در صورت عدم اتصال به WiFi غیرفعال کنید",
"autoSelectHighestVersionCode": "انتخاب خودکار بالاترین نسخه کد APK", "autoSelectHighestVersionCode": "انتخاب خودکار بالاترین نسخه کد APK",
"versionExtractionRegEx": "نسخه استخراج RegEx", "versionExtractionRegEx": "نسخه استخراج RegEx",
"trimVersionString": "Trim Version String With RegEx",
"matchGroupToUseForX": "Match Group to Use for \"{}\"",
"matchGroupToUse": "گروه مورد استفاده را مطابقت دهید", "matchGroupToUse": "گروه مورد استفاده را مطابقت دهید",
"highlightTouchTargets": "اهداف لمسی کمتر واضح را برجسته کنید", "highlightTouchTargets": "اهداف لمسی کمتر واضح را برجسته کنید",
"pickExportDir": "فهرست برون ریزی را انتخاب کنید", "pickExportDir": "فهرست برون ریزی را انتخاب کنید",

View File

@@ -1,86 +1,86 @@
{ {
"invalidURLForSource": "URL d'application {} invalide", "invalidURLForSource": "URL de l'application {} n'es pas valide",
"noReleaseFound": "Impossible de trouver une version adaptée", "noReleaseFound": "Impossible de trouver une publication correspondante",
"noVersionFound": "Impossible de déterminer la variante de la version", "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",
"cantInstallOlderVersion": "Impossible d'installer une ancienne version d'une application", "cantInstallOlderVersion": "Impossible d'installer une ancienne version de l'application",
"appIdMismatch": "L'ID de 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'a pas implémenté 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 se sont produites",
"unexpectedError": "Erreur inattendue", "unexpectedError": "Erreur inattendue",
"ok": "D'accord", "ok": "Ok",
"and": "et", "and": "et",
"githubPATLabel": "Jeton d'Accès Personnel GitHub (augmente la limite de débit)", "githubPATLabel": "Jeton d'accès personnel GitHub (augmente la limite de débit)",
"includePrereleases": "Inclure les avant-premières", "includePrereleases": "Inclure les versions préliminaires",
"fallbackToOlderReleases": "Retour aux anciennes versions", "fallbackToOlderReleases": "Retour aux anciennes versions",
"filterReleaseTitlesByRegEx": "Filtrer les titres de version par expression régulière", "filterReleaseTitlesByRegEx": "Filtrer les titres de version par expression régulière",
"invalidRegEx": "Expression régulière invalide", "invalidRegEx": "Expression régulière invalide",
"noDescription": "Pas de description", "noDescription": "Aucune description",
"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: LE DÉROULEMENT DOIT AVOIR AU MOINS UNE OPT",
"colour": "Couleur", "colour": "Couleur",
"standard": "Standard", "standard": "Standard",
"custom": "Sur mesure", "custom": "Personnalisé",
"useMaterialYou": "Utiliser Material You", "useMaterialYou": "Utiliser Material You",
"githubStarredRepos": "Dépôts étoilés GitHub", "githubStarredRepos": "Dépôts étoilés GitHub",
"uname": "Nom d'utilisateur", "uname": "Nom d'utilisateur",
"wrongArgNum": "Mauvais nombre d'arguments fournis", "wrongArgNum": "Nombre incorrect des arguments fournis",
"xIsTrackOnly": "{} est en 'Suivi uniquement'", "xIsTrackOnly": "{} en Suivi uniquement",
"source": "Source", "source": "Source",
"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 la télécharger ou l'installer.", "trackOnlyAppDescription": "L'application sera suivie pour les mises à jour, mais Obtainium ne pourra pas le télécharger ou l'installer.",
"cancelled": "Annulé", "cancelled": "Annulé",
"appAlreadyAdded": "Application déjà ajoutée", "appAlreadyAdded": "L'application a déjà été ajoutée",
"alreadyUpToDateQuestion": "Application déjà à jour ?", "alreadyUpToDateQuestion": "L'application est déjà à jour ?",
"addApp": "Ajouter une application", "addApp": "Ajouter Appli",
"appSourceURL": "URL de la source de l'application", "appSourceURL": "URL source de l'application",
"error": "Erreur", "error": "Erreur",
"add": "Ajouter", "add": "Ajouter",
"searchSomeSourcesLabel": "Rechercher (certaines sources uniquement)", "searchSomeSourcesLabel": "Rechercher (certaines sources uniquement)",
"search": "Rechercher", "search": "Rechercher",
"additionalOptsFor": "Options supplémentaires pour {}", "additionalOptsFor": "Options supplémentaires pour {}",
"supportedSources": "Sources prises en charge ", "supportedSources": "Sources prises en charge",
"trackOnlyInBrackets": "(Suivi uniquement)", "trackOnlyInBrackets": "(Suivi uniquement)",
"searchableInBrackets": "(Interrogeable)", "searchableInBrackets": "(Interrogeable)",
"appsString": "Applications", "appsString": "Applications",
"noApps": "Aucune application", "noApps": "Aucune applications",
"noAppsForFilter": "Aucune application pour le filtre", "noAppsForFilter": "Aucune application à Filtrer",
"byX": "Par {}", "byX": "Par {}",
"percentProgress": "Progrès: {}%", "percentProgress": "Progression: {}%",
"pleaseWait": "Veuillez patienter", "pleaseWait": "Veuillez patienter",
"updateAvailable": "Mise à jour disponible", "updateAvailable": "Mise à jour disponible",
"notInstalled": "Non installé", "notInstalled": "Non installé",
"pseudoVersion": "pseudo-version", "pseudoVersion": "Version fictive",
"selectAll": "Tout sélectionner", "selectAll": "Tout sélectionner",
"deselectX": "Déselectionner {}", "deselectX": "Déselectionner {}",
"xWillBeRemovedButRemainInstalled": "{} sera supprimé d'Obtainium mais restera installé 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": "Supprimer les applications sélectionnées", "removeSelectedApps": "Les applications sélectionnées ont étés supprimés",
"updateX": "Mise à jour {}", "updateX": "Mettre à jour {}",
"installX": "Installer {}", "installX": "Installer {}",
"markXTrackOnlyAsUpdated": "Marquer {}\n(Suivi uniquement)\n comme mis à jour", "markXTrackOnlyAsUpdated": "Marquer {}\n(Suivi uniquement)\ncomme étant à jour",
"changeX": "Changer {}", "changeX": "Changer {}",
"installUpdateApps": "Installer/Mettre à jour les applications", "installUpdateApps": "Installer/Mettre à jour les applications",
"installUpdateSelectedApps": "Installer/Mettre à jour les applications sélectionnées", "installUpdateSelectedApps": "Installer/Mettre à jour les applications sélectionnées",
"markXSelectedAppsAsUpdated": "Marquer {} les applications sélectionnées comme étant à jour?", "markXSelectedAppsAsUpdated": "Marquer les {} applications sélectionnées comme étant à jour ?",
"no": "Non", "no": "Non",
"yes": "Oui", "yes": "Oui",
"markSelectedAppsUpdated": "Marquer les applications sélectionnées comme étant à jour", "markSelectedAppsUpdated": "Marquer les application sélectionnées comme étant à jour",
"pinToTop": "Épingler en haut", "pinToTop": "Épingler en haut",
"unpinFromTop": "Désépingler du haut", "unpinFromTop": "Désépingler du haut",
"resetInstallStatusForSelectedAppsQuestion": "Réinitialiser le statut d'installation des applications sélectionnées?", "resetInstallStatusForSelectedAppsQuestion": "Réinitialiser l'état d'installation des applications sélectionnées ?",
"installStatusOfXWillBeResetExplanation": "Le statut d'installation de toutes les applications sélectionnées sera réinitialisé.\n\nCela peut aider lorsque la version de l'application affichée dans Obtainium est incorrecte en raison d'échecs de mises à jour ou d'autres problèmes.", "installStatusOfXWillBeResetExplanation": "L'état d'installation de toutes les applications sélectionnées sera réinitialisé.\n\nCela peut être utile lorsque la version de l'application affichée dans Obtainium est incorrecte en raison de l'échec des mises à jour ou d'autres problèmes.",
"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 d'applications sélectionnées", "shareSelectedAppURLs": "Partager les URL des applications sélectionnées",
"resetInstallStatus": "Réinitialiser le statut d'installation", "resetInstallStatus": "L'état d'installation des applications ont étés réinitialisés",
"more": "Plus", "more": "Plus",
"removeOutdatedFilter": "Supprimer le filtre d'application obsolète", "removeOutdatedFilter": "Supprimer le filtre des applications obsolètes",
"showOutdatedOnly": "Afficher uniquement les applications obsolètes", "showOutdatedOnly": "Afficher uniquement les applications obsolètes",
"filter": "Filtre", "filter": "Filtre",
"filterApps": "Filtrer les applications", "filterApps": "Filtrer les applications",
@@ -91,76 +91,76 @@
"importExport": "Importer/Exporter", "importExport": "Importer/Exporter",
"settings": "Paramètres", "settings": "Paramètres",
"exportedTo": "Exporté vers {}", "exportedTo": "Exporté vers {}",
"obtainiumExport": "Exporter d'Obtainium", "obtainiumExport": "Exporter Obtainium",
"invalidInput": "Entrée invalide", "invalidInput": "Entrée invalide",
"importedX": "Importé {}", "importedX": "Importé {}",
"obtainiumImport": "Importer d'Obtainium", "obtainiumImport": "Importer Obtainium",
"importFromURLList": "Importer à partir de la liste d'URL", "importFromURLList": "Importer depuis une liste d'URL",
"searchQuery": "Requête", "searchQuery": "Requête de recherche",
"appURLList": "Liste d'URL d'application", "appURLList": "Liste d'URL de l'application",
"line": "File d'attente", "line": "File d'attente",
"searchX": "Rechercher {}", "searchX": "Rechercher {}",
"noResults": "Aucun résultat trouvé", "noResults": "Aucun résultat",
"importX": "Importer {}", "importX": "Importer {}",
"importedAppsIdDisclaimer": "Les applications importées peuvent s'afficher à tort comme \"Non installées\".\nPour résoudre ce problème, réinstallez-les via Obtainium.\nCela ne devrait pas affecter les données de l'application.\n\nN'affecte que les URL et les méthodes d'importation tierces.", "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.",
"importErrors": "Erreurs d'importation", "importErrors": "Erreurs d'importation",
"importedXOfYApps": "{} sur {} applications importées.", "importedXOfYApps": "{} applications sur {} ont étés importées.",
"followingURLsHadErrors": "Les URL suivantes comportaient des erreurs :", "followingURLsHadErrors": "Les URL suivants comportent des erreurs :",
"selectURL": "Sélectionnez l'URL", "selectURL": "Sélectionner l'URL",
"selectURLs": "Sélectionnez les URL", "selectURLs": "Sélectionner les URL",
"pick": "Prendre", "pick": "Choisir",
"theme": "Thème", "theme": "Thème",
"dark": "Sombre", "dark": "Sombre",
"light": "Clair", "light": "Clair",
"followSystem": "Suivre le système", "followSystem": "Correspondre au système",
"followSystemThemeExplanation": "Il n'est possible de suivre le thème du système qu'en utilisant des applications tierces.", "followSystemThemeExplanation": "Correspondre au thème du système est possible en utilisant des applications tierces.",
"useBlackTheme": "Utiliser le thème noir pur", "useBlackTheme": "Utiliser un thème Noir",
"appSortBy": "Applications triées par", "appSortBy": "Trier les applications par",
"authorName": "Auteur/Nom", "authorName": "Auteur/Nom",
"nameAuthor": "Nom/Auteur", "nameAuthor": "Nom/Auteur",
"asAdded": "Comme ajouté", "asAdded": "Date d'ajout",
"appSortOrder": "Ordre de tri des applications", "appSortOrder": "Ordre de tri des applications",
"ascending": "Ascendant", "ascending": "Ascendant",
"descending": "Descendant", "descending": "Descendant",
"bgUpdateCheckInterval": "Intervalle de vérification des mises à jour en arrière-plan", "bgUpdateCheckInterval": "Intervalle de recherche de mises à jour en arrière-plan",
"neverManualOnly": "Jamais Manuel uniquement", "neverManualOnly": "Jamais - Manuellement uniquement",
"appearance": "Apparence", "appearance": "Apparence",
"showWebInAppView": "Afficher la page Web source dans la vue de l'application", "showWebInAppView": "Afficher la page Web source dans la vue Applications",
"pinUpdates": "Épingler les mises à jour en tête de la vue Applications", "pinUpdates": "Épingler les mises à jour en haut de la vue 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'application", "appLogs": "Journaux d'applications",
"close": "Fermer", "close": "Fermer",
"share": "Partager", "share": "Partager",
"appNotFound": "Application introuvable", "appNotFound": "Application introuvable",
"obtainiumExportHyphenatedLowercase": "Exportation-Obtainium", "obtainiumExportHyphenatedLowercase": "export-obtainium",
"pickAnAPK": "Choisissez un APK", "pickAnAPK": "Selectionner une 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 suivantes :", "deviceSupportsFollowingArchs": "Votre appareil prend en charge les architectures CPU suivants : ",
"warning": "Avertissement", "warning": "Avertissement",
"sourceIsXButPackageFromYPrompt": "La source de l'application est '{}' mais la version du paquet provient de '{}'. Continuer?", "sourceIsXButPackageFromYPrompt": "La source de l'application est '{}' mais le paquet de mise à jour provient de '{}'. Continuer ?",
"updatesAvailable": "Mises à jour disponibles", "updatesAvailable": "Mises à jour disponibles",
"updatesAvailableNotifDescription": "Avertit l'utilisateur que des mises à jour sont disponibles pour une ou plusieurs applications suivies par Obtainium", "updatesAvailableNotifDescription": "Notifie à l'utilisateur que des mises à jour sont disponibles pour une ou plusieurs applications suivies par Obtainium.",
"noNewUpdates": "Aucune nouvelle mise à jour.", "noNewUpdates": "Aucune nouvelle mise à jour.",
"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": "Avertit l'utilisateur que les mises à jour d'une ou plusieurs applications ont été appliquées en arrière-plan", "appsUpdatedNotifDescription": "Notifie à l'utilisateur que des mises à jour d'une ou plusieurs applications ont été installés en arrière-plan.",
"xWasUpdatedToY": "{} a été mis à jour pour {}.", "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 vérification des mises à jour", "errorCheckingUpdates": "Erreur lors de la recherche de mises à jour",
"errorCheckingUpdatesNotifDescription": "Une notification qui s'affiche lorsque la vérification de la mise à jour en arrière-plan échoue", "errorCheckingUpdatesNotifDescription": "Notifie l'utilisateur lorsque la recherche de mises à jour en arrière-plan échoue.",
"appsRemoved": "Applications supprimées", "appsRemoved": "Applications supprimées",
"appsRemovedNotifDescription": "Avertit l'utilisateur qu'une ou plusieurs applications ont été supprimées en raison d'erreurs lors de leur chargement", "appsRemovedNotifDescription": "Notifie à l'utilisateur qu'une ou plusieurs applications ont été supprimées en raison d'erreurs lors de leur chargement.",
"xWasRemovedDueToErrorY": "{} a été supprimé en raison de cette erreur : {}", "xWasRemovedDueToErrorY": "{} a été supprimée en raison de cette erreur : {}",
"completeAppInstallation": "Installation complète de l'application", "completeAppInstallation": "Installation complète de l'application",
"obtainiumMustBeOpenToInstallApps": "Obtainium doit être ouvert pour installer des applications", "obtainiumMustBeOpenToInstallApps": "Obtainium doit être ouvert pour installer les applications",
"completeAppInstallationNotifDescription": "Demande à l'utilisateur de retourner sur Obtainium pour terminer l'installation d'une application", "completeAppInstallationNotifDescription": "Demande à l'utilisateur de retourner sur Obtainium pour terminer l'installation d'une application",
"checkingForUpdates": "Vérification des mises à jour", "checkingForUpdates": "Recherche de mises à jour",
"checkingForUpdatesNotifDescription": "Notification transitoire qui apparaît lors de la recherche de mises à jour", "checkingForUpdatesNotifDescription": "Notification temporaire qui apparaît lors de la recherche de mises à jour",
"pleaseAllowInstallPerm": "Veuillez autoriser Obtainium à installer des applications", "pleaseAllowInstallPerm": "Veuillez autoriser Obtainium à installer des applications",
"trackOnly": "Suivi uniquement", "trackOnly": "Suivi uniquement",
"errorWithHttpStatusCode": "Erreur {}", "errorWithHttpStatusCode": "Erreur {}",
@@ -168,165 +168,167 @@
"unknown": "Inconnu", "unknown": "Inconnu",
"none": "Aucun", "none": "Aucun",
"never": "Jamais", "never": "Jamais",
"latestVersionX": "Dernière version: {}", "latestVersionX": "Dernière version : {}",
"installedVersionX": "Version installée : {}", "installedVersionX": "Version installée : {}",
"lastUpdateCheckX": "Vérification de la dernière mise à jour : {}", "lastUpdateCheckX": "Dernière recherche de mises à jour : {}",
"remove": "Retirer", "remove": "Supprimer",
"yesMarkUpdated": "Oui, marquer comme mis à 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": "Application mobile Steam", "steamMobile": "Steam Mobile",
"steamChat": "Steam Chat", "steamChat": "Steam Chat",
"install": "Installer", "install": "Installer",
"markInstalled": "Marquer comme installée", "markInstalled": "Marquer comme étant installé",
"update": "Mettre à jour", "update": "Mettre à jour",
"markUpdated": "Marquer comme étant à jour", "markUpdated": "Marquer comme étant à jour",
"additionalOptions": "Options additionnelles", "additionalOptions": "Options supplémentaires",
"disableVersionDetection": "Désactiver la détection de version", "disableVersionDetection": "Désactiver la détection de la version",
"noVersionDetectionExplanation": "Cette option être utilisée uniquement pour les applications où la détection de version ne fonctionne pas correctement.", "noVersionDetectionExplanation": "Cette option ne doit être utilisée que pour les applications où la détection de la version ne fonctionne pas correctement.",
"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": "Actif libéré", "releaseAsset": "Version actif",
"downloadNotifDescription": "Avertit l'utilisateur de la progression 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 de détection de version", "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 dans les catégories supprimées ne seront plus 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": "Étiquette", "label": "Nom",
"language": "Langue", "language": "Langue",
"copiedToClipboard": "Copié dans le presse-papier", "copiedToClipboard": "Copié dans le presse-papier",
"storagePermissionDenied": "Autorisation de stockage refusée", "storagePermissionDenied": "Permission de stockage refusée",
"selectedCategorizeWarning": "Cela remplacera toutes les catégorie définies pour les applications sélectionnées.", "selectedCategorizeWarning": "Cela va remplacer toutes les catégories définies des applications sélectionnées.",
"filterAPKsByRegEx": "Filtrer les APK par expression régulière", "filterAPKsByRegEx": "Filtrer les APK par expression régulière",
"removeFromObtainium": "Supprimer d'Obtainium", "removeFromObtainium": "Supprimer d'Obtainium",
"uninstallFromDevice": "Désinstaller de l'appareil", "uninstallFromDevice": "Désinstaller de l'appareil",
"onlyWorksWithNonVersionDetectApps": "Fonctionne uniquement pour les applications avec la détection de version 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 la détection de version ne fonctionne pas correctement, mais dont 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 pour lesquelles une date de sortie est disponible.",
"changes": "Changements", "changes": "Correctifs",
"releaseDate": "Date de sortie", "releaseDate": "Date de sortie",
"importFromURLsInFile": "Importer à partir d'URL dans un fichier (comme OPML)", "importFromURLsInFile": "Importer à partir des URLs d'un fichier (Comme OPML)",
"versionDetectionExplanation": "Réconcilier la chaîne de version avec la version détectée à partir du système d'exploitation", "versionDetectionExplanation": "Reporter la chaîne de version par la version détectée par le système d'exploitation",
"versionDetection": "Détection des versions", "versionDetection": "Détection de la version",
"standardVersionDetection": "Détection de version standard", "standardVersionDetection": "Détection de la version standard",
"groupByCategory": "Regrouper par catégorie", "groupByCategory": "Grouper par Catégorie",
"autoApkFilterByArch": "Si possible, essayer de filtrer les APK par architecture CPU", "autoApkFilterByArch": "Essayer de filtrer les APKs par architecture CPU si possible",
"overrideSource": "Remplacer la source", "overrideSource": "Remplacer la source",
"dontShowAgain": "Ne plus montrer", "dontShowAgain": "Ne plus afficher",
"dontShowTrackOnlyWarnings": "Ne pas afficher l'avertissement 'Suivi uniquement'", "dontShowTrackOnlyWarnings": "Ne plus afficher les erreurs 'Suivi uniquement'",
"dontShowAPKOriginWarnings": "Ne pas afficher les avertissements 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ées vers le bas de la vue Applications", "moveNonInstalledAppsToBottom": "Déplacer les applications non installés vers le bas de la vue Applications",
"gitlabPATLabel": "Jeton d'accès personnel GitLab", "gitlabPATLabel": "Jeton d'accès personnel GitLab",
"about": "À propos de", "about": "À propos",
"requiresCredentialsInSettings": "{}: Cela nécessite des identifiants supplémentaires (dans Paramètres)", "requiresCredentialsInSettings": "{} a besoin d'un complément d'information (dans les Paramètres)",
"checkOnStart": "Vérifier les mises à jour au démarrage", "checkOnStart": "Rechercher les mises à jour au démarrage",
"tryInferAppIdFromCode": "Essayer de déduire l'ID de l'application à partir du code source", "tryInferAppIdFromCode": "Essayer de déduire l'identifiant de l'application à partir du code source",
"removeOnExternalUninstall": "Supprimer automatiquement les applications désinstallées depuis l'extérieur", "removeOnExternalUninstall": "Supprimer automatiquement les applications désinstallées en externe",
"pickHighestVersionCode": "Sélectionner automatiquement le code de version de l'APK la plus élevée", "pickHighestVersionCode": "Sélectionner automatiquement la version la plus récente du code APK",
"checkUpdateOnDetailPage": "Vérifier les mises à jour lors de l'ouverture de la page détaillée d'une application", "checkUpdateOnDetailPage": "Rechercher les mises à jour lors de l'ouverture de la page détaillée d'une application",
"disablePageTransitions": "Désactiver les animations de transition de page", "disablePageTransitions": "Désactiver les animations de transition de page",
"reversePageTransitions": "Inverser les animations de transition de page", "reversePageTransitions": "Inverser les animations de transition de page",
"minStarCount": "Nombre minimum d'étoiles", "minStarCount": "Nombre minimum d'étoiles",
"addInfoBelow": "Ajoutez ces informations ci-dessous.", "addInfoBelow": "Ajoutez cette information ci-dessous.",
"addInfoInSettings": "Ajoutez ces informations dans les paramètres.", "addInfoInSettings": "Ajoutez cette information dans les paramètres.",
"githubSourceNote": "La limite de débit GitHub peut être évitée à l'aide d'une clé API.", "githubSourceNote": "La limitation du débit de GitHub peut être évitée à l'aide d'une clé d'API.",
"sortByLastLinkSegment": "Trier uniquement sur le dernier segment du lien", "sortByLastLinkSegment": "Trier par le dernier segment du lien",
"filterReleaseNotesByRegEx": "Filtrer les notes de version par expression régulière", "filterReleaseNotesByRegEx": "Filtrer les notes de version par expression régulière",
"customLinkFilterRegex": "Filtre du lien APK personnalisé par expression régulière (par défaut '.apk$')", "customLinkFilterRegex": "Filtre de lien APK personnalisé par expression régulière (par défaut '.apk$')",
"appsPossiblyUpdated": "Tentative de mise à jour de l'application", "appsPossiblyUpdated": "Tentative de mise à jour des applications",
"appsPossiblyUpdatedNotifDescription": "Avertit l'utilisateur que des mises à jour d'une ou plusieurs applications ont été potentiellement appliquées en arrière-plan", "appsPossiblyUpdatedNotifDescription": "Notifie à l'utilisateur que des mises à jour d'une ou plusieurs applications ont potentiellement été appliquées en arrière-plan",
"xWasPossiblyUpdatedToY": "{} pourrait avoir été mis à jour vers {}.", "xWasPossiblyUpdatedToY": "{} peut être mis à jour en {}.",
"enableBackgroundUpdates": "Activer les mises à jour en arrière-plan", "enableBackgroundUpdates": "Activer les mises à jour en arrière-plan",
"backgroundUpdateReqsExplanation": "Les mises à jour en arrière-plan peuvent ne pas être possibles pour toutes les applications.", "backgroundUpdateReqsExplanation": "Les mises à jour en arrière-plan peuvent ne pas être possibles pour toutes les applications.",
"backgroundUpdateLimitsExplanation": "Le succès d'une installation en arrière-plan ne peut être déterminé qu'à l'ouverture d'Obtainium.", "backgroundUpdateLimitsExplanation": "Le résultat d'une installation en arrière-plan ne peut être déterminé qu'à l'ouverture d'Obtainium.",
"verifyLatestTag": "Vérifier la balise 'latest'", "verifyLatestTag": "Vérifier la balise 'latest'",
"intermediateLinkRegex": " Filtrer un lien \" intermédiaire \" à visiter ", "intermediateLinkRegex": "Filtrer un lien 'intermédiaire' à visiter",
"filterByLinkText": "Filtrer les liens par le texte du lien", "filterByLinkText": "Filtrer les liens par texte du lien",
"intermediateLinkNotFound": "Lien intermédiaire introuvable", "intermediateLinkNotFound": "Lien intermédiaire introuvable",
"intermediateLink": "Lien intermédiaire", "intermediateLink": "Lien intermédiaire",
"exemptFromBackgroundUpdates": "Exempté des mises à jour en arrière-plan (si activé)", "exemptFromBackgroundUpdates": "Exclure de la mise à jour en arrière-plan (si activé)",
"bgUpdatesOnWiFiOnly": "Désactiver les mises à jour en arrière-plan lorsque vous n'êtes pas connecté au WiFi", "bgUpdatesOnWiFiOnly": "Désactiver les mises à jour en arrière-plan lorsque vous n'êtes pas en WiFi",
"autoSelectHighestVersionCode": "Sélection automatique du code de version le plus élevé de l'APK", "autoSelectHighestVersionCode": "Sélectionner automatiquement la version la plus récente du code APK",
"versionExtractionRegEx": "Expression régulière d'extraction de version", "versionExtractionRegEx": "Extraire la version par Expression régulière",
"matchGroupToUse": "Groupe de correspondance pour l'expression régulière d'extraction de version", "trimVersionString": "Découper la version par Expression régulière",
"highlightTouchTargets": "Mettre en évidence les cibles tactiles moins évidentes", "matchGroupToUseForX": "Groupe de correspondance à utiliser pour \"{}\"",
"pickExportDir": "Choisir le répertoire d'exportation", "matchGroupToUse": "Groupe de correspondance à utiliser pour l'extraction de la version par Expression régulière",
"autoExportOnChanges": "Exporter automatiquement après modification", "highlightTouchTargets": "Mettre en évidence les touches moins évidentes",
"pickExportDir": "Selectionner le dossier pour l'exportation",
"autoExportOnChanges": "Exportation automatique lors de modification",
"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": "Essayer de sélectionner le code de la version suggérée de l'APK", "trySelectingSuggestedVersionCode": "Essayez de sélectionner la version suggérée du Code APK",
"dontSortReleasesList": "Conserver l'ordre des versions de l'API", "dontSortReleasesList": "Conserver l'ordre de la version de l'API",
"reverseSort": "Tri inversé", "reverseSort": "Tri inversé",
"takeFirstLink": "Prendre le premier lien", "takeFirstLink": "Utiliser le premier lien",
"skipSort": "Éviter le tri", "skipSort": "Ignorer le tri",
"debugMenu": "Menu de débogage", "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 maintenant la vérification de la mise à jour en arrière-plan", "runBgCheckNow": "Exécuter la recherche de la mise à jour en l'arrière-plan maintenant",
"versionExtractWholePage": "Appliquer l'expression régulière d'extraction de version sur 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",
"updatesAvailableNotifChannel": "Mises à jour disponibles", "updatesAvailableNotifChannel": "Mises à jour disponibles",
"appsUpdatedNotifChannel": "Applications mises à jour", "appsUpdatedNotifChannel": "Applications mises à jour",
"appsPossiblyUpdatedNotifChannel": "Tentative de mise à jour de l'application", "appsPossiblyUpdatedNotifChannel": "Essayer de mettre à jour les applications",
"errorCheckingUpdatesNotifChannel": "Erreur lors de la vérification des mises à jour", "errorCheckingUpdatesNotifChannel": "Erreur lors de la recherche de mises à jour",
"appsRemovedNotifChannel": "Applications supprimées", "appsRemovedNotifChannel": "Applications supprimées",
"downloadingXNotifChannel": "Téléchargement {}", "downloadingXNotifChannel": "Téléchargement {}",
"completeAppInstallationNotifChannel": "Installation complète de l'application", "completeAppInstallationNotifChannel": "Installation complète de l'application",
"checkingForUpdatesNotifChannel": "Vérification des mises à jour", "checkingForUpdatesNotifChannel": "Recherche de mises à jour",
"onlyCheckInstalledOrTrackOnlyApps": "Vérifier uniquement les mises à jour des applications installées et '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": "Sélectionner {}", "selectX": "Selectionner {}",
"parallelDownloads": "Autoriser le téléchargement en parallèle", "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": "Service Shizuku compatible non trouvé", "shizukuBinderNotFound": "Le service Shizuku n'es pas démarré",
"shizukuOld": "Ancienne version de Shizuku (<11) la mettre à jour", "shizukuOld": "Ancienne version de Shizuku (<11) - veuillez le mettre à jour",
"shizukuOldAndroidWithADB": "Shizuku fonctionne sur Android < 8.1 avec ADB mettez à jour Android ou utilisez 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é)",
"useSystemFont": "Utiliser la police du système", "useSystemFont": "Utiliser la police du système",
"useVersionCodeAsOSVersion": "Utiliser le code de version de l'application comme version 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": "En-tête de demande", "requestHeader": "Intitulé de la demande",
"useLatestAssetDateAsReleaseDate": "Utiliser le dernier élément téléversé comme date de sortie", "useLatestAssetDateAsReleaseDate": "Utiliser le dernier élément mis en ligne comme date de sortie",
"defaultPseudoVersioningMethod": "Méthode de pseudo-version par défaut", "defaultPseudoVersioningMethod": "Methode de version fictive par défaut",
"partialAPKHash": "Hash APK partiel", "partialAPKHash": "Hash partiel de l'APK",
"APKLinkHash": "Hash de lien APK", "APKLinkHash": "Hash du lien APK",
"directAPKLink": "Lien APK direct", "directAPKLink": "Lien direct de l'APK",
"pseudoVersionInUse": "Une pseudo-version est utilisée", "pseudoVersionInUse": "Version fictive utilisé",
"installed": "Installée", "installed": "Installée",
"latest": "Dernier", "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ée pour accéder aux instances auto-hébergées/personnalisées de n'importe quelle source.", "selfHostedNote": "La liste déroulante \"{}\" peut être utilisé 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 vous êtes prêt.", "appVerifierInstructionToast": "Partagez avec AppVerifier, puis revenez ici lorsque tout est prêt.",
"wiki": "Aide/Wiki", "wiki": "Aide/Wiki",
"crowdsourcedConfigsLabel": "Configurations d'applications participative (utilisation à vos risques et périls)", "crowdsourcedConfigsLabel": "Configurations d'applications par la communauté (à utiliser à vos risques et périls)",
"removeAppQuestion": { "removeAppQuestion": {
"one": "Supprimer l'application?", "one": "Supprimer l'application?",
"other": "Supprimer les applications?" "other": "Supprimer les applications?"
}, },
"tooManyRequestsTryAgainInMinutes": { "tooManyRequestsTryAgainInMinutes": {
"one": "Trop de demandes (taux limité) réessayez dans {} minute", "one": "Trop de requêtes (taux limité) - réessayez dans {} minute",
"other": "Trop de demandes (taux limité) réessayez dans {} minutes" "other": "Trop de requêtes (taux limité) - réessayez dans {} minutes"
}, },
"bgUpdateGotErrorRetryInMinutes": { "bgUpdateGotErrorRetryInMinutes": {
"one": "La vérification de la mise à jour en arrière-plan a rencontré un {}, une nouvelle tentative de vérification sera planifié dans {} minute", "one": "La recherche de mise à jour en arrière-plan a rencontré un {}, une nouvelle tentative programmée dans {} minute",
"other": "La vérification de la mise à jour en arrière-plan a rencontré un {}, une nouvelle tentative de vérification sera planifié dans {} minutes" "other": "La recherche de mise à jour en arrière-plan a rencontré un {}, une nouvelle tentative programmée dans {} minutes"
}, },
"bgCheckFoundUpdatesWillNotifyIfNeeded": { "bgCheckFoundUpdatesWillNotifyIfNeeded": {
"one": "La vérification des mises à jour en arrière-plan a trouvée {} mise à jour l'utilisateur sera notifié si nécessaire", "one": "La recherche de mises à jour en arrière-plan à trouvée {} mise à jour - l'utilisateur sera notifié si nécessaire",
"other": "La vérification des mises à jour en arrière-plan a trouvée {} mises à jour — l'utilisateur sera notifié si nécessaire" "other": "La recherche de mises à jour en arrière-plan à trouvée {} mises à jour - l'utilisateur sera notifié si nécessaire"
}, },
"apps": { "apps": {
"one": "{} Application", "one": "{} Application",
@@ -337,7 +339,7 @@
"other": "{} URL" "other": "{} URL"
}, },
"minute": { "minute": {
"one": "{} Minutes", "one": "{} Minute",
"other": "{} Minutes" "other": "{} Minutes"
}, },
"hour": { "hour": {
@@ -349,24 +351,24 @@
"other": "{} Jours" "other": "{} Jours"
}, },
"clearedNLogsBeforeXAfterY": { "clearedNLogsBeforeXAfterY": {
"one": "{n} journal effacé (avant = {before}, après = {after})", "one": "Nettoyage du journal {n} (avant = {before}, après = {after})",
"other": "{n} journaux effacés (avant = {before}, après = {after})" "other": "Nettoyage des journaux {n} (avant = {before}, après = {after})"
}, },
"xAndNMoreUpdatesAvailable": { "xAndNMoreUpdatesAvailable": {
"one": "{} et 1 autre application ont des mises à jour.", "one": "{} et 1 autre application ont des mises à jour.",
"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é mises à jour.", "one": "{} et 1 autre application ont étés mis à jour.",
"other": "{} et {} autres applications ont été mises à jour." "other": "{} et {} autres applications ont étés mis à jour."
}, },
"xAndNMoreUpdatesFailed": { "xAndNMoreUpdatesFailed": {
"one": "Échec de la mise à jour de {} et d'une autre application.", "one": "Échec de la mise à jour de {} et 1 autre application.",
"other": "Échec de la mise à jour de {} et {} autres applications." "other": "Échec de la mise à jour de {} et {} autres applications."
}, },
"xAndNMoreUpdatesPossiblyInstalled": { "xAndNMoreUpdatesPossiblyInstalled": {
"une": "{} et 1 application supplémentaire pourraient avoir été mises à jour.", "one": "{} et 1 autre application ont peut-être étés mis à jour.",
"other": "{} et {} autres applications pourraient avoir été mises à jour." "other": "{} et {} autres applications ont peut-être étés mis à jour."
}, },
"apk": { "apk": {
"one": "{} APK", "one": "{} APK",

View File

@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "Tiltsa le a háttérben frissítéseket, ha nincs Wi-Fi-n", "bgUpdatesOnWiFiOnly": "Tiltsa le a háttérben frissítéseket, ha nincs Wi-Fi-n",
"autoSelectHighestVersionCode": "A legmagasabb verziószámú APK auto. kiválasztása", "autoSelectHighestVersionCode": "A legmagasabb verziószámú APK auto. kiválasztása",
"versionExtractionRegEx": "Verzió kibontása reguláris kifejezéssel", "versionExtractionRegEx": "Verzió kibontása reguláris kifejezéssel",
"trimVersionString": "Trim Version String RegEx-szel",
"matchGroupToUseForX": "A \"{}\" csoporthoz használandó csoport egyeztetése",
"matchGroupToUse": "Párosítsa a csoportot a használathoz", "matchGroupToUse": "Párosítsa a csoportot a használathoz",
"highlightTouchTargets": "Emelje ki a kevésbé nyilvánvaló érintési célokat", "highlightTouchTargets": "Emelje ki a kevésbé nyilvánvaló érintési célokat",
"pickExportDir": "Válassza az Exportálási könyvtárat", "pickExportDir": "Válassza az Exportálási könyvtárat",

View File

@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "Disattiva aggiornamenti in secondo piano quando non si usa il WiFi", "bgUpdatesOnWiFiOnly": "Disattiva aggiornamenti in secondo piano quando non si usa il WiFi",
"autoSelectHighestVersionCode": "Auto-seleziona APK con versionCode più alto", "autoSelectHighestVersionCode": "Auto-seleziona APK con versionCode più alto",
"versionExtractionRegEx": "RegEx di estrazione versione", "versionExtractionRegEx": "RegEx di estrazione versione",
"trimVersionString": "Tagliare la stringa della versione con RegEx",
"matchGroupToUseForX": "Gruppo di corrispondenza da utilizzare per \"{}\"",
"matchGroupToUse": "Gruppo da usare", "matchGroupToUse": "Gruppo da usare",
"highlightTouchTargets": "Evidenzia elementi toccabili meno ovvi", "highlightTouchTargets": "Evidenzia elementi toccabili meno ovvi",
"pickExportDir": "Scegli cartella esp.", "pickExportDir": "Scegli cartella esp.",

View File

@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "WiFiを使用していない場合、バックグラウンドアップデートを無効にする", "bgUpdatesOnWiFiOnly": "WiFiを使用していない場合、バックグラウンドアップデートを無効にする",
"autoSelectHighestVersionCode": "最も高いバージョンコードのAPKを自動で選択する", "autoSelectHighestVersionCode": "最も高いバージョンコードのAPKを自動で選択する",
"versionExtractionRegEx": "バージョン抽出の正規表現", "versionExtractionRegEx": "バージョン抽出の正規表現",
"trimVersionString": "正規表現でバージョン文字列をトリムする",
"matchGroupToUseForX": "\"{}\"に使用するマッチしたグループ",
"matchGroupToUse": "使用するマッチしたグループ", "matchGroupToUse": "使用するマッチしたグループ",
"highlightTouchTargets": "目立たないタップ可能な対象をハイライトする", "highlightTouchTargets": "目立たないタップ可能な対象をハイライトする",
"pickExportDir": "エクスポートディレクトリを選択", "pickExportDir": "エクスポートディレクトリを選択",

View File

@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "Achtergrond-updates uitschakelen wanneer niet verbonden met WiFi", "bgUpdatesOnWiFiOnly": "Achtergrond-updates uitschakelen wanneer niet verbonden met WiFi",
"autoSelectHighestVersionCode": "De APK met de hoogste versiecode automatisch selecteren", "autoSelectHighestVersionCode": "De APK met de hoogste versiecode automatisch selecteren",
"versionExtractionRegEx": "Reguliere expressie voor versie-extractie", "versionExtractionRegEx": "Reguliere expressie voor versie-extractie",
"trimVersionString": "Versie string trimmen met RegEx",
"matchGroupToUseForX": "Overeenkomende groep te gebruiken voor \"{}\"",
"matchGroupToUse": "Overeenkomende groep om te gebruiken voor de reguliere expressie voor versie-extractie", "matchGroupToUse": "Overeenkomende groep om te gebruiken voor de reguliere expressie voor versie-extractie",
"highlightTouchTargets": "Minder voor de hand liggende aanraakdoelen markeren.", "highlightTouchTargets": "Minder voor de hand liggende aanraakdoelen markeren.",
"pickExportDir": "Kies de exportmap", "pickExportDir": "Kies de exportmap",

View File

@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "Wyłącz aktualizacje w tle, gdy nie ma połączenia z Wi-Fi", "bgUpdatesOnWiFiOnly": "Wyłącz aktualizacje w tle, gdy nie ma połączenia z Wi-Fi",
"autoSelectHighestVersionCode": "Automatycznie wybierz najwyższy kod wersji APK", "autoSelectHighestVersionCode": "Automatycznie wybierz najwyższy kod wersji APK",
"versionExtractionRegEx": "Wyrażenie regularne wyodrębniające wersję", "versionExtractionRegEx": "Wyrażenie regularne wyodrębniające wersję",
"trimVersionString": "Przycinanie łańcucha wersji za pomocą RegEx",
"matchGroupToUseForX": "Dopasuj grupę do użycia dla \"{}\"",
"matchGroupToUse": "Dopasuj grupę do użycia dla wyrażenia regularnego wyodrębniania wersji", "matchGroupToUse": "Dopasuj grupę do użycia dla wyrażenia regularnego wyodrębniania wersji",
"highlightTouchTargets": "Wyróżnij mniej oczywiste elementy dotykowe", "highlightTouchTargets": "Wyróżnij mniej oczywiste elementy dotykowe",
"pickExportDir": "Wybierz katalog eksportu", "pickExportDir": "Wybierz katalog eksportu",

View File

@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "Desative as atualizações em segundo-plano quando não estiver conectado no Wi-Fi", "bgUpdatesOnWiFiOnly": "Desative as atualizações em segundo-plano quando não estiver conectado no Wi-Fi",
"autoSelectHighestVersionCode": "Auto-selecionar a versão mais recente", "autoSelectHighestVersionCode": "Auto-selecionar a versão mais recente",
"versionExtractionRegEx": "Regex de extração de versão", "versionExtractionRegEx": "Regex de extração de versão",
"trimVersionString": "Cortar a cadeia de caracteres da versão com RegEx",
"matchGroupToUseForX": "Grupo de correspondência a utilizar para \"{}\"",
"matchGroupToUse": "Grupo correspondente a ser usado no Regex de extração de versão", "matchGroupToUse": "Grupo correspondente a ser usado no Regex de extração de versão",
"highlightTouchTargets": "Realçar áreas sensíveis ao toque que são menos óbvias", "highlightTouchTargets": "Realçar áreas sensíveis ao toque que são menos óbvias",
"pickExportDir": "Escolher diretório para exportação", "pickExportDir": "Escolher diretório para exportação",

View File

@@ -129,7 +129,7 @@
"pinUpdates": "Отображать обновления приложений сверху списка", "pinUpdates": "Отображать обновления приложений сверху списка",
"updates": "Обновления", "updates": "Обновления",
"sourceSpecific": "Настройки источников", "sourceSpecific": "Настройки источников",
"appSource": "Исходный код", "appSource": "Источник",
"noLogs": "Нет журналов", "noLogs": "Нет журналов",
"appLogs": "Логи", "appLogs": "Логи",
"close": "Закрыть", "close": "Закрыть",
@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "Отключить фоновые обновления, если нет соединения с Wi-Fi", "bgUpdatesOnWiFiOnly": "Отключить фоновые обновления, если нет соединения с Wi-Fi",
"autoSelectHighestVersionCode": "Автоматически выбирать APK с актуальной версией кода", "autoSelectHighestVersionCode": "Автоматически выбирать APK с актуальной версией кода",
"versionExtractionRegEx": "Регулярное выражение для извлечения версии", "versionExtractionRegEx": "Регулярное выражение для извлечения версии",
"trimVersionString": "Обрезка строки версии с помощью RegEx",
"matchGroupToUseForX": "Группа соответствия, которую следует использовать для \"{}\"",
"matchGroupToUse": "Выберите группу для использования", "matchGroupToUse": "Выберите группу для использования",
"highlightTouchTargets": "Выделить менее очевидные элементы управления касанием", "highlightTouchTargets": "Выделить менее очевидные элементы управления касанием",
"pickExportDir": "Выбрать каталог для экспорта", "pickExportDir": "Выбрать каталог для экспорта",

View File

@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "Inaktivera Bakgrundsuppdateringar utan WiFi", "bgUpdatesOnWiFiOnly": "Inaktivera Bakgrundsuppdateringar utan WiFi",
"autoSelectHighestVersionCode": "Välj automatiskt högsta versionskod APK", "autoSelectHighestVersionCode": "Välj automatiskt högsta versionskod APK",
"versionExtractionRegEx": "Version Extraction RegEx", "versionExtractionRegEx": "Version Extraction RegEx",
"trimVersionString": "Trimma versionssträng med RegEx",
"matchGroupToUseForX": "Matchningsgrupp att använda för \"{}\"",
"matchGroupToUse": "Match Group to Use", "matchGroupToUse": "Match Group to Use",
"highlightTouchTargets": "Markera mindre uppenbara beröringsobjekt", "highlightTouchTargets": "Markera mindre uppenbara beröringsobjekt",
"pickExportDir": "Välj Exportsökväg", "pickExportDir": "Välj Exportsökväg",

View File

@@ -3,7 +3,7 @@
"noReleaseFound": "Uygun bir sürüm bulunamadı", "noReleaseFound": "Uygun bir sürüm bulunamadı",
"noVersionFound": "Sürüm bulunamadı", "noVersionFound": "Sürüm bulunamadı",
"urlMatchesNoSource": "URL, bilinen bir kaynağa uymuyor", "urlMatchesNoSource": "URL, bilinen bir kaynağa uymuyor",
"cantInstallOlderVersion": "Eski bir sürümü yükleyemem", "cantInstallOlderVersion": "Eski bir sürüm yüklenemez",
"appIdMismatch": "İndirilen paket kimliği mevcut Uygulama kimliği ile eşleşmiyor", "appIdMismatch": "İndirilen paket kimliği mevcut Uygulama kimliği ile eşleşmiyor",
"functionNotImplemented": "Bu sınıf bu işlevi uygulamamıştır", "functionNotImplemented": "Bu sınıf bu işlevi uygulamamıştır",
"placeholder": "Yer Tutucu", "placeholder": "Yer Tutucu",
@@ -13,22 +13,22 @@
"and": "ve", "and": "ve",
"githubPATLabel": "GitHub Kişisel Erişim Anahtarı (Sınırlamayı Artırır)", "githubPATLabel": "GitHub Kişisel Erişim Anahtarı (Sınırlamayı Artırır)",
"includePrereleases": "Ön sürümleri dahil et", "includePrereleases": "Ön sürümleri dahil et",
"fallbackToOlderReleases": "Daha eski sürümlere geri dön", "fallbackToOlderReleases": "Daha eski sürümleri alternatif olarak tut",
"filterReleaseTitlesByRegEx": "Düzenli İfadelerle Sürüm Başlıklarını Filtrele", "filterReleaseTitlesByRegEx": "Düzenli İfadelerle Sürüm Başlıklarını Filtrele",
"invalidRegEx": "Geçersiz düzenli ifade", "invalidRegEx": "Geçersiz düzenli ifade",
"noDescription": "Açıklama yok", "noDescription": "Açıklama yok",
"cancel": "İptal", "cancel": "İptal",
"continue": "Devam Et", "continue": "Devam Et",
"requiredInBrackets": "(Gerekli)", "requiredInBrackets": "(Gerekli)",
"dropdownNoOptsError": "HATA: DİPLOMADA EN AZ BİR SEÇENEK OLMALI", "dropdownNoOptsError": "HATA: AÇILIR MENÜDE EN AZ BİR SEÇENEK OLMALI",
"colour": "Renk", "colour": "Renk",
"standard": "Standart", "standard": "Standart",
"custom": "Özel", "custom": "Özel",
"useMaterialYou": "Sizin Malzemenizi Kullanın", "useMaterialYou": "MaterialYou Kullanın",
"githubStarredRepos": "GitHub'a Yıldızlı Depolar", "githubStarredRepos": "GitHub Yıldızlı Depolar",
"uname": "Kullanıcı Adı", "uname": "Kullanıcı Adı",
"wrongArgNum": "Hatalı argüman sayısı sağlandı", "wrongArgNum": "Hatalı sayıda argüman sağlandı",
"xIsTrackOnly": "{} yalnızca Takip Edilen", "xIsTrackOnly": "{} yalnızca Takip Ediliyor",
"source": "Kaynak", "source": "Kaynak",
"app": "Uygulama", "app": "Uygulama",
"appsFromSourceAreTrackOnly": "Bu kaynaktan gelen uygulamalar 'Yalnızca Takip Edilen'dir.", "appsFromSourceAreTrackOnly": "Bu kaynaktan gelen uygulamalar 'Yalnızca Takip Edilen'dir.",
@@ -41,9 +41,9 @@
"appSourceURL": "Uygulama Kaynak URL'si", "appSourceURL": "Uygulama Kaynak URL'si",
"error": "Hata", "error": "Hata",
"add": "Ekle", "add": "Ekle",
"searchSomeSourcesLabel": "Ara (Bazı Kaynaklar Yalnızca)", "searchSomeSourcesLabel": "Ara (Yalnızca Bazı Kaynaklar)",
"search": "Ara", "search": "Ara",
"additionalOptsFor": "{} İçin Ek Seçenekler", "additionalOptsFor": "{} için Ek Seçenekler",
"supportedSources": "Desteklenen Kaynaklar", "supportedSources": "Desteklenen Kaynaklar",
"trackOnlyInBrackets": "(Yalnızca Takip)", "trackOnlyInBrackets": "(Yalnızca Takip)",
"searchableInBrackets": "(Aranabilir)", "searchableInBrackets": "(Aranabilir)",
@@ -173,13 +173,13 @@
"lastUpdateCheckX": "Son Güncelleme Kontrolü: {}", "lastUpdateCheckX": "Son Güncelleme Kontrolü: {}",
"remove": "Kaldır", "remove": "Kaldır",
"yesMarkUpdated": "Evet, Güncellendi olarak İşaretle", "yesMarkUpdated": "Evet, Güncellendi olarak İşaretle",
"fdroid": "F-Droid Resmi", "fdroid": "Resmi F-Droid",
"appIdOrName": "Uygulama Kimliği veya Adı", "appIdOrName": "Uygulama Kimliği veya Adı",
"appId": "Uygulama Kimliği", "appId": "Uygulama Kimliği",
"appWithIdOrNameNotFound": "Bu kimlik veya ada sahip bir uygulama bulunamadı", "appWithIdOrNameNotFound": "Bu kimlik veya ada sahip bir uygulama bulunamadı",
"reposHaveMultipleApps": "Depolar birden fazla uygulama içerebilir", "reposHaveMultipleApps": "Depolar birden fazla uygulama içerebilir",
"fdroidThirdPartyRepo": "F-Droid Üçüncü Taraf Depo", "fdroidThirdPartyRepo": "F-Droid Üçüncü Parti Depo",
"steamMobile": "Buhar Mobil", "steamMobile": "Steam Mobil",
"steamChat": "Steam Sohbet", "steamChat": "Steam Sohbet",
"install": "Yükle", "install": "Yükle",
"markInstalled": "Yüklendi olarak İşaretle", "markInstalled": "Yüklendi olarak İşaretle",
@@ -222,7 +222,7 @@
"standardVersionDetection": "Standart sürüm tespiti", "standardVersionDetection": "Standart sürüm tespiti",
"groupByCategory": "Kategoriye Göre Grupla", "groupByCategory": "Kategoriye Göre Grupla",
"autoApkFilterByArch": "Mümkünse APK'leri CPU mimarisi ile filtreleme girişimi", "autoApkFilterByArch": "Mümkünse APK'leri CPU mimarisi ile filtreleme girişimi",
"overrideSource": "Kaynağı Geçersiz Kıl", "overrideSource": "Öncelenecek Kaynak",
"dontShowAgain": "Bunu tekrar gösterme", "dontShowAgain": "Bunu tekrar gösterme",
"dontShowTrackOnlyWarnings": "'Yalnızca Takip Edilen' uyarılarını gösterme", "dontShowTrackOnlyWarnings": "'Yalnızca Takip Edilen' uyarılarını gösterme",
"dontShowAPKOriginWarnings": "APK kaynağı uyarılarını gösterme", "dontShowAPKOriginWarnings": "APK kaynağı uyarılarını gösterme",
@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "WiFi olmadığında arka plan güncellemelerini devre dışı bırak", "bgUpdatesOnWiFiOnly": "WiFi olmadığında arka plan güncellemelerini devre dışı bırak",
"autoSelectHighestVersionCode": "Otomatik olarak en yüksek sürüm kodunu seç", "autoSelectHighestVersionCode": "Otomatik olarak en yüksek sürüm kodunu seç",
"versionExtractionRegEx": "Sürüm Çıkarma Düzenli İfade", "versionExtractionRegEx": "Sürüm Çıkarma Düzenli İfade",
"trimVersionString": "RegEx ile Sürüm Dizesini Kırpma",
"matchGroupToUseForX": "\"{}\" için Kullanılacak Grubu Eşleştirin",
"matchGroupToUse": "Sürüm Çıkarma Regex için Kullanılacak Eşleşme Grubu", "matchGroupToUse": "Sürüm Çıkarma Regex için Kullanılacak Eşleşme Grubu",
"highlightTouchTargets": "Daha az belirgin dokunma hedeflerini vurgula", "highlightTouchTargets": "Daha az belirgin dokunma hedeflerini vurgula",
"pickExportDir": "Dışa Aktarılacak Klasörü Seç", "pickExportDir": "Dışa Aktarılacak Klasörü Seç",
@@ -286,10 +288,10 @@
"checkingForUpdatesNotifChannel": "Güncellemeler Kontrol Ediliyor", "checkingForUpdatesNotifChannel": "Güncellemeler Kontrol Ediliyor",
"onlyCheckInstalledOrTrackOnlyApps": "Yalnızca yüklü ve Yalnızca İzleme Uygulamalarını güncelleme", "onlyCheckInstalledOrTrackOnlyApps": "Yalnızca yüklü ve Yalnızca İzleme Uygulamalarını güncelleme",
"supportFixedAPKURL": "Sabit APK URL'lerini destekleyin", "supportFixedAPKURL": "Sabit APK URL'lerini destekleyin",
"selectX": "Seçme {}", "selectX": "{} Tanesini Seç",
"parallelDownloads": "Paralel indirmelere izin ver", "parallelDownloads": "Paralel indirmelere izin ver",
"useShizuku": "Yüklemek için Shizuku veya Sui'yi kullanın", "useShizuku": "Yüklemek için Shizuku veya Sui'yi kullanın",
"shizukuBinderNotFound": "Shizuku is not running", "shizukuBinderNotFound": "Shizuku servisi çalışmıyor",
"shizukuOld": "Eski Shizuku sürümü (<11) - güncelleyin", "shizukuOld": "Eski Shizuku sürümü (<11) - güncelleyin",
"shizukuOldAndroidWithADB": "Shizuku ADB ile Android < 8.1 üzerinde çalışıyor - Android'i güncelleyin veya bunun yerine Sui kullanın", "shizukuOldAndroidWithADB": "Shizuku ADB ile Android < 8.1 üzerinde çalışıyor - Android'i güncelleyin veya bunun yerine Sui kullanın",
"shizukuPretendToBeGooglePlay": "Google Play'i yükleme kaynağı olarak ayarlayın (Shizuku kullanılıyorsa)", "shizukuPretendToBeGooglePlay": "Google Play'i yükleme kaynağı olarak ayarlayın (Shizuku kullanılıyorsa)",
@@ -334,7 +336,7 @@
}, },
"url": { "url": {
"one": "{} URL", "one": "{} URL",
"other": "{} URL'ler" "other": "{} URL"
}, },
"minute": { "minute": {
"one": "{} Dakika", "one": "{} Dakika",
@@ -370,6 +372,6 @@
}, },
"apk": { "apk": {
"one": "{} APK", "one": "{} APK",
"other": "{} APK'lar" "other": "{} APK"
} }
} }

View File

@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "Вимкнути фонові оновлення поза Wi-Fi", "bgUpdatesOnWiFiOnly": "Вимкнути фонові оновлення поза Wi-Fi",
"autoSelectHighestVersionCode": "Автоматичний вибір APK з найвищим кодом версії", "autoSelectHighestVersionCode": "Автоматичний вибір APK з найвищим кодом версії",
"versionExtractionRegEx": "Регулярний вираз для вилучення рядка версії", "versionExtractionRegEx": "Регулярний вираз для вилучення рядка версії",
"trimVersionString": "Обрізати рядок версії за допомогою RegEx",
"matchGroupToUseForX": "Група збігів для \"{}\"",
"matchGroupToUse": "Група співпадінь для використання в регулярному виразі вилучення версії", "matchGroupToUse": "Група співпадінь для використання в регулярному виразі вилучення версії",
"highlightTouchTargets": "Підсвічувати менш очевидні області дотику", "highlightTouchTargets": "Підсвічувати менш очевидні області дотику",
"pickExportDir": "Вибрати каталог експорту", "pickExportDir": "Вибрати каталог експорту",

View File

@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "Tắt cập nhật nền khi không có WiFi", "bgUpdatesOnWiFiOnly": "Tắt cập nhật nền khi không có WiFi",
"autoSelectHighestVersionCode": "Tự động chọn APK mã phiên bản cao nhất", "autoSelectHighestVersionCode": "Tự động chọn APK mã phiên bản cao nhất",
"versionExtractionRegEx": "Trích xuất phiên bản RegEx", "versionExtractionRegEx": "Trích xuất phiên bản RegEx",
"trimVersionString": "Trim Version String With RegEx",
"matchGroupToUseForX": "Match Group to Use for \"{}\"",
"matchGroupToUse": "Nhóm đối sánh để sử dụng cho Regex trích xuất phiên bản", "matchGroupToUse": "Nhóm đối sánh để sử dụng cho Regex trích xuất phiên bản",
"highlightTouchTargets": "Đánh dấu các mục tiêu cảm ứng ít rõ ràng hơn", "highlightTouchTargets": "Đánh dấu các mục tiêu cảm ứng ít rõ ràng hơn",
"pickExportDir": "Chọn thư mục xuất", "pickExportDir": "Chọn thư mục xuất",

View File

@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "禁用非 WiFi 的背景更新", "bgUpdatesOnWiFiOnly": "禁用非 WiFi 的背景更新",
"autoSelectHighestVersionCode": "自動選擇最高 versionCode 的 APK", "autoSelectHighestVersionCode": "自動選擇最高 versionCode 的 APK",
"versionExtractionRegEx": "版本字串提取正則表達式", "versionExtractionRegEx": "版本字串提取正則表達式",
"trimVersionString": "Trim Version String With RegEx",
"matchGroupToUseForX": "Match Group to Use for \"{}\"",
"matchGroupToUse": "要用於版本字串提取的匹配組", "matchGroupToUse": "要用於版本字串提取的匹配組",
"highlightTouchTargets": "突出顯示不明顯的觸控目標", "highlightTouchTargets": "突出顯示不明顯的觸控目標",
"pickExportDir": "選擇匯出目錄", "pickExportDir": "選擇匯出目錄",

View File

@@ -259,6 +259,8 @@
"bgUpdatesOnWiFiOnly": "未连接 Wi-Fi 时禁用后台更新", "bgUpdatesOnWiFiOnly": "未连接 Wi-Fi 时禁用后台更新",
"autoSelectHighestVersionCode": "自动选择内部版本号最高的 APK 文件", "autoSelectHighestVersionCode": "自动选择内部版本号最高的 APK 文件",
"versionExtractionRegEx": "提取版本号的正则表达式", "versionExtractionRegEx": "提取版本号的正则表达式",
"trimVersionString": "使用 RegEx 修剪版本字符串",
"matchGroupToUseForX": "用于\"{}\"的匹配组",
"matchGroupToUse": "从上述匹配结果中引用的捕获组", "matchGroupToUse": "从上述匹配结果中引用的捕获组",
"highlightTouchTargets": "突出展示不明显的可交互区域", "highlightTouchTargets": "突出展示不明显的可交互区域",
"pickExportDir": "选择导出文件夹", "pickExportDir": "选择导出文件夹",

View File

@@ -9,7 +9,7 @@
<ul> <ul>
<li>GitHub</li> <li>GitHub</li>
<li>GitLab</li> <li>GitLab</li>
<li>Codeberg</li> <li>Forgejo (Codeberg)</li>
<li>F-Droid</li> <li>F-Droid</li>
<li>Third Party F-Droid Repos</li> <li>Third Party F-Droid Repos</li>
<li>IzzyOnDroid</li> <li>IzzyOnDroid</li>

View File

@@ -9,7 +9,7 @@
<ul> <ul>
<li>GitHub</li> <li>GitHub</li>
<li>GitLab</li> <li>GitLab</li>
<li>Codeberg</li> <li>Forgejo (Codeberg)</li>
<li>F-Droid</li> <li>F-Droid</li>
<li>Third Party F-Droid Repos</li> <li>Third Party F-Droid Repos</li>
<li>IzzyOnDroid</li> <li>IzzyOnDroid</li>

View File

@@ -1,5 +1,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:html/parser.dart'; import 'package:html/parser.dart';
import 'package:obtainium/app_sources/html.dart';
import 'package:obtainium/custom_errors.dart'; import 'package:obtainium/custom_errors.dart';
import 'package:obtainium/providers/source_provider.dart'; import 'package:obtainium/providers/source_provider.dart';
@@ -29,14 +31,15 @@ class APKPure extends AppSource {
@override @override
String sourceSpecificStandardizeURL(String url) { String sourceSpecificStandardizeURL(String url) {
RegExp standardUrlRegExB = RegExp( RegExp standardUrlRegExB = RegExp(
'^https?://m.${getSourceRegex(hosts)}/+[^/]+/+[^/]+(/+[^/]+)?', '^https?://m.${getSourceRegex(hosts)}(/+[^/]{2})?/+[^/]+/+[^/]+',
caseSensitive: false); caseSensitive: false);
RegExpMatch? match = standardUrlRegExB.firstMatch(url); RegExpMatch? match = standardUrlRegExB.firstMatch(url);
if (match != null) { if (match != null) {
url = 'https://${getSourceRegex(hosts)}${Uri.parse(url).path}'; var uri = Uri.parse(url);
url = 'https://${uri.host.substring(2)}${uri.path}';
} }
RegExp standardUrlRegExA = RegExp( RegExp standardUrlRegExA = RegExp(
'^https?://(www\\.)?${getSourceRegex(hosts)}/+[^/]+/+[^/]+(/+[^/]+)?', '^https?://(www\\.)?${getSourceRegex(hosts)}(/+[^/]{2})?/+[^/]+/+[^/]+',
caseSensitive: false); caseSensitive: false);
match = standardUrlRegExA.firstMatch(url); match = standardUrlRegExA.firstMatch(url);
if (match == null) { if (match == null) {
@@ -58,23 +61,85 @@ class APKPure extends AppSource {
) async { ) async {
String appId = (await tryInferringAppId(standardUrl))!; String appId = (await tryInferringAppId(standardUrl))!;
String host = Uri.parse(standardUrl).host; String host = Uri.parse(standardUrl).host;
var res = await sourceRequest('$standardUrl/download', additionalSettings);
var resChangelog = await sourceRequest(standardUrl, additionalSettings); var res0 = await sourceRequest('$standardUrl/versions', additionalSettings);
if (res.statusCode == 200 && resChangelog.statusCode == 200) { var versionLinks = await grabLinksCommon(res0, {
var html = parse(res.body); 'skipSort': true,
var htmlChangelog = parse(resChangelog.body); 'customLinkFilterRegex': '$standardUrl/download/[^/]+\$'
String? version = html.querySelector('span.info-sdk span')?.text.trim(); });
if (version == null) {
throw NoVersionError(); var supportedArchs = (await DeviceInfoPlugin().androidInfo).supportedAbis;
if (additionalSettings['autoApkFilterByArch'] != true) {
// No need to request multiple versions when we're not going to filter them (always pick the top one)
versionLinks = versionLinks.sublist(0, 1);
} }
String? dateString = if (versionLinks.isEmpty) {
html.querySelector('span.info-other span.date')?.text.trim(); throw NoReleasesError();
DateTime? releaseDate = parseDateTimeMMMddCommayyyy(dateString); }
String type = html.querySelector('a.info-tag')?.text.trim() ?? 'APK';
List<MapEntry<String, String>> apkUrls = [ for (var i = 0; i < versionLinks.length; i++) {
MapEntry('$appId.apk', var link = versionLinks[i];
'https://d.${hosts.contains(host) ? 'cdnpure.com' : host}/b/$type/$appId?version=latest') var res = await sourceRequest(link.key, additionalSettings);
]; if (res.statusCode == 200) {
var html = parse(res.body);
var apksDiv =
html.querySelector('#version-list div div.show-more-content');
DateTime? topReleaseDate;
var apkUrls = apksDiv
?.querySelectorAll('div.group-title')
.map((e) {
String architectureString = e.text.trim();
if (architectureString.toLowerCase() == 'unlimited' ||
architectureString.toLowerCase() == 'universal') {
architectureString = '';
}
List<String> architectures = architectureString
.split(',')
.map((e) => e.trim())
.where((e) => e.isNotEmpty)
.toList();
// Only take the first APK for each architecture, ignore others for now, for simplicity
// Unclear why there can even be multiple APKs for the same version and arch
var apkInfo = e.nextElementSibling?.querySelector('div.info');
String? versionCode = RegExp('[0-9]+')
.firstMatch(apkInfo
?.querySelector('div.info-top span.code')
?.text ??
'')
?.group(0)
?.trim();
String? type = apkInfo
?.querySelector('div.info-top span.tag')
?.text
.trim() ??
'APK';
String? dateString = apkInfo
?.querySelector('div.info-bottom span.time')
?.text
.trim();
DateTime? releaseDate =
parseDateTimeMMMddCommayyyy(dateString);
if (additionalSettings['autoApkFilterByArch'] == true &&
architectures.isNotEmpty &&
architectures
.where((a) => supportedArchs.contains(a))
.isEmpty) {
return const MapEntry('', '');
}
topReleaseDate ??=
releaseDate; // Just use the release date of the first APK in the list as the release date for this version
return MapEntry(
'$appId-$versionCode-$architectureString.${type.toLowerCase()}',
'https://d.${hosts.contains(host) ? 'cdnpure.com' : host}/b/$type/$appId?versionCode=$versionCode');
})
.where((e) => e.key.isNotEmpty)
.toList() ??
[];
if (apkUrls.isEmpty) {
continue;
}
String version = Uri.parse(link.key).pathSegments.last;
String author = html String author = html
.querySelector('span.info-sdk') .querySelector('span.info-sdk')
?.text ?.text
@@ -83,15 +148,17 @@ class APKPure extends AppSource {
Uri.parse(standardUrl).pathSegments.reversed.last; Uri.parse(standardUrl).pathSegments.reversed.last;
String appName = String appName =
html.querySelector('h1.info-title')?.text.trim() ?? appId; html.querySelector('h1.info-title')?.text.trim() ?? appId;
String? changeLog = htmlChangelog String? changeLog = html
.querySelector("div.whats-new-info p:not(.date)") .querySelector('div.module.change-log')
?.innerHtml ?.innerHtml
.trim() .trim()
.replaceAll("<br>", " \n"); .replaceAll("<br>", " \n");
return APKDetails(version, apkUrls, AppNames(author, appName), return APKDetails(version, apkUrls, AppNames(author, appName),
releaseDate: releaseDate, changeLog: changeLog); releaseDate: topReleaseDate, changeLog: changeLog);
} else { } else {
throw getObtainiumHttpError(res); throw getObtainiumHttpError(res);
} }
} }
throw NoAPKError();
}
} }

View File

@@ -5,6 +5,7 @@ import 'package:obtainium/providers/source_provider.dart';
class Codeberg extends AppSource { class Codeberg extends AppSource {
GitHub gh = GitHub(); GitHub gh = GitHub();
Codeberg() { Codeberg() {
name = 'Forgejo (Codeberg)';
hosts = ['codeberg.org']; hosts = ['codeberg.org'];
additionalSourceAppSpecificSettingFormItems = additionalSourceAppSpecificSettingFormItems =

View File

@@ -171,7 +171,7 @@ class GitHub extends AppSource {
{bool forAPKDownload = false}) async { {bool forAPKDownload = false}) async {
var token = await getTokenIfAny(additionalSettings); var token = await getTokenIfAny(additionalSettings);
var headers = <String, String>{}; var headers = <String, String>{};
if (token != null) { if (token != null && token.isNotEmpty) {
headers[HttpHeaders.authorizationHeader] = 'Token $token'; headers[HttpHeaders.authorizationHeader] = 'Token $token';
} }
if (forAPKDownload == true) { if (forAPKDownload == true) {

View File

@@ -131,6 +131,18 @@ class GitLab extends AppSource {
bool trackOnly = additionalSettings['trackOnly'] == true; bool trackOnly = additionalSettings['trackOnly'] == true;
// Get project ID
Response res0 = await sourceRequest(
'https://${hosts[0]}/api/v4/projects/${names.author}%2F${names.name}?$optionalAuth',
additionalSettings);
if (res0.statusCode != 200) {
throw getObtainiumHttpError(res0);
}
int? projectId = jsonDecode(res0.body)['id'];
if (projectId == null) {
throw NoReleasesError();
}
// Request data from REST API // Request data from REST API
Response res = await sourceRequest( Response res = await sourceRequest(
'https://${hosts[0]}/api/v4/projects/${names.author}%2F${names.name}/${trackOnly ? 'repository/tags' : 'releases'}?$optionalAuth', 'https://${hosts[0]}/api/v4/projects/${names.author}%2F${names.name}/${trackOnly ? 'repository/tags' : 'releases'}?$optionalAuth',
@@ -157,7 +169,7 @@ class GitLab extends AppSource {
.join('.apk\n') .join('.apk\n')
.split('\n') .split('\n')
.where((s) => s.startsWith('/uploads/') && s.endsWith('apk')) .where((s) => s.startsWith('/uploads/') && s.endsWith('apk'))
.map((s) => '$standardUrl$s') .map((s) => 'https://${hosts[0]}/-/project/$projectId$s')
.toList(); .toList();
var apkUrlsSet = apkUrlsFromAssets.toSet(); var apkUrlsSet = apkUrlsFromAssets.toSet();
apkUrlsSet.addAll(uploadedAPKsFromDescription); apkUrlsSet.addAll(uploadedAPKsFromDescription);

View File

@@ -92,7 +92,89 @@ bool _isNumeric(String s) {
return s.codeUnitAt(0) >= 48 && s.codeUnitAt(0) <= 57; return s.codeUnitAt(0) >= 48 && s.codeUnitAt(0) <= 57;
} }
// Given an HTTP response, grab some links according to the common additional settings
// (those that apply to intermediate and final steps)
Future<List<MapEntry<String, String>>> grabLinksCommon(
Response res, Map<String, dynamic> additionalSettings) async {
if (res.statusCode != 200) {
throw getObtainiumHttpError(res);
}
var html = parse(res.body);
List<MapEntry<String, String>> allLinks = html
.querySelectorAll('a')
.map((element) => MapEntry(
element.attributes['href'] ?? '',
element.text.isNotEmpty
? element.text
: (element.attributes['href'] ?? '').split('/').last))
.where((element) => element.key.isNotEmpty)
.map((e) => MapEntry(ensureAbsoluteUrl(e.key, res.request!.url), e.value))
.toList();
if (allLinks.isEmpty) {
allLinks = RegExp(
r'(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?')
.allMatches(res.body)
.map((match) =>
MapEntry(match.group(0)!, match.group(0)?.split('/').last ?? ''))
.toList();
}
List<MapEntry<String, String>> links = [];
bool skipSort = additionalSettings['skipSort'] == true;
bool filterLinkByText = additionalSettings['filterByLinkText'] == true;
if ((additionalSettings['customLinkFilterRegex'] as String?)?.isNotEmpty ==
true) {
var reg = RegExp(additionalSettings['customLinkFilterRegex']);
links = allLinks.where((element) {
var link = element.key;
try {
link = Uri.decodeFull(element.key);
} catch (e) {
// Some links may not have valid encoding
}
return reg.hasMatch(filterLinkByText ? element.value : link);
}).toList();
} else {
links = allLinks.where((element) {
var link = element.key;
try {
link = Uri.decodeFull(element.key);
} catch (e) {
// Some links may not have valid encoding
}
return Uri.parse(filterLinkByText ? element.value : link)
.path
.toLowerCase()
.endsWith('.apk');
}).toList();
}
if (!skipSort) {
links.sort((a, b) => additionalSettings['sortByLastLinkSegment'] == true
? compareAlphaNumeric(a.key.split('/').where((e) => e.isNotEmpty).last,
b.key.split('/').where((e) => e.isNotEmpty).last)
: compareAlphaNumeric(a.key, b.key));
}
if (additionalSettings['reverseSort'] == true) {
links = links.reversed.toList();
}
return links;
}
class HTML extends AppSource { class HTML extends AppSource {
@override
List<List<GeneratedFormItem>> get combinedAppSpecificSettingFormItems {
return super.combinedAppSpecificSettingFormItems.map((r) {
return r.map((e) {
if (e.key == 'versionExtractionRegEx') {
e.label = tr('versionExtractionRegEx');
}
if (e.key == 'matchGroupToUse') {
e.label = tr('matchGroupToUse');
}
return e;
}).toList();
}).toList();
}
var finalStepFormitems = [ var finalStepFormitems = [
[ [
GeneratedFormTextField('customLinkFilterRegex', GeneratedFormTextField('customLinkFilterRegex',
@@ -210,75 +292,6 @@ class HTML extends AppSource {
return url; return url;
} }
// Given an HTTP response, grab some links according to the common additional settings
// (those that apply to intermediate and final steps)
Future<List<MapEntry<String, String>>> grabLinksCommon(
Response res, Map<String, dynamic> additionalSettings) async {
if (res.statusCode != 200) {
throw getObtainiumHttpError(res);
}
var html = parse(res.body);
List<MapEntry<String, String>> allLinks = html
.querySelectorAll('a')
.map((element) => MapEntry(
element.attributes['href'] ?? '',
element.text.isNotEmpty
? element.text
: (element.attributes['href'] ?? '').split('/').last))
.where((element) => element.key.isNotEmpty)
.map((e) =>
MapEntry(ensureAbsoluteUrl(e.key, res.request!.url), e.value))
.toList();
if (allLinks.isEmpty) {
allLinks = RegExp(
r'(http|ftp|https)://([\w_-]+(?:(?:\.[\w_-]+)+))([\w.,@?^=%&:/~+#-]*[\w@?^=%&/~+#-])?')
.allMatches(res.body)
.map((match) =>
MapEntry(match.group(0)!, match.group(0)?.split('/').last ?? ''))
.toList();
}
List<MapEntry<String, String>> links = [];
bool skipSort = additionalSettings['skipSort'] == true;
bool filterLinkByText = additionalSettings['filterByLinkText'] == true;
if ((additionalSettings['customLinkFilterRegex'] as String?)?.isNotEmpty ==
true) {
var reg = RegExp(additionalSettings['customLinkFilterRegex']);
links = allLinks.where((element) {
var link = element.key;
try {
link = Uri.decodeFull(element.key);
} catch (e) {
// Some links may not have valid encoding
}
return reg.hasMatch(filterLinkByText ? element.value : link);
}).toList();
} else {
links = allLinks.where((element) {
var link = element.key;
try {
link = Uri.decodeFull(element.key);
} catch (e) {
// Some links may not have valid encoding
}
return Uri.parse(filterLinkByText ? element.value : link)
.path
.toLowerCase()
.endsWith('.apk');
}).toList();
}
if (!skipSort) {
links.sort((a, b) => additionalSettings['sortByLastLinkSegment'] == true
? compareAlphaNumeric(
a.key.split('/').where((e) => e.isNotEmpty).last,
b.key.split('/').where((e) => e.isNotEmpty).last)
: compareAlphaNumeric(a.key, b.key));
}
if (additionalSettings['reverseSort'] == true) {
links = links.reversed.toList();
}
return links;
}
@override @override
Future<APKDetails> getLatestAPKDetails( Future<APKDetails> getLatestAPKDetails(
String standardUrl, String standardUrl,

View File

@@ -246,14 +246,14 @@ class _ObtainiumState extends State<Obtainium> {
? darkColorScheme ? darkColorScheme
: lightColorScheme, : lightColorScheme,
fontFamily: fontFamily:
settingsProvider.useSystemFont ? 'SystemFont' : 'Metropolis'), settingsProvider.useSystemFont ? '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 ? 'SystemFont' : 'Metropolis'), settingsProvider.useSystemFont ? '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

@@ -917,6 +917,27 @@ class AppsPageState extends State<AppsPage> {
}, },
child: Text(tr('shareAppConfigLinks'))), child: Text(tr('shareAppConfigLinks'))),
const Divider(), const Divider(),
TextButton(
onPressed: selectedAppIds.isEmpty
? null
: () {
var exportJSON = jsonEncode(
appsProvider.generateExportJSON(
appIds: selectedApps
.map((e) => e.id)
.toList(),
overrideExportSettings: false));
XFile f = XFile.fromData(
Uint8List.fromList(
utf8.encode(exportJSON)),
mimeType: 'application/json',
name:
'${tr('obtainiumExportHyphenatedLowercase')}-${selectedApps.length}-${DateTime.now().millisecondsSinceEpoch}');
Share.shareXFiles([f]);
},
child: Text(
'${tr('share')} - ${tr('obtainiumExport')}')),
const Divider(),
TextButton( TextButton(
onPressed: () { onPressed: () {
appsProvider appsProvider
@@ -1056,7 +1077,9 @@ class AppsPageState extends State<AppsPage> {
IconButton( IconButton(
color: Theme.of(context).colorScheme.primary, color: Theme.of(context).colorScheme.primary,
style: const ButtonStyle(visualDensity: VisualDensity.compact), style: const ButtonStyle(visualDensity: VisualDensity.compact),
tooltip: '${tr('filter')}${isFilterOff ? '' : ' *'}', tooltip: isFilterOff
? tr('filterApps')
: '${tr('filter')} - ${tr('remove')}',
onPressed: isFilterOff onPressed: isFilterOff
? showFilterDialog ? showFilterDialog
: () { : () {
@@ -1065,8 +1088,8 @@ class AppsPageState extends State<AppsPage> {
}); });
}, },
icon: Icon(isFilterOff icon: Icon(isFilterOff
? Icons.filter_list_rounded ? Icons.search_rounded
: Icons.filter_list_off_rounded)), : Icons.search_off_rounded)),
const SizedBox( const SizedBox(
width: 10, width: 10,
), ),

View File

@@ -367,7 +367,7 @@ class AppsProvider with ChangeNotifier {
AppsProvider({isBg = false}) { AppsProvider({isBg = false}) {
// Subscribe to changes in the app foreground status // Subscribe to changes in the app foreground status
foregroundStream = FGBGEvents.stream.asBroadcastStream(); foregroundStream = FGBGEvents.instance.stream.asBroadcastStream();
foregroundSubscription = foregroundStream?.listen((event) async { foregroundSubscription = foregroundStream?.listen((event) async {
isForeground = event == FGBGType.foreground; isForeground = event == FGBGType.foreground;
if (isForeground) { if (isForeground) {
@@ -572,7 +572,7 @@ class AppsProvider with ChangeNotifier {
if (!isForeground) { if (!isForeground) {
await notificationsProvider.notify(completeInstallationNotification, await notificationsProvider.notify(completeInstallationNotification,
cancelExisting: true); cancelExisting: true);
while (await FGBGEvents.stream.first != FGBGType.foreground) {} while (await FGBGEvents.instance.stream.first != FGBGType.foreground) {}
await notificationsProvider.cancel(completeInstallationNotification.id); await notificationsProvider.cancel(completeInstallationNotification.id);
} }
} }
@@ -1501,6 +1501,34 @@ class AppsProvider with ChangeNotifier {
return updateAppIds; return updateAppIds;
} }
Map<String, dynamic> generateExportJSON(
{List<String>? appIds, bool? overrideExportSettings}) {
Map<String, dynamic> finalExport = {};
finalExport['apps'] = apps.values
.where((e) {
if (appIds == null) {
return true;
} else {
return appIds.contains(e.app.id);
}
})
.map((e) => e.app.toJson())
.toList();
bool shouldExportSettings = settingsProvider.exportSettings;
if (overrideExportSettings != null) {
shouldExportSettings = overrideExportSettings;
}
if (shouldExportSettings) {
finalExport['settings'] = Map<String, Object?>.fromEntries(
(settingsProvider.prefs
?.getKeys()
.map((key) => MapEntry(key, settingsProvider.prefs?.get(key)))
.toList()) ??
[]);
}
return finalExport;
}
Future<String?> export( Future<String?> export(
{bool pickOnly = false, isAuto = false, SettingsProvider? sp}) async { {bool pickOnly = false, isAuto = false, SettingsProvider? sp}) async {
SettingsProvider settingsProvider = sp ?? this.settingsProvider; SettingsProvider settingsProvider = sp ?? this.settingsProvider;
@@ -1531,17 +1559,7 @@ class AppsProvider with ChangeNotifier {
} }
String? returnPath; String? returnPath;
if (!pickOnly) { if (!pickOnly) {
Map<String, dynamic> finalExport = {}; Map<String, dynamic> finalExport = generateExportJSON();
finalExport['apps'] = apps.values.map((e) => e.app.toJson()).toList();
if (settingsProvider.exportSettings) {
finalExport['settings'] = Map<String, Object?>.fromEntries(
(settingsProvider.prefs
?.getKeys()
.map((key) =>
MapEntry(key, settingsProvider.prefs?.get(key)))
.toList()) ??
[]);
}
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',
@@ -1770,7 +1788,9 @@ Future<void> bgUpdateCheck(String taskId, Map<String, dynamic>? params) async {
int maxRetryWaitSeconds = 5; int maxRetryWaitSeconds = 5;
var netResult = await (Connectivity().checkConnectivity()); var netResult = await (Connectivity().checkConnectivity());
if (netResult.contains(ConnectivityResult.none)) { if (netResult.contains(ConnectivityResult.none) ||
netResult.isEmpty ||
(netResult.contains(ConnectivityResult.vpn) && netResult.length == 1)) {
logs.add('BG update task: No network.'); logs.add('BG update task: No network.');
return; return;
} }

View File

@@ -355,8 +355,10 @@ preStandardizeUrl(String url) {
url = 'https://$url'; url = 'https://$url';
} }
var uri = Uri.tryParse(url); var uri = Uri.tryParse(url);
var trailingSlash = (uri?.path.endsWith('/') ?? false) && var trailingSlash = ((uri?.path.endsWith('/') ?? false) ||
((uri?.path.isEmpty ?? false) && url.endsWith('/'))) &&
(uri?.queryParameters.isEmpty ?? false); (uri?.queryParameters.isEmpty ?? false);
url = url url = url
.split('/') .split('/')
.where((e) => e.isNotEmpty) .where((e) => e.isNotEmpty)
@@ -493,13 +495,15 @@ abstract class AppSource {
], ],
[ [
GeneratedFormTextField('versionExtractionRegEx', GeneratedFormTextField('versionExtractionRegEx',
label: tr('versionExtractionRegEx'), label: tr('trimVersionString'),
required: false, required: false,
additionalValidators: [(value) => regExValidator(value)]), additionalValidators: [(value) => regExValidator(value)]),
], ],
[ [
GeneratedFormTextField('matchGroupToUse', GeneratedFormTextField('matchGroupToUse',
label: tr('matchGroupToUse'), required: false, hint: '\$0') label: tr('matchGroupToUseForX', args: [tr('trimVersionString')]),
required: false,
hint: '\$0')
], ],
[ [
GeneratedFormSwitch('versionDetection', GeneratedFormSwitch('versionDetection',
@@ -759,9 +763,9 @@ class SourceProvider {
APKPure(), APKPure(),
Aptoide(), Aptoide(),
Uptodown(), Uptodown(),
APKMirror(),
HuaweiAppGallery(), HuaweiAppGallery(),
Jenkins(), Jenkins(),
APKMirror(),
Signal(), Signal(),
VLC(), VLC(),
WhatsApp(), WhatsApp(),

View File

@@ -5,10 +5,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: android_intent_plus name: android_intent_plus
sha256: "2bfdbee8d65e7c26f88b66f0a91f2863da4d3596d8a658b4162c8de5cf04b074" sha256: "007703c1b2cac7ca98add3336b98cffa4baa11d5133cc463293dba9daa39cdf6"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.0.2" version: "5.1.0"
android_package_installer: android_package_installer:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -47,34 +47,34 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: app_links name: app_links
sha256: a9905d6a60e814503fabc7523a9ed161b812d7ca69c99ad8ceea14279dc4f06b sha256: ae5f9a1b7d40d26178f605414be81ed4260350b4fae8259fe5ca4f89fe70c4af
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.1.3" version: "6.1.4"
app_links_linux: app_links_linux:
dependency: transitive dependency: transitive
description: description:
name: app_links_linux name: app_links_linux
sha256: "567139eca3ca9fb113f2082f3aaa75a26f30f0ebdbe5fa7f09a3913c5bebd630" sha256: f5f7173a78609f3dfd4c2ff2c95bd559ab43c80a87dc6a095921d96c05688c81
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.2" version: "1.0.3"
app_links_platform_interface: app_links_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: app_links_platform_interface name: app_links_platform_interface
sha256: "58cff6f11df59b0e514dd5e4a61e988348ad5662f0e75d45d4e214ebea55c94c" sha256: "05f5379577c513b534a29ddea68176a4d4802c46180ee8e2e966257158772a3f"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.0" version: "2.0.2"
app_links_web: app_links_web:
dependency: transitive dependency: transitive
description: description:
name: app_links_web name: app_links_web
sha256: "74586ed5f3c4786341e82a0fa43c39ec3f13108a550f74e80d8bf68aa11349d1" sha256: af060ed76183f9e2b87510a9480e56a5352b6c249778d07bd2c95fc35632a555
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.0.3" version: "1.0.4"
archive: archive:
dependency: transitive dependency: transitive
description: description:
@@ -159,26 +159,26 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: connectivity_plus name: connectivity_plus
sha256: db7a4e143dc72cc3cb2044ef9b052a7ebfe729513e6a82943bc3526f784365b8 sha256: "3e7d1d9dbae40ae82cbe6c23c518f0c4ffe32764ee9749b9a99d32cbac8734f6"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.0.3" version: "6.0.4"
connectivity_plus_platform_interface: connectivity_plus_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: connectivity_plus_platform_interface name: connectivity_plus_platform_interface
sha256: b6a56efe1e6675be240de39107281d4034b64ac23438026355b4234042a35adb sha256: "42657c1715d48b167930d5f34d00222ac100475f73d10162ddf43e714932f204"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.0" version: "2.0.1"
cross_file: cross_file:
dependency: transitive dependency: transitive
description: description:
name: cross_file name: cross_file
sha256: "55d7b444feb71301ef6b8838dbc1ae02e63dd48c8773f3810ff53bb1e2945b32" sha256: "7caf6a750a0c04effbb52a676dce9a4a592e10ad35c34d6d2d0e4811160d5670"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.3.4+1" version: "0.3.4+2"
crypto: crypto:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -215,18 +215,18 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: device_info_plus name: device_info_plus
sha256: eead12d1a1ed83d8283ab4c2f3fca23ac4082f29f25f29dff0f758f57d06ec91 sha256: "93429694c9253d2871b3af80cf11b3cbb5c65660d402ed7bf69854ce4a089f82"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "10.1.0" version: "10.1.1"
device_info_plus_platform_interface: device_info_plus_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: device_info_plus_platform_interface name: device_info_plus_platform_interface
sha256: d3b01d5868b50ae571cd1dc6e502fc94d956b665756180f7b16ead09e836fd64 sha256: "282d3cf731045a2feb66abfe61bbc40870ae50a3ed10a4d3d217556c35c8c2ba"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "7.0.0" version: "7.0.1"
dynamic_color: dynamic_color:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -287,10 +287,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: file_picker name: file_picker
sha256: "2ca051989f69d1b2ca012b2cf3ccf78c70d40144f0861ff2c063493f7c8c3d45" sha256: "825aec673606875c33cd8d3c4083f1a3c3999015a84178b317b7ef396b7384f3"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "8.0.5" version: "8.0.7"
fixnum: fixnum:
dependency: transitive dependency: transitive
description: description:
@@ -311,10 +311,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: flex_seed_scheme name: flex_seed_scheme
sha256: "6c595e545b0678e1fe17e8eec3d1fbca7237482da194fadc20ad8607dc7a7f3d" sha256: cc08c81879ecfd2ab840664ce4770980da0b8a319e35f51bcf763849b7f7596b
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.0" version: "3.1.2"
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: "08c4d2fd229e3df26083d5aecc3dea9ff4f2d188f8cd57aaf2b3f047bd08a047" sha256: "5e61a2ff2e2e83614ae7690bea3dfa74bbd91b5c083e81ce07692411ce65e3d7"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.3.0" version: "0.4.0"
flutter_keyboard_visibility: flutter_keyboard_visibility:
dependency: transitive dependency: transitive
description: description:
@@ -404,18 +404,18 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: flutter_local_notifications name: flutter_local_notifications
sha256: ced76d337f54de33d7d9f06092137b4ac2da5079e00cee8a11a1794ffc7c61c6 sha256: dd6676d8c2926537eccdf9f72128bbb2a9d0814689527b17f92c248ff192eaf3
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "17.2.1" version: "17.2.1+2"
flutter_local_notifications_linux: flutter_local_notifications_linux:
dependency: transitive dependency: transitive
description: description:
name: flutter_local_notifications_linux name: flutter_local_notifications_linux
sha256: "33f741ef47b5f63cc7f78fe75eeeac7e19f171ff3c3df054d84c1e38bedb6a03" sha256: c49bd06165cad9beeb79090b18cd1eb0296f4bf4b23b84426e37dd7c027fc3af
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.0.0+1" version: "4.0.1"
flutter_local_notifications_platform_interface: flutter_local_notifications_platform_interface:
dependency: transitive dependency: transitive
description: description:
@@ -441,10 +441,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: flutter_plugin_android_lifecycle name: flutter_plugin_android_lifecycle
sha256: c6b0b4c05c458e1c01ad9bcc14041dd7b1f6783d487be4386f793f47a8a4d03e sha256: "9d98bd47ef9d34e803d438f17fd32b116d31009f534a6fa5ce3a1167f189a6de"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.0.20" version: "2.0.21"
flutter_test: flutter_test:
dependency: "direct dev" dependency: "direct dev"
description: flutter description: flutter
@@ -475,10 +475,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: fraction name: fraction
sha256: "09e9504c9177bbd77df56e5d147abfbb3b43360e64bf61510059c14d6a82d524" sha256: ac0d9904bb8211eb28606bdf623ff9f222c53240d8e9b927a07c149d356eddc2
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.0.2" version: "5.0.3"
gtk: gtk:
dependency: transitive dependency: transitive
description: description:
@@ -507,10 +507,10 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: http name: http
sha256: "761a297c042deedc1ffbb156d6e2af13886bb305c2a343a4d972504cd67dd938" sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.1" version: "1.2.2"
http_parser: http_parser:
dependency: transitive dependency: transitive
description: description:
@@ -547,18 +547,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker name: leak_tracker
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a" sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "10.0.4" version: "10.0.5"
leak_tracker_flutter_testing: leak_tracker_flutter_testing:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker_flutter_testing name: leak_tracker_flutter_testing
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8" sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.3" version: "3.0.5"
leak_tracker_testing: leak_tracker_testing:
dependency: transitive dependency: transitive
description: description:
@@ -595,18 +595,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: material_color_utilities name: material_color_utilities
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.8.0" version: "0.11.1"
meta: meta:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136" sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.12.0" version: "1.15.0"
mime: mime:
dependency: transitive dependency: transitive
description: description:
@@ -643,18 +643,18 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: path_provider name: path_provider
sha256: c9e7d3a4cd1410877472158bee69963a4579f78b68c65a2b7d40d1a7a88bb161 sha256: fec0d61223fba3154d87759e3cc27fe2c8dc498f6386c6d6fc80d1afdd1bf378
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.3" version: "2.1.4"
path_provider_android: path_provider_android:
dependency: transitive dependency: transitive
description: description:
name: path_provider_android name: path_provider_android
sha256: bca87b0165ffd7cdb9cad8edd22d18d2201e886d9a9f19b4fb3452ea7df3a72a sha256: "490539678396d4c3c0b06efdaab75ae60675c3e0c66f72bc04c2e2c1e0e2abeb"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.6" version: "2.2.9"
path_provider_foundation: path_provider_foundation:
dependency: transitive dependency: transitive
description: description:
@@ -683,10 +683,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: path_provider_windows name: path_provider_windows
sha256: "8bc9f22eee8690981c22aa7fc602f5c85b497a6fb2ceb35ee5a5e5ed85ad8170" sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.1" version: "2.3.0"
permission_handler: permission_handler:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -699,10 +699,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: permission_handler_android name: permission_handler_android
sha256: b29a799ca03be9f999aa6c39f7de5209482d638e6f857f6b93b0875c618b7e54 sha256: eaf2a1ec4472775451e88ca6a7b86559ef2f1d1ed903942ed135e38ea0097dca
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "12.0.7" version: "12.0.8"
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: "54bf176b90f6eddd4ece307e2c06cf977fb3973719c35a93b85cc7093eb6070d" sha256: "6cac773d389e045a8d4f85418d07ad58ef9e42a56e063629ce14c4c26344de24"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.1.1" version: "0.1.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: "48d4fcf201a1dad93ee869ab0d4101d084f49136ec82a8a06ed9cfeacab9fd20" sha256: fe0ffe274d665be8e34f9c59705441a7d248edebbe5d9e3ec2665f88b79358ea
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.2.1" version: "4.2.2"
permission_handler_windows: permission_handler_windows:
dependency: transitive dependency: transitive
description: description:
@@ -763,10 +763,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: pointer_interceptor name: pointer_interceptor
sha256: d0a8e660d1204eaec5bd34b34cc92174690e076d2e4f893d9d68c486a13b07c4 sha256: "57210410680379aea8b1b7ed6ae0c3ad349bfd56fe845b8ea934a53344b9d523"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.10.1+1" version: "0.10.1+2"
pointer_interceptor_ios: pointer_interceptor_ios:
dependency: transitive dependency: transitive
description: description:
@@ -787,10 +787,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: pointer_interceptor_web name: pointer_interceptor_web
sha256: a6237528b46c411d8d55cdfad8fcb3269fc4cbb26060b14bff94879165887d1e sha256: "7a7087782110f8c1827170660b09f8aa893e0e9a61431dbbe2ac3fc482e8c044"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.10.2" version: "0.10.2+1"
provider: provider:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -803,74 +803,74 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
name: share_plus name: share_plus
sha256: ef3489a969683c4f3d0239010cc8b7a2a46543a8d139e111c06c558875083544 sha256: "59dfd53f497340a0c3a81909b220cfdb9b8973a91055c4e5ab9b9b9ad7c513c0"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "9.0.0" version: "10.0.0"
share_plus_platform_interface: share_plus_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: share_plus_platform_interface name: share_plus_platform_interface
sha256: "0f9e4418835d1b2c3ae78fdb918251959106cefdbc4dd43526e182f80e82f6d4" sha256: "6ababf341050edff57da8b6990f11f4e99eaba837865e2e6defe16d039619db5"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.0.0" version: "5.0.0"
shared_preferences: shared_preferences:
dependency: "direct main" dependency: "direct main"
description: description:
name: shared_preferences name: shared_preferences
sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180 sha256: c272f9cabca5a81adc9b0894381e9c1def363e980f960fa903c604c471b22f68
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.3" version: "2.3.1"
shared_preferences_android: shared_preferences_android:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_android name: shared_preferences_android
sha256: "93d0ec9dd902d85f326068e6a899487d1f65ffcd5798721a95330b26c8131577" sha256: "041be4d9d2dc6079cf342bc8b761b03787e3b71192d658220a56cac9c04a0294"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.2.3" version: "2.3.0"
shared_preferences_foundation: shared_preferences_foundation:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_foundation name: shared_preferences_foundation
sha256: "0a8a893bf4fd1152f93fec03a415d11c27c74454d96e2318a7ac38dd18683ab7" sha256: "671e7a931f55a08aa45be2a13fe7247f2a41237897df434b30d2012388191833"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.4.0" version: "2.5.0"
shared_preferences_linux: shared_preferences_linux:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_linux name: shared_preferences_linux
sha256: "9f2cbcf46d4270ea8be39fa156d86379077c8a5228d9dfdb1164ae0bb93f1faa" sha256: "2ba0510d3017f91655b7543e9ee46d48619de2a2af38e5c790423f7007c7ccc1"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.2" version: "2.4.0"
shared_preferences_platform_interface: shared_preferences_platform_interface:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_platform_interface name: shared_preferences_platform_interface
sha256: "22e2ecac9419b4246d7c22bfbbda589e3acf5c0351137d87dd2939d984d37c3b" sha256: "57cbf196c486bc2cf1f02b85784932c6094376284b3ad5779d1b1c6c6a816b80"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.2" version: "2.4.1"
shared_preferences_web: shared_preferences_web:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_web name: shared_preferences_web
sha256: "9aee1089b36bd2aafe06582b7d7817fd317ef05fc30e6ba14bff247d0933042a" sha256: "59dc807b94d29d52ddbb1b3c0d3b9d0a67fc535a64e62a5542c8db0513fcb6c2"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.0" version: "2.4.1"
shared_preferences_windows: shared_preferences_windows:
dependency: transitive dependency: transitive
description: description:
name: shared_preferences_windows name: shared_preferences_windows
sha256: "841ad54f3c8381c480d0c9b508b89a34036f512482c407e6df7a9c4aa2ef8f59" sha256: "398084b47b7f92110683cac45c6dc4aae853db47e470e5ddcd52cab7f7196ab2"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.2" version: "2.4.0"
shared_storage: shared_storage:
dependency: "direct main" dependency: "direct main"
description: description:
@@ -969,18 +969,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f" sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.0" version: "0.7.2"
timezone: timezone:
dependency: transitive dependency: transitive
description: description:
name: timezone name: timezone
sha256: a6ccda4a69a442098b602c44e61a1e2b4bf6f5516e875bbf0f427d5df14745d5 sha256: "2236ec079a174ce07434e89fcd3fcda430025eb7692244139a9cf54fdcf1fc7d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.9.3" version: "0.9.4"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:
@@ -1001,18 +1001,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_android name: url_launcher_android
sha256: ceb2625f0c24ade6ef6778d1de0b2e44f2db71fded235eb52295247feba8c5cf sha256: "94d8ad05f44c6d4e2ffe5567ab4d741b82d62e3c8e288cc1fcea45965edf47c9"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.3.3" version: "6.3.8"
url_launcher_ios: url_launcher_ios:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_ios name: url_launcher_ios
sha256: "7068716403343f6ba4969b4173cbf3b84fc768042124bc2c011e5d782b24fe89" sha256: e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "6.3.0" version: "6.3.1"
url_launcher_linux: url_launcher_linux:
dependency: transitive dependency: transitive
description: description:
@@ -1041,26 +1041,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_web name: url_launcher_web
sha256: "8d9e750d8c9338601e709cd0885f95825086bd8b642547f26bda435aade95d8a" sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.3.1" version: "2.3.3"
url_launcher_windows: url_launcher_windows:
dependency: transitive dependency: transitive
description: description:
name: url_launcher_windows name: url_launcher_windows
sha256: ecf9725510600aa2bb6d7ddabe16357691b6d2805f66216a97d1b881e21beff7 sha256: "49c10f879746271804767cb45551ec5592cdab00ee105c06dddde1a98f73b185"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.1.1" version: "3.1.2"
uuid: uuid:
dependency: transitive dependency: transitive
description: description:
name: uuid name: uuid
sha256: "814e9e88f21a176ae1359149021870e87f7cddaf633ab678a5d2b0bff7fd1ba8" sha256: "83d37c7ad7aaf9aa8e275490669535c8080377cfa7a7004c24dfac53afffaa90"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "4.4.0" version: "4.4.2"
vector_math: vector_math:
dependency: transitive dependency: transitive
description: description:
@@ -1073,10 +1073,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: vm_service name: vm_service
sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec" sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "14.2.1" version: "14.2.4"
web: web:
dependency: transitive dependency: transitive
description: description:
@@ -1097,10 +1097,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: webview_flutter_android name: webview_flutter_android
sha256: f42447ca49523f11d8f70abea55ea211b3cafe172dd7a0e7ac007bb35dd356dc sha256: c66651fba15f9d7ddd31daec42da8d6bce46c85610a7127e3ebcb39a4395c3c9
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.16.4" version: "3.16.6"
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: "7affdf9d680c015b11587181171d3cad8093e449db1f7d9f0f08f4f33d24f9a0" sha256: "9c62cc46fa4f2d41e10ab81014c1de470a6c6f26051a2de32111b2ee55287feb"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.13.1" version: "3.14.0"
win32: win32:
dependency: transitive dependency: transitive
description: description:
name: win32 name: win32
sha256: a79dbe579cb51ecd6d30b17e0cae4e0ea15e2c0e66f69ad4198f22a6789e94f4 sha256: "015002c060f1ae9f41a818f2d5640389cc05283e368be19dc8d77cecb43c40c9"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "5.5.1" version: "5.5.3"
win32_registry: win32_registry:
dependency: transitive dependency: transitive
description: description:
name: win32_registry name: win32_registry
sha256: "10589e0d7f4e053f2c61023a31c9ce01146656a70b7b7f0828c0b46d7da2a9bb" sha256: "723b7f851e5724c55409bb3d5a32b203b3afe8587eaf5dafb93a5fed8ecda0d6"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.3" version: "1.1.4"
xdg_directories: xdg_directories:
dependency: transitive dependency: transitive
description: description:

View File

@@ -1,5 +1,5 @@
name: obtainium name: obtainium
description: Get Android App Updates Directly From the Source. description: Get Android app updates straight from the source.
# The following line prevents the package from being accidentally published to # The following line prevents the package from being accidentally published to
# pub.dev using `flutter pub publish`. This is preferred for private packages. # pub.dev using `flutter pub publish`. This is preferred for private packages.
@@ -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.13+2270 version: 1.1.19+2276
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.3.0 # Try removing reliance on this flutter_fgbg: ^0.4.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
@@ -56,7 +56,7 @@ dependencies:
url: https://github.com/ImranR98/android_package_installer url: https://github.com/ImranR98/android_package_installer
ref: main ref: main
android_package_manager: ^0.7.0 android_package_manager: ^0.7.0
share_plus: ^9.0.0 share_plus: ^10.0.0
sqflite: ^2.2.0+3 sqflite: ^2.2.0+3
easy_localization: ^3.0.1 easy_localization: ^3.0.1
android_intent_plus: ^5.0.1 android_intent_plus: ^5.0.1
@@ -145,6 +145,6 @@ flutter:
# see https://flutter.dev/custom-fonts/#from-packages # see https://flutter.dev/custom-fonts/#from-packages
fonts: fonts:
- family: Metropolis - family: Wix-Madefor-Display
fonts: fonts:
- asset: assets/fonts/Metropolis-Regular.otf - asset: assets/fonts/WixMadeforDisplay-Regular.otf