mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-07-31 04:50:16 +02:00
Compare commits
52 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
344a6efbf6 | ||
|
59a4b88a88 | ||
|
cf7c41bf4c | ||
|
d32543b5d0 | ||
|
892a3b3c30 | ||
|
56c791d3e5 | ||
|
672bc159cc | ||
|
ee5d121bf0 | ||
|
e5d1fafc13 | ||
|
8bb4f46209 | ||
|
504e1d551b | ||
|
5e7e143bba | ||
|
91a82af418 | ||
|
7af2145e9a | ||
|
74b9de3516 | ||
|
f5b540dd8b | ||
|
01d701d8cd | ||
|
4017253470 | ||
|
b0b6ddb8fd | ||
|
192b7fc6ce | ||
|
b74dbb973c | ||
|
46ccf8478b | ||
|
9a354ecf0e | ||
|
738dd5649f | ||
|
9f50d8db2d | ||
|
eeb57dbe35 | ||
|
cbcc8c4eaf | ||
|
f4d27c8494 | ||
|
7507e7bf5c | ||
|
783e8029b6 | ||
|
3554257918 | ||
|
ef98ceaaa2 | ||
|
86540e703d | ||
|
1b7c340e2c | ||
|
ba6148dfef | ||
|
6b47048e43 | ||
|
b698947ecf | ||
|
e677d3179c | ||
|
25ef35c13c | ||
|
ba167fed33 | ||
|
d03c4dec4e | ||
|
e2525eef74 | ||
|
35caec61c5 | ||
|
33a7af216c | ||
|
b7c477fd40 | ||
|
045d8cfbe8 | ||
|
ea6e0b37a3 | ||
|
d58eba984e | ||
|
3d46237d17 | ||
|
ed3cff87ca | ||
|
2002581106 | ||
|
e968d50aac |
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "Deinstaliraj s uređaja",
|
||||
"onlyWorksWithNonVersionDetectApps": "Radi samo za aplikacije s onemogućenom detekcijom verzije.",
|
||||
"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.",
|
||||
"changes": "Promjene",
|
||||
"releaseDate": "Datum izdavanja",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "Dijeli sa AppVerifier-om, zatim se vratite kada ste spremni.",
|
||||
"wiki": "Pomoć/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Konfiguracije aplikacije obezbeđene pomoću velikog broja ljudi (crowdsourcing) (koristite na svoju odgovornost)",
|
||||
"crowdsourcedConfigsShort": "Crowdsourced App Configs",
|
||||
"allowInsecure": "Allow insecure HTTP requests",
|
||||
"stayOneVersionBehind": "Stay one version behind latest",
|
||||
"removeAppQuestion": {
|
||||
"one": "Želite li ukloniti aplikaciju?",
|
||||
"other": "Želite li ukloniti aplikacije?"
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "Odinstalovat ze zařízení",
|
||||
"onlyWorksWithNonVersionDetectApps": "Funguje pouze pro aplikace s vypnutou detekcí verze.",
|
||||
"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í.",
|
||||
"changes": "Změny",
|
||||
"releaseDate": "Datum vydání",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "Sdílejte do aplikace AppVerifier a po dokončení se sem vraťte.",
|
||||
"wiki": "Nápověda/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Konfigurace aplikací s využitím crowdsourcingu (použití na vlastní nebezpečí)",
|
||||
"crowdsourcedConfigsShort": "Konfigurace aplikací s využitím crowdsourcingu",
|
||||
"allowInsecure": "Povolení nezabezpečených požadavků HTTP",
|
||||
"stayOneVersionBehind": "Zůstaňte o jednu verzi pozadu za nejnovější",
|
||||
"removeAppQuestion": {
|
||||
"one": "Odstranit Apku?",
|
||||
"other": "Odstranit Apky?"
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "Afinstaller fra enhed",
|
||||
"onlyWorksWithNonVersionDetectApps": "Virker kun for apps med versionsregistrering deaktiveret.",
|
||||
"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.",
|
||||
"changes": "Ændringer",
|
||||
"releaseDate": "Udgivelsesdato",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "Del til AppVerifier, og vend tilbage hertil, når du er klar.",
|
||||
"wiki": "Hjælp/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Crowdsourcede app-konfigurationer (brug på egen risiko)",
|
||||
"crowdsourcedConfigsShort": "Crowdsourcede app-konfigurationer",
|
||||
"allowInsecure": "Tillad usikre HTTP-anmodninger",
|
||||
"stayOneVersionBehind": "Vær en version bagud i forhold til den nyeste",
|
||||
"removeAppQuestion": {
|
||||
"one": "Fjern app?",
|
||||
"other": "Fjern apps?"
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "Vom Gerät deinstallieren",
|
||||
"onlyWorksWithNonVersionDetectApps": "Funktioniert nur bei Apps mit deaktivierter Versionserkennung.",
|
||||
"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.",
|
||||
"changes": "Änderungen",
|
||||
"releaseDate": "Veröffentlichungsdatum",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "Geben Sie die Daten an AppVerifier weiter und kehren Sie dann hierher zurück, wenn Sie fertig sind.",
|
||||
"wiki": "Hilfe/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Crowdsourced App-Konfigurationen (Verwendung auf eigene Gefahr)",
|
||||
"crowdsourcedConfigsShort": "Crowdsourced App-Konfigurationen",
|
||||
"allowInsecure": "Unsichere HTTP-Anfragen zulassen",
|
||||
"stayOneVersionBehind": "Eine Version hinter der neuesten Version bleiben",
|
||||
"removeAppQuestion": {
|
||||
"one": "App entfernen?",
|
||||
"other": "Apps entfernen?"
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "Malinstali el la disponaĵo",
|
||||
"onlyWorksWithNonVersionDetectApps": "Funkcias nur por apoj kun malaktiva versiodetekto.",
|
||||
"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.",
|
||||
"changes": "Modifoj",
|
||||
"releaseDate": "Eldondato",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "Diskonigu kun AppVerifier, poste revenu ĉi tie kiam preta.",
|
||||
"wiki": "Helpo/Vikio",
|
||||
"crowdsourcedConfigsLabel": "Komunumaj apo-agordoj (uzu kun singardo)",
|
||||
"crowdsourcedConfigsShort": "Crowdsourced App Configs",
|
||||
"allowInsecure": "Allow insecure HTTP requests",
|
||||
"stayOneVersionBehind": "Stay one version behind latest",
|
||||
"removeAppQuestion": {
|
||||
"one": "Forigi la aplikaĵon?",
|
||||
"other": "Forigi la aplikaĵojn?"
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "Uninstall from Device",
|
||||
"onlyWorksWithNonVersionDetectApps": "Only works for Apps with version detection disabled.",
|
||||
"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.",
|
||||
"changes": "Changes",
|
||||
"releaseDate": "Release Date",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "Share to AppVerifier, then return here when ready.",
|
||||
"wiki": "Help/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (use at your own risk)",
|
||||
"crowdsourcedConfigsShort": "Crowdsourced App Configs",
|
||||
"allowInsecure": "Allow insecure HTTP requests",
|
||||
"stayOneVersionBehind": "Stay one version behind latest",
|
||||
"removeAppQuestion": {
|
||||
"one": "Remove App?",
|
||||
"other": "Remove Apps?"
|
||||
@@ -375,4 +378,4 @@
|
||||
"one": "{} APK",
|
||||
"other": "{} APKs"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "Desinstalar del dispositivo",
|
||||
"onlyWorksWithNonVersionDetectApps": "Solo funciona para aplicaciones con la detección de versiones desactivada.",
|
||||
"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.",
|
||||
"changes": "Cambios",
|
||||
"releaseDate": "Fecha de publicación",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "Comparta con AppVerifier y vuelva aquí cuando esté listo.",
|
||||
"wiki": "Ayuda/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (uso bajo su propia responsabilidad)",
|
||||
"crowdsourcedConfigsShort": "Configuración de aplicaciones por crowdsourcing",
|
||||
"allowInsecure": "Permitir peticiones HTTP inseguras",
|
||||
"stayOneVersionBehind": "Mantenerse una versión por detrás de la última",
|
||||
"removeAppQuestion": {
|
||||
"one": "¿Eliminar aplicación?",
|
||||
"other": "¿Eliminar aplicaciones?"
|
||||
|
@@ -22,9 +22,9 @@
|
||||
"requiredInBrackets": "(ضروری)",
|
||||
"dropdownNoOptsError": "خطا: کشویی باید حداقل یک گزینه داشته باشد",
|
||||
"colour": "رنگ",
|
||||
"standard": "Standard",
|
||||
"custom": "Custom",
|
||||
"useMaterialYou": "Use Material You",
|
||||
"standard": "استاندارد",
|
||||
"custom": "سفارشی",
|
||||
"useMaterialYou": "از Material You استفاده کنید",
|
||||
"githubStarredRepos": "مخازن ستاره دار گیتهاب",
|
||||
"uname": "نام کاربری",
|
||||
"wrongArgNum": "تعداد آرگومان های ارائه شده اشتباه است",
|
||||
@@ -88,22 +88,22 @@
|
||||
"author": "سازنده",
|
||||
"upToDateApps": "برنامه های به روز",
|
||||
"nonInstalledApps": "برنامه های نصب نشده",
|
||||
"importExport": "درون ریزی/برون ریزی",
|
||||
"importExport": "وارد کردن/صادر کردن",
|
||||
"settings": "تنظیمات",
|
||||
"exportedTo": "برون ریزی به{}",
|
||||
"obtainiumExport": "صادرکردن Obtainium",
|
||||
"exportedTo": "صادر کردن به{}",
|
||||
"obtainiumExport": "صادر کردن Obtainium",
|
||||
"invalidInput": "ورودی نامعتبر",
|
||||
"importedX": "وارد شده {}",
|
||||
"obtainiumImport": "واردکردن Obtainium",
|
||||
"importFromURLList": "درون ریزی از فهرست آدرس اینترنتی",
|
||||
"obtainiumImport": "وارد کردن Obtainium",
|
||||
"importFromURLList": "وارد کردن از فهرست آدرس اینترنتی",
|
||||
"searchQuery": "جستجوی سوال",
|
||||
"appURLList": "فهرست آدرس اینترنتی برنامه",
|
||||
"line": "خط",
|
||||
"searchX": "جستجو {}",
|
||||
"noResults": "نتیجه ای پیدا نشد",
|
||||
"importX": "درون ریزی {}",
|
||||
"importX": " وارد کردن {}",
|
||||
"importedAppsIdDisclaimer": "ممکن است برنامههای وارد شده به اشتباه بهعنوان \"نصب نشده\" نشان داده شوند.\nبرای رفع این مشکل، آنها را دوباره از طریق Obtainium نصب کنید.\nاین نباید روی دادههای برنامه تأثیر بگذارد.\n\nفقط بر روی آدرس اینترنتی و روشهای درون ریزی شخص ثالث تأثیر میگذارد.",
|
||||
"importErrors": "خطاهای درون ریزی",
|
||||
"importErrors": "خطاهای وارد کردن",
|
||||
"importedXOfYApps": "{} از {} برنامه وارد شد.",
|
||||
"followingURLsHadErrors": "آدرس های اینترنتی زیر دارای خطا بودند:",
|
||||
"selectURL": "آدرس اینترنتی انتخاب شده",
|
||||
@@ -135,7 +135,7 @@
|
||||
"close": "بستن",
|
||||
"share": "اشتراک گذاری",
|
||||
"appNotFound": "برنامه پیدا نشد",
|
||||
"obtainiumExportHyphenatedLowercase": "برون ریزی-obtainium",
|
||||
"obtainiumExportHyphenatedLowercase": "صادر کردن-obtainium",
|
||||
"pickAnAPK": "یک APK انتخاب کنید",
|
||||
"appHasMoreThanOnePackage": "{} بیش از یک بسته دارد:",
|
||||
"deviceSupportsXArch": "دستگاه شما از معماری پردازنده {} پشتیبانی میکند",
|
||||
@@ -213,10 +213,11 @@
|
||||
"uninstallFromDevice": "حذف نصب از دستگاه",
|
||||
"onlyWorksWithNonVersionDetectApps": "فقط برای برنامههایی کار میکند که تشخیص نسخه غیرفعال است.",
|
||||
"releaseDateAsVersion": "از تاریخ انتشار به عنوان نسخه استفاده کنید",
|
||||
"releaseTitleAsVersion": "Use release title as version string",
|
||||
"releaseDateAsVersionExplanation": "این گزینه فقط باید برای برنامه هایی استفاده شود که تشخیص نسخه به درستی کار نمی کند، اما تاریخ انتشار در دسترس است.",
|
||||
"changes": "تغییرات",
|
||||
"releaseDate": "تاریخ انتشار",
|
||||
"importFromURLsInFile": "درون ریزی از آدرس های اینترنتی موجود در فایل (مانند OPML)",
|
||||
"importFromURLsInFile": "وارد کردن از آدرس های اینترنتی موجود در فایل (مانند OPML)",
|
||||
"versionDetectionExplanation": "تطبیق رشته نسخه با نسخه شناسایی شده از سیستم عامل",
|
||||
"versionDetection": "تشخیص نسخه",
|
||||
"standardVersionDetection": "تشخیص نسخه استاندارد",
|
||||
@@ -259,12 +260,12 @@
|
||||
"bgUpdatesOnWiFiOnly": "بهروزرسانیهای پسزمینه را در صورت عدم اتصال به WiFi غیرفعال کنید",
|
||||
"autoSelectHighestVersionCode": "انتخاب خودکار بالاترین نسخه کد APK",
|
||||
"versionExtractionRegEx": "نسخه استخراج RegEx",
|
||||
"trimVersionString": "Trim Version String With RegEx",
|
||||
"matchGroupToUseForX": "Match Group to Use for \"{}\"",
|
||||
"trimVersionString": "برش رشته نسخه با RegEx",
|
||||
"matchGroupToUseForX": "مطابقت دادن گروه برای استفاده برای \"{}\"",
|
||||
"matchGroupToUse": "گروه مورد استفاده را مطابقت دهید",
|
||||
"highlightTouchTargets": "اهداف لمسی کمتر واضح را برجسته کنید",
|
||||
"pickExportDir": "فهرست برون ریزی را انتخاب کنید",
|
||||
"autoExportOnChanges": "برون ریزی خودکار تغییرات",
|
||||
"pickExportDir": "فهرست صادر کردن را انتخاب کنید",
|
||||
"autoExportOnChanges": "صادر کردن خودکار تغییرات",
|
||||
"includeSettings": "شامل تنظیمات",
|
||||
"filterVersionsByRegEx": "فیلتر کردن نسخه ها با RegEx",
|
||||
"trySelectingSuggestedVersionCode": "نسخه پیشنهادی APK نسخه کد را انتخاب کنید",
|
||||
@@ -290,11 +291,11 @@
|
||||
"supportFixedAPKURL": "پشتیبانی از URL های APK ثابت",
|
||||
"selectX": "انتخاب کنید {}",
|
||||
"parallelDownloads": "اجازه دانلود موازی",
|
||||
"useShizuku": "Use Shizuku or Sui to install",
|
||||
"useShizuku": "برای نصب از Shizuku یا Sui استفاده کنید",
|
||||
"shizukuBinderNotFound": "Shizuku در حال اجرا نیست",
|
||||
"shizukuOld": "Old Shizuku version (<11) - update it",
|
||||
"shizukuOldAndroidWithADB": "Shizuku running on Android < 8.1 with ADB - update Android or use Sui instead",
|
||||
"shizukuPretendToBeGooglePlay": "Set Google Play as the installation source (if Shizuku is used)",
|
||||
"shizukuOld": "نسخه قدیمی Shizuku (<11) - آن را به روز کنید",
|
||||
"shizukuOldAndroidWithADB": "Shizuku در Android < 8.1 با ADB اجرا می شود - اندروید را به روز کنید یا به جای آن از Sui استفاده کنید",
|
||||
"shizukuPretendToBeGooglePlay": "Google Play را به عنوان منبع نصب تنظیم کنید (در صورت استفاده از Shizuku)",
|
||||
"useSystemFont": "استفاده از فونت سیستم",
|
||||
"useVersionCodeAsOSVersion": "استفاده کد نسخه برنامه به جای نسخه شناسایی شده توسط سیستم عامل استفاده کنید",
|
||||
"requestHeader": "درخواست سطر بالایی",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "در AppVerifier به اشتراک بگذارید، سپس پس از آماده شدن به اینجا برگردید.",
|
||||
"wiki": "راهنما/ویکی",
|
||||
"crowdsourcedConfigsLabel": "تنظیمات برنامه Crowdsourced (با مسئولیت خود استفاده کنید)",
|
||||
"allowInsecure": "Allow insecure HTTP requests",
|
||||
"crowdsourcedConfigsShort": "Crowdsourced App Configs",
|
||||
"allowInsecure": "درخواست های HTTP ناامن را مجاز کنید",
|
||||
"stayOneVersionBehind": "Stay one version behind latest",
|
||||
"removeAppQuestion": {
|
||||
"one": "برنامه حذف شود؟",
|
||||
"other": "برنامه ها حذف شوند؟"
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "Désinstaller de l'appareil",
|
||||
"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",
|
||||
"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.",
|
||||
"changes": "Modifications",
|
||||
"releaseDate": "Date de sortie",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "Partagez avec AppVerifier, puis revenez ici lorsque tout est prêt.",
|
||||
"wiki": "Aide/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Configurations d'applications par la communauté (à utiliser à vos risques et périls)",
|
||||
"crowdsourcedConfigsShort": "Configurations d'applications par la foule",
|
||||
"allowInsecure": "Autoriser les requêtes HTTP non sécurisées",
|
||||
"stayOneVersionBehind": "Rester à une version de la dernière",
|
||||
"removeAppQuestion": {
|
||||
"one": "Supprimer l'application ?",
|
||||
"other": "Supprimer les applications ?"
|
||||
|
@@ -9,7 +9,7 @@
|
||||
"placeholder": "Helyőrző",
|
||||
"someErrors": "Néhány hiba történt",
|
||||
"unexpectedError": "Váratlan hiba",
|
||||
"ok": "Rendben",
|
||||
"ok": "OK",
|
||||
"and": "és",
|
||||
"githubPATLabel": "GitHub személyes hozzáférési token (megnöveli a lekérdezés-korlátozást)",
|
||||
"includePrereleases": "Tartalmazza az előzetes kiadásokat",
|
||||
@@ -31,7 +31,7 @@
|
||||
"xIsTrackOnly": "A(z) {} csak nyomonkövethető",
|
||||
"source": "Forrás",
|
||||
"app": "Alkalmazás",
|
||||
"appsFromSourceAreTrackOnly": "Az ebből a forrásból származó alkalmazások „csak nyomonkövethetőek”.",
|
||||
"appsFromSourceAreTrackOnly": "Az ebből a forrásból származó alkalmazások „csak nyomonkövethetők”.",
|
||||
"youPickedTrackOnly": "„Csak nyomonkövetés” opciót választotta.",
|
||||
"trackOnlyAppDescription": "Az alkalmazás frissítéseit nyomon követi, de az Obtainium nem tudja letölteni vagy telepíteni.",
|
||||
"cancelled": "Visszavonva",
|
||||
@@ -55,16 +55,16 @@
|
||||
"pleaseWait": "Kis türelmet",
|
||||
"updateAvailable": "Frissítés érhető el",
|
||||
"notInstalled": "Nem telepített",
|
||||
"pseudoVersion": "pszeudo-verzió",
|
||||
"pseudoVersion": "pszeudoverzió",
|
||||
"selectAll": "Összes kiválasztása",
|
||||
"deselectX": "A(z) {} kiválasztásának elvetése",
|
||||
"xWillBeRemovedButRemainInstalled": "A(z) {} el lesz távolítva az Obtainiumból, de továbbra is telepítve marad az eszközön.",
|
||||
"removeSelectedAppsQuestion": "A kiválasztott alkalmazások eltávolítása?",
|
||||
"removeSelectedApps": "A kiválasztott alkalmazások eltávolítása",
|
||||
"updateX": "A(z) {} frissítése",
|
||||
"installX": "A(z) {} telepítése",
|
||||
"markXTrackOnlyAsUpdated": "Megjelölés: {}\n(Csak nyomon követhető)\nmint Frissített",
|
||||
"changeX": "{} változtatás",
|
||||
"updateX": "{} frissítése",
|
||||
"installX": "{} telepítése",
|
||||
"markXTrackOnlyAsUpdated": "Megjelölés: {}\n(Csak nyomonkövetés)\nFrissítettként",
|
||||
"changeX": "{}-változás",
|
||||
"installUpdateApps": "Alkalmazások telepítése/frissítése",
|
||||
"installUpdateSelectedApps": "A kiválasztott alkalmazások telepítése/frissítése",
|
||||
"markXSelectedAppsAsUpdated": "A(z) {} kiválasztott alkalmazás megjelölése frissítettként?",
|
||||
@@ -75,12 +75,12 @@
|
||||
"unpinFromTop": "Kitűzés megszüntetése",
|
||||
"resetInstallStatusForSelectedAppsQuestion": "Visszaállítja a kiválasztott alkalmazások telepítési állapotát?",
|
||||
"installStatusOfXWillBeResetExplanation": "A kiválasztott alkalmazások telepítési állapota visszaáll.\n\nEz akkor segíthet, ha az Obtainiumban megjelenített alkalmazás-verzió hibás, a frissítések vagy egyéb problémák miatt.",
|
||||
"customLinkMessage": "Ezek a hivatkozások a telepített Obtainium-mal rendelkező eszközökön működnek",
|
||||
"shareAppConfigLinks": "Alkalmazás-konfiguráció megosztása HTML hivatkozásként",
|
||||
"customLinkMessage": "Ezek a hivatkozások a telepített Obtainiummal rendelkező eszközökön működnek",
|
||||
"shareAppConfigLinks": "Alkalmazás-konfiguráció megosztása HTML-hivatkozásként",
|
||||
"shareSelectedAppURLs": "A kiválasztott alkalmazás hivatkozásának megosztása",
|
||||
"resetInstallStatus": "Telepítési állapot visszaállítása",
|
||||
"more": "További",
|
||||
"removeOutdatedFilter": "Elavult-alkalmazás szűrő eltávolítása",
|
||||
"removeOutdatedFilter": "Elavult alkalmazás-szűrő eltávolítása",
|
||||
"showOutdatedOnly": "Csak az elavult alkalmazások megjelenítése",
|
||||
"filter": "Szűrő",
|
||||
"filterApps": "Alkalmazások szűrése",
|
||||
@@ -91,18 +91,18 @@
|
||||
"importExport": "Import/Export",
|
||||
"settings": "Beállítások",
|
||||
"exportedTo": "Exportálva ide: {}",
|
||||
"obtainiumExport": "Obtainium adatainak exportálása",
|
||||
"obtainiumExport": "Obtainium adatok exportálása",
|
||||
"invalidInput": "Hibás bemenet",
|
||||
"importedX": "Importálva innen: {}",
|
||||
"obtainiumImport": "Obtainium adatok importálása",
|
||||
"importFromURLList": "Importálás webcím-listából",
|
||||
"importFromURLList": "Importálás webcímlistából",
|
||||
"searchQuery": "Keresési lekérdezés",
|
||||
"appURLList": "Alkalmazás webcím-lista",
|
||||
"appURLList": "Alkalmazás-webcímlista",
|
||||
"line": "Sor",
|
||||
"searchX": "{} keresése",
|
||||
"noResults": "Nincs találat",
|
||||
"importX": "{} importálása",
|
||||
"importedAppsIdDisclaimer": "Előfordulhat, hogy az importált alkalmazások helytelenül „Nincs telepítve” jelzéssel jelennek meg.\nA probléma megoldásához telepítse újra őket az Obtainiumon keresztül.\nEz nem érinti az alkalmazásadatokat.\n\nCsak a hivatkozásokra és a harmadik féltől származó importálási módszerekre vonatkozik..",
|
||||
"importedAppsIdDisclaimer": "Előfordulhat, hogy az importált alkalmazások helytelenül „Nincs telepítve” jelzéssel jelennek meg.\nA probléma megoldásához telepítse újra őket az Obtainiumon keresztül.\nEz nem érinti az alkalmazásadatokat.\n\nCsak a webcímekre és a harmadik féltől származó importálási módszerekre vonatkozik.",
|
||||
"importErrors": "Importálási hibák",
|
||||
"importedXOfYApps": "{}/{} alkalmazás importálva.",
|
||||
"followingURLsHadErrors": "A következő webcímek hibákat tartalmaztak:",
|
||||
@@ -115,14 +115,14 @@
|
||||
"followSystem": "Rendszerbeállítás használata",
|
||||
"followSystemThemeExplanation": "A következő rendszer téma csak harmadik féltől származó alkalmazások használatával lehetséges",
|
||||
"useBlackTheme": "Használjon teljesen fekete sötét témát",
|
||||
"appSortBy": "Elrendezés",
|
||||
"appSortBy": "Rendezési szempont",
|
||||
"authorName": "Szerző/Név",
|
||||
"nameAuthor": "Név/Szerző",
|
||||
"asAdded": "Mint hozzáadott",
|
||||
"asAdded": "Hozzáadás dátuma",
|
||||
"appSortOrder": "Rendezési sorrend",
|
||||
"ascending": "Emelkedő",
|
||||
"ascending": "Növekvő",
|
||||
"descending": "Csökkenő",
|
||||
"bgUpdateCheckInterval": "Időtartam a frissítések háttér-ellenőrzése között",
|
||||
"bgUpdateCheckInterval": "Időtartam a frissítések háttérellenőrzése között",
|
||||
"neverManualOnly": "Soha – csak kézi",
|
||||
"appearance": "Megjelenés",
|
||||
"showWebInAppView": "Forrás megjelenítése az alkalmazásnézetben",
|
||||
@@ -135,14 +135,14 @@
|
||||
"close": "Bezárás",
|
||||
"share": "Megosztás",
|
||||
"appNotFound": "Az alkalmazás nem található",
|
||||
"obtainiumExportHyphenatedLowercase": "obtainium-export",
|
||||
"obtainiumExportHyphenatedLowercase": "obtainium-adat",
|
||||
"pickAnAPK": "Válasszon egy APK-t",
|
||||
"appHasMoreThanOnePackage": "A(z) {} egynél több csomaggal rendelkezik:",
|
||||
"deviceSupportsXArch": "Ez az eszköz támogatja a(z) {} CPU architektúrát.",
|
||||
"deviceSupportsFollowingArchs": "Ez az eszköz a következő CPU architektúrákat támogatja:",
|
||||
"warning": "Figyelem",
|
||||
"sourceIsXButPackageFromYPrompt": "Az alkalmazás forrása a(z) „{}” tároló, de a kiadási csomag innen származik: „{}”. Folytatja?",
|
||||
"updatesAvailable": "Frissítések érhetőek el",
|
||||
"updatesAvailable": "Frissítések érhetők el",
|
||||
"updatesAvailableNotifDescription": "Értesíti a felhasználót, hogy egy vagy több, az Obtainium által nyomonkövetett alkalmazáshoz frissítések állnak rendelkezésre",
|
||||
"noNewUpdates": "Nincsenek új frissítések.",
|
||||
"xHasAnUpdate": "A(z) {} frissítést kapott.",
|
||||
@@ -151,20 +151,20 @@
|
||||
"appsUpdatedNotifDescription": "Értesíti a felhasználót, hogy egy vagy több alkalmazás frissítése a háttérben történt.",
|
||||
"xWasUpdatedToY": "A(z) {} frissítve lett a következőre: {}.",
|
||||
"xWasNotUpdatedToY": "Nem sikerült frissíteni a következőt: {}, erre: {}.",
|
||||
"errorCheckingUpdates": "Hiba a frissítések keresésekor",
|
||||
"errorCheckingUpdatesNotifDescription": "Értesítés, amely akkor jelenik meg, ha a háttérfrissítés ellenőrzése nem sikerül",
|
||||
"errorCheckingUpdates": "Hiba a frissítések ellenőrzésekor",
|
||||
"errorCheckingUpdatesNotifDescription": "Értesítés, amely akkor jelenik meg, amikor a frissítések ellenőrzése a háttérben nem sikerül",
|
||||
"appsRemoved": "Alkalmazások eltávolítva",
|
||||
"appsRemovedNotifDescription": "Értesíti a felhasználót, hogy egy vagy több alkalmazás betöltés közbeni hiba miatt eltávolításra került",
|
||||
"xWasRemovedDueToErrorY": "A(z) {} eltávolításra került a következő hiba miatt: {}",
|
||||
"completeAppInstallation": "Teljes alkalmazástelepítés",
|
||||
"obtainiumMustBeOpenToInstallApps": "Az alkalmazások telepítéséhez az Obtainiumnak megnyitva kell lennie",
|
||||
"completeAppInstallationNotifDescription": "Megkéri a felhasználót, hogy térjen vissza az Obtainiumhoz, hogy befejezze az alkalmazás telepítését",
|
||||
"checkingForUpdates": "Frissítések keresése",
|
||||
"checkingForUpdatesNotifDescription": "Átmeneti értesítés, amely a frissítések keresésekor jelenik meg",
|
||||
"checkingForUpdates": "Frissítések ellenőrzése",
|
||||
"checkingForUpdatesNotifDescription": "Átmeneti értesítés, amely a frissítések ellenőrzésekor jelenik meg",
|
||||
"pleaseAllowInstallPerm": "Engedélyezze az Obtainiumnak az alkalmazások telepítését",
|
||||
"trackOnly": "Csak nyomonkövetés",
|
||||
"errorWithHttpStatusCode": "Hiba {}",
|
||||
"versionCorrectionDisabled": "Verziókorrekció letiltva (úgy tűnik, hogy a bővítmény nem működik)",
|
||||
"versionCorrectionDisabled": "Verzió-korrekció letiltva (úgy tűnik, hogy a bővítmény nem működik)",
|
||||
"unknown": "Ismeretlen",
|
||||
"none": "Semmi",
|
||||
"never": "Soha",
|
||||
@@ -186,15 +186,15 @@
|
||||
"update": "Frissítés",
|
||||
"markUpdated": "Frissítettnek jelölés",
|
||||
"additionalOptions": "További beállítások",
|
||||
"disableVersionDetection": "Verzió érzékelés letiltása",
|
||||
"noVersionDetectionExplanation": "Ezt a beállítást csak olyan alkalmazásoknál szabad használni, ahol a verzióérzékelés nem működik megfelelően.",
|
||||
"disableVersionDetection": "Verzió-érzékelés letiltása",
|
||||
"noVersionDetectionExplanation": "Ezt a beállítást csak olyan alkalmazásoknál szabad használni, ahol a verzió-érzékelés nem működik megfelelően.",
|
||||
"downloadingX": "{} letöltése",
|
||||
"downloadX": "{} letöltése",
|
||||
"downloadedX": "{} letöltve",
|
||||
"releaseAsset": "Kiadási csomag",
|
||||
"downloadNotifDescription": "Értesíti a felhasználót az alkalmazás letöltésének előrehaladásáról",
|
||||
"noAPKFound": "Nem található APK",
|
||||
"noVersionDetection": "Nincs verzió érzékelés",
|
||||
"noVersionDetection": "Nincs verzió-érzékelés",
|
||||
"categorize": "Kategorizálás",
|
||||
"categories": "Kategóriák",
|
||||
"category": "Kategória",
|
||||
@@ -211,39 +211,40 @@
|
||||
"filterAPKsByRegEx": "Az APK-k szűrése reguláris kifejezéssel",
|
||||
"removeFromObtainium": "Eltávolítás az Obtainiumból",
|
||||
"uninstallFromDevice": "Eltávolítás az eszközről",
|
||||
"onlyWorksWithNonVersionDetectApps": "Csak azoknál az alkalmazásoknál működik, amelyeknél a verzióérzékelés le van tiltva.",
|
||||
"releaseDateAsVersion": "Használja a kiadás dátumát, mint verziót",
|
||||
"releaseDateAsVersionExplanation": "Ezt a beállítást csak olyan alkalmazásoknál szabad használni, ahol a verzióérzékelés nem működik megfelelően, de elérhető a kiadás dátuma.",
|
||||
"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ó-karakterláncként",
|
||||
"releaseTitleAsVersion": "Használja a kiadás címét verzió-karakterláncként",
|
||||
"releaseDateAsVersionExplanation": "Ezt a beállítást csak olyan alkalmazásoknál szabad használni, ahol a verzió-érzékelés nem működik megfelelően, de elérhető a kiadás dátuma.",
|
||||
"changes": "Változások",
|
||||
"releaseDate": "Kiadás dátuma",
|
||||
"importFromURLsInFile": "Importálás fájlban található webcímből (pl. OPML)",
|
||||
"versionDetectionExplanation": "A verzió-karakterlánc egyeztetése az OS által észlelt verzióval",
|
||||
"versionDetection": "Verzióérzékelés",
|
||||
"standardVersionDetection": "Alapértelmezett verzióérzékelés",
|
||||
"versionDetectionExplanation": "A verzió-karakterlánc egyeztetése az rendszer által érzékelt verzióval",
|
||||
"versionDetection": "Verzió-érzékelés",
|
||||
"standardVersionDetection": "Alapértelmezett verzió-érzékelés",
|
||||
"groupByCategory": "Csoportosítás kategória alapján",
|
||||
"autoApkFilterByArch": "Ha lehetséges, próbálja CPU architektúra szerint szűrni az APK-kat",
|
||||
"overrideSource": "Forrás felülírása",
|
||||
"dontShowAgain": "Ne jelenítse meg ezt többé",
|
||||
"dontShowTrackOnlyWarnings": "Ne jelenítse meg a „Csak nyomonkövetés” figyelmeztetést",
|
||||
"dontShowAPKOriginWarnings": "Ne jelenítse meg az APK eredetére vonatkozó figyelmeztetéseket",
|
||||
"moveNonInstalledAppsToBottom": "Helyezze át a nem telepített alkalmazásokat az alkalmazás-nézet aljára",
|
||||
"moveNonInstalledAppsToBottom": "Helyezze át a nem telepített alkalmazásokat az alkalmazásnézet aljára",
|
||||
"gitlabPATLabel": "GitLab személyes hozzáférési token",
|
||||
"about": "Névjegy",
|
||||
"requiresCredentialsInSettings": "A(z) {} alkalmazásnak további hitelesítő adatokra van szüksége (a beállításokban)",
|
||||
"checkOnStart": "Frissítések keresése indításkor",
|
||||
"checkOnStart": "Frissítések ellenőrzése az alkalmazás megnyitásakor",
|
||||
"tryInferAppIdFromCode": "Próbálja meg kikövetkeztetni az alkalmazás azonosítóját a forráskódból",
|
||||
"removeOnExternalUninstall": "A külsőleg eltávolított alkalmazások automatikus eltávolítása",
|
||||
"pickHighestVersionCode": "A legmagasabb verziószámú APK automatikus kiválasztása",
|
||||
"checkUpdateOnDetailPage": "Frissítések keresése az alkalmazás részleteit tartalmazó oldal megnyitásakor",
|
||||
"checkUpdateOnDetailPage": "Frissítések ellenőrzése az alkalmazás részleteit tartalmazó oldal megnyitásakor",
|
||||
"disablePageTransitions": "Lap áttűnési animációk letiltása",
|
||||
"reversePageTransitions": "Fordított lap áttűnési animációk",
|
||||
"minStarCount": "Minimális csillagozási szám",
|
||||
"addInfoBelow": "Adja hozzá ezt az információt alább.",
|
||||
"addInfoInSettings": "Adja hozzá ezt az információt a beállításokban.",
|
||||
"githubSourceNote": "A GitHub/GitLab lekérdezés-korlátozás elkerülhető egy API-kulcs használatával.",
|
||||
"sortByLastLinkSegment": "Rendezés csak a hivatkozás utolsó szegmense szerint",
|
||||
"sortByLastLinkSegment": "Rendezés csak a hivatkozás utolsó szakasza szerint",
|
||||
"filterReleaseNotesByRegEx": "Kiadási megjegyzések szűrése reguláris kifejezéssel",
|
||||
"customLinkFilterRegex": "Egyéni APK hivatkozásszűrő reguláris kifejezéssel (Alapértelmezett „.apk$”)",
|
||||
"customLinkFilterRegex": "Egyéni APK-hivatkozásszűrő reguláris kifejezéssel (Alapértelmezett „.apk$”)",
|
||||
"appsPossiblyUpdated": "Megkísérelt alkalmazás-frissítések",
|
||||
"appsPossiblyUpdatedNotifDescription": "Értesíti a felhasználót, hogy egy vagy több alkalmazás frissítése lehetséges a háttérben",
|
||||
"xWasPossiblyUpdatedToY": "A(z) {} frissülhetett a következőre: {}.",
|
||||
@@ -251,15 +252,15 @@
|
||||
"backgroundUpdateReqsExplanation": "Előfordulhat, hogy nem minden alkalmazásnál lehetséges a háttérbeli frissítés.",
|
||||
"backgroundUpdateLimitsExplanation": "A háttérben történő telepítés sikeressége csak az Obtainium megnyitásakor állapítható meg.",
|
||||
"verifyLatestTag": "Ellenőrizze a „legújabb” címkét",
|
||||
"intermediateLinkRegex": "Szűrés egy „köztes” hivatkozás megnyitásához",
|
||||
"filterByLinkText": "Hivatkozások szűrése egy hivatkozásszöveg alapján",
|
||||
"intermediateLinkRegex": "Szűrő egy „köztes” hivatkozás felkereséséhez",
|
||||
"filterByLinkText": "Hivatkozások szűrése hivatkozásszöveg alapján",
|
||||
"intermediateLinkNotFound": "Köztes hivatkozás nem található",
|
||||
"intermediateLink": "Köztes hivatkozás",
|
||||
"exemptFromBackgroundUpdates": "Mentes a háttérben történő frissítések alól (ha engedélyezett)",
|
||||
"bgUpdatesOnWiFiOnly": "A háttérben futó frissítések letiltása, ha nincs Wi-Fi",
|
||||
"autoSelectHighestVersionCode": "A legmagasabb verziószámú APK automatikus kiválasztása",
|
||||
"versionExtractionRegEx": "Verziókarakterlánc-kivonatolása reguláris kifejezéssel",
|
||||
"trimVersionString": "Verziókarakterlánc levágása reguláris kifejezéssel",
|
||||
"bgUpdatesOnWiFiOnly": "A háttérben történő frissítések letiltása, ha nincs Wi-Fi",
|
||||
"autoSelectHighestVersionCode": "A legmagasabb verziókódú APK automatikus kiválasztása",
|
||||
"versionExtractionRegEx": "Verzió-karakterlánc kivonatolása reguláris kifejezéssel",
|
||||
"trimVersionString": "Verzió-karakterlánc levágása reguláris kifejezéssel",
|
||||
"matchGroupToUseForX": "A(z) „{}” esetén használandó csoport egyeztetése",
|
||||
"matchGroupToUse": "Verziókarakterlánc-kivonatoláshoz használandó csoport reguláris kifejezéssel való egyeztetése",
|
||||
"highlightTouchTargets": "A kevésbé nyilvánvaló érintési pontok kiemelése",
|
||||
@@ -269,23 +270,23 @@
|
||||
"filterVersionsByRegEx": "Verziók szűrése reguláris kifejezéssel",
|
||||
"trySelectingSuggestedVersionCode": "Próbálja ki a javasolt verziókódú APK-t",
|
||||
"dontSortReleasesList": "Az API-ból származó kiadási sorrend megőrzése",
|
||||
"reverseSort": "Fordított elrendezés",
|
||||
"reverseSort": "Fordított rendezés",
|
||||
"takeFirstLink": "Vegye az első hivatkozást",
|
||||
"skipSort": "Rendezés kihagyása",
|
||||
"debugMenu": "Hibakereső menü",
|
||||
"bgTaskStarted": "A háttérfeladat elindult – ellenőrizze a naplókat.",
|
||||
"runBgCheckNow": "Frissítések keresése a háttérben",
|
||||
"versionExtractWholePage": "„Verziókarakterlánc-kivonatolása reguláris kifejezéssel” alkalmazása az egész oldalra",
|
||||
"runBgCheckNow": "Frissítések ellenőrzése a háttérben most",
|
||||
"versionExtractWholePage": "„Verzió-karakterlánc kivonatolása reguláris kifejezéssel” alkalmazása az egész oldalra",
|
||||
"installing": "Telepítés",
|
||||
"skipUpdateNotifications": "A frissítési értesítések kihagyása",
|
||||
"updatesAvailableNotifChannel": "Frissítések érhetőek el",
|
||||
"updatesAvailableNotifChannel": "Frissítések érhetők el",
|
||||
"appsUpdatedNotifChannel": "Alkalmazások frissítve",
|
||||
"appsPossiblyUpdatedNotifChannel": "Megkísérelt alkalmazás-frissítések",
|
||||
"errorCheckingUpdatesNotifChannel": "Hiba a frissítések keresésekor",
|
||||
"errorCheckingUpdatesNotifChannel": "Hiba a frissítések ellenőrzésekor",
|
||||
"appsRemovedNotifChannel": "Eltávolított alkalmazások",
|
||||
"downloadingXNotifChannel": "A(z) {} letöltése",
|
||||
"completeAppInstallationNotifChannel": "Teljes alkalmazás telepítés",
|
||||
"checkingForUpdatesNotifChannel": "Frissítések keresése",
|
||||
"checkingForUpdatesNotifChannel": "Frissítések ellenőrzése",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Csak a telepített és a csak nyomonkövethető alkalmazások frissítéseinek ellenőrzése",
|
||||
"supportFixedAPKURL": "Támogatja a rögzített APK webcímeket",
|
||||
"selectX": "{} kiválasztása",
|
||||
@@ -296,25 +297,27 @@
|
||||
"shizukuOldAndroidWithADB": "A Shizuku csak Android < 8.1 ADB-vel fut - frissítse az Androidot vagy használja a Sui-t helyette",
|
||||
"shizukuPretendToBeGooglePlay": "Állítsa be a Google Playt telepítési forrásként (ha Shizukut használ)",
|
||||
"useSystemFont": "A rendszer betűtípusának használata",
|
||||
"useVersionCodeAsOSVersion": "Az alkalmazás verziókódjának használata a rendszer által észlelt verzióként",
|
||||
"useVersionCodeAsOSVersion": "Az alkalmazás verziókódjának használata a rendszer által érzékelt verzióként",
|
||||
"requestHeader": "Kérelemfejléc",
|
||||
"useLatestAssetDateAsReleaseDate": "A kiadás dátumaként használja a legutóbbi csomagfeltöltést",
|
||||
"defaultPseudoVersioningMethod": "Alapértelmezett pszeudo-verziós módszer",
|
||||
"defaultPseudoVersioningMethod": "Alapértelmezett pszeudoverziós módszer",
|
||||
"partialAPKHash": "Részleges APK hasító értéke",
|
||||
"APKLinkHash": "APK hivatkozás hasító értéke",
|
||||
"directAPKLink": "Közvetlen APK hivatkozás",
|
||||
"pseudoVersionInUse": "Egy pszeudo-verzió van használatban",
|
||||
"pseudoVersionInUse": "Egy pszeudoverzió van használatban",
|
||||
"installed": "Telepített",
|
||||
"latest": "Legújabb",
|
||||
"invertRegEx": "Reguláris kifejezés invertálása",
|
||||
"note": "Megjegyzés",
|
||||
"selfHostedNote": "A(z) \„{}\” legördülő menü segítségével elérhetővé válnak a bármilyen más forrásból származó saját üzemeltetésű- vagy egyéni példányok.",
|
||||
"selfHostedNote": "A(z) „{}” legördülő menü segítségével elérhetővé válnak a bármilyen más forrásból származó saját üzemeltetésű vagy egyéni példányok.",
|
||||
"badDownload": "Az APK-t nem lehetett elemezni (inkompatibilis vagy részleges letöltés)",
|
||||
"beforeNewInstallsShareToAppVerifier": "Új alkalmazások megosztása az AppVerifierrel (ha elérhető)",
|
||||
"appVerifierInstructionToast": "Ossza meg az AppVerifierrel, majd térjen vissza ide, ha kész.",
|
||||
"wiki": "Súgó/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Crowdsource-ből származó alkalmazások beállítása (saját felelősségére használja)",
|
||||
"allowInsecure": "Bizonytalan HTTP-kérések engedélyezése",
|
||||
"crowdsourcedConfigsShort": "Crowdsourced App Configs",
|
||||
"allowInsecure": "Nem biztonságos HTTP-kérések engedélyezése",
|
||||
"stayOneVersionBehind": "Maradjon egy verzióval a legújabb mögött",
|
||||
"removeAppQuestion": {
|
||||
"one": "Eltávolítja az alkalmazást?",
|
||||
"other": "Eltávolítja az alkalmazásokat?"
|
||||
@@ -352,8 +355,8 @@
|
||||
"other": "{} nap"
|
||||
},
|
||||
"clearedNLogsBeforeXAfterY": {
|
||||
"one": "{n} napló törölve lett ({after} után és {before} előtt)",
|
||||
"other": "{n} napló törölve lett ({after} után és {before} előtt)"
|
||||
"one": "{n} napló törölve lett ({after} után, és {before} előtt)",
|
||||
"other": "{n} napló törölve lett ({after} után, és {before} előtt)"
|
||||
},
|
||||
"xAndNMoreUpdatesAvailable": {
|
||||
"one": "A(z) {} és 1 további alkalmazás frissítést kapott.",
|
||||
|
381
assets/translations/id.json
Normal file
381
assets/translations/id.json
Normal file
@@ -0,0 +1,381 @@
|
||||
{
|
||||
"invalidURLForSource": "Bukan URL aplikasi {} yang valid",
|
||||
"noReleaseFound": "Tidak dapat menemukan rilis yang sesuai",
|
||||
"noVersionFound": "Tidak dapat memastikan versi rilis yang sesuai",
|
||||
"urlMatchesNoSource": "URL tidak sesuai dengan sumber yang diketahui",
|
||||
"cantInstallOlderVersion": "Tidak dapat memasang versi aplikasi yang lebih lama",
|
||||
"appIdMismatch": "ID paket yang diunduh tidak sama dengan ID aplikasi yang ada",
|
||||
"functionNotImplemented": "Kelas ini belum mengimplementasikan fungsi ini",
|
||||
"placeholder": "Tempat penampung",
|
||||
"someErrors": "Terjadi beberapa kesalahan",
|
||||
"unexpectedError": "Kesalahan tidak terduga",
|
||||
"ok": "Oke",
|
||||
"and": "dan",
|
||||
"githubPATLabel": "Token Akses Pribadi GitHub (tingkatkan batasan tarif)",
|
||||
"includePrereleases": "Sertakan pra-rilis",
|
||||
"fallbackToOlderReleases": "Alternatif kembali ke rilis lama",
|
||||
"filterReleaseTitlesByRegEx": "Filter judul rilis dengan ekspresi reguler",
|
||||
"invalidRegEx": "Ekspresi reguler tidak valid",
|
||||
"noDescription": "Tidak ada deskripsi",
|
||||
"cancel": "Batal",
|
||||
"continue": "Lanjut",
|
||||
"requiredInBrackets": "(Diperlukan)",
|
||||
"dropdownNoOptsError": "KESALAHAN: DROPDOWN HARUS MEMILIKI SETIDAKNYA SATU OPSI",
|
||||
"colour": "Warna",
|
||||
"standard": "Standar",
|
||||
"custom": "Kustom",
|
||||
"useMaterialYou": "Gunakan Material You",
|
||||
"githubStarredRepos": "Repositori berbintang GitHub",
|
||||
"uname": "Nama pengguna",
|
||||
"wrongArgNum": "Salah memberikan jumlah argumen",
|
||||
"xIsTrackOnly": "{} adalah Pelacakan Saja",
|
||||
"source": "Sumber",
|
||||
"app": "Aplikasi",
|
||||
"appsFromSourceAreTrackOnly": "Aplikasi dari sumber ini hanya untuk 'Pelacakan Saja'.",
|
||||
"youPickedTrackOnly": "Anda telah memilih opsi Pelacakan Saja.",
|
||||
"trackOnlyAppDescription": "Aplikasi akan dilacak untuk pembaruan, tetapi Obtainium tidak akan dapat mengunduh atau memasangnya.",
|
||||
"cancelled": "Dibatalkan",
|
||||
"appAlreadyAdded": "Aplikasi sudah ditambahkan",
|
||||
"alreadyUpToDateQuestion": "Aplikasi sudah yang terbaru?",
|
||||
"addApp": "Tambah aplikasi",
|
||||
"appSourceURL": "Tambah sumber URL",
|
||||
"error": "Kesalahan",
|
||||
"add": "Tambah",
|
||||
"searchSomeSourcesLabel": "Cari (beberapa sumber saja)",
|
||||
"search": "Cari",
|
||||
"additionalOptsFor": "Opsi tambahan untuk {}",
|
||||
"supportedSources": "Sumber yang didukung",
|
||||
"trackOnlyInBrackets": "(Pelacakan Saja)",
|
||||
"searchableInBrackets": "(Dapat dicari)",
|
||||
"appsString": "Aplikasi",
|
||||
"noApps": "Tidak ada aplikasi",
|
||||
"noAppsForFilter": "Tidak ada aplikasi untuk difilter",
|
||||
"byX": "Oleh {}",
|
||||
"percentProgress": "Perkembangan: {}%",
|
||||
"pleaseWait": "Harap tunggu",
|
||||
"updateAvailable": "Pembaruan tersedia",
|
||||
"notInstalled": "Tidak terpasang",
|
||||
"pseudoVersion": "versi semu",
|
||||
"selectAll": "Pilih semua",
|
||||
"deselectX": "Batal pilih {}",
|
||||
"xWillBeRemovedButRemainInstalled": "{} akan dihapus dari Obtainium tetapi tetap terpasang di perangkat.",
|
||||
"removeSelectedAppsQuestion": "Hapus aplikasi terpilih?",
|
||||
"removeSelectedApps": "Hapus aplikasi terpilih",
|
||||
"updateX": "Perbarui {}",
|
||||
"installX": "Pasang {}",
|
||||
"markXTrackOnlyAsUpdated": "Tandai {}\n(Pelacakan Saja)\nsudah diperbarui",
|
||||
"changeX": "Ubah {}",
|
||||
"installUpdateApps": "Pasang/perbarui aplikasi",
|
||||
"installUpdateSelectedApps": "Pasang/perbarui aplikasi terpilih",
|
||||
"markXSelectedAppsAsUpdated": "Tandai {} aplikasi terpilih sudah diperbarui?",
|
||||
"no": "Tidak",
|
||||
"yes": "Ya",
|
||||
"markSelectedAppsUpdated": "Tandai aplikasi terpilih sudah diperbarui",
|
||||
"pinToTop": "Sematkan ke atas",
|
||||
"unpinFromTop": "Lepaskan semat dari atas",
|
||||
"resetInstallStatusForSelectedAppsQuestion": "Atur ulang status pemasangan untuk aplikasi terpilih?",
|
||||
"installStatusOfXWillBeResetExplanation": "Status pemasangan dari aplikasi terpilih akan diatur ulang.\n\nHal ini bisa membantu saat versi aplikasi yang ditampilkan di Obtainium salah akibat pembaruan yang gagal atau masalah lainnya.",
|
||||
"customLinkMessage": "Tautan ini berfungsi pada perangkat yang terpasang Obtainium",
|
||||
"shareAppConfigLinks": "Bagikan konfigurasi aplikasi sebagai tautan HTML",
|
||||
"shareSelectedAppURLs": "Bagikan URL aplikasi terpilih",
|
||||
"resetInstallStatus": "Atur ulang status pemasangan",
|
||||
"more": "Lebih banyak",
|
||||
"removeOutdatedFilter": "Hapus filter aplikasi yang usang",
|
||||
"showOutdatedOnly": "Tampilkan aplikasi yang usang saja",
|
||||
"filter": "Filter",
|
||||
"filterApps": "Filter aplikasi",
|
||||
"appName": "Nama aplikasi",
|
||||
"author": "Pencipta",
|
||||
"upToDateApps": "Aplikasi terbaru",
|
||||
"nonInstalledApps": "Aplikasi tidak terpasang",
|
||||
"importExport": "Impor/ekspor",
|
||||
"settings": "Pengaturan",
|
||||
"exportedTo": "Diekspor ke {}",
|
||||
"obtainiumExport": "Ekspor Obtainium",
|
||||
"invalidInput": "Masukan tidak valid",
|
||||
"importedX": "{} diimpor",
|
||||
"obtainiumImport": "Impor Obtainium",
|
||||
"importFromURLList": "Impor dari daftar URL",
|
||||
"searchQuery": "Cari Kueri",
|
||||
"appURLList": "Daftar URL aplikasi",
|
||||
"line": "Baris",
|
||||
"searchX": "Cari {}",
|
||||
"noResults": "Tidak ada hasil yang ditemukan",
|
||||
"importX": "Impor {}",
|
||||
"importedAppsIdDisclaimer": "Aplikasi yang diimpor mungkin secara salah ditampilkan sebagai \"Tidak terpasang\".\nUntuk memperbaikinya, lakukan pemasangan ulang melalui Obtainium.\nHal ini seharusnya tidak mempengaruhi data aplikasi.\n\nHanya mempengaruhi metode impor URL dan pihak ketiga.",
|
||||
"importErrors": "Kesalahan impor",
|
||||
"importedXOfYApps": "{} dari {} aplikasi diimpor.",
|
||||
"followingURLsHadErrors": "URL berikut mengalami kesalahan:",
|
||||
"selectURL": "Pilih URL",
|
||||
"selectURLs": "Pilih URL",
|
||||
"pick": "Pilih",
|
||||
"theme": "Tema",
|
||||
"dark": "Gelap",
|
||||
"light": "Terang",
|
||||
"followSystem": "Mengikuti sistem",
|
||||
"followSystemThemeExplanation": "Tema mengikuti sistem hanya mungkin dengan menggunakan aplikasi pihak ketiga",
|
||||
"useBlackTheme": "Gunakan tema hitam pekat",
|
||||
"appSortBy": "Penyortiran aplikasi berdasarkan",
|
||||
"authorName": "Pencipta/nama",
|
||||
"nameAuthor": "Nama/pencipta",
|
||||
"asAdded": "Tanggal ditambahkan",
|
||||
"appSortOrder": "Urutan penyortiran aplikasi",
|
||||
"ascending": "Menaik",
|
||||
"descending": "Menurun",
|
||||
"bgUpdateCheckInterval": "Interval pemeriksaan pembaruan di latar belakang",
|
||||
"neverManualOnly": "Tidak pernah - manual saja",
|
||||
"appearance": "Tampilan",
|
||||
"showWebInAppView": "Tampilkan halaman web sumber dalam tampilan aplikasi",
|
||||
"pinUpdates": "Sematkan pembaruan ke atas tampilan aplikasi",
|
||||
"updates": "Pembaruan",
|
||||
"sourceSpecific": "Sumber spesifik",
|
||||
"appSource": "Sumber aplikasi",
|
||||
"noLogs": "Tidak ada catatan",
|
||||
"appLogs": "Catatan aplikasi",
|
||||
"close": "Tutup",
|
||||
"share": "Bagikan",
|
||||
"appNotFound": "Aplikasi tidak ditemukan",
|
||||
"obtainiumExportHyphenatedLowercase": "ekspor-obtainium",
|
||||
"pickAnAPK": "Pilih APK",
|
||||
"appHasMoreThanOnePackage": "{} memiliki lebih dari satu paket:",
|
||||
"deviceSupportsXArch": "Perangkat Anda mendukung arsitektur CPU {}.",
|
||||
"deviceSupportsFollowingArchs": "Perangkat anda mendukung arsitektur CPU berikut:",
|
||||
"warning": "Peringatan",
|
||||
"sourceIsXButPackageFromYPrompt": "Sumber aplikasinya adalah '{}' tetapi paket rilisnya berasal dari '{}'. Lanjutkan?",
|
||||
"updatesAvailable": "Pembaruan tersedia",
|
||||
"updatesAvailableNotifDescription": "Memberi tahu pengguna bahwa pembaruan tersedia untuk aplikasi yang dilacak oleh Obtainium",
|
||||
"noNewUpdates": "Tidak ada pembaruan baru.",
|
||||
"xHasAnUpdate": "{} memiliki pembaruan.",
|
||||
"appsUpdated": "Aplikasi diperbarui",
|
||||
"appsNotUpdated": "Gagal memperbarui aplikasi",
|
||||
"appsUpdatedNotifDescription": "Memberi tahu pengguna bahwa pembaruan terhadap aplikasi diterapkan di latar belakang",
|
||||
"xWasUpdatedToY": "{} telah diperbarui ke {}.",
|
||||
"xWasNotUpdatedToY": "Gagal memperbarui {} ke {}.",
|
||||
"errorCheckingUpdates": "Kesalahan dalam memeriksa pembaruan",
|
||||
"errorCheckingUpdatesNotifDescription": "Notifikasi yang ditampilkan saat pemeriksaan pembaruan latar belakang gagal",
|
||||
"appsRemoved": "Aplikasi dihapus",
|
||||
"appsRemovedNotifDescription": "Memberi tahu pengguna bahwa aplikasi dihapus karena kesalahan saat memuatnya",
|
||||
"xWasRemovedDueToErrorY": "{} dihapus karena kesalahan berikut: {}",
|
||||
"completeAppInstallation": "Selesaikan pemasangan aplikasi",
|
||||
"obtainiumMustBeOpenToInstallApps": "Obtainium harus terbuka untuk memasang aplikasi",
|
||||
"completeAppInstallationNotifDescription": "Meminta pengguna kembali ke Obtainium untuk menyelesaikan pemasangan aplikasi",
|
||||
"checkingForUpdates": "Memeriksa pembaruan",
|
||||
"checkingForUpdatesNotifDescription": "Notifikasi sementara yang ditampilkan saat memeriksa pembaruan",
|
||||
"pleaseAllowInstallPerm": "Harap izinkan Obtainium untuk memasang aplikasi",
|
||||
"trackOnly": "Pelacakan Saja",
|
||||
"errorWithHttpStatusCode": "Kesalahan {}",
|
||||
"versionCorrectionDisabled": "Koreksi versi dinonaktifkan (sepertinya plugin tidak berfungsi)",
|
||||
"unknown": "Tidak diketahui",
|
||||
"none": "Tidak ada",
|
||||
"never": "Tidak pernah",
|
||||
"latestVersionX": "Terbaru: {}",
|
||||
"installedVersionX": "Terpasang: {}",
|
||||
"lastUpdateCheckX": "Terakhir memeriksa pembaruan: {}",
|
||||
"remove": "Hapus",
|
||||
"yesMarkUpdated": "Ya, tandai bahwa sudah diperbarui",
|
||||
"fdroid": "F-Droid Resmi",
|
||||
"appIdOrName": "ID atau nama aplikasi",
|
||||
"appId": "ID aplikasi",
|
||||
"appWithIdOrNameNotFound": "Tidak ada aplikasi yang ditemukan dengan ID atau nama tersebut",
|
||||
"reposHaveMultipleApps": "Repositori dapat berisi beberapa aplikasi",
|
||||
"fdroidThirdPartyRepo": "Repositori pihak ketiga F-Droid",
|
||||
"steamMobile": "Steam Mobile",
|
||||
"steamChat": "Obrolan Steam",
|
||||
"install": "Pasang",
|
||||
"markInstalled": "Tandai terpasang",
|
||||
"update": "perbarui",
|
||||
"markUpdated": "Tandai diperbarui",
|
||||
"additionalOptions": "Opsi tambahan",
|
||||
"disableVersionDetection": "Nonaktifkan pendeteksi versi",
|
||||
"noVersionDetectionExplanation": "Opsi ini hanya boleh digunakan untuk aplikasi dengan pendeteksi versi yang tidak berfungsi dengan benar.",
|
||||
"downloadingX": "Mengunduh {}",
|
||||
"downloadX": "Unduh {}",
|
||||
"downloadedX": "{} diunduh",
|
||||
"releaseAsset": "Aset rilis",
|
||||
"downloadNotifDescription": "Memberi tahu pengguna perkembangan dalam mengunduh aplikasi",
|
||||
"noAPKFound": "Tidak ada APK ditemukan",
|
||||
"noVersionDetection": "Tidak ada pendeteksi versi",
|
||||
"categorize": "Kategorikan",
|
||||
"categories": "Kategori",
|
||||
"category": "Kategori",
|
||||
"noCategory": "Tidak ada kategori",
|
||||
"noCategories": "Tidak ada kategori",
|
||||
"deleteCategoriesQuestion": "Hapus kategori?",
|
||||
"categoryDeleteWarning": "Semua aplikasi dalam kategori yang dihapus akan diatur sebagai tidak terkategori.",
|
||||
"addCategory": "Tambah kategori",
|
||||
"label": "Label",
|
||||
"language": "Bahasa",
|
||||
"copiedToClipboard": "Disalin ke papan klip",
|
||||
"storagePermissionDenied": "Izin penyimpanan ditolak",
|
||||
"selectedCategorizeWarning": "Ini akan mengganti pengaturan kategori yang ada untuk aplikasi terpilih.",
|
||||
"filterAPKsByRegEx": "Filter APK dengan ekspresi reguler",
|
||||
"removeFromObtainium": "Hapus dari Obtainium",
|
||||
"uninstallFromDevice": "Copot pemasangan dari perangkat",
|
||||
"onlyWorksWithNonVersionDetectApps": "Hanya bekerja untuk aplikasi dengan pendeteksi versi yang nonaktif.",
|
||||
"releaseDateAsVersion": "Gunakan tanggal rilis sebagai versi string",
|
||||
"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.",
|
||||
"changes": "Perubahan",
|
||||
"releaseDate": "Tanggal rilis",
|
||||
"importFromURLsInFile": "Impor dari URL dalam berkas (seperti OPML)",
|
||||
"versionDetectionExplanation": "Sesuaikan string versi dengan versi yang terdeteksi dari OS",
|
||||
"versionDetection": "Pendeteksi versi",
|
||||
"standardVersionDetection": "Pendeteksi versi standar",
|
||||
"groupByCategory": "Kelompokkan berdasarkan kategori",
|
||||
"autoApkFilterByArch": "Coba filter APK berdasarkan arsitektur CPU jika memungkinkan",
|
||||
"overrideSource": "Ganti sumber",
|
||||
"dontShowAgain": "Jangan tampilkan lagi",
|
||||
"dontShowTrackOnlyWarnings": "Jangan tampilkan peringatan 'Pelacakan Saja'",
|
||||
"dontShowAPKOriginWarnings": "Jangan tampilkan peringatan asal APK",
|
||||
"moveNonInstalledAppsToBottom": "Pindahkan aplikasi tidak terpasang ke bawah tampilan aplikasi",
|
||||
"gitlabPATLabel": "Token Akses Pribadi GitLab",
|
||||
"about": "Tentang",
|
||||
"requiresCredentialsInSettings": "{} memerlukan kredensial tambahan (dalam pengaturan)",
|
||||
"checkOnStart": "Periksa pembaruan saat proses memulai",
|
||||
"tryInferAppIdFromCode": "Coba untuk menebak ID aplikasi dari kode sumber",
|
||||
"removeOnExternalUninstall": "Hapus otomatis aplikasi yang dicopot pemasangannya dari luar",
|
||||
"pickHighestVersionCode": "Pilih otomatis APK dengan versi kode tertinggi",
|
||||
"checkUpdateOnDetailPage": "Periksa pembaruan saat membuka halaman detail aplikasi",
|
||||
"disablePageTransitions": "Nonaktifkan animasi transisi halaman",
|
||||
"reversePageTransitions": "Animasi transisi halaman secara terbalik",
|
||||
"minStarCount": "Jumlah bintang minimum",
|
||||
"addInfoBelow": "Tambahkan info ini di bawah.",
|
||||
"addInfoInSettings": "Tambahkan info ini di pengaturan.",
|
||||
"githubSourceNote": "Pembatasan tarif pada GitHub dapat dihindari dengan menggunakan kunci API.",
|
||||
"sortByLastLinkSegment": "Urutkan hanya berdasarkan segmen terakhir tautan",
|
||||
"filterReleaseNotesByRegEx": "Filter catatan perilisan dengan ekspresi reguler",
|
||||
"customLinkFilterRegex": "Filter tautan APK kustom dengan ekspresi reguler (Standar '.apk$')",
|
||||
"appsPossiblyUpdated": "Pembaruan aplikasi dicoba",
|
||||
"appsPossiblyUpdatedNotifDescription": "Memberi tahu pengguna bahwa pembaruan terhadap aplikasi berpotensi diterapkan di latar belakang",
|
||||
"xWasPossiblyUpdatedToY": "{} mungkin telah diperbarui ke {}.",
|
||||
"enableBackgroundUpdates": "Aktifkan pembaruan latar belakang",
|
||||
"backgroundUpdateReqsExplanation": "Pembaruan latar belakang mungkin tidak dapat dilakukan untuk semua aplikasi.",
|
||||
"backgroundUpdateLimitsExplanation": "Keberhasilan pemasangan di latar belakang hanya dapat ditentukan ketika Obtainium terbuka.",
|
||||
"verifyLatestTag": "Verifikasi label 'terbaru'",
|
||||
"intermediateLinkRegex": "Filter tautan 'perantara' untuk dikunjungi",
|
||||
"filterByLinkText": "Filter tautan berdasarkan teks tautan",
|
||||
"intermediateLinkNotFound": "Tautan perantara tidak ditemukan",
|
||||
"intermediateLink": "Tautan perantara",
|
||||
"exemptFromBackgroundUpdates": "Dikecualikan dari pembaruan latar belakang (jika diaktifkan)",
|
||||
"bgUpdatesOnWiFiOnly": "Nonaktifkan pembaruan latar belakang saat tidak menggunakan WiFi",
|
||||
"autoSelectHighestVersionCode": "Pilih otomatis APK dengan versi kode tertinggi",
|
||||
"versionExtractionRegEx": "Reguler ekspresi terkait ekstraksi versi string",
|
||||
"trimVersionString": "Potong versi string dengan reguler ekspresi",
|
||||
"matchGroupToUseForX": "Cocokkan grup yang akan digunakan untuk \"{}\"",
|
||||
"matchGroupToUse": "Cocokkan grup yang akan digunakan untuk reguler ekspresi terkait ekstraksi versi string",
|
||||
"highlightTouchTargets": "Sorot target sentuh yang kurang jelas",
|
||||
"pickExportDir": "Pilih direktori ekspor",
|
||||
"autoExportOnChanges": "Otomatis ekspor terhadap perubahan",
|
||||
"includeSettings": "Sertakan pengaturan",
|
||||
"filterVersionsByRegEx": "Filter versi dengan ekspresi reguler",
|
||||
"trySelectingSuggestedVersionCode": "Coba pilih APK dengan version kode yang disarankan",
|
||||
"dontSortReleasesList": "Pertahankan urutan rilis dari API",
|
||||
"reverseSort": "Penyortiran terbalik",
|
||||
"takeFirstLink": "Ambil tautan pertama",
|
||||
"skipSort": "Lewati penyortiran",
|
||||
"debugMenu": "Menu debug",
|
||||
"bgTaskStarted": "Tugas latar belakang dimulai - periksa catatan.",
|
||||
"runBgCheckNow": "Jalankan pemeriksaan pembaruan latar belakang sekarang",
|
||||
"versionExtractWholePage": "Terapkan reguler ekspresi terkait ekstraksi versi string ke seluruh halaman",
|
||||
"installing": "Memasang",
|
||||
"skipUpdateNotifications": "Lewati notifikasi pembaruan",
|
||||
"updatesAvailableNotifChannel": "Pembaruan tersedia",
|
||||
"appsUpdatedNotifChannel": "Aplikasi diperbarui",
|
||||
"appsPossiblyUpdatedNotifChannel": "Pembaruan aplikasi dicoba",
|
||||
"errorCheckingUpdatesNotifChannel": "Kesalahan dalam memeriksa pembaruan",
|
||||
"appsRemovedNotifChannel": "Aplikasi dihapus",
|
||||
"downloadingXNotifChannel": "Mengunduh {}",
|
||||
"completeAppInstallationNotifChannel": "Selesaikan pemasangan aplikasi",
|
||||
"checkingForUpdatesNotifChannel": "Memeriksa pembaruan",
|
||||
"onlyCheckInstalledOrTrackOnlyApps": "Hanya periksa aplikasi yang dipasang dan ditandai 'Pelacakan Saja' untuk pembaruan",
|
||||
"supportFixedAPKURL": "Mendukung URL APK tetap",
|
||||
"selectX": "Pilih {}",
|
||||
"parallelDownloads": "Izinkan mengunduh paralel",
|
||||
"useShizuku": "Gunakan Shizuku atau Sui untuk memasang",
|
||||
"shizukuBinderNotFound": "Layanan Shizuku tidak berjalan",
|
||||
"shizukuOld": "Versi Shizuku lama (<11) - harap perbarui",
|
||||
"shizukuOldAndroidWithADB": "Shizuku berjalan di Android < 8.1 dengan ADB - perbarui Android atau gunakan Sui sebagai gantinya",
|
||||
"shizukuPretendToBeGooglePlay": "Atur Google Play sebagai sumber pemasangan (jika Shizuku digunakan)",
|
||||
"useSystemFont": "Gunakan font sistem",
|
||||
"useVersionCodeAsOSVersion": "Gunakan versi kode aplikasi sebagai versi yang terdeteksi OS",
|
||||
"requestHeader": "Header permintaan",
|
||||
"useLatestAssetDateAsReleaseDate": "Gunakan unggahan aset terbaru sebagai tanggal rilis",
|
||||
"defaultPseudoVersioningMethod": "Metode versi semu standar",
|
||||
"partialAPKHash": "Hash APK parsial",
|
||||
"APKLinkHash": "Hash tautan APK",
|
||||
"directAPKLink": "Tautan APK langsung",
|
||||
"pseudoVersionInUse": "Versi semu sedang digunakan",
|
||||
"installed": "Terpasang",
|
||||
"latest": "Terbaru",
|
||||
"invertRegEx": "Balikkan ekspresi reguler",
|
||||
"note": "Catatan",
|
||||
"selfHostedNote": "Dropdown \"{}\" bisa digunakan untuk menjangkau instansi yang dihosting sendiri/kustom dari sumber mana pun.",
|
||||
"badDownload": "APK tidak dapat diurai (tidak kompatibel atau diunduh sebagian)",
|
||||
"beforeNewInstallsShareToAppVerifier": "Bagikan aplikasi baru dengan AppVerifier (jika tersedia)",
|
||||
"appVerifierInstructionToast": "Bagikan ke AppVerifier, lalu kembali ke sini jika sudah siap.",
|
||||
"wiki": "Bantuan/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Konfigurasi aplikasi Crowdsourced (risiko penggunaan ditanggung sendiri)",
|
||||
"crowdsourcedConfigsShort": "Konfigurasi Aplikasi Crowdsourced",
|
||||
"allowInsecure": "Izinkan permintaan HTTP yang tidak aman",
|
||||
"stayOneVersionBehind": "Tetap satu versi di belakang versi terbaru",
|
||||
"removeAppQuestion": {
|
||||
"one": "Hapus aplikasi?",
|
||||
"other": "Hapus aplikasi?"
|
||||
},
|
||||
"tooManyRequestsTryAgainInMinutes": {
|
||||
"one": "Terlalu banyak permintaan (tarif dibatasi) - coba lagi dalam {} menit",
|
||||
"other": "Terlalu banyak permintaan (tarif dibatasi) - coba lagi dalam {} menit"
|
||||
},
|
||||
"bgUpdateGotErrorRetryInMinutes": {
|
||||
"one": "Pemeriksaan pembaruan latar belakang menemui {}, akan menjadwalkan pemeriksaan ulang dalam {} menit",
|
||||
"other": "Pemeriksaan pembaruan latar belakang menemui {}, akan menjadwalkan pemeriksaan ulang dalam {} menit"
|
||||
},
|
||||
"bgCheckFoundUpdatesWillNotifyIfNeeded": {
|
||||
"one": "Pemeriksaan pembaruan latar belakang menemukan {} pembaruan - akan memberi tahu pengguna jika diperlukan",
|
||||
"other": "Pemeriksaan pembaruan latar belakang menemukan {} pembaruan - akan memberi tahu pengguna jika diperlukan"
|
||||
},
|
||||
"apps": {
|
||||
"one": "{} aplikasi",
|
||||
"other": "{} aplikasi"
|
||||
},
|
||||
"url": {
|
||||
"one": "{} URL",
|
||||
"other": "{} URL"
|
||||
},
|
||||
"minute": {
|
||||
"one": "{} menit",
|
||||
"other": "{} menit"
|
||||
},
|
||||
"hour": {
|
||||
"one": "{} jam",
|
||||
"other": "{} jam"
|
||||
},
|
||||
"day": {
|
||||
"one": "{} hari",
|
||||
"other": "{} hari"
|
||||
},
|
||||
"clearedNLogsBeforeXAfterY": {
|
||||
"one": "Menghapus {n} catatan (sebelum = {before}, setelah = {after})",
|
||||
"other": "Menghapus {n} catatan (sebelum = {before}, setelah = {after})"
|
||||
},
|
||||
"xAndNMoreUpdatesAvailable": {
|
||||
"one": "{} dan 1 aplikasi lainnya memiliki pembaruan.",
|
||||
"other": "{} dan {} aplikasi lainnya memiliki pembaruan."
|
||||
},
|
||||
"xAndNMoreUpdatesInstalled": {
|
||||
"one": "{} dan 1 aplikasi lainnya telah diperbarui.",
|
||||
"other": "{} dan {} aplikasi lainnya telah diperbarui."
|
||||
},
|
||||
"xAndNMoreUpdatesFailed": {
|
||||
"one": "Gagal memperbarui {} dan 1 aplikasi lainnya.",
|
||||
"other": "Gagal memperbarui {} dan {} aplikasi lainnya."
|
||||
},
|
||||
"xAndNMoreUpdatesPossiblyInstalled": {
|
||||
"one": "{} dan 1 aplikasi lainnya mungkin telah diperbarui.",
|
||||
"other": "{} dan {} aplikasi lainnya mungkin telah diperbarui."
|
||||
},
|
||||
"apk": {
|
||||
"one": "{} APK",
|
||||
"other": "{} APK"
|
||||
}
|
||||
}
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "Disinstalla dal dispositivo",
|
||||
"onlyWorksWithNonVersionDetectApps": "Funziona solo per le app con il rilevamento della versione disattivato.",
|
||||
"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.",
|
||||
"changes": "Novità",
|
||||
"releaseDate": "Data di rilascio",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "Condividete con AppVerifier, quindi tornate qui quando siete pronti.",
|
||||
"wiki": "Aiuto/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Configurazioni di app in crowdsourcing (uso a proprio rischio)",
|
||||
"crowdsourcedConfigsShort": "Configurazioni di app in crowdsourcing",
|
||||
"allowInsecure": "Consentire le richieste HTTP non sicure",
|
||||
"stayOneVersionBehind": "Rimanere una versione indietro rispetto alla più recente",
|
||||
"removeAppQuestion": {
|
||||
"one": "Rimuovere l'app?",
|
||||
"other": "Rimuovere le app?"
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "デバイスからアンインストールする",
|
||||
"onlyWorksWithNonVersionDetectApps": "バージョン検出を無効にしているアプリにのみ動作します。",
|
||||
"releaseDateAsVersion": "リリース日をバージョンとして使用する",
|
||||
"releaseTitleAsVersion": "リリースタイトルをバージョン文字列として使用",
|
||||
"releaseDateAsVersionExplanation": "このオプションは、バージョン検出が正しく機能しないアプリで、リリース日が利用可能な場合にのみ使用する必要があります。",
|
||||
"changes": "変更点",
|
||||
"releaseDate": "リリース日",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "AppVerifierに共有し、準備ができたらここに戻ってください。",
|
||||
"wiki": "ヘルプ/ウィキ",
|
||||
"crowdsourcedConfigsLabel": "クラウドソーシングによるアプリの設定(利用は自己責任で)",
|
||||
"crowdsourcedConfigsShort": "クラウドソーシングによるアプリの設定",
|
||||
"allowInsecure": "安全でないHTTPリクエストを許可する",
|
||||
"stayOneVersionBehind": "最新バージョンから1つ遅れ",
|
||||
"removeAppQuestion": {
|
||||
"one": "アプリを削除しますか?",
|
||||
"other": "アプリを削除しますか?"
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "Van apparaat verwijderen",
|
||||
"onlyWorksWithNonVersionDetectApps": "Werkt alleen voor apps waarbij versieherkenning is uitgeschakeld.",
|
||||
"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.",
|
||||
"changes": "Aanpassingen",
|
||||
"releaseDate": "Releasedatum",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "Deel het met AppVerifier en keer daarna hier terug.",
|
||||
"wiki": "Help/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Crowdsourced App-configuraties (gebruik op eigen risico)",
|
||||
"crowdsourcedConfigsShort": "App-configuraties door menigte",
|
||||
"allowInsecure": "Onveilige HTTP-verzoeken toestaan",
|
||||
"stayOneVersionBehind": "Blijf een versie achter op de nieuwste",
|
||||
"removeAppQuestion": {
|
||||
"one": "App verwijderen?",
|
||||
"other": "Apps verwijderen?"
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "Odinstaluj z urządzenia",
|
||||
"onlyWorksWithNonVersionDetectApps": "Działa tylko w przypadku aplikacji z wyłączonym wykrywaniem 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.",
|
||||
"changes": "Zmiany",
|
||||
"releaseDate": "Data wydania",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "Udostępnij w AppVerifier, a następnie wróć tutaj, gdy będziesz gotowy.",
|
||||
"wiki": "Pomoc/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Konfiguracje aplikacji pochodzące z crowdsourcingu (korzystanie na własne ryzyko)",
|
||||
"crowdsourcedConfigsShort": "Konfiguracje aplikacji pochodzące z crowdsourcingu",
|
||||
"allowInsecure": "Zezwalaj na niezabezpieczone żądania HTTP",
|
||||
"stayOneVersionBehind": "Pozostań jedną wersję za najnowszą",
|
||||
"removeAppQuestion": {
|
||||
"one": "Usunąć aplikację?",
|
||||
"few": "Usunąć aplikacje?",
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "Desinstalar do dispositivo",
|
||||
"onlyWorksWithNonVersionDetectApps": "Apenas funciona para aplicativos com detecção de versão desativada.",
|
||||
"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.",
|
||||
"changes": "Alterações",
|
||||
"releaseDate": "Data de lançamento",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "Partilhe com o AppVerifier e, em seguida, regresse aqui quando estiver pronto.",
|
||||
"wiki": "Ajuda/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Configurações de aplicações de crowdsourcing (utilização por sua conta e risco)",
|
||||
"crowdsourcedConfigsShort": "Configurações de aplicações com base em crowdsourcing",
|
||||
"allowInsecure": "Permitir pedidos HTTP inseguros",
|
||||
"stayOneVersionBehind": "Manter-se uma versão atrás da mais recente",
|
||||
"removeAppQuestion": {
|
||||
"one": "Remover aplicativo?",
|
||||
"other": "Remover aplicativos?"
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "Удалить с устройства",
|
||||
"onlyWorksWithNonVersionDetectApps": "Работает только для приложений с отключенным определением версии",
|
||||
"releaseDateAsVersion": "Дата выпуска вместо версии",
|
||||
"releaseTitleAsVersion": "Используйте название релиза в качестве строки версии",
|
||||
"releaseDateAsVersionExplanation": "Этот параметр следует использовать только для приложений, в которых определение версии не работает правильно, но имеется дата выпуска",
|
||||
"changes": "Изменения",
|
||||
"releaseDate": "Дата выпуска",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "Поделитесь с AppVerifier, а затем вернитесь сюда, когда будете готовы.",
|
||||
"wiki": "Помощь/Вики",
|
||||
"crowdsourcedConfigsLabel": "Конфигурации приложений на основе краудсорсинга (используйте на свой страх и риск)",
|
||||
"crowdsourcedConfigsShort": "Конфиги приложений с помощью краудсорсинга",
|
||||
"allowInsecure": "Разрешить небезопасные HTTP-запросы",
|
||||
"stayOneVersionBehind": "Не отставайте от последней версии",
|
||||
"removeAppQuestion": {
|
||||
"one": "Удалить приложение?",
|
||||
"other": "Удалить приложения?"
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "Avinstallera från Enheten",
|
||||
"onlyWorksWithNonVersionDetectApps": "Fungerar bara för Appar med versionsdetektering inaktiverat..",
|
||||
"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.",
|
||||
"changes": "Ändringar",
|
||||
"releaseDate": "Releasedatum",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "Dela till AppVerifier och återvänd sedan hit när du är klar.",
|
||||
"wiki": "Hjälp/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Crowdsourcade appkonfigurationer (använd på egen risk)",
|
||||
"crowdsourcedConfigsShort": "Appkonfigurationer med hjälp av crowdsourcing",
|
||||
"allowInsecure": "Tillåt osäkra HTTP-förfrågningar",
|
||||
"stayOneVersionBehind": "Håll dig en version bakom den senaste",
|
||||
"removeAppQuestion": {
|
||||
"one": "Ta Bort App?",
|
||||
"other": "Ta Bort Appar?"
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "Cihazdan Kaldır",
|
||||
"onlyWorksWithNonVersionDetectApps": "Yalnızca Sürüm Algılaması Devre Dışı Uygulamalar İçin Çalışır.",
|
||||
"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.",
|
||||
"changes": "Değişiklikler",
|
||||
"releaseDate": "Yayın Tarihi",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "AppVerifier ile paylaşın, hazır olduğunuzda buraya dönün.",
|
||||
"wiki": "Yardım/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Kitle Kaynaklı Uygulama Yapılandırmaları (riski size ait olmak üzere kullanın)",
|
||||
"crowdsourcedConfigsShort": "Kitle Kaynaklı Uygulama Yapılandırmaları",
|
||||
"allowInsecure": "Güvensiz HTTP isteklerine izin ver",
|
||||
"stayOneVersionBehind": "En son sürümün bir sürüm gerisinde kalın",
|
||||
"removeAppQuestion": {
|
||||
"one": "Uygulamayı Kaldır?",
|
||||
"other": "Uygulamaları Kaldır?"
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "Видалити з пристрою",
|
||||
"onlyWorksWithNonVersionDetectApps": "Працює лише з застосунками з вимкненим визначенням версії.",
|
||||
"releaseDateAsVersion": "Використовувати дату випуску як рядок версії",
|
||||
"releaseTitleAsVersion": "Використовувати назву випуску як рядок версії",
|
||||
"releaseDateAsVersionExplanation": "Цю опцію слід використовувати лише для застосунків, де визначення версії працює неправильно, але є дата випуску.",
|
||||
"changes": "Зміни",
|
||||
"releaseDate": "Дата випуску",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "Надішліть на AppVerifier, а потім поверніться сюди, коли будете готові.",
|
||||
"wiki": "Довідка/Вікі",
|
||||
"crowdsourcedConfigsLabel": "Краудсорсингові конфігурації додатків (використовуйте на свій страх і ризик)",
|
||||
"crowdsourcedConfigsShort": "Налаштування краудсорсингових додатків",
|
||||
"allowInsecure": "Дозволити незахищені HTTP-запити",
|
||||
"stayOneVersionBehind": "Залишайтеся на одну версію актуальнішою",
|
||||
"removeAppQuestion": {
|
||||
"one": "Видалити застосунок?",
|
||||
"other": "Видалити застосунки?"
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"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.",
|
||||
"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.",
|
||||
"changes": "Thay đổi",
|
||||
"releaseDate": "Ngày phát hành",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "Chia sẻ lên AppVerifier, sau đó quay lại đây khi sẵn sàng.",
|
||||
"wiki": "Trợ giúp/Wiki",
|
||||
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (use at your own risk)",
|
||||
"crowdsourcedConfigsShort": "Crowdsourced App Configs",
|
||||
"allowInsecure": "Allow insecure HTTP requests",
|
||||
"stayOneVersionBehind": "Stay one version behind latest",
|
||||
"removeAppQuestion": {
|
||||
"one": "Gỡ ứng dụng?",
|
||||
"other": "Gỡ ứng dụng?"
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "從裝置解除安裝",
|
||||
"onlyWorksWithNonVersionDetectApps": "僅適用於停用版本偵測的應用程式。",
|
||||
"releaseDateAsVersion": "使用發佈日期作為版本字串",
|
||||
"releaseTitleAsVersion": "Use release title as version string",
|
||||
"releaseDateAsVersionExplanation": "此選項僅應用於版本偵測無法正確工作但有發佈日期的應用程式。",
|
||||
"changes": "變更",
|
||||
"releaseDate": "發佈日期",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "分享至 AppVerifier,然後準備好時回到此處。",
|
||||
"wiki": "幫助/維基",
|
||||
"crowdsourcedConfigsLabel": "群眾外包的應用程式設定(使用風險自負)",
|
||||
"crowdsourcedConfigsShort": "Crowdsourced App Configs",
|
||||
"allowInsecure": "Allow insecure HTTP requests",
|
||||
"stayOneVersionBehind": "Stay one version behind latest",
|
||||
"removeAppQuestion": {
|
||||
"one": "移除應用程式?",
|
||||
"other": "移除應用程式?"
|
||||
|
@@ -213,6 +213,7 @@
|
||||
"uninstallFromDevice": "从设备中卸载",
|
||||
"onlyWorksWithNonVersionDetectApps": "仅适用于禁用版本检测的应用。",
|
||||
"releaseDateAsVersion": "将发行日期作为版本号",
|
||||
"releaseTitleAsVersion": "使用版本标题作为版本字符串",
|
||||
"releaseDateAsVersionExplanation": "此选项应该仅用于无法进行版本检测但能够获取发行日期的应用。",
|
||||
"changes": "更新日志",
|
||||
"releaseDate": "发行日期",
|
||||
@@ -314,7 +315,9 @@
|
||||
"appVerifierInstructionToast": "分享至 AppVerifier,完成后返回此处。",
|
||||
"wiki": "帮助/Wiki",
|
||||
"crowdsourcedConfigsLabel": "众包应用程序配置(使用风险自负)",
|
||||
"crowdsourcedConfigsShort": "众包应用程序配置",
|
||||
"allowInsecure": "允许不安全的 HTTP 请求",
|
||||
"stayOneVersionBehind": "比最新版本晚一个版本",
|
||||
"removeAppQuestion": {
|
||||
"one": "是否删除应用?",
|
||||
"other": "是否删除应用?"
|
||||
|
@@ -1 +1 @@
|
||||
Get android app updates directly from the source
|
||||
Get Android app updates directly from the source
|
||||
|
@@ -2,6 +2,7 @@ import 'package:device_info_plus/device_info_plus.dart';
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:html/parser.dart';
|
||||
import 'package:obtainium/app_sources/html.dart';
|
||||
import 'package:obtainium/components/generated_form.dart';
|
||||
import 'package:obtainium/custom_errors.dart';
|
||||
import 'package:obtainium/providers/source_provider.dart';
|
||||
|
||||
@@ -26,6 +27,16 @@ class APKPure extends AppSource {
|
||||
allowSubDomains = true;
|
||||
naiveStandardVersionDetection = true;
|
||||
showReleaseDateAsVersionToggle = true;
|
||||
additionalSourceAppSpecificSettingFormItems = [
|
||||
[
|
||||
GeneratedFormSwitch('fallbackToOlderReleases',
|
||||
label: tr('fallbackToOlderReleases'), defaultValue: true)
|
||||
],
|
||||
[
|
||||
GeneratedFormSwitch('stayOneVersionBehind',
|
||||
label: tr('stayOneVersionBehind'), defaultValue: false)
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
@override
|
||||
@@ -54,6 +65,97 @@ class APKPure extends AppSource {
|
||||
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
|
||||
Future<APKDetails> getLatestAPKDetails(
|
||||
String standardUrl,
|
||||
@@ -80,88 +182,17 @@ class APKPure extends AppSource {
|
||||
|
||||
for (var i = 0; i < versionLinks.length; i++) {
|
||||
var link = versionLinks[i];
|
||||
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();
|
||||
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;
|
||||
try {
|
||||
if (i == 0 && additionalSettings['stayOneVersionBehind'] == true) {
|
||||
throw NoReleasesError();
|
||||
}
|
||||
return await getDetailsForVersionLink(standardUrl, appId, host,
|
||||
supportedArchs, link.key, additionalSettings);
|
||||
} catch (e) {
|
||||
if (additionalSettings['fallbackToOlderReleases'] != true ||
|
||||
i == versionLinks.length - 1) {
|
||||
rethrow;
|
||||
}
|
||||
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();
|
||||
|
@@ -81,6 +81,10 @@ class GitHub extends AppSource {
|
||||
[
|
||||
GeneratedFormSwitch('useLatestAssetDateAsReleaseDate',
|
||||
label: tr('useLatestAssetDateAsReleaseDate'), defaultValue: false)
|
||||
],
|
||||
[
|
||||
GeneratedFormSwitch('releaseTitleAsVersion',
|
||||
label: tr('releaseTitleAsVersion'), defaultValue: false)
|
||||
]
|
||||
];
|
||||
|
||||
@@ -396,7 +400,9 @@ class GitHub extends AppSource {
|
||||
targetRelease = releases[i];
|
||||
targetRelease['apkUrls'] = apkUrls;
|
||||
targetRelease['version'] =
|
||||
targetRelease['tag_name'] ?? targetRelease['name'];
|
||||
additionalSettings['releaseTitleAsVersion'] == true
|
||||
? nameToFilter
|
||||
: targetRelease['tag_name'] ?? targetRelease['name'];
|
||||
if (targetRelease['tarball_url'] != null) {
|
||||
allAssetUrls.add(MapEntry(
|
||||
(targetRelease['version'] ?? 'source') + '.tar.gz',
|
||||
|
@@ -60,8 +60,17 @@ class SourceHut extends AppSource {
|
||||
int ind = 0;
|
||||
|
||||
for (var entry in parsedHtml.querySelectorAll('item').sublist(0, 6)) {
|
||||
// Limit 5 for speed
|
||||
if (!fallbackToOlderReleases && ind > 0) {
|
||||
ind++;
|
||||
String releasePage = // querySelector('link') fails for some reason
|
||||
entry
|
||||
.querySelector('guid') // Luckily guid is identical
|
||||
?.innerHtml
|
||||
.trim() ??
|
||||
'';
|
||||
if (!releasePage.startsWith('$standardUrl/refs')) {
|
||||
continue;
|
||||
}
|
||||
if (!fallbackToOlderReleases && ind > 1) {
|
||||
break;
|
||||
}
|
||||
String? version = entry.querySelector('title')?.text.trim();
|
||||
@@ -69,7 +78,6 @@ class SourceHut extends AppSource {
|
||||
throw NoVersionError();
|
||||
}
|
||||
String? releaseDateString = entry.querySelector('pubDate')?.innerHtml;
|
||||
String releasePage = '$standardUrl/refs/$version';
|
||||
DateTime? releaseDate;
|
||||
try {
|
||||
releaseDate = releaseDateString != null
|
||||
@@ -98,7 +106,6 @@ class SourceHut extends AppSource {
|
||||
AppNames(entry.querySelector('author')?.innerHtml.trim() ?? appName,
|
||||
appName),
|
||||
releaseDate: releaseDate));
|
||||
ind++;
|
||||
}
|
||||
if (apkDetailsList.isEmpty) {
|
||||
throw NoReleasesError();
|
||||
|
@@ -44,6 +44,7 @@ List<MapEntry<Locale, String>> supportedLocales = const [
|
||||
MapEntry(Locale('da'), 'Dansk'),
|
||||
MapEntry(Locale('en', 'EO'),
|
||||
'Esperanto'), // https://github.com/aissat/easy_localization/issues/220#issuecomment-846035493
|
||||
MapEntry(Locale('in'), 'Bahasa Indonesia')
|
||||
];
|
||||
const fallbackLocale = Locale('en');
|
||||
const localeDir = 'assets/translations';
|
||||
|
@@ -30,6 +30,7 @@ class AddAppPageState extends State<AddAppPage> {
|
||||
String userInput = '';
|
||||
String searchQuery = '';
|
||||
String? pickedSourceOverride;
|
||||
String? previousPickedSourceOverride;
|
||||
AppSource? pickedSource;
|
||||
Map<String, dynamic> additionalSettings = {};
|
||||
bool additionalSettingsValid = true;
|
||||
@@ -58,6 +59,9 @@ class AddAppPageState extends State<AddAppPage> {
|
||||
if (overrideSource != null) {
|
||||
pickedSourceOverride = overrideSource;
|
||||
}
|
||||
bool overrideChanged =
|
||||
pickedSourceOverride != previousPickedSourceOverride;
|
||||
previousPickedSourceOverride = pickedSourceOverride;
|
||||
if (updateUrlInput) {
|
||||
urlInputKey++;
|
||||
}
|
||||
@@ -69,6 +73,7 @@ class AddAppPageState extends State<AddAppPage> {
|
||||
overrideSource: pickedSourceOverride)
|
||||
: null;
|
||||
if (pickedSource.runtimeType != source.runtimeType ||
|
||||
overrideChanged ||
|
||||
(prevHost != null && prevHost != source?.hosts[0])) {
|
||||
pickedSource = source;
|
||||
pickedSource?.runOnAddAppInputChange(userInput);
|
||||
@@ -487,7 +492,8 @@ class AddAppPageState extends State<AddAppPage> {
|
||||
height: 16,
|
||||
),
|
||||
GeneratedForm(
|
||||
key: Key(pickedSource.runtimeType.toString()),
|
||||
key: Key(
|
||||
'${pickedSource.runtimeType.toString()}-${pickedSource?.hostChanged.toString()}-${pickedSource?.hostIdenticalDespiteAnyChange.toString()}'),
|
||||
items: [
|
||||
...pickedSource!.combinedAppSpecificSettingFormItems,
|
||||
...(pickedSourceOverride != null
|
||||
@@ -538,6 +544,7 @@ class AddAppPageState extends State<AddAppPage> {
|
||||
Widget getSourcesListWidget() => Padding(
|
||||
padding: const EdgeInsets.all(16),
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: [
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
@@ -594,7 +601,20 @@ class AddAppPageState extends State<AddAppPage> {
|
||||
fontWeight: FontWeight.bold,
|
||||
decoration: TextDecoration.underline,
|
||||
fontStyle: FontStyle.italic),
|
||||
))
|
||||
)),
|
||||
GestureDetector(
|
||||
onTap: () {
|
||||
launchUrlString('https://apps.obtainium.imranr.dev/',
|
||||
mode: LaunchMode.externalApplication);
|
||||
},
|
||||
child: Text(
|
||||
tr('crowdsourcedConfigsShort'),
|
||||
style: const TextStyle(
|
||||
fontWeight: FontWeight.bold,
|
||||
decoration: TextDecoration.underline,
|
||||
fontStyle: FontStyle.italic),
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
@@ -242,11 +242,11 @@ class _AppPageState extends State<AppPage> {
|
||||
);
|
||||
}
|
||||
|
||||
getFullInfoColumn() => Column(
|
||||
getFullInfoColumn({bool small = false}) => Column(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||
children: [
|
||||
const SizedBox(height: 20),
|
||||
SizedBox(height: small ? 5 : 20),
|
||||
FutureBuilder(
|
||||
future:
|
||||
appsProvider.updateAppIcon(app?.app.id, ignoreCache: true),
|
||||
@@ -261,24 +261,28 @@ class _AppPageState extends State<AppPage> {
|
||||
: () => pm.openApp(app.app.id),
|
||||
child: Image.memory(
|
||||
app!.icon!,
|
||||
height: 150,
|
||||
height: small ? 70 : 150,
|
||||
gaplessPlayback: true,
|
||||
),
|
||||
)
|
||||
])
|
||||
: Container();
|
||||
}),
|
||||
const SizedBox(
|
||||
height: 25,
|
||||
SizedBox(
|
||||
height: small ? 10 : 25,
|
||||
),
|
||||
Text(
|
||||
app?.name ?? tr('app'),
|
||||
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')]),
|
||||
textAlign: TextAlign.center,
|
||||
style: Theme.of(context).textTheme.headlineMedium),
|
||||
style: small
|
||||
? Theme.of(context).textTheme.headlineSmall
|
||||
: Theme.of(context).textTheme.headlineMedium),
|
||||
const SizedBox(
|
||||
height: 24,
|
||||
),
|
||||
@@ -496,11 +500,8 @@ class _AppPageState extends State<AppPage> {
|
||||
builder: (BuildContext ctx) {
|
||||
return AlertDialog(
|
||||
scrollable: true,
|
||||
content: getInfoColumn(),
|
||||
title: Text(
|
||||
'${app.name} ${tr('byX', args: [
|
||||
app.app.author
|
||||
])}'),
|
||||
content: getFullInfoColumn(small: true),
|
||||
title: Text(app.name),
|
||||
actions: [
|
||||
TextButton(
|
||||
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,
|
||||
Text(
|
||||
tr('sourceSpecific'),
|
||||
|
@@ -565,9 +565,11 @@ class AppsProvider with ChangeNotifier {
|
||||
return false;
|
||||
}
|
||||
if (app.additionalSettings['exemptFromBackgroundUpdates'] == true) {
|
||||
logs.add('Exempted from BG updates: ${app.id}');
|
||||
return false;
|
||||
}
|
||||
if (app.apkUrls.length > 1) {
|
||||
logs.add('Multiple APK URLs: ${app.id}');
|
||||
return false; // Manual API selection means silent install is not possible
|
||||
}
|
||||
|
||||
@@ -579,6 +581,8 @@ class AppsProvider with ChangeNotifier {
|
||||
?.installingPackageName
|
||||
: (await pm.getInstallerPackageName(packageName: app.id));
|
||||
} catch (e) {
|
||||
logs.add(
|
||||
'Failed to get installed package details: ${app.id} (${e.toString()})');
|
||||
return false; // App probably not installed
|
||||
}
|
||||
|
||||
@@ -587,6 +591,7 @@ class AppsProvider with ChangeNotifier {
|
||||
// The APK should target a new enough API
|
||||
// https://developer.android.com/reference/android/content/pm/PackageInstaller.SessionParams#setRequireUserAction(int)
|
||||
if (!(targetSDK != null && targetSDK >= (osInfo.version.sdkInt - 3))) {
|
||||
logs.add('Multiple APK URLs: ${app.id}');
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -601,8 +606,12 @@ class AppsProvider with ChangeNotifier {
|
||||
// If we did not install the app, silent install is not possible
|
||||
return false;
|
||||
}
|
||||
// The OS must also be new enough
|
||||
return osInfo.version.sdkInt >= 31;
|
||||
if (osInfo.version.sdkInt < 31) {
|
||||
// The OS must also be new enough
|
||||
logs.add('Android SDK too old: ${osInfo.version.sdkInt}');
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
Future<void> waitForUserToReturnToForeground(BuildContext context) async {
|
||||
@@ -879,22 +888,20 @@ class AppsProvider with ChangeNotifier {
|
||||
apps[id]?.installedInfo == null ? context : null;
|
||||
bool needBGWorkaround =
|
||||
willBeSilent && context == null && !settingsProvider.useShizuku;
|
||||
bool shizukuPretendToBeGooglePlay = settingsProvider
|
||||
.shizukuPretendToBeGooglePlay ||
|
||||
apps[id]!.app.additionalSettings['shizukuPretendToBeGooglePlay'] ==
|
||||
true;
|
||||
if (downloadedFile != null) {
|
||||
if (needBGWorkaround) {
|
||||
// ignore: use_build_context_synchronously
|
||||
installApk(downloadedFile, contextIfNewInstall,
|
||||
needsBGWorkaround: true,
|
||||
shizukuPretendToBeGooglePlay: apps[id]!
|
||||
.app
|
||||
.additionalSettings['shizukuPretendToBeGooglePlay'] ==
|
||||
true);
|
||||
shizukuPretendToBeGooglePlay: shizukuPretendToBeGooglePlay);
|
||||
} else {
|
||||
// ignore: use_build_context_synchronously
|
||||
sayInstalled = await installApk(downloadedFile, contextIfNewInstall,
|
||||
shizukuPretendToBeGooglePlay: apps[id]!
|
||||
.app
|
||||
.additionalSettings['shizukuPretendToBeGooglePlay'] ==
|
||||
true);
|
||||
shizukuPretendToBeGooglePlay: shizukuPretendToBeGooglePlay);
|
||||
}
|
||||
} else {
|
||||
if (needBGWorkaround) {
|
||||
@@ -905,10 +912,7 @@ class AppsProvider with ChangeNotifier {
|
||||
// ignore: use_build_context_synchronously
|
||||
sayInstalled = await installXApkDir(
|
||||
downloadedDir!, contextIfNewInstall,
|
||||
shizukuPretendToBeGooglePlay: apps[id]!
|
||||
.app
|
||||
.additionalSettings['shizukuPretendToBeGooglePlay'] ==
|
||||
true);
|
||||
shizukuPretendToBeGooglePlay: shizukuPretendToBeGooglePlay);
|
||||
}
|
||||
}
|
||||
if (willBeSilent && context == null) {
|
||||
|
@@ -48,7 +48,7 @@ class SettingsProvider with ChangeNotifier {
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
bool get useShizuku{
|
||||
bool get useShizuku {
|
||||
return prefs?.getBool('useShizuku') ?? false;
|
||||
}
|
||||
|
||||
@@ -69,8 +69,7 @@ class SettingsProvider with ChangeNotifier {
|
||||
|
||||
Color get themeColor {
|
||||
int? colorCode = prefs?.getInt('themeColor');
|
||||
return (colorCode != null) ?
|
||||
Color(colorCode) : obtainiumThemeColor;
|
||||
return (colorCode != null) ? Color(colorCode) : obtainiumThemeColor;
|
||||
}
|
||||
|
||||
set themeColor(Color themeColor) {
|
||||
@@ -469,4 +468,13 @@ class SettingsProvider with ChangeNotifier {
|
||||
prefs?.setBool('beforeNewInstallsShareToAppVerifier', val);
|
||||
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 {
|
||||
List<String> hosts = [];
|
||||
bool hostChanged = false;
|
||||
bool hostIdenticalDespiteAnyChange = false;
|
||||
late String name;
|
||||
bool enforceTrackOnly = false;
|
||||
bool changeLogIfAnyIsMarkDown = true;
|
||||
@@ -628,9 +629,10 @@ abstract class AppSource {
|
||||
SettingsProvider settingsProvider) async {
|
||||
Map<String, String> results = {};
|
||||
for (var e in sourceConfigSettingFormItems) {
|
||||
var val = hostChanged
|
||||
var val = hostChanged && !hostIdenticalDespiteAnyChange
|
||||
? additionalSettings[e.key]
|
||||
: settingsProvider.getSettingString(e.key);
|
||||
: additionalSettings[e.key] ??
|
||||
settingsProvider.getSettingString(e.key);
|
||||
if (val != null) {
|
||||
results[e.key] = val;
|
||||
}
|
||||
@@ -813,9 +815,14 @@ class SourceProvider {
|
||||
throw UnsupportedURLError();
|
||||
}
|
||||
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;
|
||||
return srcs.first;
|
||||
if (originalHosts.contains(newHost)) {
|
||||
res.hostIdenticalDespiteAnyChange = true;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
AppSource? source;
|
||||
for (var s in sources.where((element) => element.hosts.isNotEmpty)) {
|
||||
|
104
pubspec.lock
104
pubspec.lock
@@ -87,10 +87,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: args
|
||||
sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a"
|
||||
sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.5.0"
|
||||
version: "2.6.0"
|
||||
async:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -215,10 +215,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: device_info_plus
|
||||
sha256: a7fd703482b391a87d60b6061d04dfdeab07826b96f9abd8f5ed98068acc0074
|
||||
sha256: db03b2d2a3fa466a4627709e1db58692c3f7f658e36a5942d342d86efedc4091
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.1.2"
|
||||
version: "11.0.0"
|
||||
device_info_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -279,10 +279,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: file
|
||||
sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c"
|
||||
sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.0.0"
|
||||
version: "7.0.1"
|
||||
file_picker:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -433,18 +433,18 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_markdown
|
||||
sha256: e17575ca576a34b46c58c91f9948891117a1bd97815d2e661813c7f90c647a78
|
||||
sha256: bd9c475d9aae256369edacafc29d1e74c81f78a10cdcdacbbbc9e3c43d009e4a
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.7.3+2"
|
||||
version: "0.7.4"
|
||||
flutter_plugin_android_lifecycle:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_plugin_android_lifecycle
|
||||
sha256: "9ee02950848f61c4129af3d6ec84a1cfc0e47931abc746b03e7a3bc3e8ff6eda"
|
||||
sha256: "9b78450b89f059e96c9ebb355fa6b3df1d6b330436e0b885fb49594c41721398"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.22"
|
||||
version: "2.0.23"
|
||||
flutter_test:
|
||||
dependency: "direct dev"
|
||||
description: flutter
|
||||
@@ -611,10 +611,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: mime
|
||||
sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a"
|
||||
sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.6"
|
||||
version: "2.0.0"
|
||||
nested:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -651,10 +651,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_android
|
||||
sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7"
|
||||
sha256: c464428172cb986b758c6d1724c603097febb8fb855aa265aeecc9280c294d4a
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.10"
|
||||
version: "2.2.12"
|
||||
path_provider_foundation:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -803,18 +803,18 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: share_plus
|
||||
sha256: "468c43f285207c84bcabf5737f33b914ceb8eb38398b91e5e3ad1698d1b72a52"
|
||||
sha256: fec12c3c39f01e4df1ec6ad92b6e85503c5ca64ffd6e28d18c9ffe53fcc4cb11
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.0.2"
|
||||
version: "10.0.3"
|
||||
share_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: share_plus_platform_interface
|
||||
sha256: "6ababf341050edff57da8b6990f11f4e99eaba837865e2e6defe16d039619db5"
|
||||
sha256: c57c0bbfec7142e3a0f55633be504b796af72e60e3c791b44d5a017b985f7a48
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.0.0"
|
||||
version: "5.0.1"
|
||||
shared_preferences:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@@ -827,18 +827,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_android
|
||||
sha256: "480ba4345773f56acda9abf5f50bd966f581dac5d514e5fc4a18c62976bbba7e"
|
||||
sha256: "3b9febd815c9ca29c9e3520d50ec32f49157711e143b7a4ca039eb87e8ade5ab"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.2"
|
||||
version: "2.3.3"
|
||||
shared_preferences_foundation:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_foundation
|
||||
sha256: c4b35f6cb8f63c147312c054ce7c2254c8066745125264f0c88739c417fc9d9f
|
||||
sha256: "07e050c7cd39bad516f8d64c455f04508d09df104be326d8c02551590a0d513d"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.5.2"
|
||||
version: "2.5.3"
|
||||
shared_preferences_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -913,18 +913,42 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: sqflite
|
||||
sha256: ff5a2436ef8ebdfda748fbfe957f9981524cb5ff11e7bafa8c42771840e8a788
|
||||
sha256: "79a297dc3cc137e758c6a4baf83342b039e5a6d2436fcdf3f96a00adaaf2ad62"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.3+2"
|
||||
version: "2.4.0"
|
||||
sqflite_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: sqflite_android
|
||||
sha256: "78f489aab276260cdd26676d2169446c7ecd3484bbd5fead4ca14f3ed4dd9ee3"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.0"
|
||||
sqflite_common:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: sqflite_common
|
||||
sha256: "2d8e607db72e9cb7748c9c6e739e2c9618320a5517de693d5a24609c4671b1a4"
|
||||
sha256: "4468b24876d673418a7b7147e5a08a715b4998a7ae69227acafaab762e0e5490"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.5.4+4"
|
||||
version: "2.5.4+5"
|
||||
sqflite_darwin:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: sqflite_darwin
|
||||
sha256: "769733dddf94622d5541c73e4ddc6aa7b252d865285914b6fcd54a63c4b4f027"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.1-1"
|
||||
sqflite_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: sqflite_platform_interface
|
||||
sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.0"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -993,18 +1017,18 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: url_launcher
|
||||
sha256: "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3"
|
||||
sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.3.0"
|
||||
version: "6.3.1"
|
||||
url_launcher_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_android
|
||||
sha256: e35a698ac302dd68e41f73250bd9517fe3ab5fa4f18fe4647a0872db61bacbab
|
||||
sha256: "8fc3bae0b68c02c47c5c86fa8bfa74471d42687b0eded01b78de87872db745e2"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.3.10"
|
||||
version: "6.3.12"
|
||||
url_launcher_ios:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1089,18 +1113,18 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: webview_flutter
|
||||
sha256: ec81f57aa1611f8ebecf1d2259da4ef052281cb5ad624131c93546c79ccc7736
|
||||
sha256: "889a0a678e7c793c308c68739996227c9661590605e70b1f6cf6b9a6634f7aec"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.9.0"
|
||||
version: "4.10.0"
|
||||
webview_flutter_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: webview_flutter_android
|
||||
sha256: "6e64fcb1c19d92024da8f33503aaeeda35825d77142c01d0ea2aa32edc79fdc8"
|
||||
sha256: "74693a212d990b32e0b7055d27db973a18abf31c53942063948cdfaaef9787ba"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.16.7"
|
||||
version: "4.0.0"
|
||||
webview_flutter_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1113,18 +1137,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: webview_flutter_wkwebview
|
||||
sha256: "1942a12224ab31e9508cf00c0c6347b931b023b8a4f0811e5dec3b06f94f117d"
|
||||
sha256: d4034901d96357beb1b6717ebf7d583c88e40cfc6eb85fe76dd1bf0979a9f251
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.15.0"
|
||||
version: "3.16.0"
|
||||
win32:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: win32
|
||||
sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a"
|
||||
sha256: e5c39a90447e7c81cfec14b041cdbd0d0916bd9ebbc7fe02ab69568be703b9bd
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.5.4"
|
||||
version: "5.6.0"
|
||||
win32_registry:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1137,10 +1161,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: xdg_directories
|
||||
sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d
|
||||
sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.0.4"
|
||||
version: "1.1.0"
|
||||
xml:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
||||
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
||||
# In Windows, build-name is used as the major, minor, and patch parts
|
||||
# of the product and file versions while build-number is used as the build suffix.
|
||||
version: 1.1.22+2279
|
||||
version: 1.1.27+2284
|
||||
|
||||
environment:
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
@@ -48,7 +48,7 @@ dependencies:
|
||||
url_launcher: ^6.1.5
|
||||
permission_handler: ^11.0.0
|
||||
fluttertoast: ^8.0.9
|
||||
device_info_plus: ^10.0.1
|
||||
device_info_plus: ^11.0.0
|
||||
file_picker: ^8.0.0+1
|
||||
animations: ^2.0.4
|
||||
android_package_installer:
|
||||
|
Reference in New Issue
Block a user