mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-08-11 01:20:16 +02:00
Compare commits
11 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
4017253470 | ||
|
b0b6ddb8fd | ||
|
192b7fc6ce | ||
|
b74dbb973c | ||
|
46ccf8478b | ||
|
9a354ecf0e | ||
|
738dd5649f | ||
|
9f50d8db2d | ||
|
eeb57dbe35 | ||
|
cbcc8c4eaf | ||
|
f4d27c8494 |
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Deinstaliraj s uređaja",
|
"uninstallFromDevice": "Deinstaliraj s uređaja",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Radi samo za aplikacije s onemogućenom detekcijom verzije.",
|
"onlyWorksWithNonVersionDetectApps": "Radi samo za aplikacije s onemogućenom detekcijom verzije.",
|
||||||
"releaseDateAsVersion": "Koristi datum izdanja kao verziju",
|
"releaseDateAsVersion": "Koristi datum izdanja kao verziju",
|
||||||
|
"releaseTitleAsVersion": "Use release title as version string",
|
||||||
"releaseDateAsVersionExplanation": "Ova opcija bi se trebala koristiti samo za aplikacije gdje detekcija verzije ne radi ispravno, ali je datum izdavanja dostupan.",
|
"releaseDateAsVersionExplanation": "Ova opcija bi se trebala koristiti samo za aplikacije gdje detekcija verzije ne radi ispravno, ali je datum izdavanja dostupan.",
|
||||||
"changes": "Promjene",
|
"changes": "Promjene",
|
||||||
"releaseDate": "Datum izdavanja",
|
"releaseDate": "Datum izdavanja",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Pomoć/Wiki",
|
"wiki": "Pomoć/Wiki",
|
||||||
"crowdsourcedConfigsLabel": "Konfiguracije aplikacije obezbeđene pomoću velikog broja ljudi (crowdsourcing) (koristite na svoju odgovornost)",
|
"crowdsourcedConfigsLabel": "Konfiguracije aplikacije obezbeđene pomoću velikog broja ljudi (crowdsourcing) (koristite na svoju odgovornost)",
|
||||||
"allowInsecure": "Allow insecure HTTP requests",
|
"allowInsecure": "Allow insecure HTTP requests",
|
||||||
|
"stayOneVersionBehind": "Stay one version behind latest",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Želite li ukloniti aplikaciju?",
|
"one": "Želite li ukloniti aplikaciju?",
|
||||||
"other": "Želite li ukloniti aplikacije?"
|
"other": "Želite li ukloniti aplikacije?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Odinstalovat ze zařízení",
|
"uninstallFromDevice": "Odinstalovat ze zařízení",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Funguje pouze pro aplikace s vypnutou detekcí verze.",
|
"onlyWorksWithNonVersionDetectApps": "Funguje pouze pro aplikace s vypnutou detekcí verze.",
|
||||||
"releaseDateAsVersion": "Použít datum vydání jako verzi",
|
"releaseDateAsVersion": "Použít datum vydání jako verzi",
|
||||||
|
"releaseTitleAsVersion": "Použít název verze jako řetězec verze",
|
||||||
"releaseDateAsVersionExplanation": "Tato možnost by měla být použita pouze u aplikace, kde detekce verzí nefunguje správně, ale je k dispozici datum vydání.",
|
"releaseDateAsVersionExplanation": "Tato možnost by měla být použita pouze u aplikace, kde detekce verzí nefunguje správně, ale je k dispozici datum vydání.",
|
||||||
"changes": "Změny",
|
"changes": "Změny",
|
||||||
"releaseDate": "Datum vydání",
|
"releaseDate": "Datum vydání",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Nápověda/Wiki",
|
"wiki": "Nápověda/Wiki",
|
||||||
"crowdsourcedConfigsLabel": "Konfigurace aplikací s využitím crowdsourcingu (použití na vlastní nebezpečí)",
|
"crowdsourcedConfigsLabel": "Konfigurace aplikací s využitím crowdsourcingu (použití na vlastní nebezpečí)",
|
||||||
"allowInsecure": "Povolení nezabezpečených požadavků HTTP",
|
"allowInsecure": "Povolení nezabezpečených požadavků HTTP",
|
||||||
|
"stayOneVersionBehind": "Zůstaňte o jednu verzi pozadu za nejnovější",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Odstranit Apku?",
|
"one": "Odstranit Apku?",
|
||||||
"other": "Odstranit Apky?"
|
"other": "Odstranit Apky?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Afinstaller fra enhed",
|
"uninstallFromDevice": "Afinstaller fra enhed",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Virker kun for apps med versionsregistrering deaktiveret.",
|
"onlyWorksWithNonVersionDetectApps": "Virker kun for apps med versionsregistrering deaktiveret.",
|
||||||
"releaseDateAsVersion": "Brug udgivelsesdato som versionsstreng",
|
"releaseDateAsVersion": "Brug udgivelsesdato som versionsstreng",
|
||||||
|
"releaseTitleAsVersion": "Brug udgivelsestitel som versionsstreng",
|
||||||
"releaseDateAsVersionExplanation": "Denne indstilling bør kun bruges til apps, hvor versionsregistrering ikke virker korrekt, men hvor en udgivelsesdato er tilgængelig.",
|
"releaseDateAsVersionExplanation": "Denne indstilling bør kun bruges til apps, hvor versionsregistrering ikke virker korrekt, men hvor en udgivelsesdato er tilgængelig.",
|
||||||
"changes": "Ændringer",
|
"changes": "Ændringer",
|
||||||
"releaseDate": "Udgivelsesdato",
|
"releaseDate": "Udgivelsesdato",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Hjælp/Wiki",
|
"wiki": "Hjælp/Wiki",
|
||||||
"crowdsourcedConfigsLabel": "Crowdsourcede app-konfigurationer (brug på egen risiko)",
|
"crowdsourcedConfigsLabel": "Crowdsourcede app-konfigurationer (brug på egen risiko)",
|
||||||
"allowInsecure": "Tillad usikre HTTP-anmodninger",
|
"allowInsecure": "Tillad usikre HTTP-anmodninger",
|
||||||
|
"stayOneVersionBehind": "Vær en version bagud i forhold til den nyeste",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Fjern app?",
|
"one": "Fjern app?",
|
||||||
"other": "Fjern apps?"
|
"other": "Fjern apps?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Vom Gerät deinstallieren",
|
"uninstallFromDevice": "Vom Gerät deinstallieren",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Funktioniert nur bei Apps mit deaktivierter Versionserkennung.",
|
"onlyWorksWithNonVersionDetectApps": "Funktioniert nur bei Apps mit deaktivierter Versionserkennung.",
|
||||||
"releaseDateAsVersion": "Veröffentlichungsdatum als Version verwenden",
|
"releaseDateAsVersion": "Veröffentlichungsdatum als Version verwenden",
|
||||||
|
"releaseTitleAsVersion": "Versionstitel als Versionsstring verwenden",
|
||||||
"releaseDateAsVersionExplanation": "Diese Option sollte nur für Apps verwendet werden, bei denen die Versionserkennung nicht korrekt funktioniert, aber ein Veröffentlichungsdatum verfügbar ist.",
|
"releaseDateAsVersionExplanation": "Diese Option sollte nur für Apps verwendet werden, bei denen die Versionserkennung nicht korrekt funktioniert, aber ein Veröffentlichungsdatum verfügbar ist.",
|
||||||
"changes": "Änderungen",
|
"changes": "Änderungen",
|
||||||
"releaseDate": "Veröffentlichungsdatum",
|
"releaseDate": "Veröffentlichungsdatum",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Hilfe/Wiki",
|
"wiki": "Hilfe/Wiki",
|
||||||
"crowdsourcedConfigsLabel": "Crowdsourced App-Konfigurationen (Verwendung auf eigene Gefahr)",
|
"crowdsourcedConfigsLabel": "Crowdsourced App-Konfigurationen (Verwendung auf eigene Gefahr)",
|
||||||
"allowInsecure": "Unsichere HTTP-Anfragen zulassen",
|
"allowInsecure": "Unsichere HTTP-Anfragen zulassen",
|
||||||
|
"stayOneVersionBehind": "Eine Version hinter der neuesten Version bleiben",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "App entfernen?",
|
"one": "App entfernen?",
|
||||||
"other": "Apps entfernen?"
|
"other": "Apps entfernen?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Malinstali el la disponaĵo",
|
"uninstallFromDevice": "Malinstali el la disponaĵo",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Funkcias nur por apoj kun malaktiva versiodetekto.",
|
"onlyWorksWithNonVersionDetectApps": "Funkcias nur por apoj kun malaktiva versiodetekto.",
|
||||||
"releaseDateAsVersion": "Uzi eldondato kiel versioĉeno",
|
"releaseDateAsVersion": "Uzi eldondato kiel versioĉeno",
|
||||||
|
"releaseTitleAsVersion": "Use release title as version string",
|
||||||
"releaseDateAsVersionExplanation": "Tiu opcio devas esti uzata nur por apoj, por kiu la versiodetekto ne funkcias ĝuste, sed eldondato estas havebla.",
|
"releaseDateAsVersionExplanation": "Tiu opcio devas esti uzata nur por apoj, por kiu la versiodetekto ne funkcias ĝuste, sed eldondato estas havebla.",
|
||||||
"changes": "Modifoj",
|
"changes": "Modifoj",
|
||||||
"releaseDate": "Eldondato",
|
"releaseDate": "Eldondato",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Helpo/Vikio",
|
"wiki": "Helpo/Vikio",
|
||||||
"crowdsourcedConfigsLabel": "Komunumaj apo-agordoj (uzu kun singardo)",
|
"crowdsourcedConfigsLabel": "Komunumaj apo-agordoj (uzu kun singardo)",
|
||||||
"allowInsecure": "Allow insecure HTTP requests",
|
"allowInsecure": "Allow insecure HTTP requests",
|
||||||
|
"stayOneVersionBehind": "Stay one version behind latest",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Forigi la aplikaĵon?",
|
"one": "Forigi la aplikaĵon?",
|
||||||
"other": "Forigi la aplikaĵojn?"
|
"other": "Forigi la aplikaĵojn?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Uninstall from Device",
|
"uninstallFromDevice": "Uninstall from Device",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Only works for Apps with version detection disabled.",
|
"onlyWorksWithNonVersionDetectApps": "Only works for Apps with version detection disabled.",
|
||||||
"releaseDateAsVersion": "Use release date as version string",
|
"releaseDateAsVersion": "Use release date as version string",
|
||||||
|
"releaseTitleAsVersion": "Use release title as version string",
|
||||||
"releaseDateAsVersionExplanation": "This option should only be used for Apps where version detection does not work correctly, but a release date is available.",
|
"releaseDateAsVersionExplanation": "This option should only be used for Apps where version detection does not work correctly, but a release date is available.",
|
||||||
"changes": "Changes",
|
"changes": "Changes",
|
||||||
"releaseDate": "Release Date",
|
"releaseDate": "Release Date",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Help/Wiki",
|
"wiki": "Help/Wiki",
|
||||||
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (use at your own risk)",
|
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (use at your own risk)",
|
||||||
"allowInsecure": "Allow insecure HTTP requests",
|
"allowInsecure": "Allow insecure HTTP requests",
|
||||||
|
"stayOneVersionBehind": "Stay one version behind latest",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Remove App?",
|
"one": "Remove App?",
|
||||||
"other": "Remove Apps?"
|
"other": "Remove Apps?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Desinstalar del dispositivo",
|
"uninstallFromDevice": "Desinstalar del dispositivo",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Solo funciona para aplicaciones con la detección de versiones desactivada.",
|
"onlyWorksWithNonVersionDetectApps": "Solo funciona para aplicaciones con la detección de versiones desactivada.",
|
||||||
"releaseDateAsVersion": "Por fecha de publicación",
|
"releaseDateAsVersion": "Por fecha de publicación",
|
||||||
|
"releaseTitleAsVersion": "Utilizar el título de la versión como cadena de versión",
|
||||||
"releaseDateAsVersionExplanation": "Esta opción solo se debería usar con aplicaciones en las que la detección de versiones no funciona pero hay disponible una fecha de publicación.",
|
"releaseDateAsVersionExplanation": "Esta opción solo se debería usar con aplicaciones en las que la detección de versiones no funciona pero hay disponible una fecha de publicación.",
|
||||||
"changes": "Cambios",
|
"changes": "Cambios",
|
||||||
"releaseDate": "Fecha de publicación",
|
"releaseDate": "Fecha de publicación",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Ayuda/Wiki",
|
"wiki": "Ayuda/Wiki",
|
||||||
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (uso bajo su propia responsabilidad)",
|
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (uso bajo su propia responsabilidad)",
|
||||||
"allowInsecure": "Permitir peticiones HTTP inseguras",
|
"allowInsecure": "Permitir peticiones HTTP inseguras",
|
||||||
|
"stayOneVersionBehind": "Mantenerse una versión por detrás de la última",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "¿Eliminar aplicación?",
|
"one": "¿Eliminar aplicación?",
|
||||||
"other": "¿Eliminar aplicaciones?"
|
"other": "¿Eliminar aplicaciones?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "حذف نصب از دستگاه",
|
"uninstallFromDevice": "حذف نصب از دستگاه",
|
||||||
"onlyWorksWithNonVersionDetectApps": "فقط برای برنامههایی کار میکند که تشخیص نسخه غیرفعال است.",
|
"onlyWorksWithNonVersionDetectApps": "فقط برای برنامههایی کار میکند که تشخیص نسخه غیرفعال است.",
|
||||||
"releaseDateAsVersion": "از تاریخ انتشار به عنوان نسخه استفاده کنید",
|
"releaseDateAsVersion": "از تاریخ انتشار به عنوان نسخه استفاده کنید",
|
||||||
|
"releaseTitleAsVersion": "Use release title as version string",
|
||||||
"releaseDateAsVersionExplanation": "این گزینه فقط باید برای برنامه هایی استفاده شود که تشخیص نسخه به درستی کار نمی کند، اما تاریخ انتشار در دسترس است.",
|
"releaseDateAsVersionExplanation": "این گزینه فقط باید برای برنامه هایی استفاده شود که تشخیص نسخه به درستی کار نمی کند، اما تاریخ انتشار در دسترس است.",
|
||||||
"changes": "تغییرات",
|
"changes": "تغییرات",
|
||||||
"releaseDate": "تاریخ انتشار",
|
"releaseDate": "تاریخ انتشار",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "راهنما/ویکی",
|
"wiki": "راهنما/ویکی",
|
||||||
"crowdsourcedConfigsLabel": "تنظیمات برنامه Crowdsourced (با مسئولیت خود استفاده کنید)",
|
"crowdsourcedConfigsLabel": "تنظیمات برنامه Crowdsourced (با مسئولیت خود استفاده کنید)",
|
||||||
"allowInsecure": "درخواست های HTTP ناامن را مجاز کنید",
|
"allowInsecure": "درخواست های HTTP ناامن را مجاز کنید",
|
||||||
|
"stayOneVersionBehind": "Stay one version behind latest",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "برنامه حذف شود؟",
|
"one": "برنامه حذف شود؟",
|
||||||
"other": "برنامه ها حذف شوند؟"
|
"other": "برنامه ها حذف شوند؟"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Désinstaller de l'appareil",
|
"uninstallFromDevice": "Désinstaller de l'appareil",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Ne fonctionne que pour les applications dont la détection de la version est désactivée.",
|
"onlyWorksWithNonVersionDetectApps": "Ne fonctionne que pour les applications dont la détection de la version est désactivée.",
|
||||||
"releaseDateAsVersion": "Utiliser la date de sortie comme version",
|
"releaseDateAsVersion": "Utiliser la date de sortie comme version",
|
||||||
|
"releaseTitleAsVersion": "Utiliser le titre de la version comme chaîne de caractères de la version",
|
||||||
"releaseDateAsVersionExplanation": "Cette option ne doit être utilisée que pour les applications pour lesquelles la détection de la version ne fonctionne pas correctement, mais 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 dont une date de sortie est disponible.",
|
||||||
"changes": "Modifications",
|
"changes": "Modifications",
|
||||||
"releaseDate": "Date de sortie",
|
"releaseDate": "Date de sortie",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Aide/Wiki",
|
"wiki": "Aide/Wiki",
|
||||||
"crowdsourcedConfigsLabel": "Configurations d'applications par la communauté (à utiliser à vos risques et périls)",
|
"crowdsourcedConfigsLabel": "Configurations d'applications par la communauté (à utiliser à vos risques et périls)",
|
||||||
"allowInsecure": "Autoriser les requêtes HTTP non sécurisées",
|
"allowInsecure": "Autoriser les requêtes HTTP non sécurisées",
|
||||||
|
"stayOneVersionBehind": "Rester à une version de la dernière",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Supprimer l'application ?",
|
"one": "Supprimer l'application ?",
|
||||||
"other": "Supprimer les applications ?"
|
"other": "Supprimer les applications ?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Eltávolítás az eszközről",
|
"uninstallFromDevice": "Eltávolítás az eszközről",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Csak azoknál az alkalmazásoknál működik, amelyeknél a verzióérzékelés le van tiltva.",
|
"onlyWorksWithNonVersionDetectApps": "Csak azoknál az alkalmazásoknál működik, amelyeknél a verzióérzékelés le van tiltva.",
|
||||||
"releaseDateAsVersion": "Használja a kiadás dátumát verzióként",
|
"releaseDateAsVersion": "Használja a kiadás dátumát verzióként",
|
||||||
|
"releaseTitleAsVersion": "A kiadás címét verziószálként használja",
|
||||||
"releaseDateAsVersionExplanation": "Ezt a beállítást csak olyan alkalmazásoknál szabad használni, ahol a verzióérzékelés nem működik megfelelően, de elérhető a kiadás dátuma.",
|
"releaseDateAsVersionExplanation": "Ezt a beállítást csak olyan alkalmazásoknál szabad használni, ahol a verzióérzékelés nem működik megfelelően, de elérhető a kiadás dátuma.",
|
||||||
"changes": "Változások",
|
"changes": "Változások",
|
||||||
"releaseDate": "Kiadás dátuma",
|
"releaseDate": "Kiadás dátuma",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Súgó/Wiki",
|
"wiki": "Súgó/Wiki",
|
||||||
"crowdsourcedConfigsLabel": "Crowdsource-ből származó alkalmazások beállítása (saját felelősségére használja)",
|
"crowdsourcedConfigsLabel": "Crowdsource-ből származó alkalmazások beállítása (saját felelősségére használja)",
|
||||||
"allowInsecure": "Nem biztonságos HTTP-kérések engedélyezése",
|
"allowInsecure": "Nem biztonságos HTTP-kérések engedélyezése",
|
||||||
|
"stayOneVersionBehind": "Maradjon egy verzióval a legfrissebb mögött",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Eltávolítja az alkalmazást?",
|
"one": "Eltávolítja az alkalmazást?",
|
||||||
"other": "Eltávolítja az alkalmazásokat?"
|
"other": "Eltávolítja az alkalmazásokat?"
|
||||||
|
@@ -154,7 +154,7 @@
|
|||||||
"errorCheckingUpdates": "Kesalahan dalam memeriksa pembaruan",
|
"errorCheckingUpdates": "Kesalahan dalam memeriksa pembaruan",
|
||||||
"errorCheckingUpdatesNotifDescription": "Notifikasi yang ditampilkan saat pemeriksaan pembaruan latar belakang gagal",
|
"errorCheckingUpdatesNotifDescription": "Notifikasi yang ditampilkan saat pemeriksaan pembaruan latar belakang gagal",
|
||||||
"appsRemoved": "Aplikasi dihapus",
|
"appsRemoved": "Aplikasi dihapus",
|
||||||
"appsRemovedNotifDescription": "Memberi tahu pengguna bahwa aplikasi aplikasi dihapus karena kesalahan saat memuatnya",
|
"appsRemovedNotifDescription": "Memberi tahu pengguna bahwa aplikasi dihapus karena kesalahan saat memuatnya",
|
||||||
"xWasRemovedDueToErrorY": "{} dihapus karena kesalahan berikut: {}",
|
"xWasRemovedDueToErrorY": "{} dihapus karena kesalahan berikut: {}",
|
||||||
"completeAppInstallation": "Selesaikan pemasangan aplikasi",
|
"completeAppInstallation": "Selesaikan pemasangan aplikasi",
|
||||||
"obtainiumMustBeOpenToInstallApps": "Obtainium harus terbuka untuk memasang aplikasi",
|
"obtainiumMustBeOpenToInstallApps": "Obtainium harus terbuka untuk memasang aplikasi",
|
||||||
@@ -204,7 +204,7 @@
|
|||||||
"categoryDeleteWarning": "Semua aplikasi dalam kategori yang dihapus akan diatur sebagai tidak terkategori.",
|
"categoryDeleteWarning": "Semua aplikasi dalam kategori yang dihapus akan diatur sebagai tidak terkategori.",
|
||||||
"addCategory": "Tambah kategori",
|
"addCategory": "Tambah kategori",
|
||||||
"label": "Label",
|
"label": "Label",
|
||||||
"language": "Language",
|
"language": "Bahasa",
|
||||||
"copiedToClipboard": "Disalin ke papan klip",
|
"copiedToClipboard": "Disalin ke papan klip",
|
||||||
"storagePermissionDenied": "Izin penyimpanan ditolak",
|
"storagePermissionDenied": "Izin penyimpanan ditolak",
|
||||||
"selectedCategorizeWarning": "Ini akan mengganti pengaturan kategori yang ada untuk aplikasi terpilih.",
|
"selectedCategorizeWarning": "Ini akan mengganti pengaturan kategori yang ada untuk aplikasi terpilih.",
|
||||||
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Copot pemasangan dari perangkat",
|
"uninstallFromDevice": "Copot pemasangan dari perangkat",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Hanya bekerja untuk aplikasi dengan pendeteksi versi yang nonaktif.",
|
"onlyWorksWithNonVersionDetectApps": "Hanya bekerja untuk aplikasi dengan pendeteksi versi yang nonaktif.",
|
||||||
"releaseDateAsVersion": "Gunakan tanggal rilis sebagai versi string",
|
"releaseDateAsVersion": "Gunakan tanggal rilis sebagai versi string",
|
||||||
|
"releaseTitleAsVersion": "Gunakan judul rilis sebagai string versi",
|
||||||
"releaseDateAsVersionExplanation": "Opsi ini hanya boleh digunakan untuk aplikasi dengan pendeteksi versi yang tidak berfungsi dengan benar, tetapi tanggal rilisnya tersedia.",
|
"releaseDateAsVersionExplanation": "Opsi ini hanya boleh digunakan untuk aplikasi dengan pendeteksi versi yang tidak berfungsi dengan benar, tetapi tanggal rilisnya tersedia.",
|
||||||
"changes": "Perubahan",
|
"changes": "Perubahan",
|
||||||
"releaseDate": "Tanggal rilis",
|
"releaseDate": "Tanggal rilis",
|
||||||
@@ -231,8 +232,8 @@
|
|||||||
"about": "Tentang",
|
"about": "Tentang",
|
||||||
"requiresCredentialsInSettings": "{} memerlukan kredensial tambahan (dalam pengaturan)",
|
"requiresCredentialsInSettings": "{} memerlukan kredensial tambahan (dalam pengaturan)",
|
||||||
"checkOnStart": "Periksa pembaruan saat proses memulai",
|
"checkOnStart": "Periksa pembaruan saat proses memulai",
|
||||||
"tryInferAppIdFromCode": "Coba simpulkan ID aplikasi dari kode sumber",
|
"tryInferAppIdFromCode": "Coba untuk menebak ID aplikasi dari kode sumber",
|
||||||
"removeOnExternalUninstall": "Secara otomatis menghapus aplikasi yang dicopot pemasangannya dari luar",
|
"removeOnExternalUninstall": "Hapus otomatis aplikasi yang dicopot pemasangannya dari luar",
|
||||||
"pickHighestVersionCode": "Pilih otomatis APK dengan versi kode tertinggi",
|
"pickHighestVersionCode": "Pilih otomatis APK dengan versi kode tertinggi",
|
||||||
"checkUpdateOnDetailPage": "Periksa pembaruan saat membuka halaman detail aplikasi",
|
"checkUpdateOnDetailPage": "Periksa pembaruan saat membuka halaman detail aplikasi",
|
||||||
"disablePageTransitions": "Nonaktifkan animasi transisi halaman",
|
"disablePageTransitions": "Nonaktifkan animasi transisi halaman",
|
||||||
@@ -257,7 +258,7 @@
|
|||||||
"intermediateLink": "Tautan perantara",
|
"intermediateLink": "Tautan perantara",
|
||||||
"exemptFromBackgroundUpdates": "Dikecualikan dari pembaruan latar belakang (jika diaktifkan)",
|
"exemptFromBackgroundUpdates": "Dikecualikan dari pembaruan latar belakang (jika diaktifkan)",
|
||||||
"bgUpdatesOnWiFiOnly": "Nonaktifkan pembaruan latar belakang saat tidak menggunakan WiFi",
|
"bgUpdatesOnWiFiOnly": "Nonaktifkan pembaruan latar belakang saat tidak menggunakan WiFi",
|
||||||
"autoSelectHighestVersionCode": "Secara otomatis pilih APK dengan versi kode tertinggi",
|
"autoSelectHighestVersionCode": "Pilih otomatis APK dengan versi kode tertinggi",
|
||||||
"versionExtractionRegEx": "Reguler ekspresi terkait ekstraksi versi string",
|
"versionExtractionRegEx": "Reguler ekspresi terkait ekstraksi versi string",
|
||||||
"trimVersionString": "Potong versi string dengan reguler ekspresi",
|
"trimVersionString": "Potong versi string dengan reguler ekspresi",
|
||||||
"matchGroupToUseForX": "Cocokkan grup yang akan digunakan untuk \"{}\"",
|
"matchGroupToUseForX": "Cocokkan grup yang akan digunakan untuk \"{}\"",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Bantuan/Wiki",
|
"wiki": "Bantuan/Wiki",
|
||||||
"crowdsourcedConfigsLabel": "Konfigurasi aplikasi Crowdsourced (risiko penggunaan ditanggung sendiri)",
|
"crowdsourcedConfigsLabel": "Konfigurasi aplikasi Crowdsourced (risiko penggunaan ditanggung sendiri)",
|
||||||
"allowInsecure": "Izinkan permintaan HTTP yang tidak aman",
|
"allowInsecure": "Izinkan permintaan HTTP yang tidak aman",
|
||||||
|
"stayOneVersionBehind": "Tetap satu versi di belakang versi terbaru",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Hapus aplikasi?",
|
"one": "Hapus aplikasi?",
|
||||||
"other": "Hapus aplikasi?"
|
"other": "Hapus aplikasi?"
|
||||||
@@ -356,8 +358,8 @@
|
|||||||
"other": "Menghapus {n} catatan (sebelum = {before}, setelah = {after})"
|
"other": "Menghapus {n} catatan (sebelum = {before}, setelah = {after})"
|
||||||
},
|
},
|
||||||
"xAndNMoreUpdatesAvailable": {
|
"xAndNMoreUpdatesAvailable": {
|
||||||
"one": "{} dan 1 aplikasi lainnya mendapat pembaruan.",
|
"one": "{} dan 1 aplikasi lainnya memiliki pembaruan.",
|
||||||
"other": "{} dan {} aplikasi lainnya mendapat pembaruan."
|
"other": "{} dan {} aplikasi lainnya memiliki pembaruan."
|
||||||
},
|
},
|
||||||
"xAndNMoreUpdatesInstalled": {
|
"xAndNMoreUpdatesInstalled": {
|
||||||
"one": "{} dan 1 aplikasi lainnya telah diperbarui.",
|
"one": "{} dan 1 aplikasi lainnya telah diperbarui.",
|
||||||
@@ -375,4 +377,4 @@
|
|||||||
"one": "{} APK",
|
"one": "{} APK",
|
||||||
"other": "{} APK"
|
"other": "{} APK"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Disinstalla dal dispositivo",
|
"uninstallFromDevice": "Disinstalla dal dispositivo",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Funziona solo per le app con il rilevamento della versione disattivato.",
|
"onlyWorksWithNonVersionDetectApps": "Funziona solo per le app con il rilevamento della versione disattivato.",
|
||||||
"releaseDateAsVersion": "Usa data di rilascio come versione",
|
"releaseDateAsVersion": "Usa data di rilascio come versione",
|
||||||
|
"releaseTitleAsVersion": "Usa il titolo della versione come stringa di versione",
|
||||||
"releaseDateAsVersionExplanation": "Questa opzione dovrebbe essere usata solo per le app in cui il rilevamento della versione non funziona correttamente, ma è disponibile una data di rilascio.",
|
"releaseDateAsVersionExplanation": "Questa opzione dovrebbe essere usata solo per le app in cui il rilevamento della versione non funziona correttamente, ma è disponibile una data di rilascio.",
|
||||||
"changes": "Novità",
|
"changes": "Novità",
|
||||||
"releaseDate": "Data di rilascio",
|
"releaseDate": "Data di rilascio",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Aiuto/Wiki",
|
"wiki": "Aiuto/Wiki",
|
||||||
"crowdsourcedConfigsLabel": "Configurazioni di app in crowdsourcing (uso a proprio rischio)",
|
"crowdsourcedConfigsLabel": "Configurazioni di app in crowdsourcing (uso a proprio rischio)",
|
||||||
"allowInsecure": "Consentire le richieste HTTP non sicure",
|
"allowInsecure": "Consentire le richieste HTTP non sicure",
|
||||||
|
"stayOneVersionBehind": "Rimanere una versione indietro rispetto alla più recente",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Rimuovere l'app?",
|
"one": "Rimuovere l'app?",
|
||||||
"other": "Rimuovere le app?"
|
"other": "Rimuovere le app?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "デバイスからアンインストールする",
|
"uninstallFromDevice": "デバイスからアンインストールする",
|
||||||
"onlyWorksWithNonVersionDetectApps": "バージョン検出を無効にしているアプリにのみ動作します。",
|
"onlyWorksWithNonVersionDetectApps": "バージョン検出を無効にしているアプリにのみ動作します。",
|
||||||
"releaseDateAsVersion": "リリース日をバージョンとして使用する",
|
"releaseDateAsVersion": "リリース日をバージョンとして使用する",
|
||||||
|
"releaseTitleAsVersion": "リリースタイトルをバージョン文字列として使用",
|
||||||
"releaseDateAsVersionExplanation": "このオプションは、バージョン検出が正しく機能しないアプリで、リリース日が利用可能な場合にのみ使用する必要があります。",
|
"releaseDateAsVersionExplanation": "このオプションは、バージョン検出が正しく機能しないアプリで、リリース日が利用可能な場合にのみ使用する必要があります。",
|
||||||
"changes": "変更点",
|
"changes": "変更点",
|
||||||
"releaseDate": "リリース日",
|
"releaseDate": "リリース日",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "ヘルプ/ウィキ",
|
"wiki": "ヘルプ/ウィキ",
|
||||||
"crowdsourcedConfigsLabel": "クラウドソーシングによるアプリの設定(利用は自己責任で)",
|
"crowdsourcedConfigsLabel": "クラウドソーシングによるアプリの設定(利用は自己責任で)",
|
||||||
"allowInsecure": "安全でないHTTPリクエストを許可する",
|
"allowInsecure": "安全でないHTTPリクエストを許可する",
|
||||||
|
"stayOneVersionBehind": "最新バージョンから1つ遅れ",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "アプリを削除しますか?",
|
"one": "アプリを削除しますか?",
|
||||||
"other": "アプリを削除しますか?"
|
"other": "アプリを削除しますか?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Van apparaat verwijderen",
|
"uninstallFromDevice": "Van apparaat verwijderen",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Werkt alleen voor apps waarbij versieherkenning is uitgeschakeld.",
|
"onlyWorksWithNonVersionDetectApps": "Werkt alleen voor apps waarbij versieherkenning is uitgeschakeld.",
|
||||||
"releaseDateAsVersion": "Releasedatum als versie gebruiken",
|
"releaseDateAsVersion": "Releasedatum als versie gebruiken",
|
||||||
|
"releaseTitleAsVersion": "Gebruik releasetitel als versiestring",
|
||||||
"releaseDateAsVersionExplanation": "Deze optie moet alleen worden gebruikt voor apps waar versieherkenning niet correct werkt, maar waar wel een releasedatum beschikbaar is.",
|
"releaseDateAsVersionExplanation": "Deze optie moet alleen worden gebruikt voor apps waar versieherkenning niet correct werkt, maar waar wel een releasedatum beschikbaar is.",
|
||||||
"changes": "Aanpassingen",
|
"changes": "Aanpassingen",
|
||||||
"releaseDate": "Releasedatum",
|
"releaseDate": "Releasedatum",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Help/Wiki",
|
"wiki": "Help/Wiki",
|
||||||
"crowdsourcedConfigsLabel": "Crowdsourced App-configuraties (gebruik op eigen risico)",
|
"crowdsourcedConfigsLabel": "Crowdsourced App-configuraties (gebruik op eigen risico)",
|
||||||
"allowInsecure": "Onveilige HTTP-verzoeken toestaan",
|
"allowInsecure": "Onveilige HTTP-verzoeken toestaan",
|
||||||
|
"stayOneVersionBehind": "Blijf een versie achter op de nieuwste",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "App verwijderen?",
|
"one": "App verwijderen?",
|
||||||
"other": "Apps verwijderen?"
|
"other": "Apps verwijderen?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Odinstaluj z urządzenia",
|
"uninstallFromDevice": "Odinstaluj z urządzenia",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Działa tylko w przypadku aplikacji z wyłączonym wykrywaniem wersji.",
|
"onlyWorksWithNonVersionDetectApps": "Działa tylko w przypadku aplikacji z wyłączonym wykrywaniem wersji.",
|
||||||
"releaseDateAsVersion": "Użyj daty wydania jako wersji",
|
"releaseDateAsVersion": "Użyj daty wydania jako wersji",
|
||||||
|
"releaseTitleAsVersion": "Użyj tytułu wydania jako ciągu znaków wersji",
|
||||||
"releaseDateAsVersionExplanation": "Opcja ta powinna być używana tylko w przypadku aplikacji, w których wykrywanie wersji nie działa poprawnie, ale dostępna jest data wydania.",
|
"releaseDateAsVersionExplanation": "Opcja ta powinna być używana tylko w przypadku aplikacji, w których wykrywanie wersji nie działa poprawnie, ale dostępna jest data wydania.",
|
||||||
"changes": "Zmiany",
|
"changes": "Zmiany",
|
||||||
"releaseDate": "Data wydania",
|
"releaseDate": "Data wydania",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Pomoc/Wiki",
|
"wiki": "Pomoc/Wiki",
|
||||||
"crowdsourcedConfigsLabel": "Konfiguracje aplikacji pochodzące z crowdsourcingu (korzystanie na własne ryzyko)",
|
"crowdsourcedConfigsLabel": "Konfiguracje aplikacji pochodzące z crowdsourcingu (korzystanie na własne ryzyko)",
|
||||||
"allowInsecure": "Zezwalaj na niezabezpieczone żądania HTTP",
|
"allowInsecure": "Zezwalaj na niezabezpieczone żądania HTTP",
|
||||||
|
"stayOneVersionBehind": "Pozostań jedną wersję za najnowszą",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Usunąć aplikację?",
|
"one": "Usunąć aplikację?",
|
||||||
"few": "Usunąć aplikacje?",
|
"few": "Usunąć aplikacje?",
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Desinstalar do dispositivo",
|
"uninstallFromDevice": "Desinstalar do dispositivo",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Apenas funciona para aplicativos com detecção de versão desativada.",
|
"onlyWorksWithNonVersionDetectApps": "Apenas funciona para aplicativos com detecção de versão desativada.",
|
||||||
"releaseDateAsVersion": "Usar data de lançamento como versão",
|
"releaseDateAsVersion": "Usar data de lançamento como versão",
|
||||||
|
"releaseTitleAsVersion": "Utilizar o título da versão como cadeia de versões",
|
||||||
"releaseDateAsVersionExplanation": "Esta opção só deve ser usada para aplicativos onde a detecção de versão não funciona corretamente, mas há uma data de lançamento disponível.",
|
"releaseDateAsVersionExplanation": "Esta opção só deve ser usada para aplicativos onde a detecção de versão não funciona corretamente, mas há uma data de lançamento disponível.",
|
||||||
"changes": "Alterações",
|
"changes": "Alterações",
|
||||||
"releaseDate": "Data de lançamento",
|
"releaseDate": "Data de lançamento",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Ajuda/Wiki",
|
"wiki": "Ajuda/Wiki",
|
||||||
"crowdsourcedConfigsLabel": "Configurações de aplicações de crowdsourcing (utilização por sua conta e risco)",
|
"crowdsourcedConfigsLabel": "Configurações de aplicações de crowdsourcing (utilização por sua conta e risco)",
|
||||||
"allowInsecure": "Permitir pedidos HTTP inseguros",
|
"allowInsecure": "Permitir pedidos HTTP inseguros",
|
||||||
|
"stayOneVersionBehind": "Manter-se uma versão atrás da mais recente",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Remover aplicativo?",
|
"one": "Remover aplicativo?",
|
||||||
"other": "Remover aplicativos?"
|
"other": "Remover aplicativos?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Удалить с устройства",
|
"uninstallFromDevice": "Удалить с устройства",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Работает только для приложений с отключенным определением версии",
|
"onlyWorksWithNonVersionDetectApps": "Работает только для приложений с отключенным определением версии",
|
||||||
"releaseDateAsVersion": "Дата выпуска вместо версии",
|
"releaseDateAsVersion": "Дата выпуска вместо версии",
|
||||||
|
"releaseTitleAsVersion": "Используйте название релиза в качестве строки версии",
|
||||||
"releaseDateAsVersionExplanation": "Этот параметр следует использовать только для приложений, в которых определение версии не работает правильно, но имеется дата выпуска",
|
"releaseDateAsVersionExplanation": "Этот параметр следует использовать только для приложений, в которых определение версии не работает правильно, но имеется дата выпуска",
|
||||||
"changes": "Изменения",
|
"changes": "Изменения",
|
||||||
"releaseDate": "Дата выпуска",
|
"releaseDate": "Дата выпуска",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Помощь/Вики",
|
"wiki": "Помощь/Вики",
|
||||||
"crowdsourcedConfigsLabel": "Конфигурации приложений на основе краудсорсинга (используйте на свой страх и риск)",
|
"crowdsourcedConfigsLabel": "Конфигурации приложений на основе краудсорсинга (используйте на свой страх и риск)",
|
||||||
"allowInsecure": "Разрешить небезопасные HTTP-запросы",
|
"allowInsecure": "Разрешить небезопасные HTTP-запросы",
|
||||||
|
"stayOneVersionBehind": "Не отставайте от последней версии",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Удалить приложение?",
|
"one": "Удалить приложение?",
|
||||||
"other": "Удалить приложения?"
|
"other": "Удалить приложения?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Avinstallera från Enheten",
|
"uninstallFromDevice": "Avinstallera från Enheten",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Fungerar bara för Appar med versionsdetektering inaktiverat..",
|
"onlyWorksWithNonVersionDetectApps": "Fungerar bara för Appar med versionsdetektering inaktiverat..",
|
||||||
"releaseDateAsVersion": "Använd releasedatum som version",
|
"releaseDateAsVersion": "Använd releasedatum som version",
|
||||||
|
"releaseTitleAsVersion": "Använd release-titel som versionssträng",
|
||||||
"releaseDateAsVersionExplanation": "Det här alternativet bör endast användas för appar där versionsidentifiering inte fungerar korrekt, men ett releasedatum är tillgängligt.",
|
"releaseDateAsVersionExplanation": "Det här alternativet bör endast användas för appar där versionsidentifiering inte fungerar korrekt, men ett releasedatum är tillgängligt.",
|
||||||
"changes": "Ändringar",
|
"changes": "Ändringar",
|
||||||
"releaseDate": "Releasedatum",
|
"releaseDate": "Releasedatum",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Hjälp/Wiki",
|
"wiki": "Hjälp/Wiki",
|
||||||
"crowdsourcedConfigsLabel": "Crowdsourcade appkonfigurationer (använd på egen risk)",
|
"crowdsourcedConfigsLabel": "Crowdsourcade appkonfigurationer (använd på egen risk)",
|
||||||
"allowInsecure": "Tillåt osäkra HTTP-förfrågningar",
|
"allowInsecure": "Tillåt osäkra HTTP-förfrågningar",
|
||||||
|
"stayOneVersionBehind": "Håll dig en version bakom den senaste",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Ta Bort App?",
|
"one": "Ta Bort App?",
|
||||||
"other": "Ta Bort Appar?"
|
"other": "Ta Bort Appar?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Cihazdan Kaldır",
|
"uninstallFromDevice": "Cihazdan Kaldır",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Yalnızca Sürüm Algılaması Devre Dışı Uygulamalar İçin Çalışır.",
|
"onlyWorksWithNonVersionDetectApps": "Yalnızca Sürüm Algılaması Devre Dışı Uygulamalar İçin Çalışır.",
|
||||||
"releaseDateAsVersion": "Sürüm Olarak Yayın Tarihi Kullan",
|
"releaseDateAsVersion": "Sürüm Olarak Yayın Tarihi Kullan",
|
||||||
|
"releaseTitleAsVersion": "Sürüm dizesi olarak sürüm başlığını kullan",
|
||||||
"releaseDateAsVersionExplanation": "Bu seçenek, sürüm algılamanın doğru çalışmadığı ancak bir sürüm tarihinin mevcut olduğu uygulamalar için kullanılmalıdır.",
|
"releaseDateAsVersionExplanation": "Bu seçenek, sürüm algılamanın doğru çalışmadığı ancak bir sürüm tarihinin mevcut olduğu uygulamalar için kullanılmalıdır.",
|
||||||
"changes": "Değişiklikler",
|
"changes": "Değişiklikler",
|
||||||
"releaseDate": "Yayın Tarihi",
|
"releaseDate": "Yayın Tarihi",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Yardım/Wiki",
|
"wiki": "Yardım/Wiki",
|
||||||
"crowdsourcedConfigsLabel": "Kitle Kaynaklı Uygulama Yapılandırmaları (riski size ait olmak üzere kullanın)",
|
"crowdsourcedConfigsLabel": "Kitle Kaynaklı Uygulama Yapılandırmaları (riski size ait olmak üzere kullanın)",
|
||||||
"allowInsecure": "Güvensiz HTTP isteklerine izin ver",
|
"allowInsecure": "Güvensiz HTTP isteklerine izin ver",
|
||||||
|
"stayOneVersionBehind": "En son sürümün bir sürüm gerisinde kalın",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Uygulamayı Kaldır?",
|
"one": "Uygulamayı Kaldır?",
|
||||||
"other": "Uygulamaları Kaldır?"
|
"other": "Uygulamaları Kaldır?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Видалити з пристрою",
|
"uninstallFromDevice": "Видалити з пристрою",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Працює лише з застосунками з вимкненим визначенням версії.",
|
"onlyWorksWithNonVersionDetectApps": "Працює лише з застосунками з вимкненим визначенням версії.",
|
||||||
"releaseDateAsVersion": "Використовувати дату випуску як рядок версії",
|
"releaseDateAsVersion": "Використовувати дату випуску як рядок версії",
|
||||||
|
"releaseTitleAsVersion": "Використовувати назву випуску як рядок версії",
|
||||||
"releaseDateAsVersionExplanation": "Цю опцію слід використовувати лише для застосунків, де визначення версії працює неправильно, але є дата випуску.",
|
"releaseDateAsVersionExplanation": "Цю опцію слід використовувати лише для застосунків, де визначення версії працює неправильно, але є дата випуску.",
|
||||||
"changes": "Зміни",
|
"changes": "Зміни",
|
||||||
"releaseDate": "Дата випуску",
|
"releaseDate": "Дата випуску",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Довідка/Вікі",
|
"wiki": "Довідка/Вікі",
|
||||||
"crowdsourcedConfigsLabel": "Краудсорсингові конфігурації додатків (використовуйте на свій страх і ризик)",
|
"crowdsourcedConfigsLabel": "Краудсорсингові конфігурації додатків (використовуйте на свій страх і ризик)",
|
||||||
"allowInsecure": "Дозволити незахищені HTTP-запити",
|
"allowInsecure": "Дозволити незахищені HTTP-запити",
|
||||||
|
"stayOneVersionBehind": "Залишайтеся на одну версію актуальнішою",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Видалити застосунок?",
|
"one": "Видалити застосунок?",
|
||||||
"other": "Видалити застосунки?"
|
"other": "Видалити застосунки?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "Gỡ cài đặt khỏi thiết bị",
|
"uninstallFromDevice": "Gỡ cài đặt khỏi thiết bị",
|
||||||
"onlyWorksWithNonVersionDetectApps": "Chỉ hoạt động với Ứng dụng đã tắt tính năng phát hiện phiên bản.",
|
"onlyWorksWithNonVersionDetectApps": "Chỉ hoạt động với Ứng dụng đã tắt tính năng phát hiện phiên bản.",
|
||||||
"releaseDateAsVersion": "Sử dụng ngày phát hành làm phiên bản",
|
"releaseDateAsVersion": "Sử dụng ngày phát hành làm phiên bản",
|
||||||
|
"releaseTitleAsVersion": "Use release title as version string",
|
||||||
"releaseDateAsVersionExplanation": "Chỉ nên sử dụng tùy chọn này cho Ứng dụng trong đó tính năng phát hiện phiên bản không hoạt động chính xác nhưng đã có ngày phát hành.",
|
"releaseDateAsVersionExplanation": "Chỉ nên sử dụng tùy chọn này cho Ứng dụng trong đó tính năng phát hiện phiên bản không hoạt động chính xác nhưng đã có ngày phát hành.",
|
||||||
"changes": "Thay đổi",
|
"changes": "Thay đổi",
|
||||||
"releaseDate": "Ngày phát hành",
|
"releaseDate": "Ngày phát hành",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "Trợ giúp/Wiki",
|
"wiki": "Trợ giúp/Wiki",
|
||||||
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (use at your own risk)",
|
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (use at your own risk)",
|
||||||
"allowInsecure": "Allow insecure HTTP requests",
|
"allowInsecure": "Allow insecure HTTP requests",
|
||||||
|
"stayOneVersionBehind": "Stay one version behind latest",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "Gỡ ứng dụng?",
|
"one": "Gỡ ứng dụng?",
|
||||||
"other": "Gỡ ứng dụng?"
|
"other": "Gỡ ứng dụng?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "從裝置解除安裝",
|
"uninstallFromDevice": "從裝置解除安裝",
|
||||||
"onlyWorksWithNonVersionDetectApps": "僅適用於停用版本偵測的應用程式。",
|
"onlyWorksWithNonVersionDetectApps": "僅適用於停用版本偵測的應用程式。",
|
||||||
"releaseDateAsVersion": "使用發佈日期作為版本字串",
|
"releaseDateAsVersion": "使用發佈日期作為版本字串",
|
||||||
|
"releaseTitleAsVersion": "Use release title as version string",
|
||||||
"releaseDateAsVersionExplanation": "此選項僅應用於版本偵測無法正確工作但有發佈日期的應用程式。",
|
"releaseDateAsVersionExplanation": "此選項僅應用於版本偵測無法正確工作但有發佈日期的應用程式。",
|
||||||
"changes": "變更",
|
"changes": "變更",
|
||||||
"releaseDate": "發佈日期",
|
"releaseDate": "發佈日期",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "幫助/維基",
|
"wiki": "幫助/維基",
|
||||||
"crowdsourcedConfigsLabel": "群眾外包的應用程式設定(使用風險自負)",
|
"crowdsourcedConfigsLabel": "群眾外包的應用程式設定(使用風險自負)",
|
||||||
"allowInsecure": "Allow insecure HTTP requests",
|
"allowInsecure": "Allow insecure HTTP requests",
|
||||||
|
"stayOneVersionBehind": "Stay one version behind latest",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "移除應用程式?",
|
"one": "移除應用程式?",
|
||||||
"other": "移除應用程式?"
|
"other": "移除應用程式?"
|
||||||
|
@@ -213,6 +213,7 @@
|
|||||||
"uninstallFromDevice": "从设备中卸载",
|
"uninstallFromDevice": "从设备中卸载",
|
||||||
"onlyWorksWithNonVersionDetectApps": "仅适用于禁用版本检测的应用。",
|
"onlyWorksWithNonVersionDetectApps": "仅适用于禁用版本检测的应用。",
|
||||||
"releaseDateAsVersion": "将发行日期作为版本号",
|
"releaseDateAsVersion": "将发行日期作为版本号",
|
||||||
|
"releaseTitleAsVersion": "使用版本标题作为版本字符串",
|
||||||
"releaseDateAsVersionExplanation": "此选项应该仅用于无法进行版本检测但能够获取发行日期的应用。",
|
"releaseDateAsVersionExplanation": "此选项应该仅用于无法进行版本检测但能够获取发行日期的应用。",
|
||||||
"changes": "更新日志",
|
"changes": "更新日志",
|
||||||
"releaseDate": "发行日期",
|
"releaseDate": "发行日期",
|
||||||
@@ -315,6 +316,7 @@
|
|||||||
"wiki": "帮助/Wiki",
|
"wiki": "帮助/Wiki",
|
||||||
"crowdsourcedConfigsLabel": "众包应用程序配置(使用风险自负)",
|
"crowdsourcedConfigsLabel": "众包应用程序配置(使用风险自负)",
|
||||||
"allowInsecure": "允许不安全的 HTTP 请求",
|
"allowInsecure": "允许不安全的 HTTP 请求",
|
||||||
|
"stayOneVersionBehind": "比最新版本晚一个版本",
|
||||||
"removeAppQuestion": {
|
"removeAppQuestion": {
|
||||||
"one": "是否删除应用?",
|
"one": "是否删除应用?",
|
||||||
"other": "是否删除应用?"
|
"other": "是否删除应用?"
|
||||||
|
@@ -2,6 +2,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/app_sources/html.dart';
|
||||||
|
import 'package:obtainium/components/generated_form.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';
|
||||||
|
|
||||||
@@ -26,6 +27,16 @@ class APKPure extends AppSource {
|
|||||||
allowSubDomains = true;
|
allowSubDomains = true;
|
||||||
naiveStandardVersionDetection = true;
|
naiveStandardVersionDetection = true;
|
||||||
showReleaseDateAsVersionToggle = true;
|
showReleaseDateAsVersionToggle = true;
|
||||||
|
additionalSourceAppSpecificSettingFormItems = [
|
||||||
|
[
|
||||||
|
GeneratedFormSwitch('fallbackToOlderReleases',
|
||||||
|
label: tr('fallbackToOlderReleases'), defaultValue: true)
|
||||||
|
],
|
||||||
|
[
|
||||||
|
GeneratedFormSwitch('stayOneVersionBehind',
|
||||||
|
label: tr('stayOneVersionBehind'), defaultValue: false)
|
||||||
|
]
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -54,6 +65,97 @@ class APKPure extends AppSource {
|
|||||||
return Uri.parse(standardUrl).pathSegments.last;
|
return Uri.parse(standardUrl).pathSegments.last;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getDetailsForVersionLink(
|
||||||
|
String standardUrl,
|
||||||
|
String appId,
|
||||||
|
String host,
|
||||||
|
List<String> supportedArchs,
|
||||||
|
String link,
|
||||||
|
Map<String, dynamic> additionalSettings) async {
|
||||||
|
var res = await sourceRequest(link, 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();
|
||||||
|
var types = apkInfo
|
||||||
|
?.querySelectorAll('div.info-top span.tag')
|
||||||
|
.map((e) => e.text.trim())
|
||||||
|
.map((t) => t == 'APKs' ? 'APK' : t) ??
|
||||||
|
[];
|
||||||
|
String type = types.isEmpty
|
||||||
|
? 'APK'
|
||||||
|
: types.length == 1
|
||||||
|
? types.first
|
||||||
|
: types.last;
|
||||||
|
String? dateString = apkInfo
|
||||||
|
?.querySelector('div.info-bottom span.time')
|
||||||
|
?.text
|
||||||
|
.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) {
|
||||||
|
throw NoAPKError();
|
||||||
|
}
|
||||||
|
String version = Uri.parse(link).pathSegments.last;
|
||||||
|
String author = html
|
||||||
|
.querySelector('span.info-sdk')
|
||||||
|
?.text
|
||||||
|
.trim()
|
||||||
|
.substring(version.length + 4) ??
|
||||||
|
Uri.parse(standardUrl).pathSegments.reversed.last;
|
||||||
|
String appName =
|
||||||
|
html.querySelector('h1.info-title')?.text.trim() ?? appId;
|
||||||
|
String? changeLog = html
|
||||||
|
.querySelector('div.module.change-log')
|
||||||
|
?.innerHtml
|
||||||
|
.trim()
|
||||||
|
.replaceAll("<br>", " \n");
|
||||||
|
return APKDetails(version, apkUrls, AppNames(author, appName),
|
||||||
|
releaseDate: topReleaseDate, changeLog: changeLog);
|
||||||
|
} else {
|
||||||
|
throw getObtainiumHttpError(res);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<APKDetails> getLatestAPKDetails(
|
Future<APKDetails> getLatestAPKDetails(
|
||||||
String standardUrl,
|
String standardUrl,
|
||||||
@@ -80,88 +182,17 @@ class APKPure extends AppSource {
|
|||||||
|
|
||||||
for (var i = 0; i < versionLinks.length; i++) {
|
for (var i = 0; i < versionLinks.length; i++) {
|
||||||
var link = versionLinks[i];
|
var link = versionLinks[i];
|
||||||
var res = await sourceRequest(link.key, additionalSettings);
|
try {
|
||||||
if (res.statusCode == 200) {
|
if (i == 0 && additionalSettings['stayOneVersionBehind'] == true) {
|
||||||
var html = parse(res.body);
|
throw NoReleasesError();
|
||||||
var apksDiv =
|
}
|
||||||
html.querySelector('#version-list div div.show-more-content');
|
return await getDetailsForVersionLink(standardUrl, appId, host,
|
||||||
DateTime? topReleaseDate;
|
supportedArchs, link.key, additionalSettings);
|
||||||
var apkUrls = apksDiv
|
} catch (e) {
|
||||||
?.querySelectorAll('div.group-title')
|
if (additionalSettings['fallbackToOlderReleases'] != true ||
|
||||||
.map((e) {
|
i == versionLinks.length - 1) {
|
||||||
String architectureString = e.text.trim();
|
rethrow;
|
||||||
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();
|
|
||||||
var types = apkInfo
|
|
||||||
?.querySelectorAll('div.info-top span.tag')
|
|
||||||
.map((e) => e.text.trim())
|
|
||||||
.map((t) => t == 'APKs' ? 'APK' : t) ??
|
|
||||||
[];
|
|
||||||
String type = types.isEmpty
|
|
||||||
? 'APK'
|
|
||||||
: types.length == 1
|
|
||||||
? types.first
|
|
||||||
: types.last;
|
|
||||||
String? dateString = apkInfo
|
|
||||||
?.querySelector('div.info-bottom span.time')
|
|
||||||
?.text
|
|
||||||
.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
|
|
||||||
.querySelector('span.info-sdk')
|
|
||||||
?.text
|
|
||||||
.trim()
|
|
||||||
.substring(version.length + 4) ??
|
|
||||||
Uri.parse(standardUrl).pathSegments.reversed.last;
|
|
||||||
String appName =
|
|
||||||
html.querySelector('h1.info-title')?.text.trim() ?? appId;
|
|
||||||
String? changeLog = html
|
|
||||||
.querySelector('div.module.change-log')
|
|
||||||
?.innerHtml
|
|
||||||
.trim()
|
|
||||||
.replaceAll("<br>", " \n");
|
|
||||||
return APKDetails(version, apkUrls, AppNames(author, appName),
|
|
||||||
releaseDate: topReleaseDate, changeLog: changeLog);
|
|
||||||
} else {
|
|
||||||
throw getObtainiumHttpError(res);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
throw NoAPKError();
|
throw NoAPKError();
|
||||||
|
@@ -81,6 +81,10 @@ class GitHub extends AppSource {
|
|||||||
[
|
[
|
||||||
GeneratedFormSwitch('useLatestAssetDateAsReleaseDate',
|
GeneratedFormSwitch('useLatestAssetDateAsReleaseDate',
|
||||||
label: tr('useLatestAssetDateAsReleaseDate'), defaultValue: false)
|
label: tr('useLatestAssetDateAsReleaseDate'), defaultValue: false)
|
||||||
|
],
|
||||||
|
[
|
||||||
|
GeneratedFormSwitch('releaseTitleAsVersion',
|
||||||
|
label: tr('releaseTitleAsVersion'), defaultValue: false)
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -396,7 +400,9 @@ class GitHub extends AppSource {
|
|||||||
targetRelease = releases[i];
|
targetRelease = releases[i];
|
||||||
targetRelease['apkUrls'] = apkUrls;
|
targetRelease['apkUrls'] = apkUrls;
|
||||||
targetRelease['version'] =
|
targetRelease['version'] =
|
||||||
targetRelease['tag_name'] ?? targetRelease['name'];
|
additionalSettings['releaseTitleAsVersion'] == true
|
||||||
|
? nameToFilter
|
||||||
|
: targetRelease['tag_name'] ?? targetRelease['name'];
|
||||||
if (targetRelease['tarball_url'] != null) {
|
if (targetRelease['tarball_url'] != null) {
|
||||||
allAssetUrls.add(MapEntry(
|
allAssetUrls.add(MapEntry(
|
||||||
(targetRelease['version'] ?? 'source') + '.tar.gz',
|
(targetRelease['version'] ?? 'source') + '.tar.gz',
|
||||||
|
@@ -30,6 +30,7 @@ class AddAppPageState extends State<AddAppPage> {
|
|||||||
String userInput = '';
|
String userInput = '';
|
||||||
String searchQuery = '';
|
String searchQuery = '';
|
||||||
String? pickedSourceOverride;
|
String? pickedSourceOverride;
|
||||||
|
String? previousPickedSourceOverride;
|
||||||
AppSource? pickedSource;
|
AppSource? pickedSource;
|
||||||
Map<String, dynamic> additionalSettings = {};
|
Map<String, dynamic> additionalSettings = {};
|
||||||
bool additionalSettingsValid = true;
|
bool additionalSettingsValid = true;
|
||||||
@@ -58,6 +59,9 @@ class AddAppPageState extends State<AddAppPage> {
|
|||||||
if (overrideSource != null) {
|
if (overrideSource != null) {
|
||||||
pickedSourceOverride = overrideSource;
|
pickedSourceOverride = overrideSource;
|
||||||
}
|
}
|
||||||
|
bool overrideChanged =
|
||||||
|
pickedSourceOverride != previousPickedSourceOverride;
|
||||||
|
previousPickedSourceOverride = pickedSourceOverride;
|
||||||
if (updateUrlInput) {
|
if (updateUrlInput) {
|
||||||
urlInputKey++;
|
urlInputKey++;
|
||||||
}
|
}
|
||||||
@@ -69,6 +73,7 @@ class AddAppPageState extends State<AddAppPage> {
|
|||||||
overrideSource: pickedSourceOverride)
|
overrideSource: pickedSourceOverride)
|
||||||
: null;
|
: null;
|
||||||
if (pickedSource.runtimeType != source.runtimeType ||
|
if (pickedSource.runtimeType != source.runtimeType ||
|
||||||
|
overrideChanged ||
|
||||||
(prevHost != null && prevHost != source?.hosts[0])) {
|
(prevHost != null && prevHost != source?.hosts[0])) {
|
||||||
pickedSource = source;
|
pickedSource = source;
|
||||||
pickedSource?.runOnAddAppInputChange(userInput);
|
pickedSource?.runOnAddAppInputChange(userInput);
|
||||||
@@ -487,7 +492,8 @@ class AddAppPageState extends State<AddAppPage> {
|
|||||||
height: 16,
|
height: 16,
|
||||||
),
|
),
|
||||||
GeneratedForm(
|
GeneratedForm(
|
||||||
key: Key(pickedSource.runtimeType.toString()),
|
key: Key(
|
||||||
|
'${pickedSource.runtimeType.toString()}-${pickedSource?.hostChanged.toString()}-${pickedSource?.hostIdenticalDespiteAnyChange.toString()}'),
|
||||||
items: [
|
items: [
|
||||||
...pickedSource!.combinedAppSpecificSettingFormItems,
|
...pickedSource!.combinedAppSpecificSettingFormItems,
|
||||||
...(pickedSourceOverride != null
|
...(pickedSourceOverride != null
|
||||||
|
@@ -242,11 +242,11 @@ class _AppPageState extends State<AppPage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getFullInfoColumn() => Column(
|
getFullInfoColumn({bool small = false}) => Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||||
children: [
|
children: [
|
||||||
const SizedBox(height: 20),
|
SizedBox(height: small ? 5 : 20),
|
||||||
FutureBuilder(
|
FutureBuilder(
|
||||||
future:
|
future:
|
||||||
appsProvider.updateAppIcon(app?.app.id, ignoreCache: true),
|
appsProvider.updateAppIcon(app?.app.id, ignoreCache: true),
|
||||||
@@ -261,24 +261,28 @@ class _AppPageState extends State<AppPage> {
|
|||||||
: () => pm.openApp(app.app.id),
|
: () => pm.openApp(app.app.id),
|
||||||
child: Image.memory(
|
child: Image.memory(
|
||||||
app!.icon!,
|
app!.icon!,
|
||||||
height: 150,
|
height: small ? 70 : 150,
|
||||||
gaplessPlayback: true,
|
gaplessPlayback: true,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
])
|
])
|
||||||
: Container();
|
: Container();
|
||||||
}),
|
}),
|
||||||
const SizedBox(
|
SizedBox(
|
||||||
height: 25,
|
height: small ? 10 : 25,
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
app?.name ?? tr('app'),
|
app?.name ?? tr('app'),
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: Theme.of(context).textTheme.displayLarge,
|
style: small
|
||||||
|
? Theme.of(context).textTheme.displaySmall
|
||||||
|
: Theme.of(context).textTheme.displayLarge,
|
||||||
),
|
),
|
||||||
Text(tr('byX', args: [app?.app.author ?? tr('unknown')]),
|
Text(tr('byX', args: [app?.app.author ?? tr('unknown')]),
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: Theme.of(context).textTheme.headlineMedium),
|
style: small
|
||||||
|
? Theme.of(context).textTheme.headlineSmall
|
||||||
|
: Theme.of(context).textTheme.headlineMedium),
|
||||||
const SizedBox(
|
const SizedBox(
|
||||||
height: 24,
|
height: 24,
|
||||||
),
|
),
|
||||||
@@ -496,11 +500,8 @@ class _AppPageState extends State<AppPage> {
|
|||||||
builder: (BuildContext ctx) {
|
builder: (BuildContext ctx) {
|
||||||
return AlertDialog(
|
return AlertDialog(
|
||||||
scrollable: true,
|
scrollable: true,
|
||||||
content: getInfoColumn(),
|
content: getFullInfoColumn(small: true),
|
||||||
title: Text(
|
title: Text(app.name),
|
||||||
'${app.name} ${tr('byX', args: [
|
|
||||||
app.app.author
|
|
||||||
])}'),
|
|
||||||
actions: [
|
actions: [
|
||||||
TextButton(
|
TextButton(
|
||||||
onPressed: () {
|
onPressed: () {
|
||||||
|
@@ -578,6 +578,22 @@ class _SettingsPageState extends State<SettingsPage> {
|
|||||||
})
|
})
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
height16,
|
||||||
|
Row(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||||
|
children: [
|
||||||
|
Flexible(
|
||||||
|
child: Text(
|
||||||
|
tr('shizukuPretendToBeGooglePlay'))),
|
||||||
|
Switch(
|
||||||
|
value: settingsProvider
|
||||||
|
.shizukuPretendToBeGooglePlay,
|
||||||
|
onChanged: (value) {
|
||||||
|
settingsProvider
|
||||||
|
.shizukuPretendToBeGooglePlay = value;
|
||||||
|
})
|
||||||
|
],
|
||||||
|
),
|
||||||
height32,
|
height32,
|
||||||
Text(
|
Text(
|
||||||
tr('sourceSpecific'),
|
tr('sourceSpecific'),
|
||||||
|
@@ -879,22 +879,20 @@ class AppsProvider with ChangeNotifier {
|
|||||||
apps[id]?.installedInfo == null ? context : null;
|
apps[id]?.installedInfo == null ? context : null;
|
||||||
bool needBGWorkaround =
|
bool needBGWorkaround =
|
||||||
willBeSilent && context == null && !settingsProvider.useShizuku;
|
willBeSilent && context == null && !settingsProvider.useShizuku;
|
||||||
|
bool shizukuPretendToBeGooglePlay = settingsProvider
|
||||||
|
.shizukuPretendToBeGooglePlay ||
|
||||||
|
apps[id]!.app.additionalSettings['shizukuPretendToBeGooglePlay'] ==
|
||||||
|
true;
|
||||||
if (downloadedFile != null) {
|
if (downloadedFile != null) {
|
||||||
if (needBGWorkaround) {
|
if (needBGWorkaround) {
|
||||||
// ignore: use_build_context_synchronously
|
// ignore: use_build_context_synchronously
|
||||||
installApk(downloadedFile, contextIfNewInstall,
|
installApk(downloadedFile, contextIfNewInstall,
|
||||||
needsBGWorkaround: true,
|
needsBGWorkaround: true,
|
||||||
shizukuPretendToBeGooglePlay: apps[id]!
|
shizukuPretendToBeGooglePlay: shizukuPretendToBeGooglePlay);
|
||||||
.app
|
|
||||||
.additionalSettings['shizukuPretendToBeGooglePlay'] ==
|
|
||||||
true);
|
|
||||||
} else {
|
} else {
|
||||||
// ignore: use_build_context_synchronously
|
// ignore: use_build_context_synchronously
|
||||||
sayInstalled = await installApk(downloadedFile, contextIfNewInstall,
|
sayInstalled = await installApk(downloadedFile, contextIfNewInstall,
|
||||||
shizukuPretendToBeGooglePlay: apps[id]!
|
shizukuPretendToBeGooglePlay: shizukuPretendToBeGooglePlay);
|
||||||
.app
|
|
||||||
.additionalSettings['shizukuPretendToBeGooglePlay'] ==
|
|
||||||
true);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (needBGWorkaround) {
|
if (needBGWorkaround) {
|
||||||
@@ -905,10 +903,7 @@ class AppsProvider with ChangeNotifier {
|
|||||||
// ignore: use_build_context_synchronously
|
// ignore: use_build_context_synchronously
|
||||||
sayInstalled = await installXApkDir(
|
sayInstalled = await installXApkDir(
|
||||||
downloadedDir!, contextIfNewInstall,
|
downloadedDir!, contextIfNewInstall,
|
||||||
shizukuPretendToBeGooglePlay: apps[id]!
|
shizukuPretendToBeGooglePlay: shizukuPretendToBeGooglePlay);
|
||||||
.app
|
|
||||||
.additionalSettings['shizukuPretendToBeGooglePlay'] ==
|
|
||||||
true);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (willBeSilent && context == null) {
|
if (willBeSilent && context == null) {
|
||||||
|
@@ -48,7 +48,7 @@ class SettingsProvider with ChangeNotifier {
|
|||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool get useShizuku{
|
bool get useShizuku {
|
||||||
return prefs?.getBool('useShizuku') ?? false;
|
return prefs?.getBool('useShizuku') ?? false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,8 +69,7 @@ class SettingsProvider with ChangeNotifier {
|
|||||||
|
|
||||||
Color get themeColor {
|
Color get themeColor {
|
||||||
int? colorCode = prefs?.getInt('themeColor');
|
int? colorCode = prefs?.getInt('themeColor');
|
||||||
return (colorCode != null) ?
|
return (colorCode != null) ? Color(colorCode) : obtainiumThemeColor;
|
||||||
Color(colorCode) : obtainiumThemeColor;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
set themeColor(Color themeColor) {
|
set themeColor(Color themeColor) {
|
||||||
@@ -469,4 +468,13 @@ class SettingsProvider with ChangeNotifier {
|
|||||||
prefs?.setBool('beforeNewInstallsShareToAppVerifier', val);
|
prefs?.setBool('beforeNewInstallsShareToAppVerifier', val);
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool get shizukuPretendToBeGooglePlay {
|
||||||
|
return prefs?.getBool('shizukuPretendToBeGooglePlay') ?? false;
|
||||||
|
}
|
||||||
|
|
||||||
|
set shizukuPretendToBeGooglePlay(bool val) {
|
||||||
|
prefs?.setBool('shizukuPretendToBeGooglePlay', val);
|
||||||
|
notifyListeners();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -414,6 +414,7 @@ HttpClient createHttpClient(bool insecure) {
|
|||||||
abstract class AppSource {
|
abstract class AppSource {
|
||||||
List<String> hosts = [];
|
List<String> hosts = [];
|
||||||
bool hostChanged = false;
|
bool hostChanged = false;
|
||||||
|
bool hostIdenticalDespiteAnyChange = false;
|
||||||
late String name;
|
late String name;
|
||||||
bool enforceTrackOnly = false;
|
bool enforceTrackOnly = false;
|
||||||
bool changeLogIfAnyIsMarkDown = true;
|
bool changeLogIfAnyIsMarkDown = true;
|
||||||
@@ -628,9 +629,10 @@ abstract class AppSource {
|
|||||||
SettingsProvider settingsProvider) async {
|
SettingsProvider settingsProvider) async {
|
||||||
Map<String, String> results = {};
|
Map<String, String> results = {};
|
||||||
for (var e in sourceConfigSettingFormItems) {
|
for (var e in sourceConfigSettingFormItems) {
|
||||||
var val = hostChanged
|
var val = hostChanged && !hostIdenticalDespiteAnyChange
|
||||||
? additionalSettings[e.key]
|
? additionalSettings[e.key]
|
||||||
: settingsProvider.getSettingString(e.key);
|
: additionalSettings[e.key] ??
|
||||||
|
settingsProvider.getSettingString(e.key);
|
||||||
if (val != null) {
|
if (val != null) {
|
||||||
results[e.key] = val;
|
results[e.key] = val;
|
||||||
}
|
}
|
||||||
@@ -813,9 +815,14 @@ class SourceProvider {
|
|||||||
throw UnsupportedURLError();
|
throw UnsupportedURLError();
|
||||||
}
|
}
|
||||||
var res = srcs.first;
|
var res = srcs.first;
|
||||||
res.hosts = [Uri.parse(url).host];
|
var originalHosts = res.hosts;
|
||||||
|
var newHost = Uri.parse(url).host;
|
||||||
|
res.hosts = [newHost];
|
||||||
res.hostChanged = true;
|
res.hostChanged = true;
|
||||||
return srcs.first;
|
if (originalHosts.contains(newHost)) {
|
||||||
|
res.hostIdenticalDespiteAnyChange = true;
|
||||||
|
}
|
||||||
|
return res;
|
||||||
}
|
}
|
||||||
AppSource? source;
|
AppSource? source;
|
||||||
for (var s in sources.where((element) => element.hosts.isNotEmpty)) {
|
for (var s in sources.where((element) => element.hosts.isNotEmpty)) {
|
||||||
|
@@ -1097,10 +1097,10 @@ packages:
|
|||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
name: webview_flutter_android
|
name: webview_flutter_android
|
||||||
sha256: "6e64fcb1c19d92024da8f33503aaeeda35825d77142c01d0ea2aa32edc79fdc8"
|
sha256: ed021f27ae621bc97a6019fb601ab16331a3db4bf8afa305e9f6689bdb3edced
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "3.16.7"
|
version: "3.16.8"
|
||||||
webview_flutter_platform_interface:
|
webview_flutter_platform_interface:
|
||||||
dependency: transitive
|
dependency: transitive
|
||||||
description:
|
description:
|
||||||
|
@@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|||||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
# 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.25+2282
|
version: 1.1.26+2283
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=3.0.0 <4.0.0'
|
sdk: '>=3.0.0 <4.0.0'
|
||||||
|
Reference in New Issue
Block a user