diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5e482a02..d4a17f5f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,11 +46,7 @@ jobs: # Handle both .gradle and .gradle.kts files sed -i 's/signingConfig = signingConfigs.getByName("release")//g' android/app/build.gradle || true sed -i 's/signingConfig = signingConfigs.getByName("release")//g' android/app/build.gradle.kts || true - - - name: Analyze Code - run: | - flutter analyze - + - name: Build APK (Debug with ABI Splitting) run: | # Inject the short SHA into the Application ID to allow side-by-side testing diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index 166236d1..5a8ba661 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -39,8 +39,8 @@ android { targetCompatibility = JavaVersion.VERSION_17 } - kotlinOptions { - jvmTarget = JavaVersion.VERSION_17.toString() + kotlin { + jvmToolchain(17) } defaultConfig { @@ -51,6 +51,11 @@ android { targetSdk = flutter.targetSdkVersion versionCode = flutterVersionCode.toInt() versionName = flutterVersionName + + // Enable split APKs for different ABIs + ndk { + abiFilters += listOf("armeabi-v7a", "arm64-v8a", "x86_64") + } } flavorDimensions += "default" @@ -111,20 +116,38 @@ android { versionNameSuffix = "-debug" } } + + // Configure split APK generation + splits { + abi { + isEnable = true + reset() + include("armeabi-v7a", "arm64-v8a", "x86_64") + isUniversalApk = true + } + } } val abiCodes = mapOf("x86_64" to 1, "armeabi-v7a" to 2, "arm64-v8a" to 3) +androidComponents { + onVariants { variant -> + variant.outputs.forEach { output -> + val abiFilter = output.filters.find { + it.filterType == com.android.build.api.variant.VariantOutputConfiguration.FilterType.ABI + } + val abiVersionCode = abiFilter?.identifier?.let { abiCodes[it] } -android.applicationVariants.configureEach { - val variant = this - variant.outputs.forEach { output -> - val abiVersionCode = abiCodes[output.filters.find { it.filterType == "ABI" }?.identifier] - if (abiVersionCode != null) { - // Create a version code within Android limits (max 2100000000) - // Use: (YYMMDDHH % 100000) * 100 + ABI to stay well under limits - val baseBuildNumber = flutterVersionCode.toLong() - val compressedCode = (baseBuildNumber % 100000) * 100 + abiVersionCode - (output as ApkVariantOutputImpl).versionCodeOverride = compressedCode.toInt() + if (abiVersionCode != null) { + // Create a version code within Android limits (max 2100000000) + // Use: (YYMMDDHH % 100000) * 100 + ABI to stay well under limits + val baseBuildNumber = requireNotNull(flutterVersionCode.toLongOrNull()) { + "Invalid flutter.versionCode='$flutterVersionCode' in local.properties; must be a number." + } + val compressedCode = (baseBuildNumber % 100000) * 100 + abiVersionCode + val maxPlayVersionCode = 2_100_000_000L + val safeVersionCode = compressedCode.coerceIn(1L, maxPlayVersionCode) + output.versionCode.set(safeVersionCode.toInt()) + } } } } diff --git a/assets/translations/ar.json b/assets/translations/ar.json index 3e8e4b97..bfe27811 100644 --- a/assets/translations/ar.json +++ b/assets/translations/ar.json @@ -24,7 +24,7 @@ "color": "لون", "standard": "قياسي", "custom": "مخصّص", - "useMaterialYou": "استخدم Material You", + "useMaterialYou": "استخدم ألوان Material You", "githubStarredRepos": "مستودعات GitHub المفضلة", "uname": "اسم المستخدم", "wrongArgNum": "عدد وسائط غير صحيح", @@ -342,72 +342,88 @@ "GHReqPrefix": "نسخة \"sky22333/hubproxy\" لطلبات GitHub", "includeZips": "ضمّن ملفات ZIP", "zippedApkFilterRegEx": "تصفية ملفات APK داخل ZIP", - "googleVerificationWarningP1": "(جوجل) أعلن أنه، بدءاً من عام 2026/2027، كل التطبيقات على أجهزة (أندرويد) مصدقة ستطلب من المطور تقديم تفاصيل الهوية الشخصية مباشرة إلى (غوغل).\n\nوبما أن مطوري هذا التطبيق لا يوافقون على هذا الشرط، فإن Updatium لن يعمل بعد ذلك الوقت على أجهزة أندرويدية معتمدة.", + "googleVerificationWarningP1": "(جوجل) أعلن أنه، بدءاً من عام 2026/2027، كل التطبيقات على أجهزة (أندرويد) مصدقة ستطلب من المطور تقديم تفاصيل الهوية الشخصية مباشرة إلى (غوغل).\n\nبعد ذلك، قد يتوقف Updatium عن العمل على أجهزة أندرويدية معتمدة.", "googleVerificationWarningP2": "Go to https://keepandroidopen.org/ for more information.", "googleVerificationWarningP3": "ونلاحظ أنه في الأجل القصير، قد يظل من الممكن تركيب عملية \" غير متوافقة \" من خلال عملية \" تدفق سريع \" وعد غوغل بتنفيذها بعد رد فعل واسع النطاق على إعلانهم، ولكنهم لم يفصلوا كيف سينجح ذلك حتى لا يتضح ما إذا كان سيحافظ حقا على حريات المستعملين بأي طريقة عملية.\n\nعلى أية حال، حركة (جوجل) خطوة هامة نحو نهاية الحوسبة المجانية ذات الأغراض العامة للأفراد\n\nوينبغي ألا يتأثر هذا النظام غير المصدق عليه، مثل غرافينيوس، طالما يسمح له باستمرار وجوده.", "multipleSigners": "عدد من الدول الموقعة", "removeAppQuestion": { "one": "إزالة التطبيق؟", + "two": "إزالة التطبيقين؟", "other": "إزالة التطبيقات؟" }, "tooManyRequestsTryAgainInMinutes": { "one": "طلبات كثيرة جدًا (حُدد المعدل) - حاول مرة أخرى بعد {} دقيقة", + "two": "طلبات كثيرة جدًا (حُدد المعدل) - حاول مرة أخرى بعد {} دقيقتين", "other": "طلبات كثيرة جدًا (حُدد المعدل) - حاول مرة أخرى بعد {} دقائق" }, "bgUpdateGotErrorRetryInMinutes": { "one": "واجه التحقق من التحديثات في الخلفية {}، سيتم جدولة محاولة أخرى بعد {} دقيقة", + "two": "واجه التحقق من التحديثات في الخلفية {}، سيتم جدولة محاولة أخرى بعد {} دقيقتين", "other": "واجه التحقق من التحديثات في الخلفية {}، سيتم جدولة محاولة أخرى بعد {} دقائق" }, "bgCheckFoundUpdatesWillNotifyIfNeeded": { "one": "وجد التحقق من التحديثات في الخلفية {} تحديث - سيتم إخطار المستخدم إذا لزم الأمر", + "two": "وجد التحقق من التحديثات في الخلفية {} تحديثين - سيتم إخطار المستخدم إذا لزم الأمر", "other": "وجد التحقق من التحديثات في الخلفية {} تحديثات - سيتم إخطار المستخدم إذا لزم الأمر" }, "apps": { "one": "{} تطبيق", + "two": "تطبيقان", "other": "{} تطبيقات" }, "url": { "one": "{} رابط", + "two": "رابطان", "other": "{} روابط" }, "minute": { "one": "{} دقيقة", + "two": "دقيقتان", "other": "{} دقائق" }, "hour": { "one": "{} ساعة", + "two": "ساعتان", "other": "{} ساعات" }, "day": { "one": "{} يوم", + "two": "يومان", "other": "{} أيام" }, "clearedNLogsBeforeXAfterY": { "one": "مُسح {n} سجل (قبل = {before}, بعد = {after})", + "two": "مُسح {n} سجلان (قبل = {before}, بعد = {after})", "other": "مُسح {n} سجلات (قبل = {before}, بعد = {after})" }, "xAndNMoreUpdatesAvailable": { "one": "{} وتطبيق واحد آخر لديه تحديثات.", + "two": "{} وتطبيقان آخران لديهما تحديثات.", "other": "{} و{} تطبيقات أخرى لديها تحديثات." }, "xAndNMoreUpdatesInstalled": { "one": "{} وتطبيق واحد آخر حُدث.", + "two": "{} وتطبيقان آخران حُدثا.", "other": "{} و{} تطبيقات أخرى حُدثت." }, "xAndNMoreUpdatesFailed": { "one": "فشل تحديث {} وتطبيق واحد آخر.", + "two": "فشل تحديث {} وتطبيقان آخران.", "other": "فشل تحديث {} و{} تطبيقات أخرى." }, "xAndNMoreUpdatesPossiblyInstalled": { "one": "{} وتطبيق واحد آخر قد حُدث.", + "two": "{} وتطبيقان آخران قد حُدثا.", "other": "{} و{} تطبيقات أخرى قد حُدثت." }, "apk": { "one": "{} APK", + "two": "APKان", "other": "{} APKs" }, "certificateHash": { "one": "بصمة الشهادة", + "two": "بصمتا الشهادة", "other": "بصمات الشهادة" }, "securityDisclaimerTitle": "إخلاء مسؤولية الأمان والقانوني", diff --git a/assets/translations/bs.json b/assets/translations/bs.json index ceb0546f..6a68d2f9 100644 --- a/assets/translations/bs.json +++ b/assets/translations/bs.json @@ -24,7 +24,7 @@ "color": "Boja", "standard": "Standard", "custom": "Custom", - "useMaterialYou": "Koristi Material You temu", + "useMaterialYou": "Koristi Material You boje", "githubStarredRepos": "GitHub repo-i sa zvjezdicom", "uname": "Korisničko ime", "wrongArgNum": "Naveden je pogrešan broj argumenata", @@ -342,7 +342,7 @@ "GHReqPrefix": "'sky22333/hubproxy' istanca za GitHub zahtjeve", "includeZips": "Uključi i ZIP datoteke", "zippedApkFilterRegEx": "Filtriraj APK-ove unutar ZIP datoteka", - "googleVerificationWarningP1": "Google has announced that, starting in 2026/2027, all apps on \"certified\" Android devices will require the developer to submit personal identity details directly to Google.\n\nSince the developers of this app do not agree to this requirement, Updatium will no longer work on certified Android devices after that time.", + "googleVerificationWarningP1": "Google has announced that, starting in 2026/2027, all apps on \"certified\" Android devices will require the developer to submit personal identity details directly to Google.\n\nAfter then, Updatium may stop working on certified Android devices.", "googleVerificationWarningP2": "Go to https://keepandroidopen.org/ for more information.", "googleVerificationWarningP3": "Note that in the short term, it may continue to be possible to install \"unverified\" (non-compliant) apps through an \"advanced flow\" process that Google has promised to implement after broad backlash to their announcement, but they have not detailed how this would work so it is unclear whether it will truly preserve user freedoms in any practical way.\n\nIn any case, Google's move is a significant step towards the end of free, general-purpose computing for individuals.\n\nNon-certified OSes, like GrapheneOS, should be unaffected by this for as long as they are allowed to continue to exist.", "multipleSigners": "Multiple Signers", diff --git a/assets/translations/ca.json b/assets/translations/ca.json index 2ecf6433..4ee34d21 100644 --- a/assets/translations/ca.json +++ b/assets/translations/ca.json @@ -24,7 +24,7 @@ "color": "Color", "standard": "Estàndard", "custom": "Personalitzat", - "useMaterialYou": "Usa 'Material You'", + "useMaterialYou": "Usar colors Material You", "githubStarredRepos": "Repositoris favorits de GitHub", "uname": "Nom d'usuari", "wrongArgNum": "Nombre d'arguments proveït invàlid", @@ -342,7 +342,7 @@ "GHReqPrefix": "exemple per a les peticions de GitHub", "includeZips": "Inclou fitxers ZIPName", "zippedApkFilterRegEx": "Filtre APKs dins ZIPName", - "googleVerificationWarningP1": "Google ha anunciat que, començant en 2026/2027, totes les aplicacions en dispositius d'Android \"que requereixen que el desenvolupador enviï els detalls personals directament a Google.\n\nDes que els desenvolupadors d'aquesta aplicació no estan d'acord amb aquest requisit, l' obtenció ja no funcionarà en els dispositius certificats d'Android.", + "googleVerificationWarningP1": "Google ha anunciat que, començant en 2026/2027, totes les aplicacions en dispositius d'Android \"certificats\" requeriran que el desenvolupador enviï els detalls personals directament a Google.\n\nDesprés d'això, Updatium pot deixar de funcionar en dispositius Android certificats.", "googleVerificationWarningP2": "Aneu a https://buitandoideopen.org/ per a més informació.", "googleVerificationWarningP3": "Tingueu en compte que en el terme curt, pot continuar sent possible instal· lar aplicacions \"inverificats\" (no compatible) mitjançant un procés de flux \"advince\" que Google ha promès implementar després d'una gran reacció al seu anunci, però no han detallat com funcionaria, de manera que és clar si es preservarà realment les llibertats dels usuaris de cap manera pràctica.\n\nEn qualsevol cas, el moviment de Google és un pas significatiu cap al final de la informàtica lliure i general deficient per als individus.\n\nEls SO no validats, com el GraphenOS, no haurien de ser afectats per això sempre que se'ls permeti continuar existint.", "multipleSigners": "Signadors múltiples", diff --git a/assets/translations/cs.json b/assets/translations/cs.json index 9382c31a..6bd0d470 100644 --- a/assets/translations/cs.json +++ b/assets/translations/cs.json @@ -24,7 +24,7 @@ "color": "Barvu", "standard": "Standardní", "custom": "Vlastní", - "useMaterialYou": "Použít Material You", + "useMaterialYou": "Použít barvy Material You", "githubStarredRepos": "Repozitáře na GitHubu označené hvězdičkou", "uname": "Uživatelské jméno", "wrongArgNum": "Nesprávný počet zadaných argumentů", @@ -341,7 +341,7 @@ "GHReqPrefix": "instance 'sky22333/hubproxy' pro požadavky GitHubu", "includeZips": "Zahrnout soubory ZIP", "zippedApkFilterRegEx": "Filtrování souborů APK uvnitř ZIP", - "googleVerificationWarningP1": "Společnost Google oznámila, že počínaje rokem 2026 / 2027 budou všechny aplikace na \"certifikovaných\" zařízeních pro Android vyžadovat, aby vývojář předložil osobní údaje o identitě přímo společnosti Google.\n\nVzhledem k tomu, vývojáři této aplikace nesouhlasí s tímto požadavkem, Obstainium již nebude pracovat na certifikovaných Android zařízení po této době.", + "googleVerificationWarningP1": "Společnost Google oznámila, že počínaje rokem 2026 / 2027 budou všechny aplikace na \"certifikovaných\" zařízeních pro Android vyžadovat, aby vývojář předložil osobní údaje o identitě přímo společnosti Google.\n\nPo této době, Updatium může přestat pracovat na certifikovaných Android zařízeních.", "googleVerificationWarningP2": "Další informace získáte na adrese https: / / keepandroidopen.org.", "googleVerificationWarningP3": "Všimněte si, že v krátkodobém horizontu může být i nadále možné instalovat \"neověřené\" (nevyhovující) aplikace prostřednictvím procesu \"pokročilého toku\", který Google slíbil implementovat po širokém odporu k jejich oznámení, ale neupřesnili, jak by to mělo fungovat, takže není jasné, zda bude skutečně zachovávat uživatelskou svobodu jakýmkoli praktickým způsobem.\n\nV každém případě je krok společnosti Google významným krokem ke konci volného, všeobecného výpočetní techniky pro jednotlivce.\n\nNecertifikované Osy, jako je GrapheneOS, by tím neměly být ovlivněny, pokud budou nadále existovat.", "multipleSigners": "Několik signers", diff --git a/assets/translations/da.json b/assets/translations/da.json index 0b521cfc..be43b425 100644 --- a/assets/translations/da.json +++ b/assets/translations/da.json @@ -24,7 +24,7 @@ "color": "Farve", "standard": "Standard", "custom": "Brugerdefineret", - "useMaterialYou": "Brug Material You", + "useMaterialYou": "Brug Material You-farver", "githubStarredRepos": "Stjernemarkeret GitHub-repos", "uname": "Brugernavn", "wrongArgNum": "Forkert antal argumenter angivet", @@ -341,7 +341,7 @@ "GHReqPrefix": "'sky22333/hubproxy'-instans til GitHub-anmodninger", "includeZips": "Inkluder ZIP-filer", "zippedApkFilterRegEx": "Filtrer APK'er inde i ZIP", - "googleVerificationWarningP1": "Google har annonceret, at fra 2026 / 2027, alle apps på \"certificeret\" Android-enheder vil kræve, at udvikleren til at indsende personlige identitetsoplysninger direkte til Google.\n\nDa udviklerne af denne app ikke accepterer dette krav, Updatium vil ikke længere arbejde på certificerede Android-enheder efter dette tidspunkt.", + "googleVerificationWarningP1": "Google har annonceret, at fra 2026 / 2027, alle apps på \"certificeret\" Android-enheder vil kræve, at udvikleren til at indsende personlige identitetsoplysninger direkte til Google.\n\nEfter dette tidspunkt, kan Updatium holde op med at arbejde på certificerede Android-enheder.", "googleVerificationWarningP2": "Gå til https: / / keepandroidopen.org / for mere information.", "googleVerificationWarningP3": "Bemærk, at på kort sigt, kan det fortsætte med at være muligt at installere \"uverificerbare\" (ikke-overensstemmende) apps gennem en \"avanceret flow\" proces, som Google har lovet at gennemføre efter bred backlash til deres meddelelse, men de har ikke detaljeret, hvordan dette ville arbejde, så det er uklart, om det virkelig vil bevare brugernes friheder i praksis.\n\nUnder alle omstændigheder er Googles bevægelse et væsentligt skridt i retning af afslutningen af fri, generel-formål computing for enkeltpersoner.\n\nIkke-certificerede OS, som GrapheneOS, bør være upåvirket af dette, så længe de har lov til at fortsætte med at eksistere.", "multipleSigners": "Flere signere", diff --git a/assets/translations/de.json b/assets/translations/de.json index 3d7c6fac..d5a18407 100644 --- a/assets/translations/de.json +++ b/assets/translations/de.json @@ -24,7 +24,7 @@ "color": "Farbe", "standard": "Standard", "custom": "Benutzerdefiniert", - "useMaterialYou": "Material You verwenden", + "useMaterialYou": "Material You Farben verwenden", "githubStarredRepos": "GitHub Starred Repos", "uname": "Benutzername", "wrongArgNum": "Falsche Anzahl von Argumenten (Parametern) übermittelt", @@ -342,7 +342,7 @@ "GHReqPrefix": "sky22333/hubproxy'-Instanz für GitHub-Anfragen", "includeZips": "ZIP-Dateien einbeziehen", "zippedApkFilterRegEx": "APKs in ZIP filtern", - "googleVerificationWarningP1": "Google hat bekannt gegeben, dass, ab 2026/2027, alle Apps auf \"zertifizierten\" Android-Geräten den Entwickler benötigen, um persönliche Identitätsdetails direkt an Google einzureichen.\n\nDa die Entwickler dieser App dieser Anforderung nicht zustimmen, Updatium wird nicht mehr auf zertifizierten Android-Geräten nach dieser Zeit arbeiten.", + "googleVerificationWarningP1": "Google hat bekannt gegeben, dass, ab 2026/2027, alle Apps auf \"zertifizierten\" Android-Geräten den Entwickler benötigen, um persönliche Identitätsdetails direkt an Google einzureichen.\n\nDanach kann Updatium auf zertifizierten Android-Geräten aufhören zu funktionieren.", "googleVerificationWarningP2": "Weitere Informationen finden Sie unter https://keepandroidopen.org/.", "googleVerificationWarningP3": "Beachten Sie, dass es kurzfristig weiterhin möglich sein kann, \"unverifizierte\" (nicht-konforme) Apps durch einen \"fortgeschrittenen Flow\"-Prozess zu installieren, den Google versprochen hat, nach einem breiten Rückschluss auf ihre Ankündigung umzusetzen, aber sie haben nicht detailliert, wie dies funktioniert, so dass es unklar ist, ob es wirklich Benutzerfreiheiten in praktischer Weise erhalten wird.\n\nIn jedem Fall ist Googles Bewegung ein wesentlicher Schritt zum Ende des kostenlosen, universellen Computers für Einzelpersonen.\n\nNicht zertifizierte Betriebssysteme, wie GrapheneOS, sollten dadurch nicht beeinflusst werden, solange sie weiterhin existieren dürfen.", "multipleSigners": "Mehrere Zeichen", diff --git a/assets/translations/en-EO.json b/assets/translations/en-EO.json index 71e083a2..59b4498e 100644 --- a/assets/translations/en-EO.json +++ b/assets/translations/en-EO.json @@ -24,7 +24,7 @@ "color": "Koloro", "standard": "Norma", "custom": "Agordita", - "useMaterialYou": "Uzi Material You", + "useMaterialYou": "Uzi Material You kolorojn", "githubStarredRepos": "Stelaj GitHub-deponejoj", "uname": "Uzantnomo", "wrongArgNum": "Malĝusta nombro da provizitaj argumentoj", @@ -341,7 +341,7 @@ "GHReqPrefix": "'sky22333/hubproxy' instance for GitHub requests", "includeZips": "Include ZIP files", "zippedApkFilterRegEx": "Filter APKs inside ZIP", - "googleVerificationWarningP1": "Google has announced that, starting in 2026/2027, all apps on \"certified\" Android devices will require the developer to submit personal identity details directly to Google.\n\nSince the developers of this app do not agree to this requirement, Updatium will no longer work on certified Android devices after that time.", + "googleVerificationWarningP1": "Google has announced that, starting in 2026/2027, all apps on \"certified\" Android devices will require the developer to submit personal identity details directly to Google.\n\nAfter then, Updatium may stop working on certified Android devices.", "googleVerificationWarningP2": "Go to https://keepandroidopen.org/ for more information.", "googleVerificationWarningP3": "Note that in the short term, it may continue to be possible to install \"unverified\" (non-compliant) apps through an \"advanced flow\" process that Google has promised to implement after broad backlash to their announcement, but they have not detailed how this would work so it is unclear whether it will truly preserve user freedoms in any practical way.\n\nIn any case, Google's move is a significant step towards the end of free, general-purpose computing for individuals.\n\nNon-certified OSes, like GrapheneOS, should be unaffected by this for as long as they are allowed to continue to exist.", "multipleSigners": "Multiple Signers", diff --git a/assets/translations/en.json b/assets/translations/en.json index 6a11be0c..70639641 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -24,7 +24,7 @@ "color": "Color", "standard": "Standard", "custom": "Custom", - "useMaterialYou": "Use Material You", + "useMaterialYou": "Use Material You colors", "githubStarredRepos": "GitHub starred repositories", "uname": "Username", "wrongArgNum": "Wrong number of arguments provided", @@ -342,7 +342,7 @@ "GHReqPrefix": "'sky22333/hubproxy' instance for GitHub requests", "includeZips": "Include ZIP files", "zippedApkFilterRegEx": "Filter APKs inside ZIP", - "googleVerificationWarningP1": "Google has announced that, starting in 2026/2027, all apps on \"certified\" Android devices will require the developer to submit personal identity details directly to Google.\n\nSince the developers of this app do not agree to this requirement, Updatium will no longer work on certified Android devices after that time.", + "googleVerificationWarningP1": "Google has announced that, starting in 2026/2027, all apps on \"certified\" Android devices will require the developer to submit personal identity details directly to Google.\n\nAfter then, Updatium may stop working on certified Android devices.", "googleVerificationWarningP2": "Go to https://keepandroidopen.org/ for more information.", "googleVerificationWarningP3": "Note that in the short term, it may continue to be possible to install \"unverified\" (non-compliant) apps through an \"advanced flow\" process that Google has promised to implement after broad backlash to their announcement, but they have not detailed how this would work so it is unclear whether it will truly preserve user freedoms in any practical way.\n\nIn any case, Google's move is a significant step towards the end of free, general-purpose computing for individuals.\n\nNon-certified OSes, like GrapheneOS, should be unaffected by this for as long as they are allowed to continue to exist.", "multipleSigners": "Multiple Signers", diff --git a/assets/translations/es.json b/assets/translations/es.json index 348daacb..bc4a7cfb 100644 --- a/assets/translations/es.json +++ b/assets/translations/es.json @@ -24,7 +24,7 @@ "color": "color", "standard": "Estándar", "custom": "A medida", - "useMaterialYou": "Aplicar 'Material You'", + "useMaterialYou": "Aplicar colores Material You", "githubStarredRepos": "repositorios favoritos en GitHub", "uname": "Nombre de usuario", "wrongArgNum": "Número de argumentos provistos inválido", @@ -342,7 +342,7 @@ "GHReqPrefix": "Instancia 'sky22333/hubproxy' para las\nsolicitudes de GitHub", "includeZips": "Incluir archivos ZIP", "zippedApkFilterRegEx": "Filtrar APKs dentro del ZIP", - "googleVerificationWarningP1": "Google ha anunciado que, a partir de 2026/2027, todas las aplicaciones en dispositivos Android \"certificados\" requerirán que el desarrollador envíe detalles de identidad personal directamente a Google.\n\nDado que los desarrolladores de esta aplicación no están de acuerdo con este requisito, Updatium ya no trabajará en dispositivos Android certificados después de ese tiempo.", + "googleVerificationWarningP1": "Google ha anunciado que, a partir de 2026/2027, todas las aplicaciones en dispositivos Android \"certificados\" requerirán que el desarrollador envíe detalles de identidad personal directamente a Google.\n\nDespués de eso, Updatium puede dejar de funcionar en dispositivos Android certificados.", "googleVerificationWarningP2": "Vaya a https://keepandroidopen.org/ para más información.", "googleVerificationWarningP3": "Tenga en cuenta que a corto plazo, puede seguir siendo posible instalar aplicaciones \"no verificadas\" (no compatibles) a través de un proceso de \"flujo avanzado\" que Google ha prometido implementar después de una reacción amplia a su anuncio, pero no han detallado cómo funcionaría así que no está claro si realmente preservará las libertades de los usuarios de cualquier manera práctica.\n\nEn cualquier caso, el movimiento de Google es un paso significativo hacia el final de la computación libre de uso general para los individuos.\n\nLos sistemas operativos no certificados, como GrapheneOS, no deberían ser afectados por esto mientras se les permita seguir existiendo.", "multipleSigners": "Múltiples firmas", diff --git a/assets/translations/et.json b/assets/translations/et.json index 26ffab6f..a269e4cf 100644 --- a/assets/translations/et.json +++ b/assets/translations/et.json @@ -24,7 +24,7 @@ "color": "Värv", "standard": "Standard", "custom": "Kohandatud", - "useMaterialYou": "Kasuta Material You", + "useMaterialYou": "Kasuta Material You värve", "githubStarredRepos": "GitHub'i tärniga repod", "uname": "Kasutajanimi", "wrongArgNum": "Vale arv argumente antud", @@ -342,7 +342,7 @@ "GHReqPrefix": "'sky22333/hubproxy' instants GitHub päringute jaoks", "includeZips": "Kaasa ZIP failid", "zippedApkFilterRegEx": "Filtreeri APK-sid ZIP-i sees", - "googleVerificationWarningP1": "Google on teatanud, et alates 2026./2027. aastast vajavad kõik \"sertifitseeritud\" Androidi seadmed, et arendaja esitaks isiklikud identiteediandmed otse Google'le.\n\nKuna selle rakenduse arendajad ei nõustu selle nõudega, ei tööta Updatium pärast seda aega sertifitseeritud Androidi seadmetel.", + "googleVerificationWarningP1": "Google on teatanud, et alates 2026./2027. aastast vajavad kõik \"sertifitseeritud\" Androidi seadmed, et arendaja esitaks isiklikud identiteediandmed otse Google'le.\n\nPärast seda võib Updatium lõpetada töötamise sertifitseeritud Androidi seadmetel.", "googleVerificationWarningP2": "Lisateabe saamiseks minge aadressile https://keepandroidopen.org/.", "googleVerificationWarningP3": "Pange tähele, et lühikesel tähtajal võib olla võimalik installida \"kinnitamata\" (mittesobivad) äpid \"täiustatud protsessi\" kaudu, mille Google on lubanud implementeerida pärast laia vastukaja oma teadaandele, kuid nad ei ole üksikasjaliselt kirjeldanud, kuidas see töötab, mistõttu on selge, kas see tõesti säilitab kasutajate vabadused praktilises mõttes.\n\nIgatahes, Google'i samm on oluline samm vaba üldotstarbelise arvutamise lõpule füüsiliste isikute jaoks.\n\nMitte-sertifitseeritud operatsioonisüsteemid, nagu GrapheneOS, peaksid jääda mõjutamata niikaua kui neil on lubatud olemas olla.", "multipleSigners": "Mitu allkirjastajat", diff --git a/assets/translations/fa.json b/assets/translations/fa.json index 50da7e34..3e299abc 100644 --- a/assets/translations/fa.json +++ b/assets/translations/fa.json @@ -24,7 +24,7 @@ "color": "رنگ", "standard": "استاندارد", "custom": "سفارشی", - "useMaterialYou": "از Material You استفاده کنید", + "useMaterialYou": "استفاده از رنگ‌های Material You", "githubStarredRepos": "مخازن ستاره دار گیتهاب", "uname": "نام کاربری", "wrongArgNum": "تعداد آرگومان های ارائه شده اشتباه است", @@ -341,7 +341,7 @@ "GHReqPrefix": "مثال “sky22333/hubproxy”", "includeZips": "فایل های ZIP", "zippedApkFilterRegEx": "فیلتر APK در داخل Zip", - "googleVerificationWarningP1": "گوگل اعلام کرده است که از سال 2026/2027، تمام برنامه های موجود در دستگاه های اندرویدی معتبر نیاز به توسعه دهنده دارند تا جزئیات هویت شخصی را مستقیماً به گوگل ارسال کنند.\n\nاز آنجایی که توسعه دهندگان این برنامه با این نیاز موافق نیستند، به دست آوردنیوم دیگر بر روی دستگاه های اندرویدی گواهی شده پس از آن زمان کار نخواهد کرد.", + "googleVerificationWarningP1": "گوگل اعلام کرده است که از سال 2026/2027، تمام برنامه های موجود در دستگاه های اندرویدی معتبر نیاز به توسعه دهنده دارند تا جزئیات هویت شخصی را مستقیماً به گوگل ارسال کنند.\n\nپس از آن، Updatium ممکن است در دستگاه های اندرویدی گواهی شده کار نکند.", "googleVerificationWarningP2": "به https://Keepandroidopen.org یا برای اطلاعات بیشتر بروید.", "googleVerificationWarningP3": "توجه داشته باشید که در کوتاه مدت، ممکن است همچنان برای نصب برنامه های \"unverified\" (غیر سازگار) از طریق یک فرایند \"advanced Flow\" که گوگل وعده داده است پس از واکنش گسترده به اعلام خود اجرا کند، اما آنها جزئیات چگونگی کار این را به طوری که مشخص نیست که آیا آن واقعا حفظ آزادی های کاربر در هر روش عملی.\n\nدر هر صورت، حرکت گوگل یک گام مهم به سمت پایان محاسبات رایگان و عمومی برای افراد است.\n\nسیستم عامل های غیر گواهی شده، مانند گرافنموس، باید تا زمانی که اجازه دارند به وجود خود ادامه دهند، تحت تاثیر قرار گیرند.", "multipleSigners": "ثبت نام های متعدد", diff --git a/assets/translations/fr.json b/assets/translations/fr.json index e08bd46b..9666d722 100644 --- a/assets/translations/fr.json +++ b/assets/translations/fr.json @@ -24,7 +24,7 @@ "color": "Couleur", "standard": "Norme", "custom": "Personnalisé", - "useMaterialYou": "Utiliser Material You", + "useMaterialYou": "Utiliser les couleurs Material You", "githubStarredRepos": "dépôts étoilés GitHub", "uname": "Nom d'utilisateur", "wrongArgNum": "Nombre incorrect des arguments fournis", @@ -342,7 +342,7 @@ "GHReqPrefix": "instance 'sky22333/hubproxy' pour les requêtes GitHub", "includeZips": "Inclure les fichiers ZIP", "zippedApkFilterRegEx": "Filtrer les APK à l'intérieur du ZIP", - "googleVerificationWarningP1": "Google a annoncé que, à partir de 2026/2027, toutes les applications sur des appareils Android \"certifiés\" exigeront du développeur de soumettre des données personnelles d'identité directement à Google.\n\nPuisque les développeurs de cette application n'acceptent pas cette exigence, Obtention ne fonctionnera plus sur les appareils Android certifiés après ce temps.", + "googleVerificationWarningP1": "Google a annoncé que, à partir de 2026/2027, toutes les applications sur des appareils Android \"certifiés\" exigeront du développeur de soumettre des données personnelles d'identité directement à Google.\n\nAprès cela, Updatium peut cesser de fonctionner sur les appareils Android certifiés.", "googleVerificationWarningP2": "Consultez https://keepandroidopen.org/ pour plus d'informations.", "googleVerificationWarningP3": "Notez qu'à court terme, il peut continuer d'être possible d'installer des applications \"non vérifiées\" (non conformes) à travers un processus de \"flux avancé\" que Google a promis de mettre en œuvre après un grand retour à l'annonce, mais ils n'ont pas précisé comment cela fonctionnerait donc il n'est pas clair s'il préservera réellement les libertés des utilisateurs d'une manière pratique.\n\nEn tout cas, le mouvement de Google est un pas important vers la fin de l'informatique gratuite et à usage général pour les individus.\n\nLes OS non certifiés, comme GrapheneOS, ne devraient pas en être affectés tant qu'ils sont autorisés à continuer d'exister.", "multipleSigners": "Plusieurs signataires", diff --git a/assets/translations/gl.json b/assets/translations/gl.json index f765331a..811889c3 100644 --- a/assets/translations/gl.json +++ b/assets/translations/gl.json @@ -24,7 +24,7 @@ "color": "Cor", "standard": "Estándar", "custom": "Persoal", - "useMaterialYou": "Usar Material You", + "useMaterialYou": "Usar cores Material You", "githubStarredRepos": "Repositorios GitHub con estrela", "uname": "Identificador", "wrongArgNum": "Número de argumentos proporcionados incorrecto", @@ -343,7 +343,7 @@ "GHReqPrefix": "'sky22333/hubproxy' instancia para solicitudes github", "includeZips": "Incluír ficheiros ZIP", "zippedApkFilterRegEx": "Filtrar APKs dentro do ZIP", - "googleVerificationWarningP1": "Google anunciou que, comezando en 2026/2027, todas as apps en dispositivos \"certificados\" Android van precisar que as desenvolvedoras envíen detalles da súa identidade persoal directamente a Google.\n\nComo non estamos de acordo con este proceder, Updatium non vai funcionar en dispositivos certificados chegado o momento.", + "googleVerificationWarningP1": "Google anunciou que, comezando en 2026/2027, todas as apps en dispositivos \"certificados\" Android van precisar que as desenvolvedoras envíen detalles da súa identidade persoal directamente a Google.\n\nDespois diso, Updatium pode deixar de funcionar en dispositivos certificados.", "googleVerificationWarningP2": "Vai a https://keepandroidopen.org/ para máis información.", "googleVerificationWarningP3": "A curto prazo pode seguir dispoñible a instalación de aplicacións \"non verificadas\" (non-compliant) cun procedemento \"avanzado\" que Google prometeu implementar despois das críticas recibidas, pero aínda non publicaron detalles sobre isto e non está claro se realmente será posible levalo adiante de xeito práctico.\n\nEn todo caso, os movementos de Google son indicativos sobre o desexo de acabar coa liberdade, o propósito de uso xeral das computadoras por parte das persoas.\n\nOs sistemas operativos non certificados, como GrapheneOS, non se deberían ver afectados por isto mentras lles permitan existir.", "multipleSigners": "Múltiples Signadores", diff --git a/assets/translations/he.json b/assets/translations/he.json index facf7848..f62acf66 100644 --- a/assets/translations/he.json +++ b/assets/translations/he.json @@ -81,7 +81,7 @@ "shareSelectedAppURLs": "שיתוף כתובות היישומים שנבחרו", "resetInstallStatus": "איפוס מצב התקנה", "more": "עוד", - "removeOutdatedFilter": "Remove out-of-date app filter", + "removeOutdatedFilter": "סינון להסרת יישומים שאינם מעודכנים", "showOutdatedOnly": "הצגת יישומים לא מעודכנים בלבד", "filter": "סינון", "filterApps": "סינון יישומים", @@ -126,7 +126,7 @@ "bgUpdateCheckInterval": "מרווח זמן לבדיקת עדכונים ברקע", "neverManualOnly": "אף פעם - באופן ידני בלבד", "appearance": "מראה", - "showWebInAppView": "Show source webpage in app view", + "showWebInAppView": "הצגת עמוד האינטרנט של המקור בתצוגת היישום", "pinUpdates": "הצמדת עדכונים לחלק העליון של רשימת היישומים", "updates": "עדכונים", "sourceSpecific": "לפי מקור", @@ -178,14 +178,14 @@ "fdroid": "מאגר F-Droid הרשמי", "appIdOrName": "מזהה או שם של יישום", "appId": "מזהה יישום", - "appWithIdOrNameNotFound": "No app was found with that ID or name", + "appWithIdOrNameNotFound": "לא נמצא יישום עם שם או מזהה זה", "reposHaveMultipleApps": "מאגרים עשויים להכיל יישומים מרובים", "fdroidThirdPartyRepo": "מאגר צד שלישי של F-Droid", "install": "התקנה", - "markInstalled": "Mark installed", + "markInstalled": "סימון כמותקן", "update": "עדכון", "updated": "מעודכן", - "markUpdated": "Mark updated", + "markUpdated": "סימון כמעודכן", "additionalOptions": "אפשרויות נוספות", "disableVersionDetection": "השבתת זיהוי גרסה", "noVersionDetectionExplanation": "This option should only be used for apps where version detection does not work correctly.", @@ -213,8 +213,8 @@ "removeFromUpdatium": "הסרה מ־Updatium", "uninstallFromDevice": "הסרה מהמכשיר", "onlyWorksWithNonVersionDetectApps": "Only works for apps with version detection disabled.", - "releaseDateAsVersion": "Use release date as version string", - "releaseTitleAsVersion": "Use release title as version string", + "releaseDateAsVersion": "שימוש בתאריך פרסום המהדורה בתור מחרוזת הגרסה", + "releaseTitleAsVersion": "שימוש בכותרת המהדורה בתור מחרוזת הגרסה", "releaseDateAsVersionExplanation": "This option should only be used for apps where version detection does not work correctly, but a release date is available.", "changes": "שינויים", "releaseDate": "תאריך שחרור גרסה", @@ -242,21 +242,21 @@ "pickHighestVersionCode": "בחירה אוטומטית של קובץ ה־APK עם קוד הגרסה הגבוה ביותר", "checkUpdateOnDetailPage": "Check for updates on opening an app detail page", "disablePageTransitions": "השבתת הנפשות מעבר בין עמודים", - "reversePageTransitions": "Reverse page transition animations", + "reversePageTransitions": "היפוך הנפשות מעבר בין עמודים", "minStarCount": "מספר כוכבים מינימלי", "addInfoBelow": "Add this info below.", - "addInfoInSettings": "Add this info in the Settings.", + "addInfoInSettings": "יש להוסיף מידע זה בהגדרות.", "githubSourceNote": "GitHub rate limiting can be avoided using an API key.", "sortByLastLinkSegment": "Sort by only the last segment of the link", "filterReleaseNotesByRegEx": "Filter release notes by regular expression", "customLinkFilterRegex": "Custom APK link filter by regular expression (default '.apk$')", - "appsPossiblyUpdated": "App updates attempted", + "appsPossiblyUpdated": "בוצעו ניסיונות לעדכון יישומים", "appsPossiblyUpdatedNotifDescription": "Notifies the user that updates to one or more apps were potentially applied in the background", - "xWasPossiblyUpdatedToY": "{} may have been updated to {}.", + "xWasPossiblyUpdatedToY": "ייתכן כי היישום {} עודכן לגרסה {}.", "enableBackgroundUpdates": "הפעלת עדכונים ברקע", "backgroundUpdateReqsExplanation": "Background updates may not be possible for all apps.", "backgroundUpdateLimitsExplanation": "The success of a background install can only be determined when Updatium is opened.", - "verifyLatestTag": "Verify the 'latest' tag", + "verifyLatestTag": "אימות התגית ‚latest’ (גרסה עדכנית)", "intermediateLinkRegex": "Filter for an 'intermediate' link to visit", "filterByLinkText": "Filter links by link text", "matchLinksOutsideATags": "Match links outside tags", @@ -277,15 +277,15 @@ "filterVersionsByRegEx": "Filter versions by regular expression", "trySelectingSuggestedVersionCode": "Try selecting suggested versionCode APK", "dontSortReleasesList": "Retain release order from API", - "reverseSort": "Reverse sorting", + "reverseSort": "היפוך סדר", "takeFirstLink": "בחירת הקישור הראשון", "skipSort": "Skip sorting", "debugMenu": "תפריט ניפוי שגיאות", - "bgTaskStarted": "Background task started - check logs.", + "bgTaskStarted": "המשימה ברקע החלה - נא לעיין ביומן.", "runBgCheckNow": "הרצת בדיקת עדכונים ברקע כעת", "versionExtractWholePage": "Apply version string extraction Regex to entire page", "installing": "מתבצעת התקנה", - "skipUpdateNotifications": "Skip update notifications", + "skipUpdateNotifications": "דילוג על התראות בנוגע לעדכונים", "updatesAvailableNotifChannel": "עדכונים זמינים", "appsUpdatedNotifChannel": "היישומים עודכנו", "appsPossiblyUpdatedNotifChannel": "App updates attempted", @@ -342,67 +342,82 @@ "GHReqPrefix": "'sky22333/hubproxy' instance for GitHub requests", "includeZips": "לכלול קובצי ZIP", "zippedApkFilterRegEx": "Filter APKs inside ZIP", - "googleVerificationWarningP1": "Google has announced that, starting in 2026/2027, all apps on \"certified\" Android devices will require the developer to submit personal identity details directly to Google.\n\nSince the developers of this app do not agree to this requirement, Updatium will no longer work on certified Android devices after that time.", + "googleVerificationWarningP1": "Google has announced that, starting in 2026/2027, all apps on \"certified\" Android devices will require the developer to submit personal identity details directly to Google.\n\nAfter then, Updatium may stop working on certified Android devices.", "googleVerificationWarningP2": "Go to https://keepandroidopen.org/ for more information.", "googleVerificationWarningP3": "Note that in the short term, it may continue to be possible to install \"unverified\" (non-compliant) apps through an \"advanced flow\" process that Google has promised to implement after broad backlash to their announcement, but they have not detailed how this would work so it is unclear whether it will truly preserve user freedoms in any practical way.\n\nIn any case, Google's move is a significant step towards the end of free, general-purpose computing for individuals.\n\nNon-certified OSes, like GrapheneOS, should be unaffected by this for as long as they are allowed to continue to exist.", "removeAppQuestion": { "one": "להסיר את היישום?", + "two": "להסיר את שני היישומים?", "other": "להסיר את היישומים?" }, "tooManyRequestsTryAgainInMinutes": { "one": "Too many requests (rate limited) - try again in {} minute", + "two": "Too many requests (rate limited) - try again in {} minutes", "other": "Too many requests (rate limited) - try again in {} minutes" }, "bgUpdateGotErrorRetryInMinutes": { "one": "BG update checking encountered a {}, will schedule a retry check in {} minute", + "two": "BG update checking encountered a {}, will schedule a retry check in {} minutes", "other": "BG update checking encountered a {}, will schedule a retry check in {} minutes" }, "bgCheckFoundUpdatesWillNotifyIfNeeded": { "one": "BG update checking found {} update - will notify user if needed", + "two": "BG update checking found {} updates - will notify user if needed", "other": "BG update checking found {} updates - will notify user if needed" }, "apps": { "one": "יישום אחד", + "two": "שני יישומים", "other": "{} יישומים" }, "url": { "one": "כתובת אחת", + "two": "שתי כתובות", "other": "{} כתובות" }, "minute": { "one": "דקה אחת", + "two": "שתי דקות", "other": "{} דקות" }, "hour": { "one": "שעה אחת", + "two": "שעתיים", "other": "{} שעות" }, "day": { "one": "יום אחד", + "two": "יומיים", "other": "{} ימים" }, "clearedNLogsBeforeXAfterY": { "one": "Cleared {n} log (before = {before}, after = {after})", + "two": "Cleared {n} logs (before = {before}, after = {after})", "other": "Cleared {n} logs (before = {before}, after = {after})" }, "xAndNMoreUpdatesAvailable": { "one": "{} and 1 more app have updates.", + "two": "{} and 2 more apps have updates.", "other": "{} and {} more apps have updates." }, "xAndNMoreUpdatesInstalled": { "one": "{} and 1 more app was updated.", + "two": "{} and 2 more apps were updated.", "other": "{} and {} more apps were updated." }, "xAndNMoreUpdatesFailed": { "one": "Failed to update {} and 1 more app.", + "two": "Failed to update {} and 2 more apps.", "other": "Failed to update {} and {} more apps." }, "xAndNMoreUpdatesPossiblyInstalled": { "one": "{} and 1 more app may have been updated.", + "two": "{} and 2 more apps may have been updated.", "other": "{} and {} more apps may have been updated." }, "apk": { "one": "קובץ APK אחד", + "two": "שני קובצי APK", "other": "{} קובצי APK" }, "securityDisclaimerTitle": "כתב ויתור בנוגע לאבטחה ונושאים משפטיים", diff --git a/assets/translations/hu.json b/assets/translations/hu.json index c4288c09..313fc23c 100644 --- a/assets/translations/hu.json +++ b/assets/translations/hu.json @@ -24,7 +24,7 @@ "color": "Szín", "standard": "Általános", "custom": "Egyéni", - "useMaterialYou": "Material You használata", + "useMaterialYou": "Material You színek használata", "githubStarredRepos": "Csillagozott GitHub-tárolók", "uname": "Felhasználónév", "wrongArgNum": "A megadott argumentumok száma nem megfelelő", @@ -342,7 +342,7 @@ "GHReqPrefix": "„sky22333/hubproxy” példány a GitHub lekérdezéséhez", "includeZips": "ZIP-fájlok belefoglalása", "zippedApkFilterRegEx": "APK-fájlok szűrése a ZIP-fájlon belül", - "googleVerificationWarningP1": "A Google bejelentette, hogy 2026/2027-től kezdődően az összes alkalmazáshoz, amely „tanúsított” (certified) Android eszközökön fut, a fejlesztőknek a személyes azonosító adataikat közvetlenül a Google-nek kell majd benyújtaniuk.\n\nMivel az Updatium alkalmazás fejlesztői nem fogadják el ezt a követelményt, ezért az Updatium az említett időpont után már nem fog működni a tanúsított Android eszközökön.", + "googleVerificationWarningP1": "A Google bejelentette, hogy 2026/2027-től kezdődően az összes alkalmazáshoz, amely „tanúsított\" (certified) Android eszközökön fut, a fejlesztőknek a személyes azonosító adataikat közvetlenül a Google-nek kell majd benyújtaniuk.\n\nEzt követően, az Updatium esetleg nem fog működni a tanúsított Android eszközökön.", "googleVerificationWarningP2": "További információkért látogasson el a https://keepandroidopen.org/ weboldalra.", "googleVerificationWarningP3": "Fontos megjegyezni, hogy rövid távon még lehetséges lehet az „ellenőrizetlen” (nem megfelelő) alkalmazások telepítése egy „speciális folyamaton” keresztül, amelyre a Google ígéretet tett, hogy megvalósít a bejelentésüket követő széles körű felháborodás miatt. Azonban azt nem részletezték, hogy hogyan is működne ez, ezért nem világos, hogy ez gyakorlatilag megőrzi-e a felhasználók szabadsághoz való jogait.\n\nMindenesetre a Google lépése jelentős előrelépés a felhasználók számára elérhető szabad, általános célú alkalmazások megszűnése felé.\n\nA nem tanúsított operációs rendszereket, mint például a GrapheneOS, ez nem érinti mindaddig, amíg működhetnek.", "multipleSigners": "Többen is aláírták", diff --git a/assets/translations/id.json b/assets/translations/id.json index e8fc48e1..c865035a 100644 --- a/assets/translations/id.json +++ b/assets/translations/id.json @@ -24,7 +24,7 @@ "color": "Warna", "standard": "Standar", "custom": "Kustom", - "useMaterialYou": "Gunakan Material You", + "useMaterialYou": "Gunakan warna Material You", "githubStarredRepos": "Repositori berbintang GitHub", "uname": "Nama pengguna", "wrongArgNum": "Salah memberikan jumlah argumen", @@ -342,7 +342,7 @@ "GHReqPrefix": "Instance 'sky22333/hubproxy' untuk permintaan GitHub", "includeZips": "Menyertakan file ZIP", "zippedApkFilterRegEx": "Saring APK di dalam ZIP", - "googleVerificationWarningP1": "Google has announced that, starting in 2026 / 2027, all apps on \"certified\" Android devices will needs the developer to submit personal identity details directly to Google.\n\nKarena pengembang aplikasi ini tidak setuju dengan persyaratan ini, Updatium tidak akan lagi bekerja pada perangkat Android bersertifikat setelah waktu itu.", + "googleVerificationWarningP1": "Google has announced that, starting in 2026 / 2027, all apps on \"certified\" Android devices will needs the developer to submit personal identity details directly to Google.\n\nSetelah itu, Updatium mungkin berhenti bekerja pada perangkat Android bersertifikat.", "googleVerificationWarningP2": "Pergi ke https: / / keep androidpen.org / untuk informasi lebih lanjut.", "googleVerificationWarningP3": "Perlu dicatat bahwa dalam jangka pendek, mungkin terus mungkin untuk memasang aplikasi \"belum diverifikasi\" (bukan -compliant) melalui proses \"arus maju\" yang Google janjikan untuk mengimplementasikan setelah reaksi luas terhadap pengumuman mereka, tetapi mereka tidak rinci bagaimana hal ini akan bekerja sehingga tidak jelas apakah itu benar-benar akan menjaga kebebasan pengguna dengan cara praktis.\n\nDalam hal apapun, Google bergerak adalah langkah yang signifikan menuju akhir bebas, tujuan umum komputasi untuk individu.\n\nOS tidak bersertifikat, seperti GrapheneOS, seharusnya tidak terpengaruh oleh hal ini selama mereka diizinkan untuk terus ada.", "multipleSigners": "Tanda Tangan Ganda", diff --git a/assets/translations/it.json b/assets/translations/it.json index 67a54944..34f06fd9 100644 --- a/assets/translations/it.json +++ b/assets/translations/it.json @@ -24,7 +24,7 @@ "color": "Colore", "standard": "Standard", "custom": "Personalizzato", - "useMaterialYou": "Utilizzate il materiale che avete a disposizione", + "useMaterialYou": "Utilizzate i colori Material You", "githubStarredRepos": "repository stellati da GitHub", "uname": "Nome utente", "wrongArgNum": "Numero di argomenti forniti errato", @@ -341,7 +341,7 @@ "GHReqPrefix": "istanza 'sky22333/hubproxy' per le richieste a GitHub", "includeZips": "Includere file ZIP", "zippedApkFilterRegEx": "Filtrare gli APK all'interno dello ZIP", - "googleVerificationWarningP1": "Google ha annunciato che, a partire dal 2026/2027, tutte le applicazioni su dispositivi Android \"certificati\" richiederanno allo sviluppatore di inviare dati di identità personali direttamente a Google.\n\nPoiché gli sviluppatori di questa applicazione non sono d'accordo con questo requisito, Updatium non lavorerà più su dispositivi Android certificati dopo quel tempo.", + "googleVerificationWarningP1": "Google ha annunciato che, a partire dal 2026/2027, tutte le applicazioni su dispositivi Android \"certificati\" richiederanno allo sviluppatore di inviare dati di identità personali direttamente a Google.\n\nDopo ciò, Updatium potrebbe smettere di funzionare su dispositivi Android certificati.", "googleVerificationWarningP2": "Vai a https://keepandroidopen.org/ per ulteriori informazioni.", "googleVerificationWarningP3": "Si noti che a breve termine, può continuare ad essere possibile installare applicazioni \"non verificate\" (non conformi) attraverso un processo di \"flusso avanzato\" che Google ha promesso di implementare dopo ampio backlash al loro annuncio, ma non hanno dettagliato come questo funzionerebbe in modo da non essere chiaro se veramente preservare le libertà degli utenti in qualsiasi modo pratico.\n\nIn ogni caso, la mossa di Google è un passo significativo verso la fine del free, general-purpose computing per gli individui.\n\nOS non certificati, come GrapheneOS, non dovrebbero essere influenzati da questo per tutto il tempo in cui sono autorizzati a continuare ad esistere.", "multipleSigners": "Segnali multipli", diff --git a/assets/translations/ja.json b/assets/translations/ja.json index eced01c2..c4250a79 100644 --- a/assets/translations/ja.json +++ b/assets/translations/ja.json @@ -24,7 +24,7 @@ "color": "カラー", "standard": "スタンダード", "custom": "カスタム", - "useMaterialYou": "Material Youを使用する", + "useMaterialYou": "Material Youのカラーを使用", "githubStarredRepos": "GitHubでスターしたリポジトリ", "uname": "ユーザー名", "wrongArgNum": "引数の数が間違っています", @@ -342,7 +342,7 @@ "GHReqPrefix": "GitHub リクエスト用の 'sky22333/hubproxy' インスタンス", "includeZips": "ZIPファイルを含む", "zippedApkFilterRegEx": "ZIP内のAPKをフィルタリングする", - "googleVerificationWarningP1": "Googleは、2026年から2027年以降、「認定」Androidデバイス上のすべてのアプリにおいて、開発者が個人情報をGoogleに直接提出することを義務付けると発表しました。\n\nこのアプリの開発者はこの要件に同意しないため、それ以降Updatiumは認定Androidデバイスでは動作しなくなります。", + "googleVerificationWarningP1": "Googleは、2026年から2027年以降、「認定」Androidデバイス上のすべてのアプリにおいて、開発者が個人情報をGoogleに直接提出することを義務付けると発表しました。\n\nその後、Updatiumは認定Androidデバイスで動作しなくなる可能性があります。", "googleVerificationWarningP2": "詳細については、https://keepandroidopen.org/ をご覧ください。", "googleVerificationWarningP3": "なお、短期的には、Googleが発表後に広範な反発を受けて実装を約束した「高度なフロー」プロセスを通じて、「未検証」(非準拠)のアプリをインストールし続けることが可能になるかもしれません。しかし、その具体的な仕組みは明らかにされておらず、ユーザーの自由が実質的に保たれるかどうかは不明です。\n\nいずれにせよ、Googleのこの動きは、個人向けの自由な汎用コンピューティングの終焉に向けた大きな一歩です。\n\nGrapheneOSのような非認定OSは、その存在が許される限り、この影響を受けないはずです。", "multipleSigners": "複数の署名者", diff --git a/assets/translations/ko.json b/assets/translations/ko.json index 94ea08b0..b59099cc 100644 --- a/assets/translations/ko.json +++ b/assets/translations/ko.json @@ -24,7 +24,7 @@ "color": "색상", "standard": "표준", "custom": "사용자 정의", - "useMaterialYou": "Material You 사용", + "useMaterialYou": "Material You 색상 사용", "githubStarredRepos": "GitHub 즐겨찾기 저장소", "uname": "사용자 이름", "wrongArgNum": "잘못된 인수 수 제공", @@ -342,7 +342,7 @@ "GHReqPrefix": "GitHub 요청을 위한 'sky22333/hubproxy' 인스턴스", "includeZips": "ZIP 파일 포함", "zippedApkFilterRegEx": "ZIP 내 APK 필터링", - "googleVerificationWarningP1": "Google은 2026/2027에서 시작하여 \"certified\" Android 기기의 모든 앱은 Google에 직접 개인 식별 정보를 제출하기 위해 개발자가 필요합니다.\n\n이 응용 프로그램의 개발자가이 요구 사항에 동의하지 않기 때문에, 얻은 것은 그 시간이 지나면 인증 된 Android 장치에서 더 이상 작동하지 않습니다.", + "googleVerificationWarningP1": "Google은 2026/2027에서 시작하여 \"certified\" Android 기기의 모든 앱은 Google에 직접 개인 식별 정보를 제출하기 위해 개발자가 필요합니다.\n\n그 후, Updatium은 인증 된 Android 장치에서 작동을 중지 할 수 있습니다.", "googleVerificationWarningP2": "Https://keepandroidopen.org/로 이동하세요.", "googleVerificationWarningP3": "이 웹 사이트는 애플 리케이션에 전념. 우리는 정품 앱과 게임을 제공 할 목적으로이 사이트를 만들었습니다. 4AppsApk 최고의 안드로이드 애플 리케이션을위한 무료 APK 파일 다운로드 서비스, 계략.\n\n어떤 경우, Google의 이동은 개인을위한 무료, 범용 컴퓨팅의 끝으로 중요한 단계입니다.\n\nGrapheneOS와 같은 비 인증 된 OSes는 존재하지 않아야합니다.", "multipleSigners": "다수 Signers", diff --git a/assets/translations/ml.json b/assets/translations/ml.json index 51581549..bd0eacce 100644 --- a/assets/translations/ml.json +++ b/assets/translations/ml.json @@ -24,7 +24,7 @@ "color": "നിറം", "standard": "സാധാരണ", "custom": "ഇഷ്‌ടാനുസൃതം", - "useMaterialYou": "മെറ്റീരിയൽ യൂ ഉപയോഗിക്കുക", + "useMaterialYou": "Material You നിറങ്ങൾ ഉപയോഗിക്കുക", "githubStarredRepos": "GitHub സ്റ്റാർ ചെയ്ത റെപ്പോസിറ്ററികൾ", "uname": "ഉപയോക്തൃനാമം", "wrongArgNum": "തെറ്റായ എണ്ണം ആർഗ്യുമെന്റുകൾ നൽകി", @@ -342,7 +342,7 @@ "GHReqPrefix": "'sky22333/hubproxy' instance for GitHub requests", "includeZips": "Include ZIP files", "zippedApkFilterRegEx": "Filter APKs inside ZIP", - "googleVerificationWarningP1": "Google has announced that, starting in 2026/2027, all apps on \"certified\" Android devices will require the developer to submit personal identity details directly to Google.\n\nSince the developers of this app do not agree to this requirement, Updatium will no longer work on certified Android devices after that time.", + "googleVerificationWarningP1": "Google has announced that, starting in 2026/2027, all apps on \"certified\" Android devices will require the developer to submit personal identity details directly to Google.\n\nAfter then, Updatium may stop working on certified Android devices.", "googleVerificationWarningP2": "Go to https://keepandroidopen.org/ for more information.", "googleVerificationWarningP3": "Note that in the short term, it may continue to be possible to install \"unverified\" (non-compliant) apps through an \"advanced flow\" process that Google has promised to implement after broad backlash to their announcement, but they have not detailed how this would work so it is unclear whether it will truly preserve user freedoms in any practical way.\n\nIn any case, Google's move is a significant step towards the end of free, general-purpose computing for individuals.\n\nNon-certified OSes, like GrapheneOS, should be unaffected by this for as long as they are allowed to continue to exist.", "multipleSigners": "Multiple Signers", diff --git a/assets/translations/nl.json b/assets/translations/nl.json index 55ad4746..ac9a19fb 100644 --- a/assets/translations/nl.json +++ b/assets/translations/nl.json @@ -24,7 +24,7 @@ "color": "Kleur", "standard": "Standaard", "custom": "Aangepast", - "useMaterialYou": "Material You gebruiken", + "useMaterialYou": "Material You kleuren gebruiken", "githubStarredRepos": "GitHub-repo's met ster", "uname": "Gebruikersnaam", "wrongArgNum": "Incorrect aantal argumenten.", @@ -341,7 +341,7 @@ "GHReqPrefix": "'sky22333/hubproxy' instantie voor GitHub verzoeken", "includeZips": "ZIP-bestanden opnemen", "zippedApkFilterRegEx": "APK's filteren in ZIP", - "googleVerificationWarningP1": "Google heeft aangekondigd dat vanaf 2026/2027 alle apps op \"gecertificeerde\" Android-apparaten de ontwikkelaar nodig hebben om persoonlijke identiteitsgegevens rechtstreeks aan Google te verzenden.\n\nAangezien de ontwikkelaars van deze app niet akkoord gaan met deze eis, zal Progressionium niet meer werken op gecertificeerde Android-apparaten na die tijd.", + "googleVerificationWarningP1": "Google heeft aangekondigd dat vanaf 2026/2027 alle apps op \"gecertificeerde\" Android-apparaten de ontwikkelaar nodig hebben om persoonlijke identiteitsgegevens rechtstreeks aan Google te verzenden.\n\nDaarna kan Updatium stoppen met werken op gecertificeerde Android-apparaten.", "googleVerificationWarningP2": "Ga naar https://keepandroidopen.org/ voor meer informatie.", "googleVerificationWarningP3": "Merk op dat het op korte termijn mogelijk kan blijven om \"niet-geverifieerde\" (niet-conforme) apps te installeren via een \"geavanceerde flow\" proces dat Google heeft beloofd te implementeren na brede backlash naar hun aankondiging, maar ze hebben niet gedetailleerd hoe dit zou werken, dus het is onduidelijk of het echt zal behouden gebruikersvrijheden op enige praktische manier.\n\nIn ieder geval, Google's zet is een belangrijke stap naar het einde van vrije, algemene computer voor individuen.\n\nNiet-gecertificeerde besturingssystemen, zoals GrapheneOS, mogen hierdoor niet worden beïnvloed zolang ze mogen blijven bestaan.", "multipleSigners": "Meerdere Ondertekenaars", diff --git a/assets/translations/pl.json b/assets/translations/pl.json index bbd8d5f7..b397dddd 100644 --- a/assets/translations/pl.json +++ b/assets/translations/pl.json @@ -24,7 +24,7 @@ "color": "Kolor", "standard": "Domyślny", "custom": "Własny", - "useMaterialYou": "Material You", + "useMaterialYou": "Użyj kolorów Material You", "githubStarredRepos": "Repozytoria GitHub oznaczone gwiazdką", "uname": "Nazwa użytkownika", "wrongArgNum": "Nieprawidłowa liczba podanych argumentów", @@ -341,7 +341,7 @@ "GHReqPrefix": "Instancja \"sky22333/hubproxy\" dla żądań GitHub", "includeZips": "Dołączanie plików ZIP", "zippedApkFilterRegEx": "Filtrowanie plików APK wewnątrz ZIP", - "googleVerificationWarningP1": "Google ogłosił, że począwszy od 2026 / 2027, wszystkie aplikacje na \"certyfikowanych\" urządzeń z systemem Android będą wymagać od dewelopera przekazania danych osobowych bezpośrednio do Google.\n\nPonieważ deweloperzy tej aplikacji nie zgadzają się na ten wymóg, po tym czasie nie będzie już działać na certyfikowanych urządzeniach z systemem Android.", + "googleVerificationWarningP1": "Google ogłosił, że począwszy od 2026 / 2027, wszystkie aplikacje na \"certyfikowanych\" urządzeń z systemem Android będą wymagać od dewelopera przekazania danych osobowych bezpośrednio do Google.\n\nPo tym czasie, Updatium może przestać działać na certyfikowanych urządzeniach z systemem Android.", "googleVerificationWarningP2": "Więcej informacji można uzyskać na stronie https: / / keepandroidopen.org.", "googleVerificationWarningP3": "Należy zauważyć, że w perspektywie krótkoterminowej może być nadal możliwe instalowanie \"niezweryfikowanych\" aplikacji (niezgodnych z wymaganiami) poprzez proces \"zaawansowanego przepływu\", który Google obiecał wdrożyć po szerokim odwrocie do ich ogłoszenia, ale nie mają one szczegółowych informacji, jak to działa, więc nie jest jasne, czy będzie rzeczywiście zachować wolność użytkownika w jakikolwiek praktyczny sposób.\n\nW każdym razie ruch Google jest znaczącym krokiem w kierunku zakończenia swobodnego, ogólnego celu dla osób fizycznych.\n\nNiecertyfikowane Oses, takie jak GrapheneOS, nie powinny mieć na to wpływu tak długo, jak długo będą mogły istnieć.", "multipleSigners": "Wielu sygnatariuszy", diff --git a/assets/translations/pt-BR.json b/assets/translations/pt-BR.json index 3050866e..7e11891a 100644 --- a/assets/translations/pt-BR.json +++ b/assets/translations/pt-BR.json @@ -24,7 +24,7 @@ "color": "Cor", "standard": "Padrão", "custom": "Personalizado", - "useMaterialYou": "Usar Material You", + "useMaterialYou": "Usar cores Material You", "githubStarredRepos": "Repositórios com estrela do GitHub", "uname": "Nome de usuário", "wrongArgNum": "Número errado de argumentos fornecidos", @@ -341,7 +341,7 @@ "GHReqPrefix": "Instância \"sky22333/hubproxy\" para solicitações do GitHub", "includeZips": "Incluir arquivos ZIP", "zippedApkFilterRegEx": "Filtrar APKs dentro do ZIP", - "googleVerificationWarningP1": "O Google anunciou que, a partir de 2026/2027, todos os aplicativos em dispositivos Android \"certificados\" exigirão que o desenvolvedor envie detalhes de identidade pessoal diretamente ao Google.\n\nUma vez que os desenvolvedores deste aplicativo não concordam com este requisito, Updatium não funcionará mais em dispositivos Android certificados após esse tempo.", + "googleVerificationWarningP1": "O Google anunciou que, a partir de 2026/2027, todos os aplicativos em dispositivos Android \"certificados\" exigirão que o desenvolvedor envie detalhes de identidade pessoal diretamente ao Google.\n\nDepois disso, Updatium pode parar de funcionar em dispositivos Android certificados.", "googleVerificationWarningP2": "Vá para https://keepandroidopen.org/ para mais informações.", "googleVerificationWarningP3": "Note que, a curto prazo, pode continuar a ser possível instalar aplicativos \"não verificados\" (não conformes) através de um processo de \"fluxo avançado\" que o Google prometeu implementar após uma ampla retrocesso ao seu anúncio, mas eles não detalharam como isso funcionaria então não é claro se ele realmente preservará as liberdades de usuário de alguma forma prática.\n\nEm qualquer caso, o movimento do Google é um passo significativo para o fim da computação gratuita, de propósito geral para os indivíduos.\n\nOS não certificados, como o GrapheneOS, não devem ser afetados por isso enquanto forem autorizados a continuar a existir.", "multipleSigners": "Assinantes Múltiplos", diff --git a/assets/translations/pt.json b/assets/translations/pt.json index 1bd631d1..a54a1ad2 100644 --- a/assets/translations/pt.json +++ b/assets/translations/pt.json @@ -24,7 +24,7 @@ "color": "Cor", "standard": "Padrão", "custom": "Personalizado", - "useMaterialYou": "Utilizar o material que", + "useMaterialYou": "Utilizar cores Material You", "githubStarredRepos": "repositórios favoritos no GitHub", "uname": "Nome de usuário", "wrongArgNum": "Número de argumentos errado", @@ -342,7 +342,7 @@ "GHReqPrefix": "Instância 'sky22333/hubproxy' para pedidos de GitHub", "includeZips": "Incluir ficheiros ZIP", "zippedApkFilterRegEx": "Filtrar APKs dentro do ZIP", - "googleVerificationWarningP1": "O Google anunciou que, a partir de 2026/2027, todos os aplicativos em dispositivos Android \"certificados\" exigirão que o desenvolvedor envie detalhes de identidade pessoal diretamente ao Google.\n\nUma vez que os desenvolvedores deste aplicativo não concordam com este requisito, Updatium não funcionará mais em dispositivos Android certificados após esse tempo.", + "googleVerificationWarningP1": "O Google anunciou que, a partir de 2026/2027, todos os aplicativos em dispositivos Android \"certificados\" exigirão que o desenvolvedor envie detalhes de identidade pessoal diretamente ao Google.\n\nDepois disso, Updatium pode parar de funcionar em dispositivos Android certificados.", "googleVerificationWarningP2": "Vá para https://keepandroidopen.org/ para mais informações.", "googleVerificationWarningP3": "Note que, a curto prazo, pode continuar a ser possível instalar aplicativos \"não verificados\" (não conformes) através de um processo de \"fluxo avançado\" que o Google prometeu implementar após uma ampla retrocesso ao seu anúncio, mas eles não detalharam como isso funcionaria então não é claro se ele realmente preservará as liberdades de usuário de alguma forma prática.\n\nEm qualquer caso, o movimento do Google é um passo significativo para o fim da computação gratuita, de propósito geral para os indivíduos.\n\nOS não certificados, como o GrapheneOS, não devem ser afetados por isso enquanto forem autorizados a continuar a existir.", "multipleSigners": "Assinantes Múltiplos", diff --git a/assets/translations/ru.json b/assets/translations/ru.json index 3179ed77..79c2dea5 100644 --- a/assets/translations/ru.json +++ b/assets/translations/ru.json @@ -24,7 +24,7 @@ "color": "Цвет", "standard": "Стандартный", "custom": "Индивидуальный", - "useMaterialYou": "Использовать Material You", + "useMaterialYou": "Использовать цвета Material You", "githubStarredRepos": "Избранные репозитории GitHub", "uname": "Имя пользователя", "wrongArgNum": "Неправильное количество предоставленных аргументов", @@ -341,7 +341,7 @@ "GHReqPrefix": "Использовать «sky22333/hubproxy» для запросов на GitHub", "includeZips": "Включить ZIP-файлы", "zippedApkFilterRegEx": "Фильтр APK внутри ZIP", - "googleVerificationWarningP1": "Google объявил, что начиная с 2026/2027 года, все приложения на сертифицированных устройствах Android потребуют от разработчика предоставления персональных данных непосредственно Google.\n\nПоскольку разработчики данного приложения не согласны с этим требованием, Updatium не будет работать на сертифицированных устройствах Android после наступления данного события.", + "googleVerificationWarningP1": "Google объявил, что начиная с 2026/2027 года, все приложения на сертифицированных устройствах Android потребуют от разработчика предоставления персональных данных непосредственно Google.\n\nПосле этого, Updatium может перестать работать на сертифицированных устройствах Android.", "googleVerificationWarningP2": "Перейдите на https://keepandroidopen.org/ для получения дополнительной информации.", "googleVerificationWarningP3": "Обратите внимание, что в краткосрочной перспективе возможно установить «непроверенные» (не соответствующие) приложения с помощью процесса «продвинутого потока», который Google пообещал реализовать после широкой негативной реакции на их объявление, но они не уточнили, как это будет работать, поэтому неясно, действительно ли данный метод сохранит свободы пользователей каким-либо практическим способом.\n\nВ любом случае, действие Google является значительным шагом к завершению разработки бесплатных приложений сторонними разработчиками.\n\nНесертифицированные ОС, такие как GrapheneOS, не должны быть подвержены этому влиянию до тех пор, пока им разрешено продолжать существовать.", "multipleSigners": "Несколько подписей", diff --git a/assets/translations/sv.json b/assets/translations/sv.json index c7a2374f..9b4e1756 100644 --- a/assets/translations/sv.json +++ b/assets/translations/sv.json @@ -24,7 +24,7 @@ "color": "Färg", "standard": "Standard", "custom": "Anpassad", - "useMaterialYou": "Använd material Du", + "useMaterialYou": "Använd Material You-färger", "githubStarredRepos": "GitHub Stjärnmärkta Förråd", "uname": "Användarnamn", "wrongArgNum": "Fel antal argument har angetts", @@ -341,7 +341,7 @@ "GHReqPrefix": "Instansen \"sky22333/hubproxy\" för GitHub-förfrågningar", "includeZips": "Inkludera ZIP-filer", "zippedApkFilterRegEx": "Filtrera APK:er inuti ZIP", - "googleVerificationWarningP1": "Google har meddelat att alla appar på \"certifierade\" Android-enheter kommer att kräva att utvecklaren skickar personuppgifter direkt till Google.\n\nEftersom utvecklarna av denna app inte samtycker till detta krav kommer Updatium inte längre att arbeta med certifierade Android-enheter efter den tiden.", + "googleVerificationWarningP1": "Google har meddelat att alla appar på \"certifierade\" Android-enheter kommer att kräva att utvecklaren skickar personuppgifter direkt till Google.\n\nEfter det kan Updatium sluta fungera på certifierade Android-enheter.", "googleVerificationWarningP2": "Gå till https://keepandroidopen.org/ för mer information.", "googleVerificationWarningP3": "Observera att på kort sikt kan det fortsätta att vara möjligt att installera \"overifierade\" (icke-kompatibla) appar genom en \"avancerad flöde\" -process som Google har lovat att genomföra efter bred backlash till deras tillkännagivande, men de har inte detaljerat hur detta skulle fungera så det är oklart om det verkligen kommer att bevara användarfrihet på något praktiskt sätt.\n\nGoogles flytt är ett viktigt steg mot slutet av gratis, allmänt ändamål datorer för individer.\n\nIcke-certifierade operativsystem, som GrapheneOS, bör inte påverkas av detta så länge de får fortsätta att existera.", "multipleSigners": "Flera signers", diff --git a/assets/translations/tr.json b/assets/translations/tr.json index 73c1340b..7b6d7ed0 100644 --- a/assets/translations/tr.json +++ b/assets/translations/tr.json @@ -24,7 +24,7 @@ "color": "Renk", "standard": "Standart", "custom": "Özel", - "useMaterialYou": "Material You kullan", + "useMaterialYou": "Material You renklerini kullan", "githubStarredRepos": "GitHub yıldızlı depolar", "uname": "Kullanıcı adı", "wrongArgNum": "Yanlış sayıda argüman sağlandı", @@ -343,7 +343,7 @@ "GHReqPrefix": "GitHub istekleri için 'sky22333/hubproxy' örneği", "includeZips": "ZIP dosyalarını dahil et", "zippedApkFilterRegEx": "ZIP içindeki APK'ları filtrele", - "googleVerificationWarningP1": "Google, 2026/2027'den itibaren \"sertifikalı\" Android cihazlardaki bütün uygulamaların, geliştiricinin kişisel kimlik bilgilerini doğrudan Google'a göndermesini gerektireceğini duyurdu.\n\nBu uygulamanın geliştiricileri bu şartı kabul etmedikleri için, Updatium bu tarihten sonra sertifikalı Android cihazlarda çalışmayacaktır.", + "googleVerificationWarningP1": "Google, 2026/2027'den itibaren \"sertifikalı\" Android cihazlardaki bütün uygulamaların, geliştiricinin kişisel kimlik bilgilerini doğrudan Google'a göndermesini gerektireceğini duyurdu.\n\nBu tarihten sonra, Updatium sertifikalı Android cihazlarda çalışmayı durabilir.", "googleVerificationWarningP2": "Daha fazla bilgi için https://keepandroidopen.org/ adresine gidin.", "googleVerificationWarningP3": "Kısa vadede, Google'ın duyurudan sonra aldığı geniş tepkilerin ardından yapacağına söz verdiği \"gelişmiş akış\" işlemi ile \"doğrulanmamış\" (şartı yerine getirmeyen) uygulamaları yüklemek mümkün olabilir; ancak nasıl çalışacağını detaylandırmadıkları için bunun kullanıcı özgürlüğünü pratik anlamda gerçekten koruyup koruyamayacağı belirsizdir.\n\nHer halükârda Google'ın bu hamlesi; bireyler için ücretsiz, genel amaçlı bilişim hizmetlerinin sonuna doğru atılmış önemli bir adımdır.\n\nVar olmalarına müsaade edildiği sürece, GrapheneOS gibi sertifikasız işletim sistemleri bundan etkilenmemelidir.", "multipleSigners": "Birden fazla imzacı", diff --git a/assets/translations/uk.json b/assets/translations/uk.json index c0af2a98..19caaba3 100644 --- a/assets/translations/uk.json +++ b/assets/translations/uk.json @@ -24,7 +24,7 @@ "color": "Колір", "standard": "Стандартний", "custom": "Нестандартний", - "useMaterialYou": "Використовуйте матеріал, який ви", + "useMaterialYou": "Використовуйте кольори Material You", "githubStarredRepos": "Відзначені репозиторії GitHub", "uname": "Ім'я користувача", "wrongArgNum": "Надано неправильну кількість аргументів", @@ -341,7 +341,7 @@ "GHReqPrefix": "екземпляр 'sky22333/hubproxy' для запитів на GitHub", "includeZips": "Додайте ZIP-файли", "zippedApkFilterRegEx": "Фільтруйте APK-файли всередині ZIP", - "googleVerificationWarningP1": "Google оголосила, що, починаючи з 2026/2027, всі додатки на \"сертифікованих\" пристроях Android будуть вимагати розробника, щоб подати особисті дані в Інтернеті безпосередньо на Google.\n\nОскільки розробники цієї програми не погоджуються з цією вимогою, Updatium більше не працюватиме на сертифікованих пристроях Android після цього часу.", + "googleVerificationWarningP1": "Google оголосила, що, починаючи з 2026/2027, всі додатки на \"сертифікованих\" пристроях Android будуть вимагати розробника, щоб подати особисті дані в Інтернеті безпосередньо на Google.\n\nПісля цього, Updatium може припинити працювати на сертифікованих пристроях Android.", "googleVerificationWarningP2": "Перейти на https://keepandroidopen.org/ для отримання додаткової інформації.", "googleVerificationWarningP3": "Зауважте, що в короткостроковому терміні вона може продовжувати бути можливою для установки \"необґрунтованих\" (некомпліантних) додатків через процес \"додатковий потік\", який Google обіцяє реалізувати після широкої задньої вії до їх оголошення, але вони не докладно, як це буде працювати так, що це не зрозуміло, чи це буде дійсно зберігати свобод користувачів будь-яким практичним способом.\n\nУ будь-якому випадку, переміщення Google є важливим кроком до кінця безкоштовного, універсального обчислення для фізичних осіб.\n\nНесертифіковані ОС, як GrapheneOS, повинні бути неоцінені цими протягом тривалого часу, щоб вони могли продовжити існування.", "multipleSigners": "Кілька підписників", diff --git a/assets/translations/vi.json b/assets/translations/vi.json index 689330c6..c090d7c8 100644 --- a/assets/translations/vi.json +++ b/assets/translations/vi.json @@ -24,7 +24,7 @@ "color": "Màu sắc", "standard": "Mặc định", "custom": "Tùy chỉnh", - "useMaterialYou": "Sử dụng Material You", + "useMaterialYou": "Sử dụng màu Material You", "githubStarredRepos": "Kho lưu trữ có gắn dấu sao GitHub", "uname": "Tên người dùng", "wrongArgNum": "Số lượng đối số được cung cấp sai", @@ -342,7 +342,7 @@ "GHReqPrefix": "Thực thể 'sky22333/hubproxy' cho các yêu cầu GitHub", "includeZips": "Bao gồm các tệp ZIP", "zippedApkFilterRegEx": "Lọc các tệp APK bên trong tệp ZIP", - "googleVerificationWarningP1": "Google đã thông báo rằng, bắt đầu từ năm 2026/2027, tất cả các ứng dụng trên các thiết bị Alpha được ký hiệu sẽ yêu cầu nhà phát triển gửi thông tin cá nhân trực tiếp đến Google.\n\nVì các nhà phát triển của ứng dụng này không đồng ý với yêu cầu này, nên Otainium sẽ không còn làm việc trên các thiết bị được chứng nhận là steroid sau thời gian đó.", + "googleVerificationWarningP1": "Google đã thông báo rằng, bắt đầu từ năm 2026/2027, tất cả các ứng dụng trên các thiết bị Android được chứng nhận sẽ yêu cầu nhà phát triển gửi thông tin cá nhân trực tiếp đến Google.\n\nSau đó, Updatium có thể ngừng hoạt động trên các thiết bị Android được chứng nhận.", "googleVerificationWarningP2": "Truy cập https://keepandroidopen.org/ để biết thêm thông tin.", "googleVerificationWarningP3": "Ghi chú rằng trong ngắn hạn, nó có thể tiếp tục có thể được tiếp tục để cài đặt các ứng dụng \"không xác định\" thông qua một quá trình \"vô hạn dòng chảy\" mà Google đã hứa sẽ thực hiện sau một hồi quy rộng cho thông báo của họ, nhưng họ không có chi tiết làm thế nào điều này sẽ hoạt động như thế nào vì vậy nó không rõ ràng nó sẽ thực sự bảo tồn tự do cho người dùng theo bất kỳ cách thực tế nào.\n\nTrong bất kỳ trường hợp nào, sự di chuyển của Google là một bước tiến đáng kể tới sự kết thúc của máy tính tự do, mục đích chung cho cá nhân.\n\nCác hệ điều hành không được ghi nhận, giống như GreneOS, nên không bị ảnh hưởng bởi điều này miễn là chúng được cho phép tiếp tục tồn tại.", "multipleSigners": "Nhiều người ký", diff --git a/assets/translations/zh-Hant-TW.json b/assets/translations/zh-Hant-TW.json index b9ce66ac..528596f7 100644 --- a/assets/translations/zh-Hant-TW.json +++ b/assets/translations/zh-Hant-TW.json @@ -24,7 +24,7 @@ "color": "顏色", "standard": "標準", "custom": "自訂", - "useMaterialYou": "使用 Material You", + "useMaterialYou": "使用 Material You 顏色", "githubStarredRepos": "GitHub 打星星的專案", "uname": "使用者名稱", "wrongArgNum": "提供的參數數量錯誤", @@ -341,7 +341,7 @@ "GHReqPrefix": "GitHub 請求的 'sky22333/hubproxy' 實例", "includeZips": "包含 ZIP 文件", "zippedApkFilterRegEx": "在 ZIP 內過濾 APK", - "googleVerificationWarningP1": "Google 已宣布,自 2026/2027 年起,所有在「通過認證(certified)」的 Android 裝置上執行的應用程式,都必須由開發者直接向 Google 提交個人身分資訊。\n\n由於本應用程式的開發者不同意此一要求,Updatium 在該時間點之後將無法再於通過認證的 Android 裝置上運作。", + "googleVerificationWarningP1": "Google 已宣布,自 2026/2027 年起,所有在「通過認證(certified)」的 Android 裝置上執行的應用程式,都必須由開發者直接向 Google 提交個人身分資訊。\n\n之後,Updatium 可能會停止在通過認證的 Android 裝置上運作。", "googleVerificationWarningP2": "如需更多資訊,請前往 https://keepandroidopen.org/.", "googleVerificationWarningP3": "請注意,從短期來看,Google 表示在其公告引發廣泛反彈後,可能仍可透過其承諾實作的「進階流程(advanced flow)」來安裝「未經驗證」(不符合規範)的應用程式;然而,Google 尚未說明此流程的具體運作方式,因此無法確定它是否能在實務上真正維護使用者的自由。\n\n無論如何,Google 的這項作法,都是朝向終結個人自由、通用運算的一大步。\n\n只要仍被允許持續存在,像 GrapheneOS 這類未通過認證的作業系統,理論上不會受到此政策影響。", "multipleSigners": "多重簽署者", diff --git a/assets/translations/zh.json b/assets/translations/zh.json index d29c24fe..72fda44e 100644 --- a/assets/translations/zh.json +++ b/assets/translations/zh.json @@ -24,7 +24,7 @@ "color": "配色", "standard": "标准", "custom": "自定义", - "useMaterialYou": "使用 Material You", + "useMaterialYou": "使用 Material You 配色", "githubStarredRepos": "已星标的 GitHub 仓库", "uname": "用户名", "wrongArgNum": "参数数量错误", @@ -341,7 +341,7 @@ "GHReqPrefix": "用于 GitHub 请求的 \"sky22333/hubproxy \"实例", "includeZips": "包含 ZIP 文件", "zippedApkFilterRegEx": "过滤 ZIP 内的 APK", - "googleVerificationWarningP1": "Google宣布,从2026/2027年开始,所有在\"认证\"Android设备上的应用程序都将要求开发者直接向Google提交个人身份细节.\n\n由于此应用程序的开发者不同意这一要求,Updatium在此之后将不再在认证的Android设备上工作.", + "googleVerificationWarningP1": "Google宣布,从2026/2027年开始,所有在\"认证\"Android设备上的应用程序都将要求开发者直接向Google提交个人身份细节.\n\n之后,Updatium可能会停止在认证的Android设备上工作.", "googleVerificationWarningP2": "详情请访问https://keepandroidopen.org/.", "googleVerificationWarningP3": "请注意,在短期内,通过谷歌承诺在广泛反对其公告后实施的\"高级流程\"程序,可能继续安装\"未经验证\"(不符合要求)的应用软件,但他们没有详细说明这将如何运作,因此不清楚它是否会以任何实际方式真正维护用户自由.\n\n无论如何,谷歌的这一举动是朝向个人自由、通用计算结束的重要一步.\n\n未经认证的OS,如GrapheneOS,只要允许继续存在,就不应受到影响.", "multipleSigners": "多个签名人", diff --git a/lib/components/app_button.dart b/lib/components/app_button.dart index 53e4f4cd..236e81d3 100644 --- a/lib/components/app_button.dart +++ b/lib/components/app_button.dart @@ -1,5 +1,4 @@ import 'package:flutter/material.dart'; -import 'package:updatium/utils/expressive_motion.dart'; /// A custom text button widget that provides consistent styling and expressive interactions across the app class AppTextButton extends StatefulWidget { @@ -57,21 +56,21 @@ class _AppTextButtonState extends State void initState() { super.initState(); _animationController = AnimationController( - duration: ExpressiveMotion.durationShort, + duration: const Duration(milliseconds: 150), vsync: this, ); _scaleAnimation = Tween(begin: 1.0, end: 0.95).animate( CurvedAnimation( parent: _animationController, - curve: ExpressiveMotion.emphasizedAccelerate, + curve: Curves.easeOutCubic, ), ); _opacityAnimation = Tween(begin: 1.0, end: 0.8).animate( CurvedAnimation( parent: _animationController, - curve: ExpressiveMotion.standard, + curve: Curves.easeInOut, ), ); } @@ -136,9 +135,9 @@ class _AppTextButtonState extends State scale: _scaleAnimation.value, child: AnimatedOpacity( opacity: _opacityAnimation.value, - duration: ExpressiveMotion.durationShort, + duration: const Duration(milliseconds: 150), child: AnimatedContainer( - duration: ExpressiveMotion.durationShort, + duration: const Duration(milliseconds: 150), transform: Matrix4.identity() ..translate(0.0, _isHovered ? -2.0 : 0.0), decoration: BoxDecoration( diff --git a/lib/components/cached_app_icon.dart b/lib/components/cached_app_icon.dart index d476b3bf..50c9eab1 100644 --- a/lib/components/cached_app_icon.dart +++ b/lib/components/cached_app_icon.dart @@ -3,7 +3,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:updatium/providers/apps_provider.dart'; import 'package:updatium/providers/source_provider.dart'; -import 'package:updatium/utils/expressive_motion.dart'; /// Widget that displays app icons with caching and loading states class CachedAppIcon extends StatefulWidget { @@ -61,31 +60,31 @@ class _CachedAppIconState extends State _shimmerAnimation = Tween(begin: -2.0, end: 2.0).animate( CurvedAnimation( parent: _shimmerController, - curve: ExpressiveMotion.standard, + curve: Curves.easeInOut, ), ); // Scale animation for interactions _scaleController = AnimationController( - duration: ExpressiveMotion.durationShort, + duration: const Duration(milliseconds: 150), vsync: this, ); _scaleAnimation = Tween(begin: 1.0, end: 0.9).animate( CurvedAnimation( parent: _scaleController, - curve: ExpressiveMotion.emphasizedAccelerate, + curve: Curves.easeOutCubic, ), ); // Rotation animation for loading/error states _rotationController = AnimationController( - duration: ExpressiveMotion.durationLong, + duration: const Duration(milliseconds: 600), vsync: this, ); _rotationAnimation = Tween(begin: 0.0, end: 0.1).animate( CurvedAnimation( parent: _rotationController, - curve: ExpressiveMotion.standard, + curve: Curves.easeInOut, ), ); @@ -236,7 +235,7 @@ class _CachedAppIconState extends State child: Transform.rotate( angle: _rotationAnimation.value, child: AnimatedContainer( - duration: ExpressiveMotion.durationShort, + duration: const Duration(milliseconds: 150), transform: Matrix4.identity() ..translate(0.0, _isHovered ? -4.0 : 0.0), decoration: BoxDecoration( diff --git a/lib/examples/icon_cache_example.dart b/lib/examples/icon_cache_example.dart index a0f39292..eb5e09ec 100644 --- a/lib/examples/icon_cache_example.dart +++ b/lib/examples/icon_cache_example.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:updatium/components/app_button.dart'; import 'package:updatium/providers/apps_provider.dart'; import 'package:updatium/providers/logs_provider.dart'; diff --git a/lib/examples/icon_prefetcher_example.dart b/lib/examples/icon_prefetcher_example.dart index 2c0585dc..63c729d0 100644 --- a/lib/examples/icon_prefetcher_example.dart +++ b/lib/examples/icon_prefetcher_example.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:updatium/components/app_button.dart'; import 'package:updatium/providers/apps_provider.dart'; import 'package:updatium/providers/logs_provider.dart'; import 'package:updatium/services/icon_prefetcher.dart'; @@ -254,7 +255,7 @@ class _IconPrefetcherExampleState extends State { Row( children: [ Expanded( - child: FilledButton.tonal.icon( + child: FilledButton.tonalIcon( onPressed: (_status?.isRunning ?? false) ? null : _startPrefetching, @@ -264,7 +265,7 @@ class _IconPrefetcherExampleState extends State { ), const SizedBox(width: 8), Expanded( - child: FilledButton.tonal.icon( + child: FilledButton.tonalIcon( onPressed: (_status?.isRunning ?? false) ? _pausePrefetching : null, @@ -278,7 +279,7 @@ class _IconPrefetcherExampleState extends State { Row( children: [ Expanded( - child: FilledButton.tonal.icon( + child: FilledButton.tonalIcon( onPressed: (_status?.isPaused ?? false) ? _resumePrefetching : null, @@ -288,7 +289,7 @@ class _IconPrefetcherExampleState extends State { ), const SizedBox(width: 8), Expanded( - child: FilledButton.tonal.icon( + child: FilledButton.tonalIcon( onPressed: (_status?.isRunning ?? false) ? _stopPrefetching : null, @@ -299,7 +300,7 @@ class _IconPrefetcherExampleState extends State { ], ), const SizedBox(height: 8), - FilledButton.tonal.icon( + FilledButton.tonalIcon( onPressed: _showCacheStats, icon: const Icon(Icons.storage), label: const Text('View Cache Statistics'), diff --git a/lib/examples/refactored_icon_pipeline_example.dart b/lib/examples/refactored_icon_pipeline_example.dart index 730ffd43..12d509d0 100644 --- a/lib/examples/refactored_icon_pipeline_example.dart +++ b/lib/examples/refactored_icon_pipeline_example.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:updatium/components/app_button.dart'; import 'package:updatium/components/enhanced_app_icon.dart'; import 'package:updatium/models/enhanced_app.dart'; import 'package:updatium/services/enhanced_icon_prefetcher.dart'; @@ -347,7 +348,6 @@ class _RefactoredIconPipelineExampleState child: EnhancedAppIconGrid( app: app, onTap: () => _showAppDetails(app), - enablePerformanceOverlay: _showPerformanceOverlay, ), ), diff --git a/lib/examples/updated_app_catalogue_example.dart b/lib/examples/updated_app_catalogue_example.dart index 61da3e4e..6bce5c6d 100644 --- a/lib/examples/updated_app_catalogue_example.dart +++ b/lib/examples/updated_app_catalogue_example.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; +import 'package:updatium/components/app_button.dart'; import 'package:updatium/components/cached_app_icon.dart'; import 'package:updatium/providers/apps_provider.dart'; @@ -168,7 +169,7 @@ class _UpdatedAppCatalogueExampleState _buildStatItem('Total', '${apps.length}', Icons.apps), _buildStatItem('Installed', '$installedCount', Icons.download_done), _buildStatItem('Updates', '$updateCount', Icons.system_update), - _buildStatItem('Cached', '$cachedCount', Icons.cache), + _buildStatItem('Cached', '$cachedCount', Icons.storage), ], ), ); diff --git a/lib/pages/apps.dart b/lib/pages/apps.dart index c9272ca3..967ee6fa 100644 --- a/lib/pages/apps.dart +++ b/lib/pages/apps.dart @@ -1,5 +1,5 @@ +import 'package:animations/animations.dart'; import 'dart:convert'; -import 'dart:math' as math; import 'package:flutter/material.dart'; import 'package:easy_localization/easy_localization.dart'; @@ -877,58 +877,78 @@ class AppsPageState extends State { ).textTheme.bodySmall?.copyWith(fontSize: 11), ), ), - ), - const SizedBox(height: 12), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 12.0), - child: Builder( - builder: (ctx) { - final ai = listedApps[index]; - final app = ai.app; - final isInstalled = app.installedVersion != null; - final hasUpdateLocal = - isInstalled && - app.installedVersion != app.latestVersion; - final isTrackOnly = - app.additionalSettings['trackOnly'] == true; - - if (isTrackOnly) { - return const SizedBox.shrink(); - } - - if (!isInstalled) { - return FilledButton.tonal( - onPressed: appsProvider.areDownloadsRunning() - ? null - : () { - appsProvider - .downloadAndInstallLatestApps([ - app.id, - ], globalNavigatorKey.currentContext) - .catchError((e) { - showError(e, context); - return []; - }); - }, - child: Text(tr('install')), - ); - } - - if (hasUpdateLocal) { - return FilledButton.tonal( - onPressed: appsProvider.areDownloadsRunning() - ? null - : () { - appsProvider - .downloadAndInstallLatestApps([ - app.id, - ], globalNavigatorKey.currentContext) - .catchError((e) { - showError(e, context); - return []; - }); - }, - child: Text(tr('update')), + const SizedBox(height: 12), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 12.0), + child: Builder( + builder: (ctx) { + final ai = listedApps[index]; + final app = ai.app; + final isInstalled = app.installedVersion != null; + final hasUpdateLocal = + isInstalled && + app.installedVersion != app.latestVersion; + final isTrackOnly = + app.additionalSettings['trackOnly'] == true; + + if (isTrackOnly) { + return const SizedBox.shrink(); + } + + if (!isInstalled) { + return FilledButton.tonal( + onPressed: appsProvider.areDownloadsRunning() + ? null + : () { + appsProvider + .downloadAndInstallLatestApps([ + app.id, + ], globalNavigatorKey.currentContext) + .catchError((e) { + showError(e, context); + return []; + }); + }, + child: Text(tr('install')), + ); + } + + if (hasUpdateLocal) { + return FilledButton.tonal( + onPressed: appsProvider.areDownloadsRunning() + ? null + : () { + appsProvider + .downloadAndInstallLatestApps([ + app.id, + ], globalNavigatorKey.currentContext) + .catchError((e) { + showError(e, context); + return []; + }); + }, + child: Text(tr('update')), + ); + } + + return Row( + mainAxisSize: MainAxisSize.min, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.check_circle, + color: Colors.green[600], + size: MediaQuery.of(context).size.width * 0.04, + ), + SizedBox( + width: + MediaQuery.of(context).size.width * 0.015, + ), + Text( + tr('updated'), + style: TextStyle(color: Colors.green[600]), + ), + ], ); } @@ -961,20 +981,27 @@ class AppsPageState extends State { borderRadius: BorderRadius.circular(12), color: Colors.black45, ), - child: Center( - child: CircularProgressIndicator( - value: listedApps[index].downloadProgress! >= 0 - ? listedApps[index].downloadProgress! / 100 - : null, + const SizedBox(height: 16), + ], + ), + if (listedApps[index].downloadProgress != null) + Positioned.fill( + child: Container( + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(12), + color: Colors.black45, + ), + child: Center( + child: CircularProgressIndicator( + value: listedApps[index].downloadProgress! >= 0 + ? listedApps[index].downloadProgress! / 100 + : null, + ), ), ), - ), - ), - ], - ), ), - ); - } + ), + ); getCategoryCollapsibleTile(int index) { var tiles = listedApps diff --git a/lib/pages/home.dart b/lib/pages/home.dart index ba5e7e52..78216054 100644 --- a/lib/pages/home.dart +++ b/lib/pages/home.dart @@ -8,10 +8,10 @@ import 'package:flutter/services.dart'; import 'package:updatium/components/animated_navigation_bar.dart'; import 'package:updatium/components/app_button.dart'; import 'package:updatium/components/generated_form_modal.dart'; +import 'package:updatium/pages/import_export.dart'; import 'package:updatium/custom_errors.dart'; import 'package:updatium/pages/add_app.dart'; import 'package:updatium/pages/apps.dart'; -import 'package:updatium/pages/import_export.dart'; import 'package:updatium/pages/security_disclaimer.dart'; import 'package:updatium/pages/settings.dart'; import 'package:updatium/providers/apps_provider.dart'; diff --git a/lib/pages/import_export.dart b/lib/pages/import_export.dart index fe43ea09..723ecdd1 100644 --- a/lib/pages/import_export.dart +++ b/lib/pages/import_export.dart @@ -530,7 +530,7 @@ class _ImportExportPageState extends State { runSourceSearch(searchSource[0]); } }, - child: Text( + label: Text( tr( 'searchX', args: [lowerCaseIfEnglish(tr('source'))], @@ -749,7 +749,7 @@ class _SelectionModalState extends State { selectAll(deselect: true); }); }, - child: Text(tr('deselectX', args: [''])), + child: Text(tr('deselectX', args: [tr('all')])), ); } @@ -927,7 +927,7 @@ class _SelectionModalState extends State { onPressed: () { Navigator.of(context).pop(); }, - child: Text(tr('cancel')), + label: Text(tr('cancel')), ), AppTextButton( onPressed: entrySelections.values.where((b) => b).isEmpty @@ -940,7 +940,7 @@ class _SelectionModalState extends State { .toList(), ); }, - child: Text( + label: Text( widget.onlyOneSelectionAllowed ? tr('pick') : tr( diff --git a/lib/providers/notifications_provider.dart b/lib/providers/notifications_provider.dart index 3a911e47..8ffbcff9 100644 --- a/lib/providers/notifications_provider.dart +++ b/lib/providers/notifications_provider.dart @@ -236,7 +236,7 @@ class NotificationsProvider { var content = (payload ?? '\n\n').split('\n').sublist(1).join('\n'); globalNavigatorKey.currentState?.push( PageRouteBuilder( - pageBuilder: (context, _, __) => AlertDialog( + pageBuilder: (context, _, _) => AlertDialog( title: Text(title), content: Text(content), actions: [ diff --git a/lib/services/enhanced_icon_prefetcher.dart b/lib/services/enhanced_icon_prefetcher.dart index ab15c1ad..14d66535 100644 --- a/lib/services/enhanced_icon_prefetcher.dart +++ b/lib/services/enhanced_icon_prefetcher.dart @@ -612,7 +612,9 @@ class EnhancedIconPrefetcher { successCount: _successCount, errorCount: _errorCount, totalCount: _totalCount, + duration: Duration.zero, errors: List.from(_errors), + metrics: Map.from(_metrics), ), ); } @@ -683,7 +685,7 @@ class PrefetchConfig { static const PrefetchConfig highQuality = PrefetchConfig( maxSize: 512, - retryCount = 5, + retryCount: 5, timeout: Duration(seconds: 60), ); } @@ -790,7 +792,13 @@ class PrefetchMetrics { int successCount = 0; int errorCount = 0; - PrefetchMetrics(this.appId); + PrefetchMetrics( + this.appId, { + this.lastSuccess, + this.lastError, + this.lastDuration, + this.lastAttempt, + }); double get successRate { final total = successCount + errorCount; diff --git a/pubspec.lock b/pubspec.lock index 3f6e6b4a..3c2c8a15 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -136,10 +136,10 @@ packages: dependency: transitive description: name: characters - sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 + sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.4.1" clock: dependency: transitive description: @@ -652,18 +652,18 @@ packages: dependency: transitive description: name: matcher - sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 + sha256: "12956d0ad8390bbcc63ca2e1469c0619946ccb52809807067a7020d57e647aa6" url: "https://pub.dev" source: hosted - version: "0.12.17" + version: "0.12.18" material_color_utilities: dependency: "direct main" description: name: material_color_utilities - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" url: "https://pub.dev" source: hosted - version: "0.11.1" + version: "0.13.0" meta: dependency: transitive description: @@ -1075,10 +1075,10 @@ packages: dependency: transitive description: name: test_api - sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 + sha256: "19a78f63e83d3a61f00826d09bc2f60e191bf3504183c001262be6ac75589fb8" url: "https://pub.dev" source: hosted - version: "0.7.7" + version: "0.7.8" timezone: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 6bd732c8..4851ad43 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -42,7 +42,7 @@ dependencies: http: ^1.6.0 webview_flutter: ^4.13.1 dynamic_color: ^1.8.1 - material_color_utilities: ^0.11.1 + material_color_utilities: ^0.13.0 html: ^0.15.6 shared_preferences: ^2.5.4 url_launcher: ^6.3.2