mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-10-31 05:23:28 +01:00 
			
		
		
		
	Compare commits
	
		
			49 Commits
		
	
	
		
			v1.2.0
			...
			7262750124
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 7262750124 | ||
|  | 851c228e76 | ||
|  | aa3b874733 | ||
|  | 04c4f0c291 | ||
|  | 8eedafe4cf | ||
|  | 6d136808e0 | ||
|  | 0f726889c8 | ||
|  | 3e73156f78 | ||
|  | 89d853a948 | ||
|  | 8f9978aadd | ||
|  | 8204a16e90 | ||
|  | 75430573f3 | ||
|  | f71e97f6e2 | ||
|  | 93380f4229 | ||
|  | 6495987248 | ||
|  | 69904265c9 | ||
|  | 85e05b75ee | ||
|  | c5b077e395 | ||
|  | bafd27f1e5 | ||
|  | ae537758aa | ||
|  | 6c995df40a | ||
|  | 14d1c71d7e | ||
|  | e2e6038291 | ||
|  | cb18cd360c | ||
|  | b203934f10 | ||
|  | 64e49a1129 | ||
|  | bc8f4bfe70 | ||
|  | 4f3b517aaf | ||
|  | 71bf23a110 | ||
|  | 544a1d6711 | ||
|  | d43370e7f5 | ||
|  | c3c0525ab6 | ||
|  | 4680401808 | ||
|  | 48a8ebabbb | ||
|  | a3f0805b8e | ||
|  | cdca4f765c | ||
|  | 84a1ec492c | ||
|  | ae69931896 | ||
|  | a6f348c334 | ||
|  | f17d729a2a | ||
|  | dcdf7046a6 | ||
|  | 9ebbb43dc0 | ||
|  | 58c24ec6de | ||
|  | 3636e287fd | ||
|  | f2c80e38dc | ||
|  | 4490da37c9 | ||
|  | e9a24a46c7 | ||
|  | 660fc2b9fe | ||
|  | 6e631684fb | 
							
								
								
									
										2
									
								
								.flutter
									
									
									
									
									
								
							
							
								
								
								
								
								
							
						
						
									
										2
									
								
								.flutter
									
									
									
									
									
								
							 Submodule .flutter updated: fcf2c11572...edada7c56e
									
								
							
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -46,6 +46,8 @@ app.*.map.json | |||||||
| /android/app/profile | /android/app/profile | ||||||
| /android/app/release | /android/app/release | ||||||
| /android/app/.cxx | /android/app/.cxx | ||||||
|  | /android/build/reports | ||||||
|  | /android/.kotlin | ||||||
|  |  | ||||||
| # Custom | # Custom | ||||||
| TODO.txt | TODO.txt | ||||||
|   | |||||||
| @@ -33,6 +33,7 @@ Currently supported App sources: | |||||||
|   - [CoolApk](https://coolapk.com/) |   - [CoolApk](https://coolapk.com/) | ||||||
|   - [vivo App Store (CN)](https://h5.appstore.vivo.com.cn/) |   - [vivo App Store (CN)](https://h5.appstore.vivo.com.cn/) | ||||||
|   - [RuStore](https://rustore.ru/) |   - [RuStore](https://rustore.ru/) | ||||||
|  |   - [Farsroid](https://www.farsroid.com) | ||||||
|   - Jenkins Jobs |   - Jenkins Jobs | ||||||
|   - [APKMirror](https://apkmirror.com/) (Track-Only) |   - [APKMirror](https://apkmirror.com/) (Track-Only) | ||||||
| - Other - App-Specific: | - Other - App-Specific: | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "تعطيل تصحيح الإصدار (يبدو أن الملحق لا يعمل)", |     "versionCorrectionDisabled": "تعطيل تصحيح الإصدار (يبدو أن الملحق لا يعمل)", | ||||||
|     "unknown": "غير معروف", |     "unknown": "غير معروف", | ||||||
|     "none": "لا شيء", |     "none": "لا شيء", | ||||||
|  |     "all": "الكل", | ||||||
|     "never": "أبدًا", |     "never": "أبدًا", | ||||||
|     "latestVersionX": "الأحدث: {}", |     "latestVersionX": "الأحدث: {}", | ||||||
|     "installedVersionX": "المثبت: {}", |     "installedVersionX": "المثبت: {}", | ||||||
| @@ -333,6 +334,7 @@ | |||||||
|     "foregroundService": "الحصول على خدمة الحصول على خدمة المقدمة", |     "foregroundService": "الحصول على خدمة الحصول على خدمة المقدمة", | ||||||
|     "foregroundServiceExplanation": "استخدام خدمة مقدمة للتحقق من التحديثات (أكثر موثوقية وتستهلك طاقة أكبر)", |     "foregroundServiceExplanation": "استخدام خدمة مقدمة للتحقق من التحديثات (أكثر موثوقية وتستهلك طاقة أكبر)", | ||||||
|     "fgServiceNotice": "هذا الإشعار مطلوب للتحقق من التحديث في الخلفية (يمكن إخفاؤه في إعدادات نظام التشغيل)", |     "fgServiceNotice": "هذا الإشعار مطلوب للتحقق من التحديث في الخلفية (يمكن إخفاؤه في إعدادات نظام التشغيل)", | ||||||
|  |     "excludeSecrets": "استبعاد الأسرار", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "إزالة التطبيق؟", |         "one": "إزالة التطبيق؟", | ||||||
|         "other": "إزالة التطبيقات؟" |         "other": "إزالة التطبيقات؟" | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Ispravka verzije je onemogućena (izgleda da plugin ne radi)", |     "versionCorrectionDisabled": "Ispravka verzije je onemogućena (izgleda da plugin ne radi)", | ||||||
|     "unknown": "Nepoznato", |     "unknown": "Nepoznato", | ||||||
|     "none": "Ništa", |     "none": "Ništa", | ||||||
|  |     "all": "All", | ||||||
|     "never": "Nikad", |     "never": "Nikad", | ||||||
|     "latestVersionX": "Najnovija verzija: {}", |     "latestVersionX": "Najnovija verzija: {}", | ||||||
|     "installedVersionX": "Instalirana verzija: {}", |     "installedVersionX": "Instalirana verzija: {}", | ||||||
| @@ -327,12 +328,13 @@ | |||||||
|     "smartname": "Name (Smart)", |     "smartname": "Name (Smart)", | ||||||
|     "sortMethod": "Sort Method", |     "sortMethod": "Sort Method", | ||||||
|     "welcome": "Welcome", |     "welcome": "Welcome", | ||||||
|     "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions and other resources that will help you understand how to use the app.", |     "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions, and other resources that will help you understand how to use the app.", | ||||||
|     "batteryOptimizationNote": "Note that background downloads may work more reliably if you disable OS battery optimizations for Obtainium.", |     "batteryOptimizationNote": "Note that background downloads may work more reliably if you disable OS battery optimizations for Obtainium.", | ||||||
|     "fileDeletionError": "Failed to delete file (try deleting it manually then try again): \"{}\"", |     "fileDeletionError": "Failed to delete file (try deleting it manually then try again): \"{}\"", | ||||||
|     "foregroundService": "Obtainium foreground service", |     "foregroundService": "Obtainium foreground service", | ||||||
|     "foregroundServiceExplanation": "Use a foreground service for update checking (more reliable, consumes more power)", |     "foregroundServiceExplanation": "Use a foreground service for update checking (more reliable, consumes more power)", | ||||||
|     "fgServiceNotice": "This notification is required for background update checking (it can be hidden in the OS settings)", |     "fgServiceNotice": "This notification is required for background update checking (it can be hidden in the OS settings)", | ||||||
|  |     "excludeSecrets": "Exclude secrets", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Želite li ukloniti aplikaciju?", |         "one": "Želite li ukloniti aplikaciju?", | ||||||
|         "other": "Želite li ukloniti aplikacije?" |         "other": "Želite li ukloniti aplikacije?" | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Correcció de versions desactivada (el plugin sembla que no funciona)", |     "versionCorrectionDisabled": "Correcció de versions desactivada (el plugin sembla que no funciona)", | ||||||
|     "unknown": "Desconegut", |     "unknown": "Desconegut", | ||||||
|     "none": "Cap", |     "none": "Cap", | ||||||
|  |     "all": "All", | ||||||
|     "never": "Mai", |     "never": "Mai", | ||||||
|     "latestVersionX": "Última versió: {}", |     "latestVersionX": "Última versió: {}", | ||||||
|     "installedVersionX": "Versió instal·lada: {}", |     "installedVersionX": "Versió instal·lada: {}", | ||||||
| @@ -318,11 +319,11 @@ | |||||||
|     "crowdsourcedConfigsShort": "Configuració de les aplicacions crowdsourcing", |     "crowdsourcedConfigsShort": "Configuració de les aplicacions crowdsourcing", | ||||||
|     "allowInsecure": "Permet les sol·licituds HTTP insegures", |     "allowInsecure": "Permet les sol·licituds HTTP insegures", | ||||||
|     "stayOneVersionBehind": "Roman a la versió anterior a l'última", |     "stayOneVersionBehind": "Roman a la versió anterior a l'última", | ||||||
|     "useFirstApkOfVersion": "Auto-select first of multiple APKs", |     "useFirstApkOfVersion": "Tria automàticament la primera aplicació entre moltes", | ||||||
|     "refreshBeforeDownload": "Actualitza les dades de l'aplicació abans de descarregar-la", |     "refreshBeforeDownload": "Actualitza les dades de l'aplicació abans de descarregar-la", | ||||||
|     "tencentAppStore": "Tencent App Store", |     "tencentAppStore": "Tencent App Store", | ||||||
|     "coolApk": "CoolApk", |     "coolApk": "CoolApk", | ||||||
|     "vivoAppStore": "vivo App Store (CN)", |     "vivoAppStore": "Vivo App Store (CN)", | ||||||
|     "name": "Nom", |     "name": "Nom", | ||||||
|     "smartname": "Nom (smart)", |     "smartname": "Nom (smart)", | ||||||
|     "sortMethod": "Mètode d'ordenació", |     "sortMethod": "Mètode d'ordenació", | ||||||
| @@ -330,9 +331,10 @@ | |||||||
|     "documentationLinksNote": "La pàgina GitHub d'Obtainium enllaçada a sota conté enllaços a vídeos, articles, debats i altres recursos que t'ajudaran a entendre com usar l'aplicació.", |     "documentationLinksNote": "La pàgina GitHub d'Obtainium enllaçada a sota conté enllaços a vídeos, articles, debats i altres recursos que t'ajudaran a entendre com usar l'aplicació.", | ||||||
|     "batteryOptimizationNote": "Tingues present que les descàrregues en segon pla funcionaran millor si inhabilites l'optimització de bateria per a Obtainium.", |     "batteryOptimizationNote": "Tingues present que les descàrregues en segon pla funcionaran millor si inhabilites l'optimització de bateria per a Obtainium.", | ||||||
|     "fileDeletionError": "No s'ha pogut suprimir el fitxer (intenta suprimir-lo manualment i torna-ho a provar): \"{}\"", |     "fileDeletionError": "No s'ha pogut suprimir el fitxer (intenta suprimir-lo manualment i torna-ho a provar): \"{}\"", | ||||||
|     "foregroundService": "Obtainium foreground service", |     "foregroundService": "Servei d'Obtainium en primer pla", | ||||||
|     "foregroundServiceExplanation": "Use a foreground service for update checking (more reliable, consumes more power)", |     "foregroundServiceExplanation": "Usa el servei d'Obtainium en primer pla per comprovar les actualitzacions (és més fiable però consumeix més bateria)", | ||||||
|     "fgServiceNotice": "This notification is required for background update checking (it can be hidden in the OS settings)", |     "fgServiceNotice": "Aquesta notificació és necessària per comprovar les actualitzacions en segon pla (la pots ocultar als paràmetres del Sistema Operatiu)", | ||||||
|  |     "excludeSecrets": "Exclude secrets", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "¿Suprimeixo l'aplicació?", |         "one": "¿Suprimeixo l'aplicació?", | ||||||
|         "other": "¿Suprimeixo les aplicacions?" |         "other": "¿Suprimeixo les aplicacions?" | ||||||
| @@ -358,16 +360,16 @@ | |||||||
|         "other": "{} URLs" |         "other": "{} URLs" | ||||||
|     }, |     }, | ||||||
|     "minute": { |     "minute": { | ||||||
|         "one": "{} Minut", |         "one": "{} minut", | ||||||
|         "other": "{} Minuts" |         "other": "{} minuts" | ||||||
|     }, |     }, | ||||||
|     "hour": { |     "hour": { | ||||||
|         "one": "{} Hora", |         "one": "{} hora", | ||||||
|         "other": "{} Hores" |         "other": "{} hores" | ||||||
|     }, |     }, | ||||||
|     "day": { |     "day": { | ||||||
|         "one": "{} Dia", |         "one": "{} dia", | ||||||
|         "other": "{} Dies" |         "other": "{} dies" | ||||||
|     }, |     }, | ||||||
|     "clearedNLogsBeforeXAfterY": { |     "clearedNLogsBeforeXAfterY": { | ||||||
|         "one": "Suprimit {n} registre (anterior a = {before}, posterior a = {after})", |         "one": "Suprimit {n} registre (anterior a = {before}, posterior a = {after})", | ||||||
|   | |||||||
| @@ -1,5 +1,5 @@ | |||||||
| { | { | ||||||
|     "invalidURLForSource": "Žádná platná {} adresa URL aplikace", |     "invalidURLForSource": "Žádná platná adresa URL aplikace {}", | ||||||
|     "noReleaseFound": "Nebyla nalezena odpovídající verze", |     "noReleaseFound": "Nebyla nalezena odpovídající verze", | ||||||
|     "noVersionFound": "Nelze určit verzi vydání", |     "noVersionFound": "Nelze určit verzi vydání", | ||||||
|     "urlMatchesNoSource": "URL neodpovídá žádnému známému zdroji", |     "urlMatchesNoSource": "URL neodpovídá žádnému známému zdroji", | ||||||
| @@ -7,33 +7,33 @@ | |||||||
|     "appIdMismatch": "ID staženého balíčku neodpovídá ID existující aplikace", |     "appIdMismatch": "ID staženého balíčku neodpovídá ID existující aplikace", | ||||||
|     "functionNotImplemented": "Tato třída nemá implementovánu tuto funkci", |     "functionNotImplemented": "Tato třída nemá implementovánu tuto funkci", | ||||||
|     "placeholder": "Zástupce", |     "placeholder": "Zástupce", | ||||||
|     "someErrors": "Vyskytly se nějaké chyby", |     "someErrors": "Došlo k chybám", | ||||||
|     "unexpectedError": "Neočekávaná chyba", |     "unexpectedError": "Neočekávaná chyba", | ||||||
|     "ok": "Ok", |     "ok": "OK", | ||||||
|     "and": "a", |     "and": "a", | ||||||
|     "githubPATLabel": "GitHub Personal Access Token (zvyšuje limit rychlosti)", |     "githubPATLabel": "Osobní přístupový token GitHub (zvyšuje limit požadavků)", | ||||||
|     "includePrereleases": "Zahrnout předběžné verze", |     "includePrereleases": "Zahrnout předběžná vydání", | ||||||
|     "fallbackToOlderReleases": "Přechod na starší verze", |     "fallbackToOlderReleases": "Přechod na starší verze", | ||||||
|     "filterReleaseTitlesByRegEx": "Filtrovat názvy verzí podle regulárního výrazu", |     "filterReleaseTitlesByRegEx": "Filtrovat názvy verzí podle regulárního výrazu", | ||||||
|     "invalidRegEx": "Neplatný regulární výraz", |     "invalidRegEx": "Neplatný regulární výraz", | ||||||
|     "noDescription": "Žádný popis", |     "noDescription": "Žádný popis", | ||||||
|     "cancel": "Zrušit", |     "cancel": "Zrušit", | ||||||
|     "continue": "Pokračovat", |     "continue": "Pokračovat", | ||||||
|     "requiredInBrackets": "(Požadované)", |     "requiredInBrackets": "(vyžadováno)", | ||||||
|     "dropdownNoOptsError": "ERROR: DROPDOWN MUSÍ MÍT AŽ JEDNU MOŽNOST", |     "dropdownNoOptsError": "CHYBA: ROZBALOVACÍ NABÍDKA MUSÍ MÍT ALESPOŇ JEDNU MOŽNOST", | ||||||
|     "colour": "Barva", |     "colour": "Barvu", | ||||||
|     "standard": "Standardní", |     "standard": "Standardní", | ||||||
|     "custom": "Vlastní", |     "custom": "Vlastní", | ||||||
|     "useMaterialYou": "Použijte materiál, který jste", |     "useMaterialYou": "Použít Material You", | ||||||
|     "githubStarredRepos": "GitHub označená hvězdičkou", |     "githubStarredRepos": "Repozitáře na GitHubu označené hvězdičkou", | ||||||
|     "uname": "Uživatelské jméno", |     "uname": "Uživatelské jméno", | ||||||
|     "wrongArgNum": "Nesprávný počet zadaných argumentů", |     "wrongArgNum": "Nesprávný počet zadaných argumentů", | ||||||
|     "xIsTrackOnly": "{} je určeno pouze pro sledování", |     "xIsTrackOnly": "{} je určeno pouze pro sledování", | ||||||
|     "source": "Zdroj", |     "source": "Zdroj", | ||||||
|     "app": "Aplikace", |     "app": "Aplikace", | ||||||
|     "appsFromSourceAreTrackOnly": "Aplikace z tohoto zdroje jsou Jen sledovány.", |     "appsFromSourceAreTrackOnly": "Aplikace z tohoto zdroje jsou „pouze pro sledování“.", | ||||||
|     "youPickedTrackOnly": "Vybrali jste možnost Jen sledovat.", |     "youPickedTrackOnly": "Vybrali jste možnost „pouze sledovat“.", | ||||||
|     "trackOnlyAppDescription": "Aplikace je sledována kvůli aktualizacím, ale Obtainium ji nebude stahovat ani instalovat.", |     "trackOnlyAppDescription": "Aplikace bude sledována kvůli aktualizacím, ale Obtainium ji nebude stahovat ani instalovat.", | ||||||
|     "cancelled": "Zrušeno", |     "cancelled": "Zrušeno", | ||||||
|     "appAlreadyAdded": "Aplikace již přidána", |     "appAlreadyAdded": "Aplikace již přidána", | ||||||
|     "alreadyUpToDateQuestion": "Aplikace je již aktualizovaná?", |     "alreadyUpToDateQuestion": "Aplikace je již aktualizovaná?", | ||||||
| @@ -45,9 +45,9 @@ | |||||||
|     "search": "Hledat", |     "search": "Hledat", | ||||||
|     "additionalOptsFor": "Další možnosti pro {}", |     "additionalOptsFor": "Další možnosti pro {}", | ||||||
|     "supportedSources": "Podporované zdroje", |     "supportedSources": "Podporované zdroje", | ||||||
|     "trackOnlyInBrackets": "(Pouze stopy)", |     "trackOnlyInBrackets": "(pouze sledování)", | ||||||
|     "searchableInBrackets": "(s možností vyhledávání)", |     "searchableInBrackets": "(s možností vyhledávání)", | ||||||
|     "appsString": "Apky", |     "appsString": "Aplikace", | ||||||
|     "noApps": "Žádné aplikace", |     "noApps": "Žádné aplikace", | ||||||
|     "noAppsForFilter": "Žádné aplikace pro vybraný filtr", |     "noAppsForFilter": "Žádné aplikace pro vybraný filtr", | ||||||
|     "byX": "Od {}", |     "byX": "Od {}", | ||||||
| @@ -57,73 +57,73 @@ | |||||||
|     "notInstalled": "Není nainstalováno", |     "notInstalled": "Není nainstalováno", | ||||||
|     "pseudoVersion": "pseudoverze", |     "pseudoVersion": "pseudoverze", | ||||||
|     "selectAll": "Vybrat vše", |     "selectAll": "Vybrat vše", | ||||||
|     "deselectX": "{} deselected", |     "deselectX": "Zrušit výběr {}", | ||||||
|     "xWillBeRemovedButRemainInstalled": "{} bude odstraněn z Obtainium, ale zůstane nainstalován v zařízení.", |     "xWillBeRemovedButRemainInstalled": "Aplikace {} bude odstraněna z aplikace Obtainium, ale zůstane nainstalována v zařízení.", | ||||||
|     "removeSelectedAppsQuestion": "Odebrat vybrané aplikace?", |     "removeSelectedAppsQuestion": "Odstranit vybrané aplikace?", | ||||||
|     "removeSelectedApps": "Odebrat vybrané aplikace", |     "removeSelectedApps": "Odstranit vybrané aplikace", | ||||||
|     "updateX": "Aktualizovat {}", |     "updateX": "Aktualizovat {}", | ||||||
|     "installX": "Instalovat {}", |     "installX": "Instalovat {}", | ||||||
|     "markXTrackOnlyAsUpdated": "Označit {}\n(Jen sledované)\njako aktualizované", |     "markXTrackOnlyAsUpdated": "Označit aplikaci {}\n(pouze sledování)\njako aktualizovanou", | ||||||
|     "changeX": "Změnit {}", |     "changeX": "Změnit {}", | ||||||
|     "installUpdateApps": "Instalovat/aktualizovat aplikace", |     "installUpdateApps": "Instalovat/aktualizovat aplikace", | ||||||
|     "installUpdateSelectedApps": "Instalovat/aktualizovat vybrané aplikace", |     "installUpdateSelectedApps": "Instalovat/aktualizovat vybrané aplikace", | ||||||
|     "markXSelectedAppsAsUpdated": "Označit {} vybrané aplikace jako aktuální?", |     "markXSelectedAppsAsUpdated": "Označit {} vybraných aplikací jako aktuální?", | ||||||
|     "no": "Ne", |     "no": "Ne", | ||||||
|     "yes": "Ano", |     "yes": "Ano", | ||||||
|     "markSelectedAppsUpdated": "Označit vybrané aplikace jako aktuální", |     "markSelectedAppsUpdated": "Označit vybrané aplikace jako aktuální", | ||||||
|     "pinToTop": "Připnout nahoru", |     "pinToTop": "Připnout nahoru", | ||||||
|     "unpinFromTop": "Odepnout shora", |     "unpinFromTop": "Odepnout shora", | ||||||
|     "resetInstallStatusForSelectedAppsQuestion": "Obnovit stav instalace vybraných aplikací?", |     "resetInstallStatusForSelectedAppsQuestion": "Obnovit stav instalace vybraných aplikací?", | ||||||
|     "installStatusOfXWillBeResetExplanation": "Stav instalace vybraných aplikací bude resetován. To může být užitečné, pokud je verze aplikace zobrazená v Obtainium nesprávná z důvodu neúspěšných aktualizací nebo jiných problémů.", |     "installStatusOfXWillBeResetExplanation": "Stav instalace vybraných aplikací bude resetován.\n\nTo může být užitečné, pokud je verze aplikace zobrazená v aplikaci Obtainium nesprávná z důvodu neúspěšných aktualizací nebo jiných problémů.", | ||||||
|     "customLinkMessage": "Tyto odkazy fungují na zařízeních s nainstalovaným Obtainium", |     "customLinkMessage": "Tyto odkazy fungují na zařízeních s nainstalovaným Obtainium", | ||||||
|     "shareAppConfigLinks": "Sdílet konfiguraci aplikace jako odkaz HTML", |     "shareAppConfigLinks": "Sdílet konfiguraci aplikace jako odkaz HTML", | ||||||
|     "shareSelectedAppURLs": "Sdílet adresy URL vybraných aplikací", |     "shareSelectedAppURLs": "Sdílet adresy URL vybraných aplikací", | ||||||
|     "resetInstallStatus": "Obnovit stav instalace", |     "resetInstallStatus": "Obnovit stav instalace", | ||||||
|     "more": "Více", |     "more": "Více", | ||||||
|     "removeOutdatedFilter": "Odstranit filtr Neaktuální", |     "removeOutdatedFilter": "Odstranit filtr neaktuálních aplikací", | ||||||
|     "showOutdatedOnly": "Zobrazovat pouze zastaralé aplikace", |     "showOutdatedOnly": "Zobrazovat pouze zastaralé aplikace", | ||||||
|     "filter": "Filtr", |     "filter": "Filtr", | ||||||
|     "filterApps": "Filtrovat aplikace", |     "filterApps": "Filtrovat aplikace", | ||||||
|     "appName": "Název aplikace", |     "appName": "Název aplikace", | ||||||
|     "author": "Autor", |     "author": "Autor", | ||||||
|     "upToDateApps": "Aktuální apky", |     "upToDateApps": "Aktuální aplikace", | ||||||
|     "nonInstalledApps": "Neinstalované apky", |     "nonInstalledApps": "Nenainstalované aplikace", | ||||||
|     "importExport": "Import Export", |     "importExport": "Import/export", | ||||||
|     "settings": "Nastavení", |     "settings": "Nastavení", | ||||||
|     "exportedTo": "Exportováno do {}", |     "exportedTo": "Exportováno do {}", | ||||||
|     "obtainiumExport": "Export obtainia", |     "obtainiumExport": "Export aplikace Obtainium", | ||||||
|     "invalidInput": "Neplatný vstup", |     "invalidInput": "Neplatný vstup", | ||||||
|     "importedX": "Importováno {}", |     "importedX": "Importováno {}", | ||||||
|     "obtainiumImport": "Dovoz obtainia", |     "obtainiumImport": "Import aplikace Obtainium", | ||||||
|     "importFromURLList": "Import ze seznamu URL", |     "importFromURLList": "Importovat ze seznamu adres", | ||||||
|     "searchQuery": "Vyhledávací dotaz", |     "searchQuery": "Vyhledávací dotaz", | ||||||
|     "appURLList": "Seznam adres aplikací", |     "appURLList": "Seznam adres aplikací", | ||||||
|     "line": "Linka", |     "line": "Linka", | ||||||
|     "searchX": "Vyhledávání {}", |     "searchX": "Vyhledávání {}", | ||||||
|     "noResults": "Nebyly nalezeny žádné výsledky", |     "noResults": "Nebyly nalezeny žádné výsledky", | ||||||
|     "importX": "Import {}", |     "importX": "Importovat {}", | ||||||
|     "importedAppsIdDisclaimer": "Importované aplikace mohou být nesprávně zobrazeny jako \"Neinstalovány\". Chcete-li to opravit, nainstalujte je znovu prostřednictvím Obtainium. To nemá vliv na data aplikací. Ovlivňuje pouze metody importu URL a třetích stran.", |     "importedAppsIdDisclaimer": "Importované aplikace mohou být nesprávně zobrazeny jako „nenainstalované“.\nChcete-li to opravit, nainstalujte je znovu prostřednictvím aplikace Obtainium.\nNemá vliv na data aplikací.\n\nOvlivňuje pouze způsoby importu URL a třetích stran.", | ||||||
|     "importErrors": "Chyba importu", |     "importErrors": "Chyba importu", | ||||||
|     "importedXOfYApps": "{}importováno z {} aplikací.", |     "importedXOfYApps": "Importováno {} z {} aplikací.", | ||||||
|     "followingURLsHadErrors": "U následujících adres došlo k chybám:", |     "followingURLsHadErrors": "U následujících adres došlo k chybám:", | ||||||
|     "selectURL": "Vybrat adresu", |     "selectURL": "Vybrat adresu", | ||||||
|     "selectURLs": "Select adresy", |     "selectURLs": "Select adresy", | ||||||
|     "pick": "Vybrat", |     "pick": "Vybrat", | ||||||
|     "theme": "Téma", |     "theme": "Motiv", | ||||||
|     "dark": "Tmavé", |     "dark": "Tmavé", | ||||||
|     "light": "Světlé", |     "light": "Světlé", | ||||||
|     "followSystem": "Jako systém", |     "followSystem": "Podle systému", | ||||||
|     "followSystemThemeExplanation": "Sledování motivu systému je možné pouze pomocí aplikací třetích stran.", |     "followSystemThemeExplanation": "Používání motivu systému je možné pouze pomocí aplikací třetích stran", | ||||||
|     "useBlackTheme": "Použít čistě černé tmavé téma", |     "useBlackTheme": "Použít čistě černý tmavý motiv", | ||||||
|     "appSortBy": "Seřadit podle", |     "appSortBy": "Seřadit podle", | ||||||
|     "authorName": "Autor/Jméno", |     "authorName": "Autor/jméno", | ||||||
|     "nameAuthor": "Jméno/Autor", |     "nameAuthor": "Jméno/autor", | ||||||
|     "asAdded": "Přidáno", |     "asAdded": "Přidáno", | ||||||
|     "appSortOrder": "Seřadit", |     "appSortOrder": "Seřadit", | ||||||
|     "ascending": "Vzestupně", |     "ascending": "Vzestupně", | ||||||
|     "descending": "Sestupně", |     "descending": "Sestupně", | ||||||
|     "bgUpdateCheckInterval": "Interval kontroly aktualizace na pozadí", |     "bgUpdateCheckInterval": "Interval kontroly aktualizace na pozadí", | ||||||
|     "neverManualOnly": "Nikdy - pouze ručně", |     "neverManualOnly": "Nikdy – pouze ručně", | ||||||
|     "appearance": "Vzhled", |     "appearance": "Vzhled", | ||||||
|     "showWebInAppView": "Zobrazit zdrojové webové stránky v zobrazení aplikace", |     "showWebInAppView": "Zobrazit zdrojové webové stránky v zobrazení aplikace", | ||||||
|     "pinUpdates": "Připnout aplikace s aktualizacemi nahoru", |     "pinUpdates": "Připnout aplikace s aktualizacemi nahoru", | ||||||
| @@ -131,7 +131,7 @@ | |||||||
|     "sourceSpecific": "Specifické pro zdroj", |     "sourceSpecific": "Specifické pro zdroj", | ||||||
|     "appSource": "Zdroj aplikace", |     "appSource": "Zdroj aplikace", | ||||||
|     "noLogs": "Žádné protokoly", |     "noLogs": "Žádné protokoly", | ||||||
|     "appLogs": "Záznamy apky", |     "appLogs": "Protokoly aplikace", | ||||||
|     "close": "Zavřít", |     "close": "Zavřít", | ||||||
|     "share": "Sdílet", |     "share": "Sdílet", | ||||||
|     "appNotFound": "Aplikace nenalezena", |     "appNotFound": "Aplikace nenalezena", | ||||||
| @@ -141,7 +141,7 @@ | |||||||
|     "deviceSupportsXArch": "Vaše zařízení podporuje architekturu CPU {}.", |     "deviceSupportsXArch": "Vaše zařízení podporuje architekturu CPU {}.", | ||||||
|     "deviceSupportsFollowingArchs": "Vaše zařízení podporuje následující architektury CPU:", |     "deviceSupportsFollowingArchs": "Vaše zařízení podporuje následující architektury CPU:", | ||||||
|     "warning": "Varování", |     "warning": "Varování", | ||||||
|     "sourceIsXButPackageFromYPrompt": "Zdroj aplikace je '{}', ale balíček pro vydání je z '{}'. Pokračovat?", |     "sourceIsXButPackageFromYPrompt": "Zdroj aplikace je „{}“, ale balíček pro vydání pochází z „{}“. Pokračovat?", | ||||||
|     "updatesAvailable": "Dostupné aktualizace", |     "updatesAvailable": "Dostupné aktualizace", | ||||||
|     "updatesAvailableNotifDescription": "Upozorňuje uživatele, že jsou k dispozici aktualizace pro jednu nebo více aplikací sledovaných Obtainium", |     "updatesAvailableNotifDescription": "Upozorňuje uživatele, že jsou k dispozici aktualizace pro jednu nebo více aplikací sledovaných Obtainium", | ||||||
|     "noNewUpdates": "Žádné nové aktualizace.", |     "noNewUpdates": "Žádné nové aktualizace.", | ||||||
| @@ -149,7 +149,7 @@ | |||||||
|     "appsUpdated": "Aplikace aktualizovány", |     "appsUpdated": "Aplikace aktualizovány", | ||||||
|     "appsNotUpdated": "Nepodařilo se aktualizovat aplikace", |     "appsNotUpdated": "Nepodařilo se aktualizovat aplikace", | ||||||
|     "appsUpdatedNotifDescription": "Upozornit, že byly provedeny aktualizace jedné nebo více aplikací na pozadí", |     "appsUpdatedNotifDescription": "Upozornit, že byly provedeny aktualizace jedné nebo více aplikací na pozadí", | ||||||
|     "xWasUpdatedToY": "{} byla aktualizována na {}", |     "xWasUpdatedToY": "Aplikace {} byla aktualizována na {}.", | ||||||
|     "xWasNotUpdatedToY": "Nepodařilo se aktualizovat {} na {}.", |     "xWasNotUpdatedToY": "Nepodařilo se aktualizovat {} na {}.", | ||||||
|     "errorCheckingUpdates": "Chyba kontroly aktualizací", |     "errorCheckingUpdates": "Chyba kontroly aktualizací", | ||||||
|     "errorCheckingUpdatesNotifDescription": "Zobrazit oznámení při neúspěšné kontrole aktualizací na pozadí", |     "errorCheckingUpdatesNotifDescription": "Zobrazit oznámení při neúspěšné kontrole aktualizací na pozadí", | ||||||
| @@ -161,25 +161,26 @@ | |||||||
|     "completeAppInstallationNotifDescription": "Vyzvat k návratu do Obtainium pro dokončení instalace aplikací", |     "completeAppInstallationNotifDescription": "Vyzvat k návratu do Obtainium pro dokončení instalace aplikací", | ||||||
|     "checkingForUpdates": "Zkontrolovat aktualizace", |     "checkingForUpdates": "Zkontrolovat aktualizace", | ||||||
|     "checkingForUpdatesNotifDescription": "Dočasné oznámení zobrazené při kontrole aktualizací", |     "checkingForUpdatesNotifDescription": "Dočasné oznámení zobrazené při kontrole aktualizací", | ||||||
|     "pleaseAllowInstallPerm": "Povolte prosím Obtainium instalovat aplikace", |     "pleaseAllowInstallPerm": "Povolte prosím aplikaci Obtainium instalovat aplikace", | ||||||
|     "trackOnly": "Jen sledovat", |     "trackOnly": "Pouze sledovat", | ||||||
|     "errorWithHttpStatusCode": "Chyba {}", |     "errorWithHttpStatusCode": "Chyba {}", | ||||||
|     "versionCorrectionDisabled": "Oprava verze zakázána (zásuvný modul zřejmě nefunguje)", |     "versionCorrectionDisabled": "Oprava verze zakázána (zásuvný modul zřejmě nefunguje)", | ||||||
|     "unknown": "Neznám", |     "unknown": "Neznám", | ||||||
|     "none": "Žádný", |     "none": "Žádný", | ||||||
|  |     "all": "Všechny", | ||||||
|     "never": "Nikdy", |     "never": "Nikdy", | ||||||
|     "latestVersionX": "Nejnovější verze: {}", |     "latestVersionX": "Nejnovější verze: {}", | ||||||
|     "installedVersionX": "Nainstalovaná verze: {}", |     "installedVersionX": "Nainstalovaná verze: {}", | ||||||
|     "lastUpdateCheckX": "Poslední kontrola aktualizace: {}", |     "lastUpdateCheckX": "Poslední kontrola aktualizací: {}", | ||||||
|     "remove": "Odebrat", |     "remove": "Odebrat", | ||||||
|     "yesMarkUpdated": "Ano, označit jako aktualizované", |     "yesMarkUpdated": "Ano, označit jako aktualizované", | ||||||
|     "fdroid": "Oficiální repozitář F-Droid", |     "fdroid": "Oficiální repozitář F-Droid", | ||||||
|     "appIdOrName": "ID nebo název apky", |     "appIdOrName": "ID nebo název aplikace", | ||||||
|     "appId": "ID aplikace", |     "appId": "ID aplikace", | ||||||
|     "appWithIdOrNameNotFound": "Žádná aplikace s tímto ID nebo názvem nebyla nalezena", |     "appWithIdOrNameNotFound": "Žádná aplikace s tímto ID nebo názvem nebyla nalezena", | ||||||
|     "reposHaveMultipleApps": "Repozitáře mohou obsahovat více aplikací", |     "reposHaveMultipleApps": "Repozitáře mohou obsahovat více aplikací", | ||||||
|     "fdroidThirdPartyRepo": "F-Droid repozitář třetí strany", |     "fdroidThirdPartyRepo": "F-Droid repozitář třetí strany", | ||||||
|     "install": "Nainstalujte", |     "install": "Instalovat", | ||||||
|     "markInstalled": "Označit jako nainstalovaný", |     "markInstalled": "Označit jako nainstalovaný", | ||||||
|     "update": "Aktualizovat", |     "update": "Aktualizovat", | ||||||
|     "markUpdated": "Označit jako aktuální", |     "markUpdated": "Označit jako aktuální", | ||||||
| @@ -189,7 +190,7 @@ | |||||||
|     "downloadingX": "Stáhnout {}", |     "downloadingX": "Stáhnout {}", | ||||||
|     "downloadX": "Stáhnout {}", |     "downloadX": "Stáhnout {}", | ||||||
|     "downloadedX": "Staženo {}", |     "downloadedX": "Staženo {}", | ||||||
|     "releaseAsset": "Vydání aktiva", |     "releaseAsset": "Soubor vydání", | ||||||
|     "downloadNotifDescription": "Informuje uživatele o průběhu stahování aplikace", |     "downloadNotifDescription": "Informuje uživatele o průběhu stahování aplikace", | ||||||
|     "noAPKFound": "Žádná APK nebyla nalezena", |     "noAPKFound": "Žádná APK nebyla nalezena", | ||||||
|     "noVersionDetection": "Žádná detekce verze", |     "noVersionDetection": "Žádná detekce verze", | ||||||
| @@ -201,17 +202,17 @@ | |||||||
|     "deleteCategoriesQuestion": "Smazat kategorie?", |     "deleteCategoriesQuestion": "Smazat kategorie?", | ||||||
|     "categoryDeleteWarning": "Všechny aplikace v odstraněných kategoriích budou nastaveny na nekategorizované.", |     "categoryDeleteWarning": "Všechny aplikace v odstraněných kategoriích budou nastaveny na nekategorizované.", | ||||||
|     "addCategory": "Přidat kategorii", |     "addCategory": "Přidat kategorii", | ||||||
|     "label": "Štítek", |     "label": "Popisek", | ||||||
|     "language": "Jazyk", |     "language": "Jazyk", | ||||||
|     "copiedToClipboard": "Zkopírováno do schránky", |     "copiedToClipboard": "Zkopírováno do schránky", | ||||||
|     "storagePermissionDenied": "Oprávnění k ukládání odepřeno", |     "storagePermissionDenied": "Oprávnění k ukládání odepřeno", | ||||||
|     "selectedCategorizeWarning": "Toto nahradí všechna stávající nastavení kategorií pro vybrané aplikace.", |     "selectedCategorizeWarning": "Toto nahradí všechna stávající nastavení kategorií pro vybrané aplikace.", | ||||||
|     "filterAPKsByRegEx": "Filtrovat APK podle regulárního výrazu", |     "filterAPKsByRegEx": "Filtrovat APK podle regulárního výrazu", | ||||||
|     "removeFromObtainium": "Odebrat z Obtainium", |     "removeFromObtainium": "Odebrat z Obtainia", | ||||||
|     "uninstallFromDevice": "Odinstalovat ze zařízení", |     "uninstallFromDevice": "Odinstalovat ze zařízení", | ||||||
|     "onlyWorksWithNonVersionDetectApps": "Funguje pouze pro aplikace s vypnutou detekcí verze.", |     "onlyWorksWithNonVersionDetectApps": "Funguje pouze pro aplikace s vypnutou detekcí verze.", | ||||||
|     "releaseDateAsVersion": "Použít datum vydání jako verzi", |     "releaseDateAsVersion": "Použít datum vydání jako verzi", | ||||||
|     "releaseTitleAsVersion": "Použít název verze jako řetězec verze", |     "releaseTitleAsVersion": "Použít název vydání jako řetězec verze", | ||||||
|     "releaseDateAsVersionExplanation": "Tato možnost by měla být použita pouze u aplikace, kde detekce verzí nefunguje správně, ale je k dispozici datum vydání.", |     "releaseDateAsVersionExplanation": "Tato možnost by měla být použita pouze u aplikace, kde detekce verzí nefunguje správně, ale je k dispozici datum vydání.", | ||||||
|     "changes": "Změny", |     "changes": "Změny", | ||||||
|     "releaseDate": "Datum vydání", |     "releaseDate": "Datum vydání", | ||||||
| @@ -221,16 +222,16 @@ | |||||||
|     "standardVersionDetection": "Standardní detekce verze", |     "standardVersionDetection": "Standardní detekce verze", | ||||||
|     "groupByCategory": "Seskupit podle kategorie", |     "groupByCategory": "Seskupit podle kategorie", | ||||||
|     "autoApkFilterByArch": "Pokud je to možné, pokuste se filtrovat soubory APK podle architektury procesoru", |     "autoApkFilterByArch": "Pokud je to možné, pokuste se filtrovat soubory APK podle architektury procesoru", | ||||||
|     "autoLinkFilterByArch": "Pokus o filtrování odkazů podle architektury procesoru, pokud je to možné.", |     "autoLinkFilterByArch": "Pokusit se filtrovat odkazy podle architektury procesoru, pokud je to možné", | ||||||
|     "overrideSource": "Přepsat zdroj", |     "overrideSource": "Přepsat zdroj", | ||||||
|     "dontShowAgain": "Nezobrazovat znovu", |     "dontShowAgain": "Nezobrazovat znovu", | ||||||
|     "dontShowTrackOnlyWarnings": "Nezobrazovat varování pro 'Jen sledované'", |     "dontShowTrackOnlyWarnings": "Nezobrazovat varování pro „pouze sledované“", | ||||||
|     "dontShowAPKOriginWarnings": "Nezobrazovat varování pro původ APK", |     "dontShowAPKOriginWarnings": "Nezobrazovat varování o původu APK", | ||||||
|     "moveNonInstalledAppsToBottom": "Přesunout nenainstalované aplikace na konec zobrazení Aplikace", |     "moveNonInstalledAppsToBottom": "Přesunout nenainstalované aplikace na konec zobrazení Aplikace", | ||||||
|     "gitlabPATLabel": "Osobní přístupový token GitLab", |     "gitlabPATLabel": "Osobní přístupový token GitLab", | ||||||
|     "about": "O", |     "about": "Informace", | ||||||
|     "requiresCredentialsInSettings": "{}: Vyžaduje další pověření (v nastavení)", |     "requiresCredentialsInSettings": "{} vyžaduje další pověření (v nastavení)", | ||||||
|     "checkOnStart": "Zkontrolovat jednou při spuštění", |     "checkOnStart": "Zkontrolovat aktualizace při spuštění", | ||||||
|     "tryInferAppIdFromCode": "Pokusit se určit ID aplikace ze zdrojového kódu", |     "tryInferAppIdFromCode": "Pokusit se určit ID aplikace ze zdrojového kódu", | ||||||
|     "removeOnExternalUninstall": "Automaticky odstranit externě odinstalované aplikace", |     "removeOnExternalUninstall": "Automaticky odstranit externě odinstalované aplikace", | ||||||
|     "pickHighestVersionCode": "Automaticky vybrat nejvyšší verzi APK", |     "pickHighestVersionCode": "Automaticky vybrat nejvyšší verzi APK", | ||||||
| @@ -240,28 +241,28 @@ | |||||||
|     "minStarCount": "Minimální počet hvězdiček", |     "minStarCount": "Minimální počet hvězdiček", | ||||||
|     "addInfoBelow": "Přidat tuto informaci na konec stránky.", |     "addInfoBelow": "Přidat tuto informaci na konec stránky.", | ||||||
|     "addInfoInSettings": "Přidat tuto informaci do nastavení.", |     "addInfoInSettings": "Přidat tuto informaci do nastavení.", | ||||||
|     "githubSourceNote": "Omezení rychlosti GitHub lze obejít pomocí klíče API.", |     "githubSourceNote": "Limit požadavků služby GitHub lze obejít pomocí klíče API.", | ||||||
|     "sortByLastLinkSegment": "Seřadit pouze podle poslední části odkazu", |     "sortByLastLinkSegment": "Seřadit pouze podle poslední části odkazu", | ||||||
|     "filterReleaseNotesByRegEx": "Filtrovat poznámky k vydání podle regulárního výrazu", |     "filterReleaseNotesByRegEx": "Filtrovat seznam změn podle regulárního výrazu", | ||||||
|     "customLinkFilterRegex": "Vlastní filtr odkazů APK podle regulárního výrazu (výchozí '.apk$')", |     "customLinkFilterRegex": "Vlastní filtr odkazů APK podle regulárního výrazu (výchozí: „.apk$“)", | ||||||
|     "appsPossiblyUpdated": "Byly provedeny pokusy o aktualizaci aplikací", |     "appsPossiblyUpdated": "Byly provedeny pokusy o aktualizaci aplikací", | ||||||
|     "appsPossiblyUpdatedNotifDescription": "Upozorňuje uživatele, že na pozadí mohly být provedeny aktualizace jedné nebo více aplikací", |     "appsPossiblyUpdatedNotifDescription": "Upozorňuje uživatele, že na pozadí mohly být provedeny aktualizace jedné nebo více aplikací", | ||||||
|     "xWasPossiblyUpdatedToY": "{} mohlo být aktualizováno na {}.", |     "xWasPossiblyUpdatedToY": "{} mohlo být aktualizováno na {}.", | ||||||
|     "enableBackgroundUpdates": "Povolit aktualizace na pozadí", |     "enableBackgroundUpdates": "Povolit aktualizace na pozadí", | ||||||
|     "backgroundUpdateReqsExplanation": "Aktualizace na pozadí nemusí být možná pro všechny aplikace.", |     "backgroundUpdateReqsExplanation": "Aktualizace na pozadí nemusí být možná pro všechny aplikace.", | ||||||
|     "backgroundUpdateLimitsExplanation": "Úspěšnost instalace na pozadí lze určit pouze v případě, že je otevřeno Obtainium.", |     "backgroundUpdateLimitsExplanation": "Úspěšnost instalace na pozadí lze určit pouze v případě, že je otevřeno Obtainium.", | ||||||
|     "verifyLatestTag": "Zkontrolovat značku latest", |     "verifyLatestTag": "Ověřit značku „latest“", | ||||||
|     "intermediateLinkRegex": "Filtrovat mezipropojení, které by mělo být navštíveno jako první", |     "intermediateLinkRegex": "Filtr pro návštěvu „prostředního“ odkazu", | ||||||
|     "filterByLinkText": "Filtrovat odkazy podle textu odkazu", |     "filterByLinkText": "Filtrovat odkazy podle textu odkazu", | ||||||
|     "intermediateLinkNotFound": "Připojený odkaz nenalezen", |     "intermediateLinkNotFound": "Připojený odkaz nenalezen", | ||||||
|     "intermediateLink": "Připojený odkaz", |     "intermediateLink": "Připojený odkaz", | ||||||
|     "exemptFromBackgroundUpdates": "Vyloučit z aktualizací na pozadí (je-li povoleno)", |     "exemptFromBackgroundUpdates": "Vyloučit z aktualizací na pozadí (je-li povoleno)", | ||||||
|     "bgUpdatesOnWiFiOnly": "Deaktivovat aktualizace na pozadí, pokud není k dispozici Wi-Fi", |     "bgUpdatesOnWiFiOnly": "Zakázat aktualizace na pozadí, pokud není k dispozici Wi-Fi", | ||||||
|     "bgUpdatesWhileChargingOnly": "Zakázat aktualizace na pozadí, když se nenabíjí", |     "bgUpdatesWhileChargingOnly": "Zakázat aktualizace na pozadí, pokud se zařízení nenabíjí", | ||||||
|     "autoSelectHighestVersionCode": "Automaticky vybrat nejvyšší verzi APK", |     "autoSelectHighestVersionCode": "Automaticky vybrat APK s nejvyšším kódem verze", | ||||||
|     "versionExtractionRegEx": "Extrakce verze pomocí RegEx", |     "versionExtractionRegEx": "Extrakce verze pomocí RegEx", | ||||||
|     "trimVersionString": "Oříznutí řetězce verze pomocí příkazu RegEx", |     "trimVersionString": "Oříznutí řetězce verze pomocí RegEx", | ||||||
|     "matchGroupToUseForX": "Skupina shody, která se použije pro \"{}\"", |     "matchGroupToUseForX": "Shoda se skupinou k použití pro „{}“", | ||||||
|     "matchGroupToUse": "Odpovídá použité skupině", |     "matchGroupToUse": "Odpovídá použité skupině", | ||||||
|     "highlightTouchTargets": "Zvýraznit méně zjevné cíle dotyku", |     "highlightTouchTargets": "Zvýraznit méně zjevné cíle dotyku", | ||||||
|     "pickExportDir": "Vybrat adresář pro export", |     "pickExportDir": "Vybrat adresář pro export", | ||||||
| @@ -280,114 +281,128 @@ | |||||||
|     "installing": "Instaluji", |     "installing": "Instaluji", | ||||||
|     "skipUpdateNotifications": "Neposkytovat oznámení o aktualizaci", |     "skipUpdateNotifications": "Neposkytovat oznámení o aktualizaci", | ||||||
|     "updatesAvailableNotifChannel": "Dostupné aktualizace", |     "updatesAvailableNotifChannel": "Dostupné aktualizace", | ||||||
|     "appsUpdatedNotifChannel": "Apky aktualizovány", |     "appsUpdatedNotifChannel": "Aplikace aktualizovány", | ||||||
|     "appsPossiblyUpdatedNotifChannel": "Byly provedeny pokusy o aktualizace aplikací", |     "appsPossiblyUpdatedNotifChannel": "Byly provedeny pokusy o aktualizace aplikací", | ||||||
|     "errorCheckingUpdatesNotifChannel": "Chyba při kontrole aktualizací", |     "errorCheckingUpdatesNotifChannel": "Chyba při kontrole aktualizací", | ||||||
|     "appsRemovedNotifChannel": "Odstraněné apky", |     "appsRemovedNotifChannel": "Aplikace odstraněny", | ||||||
|     "downloadingXNotifChannel": "Stáhnout {}", |     "downloadingXNotifChannel": "Stáhnout {}", | ||||||
|     "completeAppInstallationNotifChannel": "Dokončit instalaci aplikace", |     "completeAppInstallationNotifChannel": "Dokončit instalaci aplikace", | ||||||
|     "checkingForUpdatesNotifChannel": "Zkontrolovat aktualizace", |     "checkingForUpdatesNotifChannel": "Zkontrolovat aktualizace", | ||||||
|     "onlyCheckInstalledOrTrackOnlyApps": "Na aktualizace kontrolovat pouze nainstalované aplikace a aplikace označené Track only", |     "onlyCheckInstalledOrTrackOnlyApps": "Aktualizace kontrolovat pouze u nainstalovaných a sledovaných aplikací", | ||||||
|     "supportFixedAPKURL": "Odhadnout novější verzi na základě prvních třiceti číslic kontrolního součtu adresy URL APK, pokud není podporována jinak", |     "supportFixedAPKURL": "Odhadnout novější verzi na základě prvních třiceti číslic kontrolního součtu adresy URL APK, pokud není podporována jinak", | ||||||
|     "selectX": "Vybrat {}", |     "selectX": "Vybrat {}", | ||||||
|     "parallelDownloads": "Povolit souběžné stahování", |     "parallelDownloads": "Povolit souběžné stahování", | ||||||
|     "useShizuku": "K instalaci použijte Shizuku nebo Sui", |     "useShizuku": "K instalaci použít Shizuku nebo Sui", | ||||||
|     "shizukuBinderNotFound": "Shizuku neběží", |     "shizukuBinderNotFound": "Shizuku neběží", | ||||||
|     "shizukuOld": "Stará verze Shizuku (<11) - aktualizujte ji", |     "shizukuOld": "Stará verze Shizuku (<11) - aktualizujte ji", | ||||||
|     "shizukuOldAndroidWithADB": "Shizuku běží na Androidu < 8.1 s ADB - aktualizujte Android nebo místo toho použijte Sui", |     "shizukuOldAndroidWithADB": "Shizuku běží na Androidu < 8.1 s ADB - aktualizujte Android nebo místo toho použijte Sui", | ||||||
|     "shizukuPretendToBeGooglePlay": "Nastavení Google Play jako zdroje instalace (pokud se používá Shizuku)", |     "shizukuPretendToBeGooglePlay": "Nastavit Google Play jako zdroj instalace (pokud se používá Shizuku)", | ||||||
|     "useSystemFont": "Použít systémové písmo", |     "useSystemFont": "Použít systémové písmo", | ||||||
|     "useVersionCodeAsOSVersion": "Použít kód verze aplikace jako verzi zjištěnou OS", |     "useVersionCodeAsOSVersion": "Použít kód verze aplikace jako verzi zjištěnou OS", | ||||||
|     "requestHeader": "Hlavička požadavku", |     "requestHeader": "Hlavička požadavku", | ||||||
|     "useLatestAssetDateAsReleaseDate": "Použít poslední nahrané dílo jako datum vydání", |     "useLatestAssetDateAsReleaseDate": "Použít poslední nahraný soubor jako datum vydání", | ||||||
|     "defaultPseudoVersioningMethod": "Výchozí metoda pseudoverze", |     "defaultPseudoVersioningMethod": "Výchozí metoda pseudoverze", | ||||||
|     "partialAPKHash": "Částečný hash APK", |     "partialAPKHash": "Částečný hash APK", | ||||||
|     "APKLinkHash": "Odkaz APK Hash", |     "APKLinkHash": "Odkaz APK Hash", | ||||||
|     "directAPKLink": "Přímý odkaz APK", |     "directAPKLink": "Přímý odkaz APK", | ||||||
|     "pseudoVersionInUse": "Pseudoverze se používá", |     "pseudoVersionInUse": "Pseudoverze se používá", | ||||||
|     "installed": "Instalováno", |     "installed": "Nainstalováno", | ||||||
|     "latest": "Nejnovější", |     "latest": "Nejnovější", | ||||||
|     "invertRegEx": "Invertovat regulární výraz", |     "invertRegEx": "Invertovat regulární výraz", | ||||||
|     "note": "Poznámka", |     "note": "Poznámka", | ||||||
|     "selfHostedNote": "Rozbalovací seznam \"{}\" lze použít k dosažení vlastních/obvyklých instancí libovolného zdroje.", |     "selfHostedNote": "Rozbalovací seznam „{}“ lze použít pro přístup k vlastním instancím libovolného zdroje.", | ||||||
|     "badDownload": "APK nelze analyzovat (nekompatibilní nebo částečné stažení)", |     "badDownload": "APK nelze analyzovat (nekompatibilní nebo částečné stažení)", | ||||||
|     "beforeNewInstallsShareToAppVerifier": "Sdílení nových aplikací s aplikací AppVerifier (pokud je k dispozici)", |     "beforeNewInstallsShareToAppVerifier": "Sdílet nové aplikace s aplikací AppVerifier (pokud je k dispozici)", | ||||||
|     "appVerifierInstructionToast": "Sdílejte do aplikace AppVerifier a po dokončení se sem vraťte.", |     "appVerifierInstructionToast": "Sdílejte do aplikace AppVerifier a po dokončení se sem vraťte.", | ||||||
|     "wiki": "Nápověda/Wiki", |     "wiki": "Nápověda/Wiki", | ||||||
|     "crowdsourcedConfigsLabel": "Konfigurace aplikací s využitím crowdsourcingu (použití na vlastní nebezpečí)", |     "crowdsourcedConfigsLabel": "Komunitní konfigurace aplikací (použití na vlastní nebezpečí)", | ||||||
|     "crowdsourcedConfigsShort": "Konfigurace aplikací s využitím crowdsourcingu", |     "crowdsourcedConfigsShort": "Konfigurace aplikací s využitím crowdsourcingu", | ||||||
|     "allowInsecure": "Povolení nezabezpečených požadavků HTTP", |     "allowInsecure": "Povolit nezabezpečené požadavků HTTP", | ||||||
|     "stayOneVersionBehind": "Zůstaňte o jednu verzi pozadu za nejnovější", |     "stayOneVersionBehind": "Zůstaňte o jednu verzi pozadu za nejnovější", | ||||||
|     "useFirstApkOfVersion": "Automatický výběr prvního z více souborů APK", |     "useFirstApkOfVersion": "Automatický výběr prvního z více souborů APK", | ||||||
|     "refreshBeforeDownload": "Obnovení údajů o aplikaci před stažením", |     "refreshBeforeDownload": "Obnovit údaje o aplikaci před stažením", | ||||||
|     "tencentAppStore": "Tencent App Store", |     "tencentAppStore": "Tencent App Store", | ||||||
|     "coolApk": "CoolApk", |     "coolApk": "CoolApk", | ||||||
|     "vivoAppStore": "vivo App Store (CN)", |     "vivoAppStore": "vivo App Store (CN)", | ||||||
|     "name": "Název", |     "name": "Název", | ||||||
|     "smartname": "Název (Smart)", |     "smartname": "Název (chytrý)", | ||||||
|     "sortMethod": "Metoda třídění", |     "sortMethod": "Metoda třídění", | ||||||
|     "welcome": "Vítejte na", |     "welcome": "Vítejte na", | ||||||
|     "documentationLinksNote": "Níže odkazovaná stránka Obtainium GitHub obsahuje odkazy na videa, články, diskuse a další zdroje, které vám pomohou pochopit, jak aplikaci používat.", |     "documentationLinksNote": "Níže odkazovaná stránka Obtainium GitHub obsahuje odkazy na videa, články, diskuse a další zdroje, které vám pomohou pochopit, jak aplikaci používat.", | ||||||
|     "batteryOptimizationNote": "Všimněte si, že stahování na pozadí může fungovat spolehlivěji, pokud vypnete optimalizaci baterie operačního systému pro Obtainium.", |     "batteryOptimizationNote": "Upozorňujeme, že stahování na pozadí může fungovat spolehlivěji, pokud v nastavení aplikace Obtainium přepnete na „službu v popředí“ a/nebo v nastavení operačního systému pro Obtainium vypnete optimalizaci baterie.", | ||||||
|     "fileDeletionError": "Soubor se nepodařilo odstranit (zkuste jej odstranit ručně a pak to zkuste znovu): \"{}\"", |     "fileDeletionError": "Soubor se nepodařilo odstranit (zkuste jej odstranit ručně a akci opakujte): „{}“", | ||||||
|     "foregroundService": "Služba Obtainium na popředí", |     "foregroundService": "Služba Obtainium na popředí", | ||||||
|     "foregroundServiceExplanation": "Použití služby v popředí pro kontrolu aktualizací (spolehlivější, spotřebovává více energie).", |     "foregroundServiceExplanation": "Použít službu v popředí pro kontrolu aktualizací (spolehlivější, spotřebovává více energie)", | ||||||
|     "fgServiceNotice": "Toto oznámení je nutné pro kontrolu aktualizací na pozadí (lze jej skrýt v nastavení operačního systému).", |     "fgServiceNotice": "Toto oznámení je nutné pro kontrolu aktualizací na pozadí (lze jej skrýt v nastavení systému)", | ||||||
|  |     "excludeSecrets": "Vyloučit tajemství", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Odstranit Apku?", |         "one": "Odstranit aplikaci?", | ||||||
|         "other": "Odstranit Apky?" |         "other": "Odstranit aplikace?" | ||||||
|     }, |     }, | ||||||
|     "tooManyRequestsTryAgainInMinutes": { |     "tooManyRequestsTryAgainInMinutes": { | ||||||
|         "one": "Příliš mnoho požadavků (omezená rychlost) - zkuste to znovu za {} minutu", |         "one": "Příliš mnoho požadavků (limit požadavků) - zkuste to znovu za {} minutu", | ||||||
|         "other": "Příliš mnoho požadavků (omezená rychlost) - zkuste to znovu za {} minut" |         "few": "Příliš mnoho požadavků (limit požadavků) - zkuste to znovu za {} minuty", | ||||||
|  |         "other": "Příliš mnoho požadavků (limit požadavků) - zkuste to znovu za {} minut" | ||||||
|     }, |     }, | ||||||
|     "bgUpdateGotErrorRetryInMinutes": { |     "bgUpdateGotErrorRetryInMinutes": { | ||||||
|         "one": "Při kontrole aktualizace na pozadí byla zjištěna chyba {}, opakování bude naplánováno za {} minut", |         "one": "Při kontrole aktualizací na pozadí byla zjištěna {}, opakování bude naplánováno za {} minutu", | ||||||
|         "other": "Při kontrole aktualizací na pozadí byla zjištěna chyba {}, opakování bude naplánováno za {} minut" |         "few": "Při kontrole aktualizací na pozadí byla zjištěna {}, opakování bude naplánováno za {} minuty", | ||||||
|  |         "other": "Při kontrole aktualizací na pozadí byla zjištěna {}, opakování bude naplánováno za {} minut" | ||||||
|     }, |     }, | ||||||
|     "bgCheckFoundUpdatesWillNotifyIfNeeded": { |     "bgCheckFoundUpdatesWillNotifyIfNeeded": { | ||||||
|         "one": "Při kontrole aktualizací na pozadí nalezena {}aktualizace - v případě potřeby upozorní uživatele", |         "one": "Při kontrole aktualizací na pozadí nalezena {} aktualizace – v případě potřeby bude upozorněn uživatel", | ||||||
|         "other": "Kontrola aktualizací na pozadí nalezla {} aktualizací - v případě potřeby upozorní uživatele" |         "few": "Při kontrole aktualizací na pozadí nalezeny {} aktualizace – v případě potřeby bude upozorněn uživatel", | ||||||
|  |         "other": "Při kontrole aktualizací na pozadí nalezeno {} aktualizací – v případě potřeby bude upozorněn uživatel" | ||||||
|     }, |     }, | ||||||
|     "apps": { |     "apps": { | ||||||
|         "one": "{} Apka", |         "one": "{} aplikace", | ||||||
|         "other": "{} Apky" |         "few": "{} aplikace", | ||||||
|  |         "other": "{} aplikací" | ||||||
|     }, |     }, | ||||||
|     "url": { |     "url": { | ||||||
|         "one": "{} Adresa", |         "one": "{} adresa", | ||||||
|         "other": "{} Adres" |         "few": "{} adresy", | ||||||
|  |         "other": "{} adres" | ||||||
|     }, |     }, | ||||||
|     "minute": { |     "minute": { | ||||||
|         "one": "{} Minuta", |         "one": "{} minuta", | ||||||
|         "other": "{} Minut" |         "few": "{} minuty", | ||||||
|  |         "other": "{} minut" | ||||||
|     }, |     }, | ||||||
|     "hour": { |     "hour": { | ||||||
|         "one": "{} Hodina", |         "one": "{} hodina", | ||||||
|         "other": "{} Hodin" |         "few": "{} hodiny", | ||||||
|  |         "other": "{} hodin" | ||||||
|     }, |     }, | ||||||
|     "day": { |     "day": { | ||||||
|         "one": "{} Den", |         "one": "{} den", | ||||||
|         "other": "{} Dnů" |         "few": "{} dny", | ||||||
|  |         "other": "{} dní" | ||||||
|     }, |     }, | ||||||
|     "clearedNLogsBeforeXAfterY": { |     "clearedNLogsBeforeXAfterY": { | ||||||
|         "one": "{n} Záznam vymazán (před = {before}, po = {after})", |         "one": "Vymazán {n} záznam (před = {before}, po = {after})", | ||||||
|         "other": "{n} Záznamů vymazáno (před = {before}, po = {after})" |         "few": "Vymazány {n} záznamy (před = {before}, po = {after})", | ||||||
|  |         "other": "Vymazáno {n} záznamů (před = {before}, po = {after})" | ||||||
|     }, |     }, | ||||||
|     "xAndNMoreUpdatesAvailable": { |     "xAndNMoreUpdatesAvailable": { | ||||||
|         "one": "{} a 1 další aplikace mají aktualizace.", |         "one": "{} a 1 další aplikace mají aktualizace.", | ||||||
|         "other": "{} a {} další aplikace mají aktualizace." |         "few": "{} a {} další aplikace mají aktualizace.", | ||||||
|  |         "other": "{} a {} dalších aplikací má aktualizace." | ||||||
|     }, |     }, | ||||||
|     "xAndNMoreUpdatesInstalled": { |     "xAndNMoreUpdatesInstalled": { | ||||||
|         "one": "{} a 1 další aplikace mají aktualizace.", |         "one": "{} a 1 další aplikace byly aktualizovány.", | ||||||
|         "other": "{} a {} další aplikace byly aktualizovány." |         "few": "{} a {} další aplikace byly aktualizovány.", | ||||||
|  |         "other": "{} a {} dalších aplikací bylo aktualizováno." | ||||||
|     }, |     }, | ||||||
|     "xAndNMoreUpdatesFailed": { |     "xAndNMoreUpdatesFailed": { | ||||||
|         "one": "Nepodařilo se aktualizovat {} a 1 další aplikaci.", |         "one": "Nepodařilo se aktualizovat {} a 1 další aplikaci.", | ||||||
|         "other": "Nepodařilo se aktualizovat {} a {} další aplikace." |         "few": "Nepodařilo se aktualizovat {} a {} další aplikace.", | ||||||
|  |         "other": "Nepodařilo se aktualizovat {} a {} dalších aplikací." | ||||||
|     }, |     }, | ||||||
|     "xAndNMoreUpdatesPossiblyInstalled": { |     "xAndNMoreUpdatesPossiblyInstalled": { | ||||||
|         "one": "{} a 1 další aplikace možno aktualizovat", |         "one": "{} a 1 další aplikace možná byly aktualizovány.", | ||||||
|         "other": "{} a {} další aplikace mohou být aktualizovány." |         "few": "{} a {} další aplikace možná byly aktualizovány.", | ||||||
|  |         "other": "{} a {} dalších aplikací možná bylo aktualizováno." | ||||||
|     }, |     }, | ||||||
|     "apk": { |     "apk": { | ||||||
|         "one": "{} APK", |         "one": "{} APK", | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Versionskorrektion deaktiveret (plugin ser ikke ud til at virke)", |     "versionCorrectionDisabled": "Versionskorrektion deaktiveret (plugin ser ikke ud til at virke)", | ||||||
|     "unknown": "Ukendt", |     "unknown": "Ukendt", | ||||||
|     "none": "Ingen", |     "none": "Ingen", | ||||||
|  |     "all": "Alle", | ||||||
|     "never": "Aldrig", |     "never": "Aldrig", | ||||||
|     "latestVersionX": "Seneste: {}", |     "latestVersionX": "Seneste: {}", | ||||||
|     "installedVersionX": "Installeret: {}", |     "installedVersionX": "Installeret: {}", | ||||||
| @@ -333,6 +334,7 @@ | |||||||
|     "foregroundService": "Obtainium forgrundstjeneste", |     "foregroundService": "Obtainium forgrundstjeneste", | ||||||
|     "foregroundServiceExplanation": "Brug en forgrundstjeneste til opdateringskontrol (mere pålidelig, bruger mere strøm)", |     "foregroundServiceExplanation": "Brug en forgrundstjeneste til opdateringskontrol (mere pålidelig, bruger mere strøm)", | ||||||
|     "fgServiceNotice": "Denne meddelelse er nødvendig for baggrundsopdateringskontrol (den kan skjules i OS-indstillingerne).", |     "fgServiceNotice": "Denne meddelelse er nødvendig for baggrundsopdateringskontrol (den kan skjules i OS-indstillingerne).", | ||||||
|  |     "excludeSecrets": "Udeluk hemmeligheder", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Fjern app?", |         "one": "Fjern app?", | ||||||
|         "other": "Fjern apps?" |         "other": "Fjern apps?" | ||||||
| @@ -358,16 +360,16 @@ | |||||||
|         "other": "{} URL'er" |         "other": "{} URL'er" | ||||||
|     }, |     }, | ||||||
|     "minute": { |     "minute": { | ||||||
|         "one": "{} Minut", |         "one": "{} minut", | ||||||
|         "other": "{} Minutter" |         "other": "{} minutter" | ||||||
|     }, |     }, | ||||||
|     "hour": { |     "hour": { | ||||||
|         "one": "{} Time", |         "one": "{} time", | ||||||
|         "other": "{} Timer" |         "other": "{} timer" | ||||||
|     }, |     }, | ||||||
|     "day": { |     "day": { | ||||||
|         "one": "{} Dag", |         "one": "{} dag", | ||||||
|         "other": "{} Dage" |         "other": "{} dage" | ||||||
|     }, |     }, | ||||||
|     "clearedNLogsBeforeXAfterY": { |     "clearedNLogsBeforeXAfterY": { | ||||||
|         "one": "Ryddet {n} log (før = {before}, efter = {after})", |         "one": "Ryddet {n} log (før = {before}, efter = {after})", | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Versionskorrektur deaktiviert (Plugin scheint nicht zu funktionieren)", |     "versionCorrectionDisabled": "Versionskorrektur deaktiviert (Plugin scheint nicht zu funktionieren)", | ||||||
|     "unknown": "Unbekannt", |     "unknown": "Unbekannt", | ||||||
|     "none": "Keine", |     "none": "Keine", | ||||||
|  |     "all": "Alle", | ||||||
|     "never": "Nie", |     "never": "Nie", | ||||||
|     "latestVersionX": "Neueste Version: {}", |     "latestVersionX": "Neueste Version: {}", | ||||||
|     "installedVersionX": "Installierte Version: {}", |     "installedVersionX": "Installierte Version: {}", | ||||||
| @@ -232,7 +233,7 @@ | |||||||
|     "requiresCredentialsInSettings": "{}: Benötigt zusätzliche Anmeldedaten (in den Einstellungen)", |     "requiresCredentialsInSettings": "{}: Benötigt zusätzliche Anmeldedaten (in den Einstellungen)", | ||||||
|     "checkOnStart": "Einmalig beim Start auf Aktualisierungen prüfen", |     "checkOnStart": "Einmalig beim Start auf Aktualisierungen prüfen", | ||||||
|     "tryInferAppIdFromCode": "Versuchen, die App-ID aus dem Quellcode zu ermitteln", |     "tryInferAppIdFromCode": "Versuchen, die App-ID aus dem Quellcode zu ermitteln", | ||||||
|     "removeOnExternalUninstall": "Extern deinstallierte Apps automatische entfernen", |     "removeOnExternalUninstall": "Extern deinstallierte Apps automatisch entfernen", | ||||||
|     "pickHighestVersionCode": "Automatische Auswahl des APK mit höchstem Versionscode", |     "pickHighestVersionCode": "Automatische Auswahl des APK mit höchstem Versionscode", | ||||||
|     "checkUpdateOnDetailPage": "Nach Aktualisierungen suchen, wenn eine App-Detailseite geöffnet wird", |     "checkUpdateOnDetailPage": "Nach Aktualisierungen suchen, wenn eine App-Detailseite geöffnet wird", | ||||||
|     "disablePageTransitions": "Animationen für Seitenübergänge deaktivieren", |     "disablePageTransitions": "Animationen für Seitenübergänge deaktivieren", | ||||||
| @@ -314,8 +315,8 @@ | |||||||
|     "beforeNewInstallsShareToAppVerifier": "Neue Apps mit AppVerifier teilen (falls verfügbar)", |     "beforeNewInstallsShareToAppVerifier": "Neue Apps mit AppVerifier teilen (falls verfügbar)", | ||||||
|     "appVerifierInstructionToast": "Teile die Daten mit AppVerifier und kehre im Anschluss hierher zurück.", |     "appVerifierInstructionToast": "Teile die Daten mit AppVerifier und kehre im Anschluss hierher zurück.", | ||||||
|     "wiki": "Hilfe/Wiki", |     "wiki": "Hilfe/Wiki", | ||||||
|     "crowdsourcedConfigsLabel": "Crowdsourced App-Konfigurationen (Verwendung auf eigene Gefahr)", |     "crowdsourcedConfigsLabel": "Komplexe Appkonfigurationen (Verwendung auf eigene Gefahr)", | ||||||
|     "crowdsourcedConfigsShort": "Crowdsourced App-Konfigurationen", |     "crowdsourcedConfigsShort": "Komplexe Appkonfigurationen", | ||||||
|     "allowInsecure": "Unsichere HTTP-Anfragen zulassen", |     "allowInsecure": "Unsichere HTTP-Anfragen zulassen", | ||||||
|     "stayOneVersionBehind": "Eine Version hinter der neuesten Version bleiben", |     "stayOneVersionBehind": "Eine Version hinter der neuesten Version bleiben", | ||||||
|     "useFirstApkOfVersion": "Automatische Auswahl der ersten von mehreren APKs", |     "useFirstApkOfVersion": "Automatische Auswahl der ersten von mehreren APKs", | ||||||
| @@ -331,8 +332,9 @@ | |||||||
|     "batteryOptimizationNote": "Beachten Sie, dass Downloads im Hintergrund möglicherweise zuverlässiger funktionieren, wenn Sie die Batterieoptimierung des Betriebssystems für Obtainium deaktivieren.", |     "batteryOptimizationNote": "Beachten Sie, dass Downloads im Hintergrund möglicherweise zuverlässiger funktionieren, wenn Sie die Batterieoptimierung des Betriebssystems für Obtainium deaktivieren.", | ||||||
|     "fileDeletionError": "Die Datei konnte nicht gelöscht werden (versuchen Sie, sie manuell zu löschen und versuchen Sie es dann erneut): \"{}\"", |     "fileDeletionError": "Die Datei konnte nicht gelöscht werden (versuchen Sie, sie manuell zu löschen und versuchen Sie es dann erneut): \"{}\"", | ||||||
|     "foregroundService": "Obtainium-Vordergrunddienst", |     "foregroundService": "Obtainium-Vordergrunddienst", | ||||||
|     "foregroundServiceExplanation": "Verwendung eines Dienstes im Vordergrund für die Aktualisierungsprüfung (zuverlässiger, verbraucht mehr Strom)", |     "foregroundServiceExplanation": "Aktualisierungsprüfung im Vordergrund durchführen (zuverlässiger, verbraucht mehr Strom)", | ||||||
|     "fgServiceNotice": "Diese Benachrichtigung ist für die Prüfung von Updates im Hintergrund erforderlich (sie kann in den Betriebssystemeinstellungen ausgeblendet werden)", |     "fgServiceNotice": "Diese Benachrichtigung ist für die Prüfung von Updates im Hintergrund erforderlich (sie kann in den Betriebssystemeinstellungen ausgeblendet werden)", | ||||||
|  |     "excludeSecrets": "Geheimnisse ausschließen", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "App entfernen?", |         "one": "App entfernen?", | ||||||
|         "other": "Apps entfernen?" |         "other": "Apps entfernen?" | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Versiokorekto malaktivigita (ŝajnas, ke la kromaĵo ne funkcias)", |     "versionCorrectionDisabled": "Versiokorekto malaktivigita (ŝajnas, ke la kromaĵo ne funkcias)", | ||||||
|     "unknown": "Nekonata", |     "unknown": "Nekonata", | ||||||
|     "none": "Nenio", |     "none": "Nenio", | ||||||
|  |     "all": "All", | ||||||
|     "never": "Neniam", |     "never": "Neniam", | ||||||
|     "latestVersionX": "Lasta versio: {}", |     "latestVersionX": "Lasta versio: {}", | ||||||
|     "installedVersionX": "Instalita versio: {}", |     "installedVersionX": "Instalita versio: {}", | ||||||
| @@ -327,12 +328,13 @@ | |||||||
|     "smartname": "Name (Smart)", |     "smartname": "Name (Smart)", | ||||||
|     "sortMethod": "Sort Method", |     "sortMethod": "Sort Method", | ||||||
|     "welcome": "Welcome", |     "welcome": "Welcome", | ||||||
|     "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions and other resources that will help you understand how to use the app.", |     "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions, and other resources that will help you understand how to use the app.", | ||||||
|     "batteryOptimizationNote": "Note that background downloads may work more reliably if you disable OS battery optimizations for Obtainium.", |     "batteryOptimizationNote": "Note that background downloads may work more reliably if you disable OS battery optimizations for Obtainium.", | ||||||
|     "fileDeletionError": "Failed to delete file (try deleting it manually then try again): \"{}\"", |     "fileDeletionError": "Failed to delete file (try deleting it manually then try again): \"{}\"", | ||||||
|     "foregroundService": "Obtainium foreground service", |     "foregroundService": "Obtainium foreground service", | ||||||
|     "foregroundServiceExplanation": "Use a foreground service for update checking (more reliable, consumes more power)", |     "foregroundServiceExplanation": "Use a foreground service for update checking (more reliable, consumes more power)", | ||||||
|     "fgServiceNotice": "This notification is required for background update checking (it can be hidden in the OS settings)", |     "fgServiceNotice": "This notification is required for background update checking (it can be hidden in the OS settings)", | ||||||
|  |     "excludeSecrets": "Exclude secrets", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Forigi la aplikaĵon?", |         "one": "Forigi la aplikaĵon?", | ||||||
|         "other": "Forigi la aplikaĵojn?" |         "other": "Forigi la aplikaĵojn?" | ||||||
| @@ -358,16 +360,16 @@ | |||||||
|         "other": "{} URLj" |         "other": "{} URLj" | ||||||
|     }, |     }, | ||||||
|     "minute": { |     "minute": { | ||||||
|         "one": "{} Minuto", |         "one": "{} minuto", | ||||||
|         "other": "{} Minutoj" |         "other": "{} minutoj" | ||||||
|     }, |     }, | ||||||
|     "hour": { |     "hour": { | ||||||
|         "one": "{} Horo", |         "one": "{} horo", | ||||||
|         "other": "{} Horoj" |         "other": "{} horoj" | ||||||
|     }, |     }, | ||||||
|     "day": { |     "day": { | ||||||
|         "one": "{} Tago", |         "one": "{} tago", | ||||||
|         "other": "{} Tagoj" |         "other": "{} tagoj" | ||||||
|     }, |     }, | ||||||
|     "clearedNLogsBeforeXAfterY": { |     "clearedNLogsBeforeXAfterY": { | ||||||
|         "one": "Purigis {n} protokolon (antaŭe = {before}, malantaŭe = {after})", |         "one": "Purigis {n} protokolon (antaŭe = {before}, malantaŭe = {after})", | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ | |||||||
|     "standard": "Standard", |     "standard": "Standard", | ||||||
|     "custom": "Custom", |     "custom": "Custom", | ||||||
|     "useMaterialYou": "Use Material You", |     "useMaterialYou": "Use Material You", | ||||||
|     "githubStarredRepos": "GitHub starred repos", |     "githubStarredRepos": "GitHub starred repositories", | ||||||
|     "uname": "Username", |     "uname": "Username", | ||||||
|     "wrongArgNum": "Wrong number of arguments provided", |     "wrongArgNum": "Wrong number of arguments provided", | ||||||
|     "xIsTrackOnly": "{} is track-only", |     "xIsTrackOnly": "{} is track-only", | ||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Version correction disabled (plugin doesn't seem to work)", |     "versionCorrectionDisabled": "Version correction disabled (plugin doesn't seem to work)", | ||||||
|     "unknown": "Unknown", |     "unknown": "Unknown", | ||||||
|     "none": "None", |     "none": "None", | ||||||
|  |     "all": "All", | ||||||
|     "never": "Never", |     "never": "Never", | ||||||
|     "latestVersionX": "Latest: {}", |     "latestVersionX": "Latest: {}", | ||||||
|     "installedVersionX": "Installed: {}", |     "installedVersionX": "Installed: {}", | ||||||
| @@ -313,7 +314,7 @@ | |||||||
|     "badDownload": "The APK could not be parsed (incompatible or partial download)", |     "badDownload": "The APK could not be parsed (incompatible or partial download)", | ||||||
|     "beforeNewInstallsShareToAppVerifier": "Share new apps with AppVerifier (if available)", |     "beforeNewInstallsShareToAppVerifier": "Share new apps with AppVerifier (if available)", | ||||||
|     "appVerifierInstructionToast": "Share to AppVerifier, then return here when ready.", |     "appVerifierInstructionToast": "Share to AppVerifier, then return here when ready.", | ||||||
|     "wiki": "Help/Wiki", |     "wiki": "Help/wiki", | ||||||
|     "crowdsourcedConfigsLabel": "Crowdsourced app configurations (use at your own risk)", |     "crowdsourcedConfigsLabel": "Crowdsourced app configurations (use at your own risk)", | ||||||
|     "crowdsourcedConfigsShort": "Crowdsourced app configurations", |     "crowdsourcedConfigsShort": "Crowdsourced app configurations", | ||||||
|     "allowInsecure": "Allow insecure HTTP requests", |     "allowInsecure": "Allow insecure HTTP requests", | ||||||
| @@ -327,12 +328,13 @@ | |||||||
|     "smartname": "Name (smart)", |     "smartname": "Name (smart)", | ||||||
|     "sortMethod": "Sort method", |     "sortMethod": "Sort method", | ||||||
|     "welcome": "Welcome", |     "welcome": "Welcome", | ||||||
|     "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions and other resources that will help you understand how to use the app.", |     "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions, and other resources that will help you understand how to use the app.", | ||||||
|     "batteryOptimizationNote": "Note that background downloads may work more reliably if you switch to the \"foreground service\" in the Obtainium settings and/or disable battery optimization for Obtainium in your OS settings.", |     "batteryOptimizationNote": "Note that background downloads may work more reliably if you switch to the \"foreground service\" in the Obtainium settings and/or disable battery optimization for Obtainium in your OS settings.", | ||||||
|     "fileDeletionError": "Failed to delete file (try deleting it manually then try again): \"{}\"", |     "fileDeletionError": "Failed to delete file (try deleting it manually then try again): \"{}\"", | ||||||
|     "foregroundService": "Obtainium foreground service", |     "foregroundService": "Obtainium foreground service", | ||||||
|     "foregroundServiceExplanation": "Use a foreground service for update checking (more reliable, consumes more power)", |     "foregroundServiceExplanation": "Use a foreground service for update checking (more reliable, consumes more power)", | ||||||
|     "fgServiceNotice": "This notification is required for background update checking (it can be hidden in the OS settings)", |     "fgServiceNotice": "This notification is required for background update checking (it can be hidden in the OS settings)", | ||||||
|  |     "excludeSecrets": "Exclude secrets", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Remove app?", |         "one": "Remove app?", | ||||||
|         "other": "Remove apps?" |         "other": "Remove apps?" | ||||||
| @@ -358,16 +360,16 @@ | |||||||
|         "other": "{} URLs" |         "other": "{} URLs" | ||||||
|     }, |     }, | ||||||
|     "minute": { |     "minute": { | ||||||
|         "one": "{} Minute", |         "one": "{} minute", | ||||||
|         "other": "{} Minutes" |         "other": "{} minutes" | ||||||
|     }, |     }, | ||||||
|     "hour": { |     "hour": { | ||||||
|         "one": "{} Hour", |         "one": "{} hour", | ||||||
|         "other": "{} Hours" |         "other": "{} hours" | ||||||
|     }, |     }, | ||||||
|     "day": { |     "day": { | ||||||
|         "one": "{} Day", |         "one": "{} day", | ||||||
|         "other": "{} Days" |         "other": "{} days" | ||||||
|     }, |     }, | ||||||
|     "clearedNLogsBeforeXAfterY": { |     "clearedNLogsBeforeXAfterY": { | ||||||
|         "one": "Cleared {n} log (before = {before}, after = {after})", |         "one": "Cleared {n} log (before = {before}, after = {after})", | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Corrección de versiones desactivada (el plugin parece no funcionar)", |     "versionCorrectionDisabled": "Corrección de versiones desactivada (el plugin parece no funcionar)", | ||||||
|     "unknown": "Desconocido", |     "unknown": "Desconocido", | ||||||
|     "none": "Ninguno", |     "none": "Ninguno", | ||||||
|  |     "all": "Todos", | ||||||
|     "never": "Nunca", |     "never": "Nunca", | ||||||
|     "latestVersionX": "Última versión: {}", |     "latestVersionX": "Última versión: {}", | ||||||
|     "installedVersionX": "Versión instalada: {}", |     "installedVersionX": "Versión instalada: {}", | ||||||
| @@ -333,6 +334,7 @@ | |||||||
|     "foregroundService": "Obtainium servicio en primer plano", |     "foregroundService": "Obtainium servicio en primer plano", | ||||||
|     "foregroundServiceExplanation": "Utilizar un servicio en primer plano para comprobar las actualizaciones (más fiable, consume más energía).", |     "foregroundServiceExplanation": "Utilizar un servicio en primer plano para comprobar las actualizaciones (más fiable, consume más energía).", | ||||||
|     "fgServiceNotice": "Esta notificación es necesaria para la comprobación de actualizaciones en segundo plano (puede ocultarse en la configuración del sistema operativo).", |     "fgServiceNotice": "Esta notificación es necesaria para la comprobación de actualizaciones en segundo plano (puede ocultarse en la configuración del sistema operativo).", | ||||||
|  |     "excludeSecrets": "Excluir secretos", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "¿Eliminar aplicación?", |         "one": "¿Eliminar aplicación?", | ||||||
|         "other": "¿Eliminar aplicaciones?" |         "other": "¿Eliminar aplicaciones?" | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "تصحیح نسخه غیرفعال شد (به نظر می رسد افزونه کار نمی کند)", |     "versionCorrectionDisabled": "تصحیح نسخه غیرفعال شد (به نظر می رسد افزونه کار نمی کند)", | ||||||
|     "unknown": "ناشناخته", |     "unknown": "ناشناخته", | ||||||
|     "none": "هیچ", |     "none": "هیچ", | ||||||
|  |     "all": "All", | ||||||
|     "never": "هرگز", |     "never": "هرگز", | ||||||
|     "latestVersionX": "آخرین نسخه: {}", |     "latestVersionX": "آخرین نسخه: {}", | ||||||
|     "installedVersionX": "نسخه نصب شده: {}", |     "installedVersionX": "نسخه نصب شده: {}", | ||||||
| @@ -327,12 +328,13 @@ | |||||||
|     "smartname": "Name (Smart)", |     "smartname": "Name (Smart)", | ||||||
|     "sortMethod": "Sort Method", |     "sortMethod": "Sort Method", | ||||||
|     "welcome": "Welcome", |     "welcome": "Welcome", | ||||||
|     "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions and other resources that will help you understand how to use the app.", |     "documentationLinksNote": "The Obtainium GitHub page linked below contains links to videos, articles, discussions, and other resources that will help you understand how to use the app.", | ||||||
|     "batteryOptimizationNote": "Note that background downloads may work more reliably if you disable OS battery optimizations for Obtainium.", |     "batteryOptimizationNote": "Note that background downloads may work more reliably if you disable OS battery optimizations for Obtainium.", | ||||||
|     "fileDeletionError": "Failed to delete file (try deleting it manually then try again): \"{}\"", |     "fileDeletionError": "Failed to delete file (try deleting it manually then try again): \"{}\"", | ||||||
|     "foregroundService": "Obtainium foreground service", |     "foregroundService": "Obtainium foreground service", | ||||||
|     "foregroundServiceExplanation": "Use a foreground service for update checking (more reliable, consumes more power)", |     "foregroundServiceExplanation": "Use a foreground service for update checking (more reliable, consumes more power)", | ||||||
|     "fgServiceNotice": "This notification is required for background update checking (it can be hidden in the OS settings)", |     "fgServiceNotice": "This notification is required for background update checking (it can be hidden in the OS settings)", | ||||||
|  |     "excludeSecrets": "Exclude secrets", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "برنامه حذف شود؟", |         "one": "برنامه حذف شود؟", | ||||||
|         "other": "برنامه ها حذف شوند؟" |         "other": "برنامه ها حذف شوند؟" | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Correction de version désactivée (le plugin ne semble pas fonctionner)", |     "versionCorrectionDisabled": "Correction de version désactivée (le plugin ne semble pas fonctionner)", | ||||||
|     "unknown": "Inconnu", |     "unknown": "Inconnu", | ||||||
|     "none": "Aucun", |     "none": "Aucun", | ||||||
|  |     "all": "Tous", | ||||||
|     "never": "Jamais", |     "never": "Jamais", | ||||||
|     "latestVersionX": "Dernière version : {}", |     "latestVersionX": "Dernière version : {}", | ||||||
|     "installedVersionX": "Version installée : {}", |     "installedVersionX": "Version installée : {}", | ||||||
| @@ -333,6 +334,7 @@ | |||||||
|     "foregroundService": "Service d'avant-plan Obtainium", |     "foregroundService": "Service d'avant-plan Obtainium", | ||||||
|     "foregroundServiceExplanation": "Utiliser un service de premier plan pour la vérification des mises à jour (plus fiable, consomme plus d'énergie)", |     "foregroundServiceExplanation": "Utiliser un service de premier plan pour la vérification des mises à jour (plus fiable, consomme plus d'énergie)", | ||||||
|     "fgServiceNotice": "Cette notification est nécessaire pour la vérification des mises à jour en arrière-plan (elle peut être masquée dans les paramètres du système d'exploitation).", |     "fgServiceNotice": "Cette notification est nécessaire pour la vérification des mises à jour en arrière-plan (elle peut être masquée dans les paramètres du système d'exploitation).", | ||||||
|  |     "excludeSecrets": "Exclure les secrets", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Supprimer l'application ?", |         "one": "Supprimer l'application ?", | ||||||
|         "other": "Supprimer les applications ?" |         "other": "Supprimer les applications ?" | ||||||
| @@ -358,16 +360,16 @@ | |||||||
|         "other": "{} URLs" |         "other": "{} URLs" | ||||||
|     }, |     }, | ||||||
|     "minute": { |     "minute": { | ||||||
|         "one": "{} Minute", |         "one": "{} minute", | ||||||
|         "other": "{} Minutes" |         "other": "{} minutes" | ||||||
|     }, |     }, | ||||||
|     "hour": { |     "hour": { | ||||||
|         "one": "{} Heure", |         "one": "{} heure", | ||||||
|         "other": "{} Heures" |         "other": "{} heures" | ||||||
|     }, |     }, | ||||||
|     "day": { |     "day": { | ||||||
|         "one": "{} Jour", |         "one": "{} jour", | ||||||
|         "other": "{} Jours" |         "other": "{} jours" | ||||||
|     }, |     }, | ||||||
|     "clearedNLogsBeforeXAfterY": { |     "clearedNLogsBeforeXAfterY": { | ||||||
|         "one": "Nettoyage du journal {n} (avant = {before}, après = {after})", |         "one": "Nettoyage du journal {n} (avant = {before}, après = {after})", | ||||||
|   | |||||||
| @@ -20,19 +20,19 @@ | |||||||
|     "cancel": "Mégse", |     "cancel": "Mégse", | ||||||
|     "continue": "Folytatás", |     "continue": "Folytatás", | ||||||
|     "requiredInBrackets": "(Szükséges)", |     "requiredInBrackets": "(Szükséges)", | ||||||
|     "dropdownNoOptsError": "HIBA: A LEGÖRDÜLŐ LISTÁNAK LEGALÁBB EGY OPCIÓVAL KELL RENDELKEZNIE", |     "dropdownNoOptsError": "HIBA: A LEGÖRDÜLŐ LISTÁNAK LEGALÁBB EGY KIVÁLASZTHATÓ BEÁLLÍTÁSSAL KELL RENDELKEZNIE", | ||||||
|     "colour": "Szín", |     "colour": "Szín", | ||||||
|     "standard": "Általános", |     "standard": "Általános", | ||||||
|     "custom": "Egyéni", |     "custom": "Egyéni", | ||||||
|     "useMaterialYou": "Material You használata", |     "useMaterialYou": "Material You használata", | ||||||
|     "githubStarredRepos": "Csillagozott GitHub tárolók", |     "githubStarredRepos": "Csillagozott GitHub-tárolók", | ||||||
|     "uname": "Felhasználónév", |     "uname": "Felhasználónév", | ||||||
|     "wrongArgNum": "A megadott argumentumok száma nem megfelelő", |     "wrongArgNum": "A megadott argumentumok száma nem megfelelő", | ||||||
|     "xIsTrackOnly": "A(z) {} csak nyomon követhető", |     "xIsTrackOnly": "A(z) {} csak nyomon követhető", | ||||||
|     "source": "Forrás", |     "source": "Forrás", | ||||||
|     "app": "Alkalmazás", |     "app": "Alkalmazás", | ||||||
|     "appsFromSourceAreTrackOnly": "Az ebből a forrásból származó alkalmazások „csak nyomon követhetők”.", |     "appsFromSourceAreTrackOnly": "Az ebből a forrásból származó alkalmazások „csak nyomon követhetők”.", | ||||||
|     "youPickedTrackOnly": "„Csak nyomon követés” opciót választotta.", |     "youPickedTrackOnly": "„Csak nyomon követés” beállítást választotta.", | ||||||
|     "trackOnlyAppDescription": "Az alkalmazás frissítéseit nyomon követi, de az Obtainium nem tudja letölteni vagy telepíteni.", |     "trackOnlyAppDescription": "Az alkalmazás frissítéseit nyomon követi, de az Obtainium nem tudja letölteni vagy telepíteni.", | ||||||
|     "cancelled": "Visszavonva", |     "cancelled": "Visszavonva", | ||||||
|     "appAlreadyAdded": "Az alkalmazás már hozzá van adva", |     "appAlreadyAdded": "Az alkalmazás már hozzá van adva", | ||||||
| @@ -114,7 +114,7 @@ | |||||||
|     "light": "Világos", |     "light": "Világos", | ||||||
|     "followSystem": "Rendszerbeállítás használata", |     "followSystem": "Rendszerbeállítás használata", | ||||||
|     "followSystemThemeExplanation": "A következő rendszer téma csak harmadik féltől származó alkalmazások használatával lehetséges", |     "followSystemThemeExplanation": "A következő rendszer téma csak harmadik féltől származó alkalmazások használatával lehetséges", | ||||||
|     "useBlackTheme": "Használjon teljesen fekete sötét témát", |     "useBlackTheme": "Teljesen fekete sötét téma használata", | ||||||
|     "appSortBy": "Rendezési szempont", |     "appSortBy": "Rendezési szempont", | ||||||
|     "authorName": "Szerző/Név", |     "authorName": "Szerző/Név", | ||||||
|     "nameAuthor": "Név/Szerző", |     "nameAuthor": "Név/Szerző", | ||||||
| @@ -136,12 +136,12 @@ | |||||||
|     "share": "Megosztás", |     "share": "Megosztás", | ||||||
|     "appNotFound": "Az alkalmazás nem található", |     "appNotFound": "Az alkalmazás nem található", | ||||||
|     "obtainiumExportHyphenatedLowercase": "obtainium-adat", |     "obtainiumExportHyphenatedLowercase": "obtainium-adat", | ||||||
|     "pickAnAPK": "Válasszon egy APK-t", |     "pickAnAPK": "Válasszon ki egy APK-t", | ||||||
|     "appHasMoreThanOnePackage": "A(z) {} egynél több csomaggal rendelkezik:", |     "appHasMoreThanOnePackage": "A(z) {} egynél több csomaggal rendelkezik:", | ||||||
|     "deviceSupportsXArch": "Ez az eszköz támogatja a(z) {} CPU architektúrát.", |     "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:", |     "deviceSupportsFollowingArchs": "Ez az eszköz a következő CPU-architektúrákat támogatja:", | ||||||
|     "warning": "Figyelem", |     "warning": "Figyelem", | ||||||
|     "sourceIsXButPackageFromYPrompt": "Az alkalmazás forrása a(z) „{}” tároló, de a kiadási csomag innen származik: „{}”. Folytatja?", |     "sourceIsXButPackageFromYPrompt": "Az alkalmazás forrása a(z) „{}-tároló”, de a kiadási csomag innen származik: „{}”. Folytatja?", | ||||||
|     "updatesAvailable": "Frissítések érhetők el", |     "updatesAvailable": "Frissítések érhetők el", | ||||||
|     "updatesAvailableNotifDescription": "Értesíti a felhasználót, hogy egy vagy több, az Obtainium által nyomon követett alkalmazáshoz frissítések állnak rendelkezésre", |     "updatesAvailableNotifDescription": "Értesíti a felhasználót, hogy egy vagy több, az Obtainium által nyomon követett alkalmazáshoz frissítések állnak rendelkezésre", | ||||||
|     "noNewUpdates": "Nincsenek új frissítések.", |     "noNewUpdates": "Nincsenek új frissítések.", | ||||||
| @@ -164,9 +164,10 @@ | |||||||
|     "pleaseAllowInstallPerm": "Engedélyezze az Obtainiumnak az alkalmazások telepítését", |     "pleaseAllowInstallPerm": "Engedélyezze az Obtainiumnak az alkalmazások telepítését", | ||||||
|     "trackOnly": "Csak nyomon követés", |     "trackOnly": "Csak nyomon követés", | ||||||
|     "errorWithHttpStatusCode": "Hiba {}", |     "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", |     "unknown": "Ismeretlen", | ||||||
|     "none": "Semmi", |     "none": "Semmi", | ||||||
|  |     "all": "Minden", | ||||||
|     "never": "Soha", |     "never": "Soha", | ||||||
|     "latestVersionX": "Legújabb verzió: {}", |     "latestVersionX": "Legújabb verzió: {}", | ||||||
|     "installedVersionX": "Telepített verzió: {}", |     "installedVersionX": "Telepített verzió: {}", | ||||||
| @@ -174,25 +175,25 @@ | |||||||
|     "remove": "Eltávolítás", |     "remove": "Eltávolítás", | ||||||
|     "yesMarkUpdated": "Igen, megjelölés frissítettként", |     "yesMarkUpdated": "Igen, megjelölés frissítettként", | ||||||
|     "fdroid": "F-Droid hivatalos", |     "fdroid": "F-Droid hivatalos", | ||||||
|     "appIdOrName": "Az alkalmazás-azonosító vagy név", |     "appIdOrName": "Alkalmazás-azonosító vagy név", | ||||||
|     "appId": "Alkalmazás-azonosító", |     "appId": "Alkalmazás-azonosító", | ||||||
|     "appWithIdOrNameNotFound": "Nem található alkalmazás ezzel az azonosítóval vagy névvel", |     "appWithIdOrNameNotFound": "Nem található alkalmazás ezzel az azonosítóval vagy névvel", | ||||||
|     "reposHaveMultipleApps": "A tárolók több alkalmazást is tartalmazhatnak", |     "reposHaveMultipleApps": "Egyes tárolók több alkalmazást is tartalmazhatnak", | ||||||
|     "fdroidThirdPartyRepo": "F-Droid harmadik féltől származó tároló", |     "fdroidThirdPartyRepo": "F-Droid-tároló (harmadik fél)", | ||||||
|     "install": "Telepítés", |     "install": "Telepítés", | ||||||
|     "markInstalled": "Telepítettnek jelölés", |     "markInstalled": "Telepítettnek jelölés", | ||||||
|     "update": "Frissítés", |     "update": "Frissítés", | ||||||
|     "markUpdated": "Frissítettnek jelölés", |     "markUpdated": "Frissítettnek jelölés", | ||||||
|     "additionalOptions": "További beállítások", |     "additionalOptions": "További beállítások", | ||||||
|     "disableVersionDetection": "Verzió-érzékelés letiltása", |     "disableVersionDetection": "Verzióérzékelés letiltása", | ||||||
|     "noVersionDetectionExplanation": "Ezt a beállítást csak olyan alkalmazásoknál szabad használni, ahol a verzió-érzékelés nem működik megfelelően.", |     "noVersionDetectionExplanation": "Ezt a beállítást csak olyan alkalmazásoknál szabad használni, ahol a verzióérzékelés nem működik megfelelően.", | ||||||
|     "downloadingX": "{} letöltése", |     "downloadingX": "{} letöltése", | ||||||
|     "downloadX": "{} letöltése", |     "downloadX": "{} letöltése", | ||||||
|     "downloadedX": "{} letöltve", |     "downloadedX": "{} letöltve", | ||||||
|     "releaseAsset": "Kiadási csomag", |     "releaseAsset": "Kiadási csomag", | ||||||
|     "downloadNotifDescription": "Értesíti a felhasználót az alkalmazás letöltésének előrehaladásáról", |     "downloadNotifDescription": "Értesíti a felhasználót az alkalmazás letöltésének előrehaladásáról", | ||||||
|     "noAPKFound": "Nem található APK", |     "noAPKFound": "Nem található APK", | ||||||
|     "noVersionDetection": "Nincs verzió-érzékelés", |     "noVersionDetection": "Nincs verzióérzékelés", | ||||||
|     "categorize": "Kategorizálás", |     "categorize": "Kategorizálás", | ||||||
|     "categories": "Kategóriák", |     "categories": "Kategóriák", | ||||||
|     "category": "Kategória", |     "category": "Kategória", | ||||||
| @@ -206,34 +207,34 @@ | |||||||
|     "copiedToClipboard": "Másolva a vágólapra", |     "copiedToClipboard": "Másolva a vágólapra", | ||||||
|     "storagePermissionDenied": "Tárhely engedély megtagadva", |     "storagePermissionDenied": "Tárhely engedély megtagadva", | ||||||
|     "selectedCategorizeWarning": "Ez felváltja a kiválasztott alkalmazások meglévő kategória-beállításait.", |     "selectedCategorizeWarning": "Ez felváltja a kiválasztott alkalmazások meglévő kategória-beállításait.", | ||||||
|     "filterAPKsByRegEx": "Az APK-k szűrése reguláris kifejezéssel", |     "filterAPKsByRegEx": "APK-k szűrése reguláris kifejezéssel", | ||||||
|     "removeFromObtainium": "Eltávolítás az Obtainiumból", |     "removeFromObtainium": "Eltávolítás az Obtainiumból", | ||||||
|     "uninstallFromDevice": "Eltávolítás az eszközről", |     "uninstallFromDevice": "Eltávolítás az eszközről", | ||||||
|     "onlyWorksWithNonVersionDetectApps": "Csak azoknál az alkalmazásoknál működik, amelyeknél a verzió-érzékelés le van tiltva.", |     "onlyWorksWithNonVersionDetectApps": "Csak azoknál az alkalmazásoknál működik, amelyeknél a verzióérzékelés le van tiltva.", | ||||||
|     "releaseDateAsVersion": "Használja a kiadás dátumát verzió-karakterláncként", |     "releaseDateAsVersion": "Kiadás dátumának használata verzió-karakterláncként", | ||||||
|     "releaseTitleAsVersion": "Használja a kiadás címét verzió-karakterláncként", |     "releaseTitleAsVersion": "Kiadás címének használata 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.", |     "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áslista", |     "changes": "Változáslista", | ||||||
|     "releaseDate": "Kiadás dátuma", |     "releaseDate": "Kiadás dátuma", | ||||||
|     "importFromURLsInFile": "Importálás fájlban található webcímből (pl. OPML)", |     "importFromURLsInFile": "Importálás fájlban található webcímből (például: OPML)", | ||||||
|     "versionDetectionExplanation": "A verzió-karakterlánc egyeztetése az rendszer által érzékelt verzióval", |     "versionDetectionExplanation": "A verzió-karakterlánc egyeztetése az rendszer által érzékelt verzióval", | ||||||
|     "versionDetection": "Verzió-érzékelés", |     "versionDetection": "Verzióérzékelés", | ||||||
|     "standardVersionDetection": "Alapértelmezett verzió-érzékelés", |     "standardVersionDetection": "Alapértelmezett verzióérzékelés", | ||||||
|     "groupByCategory": "Csoportosítás kategória alapján", |     "groupByCategory": "Csoportosítás kategória alapján", | ||||||
|     "autoApkFilterByArch": "Ha lehetséges, próbálja meg az APK-kat CPU-architektúra szerint szűrni", |     "autoApkFilterByArch": "APK-k CPU-architektúra szerinti szűrése, ha lehetséges", | ||||||
|     "autoLinkFilterByArch": "Ha lehetséges, próbálja meg a hivatkozásokat CPU-architektúra szerint szűrni", |     "autoLinkFilterByArch": "Hivatkozások CPU-architektúra szerinti szűrése, ha lehetséges", | ||||||
|     "overrideSource": "Forrás felülírása", |     "overrideSource": "Forrás felülírása", | ||||||
|     "dontShowAgain": "Ne jelenítse meg ezt többé", |     "dontShowAgain": "Ne jelenítse meg ezt többé", | ||||||
|     "dontShowTrackOnlyWarnings": "Ne jelenítse meg a „Csak nyomon követés” figyelmeztetést", |     "dontShowTrackOnlyWarnings": "„Csak nyomon követés” figyelmeztetés elrejtése", | ||||||
|     "dontShowAPKOriginWarnings": "Ne jelenítse meg az APK eredetére vonatkozó figyelmeztetéseket", |     "dontShowAPKOriginWarnings": "APK eredetére vonatkozó figyelmeztetések elrejtése", | ||||||
|     "moveNonInstalledAppsToBottom": "Helyezze át a nem telepített alkalmazásokat az alkalmazásnézet aljára", |     "moveNonInstalledAppsToBottom": "Nem telepített alkalmazások áthelyezése az alkalmazásnézet aljára", | ||||||
|     "gitlabPATLabel": "GitLab személyes hozzáférési token", |     "gitlabPATLabel": "GitLab személyes hozzáférési token", | ||||||
|     "about": "Névjegy", |     "about": "Névjegy", | ||||||
|     "requiresCredentialsInSettings": "A(z) {} alkalmazásnak további hitelesítő adatokra van szüksége (a beállításokban)", |     "requiresCredentialsInSettings": "A(z) {} alkalmazásnak további hitelesítő adatokra van szüksége (a beállításokban)", | ||||||
|     "checkOnStart": "Frissítések ellenőrzése az alkalmazás megnyitásakor", |     "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", |     "tryInferAppIdFromCode": "Alkalmazás azonosítójának kikövetkeztetése a forráskódból, ha lehetséges", | ||||||
|     "removeOnExternalUninstall": "A külsőleg eltávolított alkalmazások automatikus eltávolítása", |     "removeOnExternalUninstall": "Külsőleg eltávolított alkalmazások automatikus eltávolítása", | ||||||
|     "pickHighestVersionCode": "A legmagasabb verziószámú APK automatikus kiválasztása", |     "pickHighestVersionCode": "Legmagasabb verziókódú APK automatikus kiválasztása", | ||||||
|     "checkUpdateOnDetailPage": "Frissítések ellenőrzé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", |     "disablePageTransitions": "Lap áttűnési animációk letiltása", | ||||||
|     "reversePageTransitions": "Fordított lap áttűnési animációk", |     "reversePageTransitions": "Fordított lap áttűnési animációk", | ||||||
| @@ -258,18 +259,18 @@ | |||||||
|     "exemptFromBackgroundUpdates": "Mentes a háttérben történő frissítések alól (ha engedélyezett)", |     "exemptFromBackgroundUpdates": "Mentes a háttérben történő frissítések alól (ha engedélyezett)", | ||||||
|     "bgUpdatesOnWiFiOnly": "Háttérfrissítések letiltása, amikor az eszköz nem csatlakozik a Wi-Fi-hez", |     "bgUpdatesOnWiFiOnly": "Háttérfrissítések letiltása, amikor az eszköz nem csatlakozik a Wi-Fi-hez", | ||||||
|     "bgUpdatesWhileChargingOnly": "Háttérfrissítések letiltása, amikor az eszköz nincs a töltőn", |     "bgUpdatesWhileChargingOnly": "Háttérfrissítések letiltása, amikor az eszköz nincs a töltőn", | ||||||
|     "autoSelectHighestVersionCode": "A legmagasabb verziókódú APK automatikus kiválasztása", |     "autoSelectHighestVersionCode": "Legmagasabb verziókódú APK automatikus kiválasztása", | ||||||
|     "versionExtractionRegEx": "Verzió-karakterlánc kivonatolása reguláris kifejezéssel", |     "versionExtractionRegEx": "Verzió-karakterlánc kivonatolása reguláris kifejezéssel", | ||||||
|     "trimVersionString": "Verzió-karakterlánc levágá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", |     "matchGroupToUseForX": "A(z) „{}” esetén használandó csoport egyeztetése", | ||||||
|     "matchGroupToUse": "A verzió-karakterlánc kivonatolásához használandó csoport reguláris kifejezéssel való egyeztetése", |     "matchGroupToUse": "Verzió-karakterlánc kivonatolásához használandó csoport reguláris kifejezéssel való egyeztetése", | ||||||
|     "highlightTouchTargets": "A kevésbé nyilvánvaló érintési pontok kiemelése", |     "highlightTouchTargets": "Kevésbé nyilvánvaló érintési pontok kiemelése", | ||||||
|     "pickExportDir": "Válassza ki a könyvtárat, ahová exportálni szeretne", |     "pickExportDir": "Válassza ki a könyvtárat, ahová exportálni szeretne", | ||||||
|     "autoExportOnChanges": "Automatikus exportálás a változtatások után", |     "autoExportOnChanges": "Automatikus exportálás a változtatások után", | ||||||
|     "includeSettings": "Tartalmazza a beállításokat", |     "includeSettings": "Tartalmazza a beállításokat", | ||||||
|     "filterVersionsByRegEx": "Verziók szűrése reguláris kifejezéssel", |     "filterVersionsByRegEx": "Verziók szűrése reguláris kifejezéssel", | ||||||
|     "trySelectingSuggestedVersionCode": "Próbálja kiválasztani a „Javasolt” verziókódú APK-t", |     "trySelectingSuggestedVersionCode": "Próbálja kiválasztani a „Javasolt” verziókódú APK-t", | ||||||
|     "dontSortReleasesList": "Az API-ból származó kiadási sorrend megőrzése", |     "dontSortReleasesList": "API-ból származó kiadási sorrend megőrzése", | ||||||
|     "reverseSort": "Fordított rendezés", |     "reverseSort": "Fordított rendezés", | ||||||
|     "takeFirstLink": "Vegye az első hivatkozást", |     "takeFirstLink": "Vegye az első hivatkozást", | ||||||
|     "skipSort": "Rendezés kihagyása", |     "skipSort": "Rendezés kihagyása", | ||||||
| @@ -278,7 +279,7 @@ | |||||||
|     "runBgCheckNow": "Frissítések ellenőrzése a háttérben most", |     "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", |     "versionExtractWholePage": "„Verzió-karakterlánc kivonatolása reguláris kifejezéssel” alkalmazása az egész oldalra", | ||||||
|     "installing": "Telepítés", |     "installing": "Telepítés", | ||||||
|     "skipUpdateNotifications": "A frissítési értesítések kihagyása", |     "skipUpdateNotifications": "Frissítési értesítések kihagyása", | ||||||
|     "updatesAvailableNotifChannel": "Frissítések érhetők el", |     "updatesAvailableNotifChannel": "Frissítések érhetők el", | ||||||
|     "appsUpdatedNotifChannel": "Alkalmazások frissítve", |     "appsUpdatedNotifChannel": "Alkalmazások frissítve", | ||||||
|     "appsPossiblyUpdatedNotifChannel": "Megkísérelt alkalmazás-frissítések", |     "appsPossiblyUpdatedNotifChannel": "Megkísérelt alkalmazás-frissítések", | ||||||
| @@ -288,22 +289,22 @@ | |||||||
|     "completeAppInstallationNotifChannel": "Teljes alkalmazás telepítés", |     "completeAppInstallationNotifChannel": "Teljes alkalmazás telepítés", | ||||||
|     "checkingForUpdatesNotifChannel": "Frissítések ellenőrzése", |     "checkingForUpdatesNotifChannel": "Frissítések ellenőrzése", | ||||||
|     "onlyCheckInstalledOrTrackOnlyApps": "Csak a telepített és a csak nyomon követhető alkalmazások frissítéseinek ellenőrzése", |     "onlyCheckInstalledOrTrackOnlyApps": "Csak a telepített és a csak nyomon követhető alkalmazások frissítéseinek ellenőrzése", | ||||||
|     "supportFixedAPKURL": "Támogatja a rögzített APK webcímeket", |     "supportFixedAPKURL": "Támogatja a rögzített APK-webcímeket", | ||||||
|     "selectX": "{} kiválasztása", |     "selectX": "{} kiválasztása", | ||||||
|     "parallelDownloads": "Párhuzamos letöltések engedélyezése", |     "parallelDownloads": "Párhuzamos letöltések engedélyezése", | ||||||
|     "useShizuku": "Shizuku vagy Sui használata a telepítéshez", |     "useShizuku": "Shizuku vagy Sui használata a telepítéshez", | ||||||
|     "shizukuBinderNotFound": "A Shizuku szolgáltatás nem fut", |     "shizukuBinderNotFound": "A Shizuku szolgáltatás nem fut", | ||||||
|     "shizukuOld": "Régi Shizuku verzió (<11) - frissítse", |     "shizukuOld": "Régi Shizuku verzió (<11) - frissítse", | ||||||
|     "shizukuOldAndroidWithADB": "A Shizuku csak Android < 8.1 ADB-vel fut - frissítse az Androidot vagy használja a Sui-t helyette", |     "shizukuOldAndroidWithADB": "A Shizuku csak Android < 8.1 ADB-vel fut - frissítse az Androidot vagy használja a Suit helyette", | ||||||
|     "shizukuPretendToBeGooglePlay": "A Google Play beállítása telepítési forrásként (ha Shizukut használ)", |     "shizukuPretendToBeGooglePlay": "Google Play beállítása telepítési forrásként (ha Shizukut használ)", | ||||||
|     "useSystemFont": "A rendszer betűtípusának használata", |     "useSystemFont": "Rendszer betűtípusának használata", | ||||||
|     "useVersionCodeAsOSVersion": "Az alkalmazás verziókódjának használata a rendszer által érzékelt verzióként", |     "useVersionCodeAsOSVersion": "Alkalmazás verziókódjának használata a rendszer által érzékelt verzióként", | ||||||
|     "requestHeader": "Kérelemfejléc", |     "requestHeader": "Kérelemfejléc", | ||||||
|     "useLatestAssetDateAsReleaseDate": "A kiadás dátumaként használja a legutóbbi csomagfeltöltést", |     "useLatestAssetDateAsReleaseDate": "Legutóbbi csomagfeltöltés használata a kiadás dátumaként", | ||||||
|     "defaultPseudoVersioningMethod": "Alapértelmezett pszeudoverziós módszer", |     "defaultPseudoVersioningMethod": "Alapértelmezett pszeudoverziós módszer", | ||||||
|     "partialAPKHash": "Részleges APK hasító értéke", |     "partialAPKHash": "Részleges APK-hasítóérték", | ||||||
|     "APKLinkHash": "APK hivatkozás hasító értéke", |     "APKLinkHash": "APK-hivatkozás-hasítóérték", | ||||||
|     "directAPKLink": "Közvetlen APK hivatkozás", |     "directAPKLink": "Közvetlen APK-hivatkozás", | ||||||
|     "pseudoVersionInUse": "Egy pszeudoverzió van használatban", |     "pseudoVersionInUse": "Egy pszeudoverzió van használatban", | ||||||
|     "installed": "Telepített", |     "installed": "Telepített", | ||||||
|     "latest": "Legújabb", |     "latest": "Legújabb", | ||||||
| @@ -318,11 +319,11 @@ | |||||||
|     "crowdsourcedConfigsShort": "Alkalmazáslista", |     "crowdsourcedConfigsShort": "Alkalmazáslista", | ||||||
|     "allowInsecure": "Nem biztonságos HTTP-kérések engedélyezése", |     "allowInsecure": "Nem biztonságos HTTP-kérések engedélyezése", | ||||||
|     "stayOneVersionBehind": "Maradjon egy verzióval a legújabb mögött", |     "stayOneVersionBehind": "Maradjon egy verzióval a legújabb mögött", | ||||||
|     "useFirstApkOfVersion": "A legelső APK automatikus kiválasztása, ha több APK is található", |     "useFirstApkOfVersion": "Legelső APK automatikus kiválasztása, ha több APK is található", | ||||||
|     "refreshBeforeDownload": "Az alkalmazás adatainak frissítése a letöltés előtt", |     "refreshBeforeDownload": "Alkalmazás adatainak frissítése a letöltés előtt", | ||||||
|     "tencentAppStore": "Tencent Appstore", |     "tencentAppStore": "Tencent Appstore", | ||||||
|     "coolApk": "CoolApk", |     "coolApk": "CoolApk", | ||||||
|     "vivoAppStore": "vivo App Store (CN)", |     "vivoAppStore": "Vivo App Store (CN)", | ||||||
|     "name": "Név", |     "name": "Név", | ||||||
|     "smartname": "Név (Okos)", |     "smartname": "Név (Okos)", | ||||||
|     "sortMethod": "Rendezési eljárás", |     "sortMethod": "Rendezési eljárás", | ||||||
| @@ -330,9 +331,10 @@ | |||||||
|     "documentationLinksNote": "Az alábbi hivatkozás az Obtainium GitHub oldalára vezet, amely további videók, cikkek, beszélgetések és egyéb források hivatkozásait tartalmazza, amelyek segítenek megérteni az alkalmazás használatát.", |     "documentationLinksNote": "Az alábbi hivatkozás az Obtainium GitHub oldalára vezet, amely további videók, cikkek, beszélgetések és egyéb források hivatkozásait tartalmazza, amelyek segítenek megérteni az alkalmazás használatát.", | ||||||
|     "batteryOptimizationNote": "Megjegyzés: A háttérfrissítések megbízhatóbban működhetnek, ha kikapcsolja a rendszer akkumulátor-optimalizálását az Obtainium számára.", |     "batteryOptimizationNote": "Megjegyzés: A háttérfrissítések megbízhatóbban működhetnek, ha kikapcsolja a rendszer akkumulátor-optimalizálását az Obtainium számára.", | ||||||
|     "fileDeletionError": "Nem sikerült törölni a fájlt (próbálja meg kézzel törölni, majd próbálja meg újra): \"{}\"", |     "fileDeletionError": "Nem sikerült törölni a fájlt (próbálja meg kézzel törölni, majd próbálja meg újra): \"{}\"", | ||||||
|     "foregroundService": "Obtainium új szolgáltatás", |     "foregroundService": "Obtainium előtér-szolgáltatás", | ||||||
|     "foregroundServiceExplanation": "Frissítésellenőrzéshez előtérben lévő szolgáltatás használata (megbízhatóbb, de több energiát fogyaszt)", |     "foregroundServiceExplanation": "Előtér-szolgáltatás használata a frissítések ellenőrzéséhez (megbízhatóbb, de több energiát fogyaszt)", | ||||||
|     "fgServiceNotice": "Ez az értesítés a háttérben történő frissítésellenőrzéshez szükséges (az operációs rendszer beállításaiban elrejthető).", |     "fgServiceNotice": "Ez az értesítés a háttérben történő frissítésellenőrzéshez szükséges (a rendszer beállításaiban elrejthető).", | ||||||
|  |     "excludeSecrets": "Titkok kizárása", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Eltávolítja az alkalmazást?", |         "one": "Eltávolítja az alkalmazást?", | ||||||
|         "other": "Eltávolítja az alkalmazásokat?" |         "other": "Eltávolítja az alkalmazásokat?" | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Koreksi versi dinonaktifkan (sepertinya plugin tidak berfungsi)", |     "versionCorrectionDisabled": "Koreksi versi dinonaktifkan (sepertinya plugin tidak berfungsi)", | ||||||
|     "unknown": "Tidak diketahui", |     "unknown": "Tidak diketahui", | ||||||
|     "none": "Tidak ada", |     "none": "Tidak ada", | ||||||
|  |     "all": "Semua", | ||||||
|     "never": "Tidak pernah", |     "never": "Tidak pernah", | ||||||
|     "latestVersionX": "Terbaru: {}", |     "latestVersionX": "Terbaru: {}", | ||||||
|     "installedVersionX": "Terpasang: {}", |     "installedVersionX": "Terpasang: {}", | ||||||
| @@ -333,6 +334,7 @@ | |||||||
|     "foregroundService": "Layanan latar depan Obtainium", |     "foregroundService": "Layanan latar depan Obtainium", | ||||||
|     "foregroundServiceExplanation": "Gunakan layanan latar depan untuk pemeriksaan pembaruan (lebih dapat diandalkan, menghabiskan lebih banyak daya)", |     "foregroundServiceExplanation": "Gunakan layanan latar depan untuk pemeriksaan pembaruan (lebih dapat diandalkan, menghabiskan lebih banyak daya)", | ||||||
|     "fgServiceNotice": "Pemberitahuan ini diperlukan untuk pemeriksaan pembaruan latar belakang (dapat disembunyikan dalam pengaturan OS)", |     "fgServiceNotice": "Pemberitahuan ini diperlukan untuk pemeriksaan pembaruan latar belakang (dapat disembunyikan dalam pengaturan OS)", | ||||||
|  |     "excludeSecrets": "Mengecualikan rahasia", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Hapus aplikasi?", |         "one": "Hapus aplikasi?", | ||||||
|         "other": "Hapus aplikasi?" |         "other": "Hapus aplikasi?" | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Correzione della versione disattivata (il plugin sembra non funzionare)", |     "versionCorrectionDisabled": "Correzione della versione disattivata (il plugin sembra non funzionare)", | ||||||
|     "unknown": "Sconosciuto", |     "unknown": "Sconosciuto", | ||||||
|     "none": "Nessuno", |     "none": "Nessuno", | ||||||
|  |     "all": "Tutti", | ||||||
|     "never": "Mai", |     "never": "Mai", | ||||||
|     "latestVersionX": "Ultima versione: {}", |     "latestVersionX": "Ultima versione: {}", | ||||||
|     "installedVersionX": "Versione installata: {}", |     "installedVersionX": "Versione installata: {}", | ||||||
| @@ -333,6 +334,7 @@ | |||||||
|     "foregroundService": "Servizio Obtainium in primo piano", |     "foregroundService": "Servizio Obtainium in primo piano", | ||||||
|     "foregroundServiceExplanation": "Utilizzare un servizio in primo piano per il controllo degli aggiornamenti (più affidabile, consuma più energia)", |     "foregroundServiceExplanation": "Utilizzare un servizio in primo piano per il controllo degli aggiornamenti (più affidabile, consuma più energia)", | ||||||
|     "fgServiceNotice": "Questa notifica è necessaria per il controllo degli aggiornamenti in background (può essere nascosta nelle impostazioni del sistema operativo).", |     "fgServiceNotice": "Questa notifica è necessaria per il controllo degli aggiornamenti in background (può essere nascosta nelle impostazioni del sistema operativo).", | ||||||
|  |     "excludeSecrets": "Escludere i segreti", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Rimuovere l'app?", |         "one": "Rimuovere l'app?", | ||||||
|         "other": "Rimuovere le app?" |         "other": "Rimuovere le app?" | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "バージョン補正無効 (プラグインが動作していません)", |     "versionCorrectionDisabled": "バージョン補正無効 (プラグインが動作していません)", | ||||||
|     "unknown": "不明", |     "unknown": "不明", | ||||||
|     "none": "なし", |     "none": "なし", | ||||||
|  |     "all": "すべて", | ||||||
|     "never": "しない", |     "never": "しない", | ||||||
|     "latestVersionX": "最新のバージョン: {}", |     "latestVersionX": "最新のバージョン: {}", | ||||||
|     "installedVersionX": "インストールされたバージョン: {}", |     "installedVersionX": "インストールされたバージョン: {}", | ||||||
| @@ -221,7 +222,7 @@ | |||||||
|     "standardVersionDetection": "標準のバージョン検出", |     "standardVersionDetection": "標準のバージョン検出", | ||||||
|     "groupByCategory": "カテゴリ別にグループ化する", |     "groupByCategory": "カテゴリ別にグループ化する", | ||||||
|     "autoApkFilterByArch": "可能であれば、CPUアーキテクチャによるAPKのフィルタリングを試みる", |     "autoApkFilterByArch": "可能であれば、CPUアーキテクチャによるAPKのフィルタリングを試みる", | ||||||
|     "autoLinkFilterByArch": "可能であれば、CPUアーキテクチャによるリンクのフィルタリングを試みる。", |     "autoLinkFilterByArch": "可能であれば、CPUアーキテクチャによるリンクのフィルタリングを試みる", | ||||||
|     "overrideSource": "ソースの上書き", |     "overrideSource": "ソースの上書き", | ||||||
|     "dontShowAgain": "二度と表示しない", |     "dontShowAgain": "二度と表示しない", | ||||||
|     "dontShowTrackOnlyWarnings": "「追跡のみ」の警告を表示しない", |     "dontShowTrackOnlyWarnings": "「追跡のみ」の警告を表示しない", | ||||||
| @@ -321,18 +322,19 @@ | |||||||
|     "useFirstApkOfVersion": "複数のAPKから最初のAPKを自動選択する", |     "useFirstApkOfVersion": "複数のAPKから最初のAPKを自動選択する", | ||||||
|     "refreshBeforeDownload": "ダウンロード前にアプリの詳細を更新する", |     "refreshBeforeDownload": "ダウンロード前にアプリの詳細を更新する", | ||||||
|     "tencentAppStore": "Tencent App Store", |     "tencentAppStore": "Tencent App Store", | ||||||
|     "coolApk": "クールApk", |     "coolApk": "Cool Apk", | ||||||
|     "vivoAppStore": "vivo App Store (CN)", |     "vivoAppStore": "vivo App Store (CN)", | ||||||
|     "name": "名称", |     "name": "アプリ名", | ||||||
|     "smartname": "名前(スマート)", |     "smartname": "アプリ名(スマート)", | ||||||
|     "sortMethod": "ソート方法", |     "sortMethod": "ソート方法", | ||||||
|     "welcome": "ようこそ", |     "welcome": "ようこそ", | ||||||
|     "documentationLinksNote": "以下のリンクにあるObtainium GitHubページには、ビデオ、記事、ディスカッション、その他のリソースへのリンクがあり、アプリの使い方を理解するのに役立ちます。", |     "documentationLinksNote": "以下のリンクにあるObtainium GitHubページには、ビデオ、記事、ディスカッション、その他のリソースへのリンクがあり、アプリの使い方を理解するのに役立ちます。", | ||||||
|     "batteryOptimizationNote": "ObtainiumのOSバッテリー最適化を無効にすると、バックグラウンドダウンロードがより確実に動作するようになります。", |     "batteryOptimizationNote": "ObtainiumのOSバッテリー最適化を無効にすると、バックグラウンドダウンロードがより確実に動作するようになります。", | ||||||
|     "fileDeletionError": "ファイルの削除に失敗しました(手動で削除してから再試行してください):\"{}\"", |     "fileDeletionError": "ファイルの削除に失敗しました(手動で削除してから再試行してください):\"{}\"", | ||||||
|     "foregroundService": "フォアグラウンド・サービス", |     "foregroundService": "Obtainium フォアグラウンドサービス", | ||||||
|     "foregroundServiceExplanation": "更新チェックにフォアグラウンド・サービスを使用する(より信頼性が高いが、より電力を消費する)", |     "foregroundServiceExplanation": "アップデート確認にフォアグラウンドサービスを使用する(より信頼性が高いが、より電力を消費する)", | ||||||
|     "fgServiceNotice": "この通知は、バックグラウンドでアップデートをチェックするために必要です(OSの設定で非表示にできます)。", |     "fgServiceNotice": "この通知は、バックグラウンドでアップデートを確認するために必要です(OSの設定で非表示にできます)。", | ||||||
|  |     "excludeSecrets": "秘密を除く", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "アプリを削除しますか?", |         "one": "アプリを削除しますか?", | ||||||
|         "other": "アプリを削除しますか?" |         "other": "アプリを削除しますか?" | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "버전 수정 비활성화됨 (플러그인이 작동하지 않는 것 같습니다)", |     "versionCorrectionDisabled": "버전 수정 비활성화됨 (플러그인이 작동하지 않는 것 같습니다)", | ||||||
|     "unknown": "알 수 없음", |     "unknown": "알 수 없음", | ||||||
|     "none": "없음", |     "none": "없음", | ||||||
|  |     "all": "모두", | ||||||
|     "never": "절대", |     "never": "절대", | ||||||
|     "latestVersionX": "최신: {}", |     "latestVersionX": "최신: {}", | ||||||
|     "installedVersionX": "설치됨: {}", |     "installedVersionX": "설치됨: {}", | ||||||
| @@ -333,6 +334,7 @@ | |||||||
|     "foregroundService": "오베티움 포그라운드 서비스", |     "foregroundService": "오베티움 포그라운드 서비스", | ||||||
|     "foregroundServiceExplanation": "업데이트 확인을 위해 포그라운드 서비스 사용(안정성 향상, 전력 소비량 증가)", |     "foregroundServiceExplanation": "업데이트 확인을 위해 포그라운드 서비스 사용(안정성 향상, 전력 소비량 증가)", | ||||||
|     "fgServiceNotice": "이 알림은 백그라운드 업데이트 확인에 필요합니다(OS 설정에서 숨길 수 있음).", |     "fgServiceNotice": "이 알림은 백그라운드 업데이트 확인에 필요합니다(OS 설정에서 숨길 수 있음).", | ||||||
|  |     "excludeSecrets": "비밀 제외", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "앱을 제거하시겠습니까?", |         "one": "앱을 제거하시겠습니까?", | ||||||
|         "other": "앱을 제거하시겠습니까?" |         "other": "앱을 제거하시겠습니까?" | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "പതിപ്പ് തിരുത്തൽ പ്രവർത്തനരഹിതമാക്കി (പ്ലഗിൻ പ്രവർത്തിക്കുന്നതായി തോന്നുന്നില്ല)", |     "versionCorrectionDisabled": "പതിപ്പ് തിരുത്തൽ പ്രവർത്തനരഹിതമാക്കി (പ്ലഗിൻ പ്രവർത്തിക്കുന്നതായി തോന്നുന്നില്ല)", | ||||||
|     "unknown": "അജ്ഞാതം", |     "unknown": "അജ്ഞാതം", | ||||||
|     "none": "ഒന്നുമില്ല", |     "none": "ഒന്നുമില്ല", | ||||||
|  |     "all": "All", | ||||||
|     "never": "ഒരിക്കലുമില്ല", |     "never": "ഒരിക്കലുമില്ല", | ||||||
|     "latestVersionX": "ഏറ്റവും പുതിയത്: {}", |     "latestVersionX": "ഏറ്റവും പുതിയത്: {}", | ||||||
|     "installedVersionX": "ഇൻസ്റ്റാൾ ചെയ്തത്: {}", |     "installedVersionX": "ഇൻസ്റ്റാൾ ചെയ്തത്: {}", | ||||||
| @@ -333,6 +334,7 @@ | |||||||
|     "foregroundService": "Obtainium foreground service", |     "foregroundService": "Obtainium foreground service", | ||||||
|     "foregroundServiceExplanation": "Use a foreground service for update checking (more reliable, consumes more power)", |     "foregroundServiceExplanation": "Use a foreground service for update checking (more reliable, consumes more power)", | ||||||
|     "fgServiceNotice": "This notification is required for background update checking (it can be hidden in the OS settings)", |     "fgServiceNotice": "This notification is required for background update checking (it can be hidden in the OS settings)", | ||||||
|  |     "excludeSecrets": "Exclude secrets", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "ആപ്പ് നീക്കം ചെയ്യണോ?", |         "one": "ആപ്പ് നീക്കം ചെയ്യണോ?", | ||||||
|         "other": "ആപ്പുകൾ നീക്കം ചെയ്യണോ?" |         "other": "ആപ്പുകൾ നീക്കം ചെയ്യണോ?" | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Versiecorrectie uitgeschakeld (de plug-in lijkt niet te werken)", |     "versionCorrectionDisabled": "Versiecorrectie uitgeschakeld (de plug-in lijkt niet te werken)", | ||||||
|     "unknown": "Onbekend", |     "unknown": "Onbekend", | ||||||
|     "none": "Geen", |     "none": "Geen", | ||||||
|  |     "all": "Alle", | ||||||
|     "never": "Nooit", |     "never": "Nooit", | ||||||
|     "latestVersionX": "Laatste versie: {}", |     "latestVersionX": "Laatste versie: {}", | ||||||
|     "installedVersionX": "Geïnstalleerde versie: {}", |     "installedVersionX": "Geïnstalleerde versie: {}", | ||||||
| @@ -313,7 +314,7 @@ | |||||||
|     "badDownload": "De APK kon niet worden verwerkt (incompatibele of gedeeltelijke download)", |     "badDownload": "De APK kon niet worden verwerkt (incompatibele of gedeeltelijke download)", | ||||||
|     "beforeNewInstallsShareToAppVerifier": "Nieuwe Apps delen met AppVerifier (indien beschikbaar)", |     "beforeNewInstallsShareToAppVerifier": "Nieuwe Apps delen met AppVerifier (indien beschikbaar)", | ||||||
|     "appVerifierInstructionToast": "Deel het met AppVerifier en keer daarna hier terug.", |     "appVerifierInstructionToast": "Deel het met AppVerifier en keer daarna hier terug.", | ||||||
|     "wiki": "Help/Wiki", |     "wiki": "Help/wiki", | ||||||
|     "crowdsourcedConfigsLabel": "Crowdsourced App-configuraties (gebruik op eigen risico)", |     "crowdsourcedConfigsLabel": "Crowdsourced App-configuraties (gebruik op eigen risico)", | ||||||
|     "crowdsourcedConfigsShort": "App-configuraties door menigte", |     "crowdsourcedConfigsShort": "App-configuraties door menigte", | ||||||
|     "allowInsecure": "Onveilige HTTP-verzoeken toestaan", |     "allowInsecure": "Onveilige HTTP-verzoeken toestaan", | ||||||
| @@ -333,6 +334,7 @@ | |||||||
|     "foregroundService": "Obtainium foreground service", |     "foregroundService": "Obtainium foreground service", | ||||||
|     "foregroundServiceExplanation": "Gebruik een voorgronddienst voor het controleren van updates (betrouwbaarder, verbruikt meer stroom)", |     "foregroundServiceExplanation": "Gebruik een voorgronddienst voor het controleren van updates (betrouwbaarder, verbruikt meer stroom)", | ||||||
|     "fgServiceNotice": "Deze melding is nodig voor het controleren van updates op de achtergrond (kan worden verborgen in de OS-instellingen)", |     "fgServiceNotice": "Deze melding is nodig voor het controleren van updates op de achtergrond (kan worden verborgen in de OS-instellingen)", | ||||||
|  |     "excludeSecrets": "Geheimen uitsluiten", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "App verwijderen?", |         "one": "App verwijderen?", | ||||||
|         "other": "Apps verwijderen?" |         "other": "Apps verwijderen?" | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Korekta wersji wyłączona (wtyczka wydaje się nie działać)", |     "versionCorrectionDisabled": "Korekta wersji wyłączona (wtyczka wydaje się nie działać)", | ||||||
|     "unknown": "Nieznane", |     "unknown": "Nieznane", | ||||||
|     "none": "Brak", |     "none": "Brak", | ||||||
|  |     "all": "Wszystkie", | ||||||
|     "never": "Nigdy", |     "never": "Nigdy", | ||||||
|     "latestVersionX": "Najnowsza wersja: {}", |     "latestVersionX": "Najnowsza wersja: {}", | ||||||
|     "installedVersionX": "Zainstalowana wersja: {}", |     "installedVersionX": "Zainstalowana wersja: {}", | ||||||
| @@ -333,6 +334,7 @@ | |||||||
|     "foregroundService": "Usługa nowej generacji Obtainium", |     "foregroundService": "Usługa nowej generacji Obtainium", | ||||||
|     "foregroundServiceExplanation": "Używanie usługi pierwszoplanowej do sprawdzania aktualizacji (bardziej niezawodne, zużywa więcej energii)", |     "foregroundServiceExplanation": "Używanie usługi pierwszoplanowej do sprawdzania aktualizacji (bardziej niezawodne, zużywa więcej energii)", | ||||||
|     "fgServiceNotice": "To powiadomienie jest wymagane do sprawdzania aktualizacji w tle (można je ukryć w ustawieniach systemu operacyjnego).", |     "fgServiceNotice": "To powiadomienie jest wymagane do sprawdzania aktualizacji w tle (można je ukryć w ustawieniach systemu operacyjnego).", | ||||||
|  |     "excludeSecrets": "Wyklucz sekrety", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Usunąć aplikację?", |         "one": "Usunąć aplikację?", | ||||||
|         "few": "Usunąć aplikacje?", |         "few": "Usunąć aplikacje?", | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Correção de versão desativada (o plugin parece não funcionar)", |     "versionCorrectionDisabled": "Correção de versão desativada (o plugin parece não funcionar)", | ||||||
|     "unknown": "Desconhecido", |     "unknown": "Desconhecido", | ||||||
|     "none": "Nenhum", |     "none": "Nenhum", | ||||||
|  |     "all": "Todos", | ||||||
|     "never": "Nunca", |     "never": "Nunca", | ||||||
|     "latestVersionX": "Mais recente: {}", |     "latestVersionX": "Mais recente: {}", | ||||||
|     "installedVersionX": "Instalado: {}", |     "installedVersionX": "Instalado: {}", | ||||||
| @@ -333,6 +334,7 @@ | |||||||
|     "foregroundService": "Serviço de primeiro plano do Obtainium", |     "foregroundService": "Serviço de primeiro plano do Obtainium", | ||||||
|     "foregroundServiceExplanation": "Usar um serviço em primeiro plano para verificação de atualizações (mais confiável, consome mais energia)", |     "foregroundServiceExplanation": "Usar um serviço em primeiro plano para verificação de atualizações (mais confiável, consome mais energia)", | ||||||
|     "fgServiceNotice": "Essa notificação é necessária para a verificação de atualizações em segundo plano (ela pode ser ocultada nas configurações do sistema operacional)", |     "fgServiceNotice": "Essa notificação é necessária para a verificação de atualizações em segundo plano (ela pode ser ocultada nas configurações do sistema operacional)", | ||||||
|  |     "excludeSecrets": "Excluir segredos", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Remover app?", |         "one": "Remover app?", | ||||||
|         "other": "Remover apps?" |         "other": "Remover apps?" | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Correção de versão desativada (plugin parece não funcionar)", |     "versionCorrectionDisabled": "Correção de versão desativada (plugin parece não funcionar)", | ||||||
|     "unknown": "Desconhecido", |     "unknown": "Desconhecido", | ||||||
|     "none": "Nenhum", |     "none": "Nenhum", | ||||||
|  |     "all": "Todos", | ||||||
|     "never": "Nunca", |     "never": "Nunca", | ||||||
|     "latestVersionX": "Última versão: {}", |     "latestVersionX": "Última versão: {}", | ||||||
|     "installedVersionX": "Versão instalada: {}", |     "installedVersionX": "Versão instalada: {}", | ||||||
| @@ -333,6 +334,7 @@ | |||||||
|     "foregroundService": "Serviço de primeiro plano Obtainium", |     "foregroundService": "Serviço de primeiro plano Obtainium", | ||||||
|     "foregroundServiceExplanation": "Utilizar um serviço em primeiro plano para verificação de actualizações (mais fiável, consome mais energia)", |     "foregroundServiceExplanation": "Utilizar um serviço em primeiro plano para verificação de actualizações (mais fiável, consome mais energia)", | ||||||
|     "fgServiceNotice": "Esta notificação é necessária para a verificação de actualizações em segundo plano (pode ser ocultada nas definições do SO)", |     "fgServiceNotice": "Esta notificação é necessária para a verificação de actualizações em segundo plano (pode ser ocultada nas definições do SO)", | ||||||
|  |     "excludeSecrets": "Excluir segredos", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Remover aplicativo?", |         "one": "Remover aplicativo?", | ||||||
|         "other": "Remover aplicativos?" |         "other": "Remover aplicativos?" | ||||||
| @@ -358,16 +360,16 @@ | |||||||
|         "other": "{} URLs" |         "other": "{} URLs" | ||||||
|     }, |     }, | ||||||
|     "minute": { |     "minute": { | ||||||
|         "one": "{} Minuto", |         "one": "{} minuto", | ||||||
|         "other": "{} Minutos" |         "other": "{} minutos" | ||||||
|     }, |     }, | ||||||
|     "hour": { |     "hour": { | ||||||
|         "one": "{} Hora", |         "one": "{} hora", | ||||||
|         "other": "{} Horas" |         "other": "{} horas" | ||||||
|     }, |     }, | ||||||
|     "day": { |     "day": { | ||||||
|         "one": "{} Dia", |         "one": "{} dia", | ||||||
|         "other": "{} Dias" |         "other": "{} dias" | ||||||
|     }, |     }, | ||||||
|     "clearedNLogsBeforeXAfterY": { |     "clearedNLogsBeforeXAfterY": { | ||||||
|         "one": "Foi limpo {n} log (antes = {antes}, depois = {depois})", |         "one": "Foi limpo {n} log (antes = {antes}, depois = {depois})", | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Коррекция версий отключена (плагин, кажется, не работает)", |     "versionCorrectionDisabled": "Коррекция версий отключена (плагин, кажется, не работает)", | ||||||
|     "unknown": "Неизвестно", |     "unknown": "Неизвестно", | ||||||
|     "none": "Отсутствует", |     "none": "Отсутствует", | ||||||
|  |     "all": "Все", | ||||||
|     "never": "Никогда", |     "never": "Никогда", | ||||||
|     "latestVersionX": "Последняя версия: {}", |     "latestVersionX": "Последняя версия: {}", | ||||||
|     "installedVersionX": "Установленная версия: {}", |     "installedVersionX": "Установленная версия: {}", | ||||||
| @@ -292,7 +293,7 @@ | |||||||
|     "selectX": "Выбрать {}", |     "selectX": "Выбрать {}", | ||||||
|     "parallelDownloads": "Использовать параллельные загрузки", |     "parallelDownloads": "Использовать параллельные загрузки", | ||||||
|     "useShizuku": "Использовать Shizuku или Sui для установки", |     "useShizuku": "Использовать Shizuku или Sui для установки", | ||||||
|     "shizukuBinderNotFound": "Совместимый сервис Shizuku не найден, возможно он не запущен", |     "shizukuBinderNotFound": "Совместимая служба Shizuku не найдена, возможно, она не запущена", | ||||||
|     "shizukuOld": "Устаревшая версия Shizuku (<11), обновите", |     "shizukuOld": "Устаревшая версия Shizuku (<11), обновите", | ||||||
|     "shizukuOldAndroidWithADB": "Shizuku работает на Android < 8.1 с ADB, обновите Android или используйте Sui", |     "shizukuOldAndroidWithADB": "Shizuku работает на Android < 8.1 с ADB, обновите Android или используйте Sui", | ||||||
|     "shizukuPretendToBeGooglePlay": "Указывать Google Play как источник установки (если используется Shizuku)", |     "shizukuPretendToBeGooglePlay": "Указывать Google Play как источник установки (если используется Shizuku)", | ||||||
| @@ -330,9 +331,10 @@ | |||||||
|     "documentationLinksNote": "На странице Obtainium в GitHub, ссылка на которую приведена ниже, содержатся ссылки на видео, статьи, обсуждения и другие ресурсы, которые помогут вам понять, как пользоваться приложением.", |     "documentationLinksNote": "На странице Obtainium в GitHub, ссылка на которую приведена ниже, содержатся ссылки на видео, статьи, обсуждения и другие ресурсы, которые помогут вам понять, как пользоваться приложением.", | ||||||
|     "batteryOptimizationNote": "Обратите внимание, что фоновая загрузка может работать более надёжно, если отключить оптимизацию батареи ОС для Obtainium.", |     "batteryOptimizationNote": "Обратите внимание, что фоновая загрузка может работать более надёжно, если отключить оптимизацию батареи ОС для Obtainium.", | ||||||
|     "fileDeletionError": "Не удалось удалить файл (попробуйте удалить его вручную, а затем повторите попытку): «{}»", |     "fileDeletionError": "Не удалось удалить файл (попробуйте удалить его вручную, а затем повторите попытку): «{}»", | ||||||
|     "foregroundService": "Передний план службы Obtainium", |     "foregroundService": "Приоритетная служба Obtainium", | ||||||
|     "foregroundServiceExplanation": "Используйте службу переднего плана для проверки обновлений (более надежно, потребляет больше энергии).", |     "foregroundServiceExplanation": "Использовать приоритетную службу для проверки обновлений (надёжнее, энергозатратнее)", | ||||||
|     "fgServiceNotice": "Это уведомление необходимо для фоновой проверки обновлений (его можно скрыть в настройках ОС)", |     "fgServiceNotice": "Это уведомление необходимо для фоновой проверки обновлений (оно может быть скрыто в настройках ОС)", | ||||||
|  |     "excludeSecrets": "Исключить секреты", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Удалить приложение?", |         "one": "Удалить приложение?", | ||||||
|         "other": "Удалить приложения?" |         "other": "Удалить приложения?" | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Versionskorrigering inaktiverat (plugin verkar inte fungera)", |     "versionCorrectionDisabled": "Versionskorrigering inaktiverat (plugin verkar inte fungera)", | ||||||
|     "unknown": "Okänd", |     "unknown": "Okänd", | ||||||
|     "none": "Ingen", |     "none": "Ingen", | ||||||
|  |     "all": "Alla", | ||||||
|     "never": "Aldrig", |     "never": "Aldrig", | ||||||
|     "latestVersionX": "Senaste Version: {}", |     "latestVersionX": "Senaste Version: {}", | ||||||
|     "installedVersionX": "Installerad Version: {}", |     "installedVersionX": "Installerad Version: {}", | ||||||
| @@ -333,6 +334,7 @@ | |||||||
|     "foregroundService": "Obtainium förgrundstjänst", |     "foregroundService": "Obtainium förgrundstjänst", | ||||||
|     "foregroundServiceExplanation": "Använd en förgrundstjänst för uppdateringskontroll (mer tillförlitlig, förbrukar mer ström)", |     "foregroundServiceExplanation": "Använd en förgrundstjänst för uppdateringskontroll (mer tillförlitlig, förbrukar mer ström)", | ||||||
|     "fgServiceNotice": "Detta meddelande krävs för bakgrundsuppdateringskontroll (det kan döljas i OS-inställningarna)", |     "fgServiceNotice": "Detta meddelande krävs för bakgrundsuppdateringskontroll (det kan döljas i OS-inställningarna)", | ||||||
|  |     "excludeSecrets": "Utesluta hemligheter", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Ta Bort App?", |         "one": "Ta Bort App?", | ||||||
|         "other": "Ta Bort Appar?" |         "other": "Ta Bort Appar?" | ||||||
| @@ -358,16 +360,16 @@ | |||||||
|         "other": "{} URL:er" |         "other": "{} URL:er" | ||||||
|     }, |     }, | ||||||
|     "minute": { |     "minute": { | ||||||
|         "one": "{} Minut", |         "one": "{} minut", | ||||||
|         "other": "{} Minuter" |         "other": "{} minuter" | ||||||
|     }, |     }, | ||||||
|     "hour": { |     "hour": { | ||||||
|         "one": "{} Timme", |         "one": "{} timme", | ||||||
|         "other": "{} Timmar" |         "other": "{} timmar" | ||||||
|     }, |     }, | ||||||
|     "day": { |     "day": { | ||||||
|         "one": "{} Dag", |         "one": "{} dag", | ||||||
|         "other": "{} Dagar" |         "other": "{} dagar" | ||||||
|     }, |     }, | ||||||
|     "clearedNLogsBeforeXAfterY": { |     "clearedNLogsBeforeXAfterY": { | ||||||
|         "one": "Rensade {n} logg (före = {before}, efter = {after})", |         "one": "Rensade {n} logg (före = {before}, efter = {after})", | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Sürüm düzeltme devre dışı bırakıldı (eklenti çalışmıyor gibi görünüyor)", |     "versionCorrectionDisabled": "Sürüm düzeltme devre dışı bırakıldı (eklenti çalışmıyor gibi görünüyor)", | ||||||
|     "unknown": "Bilinmiyor", |     "unknown": "Bilinmiyor", | ||||||
|     "none": "Hiçbiri", |     "none": "Hiçbiri", | ||||||
|  |     "all": "Tümü", | ||||||
|     "never": "Asla", |     "never": "Asla", | ||||||
|     "latestVersionX": "En Son Sürüm: {}", |     "latestVersionX": "En Son Sürüm: {}", | ||||||
|     "installedVersionX": "Yüklenen Sürüm: {}", |     "installedVersionX": "Yüklenen Sürüm: {}", | ||||||
| @@ -333,6 +334,7 @@ | |||||||
|     "foregroundService": "Obtainium ön plan hizmeti", |     "foregroundService": "Obtainium ön plan hizmeti", | ||||||
|     "foregroundServiceExplanation": "Güncelleme denetimi için bir ön plan hizmeti kullanın (daha güvenilir, daha fazla güç tüketir)", |     "foregroundServiceExplanation": "Güncelleme denetimi için bir ön plan hizmeti kullanın (daha güvenilir, daha fazla güç tüketir)", | ||||||
|     "fgServiceNotice": "Bu bildirim arka planda güncelleme kontrolü için gereklidir (işletim sistemi ayarlarından gizlenebilir)", |     "fgServiceNotice": "Bu bildirim arka planda güncelleme kontrolü için gereklidir (işletim sistemi ayarlarından gizlenebilir)", | ||||||
|  |     "excludeSecrets": "Sırları hariç tut", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Uygulamayı Kaldır?", |         "one": "Uygulamayı Kaldır?", | ||||||
|         "other": "Uygulamaları Kaldır?" |         "other": "Uygulamaları Kaldır?" | ||||||
| @@ -358,16 +360,16 @@ | |||||||
|         "other": "{} URL" |         "other": "{} URL" | ||||||
|     }, |     }, | ||||||
|     "minute": { |     "minute": { | ||||||
|         "one": "{} Dakika", |         "one": "{} dakika", | ||||||
|         "other": "{} Dakika" |         "other": "{} dakika" | ||||||
|     }, |     }, | ||||||
|     "hour": { |     "hour": { | ||||||
|         "one": "{} Saat", |         "one": "{} saat", | ||||||
|         "other": "{} Saat" |         "other": "{} saat" | ||||||
|     }, |     }, | ||||||
|     "day": { |     "day": { | ||||||
|         "one": "{} Gün", |         "one": "{} gün", | ||||||
|         "other": "{} Gün" |         "other": "{} gün" | ||||||
|     }, |     }, | ||||||
|     "clearedNLogsBeforeXAfterY": { |     "clearedNLogsBeforeXAfterY": { | ||||||
|         "one": "{n} log temizlendi (önce = {before}, sonra = {after})", |         "one": "{n} log temizlendi (önce = {before}, sonra = {after})", | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Виправлення версії вимкнено (здається, плагін не працює)", |     "versionCorrectionDisabled": "Виправлення версії вимкнено (здається, плагін не працює)", | ||||||
|     "unknown": "Невідомо", |     "unknown": "Невідомо", | ||||||
|     "none": "Нічого", |     "none": "Нічого", | ||||||
|  |     "all": "Усе.", | ||||||
|     "never": "Ніколи", |     "never": "Ніколи", | ||||||
|     "latestVersionX": "Остання версія: {}", |     "latestVersionX": "Остання версія: {}", | ||||||
|     "installedVersionX": "Встановлено: {}", |     "installedVersionX": "Встановлено: {}", | ||||||
| @@ -333,6 +334,7 @@ | |||||||
|     "foregroundService": "Обслуговування переднього плану Obtainium", |     "foregroundService": "Обслуговування переднього плану Obtainium", | ||||||
|     "foregroundServiceExplanation": "Використовуйте службу переднього плану для перевірки оновлень (надійніша, споживає більше енергії)", |     "foregroundServiceExplanation": "Використовуйте службу переднього плану для перевірки оновлень (надійніша, споживає більше енергії)", | ||||||
|     "fgServiceNotice": "Це сповіщення необхідне для фонової перевірки оновлень (його можна приховати в налаштуваннях ОС)", |     "fgServiceNotice": "Це сповіщення необхідне для фонової перевірки оновлень (його можна приховати в налаштуваннях ОС)", | ||||||
|  |     "excludeSecrets": "Виключити секрети", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Видалити застосунок?", |         "one": "Видалити застосунок?", | ||||||
|         "other": "Видалити застосунки?" |         "other": "Видалити застосунки?" | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "Tính năng sửa phiên bản bị vô hiệu hóa (plugin dường như không hoạt động)", |     "versionCorrectionDisabled": "Tính năng sửa phiên bản bị vô hiệu hóa (plugin dường như không hoạt động)", | ||||||
|     "unknown": "Không xác định", |     "unknown": "Không xác định", | ||||||
|     "none": "Không", |     "none": "Không", | ||||||
|  |     "all": "Tất cả", | ||||||
|     "never": "Không bao giờ", |     "never": "Không bao giờ", | ||||||
|     "latestVersionX": "Phiên bản mới nhất: {}", |     "latestVersionX": "Phiên bản mới nhất: {}", | ||||||
|     "installedVersionX": "Phiên bản đã cài đặt: {}", |     "installedVersionX": "Phiên bản đã cài đặt: {}", | ||||||
| @@ -333,6 +334,7 @@ | |||||||
|     "foregroundService": "Dịch vụ nền Obtainium", |     "foregroundService": "Dịch vụ nền Obtainium", | ||||||
|     "foregroundServiceExplanation": "Sử dụng dịch vụ nền trước để kiểm tra cập nhật (đáng tin cậy hơn, tiêu tốn nhiều pin hơn)", |     "foregroundServiceExplanation": "Sử dụng dịch vụ nền trước để kiểm tra cập nhật (đáng tin cậy hơn, tiêu tốn nhiều pin hơn)", | ||||||
|     "fgServiceNotice": "Thông báo này là bắt buộc để kiểm tra cập nhật nền (có thể ẩn trong cài đặt hệ điều hành).", |     "fgServiceNotice": "Thông báo này là bắt buộc để kiểm tra cập nhật nền (có thể ẩn trong cài đặt hệ điều hành).", | ||||||
|  |     "excludeSecrets": "Loại trừ thông tin bí mật", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "Gỡ ứng dụng?", |         "one": "Gỡ ứng dụng?", | ||||||
|         "other": "Gỡ ứng dụng?" |         "other": "Gỡ ứng dụng?" | ||||||
| @@ -358,15 +360,15 @@ | |||||||
|         "other": "{} URL" |         "other": "{} URL" | ||||||
|     }, |     }, | ||||||
|     "minute": { |     "minute": { | ||||||
|         "one": "{} Phút", |         "one": "{} phút", | ||||||
|         "other": "{} Phút" |         "other": "{} phút" | ||||||
|     }, |     }, | ||||||
|     "hour": { |     "hour": { | ||||||
|         "one": "{} Giờ", |         "one": "{} giờ", | ||||||
|         "other": "{} Giờ" |         "other": "{} giờ" | ||||||
|     }, |     }, | ||||||
|     "day": { |     "day": { | ||||||
|         "one": "{} Ngày", |         "one": "{} ngày", | ||||||
|         "other": "{} ngày" |         "other": "{} ngày" | ||||||
|     }, |     }, | ||||||
|     "clearedNLogsBeforeXAfterY": { |     "clearedNLogsBeforeXAfterY": { | ||||||
|   | |||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "版本校正已停用(外掛程式似乎無法正常工作)", |     "versionCorrectionDisabled": "版本校正已停用(外掛程式似乎無法正常工作)", | ||||||
|     "unknown": "未知", |     "unknown": "未知", | ||||||
|     "none": "無", |     "none": "無", | ||||||
|  |     "all": "All", | ||||||
|     "never": "從不", |     "never": "從不", | ||||||
|     "latestVersionX": "最新版本:{}", |     "latestVersionX": "最新版本:{}", | ||||||
|     "installedVersionX": "已安裝版本:{}", |     "installedVersionX": "已安裝版本:{}", | ||||||
| @@ -333,6 +334,7 @@ | |||||||
|     "foregroundService": "Obtainium foreground service", |     "foregroundService": "Obtainium foreground service", | ||||||
|     "foregroundServiceExplanation": "Use a foreground service for update checking (more reliable, consumes more power)", |     "foregroundServiceExplanation": "Use a foreground service for update checking (more reliable, consumes more power)", | ||||||
|     "fgServiceNotice": "This notification is required for background update checking (it can be hidden in the OS settings)", |     "fgServiceNotice": "This notification is required for background update checking (it can be hidden in the OS settings)", | ||||||
|  |     "excludeSecrets": "Exclude secrets", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "移除應用程式?", |         "one": "移除應用程式?", | ||||||
|         "other": "移除應用程式?" |         "other": "移除應用程式?" | ||||||
|   | |||||||
| @@ -23,7 +23,7 @@ | |||||||
|     "dropdownNoOptsError": "错误:下拉菜单必须包含至少一个选项", |     "dropdownNoOptsError": "错误:下拉菜单必须包含至少一个选项", | ||||||
|     "colour": "配色", |     "colour": "配色", | ||||||
|     "standard": "标准", |     "standard": "标准", | ||||||
|     "custom": "定制", |     "custom": "自定义", | ||||||
|     "useMaterialYou": "使用 Material You", |     "useMaterialYou": "使用 Material You", | ||||||
|     "githubStarredRepos": "已星标的 GitHub 仓库", |     "githubStarredRepos": "已星标的 GitHub 仓库", | ||||||
|     "uname": "用户名", |     "uname": "用户名", | ||||||
| @@ -50,7 +50,7 @@ | |||||||
|     "appsString": "应用列表", |     "appsString": "应用列表", | ||||||
|     "noApps": "无应用", |     "noApps": "无应用", | ||||||
|     "noAppsForFilter": "没有符合条件的应用", |     "noAppsForFilter": "没有符合条件的应用", | ||||||
|     "byX": "作者:{}", |     "byX": "开发者:{}", | ||||||
|     "percentProgress": "进度:{}%", |     "percentProgress": "进度:{}%", | ||||||
|     "pleaseWait": "请稍候", |     "pleaseWait": "请稍候", | ||||||
|     "updateAvailable": "更新可用", |     "updateAvailable": "更新可用", | ||||||
| @@ -157,8 +157,8 @@ | |||||||
|     "appsRemovedNotifDescription": "当应用因加载出错而被删除时发送通知", |     "appsRemovedNotifDescription": "当应用因加载出错而被删除时发送通知", | ||||||
|     "xWasRemovedDueToErrorY": "“{}”由于以下错误被删除:{}", |     "xWasRemovedDueToErrorY": "“{}”由于以下错误被删除:{}", | ||||||
|     "completeAppInstallation": "完成应用安装", |     "completeAppInstallation": "完成应用安装", | ||||||
|     "obtainiumMustBeOpenToInstallApps": "必须启动 Obtainium 才能安装应用", |     "obtainiumMustBeOpenToInstallApps": "必须开启 Obtainium 才能安装应用", | ||||||
|     "completeAppInstallationNotifDescription": "提示返回 Obtainium 以完成应用的安装", |     "completeAppInstallationNotifDescription": "提示返回 Obtainium 以完成应用安装", | ||||||
|     "checkingForUpdates": "正在检查更新", |     "checkingForUpdates": "正在检查更新", | ||||||
|     "checkingForUpdatesNotifDescription": "检查更新时短暂显示的通知", |     "checkingForUpdatesNotifDescription": "检查更新时短暂显示的通知", | ||||||
|     "pleaseAllowInstallPerm": "请授予 Obtainium 安装应用的权限", |     "pleaseAllowInstallPerm": "请授予 Obtainium 安装应用的权限", | ||||||
| @@ -167,6 +167,7 @@ | |||||||
|     "versionCorrectionDisabled": "禁用版本号更正(插件似乎未起作用)", |     "versionCorrectionDisabled": "禁用版本号更正(插件似乎未起作用)", | ||||||
|     "unknown": "未知", |     "unknown": "未知", | ||||||
|     "none": "无", |     "none": "无", | ||||||
|  |     "all": "全部", | ||||||
|     "never": "从未", |     "never": "从未", | ||||||
|     "latestVersionX": "最新版本:{}", |     "latestVersionX": "最新版本:{}", | ||||||
|     "installedVersionX": "当前版本:{}", |     "installedVersionX": "当前版本:{}", | ||||||
| @@ -199,7 +200,7 @@ | |||||||
|     "noCategory": "无类别", |     "noCategory": "无类别", | ||||||
|     "noCategories": "无类别", |     "noCategories": "无类别", | ||||||
|     "deleteCategoriesQuestion": "是否删除选中的类别?", |     "deleteCategoriesQuestion": "是否删除选中的类别?", | ||||||
|     "categoryDeleteWarning": "被删除类别的应用将恢复为未分类状态。", |     "categoryDeleteWarning": "被删除类别下的应用将恢复为未分类状态。", | ||||||
|     "addCategory": "添加类别", |     "addCategory": "添加类别", | ||||||
|     "label": "标签", |     "label": "标签", | ||||||
|     "language": "语言", |     "language": "语言", | ||||||
| @@ -211,7 +212,7 @@ | |||||||
|     "uninstallFromDevice": "从设备中卸载", |     "uninstallFromDevice": "从设备中卸载", | ||||||
|     "onlyWorksWithNonVersionDetectApps": "仅适用于禁用版本检测的应用。", |     "onlyWorksWithNonVersionDetectApps": "仅适用于禁用版本检测的应用。", | ||||||
|     "releaseDateAsVersion": "将发行日期作为版本号", |     "releaseDateAsVersion": "将发行日期作为版本号", | ||||||
|     "releaseTitleAsVersion": "使用版本标题作为版本字符串", |     "releaseTitleAsVersion": "将发行标题作为版本字符串", | ||||||
|     "releaseDateAsVersionExplanation": "此选项应该仅用于无法进行版本检测但能够获取发行日期的应用。", |     "releaseDateAsVersionExplanation": "此选项应该仅用于无法进行版本检测但能够获取发行日期的应用。", | ||||||
|     "changes": "更新日志", |     "changes": "更新日志", | ||||||
|     "releaseDate": "发行日期", |     "releaseDate": "发行日期", | ||||||
| @@ -220,8 +221,8 @@ | |||||||
|     "versionDetection": "版本检测", |     "versionDetection": "版本检测", | ||||||
|     "standardVersionDetection": "常规版本检测", |     "standardVersionDetection": "常规版本检测", | ||||||
|     "groupByCategory": "按类别分组显示", |     "groupByCategory": "按类别分组显示", | ||||||
|     "autoApkFilterByArch": "如果可能,尝试按设备支持的 CPU 架构筛选 APK 文件", |     "autoApkFilterByArch": "尽可能按设备支持的 CPU 架构筛选 APK 文件", | ||||||
|     "autoLinkFilterByArch": "尽可能按 CPU 架构过滤链接", |     "autoLinkFilterByArch": "尽可能按设备支持的 CPU 架构筛选链接", | ||||||
|     "overrideSource": "覆盖来源", |     "overrideSource": "覆盖来源", | ||||||
|     "dontShowAgain": "不再显示", |     "dontShowAgain": "不再显示", | ||||||
|     "dontShowTrackOnlyWarnings": "忽略“仅追踪”模式警告", |     "dontShowTrackOnlyWarnings": "忽略“仅追踪”模式警告", | ||||||
| @@ -249,7 +250,7 @@ | |||||||
|     "xWasPossiblyUpdatedToY": "已尝试将“{}”更新至 {}。", |     "xWasPossiblyUpdatedToY": "已尝试将“{}”更新至 {}。", | ||||||
|     "enableBackgroundUpdates": "启用全局后台更新", |     "enableBackgroundUpdates": "启用全局后台更新", | ||||||
|     "backgroundUpdateReqsExplanation": "后台更新未必适用于所有的应用。", |     "backgroundUpdateReqsExplanation": "后台更新未必适用于所有的应用。", | ||||||
|     "backgroundUpdateLimitsExplanation": "只有在启动 Obtainium 时才能确认安装是否成功。", |     "backgroundUpdateLimitsExplanation": "只有在开启 Obtainium 时才能确认是否安装成功。", | ||||||
|     "verifyLatestTag": "验证“Latest”标签", |     "verifyLatestTag": "验证“Latest”标签", | ||||||
|     "intermediateLinkRegex": "筛选中转链接的正则表达式", |     "intermediateLinkRegex": "筛选中转链接的正则表达式", | ||||||
|     "filterByLinkText": "根据链接文本进行筛选", |     "filterByLinkText": "根据链接文本进行筛选", | ||||||
| @@ -257,12 +258,12 @@ | |||||||
|     "intermediateLink": "中转链接", |     "intermediateLink": "中转链接", | ||||||
|     "exemptFromBackgroundUpdates": "禁用后台更新(仅此应用生效,即使已启用全局后台更新)", |     "exemptFromBackgroundUpdates": "禁用后台更新(仅此应用生效,即使已启用全局后台更新)", | ||||||
|     "bgUpdatesOnWiFiOnly": "未连接 Wi-Fi 时禁用后台更新", |     "bgUpdatesOnWiFiOnly": "未连接 Wi-Fi 时禁用后台更新", | ||||||
|     "bgUpdatesWhileChargingOnly": "不充电时禁用后台更新", |     "bgUpdatesWhileChargingOnly": "未充电时禁用后台更新", | ||||||
|     "autoSelectHighestVersionCode": "自动选择内部版本号最高的 APK 文件", |     "autoSelectHighestVersionCode": "自动选择内部版本号最高的 APK 文件", | ||||||
|     "versionExtractionRegEx": "提取版本号的正则表达式", |     "versionExtractionRegEx": "提取版本号的正则表达式", | ||||||
|     "trimVersionString": "使用 RegEx 修剪版本字符串", |     "trimVersionString": "修剪版本字符串的正则表达式", | ||||||
|     "matchGroupToUseForX": "用于\"{}\"的匹配组", |     "matchGroupToUseForX": "“{}”中引用的捕获组", | ||||||
|     "matchGroupToUse": "从上述匹配结果中引用的捕获组", |     "matchGroupToUse": "“提取版本字符串的正则表达式”中引用的捕获组", | ||||||
|     "highlightTouchTargets": "突出展示不明显的可交互区域", |     "highlightTouchTargets": "突出展示不明显的可交互区域", | ||||||
|     "pickExportDir": "选择导出文件夹", |     "pickExportDir": "选择导出文件夹", | ||||||
|     "autoExportOnChanges": "数据变更时自动导出", |     "autoExportOnChanges": "数据变更时自动导出", | ||||||
| @@ -314,32 +315,33 @@ | |||||||
|     "beforeNewInstallsShareToAppVerifier": "通过 AppVerifier 校验新应用(如果可用)", |     "beforeNewInstallsShareToAppVerifier": "通过 AppVerifier 校验新应用(如果可用)", | ||||||
|     "appVerifierInstructionToast": "分享至 AppVerifier,完成后返回此处。", |     "appVerifierInstructionToast": "分享至 AppVerifier,完成后返回此处。", | ||||||
|     "wiki": "帮助/Wiki", |     "wiki": "帮助/Wiki", | ||||||
|     "crowdsourcedConfigsLabel": "众包应用程序配置(使用风险自负)", |     "crowdsourcedConfigsLabel": "来自社区的应用配置(谨慎使用)", | ||||||
|     "crowdsourcedConfigsShort": "众包应用程序配置", |     "crowdsourcedConfigsShort": "来自社区的应用配置", | ||||||
|     "allowInsecure": "允许不安全的 HTTP 请求", |     "allowInsecure": "允许不安全的 HTTP 请求", | ||||||
|     "stayOneVersionBehind": "比最新版本晚一个版本", |     "stayOneVersionBehind": "始终延后一个版本进行更新", | ||||||
|     "useFirstApkOfVersion": "从多个 APK 中自动选择第一个", |     "useFirstApkOfVersion": "存在多个 APK 文件时自动选择第一个", | ||||||
|     "refreshBeforeDownload": "下载前刷新应用程序详细信息", |     "refreshBeforeDownload": "下载前刷新应用详情", | ||||||
|     "tencentAppStore": "腾讯应用宝", |     "tencentAppStore": "腾讯应用宝", | ||||||
|     "coolApk": "酷安", |     "coolApk": "酷安", | ||||||
|     "vivoAppStore": "vivo 应用商店(中国)", |     "vivoAppStore": "(中国)vivo应用商店", | ||||||
|     "name": "名称", |     "name": "发行名称", | ||||||
|     "smartname": "姓名(智能)", |     "smartname": "发行名称(智能)", | ||||||
|     "sortMethod": "排序方法", |     "sortMethod": "排序方法", | ||||||
|     "welcome": "欢迎光临", |     "welcome": "欢迎", | ||||||
|     "documentationLinksNote": "下面链接的 Obtainium GitHub 页面包含视频、文章、讨论和其他资源的链接,可帮助您了解如何使用该应用程序。", |     "documentationLinksNote": "下方链接的 GitHub 页面中包含关于 Obtainium 的视频、文章、讨论及其他资源,可帮助您了解本应用的使用方法。", | ||||||
|     "batteryOptimizationNote": "请注意,如果为 Obtainium 禁用操作系统电池优化功能,后台下载可能会更稳定。", |     "batteryOptimizationNote": "请注意,在设置中切换为“前台服务”,并/或关闭操作系统对 Obtainium 的电池优化,可能会让后台下载更稳定。", | ||||||
|     "fileDeletionError": "删除文件失败(尝试手动删除,然后再试一次):\"{}\"", |     "fileDeletionError": "删除文件失败(请手动删除后再次尝试):\"{}\"", | ||||||
|     "foregroundService": "获取前台服务", |     "foregroundService": "Obtainium 前台服务", | ||||||
|     "foregroundServiceExplanation": "使用前台服务进行更新检查(更可靠,耗电量更大)", |     "foregroundServiceExplanation": "使用前台服务检查更新(更稳定,但也更耗电)", | ||||||
|     "fgServiceNotice": "后台更新检查需要此通知(可在操作系统设置中隐藏)。", |     "fgServiceNotice": "后台检查更新时需要此通知(可在操作系统设置中隐藏)", | ||||||
|  |     "excludeSecrets": "排除机密", | ||||||
|     "removeAppQuestion": { |     "removeAppQuestion": { | ||||||
|         "one": "是否删除应用?", |         "one": "是否删除应用?", | ||||||
|         "other": "是否删除应用?" |         "other": "是否删除应用?" | ||||||
|     }, |     }, | ||||||
|     "tooManyRequestsTryAgainInMinutes": { |     "tooManyRequestsTryAgainInMinutes": { | ||||||
|         "one": "API 请求过于频繁(速率限制)- 请在 {} 分钟后重试", |         "one": "请求过于频繁(API 速率限制)- 请在 {} 分钟后重试", | ||||||
|         "other": "API 请求过于频繁(速率限制)- 请在 {} 分钟后重试" |         "other": "请求过于频繁(API 速率限制)- 请在 {} 分钟后重试" | ||||||
|     }, |     }, | ||||||
|     "bgUpdateGotErrorRetryInMinutes": { |     "bgUpdateGotErrorRetryInMinutes": { | ||||||
|         "one": "后台更新检查遇到了“{}”问题,将于 {} 分钟后重试", |         "one": "后台更新检查遇到了“{}”问题,将于 {} 分钟后重试", | ||||||
| @@ -370,27 +372,27 @@ | |||||||
|         "other": "{} 天" |         "other": "{} 天" | ||||||
|     }, |     }, | ||||||
|     "clearedNLogsBeforeXAfterY": { |     "clearedNLogsBeforeXAfterY": { | ||||||
|         "one": "清除了 {n} 个日志({before} 之前,{after} 之后)", |         "one": "清除了 {n} 条日志(早于 {before},晚于 {after})", | ||||||
|         "other": "清除了 {n} 个日志({before} 之前,{after} 之后)" |         "other": "清除了 {n} 条日志(早于 {before},晚于 {after})" | ||||||
|     }, |     }, | ||||||
|     "xAndNMoreUpdatesAvailable": { |     "xAndNMoreUpdatesAvailable": { | ||||||
|         "one": "“{}”和另外 1 个应用可以更新了。", |         "one": "“{}”和另外 1 个应用可以更新了。", | ||||||
|         "other": "“{}”和另外 {} 个应用可以更新了。" |         "other": "“{}”和另外 {} 个应用可以更新了。" | ||||||
|     }, |     }, | ||||||
|     "xAndNMoreUpdatesInstalled": { |     "xAndNMoreUpdatesInstalled": { | ||||||
|         "one": "{} 和另外 1 个应用已更新。", |         "one": "“{}”和另外 1 个应用已更新。", | ||||||
|         "other": "“{}”和另外 {} 个应用已更新。" |         "other": "“{}”和另外 {} 个应用已更新。" | ||||||
|     }, |     }, | ||||||
|     "xAndNMoreUpdatesFailed": { |     "xAndNMoreUpdatesFailed": { | ||||||
|         "one": "{} 和另外 1 个应用更新失败。", |         "one": "“{}”和另外 1 个应用更新失败。", | ||||||
|         "other": "{} 和另外 {} 个应用更新失败。" |         "other": "“{}”和另外 {} 个应用更新失败。" | ||||||
|     }, |     }, | ||||||
|     "xAndNMoreUpdatesPossiblyInstalled": { |     "xAndNMoreUpdatesPossiblyInstalled": { | ||||||
|         "one": "{} 和另外 1 个应用已尝试更新。", |         "one": "已尝试更新“{}”和另外 1 个应用。", | ||||||
|         "other": "“{}”和另外 {} 个应用已尝试更新。" |         "other": "已尝试更新“{}”和另外 {} 个应用。" | ||||||
|     }, |     }, | ||||||
|     "apk": { |     "apk": { | ||||||
|         "one": "{}APK", |         "one": "{} 个 APK 文件", | ||||||
|         "other": "{}APK" |         "other": "{} 个 APK 文件" | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -3,7 +3,7 @@ import 'package:obtainium/custom_errors.dart'; | |||||||
| import 'package:obtainium/providers/source_provider.dart'; | import 'package:obtainium/providers/source_provider.dart'; | ||||||
|  |  | ||||||
| class Codeberg extends AppSource { | class Codeberg extends AppSource { | ||||||
|   GitHub gh = GitHub(); |   GitHub gh = GitHub(hostChanged: true); | ||||||
|   Codeberg() { |   Codeberg() { | ||||||
|     name = 'Forgejo (Codeberg)'; |     name = 'Forgejo (Codeberg)'; | ||||||
|     hosts = ['codeberg.org']; |     hosts = ['codeberg.org']; | ||||||
|   | |||||||
							
								
								
									
										76
									
								
								lib/app_sources/farsroid.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								lib/app_sources/farsroid.dart
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,76 @@ | |||||||
|  | import 'dart:convert'; | ||||||
|  |  | ||||||
|  | import 'package:html/parser.dart'; | ||||||
|  | import 'package:obtainium/app_sources/html.dart'; | ||||||
|  | import 'package:obtainium/custom_errors.dart'; | ||||||
|  | import 'package:obtainium/providers/source_provider.dart'; | ||||||
|  |  | ||||||
|  | class Farsroid extends AppSource { | ||||||
|  |   Farsroid() { | ||||||
|  |     hosts = ['farsroid.com']; | ||||||
|  |     name = 'Farsroid'; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @override | ||||||
|  |   String sourceSpecificStandardizeURL(String url, {bool forSelection = false}) { | ||||||
|  |     RegExp standardUrlRegEx = RegExp( | ||||||
|  |       '^https?://([^\\.]+\\.)${getSourceRegex(hosts)}/[^/]+', | ||||||
|  |       caseSensitive: false, | ||||||
|  |     ); | ||||||
|  |     RegExpMatch? match = standardUrlRegEx.firstMatch(url); | ||||||
|  |     if (match == null) { | ||||||
|  |       throw InvalidURLError(name); | ||||||
|  |     } | ||||||
|  |     return match.group(0)!; | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |   @override | ||||||
|  |   Future<APKDetails> getLatestAPKDetails( | ||||||
|  |     String standardUrl, | ||||||
|  |     Map<String, dynamic> additionalSettings, | ||||||
|  |   ) async { | ||||||
|  |     String appName = Uri.parse(standardUrl).pathSegments.last; | ||||||
|  |  | ||||||
|  |     var res = await sourceRequest(standardUrl, additionalSettings); | ||||||
|  |     if (res.statusCode != 200) { | ||||||
|  |       throw getObtainiumHttpError(res); | ||||||
|  |     } | ||||||
|  |     var html = parse(res.body); | ||||||
|  |     var dlinks = html.querySelectorAll('.download-links'); | ||||||
|  |     if (dlinks.isEmpty) { | ||||||
|  |       throw NoReleasesError(); | ||||||
|  |     } | ||||||
|  |     var postId = dlinks.first.attributes['data-post-id'] ?? ''; | ||||||
|  |     var version = dlinks.first.attributes['data-post-version'] ?? ''; | ||||||
|  |  | ||||||
|  |     if (postId.isEmpty || version.isEmpty) { | ||||||
|  |       throw NoVersionError(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     var res2 = await sourceRequest( | ||||||
|  |       Uri.encodeFull( | ||||||
|  |         'https://${hosts[0]}/api/download-box/?post_id=$postId&post_version=$version', | ||||||
|  |       ), | ||||||
|  |       additionalSettings, | ||||||
|  |     ); | ||||||
|  |     var html2 = jsonDecode(res2.body)?['data']?['content'] as String? ?? ''; | ||||||
|  |     if (html2.isEmpty) { | ||||||
|  |       throw NoAPKError(); | ||||||
|  |     } | ||||||
|  |     var apkLinks = | ||||||
|  |         (await grabLinksCommon(html2, res2.request!.url, additionalSettings)) | ||||||
|  |             .map((l) => MapEntry(Uri.parse(l.key).pathSegments.last, l.key)) | ||||||
|  |             .where( | ||||||
|  |               (l) => l.key.toLowerCase().startsWith( | ||||||
|  |                 '$appName-$version'.toLowerCase(), | ||||||
|  |               ), | ||||||
|  |             ) | ||||||
|  |             .toList(); | ||||||
|  |  | ||||||
|  |     if (apkLinks.isEmpty) { | ||||||
|  |       throw NoAPKError(); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     return APKDetails(version, apkLinks, AppNames(name, appName)); | ||||||
|  |   } | ||||||
|  | } | ||||||
| @@ -112,13 +112,17 @@ class FDroid extends AppSource { | |||||||
|           bool isGitHub = false; |           bool isGitHub = false; | ||||||
|           bool isGitLab = false; |           bool isGitLab = false; | ||||||
|           try { |           try { | ||||||
|             GitHub().sourceSpecificStandardizeURL(details.changeLog!); |             GitHub( | ||||||
|  |               hostChanged: true, | ||||||
|  |             ).sourceSpecificStandardizeURL(details.changeLog!); | ||||||
|             isGitHub = true; |             isGitHub = true; | ||||||
|           } catch (e) { |           } catch (e) { | ||||||
|             // |             // | ||||||
|           } |           } | ||||||
|           try { |           try { | ||||||
|             GitLab().sourceSpecificStandardizeURL(details.changeLog!); |             GitLab( | ||||||
|  |               hostChanged: true, | ||||||
|  |             ).sourceSpecificStandardizeURL(details.changeLog!); | ||||||
|             isGitLab = true; |             isGitLab = true; | ||||||
|           } catch (e) { |           } catch (e) { | ||||||
|             // |             // | ||||||
|   | |||||||
| @@ -13,10 +13,11 @@ import 'package:obtainium/providers/source_provider.dart'; | |||||||
| import 'package:url_launcher/url_launcher_string.dart'; | import 'package:url_launcher/url_launcher_string.dart'; | ||||||
|  |  | ||||||
| class GitHub extends AppSource { | class GitHub extends AppSource { | ||||||
|   GitHub() { |   GitHub({hostChanged = false}) { | ||||||
|     hosts = ['github.com']; |     hosts = ['github.com']; | ||||||
|     appIdInferIsOptional = true; |     appIdInferIsOptional = true; | ||||||
|     showReleaseDateAsVersionToggle = true; |     showReleaseDateAsVersionToggle = true; | ||||||
|  |     this.hostChanged = hostChanged; | ||||||
|  |  | ||||||
|     sourceConfigSettingFormItems = [ |     sourceConfigSettingFormItems = [ | ||||||
|       GeneratedFormTextField( |       GeneratedFormTextField( | ||||||
|   | |||||||
| @@ -12,10 +12,11 @@ import 'package:easy_localization/easy_localization.dart'; | |||||||
| import 'package:url_launcher/url_launcher_string.dart'; | import 'package:url_launcher/url_launcher_string.dart'; | ||||||
|  |  | ||||||
| class GitLab extends AppSource { | class GitLab extends AppSource { | ||||||
|   GitLab() { |   GitLab({bool hostChanged = false}) { | ||||||
|     hosts = ['gitlab.com']; |     hosts = ['gitlab.com']; | ||||||
|     canSearch = true; |     canSearch = true; | ||||||
|     showReleaseDateAsVersionToggle = true; |     showReleaseDateAsVersionToggle = true; | ||||||
|  |     this.hostChanged = hostChanged; | ||||||
|  |  | ||||||
|     sourceConfigSettingFormItems = [ |     sourceConfigSettingFormItems = [ | ||||||
|       GeneratedFormTextField( |       GeneratedFormTextField( | ||||||
| @@ -144,7 +145,7 @@ class GitLab extends AppSource { | |||||||
|     Map<String, dynamic> additionalSettings, |     Map<String, dynamic> additionalSettings, | ||||||
|   ) async { |   ) async { | ||||||
|     // Prepare request params |     // Prepare request params | ||||||
|     var names = GitHub().getAppNames(standardUrl); |     var names = GitHub(hostChanged: true).getAppNames(standardUrl); | ||||||
|     String projectUriComponent = |     String projectUriComponent = | ||||||
|         '${Uri.encodeComponent(names.author)}%2F${Uri.encodeComponent(names.name)}'; |         '${Uri.encodeComponent(names.author)}%2F${Uri.encodeComponent(names.name)}'; | ||||||
|     String? PAT = await getPATIfAny(hostChanged ? additionalSettings : {}); |     String? PAT = await getPATIfAny(hostChanged ? additionalSettings : {}); | ||||||
|   | |||||||
| @@ -113,14 +113,23 @@ List<MapEntry<String, String>> getLinksInLines(String lines) => | |||||||
|  |  | ||||||
| // Given an HTTP response, grab some links according to the common additional settings | // Given an HTTP response, grab some links according to the common additional settings | ||||||
| // (those that apply to intermediate and final steps) | // (those that apply to intermediate and final steps) | ||||||
| Future<List<MapEntry<String, String>>> grabLinksCommon( | Future<List<MapEntry<String, String>>> grabLinksCommonFromRes( | ||||||
|   Response res, |   Response res, | ||||||
|   Map<String, dynamic> additionalSettings, |   Map<String, dynamic> additionalSettings, | ||||||
| ) async { | ) async { | ||||||
|   if (res.statusCode != 200) { |   if (res.statusCode != 200) { | ||||||
|     throw getObtainiumHttpError(res); |     throw getObtainiumHttpError(res); | ||||||
|   } |   } | ||||||
|   var html = parse(res.body); |   return grabLinksCommon(res.body, res.request!.url, additionalSettings); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | // Note keys are URLs, values are filenames (opposite to the AppSource apkUrls) | ||||||
|  | Future<List<MapEntry<String, String>>> grabLinksCommon( | ||||||
|  |   String rawBody, | ||||||
|  |   Uri reqUrl, | ||||||
|  |   Map<String, dynamic> additionalSettings, | ||||||
|  | ) async { | ||||||
|  |   var html = parse(rawBody); | ||||||
|   List<MapEntry<String, String>> allLinks = html |   List<MapEntry<String, String>> allLinks = html | ||||||
|       .querySelectorAll('a') |       .querySelectorAll('a') | ||||||
|       .map( |       .map( | ||||||
| @@ -132,21 +141,21 @@ Future<List<MapEntry<String, String>>> grabLinksCommon( | |||||||
|         ), |         ), | ||||||
|       ) |       ) | ||||||
|       .where((element) => element.key.isNotEmpty) |       .where((element) => element.key.isNotEmpty) | ||||||
|       .map((e) => MapEntry(ensureAbsoluteUrl(e.key, res.request!.url), e.value)) |       .map((e) => MapEntry(ensureAbsoluteUrl(e.key, reqUrl), e.value)) | ||||||
|       .toList(); |       .toList(); | ||||||
|   if (allLinks.isEmpty) { |   if (allLinks.isEmpty) { | ||||||
|     allLinks = getLinksInLines(res.body); |     allLinks = getLinksInLines(rawBody); | ||||||
|   } |   } | ||||||
|   if (allLinks.isEmpty) { |   if (allLinks.isEmpty) { | ||||||
|     // Getting desperate |     // Getting desperate | ||||||
|     try { |     try { | ||||||
|       var jsonStrings = collectAllStringsFromJSONObject(jsonDecode(res.body)); |       var jsonStrings = collectAllStringsFromJSONObject(jsonDecode(rawBody)); | ||||||
|       allLinks = getLinksInLines(jsonStrings.join('\n')); |       allLinks = getLinksInLines(jsonStrings.join('\n')); | ||||||
|       if (allLinks.isEmpty) { |       if (allLinks.isEmpty) { | ||||||
|         allLinks = getLinksInLines( |         allLinks = getLinksInLines( | ||||||
|           jsonStrings |           jsonStrings | ||||||
|               .map((l) { |               .map((l) { | ||||||
|                 return ensureAbsoluteUrl(l, res.request!.url); |                 return ensureAbsoluteUrl(l, reqUrl); | ||||||
|               }) |               }) | ||||||
|               .join('\n'), |               .join('\n'), | ||||||
|         ); |         ); | ||||||
| @@ -368,7 +377,7 @@ class HTML extends AppSource { | |||||||
|             .where((l) => l['customLinkFilterRegex'].isNotEmpty == true) |             .where((l) => l['customLinkFilterRegex'].isNotEmpty == true) | ||||||
|             .toList(); |             .toList(); | ||||||
|     for (int i = 0; i < (additionalSettings['intermediateLink'].length); i++) { |     for (int i = 0; i < (additionalSettings['intermediateLink'].length); i++) { | ||||||
|       var intLinks = await grabLinksCommon( |       var intLinks = await grabLinksCommonFromRes( | ||||||
|         await sourceRequest(currentUrl, additionalSettings), |         await sourceRequest(currentUrl, additionalSettings), | ||||||
|         additionalSettings['intermediateLink'][i], |         additionalSettings['intermediateLink'][i], | ||||||
|       ); |       ); | ||||||
| @@ -392,7 +401,7 @@ class HTML extends AppSource { | |||||||
|           .join('\n') |           .join('\n') | ||||||
|           .split('\n') |           .split('\n') | ||||||
|           .join('\\n'); |           .join('\\n'); | ||||||
|       links = await grabLinksCommon(res, additionalSettings); |       links = await grabLinksCommonFromRes(res, additionalSettings); | ||||||
|       links = filterApks( |       links = filterApks( | ||||||
|         links, |         links, | ||||||
|         additionalSettings['apkFilterRegEx'], |         additionalSettings['apkFilterRegEx'], | ||||||
|   | |||||||
| @@ -55,7 +55,7 @@ class Mullvad extends AppSource { | |||||||
|       } |       } | ||||||
|       String? changeLog; |       String? changeLog; | ||||||
|       try { |       try { | ||||||
|         changeLog = (await GitHub().getLatestAPKDetails( |         changeLog = (await GitHub(hostChanged: true).getLatestAPKDetails( | ||||||
|           'https://github.com/mullvad/mullvadvpn-app', |           'https://github.com/mullvad/mullvadvpn-app', | ||||||
|           {'fallbackToOlderReleases': true}, |           {'fallbackToOlderReleases': true}, | ||||||
|         )).changeLog; |         )).changeLog; | ||||||
|   | |||||||
| @@ -5,6 +5,7 @@ import 'package:easy_localization/easy_localization.dart'; | |||||||
| import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||||
| import 'package:flutter/services.dart'; | import 'package:flutter/services.dart'; | ||||||
| import 'package:obtainium/providers/logs_provider.dart'; | import 'package:obtainium/providers/logs_provider.dart'; | ||||||
|  | import 'package:obtainium/providers/source_provider.dart'; | ||||||
| import 'package:provider/provider.dart'; | import 'package:provider/provider.dart'; | ||||||
|  |  | ||||||
| class ObtainiumError { | class ObtainiumError { | ||||||
| @@ -158,6 +159,7 @@ void showError(dynamic e, BuildContext context) { | |||||||
| } | } | ||||||
|  |  | ||||||
| String list2FriendlyString(List<String> list) { | String list2FriendlyString(List<String> list) { | ||||||
|  |   var isUsingEnglish = isEnglish(); | ||||||
|   return list.length == 2 |   return list.length == 2 | ||||||
|       ? '${list[0]} ${tr('and')} ${list[1]}' |       ? '${list[0]} ${tr('and')} ${list[1]}' | ||||||
|       : list |       : list | ||||||
| @@ -169,7 +171,7 @@ String list2FriendlyString(List<String> list) { | |||||||
|                   (e.key == list.length - 1 |                   (e.key == list.length - 1 | ||||||
|                       ? '' |                       ? '' | ||||||
|                       : e.key == list.length - 2 |                       : e.key == list.length - 2 | ||||||
|                       ? ' and ' |                       ? '${isUsingEnglish ? ',' : ''} and ' | ||||||
|                       : ', '), |                       : ', '), | ||||||
|             ) |             ) | ||||||
|             .join(''); |             .join(''); | ||||||
|   | |||||||
| @@ -185,7 +185,6 @@ class _ObtainiumState extends State<Obtainium> { | |||||||
|     initPlatformState(); |     initPlatformState(); | ||||||
|     WidgetsBinding.instance.addPostFrameCallback((_) { |     WidgetsBinding.instance.addPostFrameCallback((_) { | ||||||
|       requestNonOptionalPermissions(); |       requestNonOptionalPermissions(); | ||||||
|       initForegroundService(); |  | ||||||
|     }); |     }); | ||||||
|   } |   } | ||||||
|  |  | ||||||
| @@ -201,28 +200,32 @@ class _ObtainiumState extends State<Obtainium> { | |||||||
|   } |   } | ||||||
|  |  | ||||||
|   void initForegroundService() { |   void initForegroundService() { | ||||||
|     FlutterForegroundTask.init( |     // ignore: invalid_use_of_visible_for_testing_member | ||||||
|       androidNotificationOptions: AndroidNotificationOptions( |     if (!FlutterForegroundTask.isInitialized) { | ||||||
|         channelId: 'bg_update', |       FlutterForegroundTask.init( | ||||||
|         channelName: tr('foregroundService'), |         androidNotificationOptions: AndroidNotificationOptions( | ||||||
|         channelDescription: tr('foregroundService'), |           channelId: 'bg_update', | ||||||
|         onlyAlertOnce: true, |           channelName: tr('foregroundService'), | ||||||
|       ), |           channelDescription: tr('foregroundService'), | ||||||
|       iosNotificationOptions: const IOSNotificationOptions( |           onlyAlertOnce: true, | ||||||
|         showNotification: false, |         ), | ||||||
|         playSound: false, |         iosNotificationOptions: const IOSNotificationOptions( | ||||||
|       ), |           showNotification: false, | ||||||
|       foregroundTaskOptions: ForegroundTaskOptions( |           playSound: false, | ||||||
|         eventAction: ForegroundTaskEventAction.repeat(900000), |         ), | ||||||
|         autoRunOnBoot: true, |         foregroundTaskOptions: ForegroundTaskOptions( | ||||||
|         autoRunOnMyPackageReplaced: true, |           eventAction: ForegroundTaskEventAction.repeat(900000), | ||||||
|         allowWakeLock: true, |           autoRunOnBoot: true, | ||||||
|         allowWifiLock: true, |           autoRunOnMyPackageReplaced: true, | ||||||
|       ), |           allowWakeLock: true, | ||||||
|     ); |           allowWifiLock: true, | ||||||
|  |         ), | ||||||
|  |       ); | ||||||
|  |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   Future<ServiceRequestResult?> startForegroundService(bool restart) async { |   Future<ServiceRequestResult?> startForegroundService(bool restart) async { | ||||||
|  |     initForegroundService(); | ||||||
|     if (await FlutterForegroundTask.isRunningService) { |     if (await FlutterForegroundTask.isRunningService) { | ||||||
|       if (restart) { |       if (restart) { | ||||||
|         return FlutterForegroundTask.restartService(); |         return FlutterForegroundTask.restartService(); | ||||||
|   | |||||||
| @@ -232,7 +232,10 @@ class _AppPageState extends State<AppPage> { | |||||||
|                         : const EdgeInsetsDirectional.fromSTEB(0, 6, 0, 6), |                         : const EdgeInsetsDirectional.fromSTEB(0, 6, 0, 6), | ||||||
|                     margin: const EdgeInsetsDirectional.fromSTEB(0, 6, 0, 0), |                     margin: const EdgeInsetsDirectional.fromSTEB(0, 6, 0, 0), | ||||||
|                     child: Text( |                     child: Text( | ||||||
|                       tr('downloadX', args: [tr('releaseAsset').toLowerCase()]), |                       tr( | ||||||
|  |                         'downloadX', | ||||||
|  |                         args: [lowerCaseIfEnglish(tr('releaseAsset'))], | ||||||
|  |                       ), | ||||||
|                       textAlign: TextAlign.center, |                       textAlign: TextAlign.center, | ||||||
|                       style: Theme.of(context).textTheme.labelSmall!.copyWith( |                       style: Theme.of(context).textTheme.labelSmall!.copyWith( | ||||||
|                         decoration: TextDecoration.underline, |                         decoration: TextDecoration.underline, | ||||||
|   | |||||||
| @@ -1037,7 +1037,7 @@ class AppsPageState extends State<AppsPage> { | |||||||
|                             var exportJSON = encoder.convert( |                             var exportJSON = encoder.convert( | ||||||
|                               appsProvider.generateExportJSON( |                               appsProvider.generateExportJSON( | ||||||
|                                 appIds: selectedApps.map((e) => e.id).toList(), |                                 appIds: selectedApps.map((e) => e.id).toList(), | ||||||
|                                 overrideExportSettings: false, |                                 overrideExportSettings: 0, | ||||||
|                               ), |                               ), | ||||||
|                             ); |                             ); | ||||||
|                             String fn = |                             String fn = | ||||||
| @@ -1072,7 +1072,10 @@ class AppsPageState extends State<AppsPage> { | |||||||
|                       Navigator.of(context).pop(); |                       Navigator.of(context).pop(); | ||||||
|                     }, |                     }, | ||||||
|                     child: Text( |                     child: Text( | ||||||
|                       tr('downloadX', args: [tr('releaseAsset').toLowerCase()]), |                       tr( | ||||||
|  |                         'downloadX', | ||||||
|  |                         args: [lowerCaseIfEnglish(tr('releaseAsset'))], | ||||||
|  |                       ), | ||||||
|                     ), |                     ), | ||||||
|                   ), |                   ), | ||||||
|                   const Divider(), |                   const Divider(), | ||||||
|   | |||||||
| @@ -14,7 +14,6 @@ import 'package:obtainium/pages/import_export.dart'; | |||||||
| import 'package:obtainium/pages/settings.dart'; | import 'package:obtainium/pages/settings.dart'; | ||||||
| import 'package:obtainium/providers/apps_provider.dart'; | import 'package:obtainium/providers/apps_provider.dart'; | ||||||
| import 'package:obtainium/providers/settings_provider.dart'; | import 'package:obtainium/providers/settings_provider.dart'; | ||||||
| import 'package:obtainium/providers/source_provider.dart'; |  | ||||||
| import 'package:provider/provider.dart'; | import 'package:provider/provider.dart'; | ||||||
| import 'package:url_launcher/url_launcher_string.dart'; | import 'package:url_launcher/url_launcher_string.dart'; | ||||||
|  |  | ||||||
| @@ -201,14 +200,6 @@ class _HomePageState extends State<HomePage> { | |||||||
|               ), |               ), | ||||||
|               context, |               context, | ||||||
|             ); |             ); | ||||||
|             await appsProvider |  | ||||||
|                 .checkUpdates(specificIds: result.key.map((e) => e.id).toList()) |  | ||||||
|                 .catchError((e) { |  | ||||||
|                   if (e is Map && e['errors'] is MultiAppMultiError) { |  | ||||||
|                     showError(e['errors'].toString(), context); |  | ||||||
|                   } |  | ||||||
|                   return <App>[]; |  | ||||||
|                 }); |  | ||||||
|           } |           } | ||||||
|         } else { |         } else { | ||||||
|           throw ObtainiumError(tr('unknown')); |           throw ObtainiumError(tr('unknown')); | ||||||
|   | |||||||
| @@ -396,9 +396,7 @@ class _ImportExportPageState extends State<ImportExportPage> { | |||||||
|                               Expanded( |                               Expanded( | ||||||
|                                 child: TextButton( |                                 child: TextButton( | ||||||
|                                   style: outlineButtonStyle, |                                   style: outlineButtonStyle, | ||||||
|                                   onPressed: |                                   onPressed: importInProgress | ||||||
|                                       appsProvider.apps.isEmpty || |  | ||||||
|                                           importInProgress |  | ||||||
|                                       ? null |                                       ? null | ||||||
|                                       : () { |                                       : () { | ||||||
|                                           runObtainiumExport(pickOnly: true); |                                           runObtainiumExport(pickOnly: true); | ||||||
| @@ -414,9 +412,7 @@ class _ImportExportPageState extends State<ImportExportPage> { | |||||||
|                                 child: TextButton( |                                 child: TextButton( | ||||||
|                                   style: outlineButtonStyle, |                                   style: outlineButtonStyle, | ||||||
|                                   onPressed: |                                   onPressed: | ||||||
|                                       appsProvider.apps.isEmpty || |                                       importInProgress || snapshot.data == null | ||||||
|                                           importInProgress || |  | ||||||
|                                           snapshot.data == null |  | ||||||
|                                       ? null |                                       ? null | ||||||
|                                       : runObtainiumExport, |                                       : runObtainiumExport, | ||||||
|                                   child: Text( |                                   child: Text( | ||||||
| @@ -459,11 +455,17 @@ class _ImportExportPageState extends State<ImportExportPage> { | |||||||
|                                       ), |                                       ), | ||||||
|                                     ], |                                     ], | ||||||
|                                     [ |                                     [ | ||||||
|                                       GeneratedFormSwitch( |                                       GeneratedFormDropdown( | ||||||
|                                         'exportSettings', |                                         'exportSettings', | ||||||
|  |                                         [ | ||||||
|  |                                           MapEntry('0', tr('none')), | ||||||
|  |                                           MapEntry('1', tr('excludeSecrets')), | ||||||
|  |                                           MapEntry('2', tr('all')), | ||||||
|  |                                         ], | ||||||
|                                         label: tr('includeSettings'), |                                         label: tr('includeSettings'), | ||||||
|                                         defaultValue: |                                         defaultValue: settingsProvider | ||||||
|                                             settingsProvider.exportSettings, |                                             .exportSettings | ||||||
|  |                                             .toString(), | ||||||
|                                       ), |                                       ), | ||||||
|                                     ], |                                     ], | ||||||
|                                   ], |                                   ], | ||||||
| @@ -477,7 +479,7 @@ class _ImportExportPageState extends State<ImportExportPage> { | |||||||
|                                       } |                                       } | ||||||
|                                       if (value['exportSettings'] != null) { |                                       if (value['exportSettings'] != null) { | ||||||
|                                         settingsProvider.exportSettings = |                                         settingsProvider.exportSettings = | ||||||
|                                             value['exportSettings'] == true; |                                             int.parse(value['exportSettings']); | ||||||
|                                       } |                                       } | ||||||
|                                     } |                                     } | ||||||
|                                   }, |                                   }, | ||||||
| @@ -499,7 +501,7 @@ class _ImportExportPageState extends State<ImportExportPage> { | |||||||
|                   else |                   else | ||||||
|                     Column( |                     Column( | ||||||
|                       children: [ |                       children: [ | ||||||
|                         const Divider(height: 32), |                         SizedBox(height: 32), | ||||||
|                         Row( |                         Row( | ||||||
|                           children: [ |                           children: [ | ||||||
|                             Expanded( |                             Expanded( | ||||||
| @@ -543,7 +545,7 @@ class _ImportExportPageState extends State<ImportExportPage> { | |||||||
|                                 child: Text( |                                 child: Text( | ||||||
|                                   tr( |                                   tr( | ||||||
|                                     'searchX', |                                     'searchX', | ||||||
|                                     args: [tr('source').toLowerCase()], |                                     args: [lowerCaseIfEnglish(tr('source'))], | ||||||
|                                   ), |                                   ), | ||||||
|                                 ), |                                 ), | ||||||
|                               ), |                               ), | ||||||
| @@ -710,6 +712,12 @@ class _SelectionModalState extends State<SelectionModal> { | |||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   void selectAll({bool deselect = false}) { | ||||||
|  |     for (var e in entrySelections.keys) { | ||||||
|  |       entrySelections[e] = !deselect; | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |  | ||||||
|   @override |   @override | ||||||
|   Widget build(BuildContext context) { |   Widget build(BuildContext context) { | ||||||
|     Map<MapEntry<String, List<String>>, bool> filteredEntrySelections = {}; |     Map<MapEntry<String, List<String>>, bool> filteredEntrySelections = {}; | ||||||
| @@ -731,6 +739,32 @@ class _SelectionModalState extends State<SelectionModal> { | |||||||
|         } |         } | ||||||
|       }); |       }); | ||||||
|     } |     } | ||||||
|  |     getSelectAllButton() { | ||||||
|  |       if (widget.onlyOneSelectionAllowed) { | ||||||
|  |         return SizedBox.shrink(); | ||||||
|  |       } | ||||||
|  |       var noneSelected = entrySelections.values.where((v) => v == true).isEmpty; | ||||||
|  |       return noneSelected | ||||||
|  |           ? TextButton( | ||||||
|  |               style: const ButtonStyle(visualDensity: VisualDensity.compact), | ||||||
|  |               onPressed: () { | ||||||
|  |                 setState(() { | ||||||
|  |                   selectAll(); | ||||||
|  |                 }); | ||||||
|  |               }, | ||||||
|  |               child: Text(tr('selectAll')), | ||||||
|  |             ) | ||||||
|  |           : TextButton( | ||||||
|  |               style: const ButtonStyle(visualDensity: VisualDensity.compact), | ||||||
|  |               onPressed: () { | ||||||
|  |                 setState(() { | ||||||
|  |                   selectAll(deselect: true); | ||||||
|  |                 }); | ||||||
|  |               }, | ||||||
|  |               child: Text(tr('deselectX', args: [''])), | ||||||
|  |             ); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     return AlertDialog( |     return AlertDialog( | ||||||
|       scrollable: true, |       scrollable: true, | ||||||
|       title: Text(widget.title ?? tr('pick')), |       title: Text(widget.title ?? tr('pick')), | ||||||
| @@ -900,6 +934,7 @@ class _SelectionModalState extends State<SelectionModal> { | |||||||
|         ], |         ], | ||||||
|       ), |       ), | ||||||
|       actions: [ |       actions: [ | ||||||
|  |         getSelectAllButton(), | ||||||
|         TextButton( |         TextButton( | ||||||
|           onPressed: () { |           onPressed: () { | ||||||
|             Navigator.of(context).pop(); |             Navigator.of(context).pop(); | ||||||
|   | |||||||
| @@ -1025,13 +1025,19 @@ class AppsProvider with ChangeNotifier { | |||||||
|       ); |       ); | ||||||
|     } |     } | ||||||
|     getHost(String url) { |     getHost(String url) { | ||||||
|  |       if (url == 'placeholder') { | ||||||
|  |         return null; | ||||||
|  |       } | ||||||
|       var temp = Uri.parse(url).host.split('.'); |       var temp = Uri.parse(url).host.split('.'); | ||||||
|       return temp.sublist(temp.length - 2).join('.'); |       return temp.sublist(temp.length - 2).join('.'); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     // If the picked APK comes from an origin different from the source, get user confirmation (if context provided) |     // If the picked APK comes from an origin different from the source, get user confirmation (if context provided) | ||||||
|     if (appFileUrl != null && |     if (appFileUrl != null && | ||||||
|         getHost(appFileUrl.value) != getHost(app.url) && |         ![ | ||||||
|  |           getHost(app.url), | ||||||
|  |           'placeholder', | ||||||
|  |         ].contains(getHost(appFileUrl.value)) && | ||||||
|         context != null) { |         context != null) { | ||||||
|       if (!(settingsProvider.hideAPKOriginWarning) && |       if (!(settingsProvider.hideAPKOriginWarning) && | ||||||
|           await showDialog( |           await showDialog( | ||||||
| @@ -1077,7 +1083,8 @@ class AppsProvider with ChangeNotifier { | |||||||
|       MapEntry<String, String>? apkUrl; |       MapEntry<String, String>? apkUrl; | ||||||
|       var trackOnly = apps[id]!.app.additionalSettings['trackOnly'] == true; |       var trackOnly = apps[id]!.app.additionalSettings['trackOnly'] == true; | ||||||
|       var refreshBeforeDownload = |       var refreshBeforeDownload = | ||||||
|           apps[id]!.app.additionalSettings['refreshBeforeDownload'] == true; |           apps[id]!.app.additionalSettings['refreshBeforeDownload'] == true || | ||||||
|  |           apps[id]!.app.apkUrls.first.value == 'placeholder'; | ||||||
|       if (refreshBeforeDownload) { |       if (refreshBeforeDownload) { | ||||||
|         await checkUpdate(apps[id]!.app.id); |         await checkUpdate(apps[id]!.app.id); | ||||||
|       } |       } | ||||||
| @@ -1121,6 +1128,7 @@ class AppsProvider with ChangeNotifier { | |||||||
|       obtainiumId, |       obtainiumId, | ||||||
|       strB: obtainiumTempId, |       strB: obtainiumTempId, | ||||||
|     ); |     ); | ||||||
|  |     appsToInstall = moveStrToEnd(appsToInstall, '$obtainiumId.fdroid'); | ||||||
|  |  | ||||||
|     Future<void> installFn( |     Future<void> installFn( | ||||||
|       String id, |       String id, | ||||||
| @@ -1300,7 +1308,8 @@ class AppsProvider with ChangeNotifier { | |||||||
|       } |       } | ||||||
|       MapEntry<String, String>? fileUrl; |       MapEntry<String, String>? fileUrl; | ||||||
|       var refreshBeforeDownload = |       var refreshBeforeDownload = | ||||||
|           apps[id]!.app.additionalSettings['refreshBeforeDownload'] == true; |           apps[id]!.app.additionalSettings['refreshBeforeDownload'] == true || | ||||||
|  |           apps[id]!.app.apkUrls.first.value == 'placeholder'; | ||||||
|       if (refreshBeforeDownload) { |       if (refreshBeforeDownload) { | ||||||
|         await checkUpdate(apps[id]!.app.id); |         await checkUpdate(apps[id]!.app.id); | ||||||
|       } |       } | ||||||
| @@ -1964,7 +1973,7 @@ class AppsProvider with ChangeNotifier { | |||||||
|  |  | ||||||
|   Map<String, dynamic> generateExportJSON({ |   Map<String, dynamic> generateExportJSON({ | ||||||
|     List<String>? appIds, |     List<String>? appIds, | ||||||
|     bool? overrideExportSettings, |     int? overrideExportSettings, | ||||||
|   }) { |   }) { | ||||||
|     Map<String, dynamic> finalExport = {}; |     Map<String, dynamic> finalExport = {}; | ||||||
|     finalExport['apps'] = apps.values |     finalExport['apps'] = apps.values | ||||||
| @@ -1977,15 +1986,18 @@ class AppsProvider with ChangeNotifier { | |||||||
|         }) |         }) | ||||||
|         .map((e) => e.app.toJson()) |         .map((e) => e.app.toJson()) | ||||||
|         .toList(); |         .toList(); | ||||||
|     bool shouldExportSettings = settingsProvider.exportSettings; |     int shouldExportSettings = settingsProvider.exportSettings; | ||||||
|     if (overrideExportSettings != null) { |     if (overrideExportSettings != null) { | ||||||
|       shouldExportSettings = overrideExportSettings; |       shouldExportSettings = overrideExportSettings; | ||||||
|     } |     } | ||||||
|     if (shouldExportSettings) { |     if (shouldExportSettings > 0) { | ||||||
|  |       var settingsValueKeys = settingsProvider.prefs?.getKeys(); | ||||||
|  |       if (shouldExportSettings < 2) { | ||||||
|  |         settingsValueKeys?.removeWhere((k) => k.endsWith('-creds')); | ||||||
|  |       } | ||||||
|       finalExport['settings'] = Map<String, Object?>.fromEntries( |       finalExport['settings'] = Map<String, Object?>.fromEntries( | ||||||
|         (settingsProvider.prefs |         (settingsValueKeys | ||||||
|                 ?.getKeys() |                 ?.map((key) => MapEntry(key, settingsProvider.prefs?.get(key))) | ||||||
|                 .map((key) => MapEntry(key, settingsProvider.prefs?.get(key))) |  | ||||||
|                 .toList()) ?? |                 .toList()) ?? | ||||||
|             [], |             [], | ||||||
|       ); |       ); | ||||||
| @@ -2152,7 +2164,7 @@ class _AppFilePickerState extends State<AppFilePicker> { | |||||||
|       scrollable: true, |       scrollable: true, | ||||||
|       title: Text( |       title: Text( | ||||||
|         widget.pickAnyAsset |         widget.pickAnyAsset | ||||||
|             ? tr('selectX', args: [tr('releaseAsset').toLowerCase()]) |             ? tr('selectX', args: [lowerCaseIfEnglish(tr('releaseAsset'))]) | ||||||
|             : tr('pickAnAPK'), |             : tr('pickAnAPK'), | ||||||
|       ), |       ), | ||||||
|       content: Column( |       content: Column( | ||||||
| @@ -2511,7 +2523,10 @@ Future<void> bgUpdateCheck(String taskId, Map<String, dynamic>? params) async { | |||||||
|       } |       } | ||||||
|     } |     } | ||||||
|     if (toInstall.isNotEmpty) { |     if (toInstall.isNotEmpty) { | ||||||
|       var tempObtArr = toInstall.where((element) => element.key == obtainiumId); |       var tempObtArr = toInstall.where( | ||||||
|  |         (element) => | ||||||
|  |             element.key == obtainiumId || element.key == '$obtainiumId.fdroid', | ||||||
|  |       ); | ||||||
|       if (tempObtArr.isNotEmpty) { |       if (tempObtArr.isNotEmpty) { | ||||||
|         // Move obtainium to the end of the list as it must always install last |         // Move obtainium to the end of the list as it must always install last | ||||||
|         var obt = tempObtArr.first; |         var obt = tempObtArr.first; | ||||||
|   | |||||||
| @@ -453,12 +453,19 @@ class SettingsProvider with ChangeNotifier { | |||||||
|     notifyListeners(); |     notifyListeners(); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   bool get exportSettings { |   int get exportSettings { | ||||||
|     return prefs?.getBool('exportSettings') ?? false; |     try { | ||||||
|  |       return prefs?.getInt('exportSettings') ?? | ||||||
|  |           1; // 0 for no, 1 for yes but no secrets, 2 for everything | ||||||
|  |     } catch (e) { | ||||||
|  |       var val = prefs?.getBool('exportSettings') == true ? 1 : 0; | ||||||
|  |       prefs?.setInt('exportSettings', val); | ||||||
|  |       return val; | ||||||
|  |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   set exportSettings(bool val) { |   set exportSettings(int val) { | ||||||
|     prefs?.setBool('exportSettings', val); |     prefs?.setInt('exportSettings', val > 2 || val < 0 ? 1 : val); | ||||||
|     notifyListeners(); |     notifyListeners(); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -16,6 +16,7 @@ import 'package:obtainium/app_sources/aptoide.dart'; | |||||||
| import 'package:obtainium/app_sources/codeberg.dart'; | import 'package:obtainium/app_sources/codeberg.dart'; | ||||||
| import 'package:obtainium/app_sources/coolapk.dart'; | import 'package:obtainium/app_sources/coolapk.dart'; | ||||||
| import 'package:obtainium/app_sources/directAPKLink.dart'; | import 'package:obtainium/app_sources/directAPKLink.dart'; | ||||||
|  | import 'package:obtainium/app_sources/farsroid.dart'; | ||||||
| import 'package:obtainium/app_sources/fdroid.dart'; | import 'package:obtainium/app_sources/fdroid.dart'; | ||||||
| import 'package:obtainium/app_sources/fdroidrepo.dart'; | import 'package:obtainium/app_sources/fdroidrepo.dart'; | ||||||
| import 'package:obtainium/app_sources/github.dart'; | import 'package:obtainium/app_sources/github.dart'; | ||||||
| @@ -63,11 +64,13 @@ class APKDetails { | |||||||
|   }); |   }); | ||||||
| } | } | ||||||
|  |  | ||||||
| List<List<String>> stringMapListTo2DList(List<MapEntry<String, String>> mapList) => | List<List<String>> stringMapListTo2DList( | ||||||
|     mapList.map((e) => [e.key, e.value]).toList(); |   List<MapEntry<String, String>> mapList, | ||||||
|  | ) => mapList.map((e) => [e.key, e.value]).toList(); | ||||||
|  |  | ||||||
| List<MapEntry<String, String>> assumed2DlistToStringMapList(List<dynamic> arr) => | List<MapEntry<String, String>> assumed2DlistToStringMapList( | ||||||
|     arr.map((e) => MapEntry(e[0] as String, e[1] as String)).toList(); |   List<dynamic> arr, | ||||||
|  | ) => arr.map((e) => MapEntry(e[0] as String, e[1] as String)).toList(); | ||||||
|  |  | ||||||
| // App JSON schema has changed multiple times over the many versions of Obtainium | // App JSON schema has changed multiple times over the many versions of Obtainium | ||||||
| // This function takes an App JSON and modifies it if needed to conform to the latest (current) version | // This function takes an App JSON and modifies it if needed to conform to the latest (current) version | ||||||
| @@ -1049,6 +1052,9 @@ List<MapEntry<String, String>> filterApks( | |||||||
|   return apkUrls; |   return apkUrls; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | bool isEnglish() => tr('and') == 'and'; // Quick hack, find a better way | ||||||
|  | String lowerCaseIfEnglish(String str) => isEnglish() ? str.toLowerCase() : str; | ||||||
|  |  | ||||||
| bool isVersionPseudo(App app) => | bool isVersionPseudo(App app) => | ||||||
|     app.additionalSettings['trackOnly'] == true || |     app.additionalSettings['trackOnly'] == true || | ||||||
|     (app.installedVersion != null && |     (app.installedVersion != null && | ||||||
| @@ -1074,6 +1080,7 @@ class SourceProvider { | |||||||
|     Jenkins(), |     Jenkins(), | ||||||
|     APKMirror(), |     APKMirror(), | ||||||
|     RuStore(), |     RuStore(), | ||||||
|  |     Farsroid(), | ||||||
|     TelegramApp(), |     TelegramApp(), | ||||||
|     NeutronCode(), |     NeutronCode(), | ||||||
|     DirectAPKLink(), |     DirectAPKLink(), | ||||||
|   | |||||||
							
								
								
									
										44
									
								
								pubspec.lock
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								pubspec.lock
									
									
									
									
									
								
							| @@ -96,10 +96,10 @@ packages: | |||||||
|     dependency: "direct main" |     dependency: "direct main" | ||||||
|     description: |     description: | ||||||
|       name: background_fetch |       name: background_fetch | ||||||
|       sha256: "442e82f508708be89fd0cc7e1dc3b27bc7c6c8c39a47967ccb7ed1c57b9108b5" |       sha256: e767745c31f71660063985c982497995d0a71755d3f1b0c8e8c96988d64d3003 | ||||||
|       url: "https://pub.dev" |       url: "https://pub.dev" | ||||||
|     source: hosted |     source: hosted | ||||||
|     version: "1.3.8" |     version: "1.4.0" | ||||||
|   battery_plus: |   battery_plus: | ||||||
|     dependency: "direct main" |     dependency: "direct main" | ||||||
|     description: |     description: | ||||||
| @@ -240,10 +240,10 @@ packages: | |||||||
|     dependency: "direct main" |     dependency: "direct main" | ||||||
|     description: |     description: | ||||||
|       name: easy_localization |       name: easy_localization | ||||||
|       sha256: "0f5239c7b8ab06c66440cfb0e9aa4b4640429c6668d5a42fe389c5de42220b12" |       sha256: "2ccdf9db8fe4d9c5a75c122e6275674508fd0f0d49c827354967b8afcc56bbed" | ||||||
|       url: "https://pub.dev" |       url: "https://pub.dev" | ||||||
|     source: hosted |     source: hosted | ||||||
|     version: "3.0.7+1" |     version: "3.0.8" | ||||||
|   easy_logger: |   easy_logger: | ||||||
|     dependency: transitive |     dependency: transitive | ||||||
|     description: |     description: | ||||||
| @@ -288,10 +288,10 @@ packages: | |||||||
|     dependency: "direct main" |     dependency: "direct main" | ||||||
|     description: |     description: | ||||||
|       name: file_picker |       name: file_picker | ||||||
|       sha256: ef9908739bdd9c476353d6adff72e88fd00c625f5b959ae23f7567bd5137db0a |       sha256: "13ba4e627ef24503a465d1d61b32596ce10eb6b8903678d362a528f9939b4aa8" | ||||||
|       url: "https://pub.dev" |       url: "https://pub.dev" | ||||||
|     source: hosted |     source: hosted | ||||||
|     version: "10.2.0" |     version: "10.2.1" | ||||||
|   fixnum: |   fixnum: | ||||||
|     dependency: transitive |     dependency: transitive | ||||||
|     description: |     description: | ||||||
| @@ -341,18 +341,18 @@ packages: | |||||||
|     dependency: transitive |     dependency: transitive | ||||||
|     description: |     description: | ||||||
|       name: flutter_charset_detector_android |       name: flutter_charset_detector_android | ||||||
|       sha256: "443145e8fc8515b3b32aee375691e40dd59197a86a2ae153166bc88c8200d83b" |       sha256: "617345b0f78ad56c2633ea6132e57c2e374f6970792afbe9743237f683eeae8e" | ||||||
|       url: "https://pub.dev" |       url: "https://pub.dev" | ||||||
|     source: hosted |     source: hosted | ||||||
|     version: "3.0.0" |     version: "3.1.1" | ||||||
|   flutter_charset_detector_darwin: |   flutter_charset_detector_darwin: | ||||||
|     dependency: transitive |     dependency: transitive | ||||||
|     description: |     description: | ||||||
|       name: flutter_charset_detector_darwin |       name: flutter_charset_detector_darwin | ||||||
|       sha256: daac20390275efb92fbb14350fe11286c5e29c7b80d6b0867f52d760f0d69763 |       sha256: "8cf51c3e16c2fb4ec4e309f16f6046a0ddf1ff57d1b6b696410d077a9ffbfb15" | ||||||
|       url: "https://pub.dev" |       url: "https://pub.dev" | ||||||
|     source: hosted |     source: hosted | ||||||
|     version: "1.1.0" |     version: "1.2.1" | ||||||
|   flutter_charset_detector_platform_interface: |   flutter_charset_detector_platform_interface: | ||||||
|     dependency: transitive |     dependency: transitive | ||||||
|     description: |     description: | ||||||
| @@ -716,10 +716,10 @@ packages: | |||||||
|     dependency: "direct main" |     dependency: "direct main" | ||||||
|     description: |     description: | ||||||
|       name: permission_handler |       name: permission_handler | ||||||
|       sha256: "2d070d8684b68efb580a5997eb62f675e8a885ef0be6e754fb9ef489c177470f" |       sha256: bc917da36261b00137bbc8896bf1482169cd76f866282368948f032c8c1caae1 | ||||||
|       url: "https://pub.dev" |       url: "https://pub.dev" | ||||||
|     source: hosted |     source: hosted | ||||||
|     version: "12.0.0+1" |     version: "12.0.1" | ||||||
|   permission_handler_android: |   permission_handler_android: | ||||||
|     dependency: transitive |     dependency: transitive | ||||||
|     description: |     description: | ||||||
| @@ -955,10 +955,10 @@ packages: | |||||||
|     dependency: transitive |     dependency: transitive | ||||||
|     description: |     description: | ||||||
|       name: sqflite_common |       name: sqflite_common | ||||||
|       sha256: "84731e8bfd8303a3389903e01fb2141b6e59b5973cacbb0929021df08dddbe8b" |       sha256: "6ef422a4525ecc601db6c0a2233ff448c731307906e92cabc9ba292afaae16a6" | ||||||
|       url: "https://pub.dev" |       url: "https://pub.dev" | ||||||
|     source: hosted |     source: hosted | ||||||
|     version: "2.5.5" |     version: "2.5.6" | ||||||
|   sqflite_darwin: |   sqflite_darwin: | ||||||
|     dependency: transitive |     dependency: transitive | ||||||
|     description: |     description: | ||||||
| @@ -1051,10 +1051,10 @@ packages: | |||||||
|     dependency: "direct main" |     dependency: "direct main" | ||||||
|     description: |     description: | ||||||
|       name: url_launcher |       name: url_launcher | ||||||
|       sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603" |       sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 | ||||||
|       url: "https://pub.dev" |       url: "https://pub.dev" | ||||||
|     source: hosted |     source: hosted | ||||||
|     version: "6.3.1" |     version: "6.3.2" | ||||||
|   url_launcher_android: |   url_launcher_android: | ||||||
|     dependency: transitive |     dependency: transitive | ||||||
|     description: |     description: | ||||||
| @@ -1155,26 +1155,26 @@ packages: | |||||||
|     dependency: transitive |     dependency: transitive | ||||||
|     description: |     description: | ||||||
|       name: webview_flutter_android |       name: webview_flutter_android | ||||||
|       sha256: f6e6afef6e234801da77170f7a1847ded8450778caf2fe13979d140484be3678 |       sha256: "9573ad97890d199ac3ab32399aa33a5412163b37feb573eb5b0a76b35e9ffe41" | ||||||
|       url: "https://pub.dev" |       url: "https://pub.dev" | ||||||
|     source: hosted |     source: hosted | ||||||
|     version: "4.7.0" |     version: "4.8.2" | ||||||
|   webview_flutter_platform_interface: |   webview_flutter_platform_interface: | ||||||
|     dependency: transitive |     dependency: transitive | ||||||
|     description: |     description: | ||||||
|       name: webview_flutter_platform_interface |       name: webview_flutter_platform_interface | ||||||
|       sha256: f0dc2dc3a2b1e3a6abdd6801b9355ebfeb3b8f6cde6b9dc7c9235909c4a1f147 |       sha256: "63d26ee3aca7256a83ccb576a50272edd7cfc80573a4305caa98985feb493ee0" | ||||||
|       url: "https://pub.dev" |       url: "https://pub.dev" | ||||||
|     source: hosted |     source: hosted | ||||||
|     version: "2.13.1" |     version: "2.14.0" | ||||||
|   webview_flutter_wkwebview: |   webview_flutter_wkwebview: | ||||||
|     dependency: transitive |     dependency: transitive | ||||||
|     description: |     description: | ||||||
|       name: webview_flutter_wkwebview |       name: webview_flutter_wkwebview | ||||||
|       sha256: a3d461fe3467014e05f3ac4962e5fdde2a4bf44c561cb53e9ae5c586600fdbc3 |       sha256: "71523b9048cf510cfa1fd4e0a3fa5e476a66e0884d5df51d59d5023dba237107" | ||||||
|       url: "https://pub.dev" |       url: "https://pub.dev" | ||||||
|     source: hosted |     source: hosted | ||||||
|     version: "3.22.0" |     version: "3.22.1" | ||||||
|   win32: |   win32: | ||||||
|     dependency: transitive |     dependency: transitive | ||||||
|     description: |     description: | ||||||
|   | |||||||
| @@ -16,7 +16,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev | |||||||
| # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html | # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html | ||||||
| # In Windows, build-name is used as the major, minor, and patch parts | # In Windows, build-name is used as the major, minor, and patch parts | ||||||
| # of the product and file versions while build-number is used as the build suffix. | # of the product and file versions while build-number is used as the build suffix. | ||||||
| version: 1.2.0+2316 | version: 1.2.2+2318 | ||||||
|  |  | ||||||
| environment: | environment: | ||||||
|   sdk: ^3.8.1 |   sdk: ^3.8.1 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user