diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3f8802559a..99d3aa2e4c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,6 +16,8 @@ on: jobs: release: name: Release + permissions: + contents: write runs-on: ubuntu-latest steps: - name: Checkout @@ -35,8 +37,7 @@ jobs: - name: Set up Flutter uses: subosito/flutter-action@v2 with: - channel: "stable" - flutter-version: 3.24.x + channel: stable - name: Install dependencies run: npm ci @@ -50,13 +51,15 @@ jobs: - name: Generate code files run: dart run build_runner build --delete-conflicting-outputs + - name: Setup keystore + run: | + echo "${{ secrets.KEYSTORE }}" | base64 --decode > "keystore.jks"} + - name: Release env: - GITHUB_TOKEN: ${{ secrets.REPOSITORY_PUSH_ACCESS }} - signingKey: "keystore.jks" - keyStorePassword: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }} - keyAlias: ${{ secrets.SIGNING_KEY_ALIAS }} - keyPassword: ${{ secrets.SIGNING_KEY_PASSWORD }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }} + KEYSTORE_ENTRY_ALIAS: ${{ secrets.KEYSTORE_ENTRY_ALIAS }} + KEYSTORE_ENTRY_PASSWORD: ${{ secrets.KEYSTORE_ENTRY_PASSWORD }} run: | - echo "${{ secrets.SIGNING_KEYSTORE }}" | base64 --decode > android/app/keystore.jks npx semantic-release diff --git a/.github/workflows/sync_crowdin.yml b/.github/workflows/sync_crowdin.yml index fb6aafe0d4..a802dfe019 100644 --- a/.github/workflows/sync_crowdin.yml +++ b/.github/workflows/sync_crowdin.yml @@ -68,6 +68,5 @@ jobs: git config user.name revanced-bot git config user.email github@revanced.app sudo chown -R $USER:$USER .git - git add assets/i18n/strings.*.json - git commit -m "chore: Remove empty values from JSON" assets/i18n/strings.*.json + git commit -m "chore: Remove empty values from JSON" assets/i18n/strings_*.json git push origin HEAD:feat/translations diff --git a/.gitignore b/.gitignore index 88e4e5c76e..8c96735ab6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,50 +1,54 @@ -# See https://www.dartlang.org/guides/libraries/private-files +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ -# Files and directories created by pub -.dart_tool/ -.packages -build/ -# If you're building an application, you may want to check-in your pubspec.lock -# pubspec.lock - -# Directory created by dartdoc -# If you don't generate documentation locally you can remove this line. -doc/api/ - -# dotenv environment variables file -.env* - -# Avoid committing generated Javascript files: -*.dart.js -*.info.json # Produced by the --dump-info flag. -*.js # When generated by dart2js. Don't specify *.js if your - # project includes source files written in JavaScript. -*.js_ -*.js.deps -*.js.map +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ .flutter-plugins .flutter-plugins-dependencies +.pub-cache/ +.pub/ +/build/ -# Generated Builder file -**/*.g.dart -**/*.locator.dart -**/*.router.dart +# Symbolication related +app.*.symbols -flutter_*.png +# Obfuscation related +app.*.map.json -#### Custom +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release -local.properties - -# IntelliJ related -*.iml -*.ipr -*.iws -.idea/ +# Generated files +**/*.g.dart +**/*.locator.dart +**/*.router.dart -# Node Dependency directories +# Project specific node_modules/ +.vscode/ + -# FVM -.fvm \ No newline at end of file diff --git a/.metadata b/.metadata index e7c1001054..c689480b51 100644 --- a/.metadata +++ b/.metadata @@ -1,11 +1,11 @@ # This file tracks properties of this Flutter project. # Used by Flutter tool to assess capabilities and perform upgrades etc. # -# This file should be version controlled. +# This file should be version controlled and should not be manually edited. version: - revision: 85684f9300908116a78138ea4c6036c35c9a1236 - channel: stable + revision: "2663184aa79047d0a33a14a3b607954f8fdd8730" + channel: "stable" project_type: app @@ -13,26 +13,11 @@ project_type: app migration: platforms: - platform: root - create_revision: 85684f9300908116a78138ea4c6036c35c9a1236 - base_revision: 85684f9300908116a78138ea4c6036c35c9a1236 + create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 + base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 - platform: android - create_revision: 85684f9300908116a78138ea4c6036c35c9a1236 - base_revision: 85684f9300908116a78138ea4c6036c35c9a1236 - - platform: ios - create_revision: 85684f9300908116a78138ea4c6036c35c9a1236 - base_revision: 85684f9300908116a78138ea4c6036c35c9a1236 - - platform: linux - create_revision: 85684f9300908116a78138ea4c6036c35c9a1236 - base_revision: 85684f9300908116a78138ea4c6036c35c9a1236 - - platform: macos - create_revision: 85684f9300908116a78138ea4c6036c35c9a1236 - base_revision: 85684f9300908116a78138ea4c6036c35c9a1236 - - platform: web - create_revision: 85684f9300908116a78138ea4c6036c35c9a1236 - base_revision: 85684f9300908116a78138ea4c6036c35c9a1236 - - platform: windows - create_revision: 85684f9300908116a78138ea4c6036c35c9a1236 - base_revision: 85684f9300908116a78138ea4c6036c35c9a1236 + create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 + base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730 # User provided section diff --git a/.releaserc b/.releaserc index fbb1210049..5ceed3a89d 100644 --- a/.releaserc +++ b/.releaserc @@ -17,15 +17,10 @@ "@semantic-release/changelog", "@semantic-release/release-notes-generator", [ - "@droidsolutions-oss/semantic-release-update-file", + "semantic-release-pub", { - "files": [ - { - "path": ["pubspec.yaml"], - "type": "flutter", - "branches": ["main", "dev"] - } - ] + "publishPub": false, + "updateBuildNumber": true } ], [ @@ -48,7 +43,10 @@ "assets": [ { "path": "build/app/outputs/apk/release/revanced-manager*.apk" - } + }, + ], + "commits": [ + "message": "chore: Release v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}" ], "successComment": false } diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index a09c28f5e6..0000000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "Generate (Builder)", - "type": "shell", - "command": "flutter packages pub run build_runner build --delete-conflicting-outputs", - "problemMatcher": [] - }, - { - "label": "Build (Android)", - "type": "shell", - "command": "flutter build apk", - "problemMatcher": [], - "group": { - "kind": "build", - "isDefault": true - } - }, - { - "label": "Install (Android)", - "type": "shell", - "command": "adb install build\\app\\outputs\\flutter-apk\\app-release.apk", - "problemMatcher": [] - }, - { - "label": "Clean (Flutter)", - "type": "shell", - "command": "flutter clean && flutter pub get", - "problemMatcher": [] - }, - { - "label": "Clean (Builder)", - "type": "shell", - "command": "flutter packages pub run build_runner clean", - "problemMatcher": [] - }, - { - "label": "Build all (Android)", - "dependsOrder": "sequence", - "dependsOn": [ - "Generate (Builder)", - "Build (Android)" - ], - "problemMatcher": [] - }, - { - "label": "Clean all", - "dependsOrder": "sequence", - "dependsOn": [ - "Clean (Flutter)", - "Clean (Builder)" - ], - "problemMatcher": [] - }, - { - "label": "Clean all & Build all (Android)", - "dependsOrder": "sequence", - "dependsOn": [ - "Clean all", - "Build all (Android)" - ], - "problemMatcher": [] - }, - { - "label": "Clean all & Install (Android)", - "dependsOrder": "sequence", - "dependsOn": [ - "Clean all", - "Build all (Android)", - "Install (Android)", - ], - "problemMatcher": [] - }, - { - "label": "Build & Install (Android)", - "dependsOrder": "sequence", - "dependsOn": [ - "Build (Android)", - "Install (Android)" - ], - "problemMatcher": [] - }, - { - "label": "Validate translations", - "type": "shell", - "command": "flutter pub run flutter_i18n diff en.json pt.json", - "problemMatcher": [] - } - ] -} diff --git a/android/.gitignore b/android/.gitignore index 6f568019d3..55afd919c6 100644 --- a/android/.gitignore +++ b/android/.gitignore @@ -7,7 +7,7 @@ gradle-wrapper.jar GeneratedPluginRegistrant.java # Remember to never publicly share your keystore. -# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app +# See https://flutter.dev/to/reference-keystore key.properties **/*.keystore **/*.jks diff --git a/android/Gemfile b/android/Gemfile deleted file mode 100644 index 7a118b49be..0000000000 --- a/android/Gemfile +++ /dev/null @@ -1,3 +0,0 @@ -source "https://rubygems.org" - -gem "fastlane" diff --git a/android/app/build.gradle b/android/app/build.gradle deleted file mode 100644 index 94a137717d..0000000000 --- a/android/app/build.gradle +++ /dev/null @@ -1,114 +0,0 @@ -plugins { - id "com.android.application" - id "kotlin-android" - id "dev.flutter.flutter-gradle-plugin" -} - -def localProperties = new Properties() -def localPropertiesFile = rootProject.file('local.properties') -if (localPropertiesFile.exists()) { - localPropertiesFile.withReader('UTF-8') { reader -> - localProperties.load(reader) - } -} - -def flutterVersionCode = localProperties.getProperty('flutter.versionCode') -if (flutterVersionCode == null) { - flutterVersionCode = '1' -} - -def flutterVersionName = localProperties.getProperty('flutter.versionName') -if (flutterVersionName == null) { - flutterVersionName = '1.0' -} - -android { - compileSdk 34 - - compileOptions { - coreLibraryDesugaringEnabled true - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 - } - kotlinOptions { - jvmTarget = '17' - } - sourceSets { - main.java.srcDirs += 'src/main/kotlin' - } - defaultConfig { - applicationId "app.revanced.manager.flutter" - minSdk 26 - targetSdk 34 - versionCode flutterVersionCode.toInteger() - versionName flutterVersionName - } - buildTypes { - configureEach { - shrinkResources = false - minifyEnabled = false - signingConfig signingConfigs.debug - ndk { - abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86_64' - } - } - release { - shrinkResources true - minifyEnabled true - if (System.getenv("signingKey") != null) { - signingConfigs { - create("release") { - storeFile = file(System.getenv("signingKey")) - storePassword = System.getenv("keyStorePassword") - keyAlias = System.getenv("keyAlias") - keyPassword = System.getenv("keyPassword") - } - } - signingConfig = signingConfigs.release - resValue "string", "app_name", "ReVanced Manager" - applicationVariants.all { variant -> - variant.outputs.all { - outputFileName = "revanced-manager-v${flutterVersionName}.apk" - } - } - } else { - signingConfig = signingConfigs.debug - resValue "string", "app_name", "ReVanced Manager (Debug)" - applicationIdSuffix ".debug" - } - } - debug { - resValue "string", "app_name", "ReVanced Manager (Debug)" - applicationIdSuffix ".debug" - } - profile { - resValue "string", "app_name", "ReVanced Manager (Profile)" - applicationIdSuffix ".profile" - } - } - packagingOptions { - jniLibs { - useLegacyPackaging true - excludes += ['/prebuilt/**'] - } - resources { - excludes += ['/prebuilt/**'] - } - } - - namespace 'app.revanced.manager.flutter' -} - -kotlin { - jvmToolchain(17) -} - -flutter { - source '../..' -} - -dependencies { - coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4") // https://pub.dev/packages/flutter_local_notifications#gradle-setup - implementation("app.revanced:revanced-patcher:19.3.1") - implementation("app.revanced:revanced-library:2.2.1") -} diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts new file mode 100644 index 0000000000..09ff84d25d --- /dev/null +++ b/android/app/build.gradle.kts @@ -0,0 +1,104 @@ +plugins { + id("com.android.application") + id("kotlin-android") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "app.revanced.manager.flutter" + compileSdk = 35 + ndkVersion = "27.0.12077973" + + compileOptions { + isCoreLibraryDesugaringEnabled = true + + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + applicationId = "app.revanced.manager.flutter" + minSdk = 26 + targetSdk = 35 + versionCode = flutter.versionCode + versionName = flutter.versionName + + resValue("string", "app_name", "ReVanced Manager") + } + + applicationVariants.all { + outputs.all { + this as com.android.build.gradle.internal.api.ApkVariantOutputImpl + + outputFileName = "revanced-manager-$versionName.apk" + } + } + + buildTypes { + configureEach { + isShrinkResources = false + isMinifyEnabled = false + + signingConfig = signingConfigs["debug"] + + ndk.abiFilters += setOf("armeabi-v7a", "arm64-v8a", "x86_64") + } + + release { + isShrinkResources = true + isMinifyEnabled = true + + val keystoreFile = file("keystore.jks") + if (keystoreFile.exists()) { + signingConfig = signingConfigs.create("release") { + storeFile = keystoreFile + storePassword = System.getenv("KEYSTORE_PASSWORD") + keyAlias = System.getenv("KEYSTORE_ENTRY_ALIAS") + keyPassword = System.getenv("KEYSTORE_ENTRY_PASSWORD") + } + + resValue("string", "app_name", "ReVanced Manager") + } else { + applicationIdSuffix = ".debug" + + signingConfig = signingConfigs["debug"] + + resValue("string", "app_name", "ReVanced Manager (Debug signed)") + } + } + + debug { + applicationIdSuffix = ".debug" + + resValue("string", "app_name", "ReVanced Manager (Debug)") + } + } + + packaging { + jniLibs { + useLegacyPackaging = true + excludes.add("/prebuilt/**") + } + + resources { + excludes.add("/prebuilt/**") + } + } +} + + +flutter { + source = "../.." +} + +dependencies { + coreLibraryDesugaring(libs.desugar.jdk.libs) // https://pub.dev/packages/flutter_local_notifications#gradle-setup + implementation(libs.revanced.patcher) + implementation(libs.revanced.library) +} + diff --git a/android/app/proguard-rules.pro b/android/app/proguard-rules.pro index ce5df91fdf..88daa53dcb 100644 --- a/android/app/proguard-rules.pro +++ b/android/app/proguard-rules.pro @@ -1,10 +1,3 @@ -# Add project specific ProGuard rules here. -# You can control the set of applied configuration files using the -# proguardFiles setting in build.gradle.kts.kts. -# -# For more details, see -# http://developer.android.com/guide/developing/tools/proguard.html - -dontobfuscate -keep class app.revanced.** { *; } diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml index bbd7ee7776..399f6981d5 100644 --- a/android/app/src/debug/AndroidManifest.xml +++ b/android/app/src/debug/AndroidManifest.xml @@ -1,3 +1,7 @@ + diff --git a/android/app/src/main/kotlin/app/revanced/manager/flutter/ExportSettingsActivity.kt b/android/app/src/main/kotlin/app/revanced/manager/flutter/ExportSettingsActivity.kt index 6acd083a3a..4290cbcc31 100644 --- a/android/app/src/main/kotlin/app/revanced/manager/flutter/ExportSettingsActivity.kt +++ b/android/app/src/main/kotlin/app/revanced/manager/flutter/ExportSettingsActivity.kt @@ -3,7 +3,6 @@ package app.revanced.manager.flutter import android.app.Activity import android.content.Context import android.content.Intent -import android.content.pm.PackageInfo import android.content.pm.PackageManager import android.os.Bundle import android.util.Base64 @@ -17,9 +16,8 @@ import java.security.MessageDigest class ExportSettingsActivity : Activity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - val callingPackageName = getCallingPackage()!! - if (getFingerprint(callingPackageName) == getFingerprint(getPackageName())) { + if (getFingerprint(callingPackage!!) == getFingerprint(packageName)) { // Create JSON Object val json = JSONObject() @@ -64,7 +62,7 @@ class ExportSettingsActivity : Activity() { fun getFingerprint(packageName: String): String { // Get the signature of the app that matches the package name val packageInfo = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES) - val signature = packageInfo.signatures[0] + val signature = packageInfo.signatures!![0] // Get the raw certificate data val rawCert = signature.toByteArray() diff --git a/android/app/src/main/kotlin/app/revanced/manager/flutter/MainActivity.kt b/android/app/src/main/kotlin/app/revanced/manager/flutter/MainActivity.kt index 4f4ed0d1f5..4a931db979 100644 --- a/android/app/src/main/kotlin/app/revanced/manager/flutter/MainActivity.kt +++ b/android/app/src/main/kotlin/app/revanced/manager/flutter/MainActivity.kt @@ -9,14 +9,15 @@ import android.os.Handler import android.os.Looper import app.revanced.library.ApkUtils import app.revanced.library.ApkUtils.applyTo +import app.revanced.library.installation.installer.LocalInstaller import app.revanced.manager.flutter.utils.Aapt import app.revanced.manager.flutter.utils.packageInstaller.InstallerReceiver import app.revanced.manager.flutter.utils.packageInstaller.UninstallerReceiver -import app.revanced.patcher.PatchBundleLoader -import app.revanced.patcher.PatchSet import app.revanced.patcher.Patcher import app.revanced.patcher.PatcherConfig +import app.revanced.patcher.patch.Patch import app.revanced.patcher.patch.PatchResult +import app.revanced.patcher.patch.loadPatchesFromDex import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.engine.FlutterEngine import io.flutter.plugin.common.MethodChannel @@ -37,7 +38,7 @@ class MainActivity : FlutterActivity() { private var cancel: Boolean = false private var stopResult: MethodChannel.Result? = null - private lateinit var patches: PatchSet + private lateinit var patches: Set> override fun configureFlutterEngine(flutterEngine: FlutterEngine) { super.configureFlutterEngine(flutterEngine) @@ -70,7 +71,6 @@ class MainActivity : FlutterActivity() { "runPatcher" -> { val inFilePath = call.argument("inFilePath") val outFilePath = call.argument("outFilePath") - val integrationsPath = call.argument("integrationsPath") val selectedPatches = call.argument>("selectedPatches") val options = call.argument>>("options") val tmpDirPath = call.argument("tmpDirPath") @@ -80,7 +80,6 @@ class MainActivity : FlutterActivity() { if ( inFilePath != null && outFilePath != null && - integrationsPath != null && selectedPatches != null && options != null && tmpDirPath != null && @@ -92,14 +91,17 @@ class MainActivity : FlutterActivity() { result, inFilePath, outFilePath, - integrationsPath, selectedPatches, options, tmpDirPath, keyStoreFilePath, keystorePassword ) - } else result.notImplemented() + } else result.error( + "INVALID_ARGUMENTS", + "Invalid arguments", + "One or more arguments are missing" + ) } "stopPatcher" -> { @@ -113,14 +115,16 @@ class MainActivity : FlutterActivity() { try { val patchBundleFile = File(patchBundleFilePath) patchBundleFile.setWritable(false) - patches = PatchBundleLoader.Dex( - patchBundleFile, + patches = loadPatchesFromDex( + setOf(patchBundleFile), optimizedDexDirectory = codeCacheDir ) - } catch (ex: Exception) { - return@setMethodCallHandler result.notImplemented() - } catch (err: Error) { - return@setMethodCallHandler result.notImplemented() + } catch (t: Throwable) { + return@setMethodCallHandler result.error( + "PATCH_BUNDLE_ERROR", + "Failed to load patch bundle", + t.stackTraceToString() + ) } JSONArray().apply { @@ -130,13 +134,13 @@ class MainActivity : FlutterActivity() { put("description", it.description) put("excluded", !it.use) put("compatiblePackages", JSONArray().apply { - it.compatiblePackages?.forEach { compatiblePackage -> + it.compatiblePackages?.forEach { (name, versions) -> val compatiblePackageJson = JSONObject().apply { - put("name", compatiblePackage.name) + put("name", name) put( "versions", JSONArray().apply { - compatiblePackage.versions?.forEach { version -> + versions?.forEach { version -> put(version) } }) @@ -172,7 +176,7 @@ class MainActivity : FlutterActivity() { } }) } ?: put("values", null) - put("valueType", option.valueType) + put("type", option.type) }.let(::put) } }) @@ -211,7 +215,6 @@ class MainActivity : FlutterActivity() { result: MethodChannel.Result, inFilePath: String, outFilePath: String, - integrationsPath: String, selectedPatches: List, options: Map>, tmpDirPath: String, @@ -219,8 +222,10 @@ class MainActivity : FlutterActivity() { keystorePassword: String ) { val inFile = File(inFilePath) + // Necessary because the file is copied from a nonwriteable location. + inFile.setWritable(true) + inFile.setReadable(true) val outFile = File(outFilePath) - val integrations = File(integrationsPath) val keyStoreFile = File(keyStoreFilePath) val tmpDir = File(tmpDirPath) @@ -278,7 +283,6 @@ class MainActivity : FlutterActivity() { tmpDir, Aapt.binary(applicationContext).absolutePath, tmpDir.path, - true // TODO: Add option to disable this ) ) @@ -286,8 +290,8 @@ class MainActivity : FlutterActivity() { updateProgress(0.02, "Loading patches...", "Loading patches") val patches = patches.filter { patch -> - val isCompatible = patch.compatiblePackages?.any { - it.name == patcher.context.packageMetadata.packageName + val isCompatible = patch.compatiblePackages?.any { (name, _) -> + name == patcher.context.packageMetadata.packageName } ?: false val compatibleOrUniversal = @@ -304,10 +308,7 @@ class MainActivity : FlutterActivity() { updateProgress(0.05, "Executing...", "") val patcherResult = patcher.use { - patcher.apply { - acceptIntegrations(setOf(integrations)) - acceptPatches(patches) - } + it += patches runBlocking { // Update the progress bar every time a patch is executed from 0.15 to 0.7 @@ -315,7 +316,7 @@ class MainActivity : FlutterActivity() { val progressStep = 0.55 / totalPatchesCount var progress = 0.05 - patcher.apply(false).collect(FlowCollector { patchResult: PatchResult -> + patcher().collect(FlowCollector { patchResult: PatchResult -> if (cancel(patcher::close)) return@FlowCollector val msg = patchResult.exception?.let { @@ -343,10 +344,11 @@ class MainActivity : FlutterActivity() { if (cancel(patcher::close)) return@Thread - ApkUtils.sign( + ApkUtils.signApk( inFile, outFile, - ApkUtils.SigningOptions( + "ReVanced", + ApkUtils.KeyStoreDetails( keyStoreFile, keystorePassword, "alias", diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml index bbd7ee7776..399f6981d5 100644 --- a/android/app/src/profile/AndroidManifest.xml +++ b/android/app/src/profile/AndroidManifest.xml @@ -1,3 +1,7 @@ + diff --git a/android/build.gradle b/android/build.gradle deleted file mode 100644 index 8fd19bd447..0000000000 --- a/android/build.gradle +++ /dev/null @@ -1,48 +0,0 @@ -allprojects { - repositories { - google() - mavenCentral() - maven { - // A repository must be speficied for some reason. "registry" is a dummy. - url = uri("https://maven.pkg.github.com/revanced/registry") - credentials { - username = project.findProperty("gpr.user") as String ?: System.getenv("GITHUB_ACTOR") - password = project.findProperty("gpr.key") as String ?: System.getenv("GITHUB_TOKEN") - } - } - mavenLocal() - } -} - -rootProject.buildDir = '../build' -// TODO: Bump SDK -// Reference: https://github.com/flutter/flutter/issues/153281#issuecomment-2292201697 -subprojects { - afterEvaluate { project -> - if (project.extensions.findByName("android") != null) { - Integer pluginCompileSdk = project.android.compileSdk - if (pluginCompileSdk != null && pluginCompileSdk < 31) { - project.logger.error( - "Warning: Overriding compileSdk version in Flutter plugin: " - + project.name - + " from " - + pluginCompileSdk - + " to 31 (to work around https://issuetracker.google.com/issues/199180389)." - + "\nIf there is not a new version of " + project.name + ", consider filing an issue against " - + project.name - + " to increase their compileSdk to the latest (otherwise try updating to the latest version)." - ) - project.android { - compileSdk 31 - } - } - } - } - - project.buildDir = "${rootProject.buildDir}/${project.name}" - project.evaluationDependsOn(":app") -} - -tasks.register("clean", Delete) { - delete rootProject.buildDir -} diff --git a/android/build.gradle.kts b/android/build.gradle.kts new file mode 100644 index 0000000000..d0a3415f4d --- /dev/null +++ b/android/build.gradle.kts @@ -0,0 +1,40 @@ +import com.android.build.api.dsl.CommonExtension +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +allprojects { + repositories { + google() + mavenCentral() + maven { + name = "GitHubPackages" + url = uri("https://maven.pkg.github.com/revanced/registry") + credentials { + username = providers.gradleProperty("gpr.user").orNull ?: System.getenv("GITHUB_ACTOR") + password = providers.gradleProperty("gpr.key").orNull ?: System.getenv("GITHUB_TOKEN") + } + } + } +} + +layout.buildDirectory = File("../build") + +project(":screenshot_callback") { + tasks.withType().configureEach { + kotlinOptions { + jvmTarget = "17" + } + } +} + +subprojects { + afterEvaluate { + extensions.findByName("android")?.let { + it as CommonExtension<*, *, *, *, *, *> + if (it.compileSdk != null && it.compileSdk!! < 31) + it.compileSdk = 34 + } + } + + layout.buildDirectory = rootProject.layout.buildDirectory.file(name).get().asFile + evaluationDependsOn(":app") +} diff --git a/android/gradle.properties b/android/gradle.properties index 54b99dcc91..7676bdfcbc 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -1,8 +1,7 @@ -org.gradle.jvmargs=-Xmx4096m -XX:+UseParallelGC +org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError +android.useAndroidX=true org.gradle.parallel=true org.gradle.daemon=true org.gradle.caching=true -android.useAndroidX=true -android.defaults.buildfeatures.buildconfig=true android.nonTransitiveRClass=false android.nonFinalResIds=false diff --git a/android/gradle/libs.versions.toml b/android/gradle/libs.versions.toml new file mode 100644 index 0000000000..352a5400be --- /dev/null +++ b/android/gradle/libs.versions.toml @@ -0,0 +1,9 @@ +[versions] +revanced-patcher = "21.0.0" +revanced-library = "3.0.2" +desugar_jdk_libs = "2.1.3" + +[libraries] +revanced-patcher = { module = "app.revanced:revanced-patcher", version.ref = "revanced-patcher" } +revanced-library = { module = "app.revanced:revanced-library", version.ref = "revanced-library" } +desugar_jdk_libs = { module = "com.android.tools:desugar_jdk_libs", version.ref = "desugar_jdk_libs" } diff --git a/android/settings.gradle b/android/settings.gradle deleted file mode 100644 index 98c1d70a3e..0000000000 --- a/android/settings.gradle +++ /dev/null @@ -1,25 +0,0 @@ -pluginManagement { - def flutterSdkPath = { - def properties = new Properties() - file("local.properties").withInputStream { properties.load(it) } - def flutterSdkPath = properties.getProperty("flutter.sdk") - assert flutterSdkPath != null, "flutter.sdk not set in local.properties" - return flutterSdkPath - } - settings.ext.flutterSdkPath = flutterSdkPath() - - includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") - - repositories { - google() - mavenCentral() - } -} - -plugins { - id "dev.flutter.flutter-plugin-loader" version "1.0.0" - id "com.android.application" version "8.5.1" apply false - id "org.jetbrains.kotlin.android" version "2.0.0" apply false -} - -include ":app" diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts new file mode 100644 index 0000000000..3a247b837c --- /dev/null +++ b/android/settings.gradle.kts @@ -0,0 +1,24 @@ +pluginManagement { + val properties = java.util.Properties().apply { + load(file("local.properties").inputStream()) + } + + val flutterSdkPath = properties.getProperty("flutter.sdk") + assert(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.7.2" apply false + id("org.jetbrains.kotlin.android") version "2.0.20" apply false +} + +include(":app") diff --git a/assets/i18n/strings.i18n.json b/assets/i18n/strings.i18n.json index 3646947840..e491e3e899 100755 --- a/assets/i18n/strings.i18n.json +++ b/assets/i18n/strings.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Patcher", "patchButton": "Patch", "incompatibleArchWarningDialogText": "Patching on this architecture is not yet supported and might fail. Continue anyways?", - "removedPatchesWarningDialogText": "The following patches have been removed since the last time you used them.\n\n${patches}\n\nContinue anyways?", + "removedPatchesWarningDialogText": "Removed patches since the last time you patched this app:\n\n${patches}\n\n${newPatches}Continue anyways?", + "addedPatchesDialogText": "Added patches since the last time you patched this app:\n\n${addedPatches}\n\n", "requiredOptionDialogText": "Some patch options have to be set." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Language", "languageUpdated": "Language updated", "sourcesLabel": "Alternative sources", - "sourcesLabelHint": "Configure the alternative sources for ReVanced Patches and ReVanced Integrations", - "sourcesIntegrationsLabel": "Integrations source", + "sourcesLabelHint": "Configure the alternative sources for ReVanced Patches", "useAlternativeSources": "Use alternative sources", - "useAlternativeSourcesHint": "Use alternative sources for ReVanced Patches and ReVanced Integrations instead of the API", + "useAlternativeSourcesHint": "Use alternative sources for ReVanced Patches instead of the API", "sourcesResetDialogTitle": "Reset", "sourcesResetDialogText": "Are you sure you want to reset your sources to their default values?", "apiURLResetDialogText": "Are you sure you want to reset your API URL to its default value?", - "sourcesUpdateNote": "Note: This will automatically download ReVanced Patches and ReVanced Integrations from the alternative sources.\n\nThis will connect you to the alternative source.", + "sourcesUpdateNote": "Note: This will automatically download ReVanced Patches from the alternative sources.\n\nThis will connect you to the alternative source.", "apiURLLabel": "API URL", "apiURLHint": "Configure the API URL of ReVanced Manager", "selectApiURL": "API URL", "orgPatchesLabel": "Patches organization", "sourcesPatchesLabel": "Patches source", - "orgIntegrationsLabel": "Integrations organization", "contributorsLabel": "Contributors", "contributorsHint": "A list of contributors of ReVanced", "logsLabel": "Share logs", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Delete temporary files", "deleteTempDirHint": "Delete unused temporary files", "deletedTempDir": "Temporary files deleted", + "exportSettingsLabel": "Export settings", + "exportSettingsHint": "Export settings to a JSON file", + "exportedSettings": "Settings exported", + "importSettingsLabel": "Import settings", + "importSettingsHint": "Import settings from a JSON file", + "importedSettings": "Settings imported", "exportPatchesLabel": "Export patch selection", "exportPatchesHint": "Export patch selection to a JSON file", "exportedPatches": "Patch selection exported", @@ -290,4 +295,4 @@ "install_failed_version_downgrade_description": "The installation failed due to the patched app being a lower version than the installed app.\n\nUninstall the app and try again?", "status_unknown_description": "The installation failed due to an unknown reason. Please try again." } -} \ No newline at end of file +} diff --git a/assets/i18n/strings_af_ZA.i18n.json b/assets/i18n/strings_af_ZA.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_am_ET.i18n.json b/assets/i18n/strings_am_ET.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_ar_SA.i18n.json b/assets/i18n/strings_ar_SA.i18n.json old mode 100644 new mode 100755 index fac2fcd5fc..15a444a8a6 --- a/assets/i18n/strings_ar_SA.i18n.json +++ b/assets/i18n/strings_ar_SA.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "المُعَّدِّل", "patchButton": "تعديل", "incompatibleArchWarningDialogText": "لم يتم دعم التعديلات الخاصة بهذه البنية حتى الآن وقد تفشل. هل تريد المتابعة على أي حال؟", - "removedPatchesWarningDialogText": "تم إزالة التعديلات التالية منذ آخر مرة استخدمتها فيها.\n\n${patches}\n\nتابع على أي حال؟", + "removedPatchesWarningDialogText": "تمت إزالة التعديلات منذ آخر مرة قمت فيها بتعديل هذا التطبيق:\n\n${patches}\n\n${newPatches}هل تريد المتابعة على أي حال؟", + "addedPatchesDialogText": "تمت إضافة التعديلات منذ آخر مرة قمت فيها بتعديل هذا التطبيق:\n\n${addedPatches}\n\n", "requiredOptionDialogText": "يجب ضبط بعض خيارات التعديل." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "اللغة", "languageUpdated": "تم تحديث اللغة", "sourcesLabel": "مصادر بديلة", - "sourcesLabelHint": "قم بتكوين المصادر البديلة لتعديلات ReVanced وتكاملات ReVanced", - "sourcesIntegrationsLabel": "مصدر الـدمج", + "sourcesLabelHint": "تكوين المصادر البديلة لتعديلات ReVanced", "useAlternativeSources": "استخدام مصادر بديلة", - "useAlternativeSourcesHint": "استخدم مصادر بديلة لتعديلات ReVanced وعمليات التكامل ReVanced بدلاً من API", + "useAlternativeSourcesHint": "استخدام مصادر بديلة لتعديلات ReVanced بدلاً من واجهة برمجة التطبيقات", "sourcesResetDialogTitle": "إعادة التعيين", "sourcesResetDialogText": "هل أنت متأكد من أنك تريد إعادة تعيين المصادر الخاصة بك إلى قيمها الافتراضية؟", "apiURLResetDialogText": "هل أنت متأكد من أنك تريد إعادة تعيين رابط API الخاص بك إلى قيمته الافتراضية؟", - "sourcesUpdateNote": "ملاحظة: سيؤدي هذا إلى تنزيل تعديلات ReVanced وتكاملات ReVanced تلقائيًا من المصادر البديلة.\n\nسيؤدي هذا إلى توصيلك بالمصدر البديل.", + "sourcesUpdateNote": "ملاحظة: سيؤدي هذا إلى تنزيل تعديلات ReVanced تلقائيًا من المصادر البديلة.\n\nسيؤدي هذا إلى توصيلك بالمصدر البديل.", "apiURLLabel": "رابط API", "apiURLHint": "تكوين عنوان URL لواجهة برمجة التطبيقات الخاصة بـ ReVanced Manager", "selectApiURL": "رابط API", "orgPatchesLabel": "تنظيم التعديلات", "sourcesPatchesLabel": "مصدر التعديلات", - "orgIntegrationsLabel": "تنظيم الدمج", "contributorsLabel": "المساهمون", "contributorsHint": "قائمة المساهمين في ReVanced", "logsLabel": "مشاركة السجلات", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "حذف الملفات المؤقتة", "deleteTempDirHint": "حذف الملفات المؤقتة غير المستخدمة", "deletedTempDir": "تم حذف الملفات المؤقتة", + "exportSettingsLabel": "تصدير الإعدادات", + "exportSettingsHint": "تصدير الإعدادات إلى ملف JSON", + "exportedSettings": "تم تصدير الإعدادات", + "importSettingsLabel": "استيراد الإعدادات", + "importSettingsHint": "استيراد الإعدادات من ملف JSON", + "importedSettings": "تم استيراد الإعدادات", "exportPatchesLabel": "تصدير التعديل المحدد", "exportPatchesHint": "تصدير التعديل المحدد إلى مِلَفّ JSON", "exportedPatches": "تم تصدير التعديل المحدد", diff --git a/assets/i18n/strings_as_IN.i18n.json b/assets/i18n/strings_as_IN.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_az_AZ.i18n.json b/assets/i18n/strings_az_AZ.i18n.json old mode 100644 new mode 100755 index 8eb8025baa..851dd545ee --- a/assets/i18n/strings_az_AZ.i18n.json +++ b/assets/i18n/strings_az_AZ.i18n.json @@ -25,7 +25,7 @@ "updatesSubtitle": "Yeniləmələr", "lastPatchedAppSubtitle": "Son yamaqlanmış tətbiq", "patchedSubtitle": "Quraşdırılmış tətbiqlər", - "changeLaterSubtitle": "Bunu daha sonra tənzimləmələrdə dəyişə bilərsiniz.", + "changeLaterSubtitle": "Bunu sonra tənzimləmələrdə dəyişə bilərsiniz.", "noSavedAppFound": "Heç bir tətbiq tapılmadı", "noInstallations": "Yamaqlanmış tətbiq quraşdırılmayıb", "installUpdate": "Yeniləməni quraşdırmağa davam edilsin?", @@ -55,7 +55,8 @@ "widgetTitle": "Yamaqlayıcı", "patchButton": "Yamaqla", "incompatibleArchWarningDialogText": "Bu quruluşda yamaqlama hələ dəstəklənmir və uğursuz ola bilər. Yenə də davam edilsin?", - "removedPatchesWarningDialogText": "Aşağıdakı yamaqlar son istifadənizdən bəri silindi.\n\n${patches}\n\nYenə də davam edilsin?", + "removedPatchesWarningDialogText": "Bu tətbiqi son yamaqladığınız müddətdən bəri silinmiş yamaqlar:\n\n${patches}\n\n${newPatches}Yenə də davam edilsin?", + "addedPatchesDialogText": "Bu tətbiqi son yamaqladığınız müddətdən bəri əlavə edilən yamaqlar:\n\n${addedPatches}", "requiredOptionDialogText": "Bəzi yamaq seçimləri təyin edilməlidir." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Dil", "languageUpdated": "Dil yeniləndi", "sourcesLabel": "Seçmə mənbələr", - "sourcesLabelHint": "ReVanced Yamaqları və ReVanced İnteqrasiyaları üçün seçmə mənbələri konfiqurasiya edin", - "sourcesIntegrationsLabel": "İnteqrasiya mənbəyi", + "sourcesLabelHint": "ReVanced Patches üçün alternativ mənbələri konfiqurasiya et", "useAlternativeSources": "Seçmə mənbələri istifadə et", - "useAlternativeSourcesHint": "ReVanced Yamaqları və ReVanced İnteqrasiyaları üçün API əvəzinə seçmə mənbələri istifadə et", + "useAlternativeSourcesHint": "API əvəzinə ReVanced Patches üçün alternativ mənbələr istifadə et", "sourcesResetDialogTitle": "Sıfırla", "sourcesResetDialogText": "Mənbələrinizi ilkin dəyərlərinə sıfırlamaq istədiyinizə əminsiniz?", "apiURLResetDialogText": "API URL-nizi ilkin dəyərinə sıfırlamaq istədiyinizə əminsiz?", - "sourcesUpdateNote": "Qeyd: Bu, ReVanced Yamaqları və ReVanced İnteqrasiyalarını seçmə mənbələrdən avtomatik olaraq yükləyəcək.\n\nBu, sizi seçmə mənbəyə yönləndirəcək.", + "sourcesUpdateNote": "Qeyd: Bu, ReVanced Yamaqlarını birbaşa seçmə mənbələrdən yükləyəcək.\n\nBu sizi alternativ mənbəyə bağlayacaq.", "apiURLLabel": "API URL", "apiURLHint": "\"ReVacned Manager\"in API URL-sini konfiqurasiya et", "selectApiURL": "API URL", "orgPatchesLabel": "Yamaq qurumu", "sourcesPatchesLabel": "Yamaqların mənbəyi", - "orgIntegrationsLabel": "İnteqrasiya qurumu", "contributorsLabel": "Töhfə verənlər", "contributorsHint": "ReVanced-ə töhfə verənlərin siyahısı", "logsLabel": "Jurnalları paylaş", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Müvəqqəti faylları sil", "deleteTempDirHint": "İstifadəsiz, müvəqqəti faylları sil", "deletedTempDir": "Müvəqqəti fayllar silindi", + "exportSettingsLabel": "Tənzimləmələri köçür", + "exportSettingsHint": "Tənzimləmələri JSON faylına köçür", + "exportedSettings": "Tənzimləmələr ixrac edildi", + "importSettingsLabel": "Tənzimləmələri idxal et", + "importSettingsHint": "Tənzimləmələri JSON faylından idxal et", + "importedSettings": "Tənzimləmələr idxal edildi", "exportPatchesLabel": "Yamaq seçimini ixrac et", "exportPatchesHint": "Yamaq seçimini JSON faylına köçür", "exportedPatches": "Yamaq seçimi ixrac edildi", @@ -285,7 +290,7 @@ "status_failure_invalid_description": "Yamaqlanmış tətbiq etibarsız olduğu üçün quraşdırma uğursuz oldu.\n\nTətbiqi silib yenidən sınayırsınız?", "status_failure_incompatible_description": "Tətbiq bu cihazla uyğun deyil.\n\nBu cihaz tərəfindən dəstəklənən APK istifadə et və təkrar cəhd et.", "status_failure_conflict_description": "Quraşdırma, tətbiqin mövcud quraşdırmasına görə əngəlləndi.\n\nQuraşdırılmış tətbiqi silib yenidən sınayırsınız?", - "status_failure_blocked_description": "Quraşdırma, ${packageName} tərəfindən əngəlləndi.\n\nTəhlükəsizlik seçimlərinizi tənzimləyib yenidən sınayın.", + "status_failure_blocked_description": "${packageName} quraşdırmanı əngəllədi.\n\nTəhlükəsizlik seçimlərinizi tənzimləyib yenidən sınayın.", "install_failed_verification_failure_description": "Təsdiqləmə probleminə görə quraşdırma uğursuz oldu.\n\nTəhlükəsizlik seçimlərinizi tənzimləyib təkrar sınayın.", "install_failed_version_downgrade_description": "Yamaqlanmış tətbiq, quraşdırılmış tətbiqdən daha aşağı versiyaya sahib olduğu üçün quraşdırma uğursuz oldu.\n\nTətbiqi silib yenidən sınayırsınız?", "status_unknown_description": "Naməlum səbəbə görə quraşdırma uğursuz oldu. Lütfən yenidən sınayın." diff --git a/assets/i18n/strings_be_BY.i18n.json b/assets/i18n/strings_be_BY.i18n.json old mode 100644 new mode 100755 index 11940fa1ff..7b6bcf1fd0 --- a/assets/i18n/strings_be_BY.i18n.json +++ b/assets/i18n/strings_be_BY.i18n.json @@ -55,7 +55,6 @@ "widgetTitle": "Праграма выпраўлення", "patchButton": "Выправіць", "incompatibleArchWarningDialogText": "Выпраўленні на гэтай архітэктуры пакуль не падтрымліваюцца і могуць не працаваць. Працягнуць?", - "removedPatchesWarningDialogText": "Наступныя выпраўленні былі выдалены з моманту іх апошняга выкарыстання.\n\n${patches}\n\nУсё роўна працягнуць?", "requiredOptionDialogText": "Неабходна задаць некаторыя параметры выпраўленняў." }, "appSelectorCard": { @@ -157,20 +156,15 @@ "languageLabel": "Мова", "languageUpdated": "Мова абноўлена", "sourcesLabel": "Альтэрнатыўныя крыніцы", - "sourcesLabelHint": "Сканфігурыраваць альтэрнатыўныя крыніцы для ReVanced Patches і ReVanced Integrations", - "sourcesIntegrationsLabel": "Крыніца інтэграцый", "useAlternativeSources": "Выкарыстоўваць альтэрнатыўныя крыніцы", - "useAlternativeSourcesHint": "Выкарыстоўваць альтэрнатыўныя крыніцы для ReVanced Patches і ReVanced Integrations замест API", "sourcesResetDialogTitle": "Скінуць", "sourcesResetDialogText": "Вы сапраўды хочаце скінуць свае крыніцы да іх прадвызначаных значэнняў?", "apiURLResetDialogText": "Вы сапраўды хочаце скінуць свае API URL да іх прадвызначаных значэнняў?", - "sourcesUpdateNote": "Нататка: Гэта аўтаматычна спампуе ReVanced Patches і ReVanced Integrations з альтэрнатыўных крыніц.\n\nГэта падключыць вас да альтэрнатыўнай крыніцы.", "apiURLLabel": "API URL", "apiURLHint": "Сканфігурыруйце URL API для ReVanced Manager", "selectApiURL": "URL-адрас API", "orgPatchesLabel": "Арганізацыя выпраўленняў", "sourcesPatchesLabel": "Крыніца выпраўленняў", - "orgIntegrationsLabel": "Арганізацыя інтэграцый", "contributorsLabel": "Удзельнікі", "contributorsHint": "Спіс усіх удзельнікаў праекта ReVanced", "logsLabel": "Абагуліць журнал", diff --git a/assets/i18n/strings_bg_BG.i18n.json b/assets/i18n/strings_bg_BG.i18n.json old mode 100644 new mode 100755 index d24c186e4a..e69970f630 --- a/assets/i18n/strings_bg_BG.i18n.json +++ b/assets/i18n/strings_bg_BG.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Модификатор", "patchButton": "Модифицирайте", "incompatibleArchWarningDialogText": "Процесът на модифициране в момента не се поддържа на устройства с тази архитектура и може да се провали. Ще продължите ли?", - "removedPatchesWarningDialogText": "Следните модификации са били премахнати след като са били употребени за последно от вас.\n\n${patches}\n\nПродължете въпреки това?", + "removedPatchesWarningDialogText": "Премахнати пачове след последната корекция на приложението:\n\n${patches}\n\n${newPatches}Да продължа ли все пак?", + "addedPatchesDialogText": "След последната промяна на това приложение бяха добавени следните модификации:\n\n${addedPatches}", "requiredOptionDialogText": "Опциите на някои модификации трябва да бъдат зададени." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Език", "languageUpdated": "Езикът е обновен", "sourcesLabel": "Алтернативни източници", - "sourcesLabelHint": "Конфигурирайте алтернативните източници за ReVanced Patches и ReVanced Integrations", - "sourcesIntegrationsLabel": "Източник на интеграциите", + "sourcesLabelHint": "Конфигурирайте алтернативните източници за ReVanced Patches", "useAlternativeSources": "Използвайте алтернативни източници", - "useAlternativeSourcesHint": "Използвайте алтернативни източници за ReVanced Patches и ReVanced Integrations вместо тези от ППИ-я (API)", + "useAlternativeSourcesHint": "Използвайте алтернативни източници за ReVanced Patches вместо API", "sourcesResetDialogTitle": "Нулиране", "sourcesResetDialogText": "Искате ли да възстановите източниците до стойностите им по подразбиране?", "apiURLResetDialogText": "Сигурни ли сте, че искате да възстановите адреса на ППИ (API) до стойността му по подразбиране?", - "sourcesUpdateNote": "Забележка: Това автоматично ще изтегли ReVanced Patches и ReVanced Integrations от алтернативните източници.\n\nТова ще ви свърже с алтернативния източник.", + "sourcesUpdateNote": "Забележка: Това автоматично ще изтегли ReVanced Patches от алтернативните източници.\n\nТова ще ви свърже с алтернативния източник.", "apiURLLabel": "API линк", "apiURLHint": "Конфигуриране на URL адреса на ППИ (API) на ReVanced Manager", "selectApiURL": "API линк", "orgPatchesLabel": "Организация на модификациите", "sourcesPatchesLabel": "Източник на модификациите", - "orgIntegrationsLabel": "Организация на интеграциите", "contributorsLabel": "Хора, които допринесоха", "contributorsHint": "Списък с хората, допринесли за ReVanced", "logsLabel": "Сподели дневника", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Изтриване на временни файлове", "deleteTempDirHint": "Изтриване на неизползвани временни файлове", "deletedTempDir": "Временните файлове са изтрити", + "exportSettingsLabel": "Експорт на настройките", + "exportSettingsHint": "Експорт на настройки в JSON файл", + "exportedSettings": "Настройките са съхранени", + "importSettingsLabel": "Внасяне на настройки", + "importSettingsHint": "Внасяне на настройки в JSON файл", + "importedSettings": "Настройките са импортирани", "exportPatchesLabel": "Експортиране на избраните актуализации", "exportPatchesHint": "Експортиране на избраните модификации в JSON файл", "exportedPatches": "Избраните модификации са експортирани", diff --git a/assets/i18n/strings_bn_BD.i18n.json b/assets/i18n/strings_bn_BD.i18n.json old mode 100644 new mode 100755 index f3f7ccc6db..488d3d9a82 --- a/assets/i18n/strings_bn_BD.i18n.json +++ b/assets/i18n/strings_bn_BD.i18n.json @@ -23,7 +23,10 @@ "refreshSuccess": "সফলভাবে রিফ্রেশ করা হয়েছে", "widgetTitle": "ড্যাশবোর্ড", "updatesSubtitle": "আপডেটসমূহ", + "lastPatchedAppSubtitle": "সর্বশেষ প্যাচকৃত অ্যাপ", + "patchedSubtitle": "ইনস্টল করা অ্যাপ", "changeLaterSubtitle": "পরবর্তীতে আপনি এটি সেটিং থেকে পরিবর্তন করতে পারবেন।", + "noSavedAppFound": "কোনো অ্যাপ পাওয়া যায় নি", "noInstallations": "কোন প্যাচড অ্যাপ্লিকেশন ইনস্টল করা হয়নি", "installUpdate": "আপডেট ইনস্টল করতে এগিয়ে যেতে চান?", "updateSheetTitle": "ReVanced Manager আপডেট করুন", @@ -51,7 +54,7 @@ "patcherView": { "widgetTitle": "প্যাচার", "patchButton": "প্যাচ", - "removedPatchesWarningDialogText": "আপনি এর আগে যখন ব্যবহার করেছিলেন তারপর এই প্যাচগুলো অপসারণ করা হয়।\n\n${patches}\n\nযেকোন ভাবে এগিয়ে যেতে চান?", + "incompatibleArchWarningDialogText": "এই আর্কিটেকচারে প্যাচিং এখনো সমর্থিত নয় এবং সফল নাও হতে পারে। যেকোন ভাবে এগিয়ে যেতে চান?", "requiredOptionDialogText": "কিছু প্যাচ অপশন সেট করতে হবে।" }, "appSelectorCard": { @@ -100,11 +103,15 @@ }, "patchOptionsView": { "customValue": "কাস্টম ভ্যালু", + "setToNull": "null সেট করুন", + "nullValue": "এই অপশন ভ্যালু বর্তমানে null", "viewTitle": "প্যাচ অপশন", "saveOptions": "সংরক্ষণ করুন", + "unselectPatch": "প্যাচ অনির্বাচন করুন", "tooltip": "আরও ইনপুট অপশন", "selectFilePath": "ফাইলের স্থান নির্বাচন করুন", "selectFolder": "ফোল্ডার নির্বাচন করুন", + "requiredOption": "এই অপশনটি সেট করা আবশ্যক", "unsupportedOption": "এই অপশনসটি অসমর্থিত", "requiredOptionNull": "এই অপশনগুলো সেট করতে হবে:\n\n${options}" }, @@ -149,20 +156,15 @@ "languageLabel": "ভাষা", "languageUpdated": "ভাষা হালনাগাদ করা হয়েছে", "sourcesLabel": "বিকল্প উৎস", - "sourcesLabelHint": "ReVanced প্যাচ ও ReVanced ইন্ট্রিগ্রেশনের জন্য বিকল্প উৎস কনফিগার করুন", - "sourcesIntegrationsLabel": "ইন্ট্রিগেশনের উৎস", "useAlternativeSources": "বিকল্প উৎস ব্যবহার করুন", - "useAlternativeSourcesHint": "ReVanced প্যাচ ও ReVanced ইন্ট্রিগ্রেশনের জন্য API এর পরিবর্তে বিকল্প উৎস ব্যবহার করুন", "sourcesResetDialogTitle": "পুনরায় সেট করুন", "sourcesResetDialogText": "আপনি কি নিশ্চিতভাবে আপনার উৎসগুলোকে পূর্বনির্ধারিত উৎসে ফিরিয়ে নিতে চান?", "apiURLResetDialogText": "আপনি কি নিশ্চিতভাবে আপনার API URL কে তার মূল ভ্যালুতে পুনরায় সেট করতে চান?", - "sourcesUpdateNote": "বি:দ্র: এটি স্বয়ংক্রিয়ভাবে বিকল্প উৎস থেকে ReVanced প্যাচ ও ReVanced ইন্ট্রিগ্রেশন ডাউনলোড করবে।\n\nএটি আপনাকে বিকল্প উৎসের সাথে সংযুক্ত করবে।", "apiURLLabel": "API URL", "apiURLHint": "ReVanced Manager এর API URL কনফিগার করুন", "selectApiURL": "API URL", "orgPatchesLabel": "প্যাচ এর উদ্ভাবক", "sourcesPatchesLabel": "প্যাচ এর উৎস", - "orgIntegrationsLabel": "ইন্ট্রিগেশনের উদ্ভাবক", "contributorsLabel": "অবদানকারীগণ", "contributorsHint": "ReVanced-এ অবদানকারীদের তালিকা", "logsLabel": "লগ শেয়ার করুন", @@ -177,6 +179,7 @@ "showUpdateDialogHint": "যখন হালনাগাদ উপলব্ধ থাকবে তখন একটি ডায়ালগ দেখান", "universalPatchesLabel": "বৈশ্বিক প্যাচসমূহ দেখান", "universalPatchesHint": "সকল অ্যাপ এবং বৈশ্বিক প্যাচসমূহ দেখায় (অ্যাপ লিস্ট দেখানো একটু ধীর হতে পারে)", + "lastPatchedAppLabel": "প্যাচকৃত অ্যাপ সংরক্ষণ করুন", "versionCompatibilityCheckLabel": "সংস্করণ সামঞ্জস্যতা পরীক্ষা করা", "versionCompatibilityCheckHint": "নির্বাচিত অ্যাপ সংস্করণের সাথে সামঞ্জস্যপূর্ণ নয় এমন প্যাচ নির্বাচন করা আটকায়", "requireSuggestedAppVersionLabel": "প্রস্তাবিত অ্যাপ সংস্করণ প্রয়োজন", diff --git a/assets/i18n/strings_bs_BA.i18n.json b/assets/i18n/strings_bs_BA.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_ca_ES.i18n.json b/assets/i18n/strings_ca_ES.i18n.json old mode 100644 new mode 100755 index 30cb56e221..e2ac08e31c --- a/assets/i18n/strings_ca_ES.i18n.json +++ b/assets/i18n/strings_ca_ES.i18n.json @@ -78,13 +78,11 @@ "exportSectionTitle": "Importar i exportar", "dynamicThemeHint": "Gaudeixi d'una experiència més acord al seu dispositiu", "languageLabel": "Llengua", - "sourcesIntegrationsLabel": "Font de les integracions", "sourcesResetDialogTitle": "Restablir", "apiURLLabel": "Direcció URL de la API", "selectApiURL": "URL de l'API", "orgPatchesLabel": "Organització dels pedaços", "sourcesPatchesLabel": "Font dels pedaços", - "orgIntegrationsLabel": "Organització de les integracions", "contributorsLabel": "Col·laboradors", "contributorsHint": "Una llista de col·laboradors de ReVanced", "aboutLabel": "Quant a", diff --git a/assets/i18n/strings_cs_CZ.i18n.json b/assets/i18n/strings_cs_CZ.i18n.json old mode 100644 new mode 100755 index db489b1a7d..6291afcc9e --- a/assets/i18n/strings_cs_CZ.i18n.json +++ b/assets/i18n/strings_cs_CZ.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Záplatovač", "patchButton": "Záplatovat", "incompatibleArchWarningDialogText": "Úprava této architektury není zatím podporována a může selhat. Přesto pokračovat?", - "removedPatchesWarningDialogText": "Následující záplaty byly odstraněny od doby, kdy jste je naposledy použili.\n\n${patches}\n\nPřesto pokračovat?", + "removedPatchesWarningDialogText": "Odstranili jste záplaty od poslední úpravy této aplikace:\n\n${patches}\n\n${newPatches}Pokračovat?", + "addedPatchesDialogText": "Přidány záplaty od poslední úpravy této aplikace:\n\n${addedPatches}\n\n", "requiredOptionDialogText": "Je třeba nastavit některé možnosti záplat." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Jazyk", "languageUpdated": "Jazyk aktualizován", "sourcesLabel": "Alternativní zdroje", - "sourcesLabelHint": "Konfigurace alternativních zdrojů pro vylepšené úpravy a zdokonalené integrace", - "sourcesIntegrationsLabel": "Zdroj integrace", + "sourcesLabelHint": "Konfigurace alternativních zdrojů pro vylepšené úpravy", "useAlternativeSources": "Použít alternativní zdroje", - "useAlternativeSourcesHint": "Použít alternativní zdroje pro vylepšené úpravy a vylepšené integrace namísto API", + "useAlternativeSourcesHint": "Použít alternativní zdroje pro vylepšené úpravy namísto API", "sourcesResetDialogTitle": "Obnovit", "sourcesResetDialogText": "Jste si jisti, že chcete obnovit zdroje na jejich výchozí hodnoty?", "apiURLResetDialogText": "Jste si jisti, že chcete resetovat URL API na výchozí hodnotu?", - "sourcesUpdateNote": "Poznámka: Toto automaticky stáhne reVanced Patches and ReVanced Integrations z alternativních zdrojů.\n\nToto vás připojí k alternativnímu zdroji.", + "sourcesUpdateNote": "Poznámka: Toto automaticky stáhne reVanced Patches z alternativních zdrojů.\n\nToto vás připojí k alternativnímu zdroji.", "apiURLLabel": "API URL", "apiURLHint": "Konfigurace URL API ReVanced Manager", "selectApiURL": "API URL", "orgPatchesLabel": "Organizace patchů", "sourcesPatchesLabel": "Zdroj patchů", - "orgIntegrationsLabel": "Autor integrace", "contributorsLabel": "Přispěvatelé", "contributorsHint": "Seznam přispěvatelů ReVanced", "logsLabel": "Sdílet záznamy", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Odstranit dočasné soubory", "deleteTempDirHint": "Odstranit nepoužívané dočasné soubory", "deletedTempDir": "Dočasné soubory byly smazány", + "exportSettingsLabel": "Exportovat nastavení", + "exportSettingsHint": "Exportovat nastavení do souboru JSON", + "exportedSettings": "Nastavení exportováno", + "importSettingsLabel": "Importovat nastavení", + "importSettingsHint": "Importovat nastavení ze souboru JSON", + "importedSettings": "Nastavení importováno", "exportPatchesLabel": "Exportovat záplatu", "exportPatchesHint": "Exportovat výběr patch do souboru JSON", "exportedPatches": "Výběr patch exportován", diff --git a/assets/i18n/strings_da_DK.i18n.json b/assets/i18n/strings_da_DK.i18n.json old mode 100644 new mode 100755 index 33f483f140..c6f2afc005 --- a/assets/i18n/strings_da_DK.i18n.json +++ b/assets/i18n/strings_da_DK.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Patcher", "patchButton": "Patch", "incompatibleArchWarningDialogText": "Patching på denne arkitektur understøttes endnu ikke og kan mislykkes. Fortsæt alligevel?", - "removedPatchesWarningDialogText": "Følgende patches er blevet fjernet siden sidste gang du brugte dem.\n\n${patches}\n\nFortsæt alligevel?", + "removedPatchesWarningDialogText": "Fjernede rettelser siden sidste gang du lappede denne app:\n\n${patches}\n\n${newPatches}Fortsæt alligevel?", + "addedPatchesDialogText": "Tilføjet rettelser siden sidste gang du lappede denne app:\n\n${addedPatches}\n\n", "requiredOptionDialogText": "Nogle patch muligheder skal indstilles." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Sprog", "languageUpdated": "Sprog opdateret", "sourcesLabel": "Alternative kilder", - "sourcesLabelHint": "Konfigurer de alternative kilder til ReVanced Patches og ReVanced Integrations", - "sourcesIntegrationsLabel": "Kilde til Integrationer", + "sourcesLabelHint": "Indstil alternative kilder for ReVanced Patches", "useAlternativeSources": "Brug alternative kilder", - "useAlternativeSourcesHint": "Brug alternative kilder til ReVanced Patches og ReVanced Integrations i stedet for API'en", + "useAlternativeSourcesHint": "Brug alternative kilder til ReVanced Patches i stedet for API", "sourcesResetDialogTitle": "Nulstil", "sourcesResetDialogText": "Er du sikker på, at du vil nulstille dine kilder til deres standardværdier?", "apiURLResetDialogText": "Er du sikker på, at du vil nulstille API URL til dens standardværdi?", - "sourcesUpdateNote": "Bemærk: Dette vil automatisk downloade ReVanced Patches og ReVanced Integrations fra de alternative kilder.\n\nDette vil forbinde dig til den alternative kilde.", + "sourcesUpdateNote": "Bemærk: Dette vil automatisk hente ReVanced Patches fra de alternative kilder.\n\nDette vil forbinde dig til den alternative kilde.", "apiURLLabel": "API URL", "apiURLHint": "Konfigurer API-URL'en til ReVanced Manager", "selectApiURL": "API URL", "orgPatchesLabel": "Organisation for Patches", "sourcesPatchesLabel": "Kilde til Patches", - "orgIntegrationsLabel": "Organisation for Integrationer", "contributorsLabel": "Medvirkende", "contributorsHint": "En liste over medvirkende til ReVanced", "logsLabel": "Del logs", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Slet midlertidige filer", "deleteTempDirHint": "Slet ubrugte midlertidige filer", "deletedTempDir": "Midlertidige filer slettet", + "exportSettingsLabel": "Eksporter indstillinger", + "exportSettingsHint": "Eksporter indstillinger til en JSON-fil", + "exportedSettings": "Indstillinger eksporteret", + "importSettingsLabel": "Importer indstillinger", + "importSettingsHint": "Importer indstillinger fra en JSON-fil", + "importedSettings": "Indstillinger importeret", "exportPatchesLabel": "Eksportér patch valg", "exportPatchesHint": "Eksportér patch valg til en JSON- fil", "exportedPatches": "Patch valg eksporteret", diff --git a/assets/i18n/strings_de_DE.i18n.json b/assets/i18n/strings_de_DE.i18n.json old mode 100644 new mode 100755 index 3a1df9cc0c..c9f6dab86f --- a/assets/i18n/strings_de_DE.i18n.json +++ b/assets/i18n/strings_de_DE.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Patcher", "patchButton": "Patchen", "incompatibleArchWarningDialogText": "Patches auf dieser Architektur werden noch nicht unterstützt und könnten fehlschlagen. Trotzdem fortfahren?", - "removedPatchesWarningDialogText": "Die folgenden Patches wurden seit der letzten Verwendung entfernt.\n\n${patches}\n\nTrotzdem fortfahren?", + "removedPatchesWarningDialogText": "Patches seit dem letzten Mal, dass Sie diese App gepatcht haben, entfernt:\n\n${patches}\n\n${newPatches}Trotzdem fortfahren?", + "addedPatchesDialogText": "Patches seit dem letzten Mal, dass Sie diese App gepatcht haben:\n\n${addedPatches}\n\n", "requiredOptionDialogText": "Einige Patch-Optionen müssen gesetzt werden." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Sprache", "languageUpdated": "Sprache aktualisiert", "sourcesLabel": "Alternative Quellen", - "sourcesLabelHint": "Konfiguriere die alternativen Quellen für ReVanced Patches und ReVanced Integrations", - "sourcesIntegrationsLabel": "Quelle für Integrationen", + "sourcesLabelHint": "Konfigurieren Sie die alternativen Quellen für überarbeitete Patches", "useAlternativeSources": "Benutze alternative Quellen", - "useAlternativeSourcesHint": "Verwenden alternative Quellen für ReVanced Patches und ReVanced Integrationen anstelle der API", + "useAlternativeSourcesHint": "Verwende alternative Quellen für überarbeitete Patches anstelle der API", "sourcesResetDialogTitle": "Zurücksetzen", "sourcesResetDialogText": "Bist du dir sicher, dass du die benutzerdefinierten Quellen auf ihre Standardwerte zurücksetzen möchtest?", "apiURLResetDialogText": "Bist du dir sicher, dass du die API-URL auf ihren Standardwert zurücksetzen möchtest?", - "sourcesUpdateNote": "Hinweis: Dadurch werden ReVanced Patches und ReVanced Integrationen automatisch von der alternativen Quelle heruntergeladen.\n\nDies wird dich mit der alternativen Quelle verbinden.", + "sourcesUpdateNote": "Hinweis: Dies wird automatisch ReVanced Patches von den alternativen Quellen herunterladen.\n\nDies verbindet Sie mit der alternativen Quelle.", "apiURLLabel": "API-URL", "apiURLHint": "Konfigurieren die API URL von ReVanced Manager", "selectApiURL": "API-URL", "orgPatchesLabel": "Patches Organisation", "sourcesPatchesLabel": "Patches Quelle", - "orgIntegrationsLabel": "Integrationen Organisation", "contributorsLabel": "Mitwirkende", "contributorsHint": "Eine Liste der Mitwirkenden von ReVanced", "logsLabel": "Logs teilen", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Lösche temporäre Dateien", "deleteTempDirHint": "Unbenutzte temporäre Dateien löschen", "deletedTempDir": "Temporäre Dateien wurden gelöscht", + "exportSettingsLabel": "Export-Einstellungen", + "exportSettingsHint": "Einstellungen in eine JSON-Datei exportieren", + "exportedSettings": "Einstellungen exportiert", + "importSettingsLabel": "Import-Einstellungen", + "importSettingsHint": "Einstellungen aus einer JSON-Datei importieren", + "importedSettings": "Einstellungen importiert", "exportPatchesLabel": "Patchauswahl exportieren", "exportPatchesHint": "Patch-Auswahl in eine JSON-Datei exportieren", "exportedPatches": "Patch-Auswahl exportiert", diff --git a/assets/i18n/strings_el_GR.i18n.json b/assets/i18n/strings_el_GR.i18n.json old mode 100644 new mode 100755 index 8e883daadf..b2b271e0cf --- a/assets/i18n/strings_el_GR.i18n.json +++ b/assets/i18n/strings_el_GR.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Τροποποιητής", "patchButton": "Τροποποίηση", "incompatibleArchWarningDialogText": "Η διαδικασία της τροποποίησης δεν υποστηρίζεται προς το παρόν σε συσκευές της συγκεκριμένης αρχιτεκτονικής και μπορεί να αποτύχει. Συνέχεια παρόλα αυτά;", - "removedPatchesWarningDialogText": "Οι παρακάτω τροποποιήσεις αφαιρέθηκαν από την τελευταία φορά που τις χρησιμοποιήσατε.\n\n${patches}\n\nΣυνέχεια παρόλα αυτά;", + "removedPatchesWarningDialogText": "Από την τελευταία φορά που τροποποιήσατε αυτή την εφαρμογή, έχουν αφαιρεθεί οι εξής τροποποιήσεις:\n\n${patches}\n\n${newPatches}Συνέχεια παρ' όλα αυτά;", + "addedPatchesDialogText": "Από την τελευταία φορά που τροποποιήσατε αυτή την εφαρμογή, έχουν προστεθεί οι εξής τροποποιήσεις:\n\n${addedPatches}", "requiredOptionDialogText": "Κάποιες επιλογές τροποποιήσεων πρέπει να οριστούν." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Γλώσσα", "languageUpdated": "Η γλώσσα ενημερώθηκε", "sourcesLabel": "Εναλλακτικές πηγές", - "sourcesLabelHint": "Ρυθμίστε τις εναλλακτικές πηγές για τις τροποποιήσεις ReVanced και τις ενσωματώσεις ReVanced", - "sourcesIntegrationsLabel": "Πηγή ενσωματώσεων", + "sourcesLabelHint": "Ρυθμίστε τις εναλλακτικές πηγές για τις τροποποιήσεις ReVanced", "useAlternativeSources": "Χρήση εναλλακτικών πηγών", - "useAlternativeSourcesHint": "Χρήση εναλλακτικών πηγών για τις τροποποιήσεις και τις ενσωματώσεις ReVanced αντί του API", + "useAlternativeSourcesHint": "Χρήση εναλλακτικών πηγών για τις τροποποιήσεις ReVanced αντί του API", "sourcesResetDialogTitle": "Επαναφορά", "sourcesResetDialogText": "Είστε βέβαιοι ότι θέλετε να επαναφέρετε τις πηγές σας στις προεπιλεγμένες τιμές τους;", "apiURLResetDialogText": "Είστε βέβαιοι ότι θέλετε να επαναφέρετε την API URL σας στην προεπιλεγμένη τιμή της;", - "sourcesUpdateNote": "Σημείωση: Θα γίνεται αυτόματη λήψη των τροποποιήσεων και των ενσωματώσεων ReVanced από τις εναλλακτικές πηγές.\n\nΟπότε θα συνδέεστε με τις εναλλακτικές πηγές.", + "sourcesUpdateNote": "Σημείωση: Θα γίνεται αυτόματη λήψη των τροποποιήσεων ReVanced από τις εναλλακτικές πηγές.\n\nΟπότε θα συνδέεστε με τις εναλλακτικές πηγές.", "apiURLLabel": "API URL", "apiURLHint": "Ρύθμιση διεύθυνσης URL του API του ReVanced Manager", "selectApiURL": "API URL", "orgPatchesLabel": "Οργάνωση τροποποιήσεων", "sourcesPatchesLabel": "Πηγή τροποποιήσεων", - "orgIntegrationsLabel": "Οργάνωση ενσωματώσεων", "contributorsLabel": "Συνεισφέροντες", "contributorsHint": "Λίστα με όσους έχουν συμβάλει στο ReVanced", "logsLabel": "Κοινοποίηση αρχείων καταγραφής", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Διαγραφή προσωρινών αρχείων", "deleteTempDirHint": "Διαγραφή των αχρησιμοποίητων προσωρινών αρχείων", "deletedTempDir": "Τα προσωρινά αρχεία διαγράφηκαν", + "exportSettingsLabel": "Εξαγωγή ρυθμίσεων", + "exportSettingsHint": "Εξαγωγή ρυθμίσεων σε αρχείο JSON", + "exportedSettings": "Οι ρυθμίσεις εξήχθησαν", + "importSettingsLabel": "Εισαγωγή ρυθμίσεων", + "importSettingsHint": "Εισαγωγή ρυθμίσεων από ένα αρχείο JSON", + "importedSettings": "Οι ρυθμίσεις εισήχθησαν", "exportPatchesLabel": "Εξαγωγή των επιλεγμένων τροποποιήσεων", "exportPatchesHint": "Εξαγωγή των επιλεγμένων τροποποιήσεων σε ένα αρχείο JSON", "exportedPatches": "Η εξαγωγή των επιλεγμένων τροποποιήσεων ολοκληρώθηκε", diff --git a/assets/i18n/strings_es_AR.i18n.json b/assets/i18n/strings_es_AR.i18n.json index 5cff953778..6344e05913 100755 --- a/assets/i18n/strings_es_AR.i18n.json +++ b/assets/i18n/strings_es_AR.i18n.json @@ -52,7 +52,7 @@ "patcherView": { "widgetTitle": "Parcheador", "patchButton": "Parchear", - "removedPatchesWarningDialogText": "Los siguientes parches fueron eliminados desde la última vez que los usaste.\n\n${patches}\n\n¿Continuar de todas formas?", + "removedPatchesWarningDialogText": "Los siguientes parches fueron eliminados desde la última vez que los usaste.\n\n${patches}\n\n${newPatches}¿Continuar de todas formas?", "requiredOptionDialogText": "Algunas opciones de parche tienen que ser establecidas." }, "appSelectorCard": { @@ -155,7 +155,6 @@ "languageUpdated": "Idioma actualizado", "sourcesLabel": "Fuentes alternativas", "sourcesLabelHint": "Configurá las fuentes alternativas para ReVanced Patches y ReVanced Integrations", - "sourcesIntegrationsLabel": "Fuente de las integraciones", "useAlternativeSources": "Usar fuentes alternativas", "useAlternativeSourcesHint": "Usá fuentes alternativas para ReVanced Patches y ReVanced Integrations en lugar de la API", "sourcesResetDialogTitle": "Resetear", @@ -167,7 +166,6 @@ "selectApiURL": "URL de la API", "orgPatchesLabel": "Organización de los parches", "sourcesPatchesLabel": "Fuente de los parches", - "orgIntegrationsLabel": "Organización de las integraciones", "contributorsLabel": "Contribuidores", "contributorsHint": "Una lista de los contribuidores de ReVanced", "logsLabel": "Compartir registros", diff --git a/assets/i18n/strings_es_ES.i18n.json b/assets/i18n/strings_es_ES.i18n.json old mode 100644 new mode 100755 index e444d85f2e..0ff2f5b02c --- a/assets/i18n/strings_es_ES.i18n.json +++ b/assets/i18n/strings_es_ES.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Parcheador", "patchButton": "Parchear", "incompatibleArchWarningDialogText": "El parche en esta arquitectura aún no está soportado y podría fallar. ¿Continuar de todos modos?", - "removedPatchesWarningDialogText": "Los siguientes parches han sido eliminados desde la última vez que los usaste.\n\n${patches}\n\n¿Continuar de todos modos?", + "removedPatchesWarningDialogText": "Eliminados parches desde la última vez que parcheaste esta aplicación:\n\n${patches}\n\n${newPatches}¿Continuar de todos modos?", + "addedPatchesDialogText": "Añadidos parches desde la última vez que parcheaste esta aplicación:\n\n${addedPatches}\n\n", "requiredOptionDialogText": "Deben establecerse algunas opciones de parche." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Idioma", "languageUpdated": "Idioma actualizado", "sourcesLabel": "Fuentes alternativas", - "sourcesLabelHint": "Configurar las fuentes alternativas para Parches de ReVanced e Integraciones ReVanced", - "sourcesIntegrationsLabel": "Fuente de las integraciones", + "sourcesLabelHint": "Configurar las fuentes alternativas para los parches reVanced", "useAlternativeSources": "Usar fuentes alternativas", - "useAlternativeSourcesHint": "Usar fuentes alternativas para Parches de ReVanced e Integraciones ReVanced en lugar de la API", + "useAlternativeSourcesHint": "Usar fuentes alternativas para Parches ReVanced en lugar de la API", "sourcesResetDialogTitle": "Restablecer", "sourcesResetDialogText": "¿Estás seguro de que quieres restablecer tus fuentes a sus valores predeterminados?", "apiURLResetDialogText": "¿Estás seguro de que quieres restablecer la URL de tu API a su valor predeterminado?", - "sourcesUpdateNote": "Nota: Esto automáticamente descargará Parches ReVanced e Integraciones ReVanced desde las fuentes alternativas.\n\nEsto lo conectará a la fuente alternativa.", + "sourcesUpdateNote": "Nota: Esto descargará automáticamente los Parches ReVanced desde las fuentes alternativas.\n\nEsto te conectará a la fuente alternativa.", "apiURLLabel": "URL de la API", "apiURLHint": "Configurar la URL de API del ReVanced Manager", "selectApiURL": "URL de la API", "orgPatchesLabel": "Organización de los parches", "sourcesPatchesLabel": "Fuente de los parches", - "orgIntegrationsLabel": "Organización de integraciones", "contributorsLabel": "Contribuidores", "contributorsHint": "Una lista de contribuidores de ReVanced", "logsLabel": "Compartir registros", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Borrar archivos temporales", "deleteTempDirHint": "Eliminar archivos temporales no utilizados", "deletedTempDir": "Archivos temporales eliminados", + "exportSettingsLabel": "Exportar ajustes", + "exportSettingsHint": "Exportar ajustes a un archivo JSON", + "exportedSettings": "Ajustes exportados", + "importSettingsLabel": "Importar ajustes", + "importSettingsHint": "Importar ajustes desde un archivo JSON", + "importedSettings": "Ajustes importados", "exportPatchesLabel": "Exportar la selección de parches", "exportPatchesHint": "Exportar la selección de parches a un archivo JSON", "exportedPatches": "Selección de parches exportada", diff --git a/assets/i18n/strings_es_MX.i18n.json b/assets/i18n/strings_es_MX.i18n.json index 5f3f8eb868..f66d2c8250 100755 --- a/assets/i18n/strings_es_MX.i18n.json +++ b/assets/i18n/strings_es_MX.i18n.json @@ -52,7 +52,7 @@ "patcherView": { "widgetTitle": "Parcheador", "patchButton": "Parchear", - "removedPatchesWarningDialogText": "Los siguientes parches fueron removidos desde la última vez que los usaste.\n\n${patches}\n\n¿Quieres continuar de todas formas?", + "removedPatchesWarningDialogText": "Los siguientes parches fueron removidos desde la última vez que los usaste.\n\n${patches}\n\n${newPatches}¿Quieres continuar de todas formas?", "requiredOptionDialogText": "Algunas opciones de parche tienen que ser establecidas." }, "appSelectorCard": { @@ -155,7 +155,6 @@ "languageUpdated": "Idioma actualizado", "sourcesLabel": "Fuentes alternativas", "sourcesLabelHint": "Configura las fuentes alternativas para ReVanced Patches y ReVanced Integrations", - "sourcesIntegrationsLabel": "Fuente de integraciones", "useAlternativeSources": "Usar fuentes alternativas", "useAlternativeSourcesHint": "Usa fuentes alternativas para ReVanced Patches y ReVanced Integrations en lugar de la API", "sourcesResetDialogTitle": "Reiniciar", @@ -167,7 +166,6 @@ "selectApiURL": "URL de la API", "orgPatchesLabel": "Organización de parches", "sourcesPatchesLabel": "Fuente de los parches", - "orgIntegrationsLabel": "Organización de integraciones", "contributorsLabel": "Contribuidores", "contributorsHint": "Lista de contribuidores de ReVanced", "logsLabel": "Compartir registros", diff --git a/assets/i18n/strings_et_EE.i18n.json b/assets/i18n/strings_et_EE.i18n.json old mode 100644 new mode 100755 index 12e4daccd3..eb9906e3c1 --- a/assets/i18n/strings_et_EE.i18n.json +++ b/assets/i18n/strings_et_EE.i18n.json @@ -51,7 +51,6 @@ "patcherView": { "widgetTitle": "Parandaja", "patchButton": "Parandus", - "removedPatchesWarningDialogText": "Väljatoodud parandused on vahepeal eemaldatud.\n\n${patches}\n\nJätka ikkagi? ", "requiredOptionDialogText": "Mõned paranduste sätted on vaja valida. " }, "appSelectorCard": { @@ -114,13 +113,11 @@ "exportSectionTitle": "Import & eksport", "dynamicThemeHint": "Nautige kogemust oma seadmele lähemal", "languageLabel": "Keel", - "sourcesIntegrationsLabel": "Integratsioonide allikas", "sourcesResetDialogTitle": "Lähtesta", "apiURLLabel": "API URL", "selectApiURL": "API URL", "orgPatchesLabel": "Plaastrite organisatsioon", "sourcesPatchesLabel": "Plaastrite allikas", - "orgIntegrationsLabel": "Integratsiooni organisatsioon", "contributorsLabel": "Panustajad", "contributorsHint": "Revancedi kaasautorite nimekiri", "aboutLabel": "Teave", diff --git a/assets/i18n/strings_eu_ES.i18n.json b/assets/i18n/strings_eu_ES.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_fa_IR.i18n.json b/assets/i18n/strings_fa_IR.i18n.json old mode 100644 new mode 100755 index 7d4f388103..cde8ade9e8 --- a/assets/i18n/strings_fa_IR.i18n.json +++ b/assets/i18n/strings_fa_IR.i18n.json @@ -98,13 +98,11 @@ "dynamicThemeLabel": "Material You", "dynamicThemeHint": "یک تجربه نزدیکتر به دستگاهتان را داشته باشید", "languageLabel": "زبان", - "sourcesIntegrationsLabel": "منبع یکپارچه سازی", "sourcesResetDialogTitle": "تنظیم مجدد", "apiURLLabel": "آدرس API", "selectApiURL": "آدرس API", "orgPatchesLabel": "سازمان پچ‌ها(وصله ها)", "sourcesPatchesLabel": "منبع پچ ها", - "orgIntegrationsLabel": "سازمان یکپارچه سازی", "contributorsLabel": "مشارکت کنندگان", "contributorsHint": "لیست مشارکت‌کنندگان ریونسد", "aboutLabel": "درباره ما", diff --git a/assets/i18n/strings_fi_FI.i18n.json b/assets/i18n/strings_fi_FI.i18n.json old mode 100644 new mode 100755 index c480b16fb4..7ff2af5440 --- a/assets/i18n/strings_fi_FI.i18n.json +++ b/assets/i18n/strings_fi_FI.i18n.json @@ -1,7 +1,7 @@ { "okButton": "OK", "cancelButton": "Peruuta", - "dismissButton": "Sulje", + "dismissButton": "Hylkää", "quitButton": "Sulje", "updateButton": "Päivitä", "suggested": "Ehdotettu: ${version}", @@ -55,7 +55,7 @@ "widgetTitle": "Paikkaaja", "patchButton": "Paikkaa", "incompatibleArchWarningDialogText": "Paikkaamista ei vielä tueta tällä kokoonpanolla, ja se saattaa epäonnistua. Jatketaanko silti?", - "removedPatchesWarningDialogText": "Seuraavat paikkaukset on poistettu edellisen käyttökerran jälkeen.\n\n${patches}\n\nJatketaanko silti?", + "removedPatchesWarningDialogText": "Poistetut paikat viimeisen laastariesi jälkeen tämän sovelluksen:\n\n${patches}\n\n${newPatches}Jatka joka tapauksessa?", "requiredOptionDialogText": "Joitakin paikkausasetuksia on määritettävä." }, "appSelectorCard": { @@ -82,7 +82,7 @@ "selectFromStorageButton": "Valitse tallennustilasta", "errorMessage": "Valittua sovellusta ei voida käyttää", "downloadToast": "Lataustoiminto ei ole vielä käytettävissä", - "requireSuggestedAppVersionDialogText": "Valitsemasi sovellusversio ei vastaa ehdotettua versiota ja tämä voi johtaa odottamattomia ongelmia. Käytä ehdotettua sovellusversiota.\n\nValittu versio: v${selected}\nEhdotettu versio: v${suggested}\n\nOhittaaksesi tämän, ota \"Vaadi ehdotettu sovellusversio\" -asetus käyttöön.", + "requireSuggestedAppVersionDialogText": "Valitsemasi sovellusversio ei vastaa ehdotettua versiota ja tämä voi aiheuttaa odottamattomia ongelmia. Käytä ehdotettua sovellusversiota.\n\nValittu versio: v${selected}\nEhdotettu versio: v${suggested}\n\nOhittaaksesi tämän, ota \"Vaadi ehdotettu sovellusversio\" -asetus käyttöön.", "featureNotAvailable": "Ominaisuutta ei ole toteutettu", "featureNotAvailableText": "Tämä sovellus on jaettu APK ja se voidaan paikata ja asentaa luotettavasti vain root-oikeuksilla liitettynä. Voit kuitenkin paikata ja asentaa täyden APK:n valitsemalla sen tallennustilasta." }, @@ -100,19 +100,19 @@ "loadPatchesSelection": "Lataa paikkausvalikoima", "noSavedPatches": "Valitulle sovellukselle ei ole tallennettu paikkausvalikoimaa.\nTallenna nykyinen valikoima painamalla \"Valmis\".", "noPatchesFound": "Valitulle sovellukselle ei löytynyt paikkauksia", - "setRequiredOption": "Joillekin paikkauksille on määritettävä asetuksia:\n\n${patches}\n\nTee tarvittavat määritykset ennen kuin jatkat." + "setRequiredOption": "Joillekin paikkauksille on määritettävä asetuksia:\n\n${patches}\n\nMääritä ne ennen kuin jatkat." }, "patchOptionsView": { "customValue": "Oma arvo", "setToNull": "Aseta nollaksi", - "nullValue": "Tämän asetuksen arvo on tällä hetkellä nolla", + "nullValue": "Tämän asetuksen arvo on tällä hetkellä tyhjä", "viewTitle": "Paikkausasetukset", "saveOptions": "Tallenna", "unselectPatch": "Poista paikkauksen valinta", "tooltip": "Enemmän syöttöasetuksia", "selectFilePath": "Valitse tiedostosijainti", "selectFolder": "Valitse kansio", - "requiredOption": "Tämän asetuksen asettaminen on pakollinen", + "requiredOption": "Tämän valinnan asettaminen on pakollista", "unsupportedOption": "Tätä asetusta ei tueta", "requiredOptionNull": "Seuraavat asetukset on määritettävä:\n\n${options}" }, @@ -157,20 +157,18 @@ "languageLabel": "Kieli", "languageUpdated": "Kieli on vaihdettu", "sourcesLabel": "Vaihtoehtoiset lähteet", - "sourcesLabelHint": "Määritä käytöstä poistettujen kohteiden ja käytöstä poistettujen integraatioiden vaihtoehtoiset lähteet", - "sourcesIntegrationsLabel": "Integraatioiden lähde", + "sourcesLabelHint": "Määritä käytöstä poistettujen paikkojen vaihtoehtoiset lähteet", "useAlternativeSources": "Käytä vaihtoehtoisia lähteitä", - "useAlternativeSourcesHint": "Käytä vaihtoehtoisia lähteitä ReVanced Patches ja ReVanced Integrations sijasta API", + "useAlternativeSourcesHint": "Käytä vaihtoehtoisia lähteitä ReVanced Patches sijasta API", "sourcesResetDialogTitle": "Palauta", "sourcesResetDialogText": "Haluatko varmasti palauttaa oletuslähteet?", "apiURLResetDialogText": "Haluatko varmasti palauttaa oletusarvoisen API:n URL-osoitteen?", - "sourcesUpdateNote": "Huomautus: Tämä lataa automaattisesti ReVanced Patches ja ReVanced Integrations vaihtoehtoisista lähteistä.\n\nTämä yhdistää sinut vaihtoehtoiseen lähdekoodiin.", + "sourcesUpdateNote": "Huomautus: Tämä lataa automaattisesti ReVanced Patches vaihtoehtoisista lähteistä.\n\nTämä yhdistää sinut vaihtoehtoiseen lähteeseen.", "apiURLLabel": "API:n URL-osoite", "apiURLHint": "Määritä ReVanced Managerin API:N URL-osoite", "selectApiURL": "API:n URL-osoite", "orgPatchesLabel": "Paikkauksien organisaatio", "sourcesPatchesLabel": "Paikkauksien lähde", - "orgIntegrationsLabel": "Integraatioiden organisaatio", "contributorsLabel": "Osallistujat", "contributorsHint": "Listaus ReVancedin kehitykseen osallistuneista", "logsLabel": "Jaa lokit", @@ -198,7 +196,13 @@ "deleteTempDirLabel": "Poista väliaikaistiedostot", "deleteTempDirHint": "Poista käyttämättömät väliaikaistiedostot", "deletedTempDir": "Väliaikaistiedostot poistettiin", - "exportPatchesLabel": "Vie paikkasvalikoima", + "exportSettingsLabel": "Vie asetukset", + "exportSettingsHint": "Vie asetukset JSON tiedostoon", + "exportedSettings": "Asetukset viety", + "importSettingsLabel": "Tuo asetukset", + "importSettingsHint": "Tuo asetukset JSON tiedostosta", + "importedSettings": "Asetukset tuotu", + "exportPatchesLabel": "Vie paikkausvalikoima", "exportPatchesHint": "Vie paikkausvalikoima JSON-tiedostoon", "exportedPatches": "Paikkausvalikoima vietiin", "noExportFileFound": "Vietäviä paikkausvalikoimia ei ole", diff --git a/assets/i18n/strings_fil_PH.i18n.json b/assets/i18n/strings_fil_PH.i18n.json old mode 100644 new mode 100755 index 414e460f66..dbaab77297 --- a/assets/i18n/strings_fil_PH.i18n.json +++ b/assets/i18n/strings_fil_PH.i18n.json @@ -52,7 +52,6 @@ "patcherView": { "widgetTitle": "Tagapagtapal", "patchButton": "Tapalan", - "removedPatchesWarningDialogText": "Ang mga sumusunod na patches ay tinanggal mula noong huling beses mong gamitin ang mga ito.\n\n${patches}\n\nItuloy pa rin ba?", "requiredOptionDialogText": "Kailangan mo i-set ang ilang mga opsyon para sa patch." }, "appSelectorCard": { @@ -148,16 +147,12 @@ "languageLabel": "Wika", "languageUpdated": "Wika na-update na", "sourcesLabel": "Iba pang mga sources ", - "sourcesLabelHint": "I-set up ang mga alternatibong sources para sa mga ReVanced Patches at ReVanced Integrations", - "sourcesIntegrationsLabel": "Pinanggalingan ng mga integrasyon", "useAlternativeSources": "Gumamit ng alternatibong mga sources ", - "useAlternativeSourcesHint": "Gamitin ang mga alternatibong sources para sa mga ReVanced Patches at ReVanced Integrations sa halip ng API", "sourcesResetDialogTitle": "I-reset", "apiURLLabel": "URL ng API", "selectApiURL": "URL ng API", "orgPatchesLabel": "Pagsasaayos ng mga pantapal", "sourcesPatchesLabel": "Pinanggalingan ng mga pantapal", - "orgIntegrationsLabel": "Pagsasaayos ng mga integrasyon", "contributorsLabel": "Mga nag-ambag", "contributorsHint": "Listahan ng mga tumulong sa ReVanced", "aboutLabel": "Tungkol", diff --git a/assets/i18n/strings_fr_FR.i18n.json b/assets/i18n/strings_fr_FR.i18n.json old mode 100644 new mode 100755 index 6736620bd6..805f35c79b --- a/assets/i18n/strings_fr_FR.i18n.json +++ b/assets/i18n/strings_fr_FR.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Patcheur", "patchButton": "Patcher", "incompatibleArchWarningDialogText": "La correction sur cette architecture n'est pas encore prise en charge et pourrait échouer. Continuer quand même ?", - "removedPatchesWarningDialogText": "Les patchs suivants ont été supprimés depuis la dernière fois que vous les avez utilisés.\n\n${patches}\n\nContinuer quand même ?", + "removedPatchesWarningDialogText": "Les patchs supprimés depuis la dernière fois que vous avez patché cette application :\n\n${patches}\n\n${newPatches}Continuer quand même ?", + "addedPatchesDialogText": "Ajout de correctifs depuis la dernière fois que vous avez patché cette application :\n\n${addedPatches}\n\n", "requiredOptionDialogText": "Certaines options de patch doivent être définies." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Langue", "languageUpdated": "Langue mise à jour", "sourcesLabel": "Sources alternatives", - "sourcesLabelHint": "Configure les sources alternatives pour les correctifs et les intégrations ReVanced", - "sourcesIntegrationsLabel": "Source des intégrations", + "sourcesLabelHint": "Configurer les sources alternatives pour les correctifs ReVanced", "useAlternativeSources": "Utiliser les sources alternatives", - "useAlternativeSourcesHint": "Utilise les sources alternatives pour les correctifs et les intégrations ReVanced à la place de l'API", + "useAlternativeSourcesHint": "Utiliser des sources alternatives pour les correctifs ReVanced au lieu de l'API", "sourcesResetDialogTitle": "Réinitialiser", "sourcesResetDialogText": "Êtes-vous sûr de vouloir réinitialiser vos sources à leurs valeurs par défaut ?", "apiURLResetDialogText": "Êtes-vous sûr de vouloir réinitialiser l'URL d'API à sa valeur par défaut ?", - "sourcesUpdateNote": "Note : Cela téléchargera automatiquement les correctifs et les intégrations ReVanced depuis les sources alternatives.\n\nCela vous connectera à la source alternative.", + "sourcesUpdateNote": "Remarque : Cela téléchargera automatiquement les correctifs ReVanced à partir des sources alternatives.\n\nCela vous connectera à la source alternative.", "apiURLLabel": "URL de l'API", "apiURLHint": "Configurer l'URL de l'API de ReVanced Manager", "selectApiURL": "URL de l'API", "orgPatchesLabel": "Organisation des correctifs", "sourcesPatchesLabel": "Source des patchs", - "orgIntegrationsLabel": "Organisation des intégrations", "contributorsLabel": "Contributeurs", "contributorsHint": "Liste des contributeurs de ReVanced", "logsLabel": "Partager les journaux", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Supprimer les fichiers temporaires", "deleteTempDirHint": "Supprimer les fichiers temporaires inutilisés", "deletedTempDir": "Fichiers temporaires supprimés", + "exportSettingsLabel": "Exporter les paramètres", + "exportSettingsHint": "Exporter les paramètres vers un fichier JSON", + "exportedSettings": "Paramètres exportés", + "importSettingsLabel": "Importer les paramètres", + "importSettingsHint": "Importer les paramètres depuis un fichier JSON", + "importedSettings": "Paramètres importés", "exportPatchesLabel": "Exporter la sélection de correctifs", "exportPatchesHint": "Exporter la sélection de correctifs vers un fichier JSON", "exportedPatches": "Sélection de correctifs exportée", diff --git a/assets/i18n/strings_ga_IE.i18n.json b/assets/i18n/strings_ga_IE.i18n.json old mode 100644 new mode 100755 index a93f7cf74b..c66ff6a22f --- a/assets/i18n/strings_ga_IE.i18n.json +++ b/assets/i18n/strings_ga_IE.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Paisteálaí", "patchButton": "Paiste", "incompatibleArchWarningDialogText": "Níl paisteáil ar an ailtireacht seo tacaítear leis go fóill agus d’fhéadfadh sé teip. Lean ar aghaidh fós?", - "removedPatchesWarningDialogText": "Baineadh na paistí seo a leanas ón uair dheireanach a d'úsáid tú iad.\n\n${patches}\n\nLean ar aghaidh fós?", + "removedPatchesWarningDialogText": "Paistí bainte ón uair dheireanach a ndearna tú paistí ar an aip seo:\n\n${patches}\n\n${newPatches}An bhfuil fonn ort leanúint ar aghaidh mar sin féin?", + "addedPatchesDialogText": "Cuireadh paistí leis ón uair dheireanach a ndearna tú paistí ar an aip seo:\n\n${addedPatches}\n\n", "requiredOptionDialogText": "Caithfear roinnt roghanna paiste a shocrú." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Teanga", "languageUpdated": "Teanga nuashonraithe", "sourcesLabel": "Foinsí malartacha", - "sourcesLabelHint": "Cumraigh na foinsí malartacha le haghaidh Paistí ReVanced agus Comhtháthaithe ReVanced", - "sourcesIntegrationsLabel": "Foinse comhtháthaithe", + "sourcesLabelHint": "Cumraigh na foinsí malartacha le haghaidh Paistí ReVanced", "useAlternativeSources": "Úsáid foinsí malartacha", - "useAlternativeSourcesHint": "Úsáid foinsí malartacha le haghaidh Paistí ReVanced agus Comhtháthaithe ReVanced in ionad an API", + "useAlternativeSourcesHint": "Úsáid foinsí eile le haghaidh ReVanced Patches in ionad an API", "sourcesResetDialogTitle": "Athshocraigh", "sourcesResetDialogText": "An bhfuil tú cinnte gur mhaith leat do fhoinsí a athshocrú go dtí a luachanna réamhshocraithe?", "apiURLResetDialogText": "An bhfuil tú cinnte gur mhaith leat do URL API a athshocrú go dtí a luach réamhshocraithe?", - "sourcesUpdateNote": "Nóta: Íoslódálfaidh sé seo Paistí ReVanced agus Comhtháthú ReVanced go huathoibríoch ó na foinsí malartacha.\n\nCeanglóidh sé seo tú leis an bhfoinse mhalartach.", + "sourcesUpdateNote": "Nóta: Íoslódálfaidh sé seo Paistí ReVanced go huathoibríoch ó na foinsí eile.\n\nNascfaidh sé seo tú leis an bhfoinse eile.", "apiURLLabel": "UIRL API", "apiURLHint": "Cumraigh URL API de Bhainisteoir ReVanced", "selectApiURL": "UIRL API", "orgPatchesLabel": "Eagraíocht paistí", "sourcesPatchesLabel": "Foinse paistí", - "orgIntegrationsLabel": "Eagraíocht comhtháthaithe", "contributorsLabel": "Rannpháirtithe", "contributorsHint": "Liosta de rannpháirtithe ReVanced", "logsLabel": "Comhroinn logaí", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Scrios comhaid shealadacha", "deleteTempDirHint": "Scrios comhaid shealadacha gan úsáid", "deletedTempDir": "Scriosta comhaid shealadacha", + "exportSettingsLabel": "Socruithe easpórtála", + "exportSettingsHint": "Easpórtáil socruithe go comhad JSON", + "exportedSettings": "Socruithe easpórtáilte", + "importSettingsLabel": "Socruithe a allmhairiú", + "importSettingsHint": "Iompórtáil socruithe ó chomhad JSON", + "importedSettings": "Socruithe allmhairithe", "exportPatchesLabel": "Rogha paiste easpórtála", "exportPatchesHint": "Roghnú paiste a easpórtáil chuig comhad JSON", "exportedPatches": "Easpórtáil an roghnú paistí", diff --git a/assets/i18n/strings_gl_ES.i18n.json b/assets/i18n/strings_gl_ES.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_gu_IN.i18n.json b/assets/i18n/strings_gu_IN.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_he_IL.i18n.json b/assets/i18n/strings_he_IL.i18n.json old mode 100644 new mode 100755 index f05b6cfc12..f23666959c --- a/assets/i18n/strings_he_IL.i18n.json +++ b/assets/i18n/strings_he_IL.i18n.json @@ -23,7 +23,10 @@ "refreshSuccess": "רוענן בהצלחה", "widgetTitle": "לוח בקרה", "updatesSubtitle": "עדכונים", + "lastPatchedAppSubtitle": "תיקון אפליקציה אחרון", + "patchedSubtitle": "אפליקציות מותקנות", "changeLaterSubtitle": "ניתן לשנות זאת בהגדרות מאוחר יותר.", + "noSavedAppFound": "לא נמצאו אפליקציות", "noInstallations": "אין אפליקציות מתוקנת מותקנות", "installUpdate": "המשך להתקין את העדכון?", "updateSheetTitle": "עדכן את ReVanced Manager", @@ -51,7 +54,7 @@ "patcherView": { "widgetTitle": "Patcher", "patchButton": "תיקון", - "removedPatchesWarningDialogText": "התיקונים הבאים הוסרו מאז הפעם האחרונה שהשתמשת בהם.\n${patches}\nלהמשיך בכל זאת?", + "incompatibleArchWarningDialogText": "תיקון בארכיטקטורה זו לא נתמך עדיין ועלול להיכשל. להמשיך בכל זאת?", "requiredOptionDialogText": "כמה אפשרויות תיקון חייבות להיקבע." }, "appSelectorCard": { @@ -102,6 +105,7 @@ "setToNull": "השמה לnull", "viewTitle": "אפשרויות תיקון", "saveOptions": "שמור", + "unselectPatch": "בטל את בחירת התיקון", "tooltip": "אפשרויות קלט נוספות", "selectFilePath": "בחר נתיב קובץ", "selectFolder": "בחר תיקייה", @@ -147,21 +151,22 @@ "dynamicThemeHint": "תהנה/י מחוויה קרובה יותר למכשיר שלך", "languageLabel": "שפה", "languageUpdated": "עדכוני שפה", - "sourcesIntegrationsLabel": "מקור אינטגרציות", "sourcesResetDialogTitle": "איפוס", "sourcesResetDialogText": "האם אתה בטוח שברצונך לאפס את המקורות לערכי ברירת המחדל שלהם?", "apiURLResetDialogText": "האם אתה בטוח שברצונך לאפס את כתובת הAPI לערך ברירת המחדל?", "apiURLLabel": "כתובת API", + "apiURLHint": "הגדר את כתובת ה-API של ReVanced Manager", "selectApiURL": "כתובת API", "orgPatchesLabel": "ארגון תיקונים", "sourcesPatchesLabel": "מקור התיקונים", - "orgIntegrationsLabel": "ארגון אינטגרציות", "contributorsLabel": "תורמים", "contributorsHint": "רשימת התורמים לReVanced", "logsLabel": "שתף לוג", + "logsHint": "שתף ReVanced Manager לוג", "disablePatchesSelectionWarningText": "אתה עומד לכבות את שינוי בחירת התיקונים.\nהבחירה ברירת המחדל של התיקונים תשוחזר.\n\nלכבות בכל מקרה?", "autoUpdatePatchesLabel": "עדכון תיקונים באופן אוטומטי", "autoUpdatePatchesHint": "עדכן אוטומטית את התיקונים לגרסה העדכנית ביותר", + "showUpdateDialogLabel": "הצג תיבת עדכון", "universalPatchesLabel": "הצג תיקונים אוניברסליים", "universalPatchesHint": "הצג את כל האפליקציות והתיקונים האוניברסליים (עשוי להאט את רשימת האפליקציות)", "versionCompatibilityCheckLabel": "בדיקת תאימות לגרסה", @@ -244,6 +249,7 @@ "status_failure_timeout_description": "ההתקנה לקחה יותר מדי זמן לסיום.\n\nהאם ברצונך לנסות שוב?", "status_failure_storage_description": "ההתקנה נכשלה עקב אחסון לא מספיק.\n\nפנה קצת מקום ונסה שוב.", "status_failure_invalid_description": "ההתקנה נכשלה בגלל שהאפליקציה המתוקנת לא חוקית.\n\nלהסיר את האפליקציה ולנסות שוב?", + "status_failure_incompatible_description": "האפליקציה אינה תואמת למכשיר זה.\n\nהשתמש ב-APK שנתמך על ידי מכשיר זה ונסה שוב.", "status_failure_conflict_description": "ההתקנה נמנעה על ידי התקנה קיימת של האפליקציה.\n\nלהסיר את ההתקנה של האפליקציה המותקנת ולנסות שוב?", "status_failure_blocked_description": "ההתקנה נחסמה על ידי ${packageName}.\n\nשנה את הגדרות האבטחה שלך ונסה שוב.", "install_failed_verification_failure_description": "ההתקנה נכשלה עקב בעיית אימות.\n\nשנה את הגדרות האבטחה שלך ונסה שוב.", diff --git a/assets/i18n/strings_hi_IN.i18n.json b/assets/i18n/strings_hi_IN.i18n.json old mode 100644 new mode 100755 index 9a2599ea29..f02b78bb89 --- a/assets/i18n/strings_hi_IN.i18n.json +++ b/assets/i18n/strings_hi_IN.i18n.json @@ -103,13 +103,11 @@ "dynamicThemeLabel": "मेटीरियल यू", "dynamicThemeHint": "अपने डिवाइस के करीब एक अनुभव का आनंद लें", "languageLabel": "भाषा", - "sourcesIntegrationsLabel": "एकीकरण स्रोत", "sourcesResetDialogTitle": "रीसेट करें", "apiURLLabel": "API URL", "selectApiURL": "API URL", "orgPatchesLabel": "पैच संगठन", "sourcesPatchesLabel": "पैच स्रोत", - "orgIntegrationsLabel": "एकीकरण संगठन", "contributorsLabel": "योगदान कर्ता", "contributorsHint": "ReVanced के योगदानकर्ताओ की सूची", "aboutLabel": "विवरण", diff --git a/assets/i18n/strings_hr_HR.i18n.json b/assets/i18n/strings_hr_HR.i18n.json old mode 100644 new mode 100755 index 096d3cb932..b5d5a8c7f5 --- a/assets/i18n/strings_hr_HR.i18n.json +++ b/assets/i18n/strings_hr_HR.i18n.json @@ -93,13 +93,11 @@ "darkThemeLabel": "Tamni način", "dynamicThemeHint": "Uživajte u iskustvu prilagođenom vašem uređaju", "languageLabel": "Jezik", - "sourcesIntegrationsLabel": "Izvori ugradnje", "sourcesResetDialogTitle": "Ponovno postavljanje", "apiURLLabel": "API URL", "selectApiURL": "API URL", "orgPatchesLabel": "Autori zakrpa", "sourcesPatchesLabel": "Izvor zakrpa", - "orgIntegrationsLabel": "Organizacije za ugradnju", "contributorsLabel": "Pridonositelji", "contributorsHint": "Popis suradnika ReVanceda", "aboutLabel": "O aplikaciji", diff --git a/assets/i18n/strings_hu_HU.i18n.json b/assets/i18n/strings_hu_HU.i18n.json old mode 100644 new mode 100755 index c1e6589ee7..810561c6c5 --- a/assets/i18n/strings_hu_HU.i18n.json +++ b/assets/i18n/strings_hu_HU.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Patchelő", "patchButton": "Patch", "incompatibleArchWarningDialogText": "Ezen az architektúrán a patchelés még nem támogatott, és sikertelen lehet. Mégis folytatod?", - "removedPatchesWarningDialogText": "A következő patcheket a legutóbbi használatuk óta eltávolították.\n\n${patches}\n\nMindenképpen folytatja?", + "removedPatchesWarningDialogText": "Az alkalmazás legutóbbi javítása óta eltávolított javítások:\n\n${patches}\n\n${newPatches}Amúgy folytatja?", + "addedPatchesDialogText": "Javítások hozzáadva az alkalmazás legutóbbi javítása óta:\n\n${addedPatches}", "requiredOptionDialogText": "Néhány patch lehetőséget be kell állítani." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Nyelv", "languageUpdated": "Nyelv frissítve", "sourcesLabel": "Alternatív források", - "sourcesLabelHint": "Állítsa be a ReVanced Patchek és ReVanced Integrációk alternatív forrásait", - "sourcesIntegrationsLabel": "Integrációk - forrás", + "sourcesLabelHint": "Egyéni lejátszási sebesség hozzáadása vagy módosítása", "useAlternativeSources": "Alternatív források használata", - "useAlternativeSourcesHint": "Használjon alternatív forrásokat a ReVanced Patchekhez és a ReVanced Integrációhoz az API helyett", + "useAlternativeSourcesHint": "Használjon alternatív forrásokat a ReVanced Patch-ekhez az API helyett", "sourcesResetDialogTitle": "Visszaállítás", "sourcesResetDialogText": "Biztosan vissza szeretné állítani a forrásokat az alapértelmezett értékekre?", "apiURLResetDialogText": "Biztosan vissza szeretné állítani az API URL-jét az alapértelmezett értékre?", - "sourcesUpdateNote": "Megjegyzés: Ez automatikusan letölti a ReVanced Patcheket és a ReVanced Integrációkat az alternatív forrásokból.\n\nEzzel csatlakozik az alternatív forráshoz.", + "sourcesUpdateNote": "Megjegyzés: Ez automatikusan letölti a ReVanced Patch-eket az alternatív forrásokból.\n\nEzzel csatlakozik az alternatív forráshoz.", "apiURLLabel": "API URL", "apiURLHint": "Konfigurálja a ReVanced Manager API URL-jét", "selectApiURL": "API link", "orgPatchesLabel": "Patchek - szervezet", "sourcesPatchesLabel": "Patchek - forrás", - "orgIntegrationsLabel": "Integrációk - szervezet", "contributorsLabel": "Közreműködők", "contributorsHint": "A ReVanced közreműködőinek listája", "logsLabel": "Naplók megosztása", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Ideiglenes fájlok törlése", "deleteTempDirHint": "Nem használt ideiglenes fájlok törlése", "deletedTempDir": "Ideiglenes fájlok törölve", + "exportSettingsLabel": "Beállítások exportálása", + "exportSettingsHint": "A beállítások exportálása JSON-fájlba", + "exportedSettings": "Beállítások exportálva", + "importSettingsLabel": "Beállítások importálása", + "importSettingsHint": "Beállítások importálása JSON-fájlból", + "importedSettings": "Beállítások importálva", "exportPatchesLabel": "Kijelölt patchek exportálása", "exportPatchesHint": "Exportálja a kijelölt patcheket egy JSON-fájlba", "exportedPatches": "Kijelölt patchek exportálva", diff --git a/assets/i18n/strings_hy_AM.i18n.json b/assets/i18n/strings_hy_AM.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_id_ID.i18n.json b/assets/i18n/strings_id_ID.i18n.json old mode 100644 new mode 100755 index 035e05fbbf..ad5ebf078d --- a/assets/i18n/strings_id_ID.i18n.json +++ b/assets/i18n/strings_id_ID.i18n.json @@ -23,19 +23,19 @@ "refreshSuccess": "Berhasil Memuat Ulang", "widgetTitle": "Dasbor", "updatesSubtitle": "Pembaruan", - "lastPatchedAppSubtitle": "Patch terakhir app", - "patchedSubtitle": "App terinstal", + "lastPatchedAppSubtitle": "Aplikasi terakhir yang ditambal", + "patchedSubtitle": "Aplikasi terpasang", "changeLaterSubtitle": "Anda dapat mengubahnya di pengaturan nanti.", "noSavedAppFound": "App tidak ditemukan", - "noInstallations": "Aplikasi tambalan tidak terpasang", + "noInstallations": "Aplikasi tertambal tidak terpasang", "installUpdate": "Lanjutkan untuk mengunduh pembaruan?", - "updateSheetTitle": "Perbarui Manajer ReVanced", - "updateDialogTitle": "Pembaruan terkini telah tersedia", + "updateSheetTitle": "Perbarui ReVanced Manager", + "updateDialogTitle": "Pembaruan baru telah tersedia", "updatePatchesSheetTitle": "Perbarui Tambalan ReVanced", "updateChangelogTitle": "Catatan perubahan", - "updateDialogText": "Pembaruan telah tersedia untuk ${file}.\n\nVersi yang diinstal saat ini adalah ${version}.", + "updateDialogText": "Pembaruan telah tersedia untuk ${file}.\n\nVersi yang dipasang saat ini adalah ${version}.", "downloadConsentDialogTitle": "Unduh file yang diperlukan?", - "downloadConsentDialogText": "Manajer ReVanced perlu mengunduh file yang diperlukan agar berfungsi dengan baik.", + "downloadConsentDialogText": "ReVanced Manager perlu mengunduh berkas yang diperlukan agar berfungsi dengan baik.", "downloadConsentDialogText2": "Ini akan menghubungkan Anda ke ${url}.", "downloadingMessage": "Mengunduh pembaruan...", "downloadedMessage": "Pembaruan telah diunduh", @@ -54,16 +54,17 @@ "patcherView": { "widgetTitle": "Penambal", "patchButton": "Tambalan", - "incompatibleArchWarningDialogText": "Patching pada arsitektur ini belum didukung dan mungkin gagal. Lanjutkan saja?", - "removedPatchesWarningDialogText": "Patch berikut telah dihapus sejak terakhir kali Anda menggunakannya.\n\n${patches}\n\nTetap lanjut?", - "requiredOptionDialogText": "Beberapa opsi patch harus diatur." + "incompatibleArchWarningDialogText": "Menambal pada arsitektur ini belum didukung dan kemungkinan gagal. Lanjutkan saja?", + "removedPatchesWarningDialogText": "Tambalan yang dihapus sejak terakhir kali Anda menambal aplikasi ini:\n\n${patches}\n\n${newPatches}Tetap lanjutkan?", + "addedPatchesDialogText": "Tambalan yang ditambahkan sejak terakhir kali Anda menambal aplikasi ini:\n\n${addedPatches}", + "requiredOptionDialogText": "Beberapa pilihan tambalan harus diatur." }, "appSelectorCard": { "widgetTitle": "Pilih aplikasi", "widgetTitleSelected": "Aplikasi yang dipilih", "widgetSubtitle": "Tidak ada aplikasi yang dipilih", "noAppsLabel": "Aplikasi tidak ditemukan", - "anyVersion": "Versi apa saja" + "anyVersion": "Versi apapun" }, "patchSelectorCard": { "widgetTitle": "Pilih tambalan", @@ -83,44 +84,44 @@ "errorMessage": "Tidak dapat menggunakan aplikasi yang dipilih", "downloadToast": "Fungsi mengunduh belum tersedia", "requireSuggestedAppVersionDialogText": "Versi aplikasi yang Anda pilih tidak sesuai dengan versi yang disarankan yang dapat menyebabkan masalah yang tidak diharapkan. Silakan gunakan versi yang disarankan.\n\nVersi yang dipilih: ${selected}\nVersi yang disarankan: ${suggested}\n\nUntuk melanjutkan, nonaktifkan \"Memerlukan versi aplikasi yang disarankan\" di pengaturan.", - "featureNotAvailable": "Fitur tidak diimplementasi", - "featureNotAvailableText": "Aplikasi ini adalah APK terpisah yang hanya dapat ditambal dan dipasang melalui cara mount dengan izin root. Namun, APK lengkap dapat Anda tambal dan pasang dengan memilihnya dari penyimpanan." + "featureNotAvailable": "Fitur belum diterapkan", + "featureNotAvailableText": "Aplikasi ini adalah APK terpisah yang hanya dapat ditambal dan dipasang melalui cara mount dengan izin root. Namun, Anda dapat menambal dan memasang APK lengkap dengan memilihnya dari penyimpanan." }, "patchesSelectorView": { "viewTitle": "Pilih tambalan", "searchBarHint": "Cari tambalan", - "universalPatches": "Patch universal", - "newPatches": "Patch baru", - "patches": "Patch", + "universalPatches": "Tambalan universal", + "newPatches": "Tambalan baru", + "patches": "Tambalan", "doneButton": "Selesai", "defaultChip": "Bawaan", "defaultTooltip": "Pilih semua tambalan bawaan", "noneChip": "Tidak ada", "noneTooltip": "Batalkan semua tambalan", - "loadPatchesSelection": "Muat patch terpilih", + "loadPatchesSelection": "Muat tambalan terpilih", "noSavedPatches": "Tidak ada pilihan tambalan yang disimpan untuk aplikasi yang dipilih.\nTekan Selesai untuk menyimpan pilihan saat ini.", - "noPatchesFound": "Tidak ada tambalan untuk aplikasi", - "setRequiredOption": "Beberapa patch memerlukan opsi untuk diatur:\n\n${patches}\n\nAturlah sebelum melanjutkan." + "noPatchesFound": "Tidak ada tambalan untuk aplikasi terpilih", + "setRequiredOption": "Beberapa tambalan memerlukan pilihan untuk diatur:\n\n${patches}\n\nAturlah sebelum melanjutkan." }, "patchOptionsView": { - "customValue": "Nilai kustom", + "customValue": "Nilai khusus", "setToNull": "Setel ke null", - "nullValue": "Nilai opsi ini saat ini adalah null", - "viewTitle": "Opsi tambalan", + "nullValue": "Nilai pilihan ini saat ini adalah null", + "viewTitle": "Pilihan tambalan", "saveOptions": "Simpan", - "unselectPatch": "Batalkan pilihan patch", - "tooltip": "Opsi masukan lainnya", + "unselectPatch": "Batalkan pilihan tambalan", + "tooltip": "Pilihan masukan lainnya", "selectFilePath": "Pilih lokasi berkas", "selectFolder": "Pilih folder", - "requiredOption": "Pengaturan opsi ini diperlukan", + "requiredOption": "Pengaturan pilihan ini diperlukan", "unsupportedOption": "Pilihan ini tidak didukung", "requiredOptionNull": "Pilihan ini harus terpilih:\n\n${options}" }, "patchItem": { - "unsupportedDialogText": "Memilih tambalan ini akan menyebabkan galat tambal.\n\nVersi apli: ${packageVersion}\nVersi anjuran:\n${supportedVersions}", + "unsupportedDialogText": "Memilih tambalan ini mungkin menyebabkan kegagalan tambal.\n\nVersi aplikasi: ${packageVersion}\nVersi yang didukung:\n${supportedVersions}", "unsupportedPatchVersion": "Tambalan ini tidak mendukung versi aplikasi ini.", - "unsupportedRequiredOption": "Patch ini berisi opsi wajib yang tidak didukung oleh aplikasi ini", - "patchesChangeWarningDialogText": "Direkomendasikan untuk menggunakan pilihan dan opsi tambalan default. Mengubahnya dapat mengakibatkan masalah yang tidak diharapkan.\n\nAnda harus mengaktifkan \"Izinkan perubahan pilihan tambalan\" dalam pengaturan sebelum mengubah pilihan tambalan.", + "unsupportedRequiredOption": "Tambalan ini berisi pilihan wajib yang tidak didukung oleh aplikasi ini", + "patchesChangeWarningDialogText": "Direkomendasikan untuk menggunakan pilihan dan opsi tambalan bawaan. Mengubahnya dapat mengakibatkan masalah yang tidak diharapkan.\n\nAnda harus mengaktifkan \"Izinkan perubahan pilihan tambalan\" dalam pengaturan sebelum mengubah pilihan tambalan.", "patchesChangeWarningDialogButton": "Gunakan pemilihan bawaan" }, "installerView": { @@ -129,13 +130,13 @@ "installButton": "Pasang", "installRootType": "Mount", "installNonRootType": "Reguler", - "warning": "Nonaktifkan pembaruan pada aplikasi tertambal untuk menghindari isu.", - "pressBackAgain": "Tekan tombol balik lagi untuk membatalkan", + "warning": "Nonaktifkan pembaruan pada aplikasi tertambal untuk menghindari masalah.", + "pressBackAgain": "Tekan tombol kembali untuk membatalkan", "openButton": "Buka", "notificationTitle": "ReVanced Manager sedang menambal", "notificationText": "Ketuk untuk kembali ke pemasang", "exportApkButtonTooltip": "Ekspor APK yang ditambal", - "exportLogButtonTooltip": "Log ekspor", + "exportLogButtonTooltip": "Ekspor log", "screenshotDetected": "Tangkapan layar telah terdeteksi. Jika Anda mencoba membagikan log, silakan bagikan salinan teks.\n\nMenyalin log ke papan klip?", "copiedToClipboard": "Menyalin log ke papan klip", "noExit": "Pemasangan masih berjalan, tidak bisa keluar..." @@ -150,45 +151,43 @@ "dataSectionTitle": "Sumber data", "themeModeLabel": "Tema aplikasi", "systemThemeLabel": "Sistem", - "lightThemeLabel": "Cahaya", - "darkThemeLabel": "Mode gelap", + "lightThemeLabel": "Terang", + "darkThemeLabel": "Gelap", "dynamicThemeLabel": "Material You", "dynamicThemeHint": "Nikmati pengalaman lebih dekat ke perangkat Anda", "languageLabel": "Bahasa", - "languageUpdated": "Bahasa diperbaharui", - "sourcesLabel": "Sumber-sumber alternatif", - "sourcesLabelHint": "Mengonfigurasi sumber alternatif untuk ReVanced Patches dan ReVanced Integrations", - "sourcesIntegrationsLabel": "Sumber Integrasi", - "useAlternativeSources": "Gunakan sumber-sumber alternatif", - "useAlternativeSourcesHint": "Gunakan sumber alternatif untuk ReVanced Patches dan ReVanced Integrations alih-alih API", + "languageUpdated": "Bahasa diperbarui", + "sourcesLabel": "Sumber alternatif", + "sourcesLabelHint": "Konfigurasikan sumber alternatif untuk Patch ReVanced", + "useAlternativeSources": "Gunakan sumber alternatif", + "useAlternativeSourcesHint": "Gunakan sumber alternatif untuk Patch ReVanced, bukan API", "sourcesResetDialogTitle": "Atur ulang", - "sourcesResetDialogText": "Apakah Anda yakin ingin mengatur ulang sumber kustom ke bawaannya?", + "sourcesResetDialogText": "Apakah Anda yakin ingin mengatur ulang sumber khusus ke sumber bawaan?", "apiURLResetDialogText": "Apakah Anda yakin ingin mengatur ulang URL API ke bawaan?", - "sourcesUpdateNote": "Catatan: Ini akan secara otomatis mengunduh ReVanced Patches dan ReVanced Integrations dari sumber alternatif.\n\nIni akan menghubungkan Anda ke sumber alternatif.", + "sourcesUpdateNote": "Catatan: Ini akan secara otomatis mengunduh Patch ReVanced dari sumber alternatif.\n\nIni akan menghubungkan Anda ke sumber alternatif.", "apiURLLabel": "URL API", - "apiURLHint": "Konfigurasikan URL API dari ReVanced Manager", + "apiURLHint": "Atur URL API dari ReVanced Manager", "selectApiURL": "URL API", - "orgPatchesLabel": "Perapihan tambalan", + "orgPatchesLabel": "Organisasi tambalan", "sourcesPatchesLabel": "Sumber tambalan", - "orgIntegrationsLabel": "Organisasi Intergrasi", "contributorsLabel": "Kontributor", "contributorsHint": "Daftar kontributor ReVanced", "logsLabel": "Bagikan log", "logsHint": "Bagikan log ReVanced Manager", "enablePatchesSelectionLabel": "Izinkan mengubah pemilihan tambalan", "enablePatchesSelectionHint": "Jangan mencegah pemilihan atau pembatalan pemilihan tambalan", - "enablePatchesSelectionWarningText": "Mengubah pilihan dari tambalan akan menyebabkan isu tak terduga.\n\nAktifkan saja?", - "disablePatchesSelectionWarningText": "Anda akan menonaktifkan pengubahan pilihan tambalan.\nPilihan tambalan default akan dikembalikan.\n\nMenonaktifkan?", + "enablePatchesSelectionWarningText": "Mengubah pilihan dari tambalan akan menyebabkan masalah tak terduga.\n\nAktifkan saja?", + "disablePatchesSelectionWarningText": "Anda akan menonaktifkan pengubahan pilihan tambalan.\nPilihan tambalan bawaan akan dikembalikan.\n\nTetap nonaktifkan?", "autoUpdatePatchesLabel": "Otomatis perbarui tambalan", - "autoUpdatePatchesHint": "Otomatis perbarui tambalan ke versi terkini", + "autoUpdatePatchesHint": "Otomatis perbarui tambalan ke versi terbaru", "showUpdateDialogLabel": "Tampilkan dialog pembaruan", "showUpdateDialogHint": "Tampilkan dialog ketika pembaruan tersedia", "universalPatchesLabel": "Tampilkan tambalan universal", - "universalPatchesHint": "Menampilkan semua aplikasi dan tambalan universal (dapat memperlambat daftar aplikasi)", - "lastPatchedAppLabel": "Simpan patch aplikasi", - "lastPatchedAppHint": "Simpan patch terakhir untuk diinstal atau diekspor nanti", - "versionCompatibilityCheckLabel": "Periksa versi kompatibilitas", - "versionCompatibilityCheckHint": "Cegah pemilihan tambalan yang tidak kompatibel dengan versi aplikasi yang dipilih", + "universalPatchesHint": "Tampilkan semua aplikasi dan tambalan universal (dapat memperlambat daftar aplikasi)", + "lastPatchedAppLabel": "Simpan aplikasi tertambal", + "lastPatchedAppHint": "Simpan tambalan terakhir untuk dipasang atau diekspor nanti", + "versionCompatibilityCheckLabel": "Pemeriksaan kompatibilitas versi", + "versionCompatibilityCheckHint": "Cegah pemilihan tambalan yang tidak cocok dengan versi aplikasi yang dipilih", "requireSuggestedAppVersionLabel": "Memerlukan versi aplikasi yang disarankan", "requireSuggestedAppVersionHint": "Cegah memilih versi aplikasi yang tidak disarankan", "requireSuggestedAppVersionDialogText": "Memilih versi aplikasi yang tidak disarankan dapat menyebabkan masalah yang tidak terduga.\n\nApakah anda ingin melanjutkan?", @@ -198,39 +197,45 @@ "deleteTempDirLabel": "Hapus berkas sementara", "deleteTempDirHint": "Hapus berkas sementara yang tidak dipakai", "deletedTempDir": "Berkas sementara dihapus", - "exportPatchesLabel": "Ekspor tambalan pilihan", - "exportPatchesHint": "Ekspor tambalan terpilih ke berkas JSON", - "exportedPatches": "Tambalan pilihan diekspor", + "exportSettingsLabel": "Ekspor pengaturan", + "exportSettingsHint": "Ekspor pengaturan ke berkas JSON", + "exportedSettings": "Pengaturan berhasil diekspor", + "importSettingsLabel": "Impor pengaturan", + "importSettingsHint": "Impor pengaturan dari berkas JSON", + "importedSettings": "Pengaturan berhasil diimpor", + "exportPatchesLabel": "Ekspor pilihan tambalan", + "exportPatchesHint": "Ekspor pilihan tambalan ke berkas JSON", + "exportedPatches": "Tambalan terpilih diekspor", "noExportFileFound": "Belum pilih tambalan untuk diekspor", - "importPatchesLabel": "Impor modifikasi terpilih", - "importPatchesHint": "Impor tembalan terpilih dari berkas JSON", + "importPatchesLabel": "Impor tambalan pilihan", + "importPatchesHint": "Impor tembalan pilihan dari berkas JSON", "importedPatches": "Tambalan pilihan diimpor", - "resetStoredPatchesLabel": "Setel ulang tambalan pilihan", - "resetStoredPatchesHint": "Mulai ulang tambalan pilihan yang disimpan", - "resetStoredPatchesDialogTitle": "Mulai ulang tambalan pilihan?", + "resetStoredPatchesLabel": "Atur ulang tambalan pilihan", + "resetStoredPatchesHint": "Atur ulang tambalan pilihan yang disimpan", + "resetStoredPatchesDialogTitle": "Atur ulang tambalan pilihan?", "resetStoredPatchesDialogText": "Tambalan pilihan bawaan akan dikembalikan.", "resetStoredPatches": "Tambalan pilihan telah diatur ulang", - "resetStoredOptionsLabel": "Setel ulang opsi tambalan", - "resetStoredOptionsHint": "Setel ulang semua opsi tambalan", - "resetStoredOptionsDialogTitle": "Setel ulang opsi tambalan?", - "resetStoredOptionsDialogText": "Menyetel ulang opsi tambalan akan menghapus semua opsi yang disimpan.", - "resetStoredOptions": "Opsi telah diatur ulang", - "deleteLogsLabel": "Hapus riwayat", - "deleteLogsHint": "Hapus log ReVanced Manager terkumpul", + "resetStoredOptionsLabel": "Atur ulang pilihan tambalan", + "resetStoredOptionsHint": "Atur ulang semua pilihan tambalan", + "resetStoredOptionsDialogTitle": "Atur ulang pilihan tambalan?", + "resetStoredOptionsDialogText": "Menyetel ulang pilihan tambalan akan menghapus semua pilihan yang disimpan.", + "resetStoredOptions": "Pilihan telah diatur ulang", + "deleteLogsLabel": "Hapus catatan", + "deleteLogsHint": "Hapus log ReVanced Manager yang dikumpulkan", "deletedLogs": "Log dihapus", - "regenerateKeystoreLabel": "Menghasilkan penyimpanan kunci", - "regenerateKeystoreHint": "Buat ulang penyimpanan kunci yang digunakan untuk menandatangani aplikasi", - "regenerateKeystoreDialogTitle": "Membuat ulang kunci penyimpanan?", - "regenerateKeystoreDialogText": "Aplikasi tambalan yang ditandatangani dengan kunci penyimpanan lama tidak dapat diperbarui lagi.", - "regeneratedKeystore": "Kunci penyimpanan dibuat ulang", + "regenerateKeystoreLabel": "Buat ulang keystore", + "regenerateKeystoreHint": "Buat ulang keystore yang digunakan untuk menandatangani aplikasi", + "regenerateKeystoreDialogTitle": "Buat ulang keystore?", + "regenerateKeystoreDialogText": "Aplikasi tambalan yang ditandatangani dengan keystore lama tidak dapat diperbarui lagi.", + "regeneratedKeystore": "Keystore dibuat ulang", "exportKeystoreLabel": "Ekspor keystore", - "exportKeystoreHint": "Ekspor kunci penyimpanan yang digunakan untuk menandatangani aplikasi", + "exportKeystoreHint": "Ekspor keystore yang digunakan untuk menandatangani aplikasi", "exportedKeystore": "Keystore diekspor", "noKeystoreExportFileFound": "Tidak ada keystore untuk diekspor", "importKeystoreLabel": "Impor keystore", - "importKeystoreHint": "Impor kunci penyimpanan yang digunakan untuk menandatangani aplikasi", + "importKeystoreHint": "Impor keystore yang digunakan untuk menandatangani aplikasi", "importedKeystore": "Keystore diimpor", - "selectKeystorePassword": "Kata Sandi Keystore", + "selectKeystorePassword": "Kata sandi keystore", "selectKeystorePasswordHint": "Pilih kata sandi keystore yang digunakan untuk menandatangani aplikasi", "jsonSelectorErrorMessage": "Tidak bisa menggunakan berkas JSON tersebut", "keystoreSelectorErrorMessage": "Tidak bisa menggunakan berkas keystrore tersebut" @@ -240,26 +245,26 @@ "openButton": "Buka", "installButton": "Pasang", "uninstallButton": "Copot", - "unmountButton": "Lepas mount", + "unmountButton": "Unmount", "exportButton": "Ekspor", "deleteButton": "Hapus", "rootDialogTitle": "Kesalahan", - "lastPatchedAppDescription": "Ini adalah cadangan patch aplikasi terakhir.", - "unmountDialogText": "Apakah yakin ingin melepas mount aplikasi ini?", - "uninstallDialogText": "Apakah yakin ingin mencopot aplikasi ini?", - "rootDialogText": "Aplikasi dipasang dengan izin superuser, tapi saat ini ReVanced Manager belum diizinkan.\nMohon berikan izin superuser dulu.", - "removeAppDialogTitle": "Hapus Aplikasi?", - "removeAppDialogText": "Yakin akan menghapus data backup ini?", + "lastPatchedAppDescription": "Ini adalah cadangan dari aplikasi yang terakhir ditambal.", + "unmountDialogText": "Apakah Anda yakin ingin unmount aplikasi ini?", + "uninstallDialogText": "Apakah Anda yakin ingin mencopot aplikasi ini?", + "rootDialogText": "Aplikasi dipasang dengan izin superuser, tapi saat ini ReVanced Manager tidak mempunyai izin.\nMohon berikan izin superuser terlebih dahulu.", + "removeAppDialogTitle": "Hapus aplikasi?", + "removeAppDialogText": "Apakah Anda yakin ingin menghapus cadangan ini?", "packageNameLabel": "Nama paket", - "installTypeLabel": "Tipe pemasangan", + "installTypeLabel": "Jenis pemasangan", "mountTypeLabel": "Mount", "regularTypeLabel": "Reguler", - "patchedDateLabel": "Kapan ditambal", - "appliedPatchesLabel": "Tambalan terterap", - "sizeLabel": "Ukuran file", - "patchedDateHint": "${date} pukul ${time}", - "appliedPatchesHint": "${quantity} tambalan terterap", - "updateNotImplemented": "Fitur ini belum diimplementasi" + "patchedDateLabel": "Tanggal ditambal", + "appliedPatchesLabel": "Tambalan yang diterapkan", + "sizeLabel": "Ukuran berkas", + "patchedDateHint": "${date} pada pukul ${time}", + "appliedPatchesHint": "${quantity} tambalan yang diterapkan", + "updateNotImplemented": "Fitur ini belum diterapkan" }, "contributorsView": { "widgetTitle": "Kontributor" @@ -270,24 +275,24 @@ "mount_missing_installation": "Pemasangan tidak ada", "status_failure_blocked": "Pemasangan diblokir", "install_failed_verification_failure": "Verifikasi gagal", - "status_failure_invalid": "Pemasangan tidak absah", - "install_failed_version_downgrade": "Tak bisa turun versi", - "status_failure_conflict": "Pemasangan cekcok", + "status_failure_invalid": "Pemasangan tidak sah", + "install_failed_version_downgrade": "Tidak dapat menurunkan versi", + "status_failure_conflict": "Pemasangan berselisih", "status_failure_storage": "Ruang pemasangan bermasalah", - "status_failure_incompatible": "Pemasangan tidak kompatibel", - "status_failure_timeout": "Pemasangan kelamaan", + "status_failure_incompatible": "Pemasangan tidak cocok", + "status_failure_timeout": "Pemasangan kehabisan waktu", "status_unknown": "Pemasangan gagal", - "mount_version_mismatch_description": "Penginstalan gagal karena aplikasi yang diinstal merupakan versi yang berbeda dari aplikasi yang ditambal.\n\nInstal versi aplikasi yang anda pasang dan coba lagi.", - "mount_no_root_description": "Pemasangan ini gagal karena akses root belum dizinkan.\n\nIzinkan akses root ke ReVanced Manager dan coba lagi.", - "mount_missing_installation_description": "Penginstalan gagal karena aplikasi yang belum ditambal tidak diinstal pada perangkat ini untuk dipasang di atasnya.\n\nInstal aplikasi yang belum ditambal sebelum memasang dan coba lagi.", - "status_failure_timeout_description": "Instalasi memakan waktu terlalu lama untuk diselesaikan.\n\nApakah anda ingin mencoba lagi?", - "status_failure_storage_description": "Instalasi gagal karena penyimpanan tidak mencukupi.\n\nKosongkan sebagian ruang dan coba kembali.", - "status_failure_invalid_description": "Instalasi gagal karena aplikasi yang ditambal tidak valid.\n\nCopot pemasangan aplikasi dan coba lagi?", - "status_failure_incompatible_description": "Aplikasi tidak kompatibel dengan perangkat ini.\n\nGunakan APK sesuai jenis perangkat dan coba lagi.", - "status_failure_conflict_description": "Penginstalan dicegah oleh aplikasi yang sudah ada.\n\nCopot pemasangan aplikasi yang terpasang dan coba kembali?", - "status_failure_blocked_description": "Instalasi diblokir oleh ${packageName}.\n\nSesuaikan pengaturan keamanan anda dan coba kembali.", + "mount_version_mismatch_description": "Pemasangan gagal dikarenakan aplikasi yang dipasang merupakan versi yang berbeda dari aplikasi yang ditambal.\n\nPasang versi aplikasi yang Anda pasang dan coba lagi.", + "mount_no_root_description": "Pemasangan gagal karena akses root belum dizinkan.\n\nIzinkan akses root ke ReVanced Manager dan coba lagi.", + "mount_missing_installation_description": "Pemasangan gagal dikarenakan aplikasi yang belum ditambal tidak terpasang pada perangkat ini supaya dipasang di atasnya.\n\nPasang aplikasi yang belum ditambal sebelum memasang dan coba lagi.", + "status_failure_timeout_description": "Pemasangan memakan waktu terlalu lama untuk diselesaikan.\n\nApakah Anda ingin mencoba lagi?", + "status_failure_storage_description": "Pemasangan gagal karena ruang penyimpanan tidak cukup.\n\nKosongkan sebagian ruang dan coba lagi.", + "status_failure_invalid_description": "Pemasangan gagal karena aplikasi yang ditambal tidak sah.\n\nCopot pemasangan aplikasi dan coba lagi?", + "status_failure_incompatible_description": "Aplikasi tidak cocok dengan perangkat ini.\n\nGunakan APK yang didukung perangkat ini dan coba lagi.", + "status_failure_conflict_description": "Pemasangan dicegah oleh aplikasi yang sudah ada.\n\nCopot pemasangan aplikasi yang terpasang dan coba lagi?", + "status_failure_blocked_description": "Pemasangan diblokir oleh ${packageName}.\n\nSesuaikan pengaturan keamanan Anda dan coba lagi.", "install_failed_verification_failure_description": "Instalasi gagal karena masalah verifikasi.\n\nSesuaikan pengaturan keamanan anda dan coba kembali.", - "install_failed_version_downgrade_description": "Instalasi gagal karena aplikasi tambalan memiliki versi yang lebih rendah daripada aplikasi yang sudah ada.\n\nCopot pemasangan aplikasi dan coba kembali?", - "status_unknown_description": "Instalasi gagal karena alasan yang tidak diketahui. Silakan coba kembali." + "install_failed_version_downgrade_description": "Pemasangan gagal karena aplikasi tambalan memiliki versi yang lebih rendah daripada aplikasi yang sudah terpasang.\n\nCopot pemasangan aplikasi dan coba lagi?", + "status_unknown_description": "Pemasangan gagal karena alasan yang tidak diketahui. Silakan coba lagi." } } \ No newline at end of file diff --git a/assets/i18n/strings_is_IS.i18n.json b/assets/i18n/strings_is_IS.i18n.json old mode 100644 new mode 100755 index 04b86ef423..3b760b9a8e --- a/assets/i18n/strings_is_IS.i18n.json +++ b/assets/i18n/strings_is_IS.i18n.json @@ -51,7 +51,6 @@ "patcherView": { "widgetTitle": "Patcher", "patchButton": "Bót", - "removedPatchesWarningDialogText": "Eftirfarandi patches hafa verið fjarlægðir síðan þú notaðir þá síðast.\n\n${patches}\n\nHalda samt áfram?", "requiredOptionDialogText": "Það þarf að stilla nokkra patch valkosti." }, "appSelectorCard": { diff --git a/assets/i18n/strings_it_IT.i18n.json b/assets/i18n/strings_it_IT.i18n.json old mode 100644 new mode 100755 index 1b24b1569d..6fbb592093 --- a/assets/i18n/strings_it_IT.i18n.json +++ b/assets/i18n/strings_it_IT.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Patcher", "patchButton": "Patch", "incompatibleArchWarningDialogText": "La patch su questa architettura non è ancora supportata e potrebbe fallire. Continuare comunque?", - "removedPatchesWarningDialogText": "Le seguenti patch sono state rimosse dall'ultima volta che le hai usate.\n\n${patches}\n\nContinuare comunque?", + "removedPatchesWarningDialogText": "Le patch rimosse dall'ultima volta che hai patchato questa app:\n\n${patches}\n\n${newPatches}Continuare comunque?", + "addedPatchesDialogText": "Aggiunte patch dall'ultima volta che hai patchato questa app:\n\n${addedPatches}\n\n", "requiredOptionDialogText": "Alcune opzioni di patch devono essere impostate." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Lingua", "languageUpdated": "Lingua aggiornata", "sourcesLabel": "Sorgenti alternative", - "sourcesLabelHint": "Configura fonti alternative per ReVanced Patches e ReVanced Integrations", - "sourcesIntegrationsLabel": "Sorgente Integrazioni", + "sourcesLabelHint": "Configurare le fonti alternative per le patch avanzate", "useAlternativeSources": "Usa sorgenti alternative", - "useAlternativeSourcesHint": "Usa sorgenti alternative per ReVanced Patches e ReVanced Integrations invece delle API", + "useAlternativeSourcesHint": "Usa fonti alternative per le patch avanzate invece che per le API", "sourcesResetDialogTitle": "Reimposta", "sourcesResetDialogText": "Sei sicuro di voler reimpostare le sorgenti ai valori predefiniti?", "apiURLResetDialogText": "Sicuro di voler ripristinare l'URL API al valore predefinito?", - "sourcesUpdateNote": "Nota: Questo scaricherà automaticamente ReVanced Patches e ReVanced Integrations dalle sorgenti alternative.\n\nQuesto ti collegherà alla sorgente alternativa.", + "sourcesUpdateNote": "Nota: Questo scaricherà automaticamente le patch avanzate dalle fonti alternative.\n\nQuesto ti collegherà alla sorgente alternativa.", "apiURLLabel": "URL API", "apiURLHint": "Configura l'URL API di ReVanced Manager", "selectApiURL": "URL API", "orgPatchesLabel": "Organizzazione Patch", "sourcesPatchesLabel": "Sorgente Patch", - "orgIntegrationsLabel": "Organizzazione Integrazioni", "contributorsLabel": "Contributori", "contributorsHint": "Lista dei contributori di ReVanced", "logsLabel": "Condividi i log", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Elimina file temporanei", "deleteTempDirHint": "Elimina i file temporanei non utilizzati", "deletedTempDir": "File temporanei eliminati", + "exportSettingsLabel": "Esporta impostazioni", + "exportSettingsHint": "Esporta le impostazioni in un file JSON", + "exportedSettings": "Impostazioni esportate", + "importSettingsLabel": "Importa impostazioni", + "importSettingsHint": "Importa le impostazioni da un file JSON", + "importedSettings": "Impostazioni importate", "exportPatchesLabel": "Esporta selezione patch", "exportPatchesHint": "Esporta selezione patch in un file JSON", "exportedPatches": "Selezione patch esportata", diff --git a/assets/i18n/strings_ja_JP.i18n.json b/assets/i18n/strings_ja_JP.i18n.json old mode 100644 new mode 100755 index cad7ad0d5b..e86f000ab7 --- a/assets/i18n/strings_ja_JP.i18n.json +++ b/assets/i18n/strings_ja_JP.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "パッチャー", "patchButton": "パッチ", "incompatibleArchWarningDialogText": "このアーキテクチャへのパッチ適用はまだサポートされておらず、失敗する可能性があります。とにかく続けますか?", - "removedPatchesWarningDialogText": "以下のパッチはもう使用できません。\n\n${patches}\n\n続行しますか?", + "removedPatchesWarningDialogText": "最後にこのアプリにパッチを適用したときからパッチを削除しました:\n\n${patches}\n\n${newPatches}とにかく続けますか?", + "addedPatchesDialogText": "前回このアプリにパッチを適用した時以降のパッチを追加しました:\n\n${addedPatches}\n\n", "requiredOptionDialogText": "一部のパッチオプションを設定する必要があります。" }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "言語", "languageUpdated": "言語が更新されました", "sourcesLabel": "代替ソース", - "sourcesLabelHint": "ReVanded PatchesとReVanced Integrationsの代替ソースを設定", - "sourcesIntegrationsLabel": "Integrations のソース", + "sourcesLabelHint": "ReVanded Patches の代替ソースを構成する", "useAlternativeSources": "他のソースを使用", - "useAlternativeSourcesHint": "APIの代わりにReVanced PatchesとReVanced Integrationsの他のソースを使用する", + "useAlternativeSourcesHint": "APIの代わりにReVended Patchesの代替ソースを使用する", "sourcesResetDialogTitle": "リセット", "sourcesResetDialogText": "ソースをデフォルト値にリセットしてもよろしいですか?", "apiURLResetDialogText": "API の URL をデフォルト値にリセットしてもよろしいですか?", - "sourcesUpdateNote": "注: ReVanced PatchesとReVanced Integrationsを代替ソースから自動的にダウンロードします。\n\nこれにより、代替ソースとの通信が発生します。", + "sourcesUpdateNote": "注:ReVincedパッチは自動的に別のソースからダウンロードされます。\n\nこれにより、別のソースに接続されます。", "apiURLLabel": "API の URL", "apiURLHint": "ReVanced ManagerのAPIのURLを設定する", "selectApiURL": "API の URL", "orgPatchesLabel": "Patches の組織", "sourcesPatchesLabel": "Patches のソース", - "orgIntegrationsLabel": "Integrations の組織", "contributorsLabel": "貢献者", "contributorsHint": "ReVancedの貢献者一覧", "logsLabel": "ログを共有", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "一時ファイルを削除", "deleteTempDirHint": "未使用の一時ファイルを削除", "deletedTempDir": "一時ファイルを削除しました", + "exportSettingsLabel": "設定をエクスポート", + "exportSettingsHint": "設定を JSON ファイルにエクスポート", + "exportedSettings": "設定をエクスポートしました", + "importSettingsLabel": "設定をインポート", + "importSettingsHint": "JSONファイルから設定をインポート", + "importedSettings": "設定がインポートされました", "exportPatchesLabel": "パッチ選択をエクスポート", "exportPatchesHint": "パッチ選択を JSON ファイルにエクスポートします", "exportedPatches": "パッチ選択をエクスポートしました", diff --git a/assets/i18n/strings_ka_GE.i18n.json b/assets/i18n/strings_ka_GE.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_kk_KZ.i18n.json b/assets/i18n/strings_kk_KZ.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_km_KH.i18n.json b/assets/i18n/strings_km_KH.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_kn_IN.i18n.json b/assets/i18n/strings_kn_IN.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_ko_KR.i18n.json b/assets/i18n/strings_ko_KR.i18n.json old mode 100644 new mode 100755 index 22f46fbad2..e48229c9ab --- a/assets/i18n/strings_ko_KR.i18n.json +++ b/assets/i18n/strings_ko_KR.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Patcher", "patchButton": "패치하기", "incompatibleArchWarningDialogText": "이 아키텍처에 대한 패치는 아직 지원되지 않으므로 실패할 수 있습니다. 그래도 계속하시겠습니까?", - "removedPatchesWarningDialogText": "최근 적용된 패치들 중 다음 패치가 제거됩니다.\n\n${patches}\n\n그래도 계속하시겠습니까?", + "removedPatchesWarningDialogText": "이 앱을 마지막으로 패치한 이후 제거된 패치입니다:\n\n${patches}\n\n${newPatches}그래도 계속하시겠습니까?", + "addedPatchesDialogText": "이 앱을 마지막으로 패치한 이후 추가된 패치입니다:\n\n${addedPatches}", "requiredOptionDialogText": "일부 패치 옵션을 설정해야 합니다." }, "appSelectorCard": { @@ -84,7 +85,7 @@ "downloadToast": "다운로드 기능은 아직 사용할 수 없습니다", "requireSuggestedAppVersionDialogText": "선택한 앱 버전이 권장 앱 버전과 일치하지 않아서 예상되지 않은 문제점이 발생할 수 있습니다. 권장 앱 버전을 사용하세요.\n\n선택한 앱 버전: ${selected}\n권장 앱 버전: ${suggested}\n\n계속하려면 설정에서 '권장 앱 버전 요구'를 비활성화하세요.", "featureNotAvailable": "기능이 구현되지 않았습니다", - "featureNotAvailableText": "이 앱은 분할 APK이며 Root 권한으로 마운트해야만 안정적으로 패치 및 설치할 수 있습니다. 그러나 저장소에서 완전한 APK를 선택하여 패치 및 설치할 수 있습니다." + "featureNotAvailableText": "이 기기에서 추출할 수 있는 앱이 분할된 APK 파일이므로 Root 권한으로 마운트해야만 안정적으로 패치 및 설치할 수 있습니다. 그러나 Non-Root 사용자는 기기 저장소에서 '외부에서 다운로드한 완전한 APK 파일'을 선택하여 패치 및 설치할 수 있습니다." }, "patchesSelectorView": { "viewTitle": "패치 선택하기", @@ -157,20 +158,18 @@ "languageLabel": "앱 언어", "languageUpdated": "앱 언어를 변경하였습니다", "sourcesLabel": "대체 소스", - "sourcesLabelHint": "ReVanced Patches 및 ReVanced Integrations의 대체 소스를 설정할 수 있습니다", - "sourcesIntegrationsLabel": "Integrations 소스", + "sourcesLabelHint": "ReVanced Patches의 대체 소스를 설정할 수 있습니다", "useAlternativeSources": "대체 소스 사용", - "useAlternativeSourcesHint": "공식 소스가 아닌 ReVanced Patches 및 ReVanced Integrations의 대체 소스를 사용합니다", + "useAlternativeSourcesHint": "API를 대신하여 ReVanced Patches의 대체 소스를 사용합니다", "sourcesResetDialogTitle": "초기화", "sourcesResetDialogText": "정말 사용자 정의 소스를 기본값으로 초기화하시겠습니까?", "apiURLResetDialogText": "정말 API URL을 기본값으로 초기화하시겠습니까?", - "sourcesUpdateNote": "알림: 변경하면 대체 소스에서 ReVanced Patches 및 ReVanced Integrations이 자동으로 다운로드됩니다. \n\n그 이후에는 대체 소스로 연결됩니다.", + "sourcesUpdateNote": "알림: 변경하면 대체 소스에서 ReVanced Patches가 자동으로 다운로드됩니다.\n\n그 이후에는 대체 소스로 연결됩니다.", "apiURLLabel": "API URL", "apiURLHint": "ReVanced Manager의 API URL를 설정할 수 있습니다.", "selectApiURL": "API URL", "orgPatchesLabel": "Patches 구성", "sourcesPatchesLabel": "Patches 소스", - "orgIntegrationsLabel": "Integrations 구성", "contributorsLabel": "도움을 주신 분들", "contributorsHint": "ReVanced 개발에 도움을 주신 분들", "logsLabel": "로그 공유하기", @@ -186,7 +185,7 @@ "universalPatchesLabel": "공용 패치 보기", "universalPatchesHint": "기기에 설치된 모든 앱과 공용 패치를 표시합니다 (앱 목록이 느려질 수 있음)", "lastPatchedAppLabel": "패치된 앱 저장", - "lastPatchedAppHint": "나중에 설치하거나 내보낼 마지막으로 패치된 앱을 저장할 수 있습니다", + "lastPatchedAppHint": "마지막으로 패치된 앱을 저장하여 나중에 설치하거나 내보낼 수 있습니다", "versionCompatibilityCheckLabel": "버전 호환성 체크", "versionCompatibilityCheckHint": "선택한 앱 버전과 호환되지 않는 패치를 선택할 수 없습니다", "requireSuggestedAppVersionLabel": "권장 앱 버전 요구", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "임시 파일 제거", "deleteTempDirHint": "사용하지 않는 임시 파일을 제거합니다", "deletedTempDir": "임시 파일을 제거하였습니다", + "exportSettingsLabel": "설정 내보내기", + "exportSettingsHint": "설정을 JSON 파일로 내보낼 수 있습니다", + "exportedSettings": "설정을 내보냈습니다", + "importSettingsLabel": "설정 가져오기", + "importSettingsHint": "설정을 JSON 파일에서 가져올 수 있습니다", + "importedSettings": "설정을 가져왔습니다", "exportPatchesLabel": "패치 선택목록 내보내기", "exportPatchesHint": "패치 선택목록을 JSON 파일로 내보냅니다", "exportedPatches": "패치 선택목록을 내보냈습니다", diff --git a/assets/i18n/strings_ky_KG.i18n.json b/assets/i18n/strings_ky_KG.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_lo_LA.i18n.json b/assets/i18n/strings_lo_LA.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_lt_LT.i18n.json b/assets/i18n/strings_lt_LT.i18n.json old mode 100644 new mode 100755 index 37cc465396..d9da3ae62a --- a/assets/i18n/strings_lt_LT.i18n.json +++ b/assets/i18n/strings_lt_LT.i18n.json @@ -132,7 +132,6 @@ "dynamicThemeHint": "Mėgaukis patirtimi artimiau tavo įrenginiui", "languageLabel": "Kalba", "languageUpdated": "Kalba atnaujinta", - "sourcesIntegrationsLabel": "Integracijų šaltinis", "sourcesResetDialogTitle": "Nustatyti iš naujo", "sourcesResetDialogText": "Ar tikrai norite iš naujo nustatyti savo šaltinius į numatytąsias vertes?", "apiURLResetDialogText": "Ar tikrai norite iš naujo nustatyti savo API URL adresą į numatytąją vertę?", @@ -140,7 +139,6 @@ "selectApiURL": "API URL", "orgPatchesLabel": "Modifikacijų organizacija", "sourcesPatchesLabel": "Modifikacijų šaltinis", - "orgIntegrationsLabel": "Integracijų organizacija", "contributorsLabel": "Prisidėjusieji žmonės", "contributorsHint": "Žmonės prisidėję prie ReVanced", "logsLabel": "Dalytis įrašais", diff --git a/assets/i18n/strings_lv_LV.i18n.json b/assets/i18n/strings_lv_LV.i18n.json old mode 100644 new mode 100755 index 0217506aa8..bc38f8f26d --- a/assets/i18n/strings_lv_LV.i18n.json +++ b/assets/i18n/strings_lv_LV.i18n.json @@ -49,8 +49,7 @@ }, "patcherView": { "widgetTitle": "Pačeris", - "patchButton": "Pačot", - "removedPatchesWarningDialogText": "Kopš pēdējās lietošanas reizes ir noņemti šādi ielāpi.\n\n${patches}\n\nTurpināt jebkurā gadījumā?" + "patchButton": "Pačot" }, "appSelectorCard": { "widgetTitle": "Izvēlaties lietotni", @@ -115,13 +114,11 @@ "dynamicThemeLabel": "Materiāls izskats", "dynamicThemeHint": "Izbaudi pieredzi personalizētu tavai ierīcei", "languageLabel": "Valoda", - "sourcesIntegrationsLabel": "Integrācijas avots", "sourcesResetDialogTitle": "Atiestatīt", "apiURLLabel": "API Saite", "selectApiURL": "API Saite", "orgPatchesLabel": "Paču autori", "sourcesPatchesLabel": "Paču avots", - "orgIntegrationsLabel": "Integrāciju autori", "contributorsLabel": "Autori", "contributorsHint": "ReVanced ieguldītāji", "aboutLabel": "Par", diff --git a/assets/i18n/strings_mk_MK.i18n.json b/assets/i18n/strings_mk_MK.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_ml_IN.i18n.json b/assets/i18n/strings_ml_IN.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_mn_MN.i18n.json b/assets/i18n/strings_mn_MN.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_mr_IN.i18n.json b/assets/i18n/strings_mr_IN.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_ms_MY.i18n.json b/assets/i18n/strings_ms_MY.i18n.json old mode 100644 new mode 100755 index 5026ed30ea..04500bc59a --- a/assets/i18n/strings_ms_MY.i18n.json +++ b/assets/i18n/strings_ms_MY.i18n.json @@ -73,11 +73,9 @@ "exportSectionTitle": "Import & Eksport", "dynamicThemeHint": "Nikmati tema yang lebih serasi dengan anda", "languageLabel": "Bahasa", - "sourcesIntegrationsLabel": "Sumber Integrasi", "sourcesResetDialogTitle": "Set semula", "orgPatchesLabel": "Pengarang Modifikasi", "sourcesPatchesLabel": "Sumber Modifikasi", - "orgIntegrationsLabel": "Pengarang Integrasi", "contributorsLabel": "Penyumbang", "contributorsHint": "Senarai penyokong ReVanced", "aboutLabel": "Tentang", diff --git a/assets/i18n/strings_my_MM.i18n.json b/assets/i18n/strings_my_MM.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_nb_NO.i18n.json b/assets/i18n/strings_nb_NO.i18n.json old mode 100644 new mode 100755 index ada97aa93b..5650ba5533 --- a/assets/i18n/strings_nb_NO.i18n.json +++ b/assets/i18n/strings_nb_NO.i18n.json @@ -55,6 +55,8 @@ "widgetTitle": "Patcher", "patchButton": "Oppdatering", "incompatibleArchWarningDialogText": "Patching på denne arkitekturen er ennå ikke støttet og kan mislykkes. Fortsette likevel?", + "removedPatchesWarningDialogText": "Fjernede oppdateringer siden forrige gang du sendte denne appen:\n\n${patches}\n\n${newPatches}Fortsette likevel?", + "addedPatchesDialogText": "La til korrigeringer siden forrige gang du patchet denne appen:\n\n${addedPatches}\n\n", "requiredOptionDialogText": "Noen oppdateringsalternativer må angis." }, "appSelectorCard": { @@ -156,20 +158,18 @@ "languageLabel": "Språk", "languageUpdated": "Språk oppdatert", "sourcesLabel": "Alternative kilder", - "sourcesLabelHint": "Konfigurer alternative kilder for ReVanced Patches og ReVanced Integrations", - "sourcesIntegrationsLabel": "Integrasjoner kilde", + "sourcesLabelHint": "Konfigurer alternative kilder for ReVanced Patches", "useAlternativeSources": "Bruk alternative kilder", - "useAlternativeSourcesHint": "Bruk alternative kilder for ReVanced Patches and ReVanced Integrations i stedet for API", + "useAlternativeSourcesHint": "Bruk alternative kilder for ReVanced Patches i stedet for API", "sourcesResetDialogTitle": "Reset", "sourcesResetDialogText": "Er du sikker på at du vil tilbakestille kildene til standardverdiene?", "apiURLResetDialogText": "Er du sikker på at du vil nullstille API URL til standardverdien?", - "sourcesUpdateNote": "Merk: Dette vil automatisk laste ned ReVanced Patches og ReVanced Integrations fra de alternative kildene.\n\nDette vil koble deg til den alternative kilden.", + "sourcesUpdateNote": "Merk: Dette vil automatisk laste ned ReVanced Patches fra de alternative kildene.\n\nDette vil koble deg til den alternative kilden.", "apiURLLabel": "API URL", "apiURLHint": "Konfigurere API URL til ReVanced Manager", "selectApiURL": "API URL", "orgPatchesLabel": "Fikser organisasjon", "sourcesPatchesLabel": "Patches source", - "orgIntegrationsLabel": "Integrasjonsorganisasjon", "contributorsLabel": "Bidragsytere", "contributorsHint": "En liste over bidragsytere av ReVanced", "logsLabel": "Del logger", @@ -196,6 +196,12 @@ "deleteTempDirLabel": "Slett midlertidige filer", "deleteTempDirHint": "Slett ubrukte midlertidige filer", "deletedTempDir": "Midlertidige filer slettet", + "exportSettingsLabel": "Eksporter innstillingene", + "exportSettingsHint": "Eksporter innstillingene til en JSON-fil", + "exportedSettings": "Innstillinger eksportert", + "importSettingsLabel": "Importer innstillinger", + "importSettingsHint": "Importer innstillinger fra en JSON-fil", + "importedSettings": "Innstillinger importert", "exportPatchesLabel": "Eksport patch valg", "exportPatchesHint": "Eksporter patch valg til en JSON-fil", "exportedPatches": "Patch utvalg eksportert", diff --git a/assets/i18n/strings_ne_IN.i18n.json b/assets/i18n/strings_ne_IN.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_nl_NL.i18n.json b/assets/i18n/strings_nl_NL.i18n.json old mode 100644 new mode 100755 index 1f528ab402..c99f75d6dc --- a/assets/i18n/strings_nl_NL.i18n.json +++ b/assets/i18n/strings_nl_NL.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Patcher", "patchButton": "Patch", "incompatibleArchWarningDialogText": "Patchen op deze architectuur wordt nog niet ondersteund en zal mogelijk mislukken. Toch doorgaan?", - "removedPatchesWarningDialogText": "De volgende patches zijn verwijderd sinds de laatste keer dat je ze hebt gebruikt.\n\n${patches}\n\nToch doorgaan?", + "removedPatchesWarningDialogText": "Patch patches verwijderd sinds de laatste keer dat u deze app heeft aangepast:\n\n${patches}\n\n${newPatches}toch doorgaan?", + "addedPatchesDialogText": "Patch toegevoegd sinds de laatste keer dat u deze app heeft gepatenteerd:\n\n${addedPatches}\n\n", "requiredOptionDialogText": "Er moeten enkele patch-opties worden ingesteld." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Taal", "languageUpdated": "Taal bijgewerkt", "sourcesLabel": "Alternatieve bronnen", - "sourcesLabelHint": "Configureer de alternatieve bronnen voor ReVanced Patches en ReVanced Integrations", - "sourcesIntegrationsLabel": "Integratiebronnen", + "sourcesLabelHint": "De alternatieve bronnen voor verbeterde patches configureren", "useAlternativeSources": "Gebruik alternatieve bronnen", - "useAlternativeSourcesHint": "Gebruik alternatieve bronnen voor ReVanced Patches en ReVanced Integrations in plaats van de API", + "useAlternativeSourcesHint": "Gebruik alternatieve bronnen voor ReVanced Patches in plaats van de API", "sourcesResetDialogTitle": "Herstellen naar standaard", "sourcesResetDialogText": "Weet u zeker dat u uw bronnen op hun standaardwaarden wilt herstellen?", "apiURLResetDialogText": "Weet u zeker dat u uw API-URL wilt resetten naar de standaardwaarde?", - "sourcesUpdateNote": "Opmerking: Dit zal automatisch ReVanced Patches en Revanced Integrations uit de alternatieve bronnen downloaden.\n\nDit zal je verbinden met de alternatieve bron.", + "sourcesUpdateNote": "Opmerking: Dit zal automatisch ReVanceerde Patches uit de alternatieve bronnen downloaden.\n\nDit verbindt je met de alternatieve bron.", "apiURLLabel": "API URL", "apiURLHint": "Configureer de API URL van ReVanced Manager", "selectApiURL": "API URL", "orgPatchesLabel": "Beheer van patches", "sourcesPatchesLabel": "Bronnen voor patches", - "orgIntegrationsLabel": "Integraties organisatie", "contributorsLabel": "Bijdragers", "contributorsHint": "Een lijst met bijdragers van ReVanced", "logsLabel": "Deel logs", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Tijdelijke bestanden verwijderen", "deleteTempDirHint": "Ongebruikte tijdelijke bestanden verwijderen", "deletedTempDir": "Tijdelijke bestanden verwijderd", + "exportSettingsLabel": "Exporteer instellingen", + "exportSettingsHint": "Instellingen exporteren naar een JSON-bestand", + "exportedSettings": "Instellingen geëxporteerd", + "importSettingsLabel": "Instellingen importeren", + "importSettingsHint": "Instellingen importeren uit een JSON-bestand", + "importedSettings": "Instellingen geïmporteerd", "exportPatchesLabel": "Exporteer patch selectie", "exportPatchesHint": "Exporteer patch selectie naar een JSON bestand", "exportedPatches": "Patch selectie geëxporteerd", diff --git a/assets/i18n/strings_no_NO.i18n.json b/assets/i18n/strings_no_NO.i18n.json index 29b2051ef5..c4bccf30a5 100755 --- a/assets/i18n/strings_no_NO.i18n.json +++ b/assets/i18n/strings_no_NO.i18n.json @@ -58,11 +58,9 @@ "darkThemeLabel": "Mørk modus", "dynamicThemeHint": "Nyt en erfaring nærmere din enhet", "languageLabel": "Språk", - "sourcesIntegrationsLabel": "Integrasjoner kilde", "sourcesResetDialogTitle": "Tilbakestill", "orgPatchesLabel": "Patches organisasjon", "sourcesPatchesLabel": "Patches kilde", - "orgIntegrationsLabel": "Integrasjonsorganisasjon", "contributorsLabel": "Medvirkende", "contributorsHint": "En liste med bidragsytere til ReVanced" } diff --git a/assets/i18n/strings_or_IN.i18n.json b/assets/i18n/strings_or_IN.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_pa_IN.i18n.json b/assets/i18n/strings_pa_IN.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_pl_PL.i18n.json b/assets/i18n/strings_pl_PL.i18n.json old mode 100644 new mode 100755 index 44bf18093f..ee3c940565 --- a/assets/i18n/strings_pl_PL.i18n.json +++ b/assets/i18n/strings_pl_PL.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Program łatający", "patchButton": "Popraw", "incompatibleArchWarningDialogText": "Aktualizowanie na tej architekturze nie jest jeszcze obsługiwane i może się nie powieść. Czy chcesz kontynuować mimo to?", - "removedPatchesWarningDialogText": "Następujące łatki zostały usunięte od ostatniego użycia.\n\n${patches}\n\nKontynuować mimo to?", + "removedPatchesWarningDialogText": "Usunięto plastry od ostatniego wprowadzenia aplikacji:\n\n${patches}\n\n${newPatches}Kontynuować?", + "addedPatchesDialogText": "Dodano plastry od ostatniej aktualizacji aplikacji:\n\n${addedPatches}\n\n", "requiredOptionDialogText": "Niektóre opcje muszą być ustawione." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Język", "languageUpdated": "Zaktualizowano język", "sourcesLabel": "Alternatywne źródło", - "sourcesLabelHint": "Skonfiguruj alternatywne źródła dla Łatek ReVanced i Integracji ReVanced", - "sourcesIntegrationsLabel": "Źródło integracji", + "sourcesLabelHint": "Skonfiguruj alternatywne źródła dla ulepszonych patchów", "useAlternativeSources": "Używaj alternatywnych źródeł", - "useAlternativeSourcesHint": "Używaj alternatywnych źródeł dla Łatek ReVanced i Integracji ReVanced zamiast API", + "useAlternativeSourcesHint": "Użyj alternatywnych źródeł dla ulepszonych patchów zamiast API", "sourcesResetDialogTitle": "Zresetuj", "sourcesResetDialogText": "Czy na pewno chcesz przywrócić źródła niestandardowe do ich wartości domyślnych?", "apiURLResetDialogText": "Czy jesteś pewien, że chcesz przywrócić wszystkie adresy API do domyślnych wartości?", - "sourcesUpdateNote": "Uwaga: To automatycznie pobierze Łatki ReVanced i Integracje ReVanced z alternatywnych źródeł.\n\nTo połączy cię z alternatywnym źródłem.", + "sourcesUpdateNote": "Uwaga: Spowoduje to automatyczne pobranie ulepszonych Patchów z alternatywnych źródeł.\n\nTo połączy Cię z alternatywnym źródłem.", "apiURLLabel": "Adres API", "apiURLHint": "Skonfiguruj adres API Menedżera ReVanced", "selectApiURL": "Adres API", "orgPatchesLabel": "Organizacja łatek", "sourcesPatchesLabel": "Źródło łatek", - "orgIntegrationsLabel": "Organizacja integracji", "contributorsLabel": "Współtwórcy", "contributorsHint": "Lista współtwórców ReVanced", "logsLabel": "Udostępnij logi", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Usuń pliki tymczasowe", "deleteTempDirHint": "Usuń nieużywane pliki tymczasowe", "deletedTempDir": "Pliki tymczasowe zostały usunięte", + "exportSettingsLabel": "Eksportuj ustawienia", + "exportSettingsHint": "Eksportuj ustawienia do pliku JSON", + "exportedSettings": "Ustawienia wyeksportowane", + "importSettingsLabel": "Importuj ustawienia", + "importSettingsHint": "Importuj ustawienia z pliku JSON", + "importedSettings": "Ustawienia zaimportowane", "exportPatchesLabel": "Eksportuj wybór łatek", "exportPatchesHint": "Eksportuj wybór łatek do pliku JSON", "exportedPatches": "Wyeksportowano wybór łatek", diff --git a/assets/i18n/strings_pt_BR.i18n.json b/assets/i18n/strings_pt_BR.i18n.json old mode 100644 new mode 100755 index 214577e46a..07fd04dcdd --- a/assets/i18n/strings_pt_BR.i18n.json +++ b/assets/i18n/strings_pt_BR.i18n.json @@ -55,7 +55,6 @@ "widgetTitle": "Patcher", "patchButton": "Patch", "incompatibleArchWarningDialogText": "A aplicação de patches nesta arquitetura ainda não é suportada e pode falhar. Continuar mesmo assim?", - "removedPatchesWarningDialogText": "Os seguintes patches foram removidos desde a última vez que você os utilizou:\n\n${patches}\n\nContinuar mesmo assim?", "requiredOptionDialogText": "Algumas opções de patch tiveram que ser definidas." }, "appSelectorCard": { @@ -68,7 +67,7 @@ "patchSelectorCard": { "widgetTitle": "Selecionar patches", "widgetTitleSelected": "Patches selecionados", - "widgetSubtitle": "Selecione um aplicativo primeiro", + "widgetSubtitle": "Selecione um app primeiro", "widgetEmptySubtitle": "Nenhum patch selecionado" }, "socialMediaCard": { @@ -157,20 +156,15 @@ "languageLabel": "Idioma", "languageUpdated": "Idioma atualizado", "sourcesLabel": "Fontes alternativas", - "sourcesLabelHint": "Configure as fontes alternativas para Patches ReVanced e Integrações ReVanced", - "sourcesIntegrationsLabel": "Fonte das integrações", "useAlternativeSources": "Usar fontes alternativas", - "useAlternativeSourcesHint": "Use fontes alternativas para Patches ReVanced e Integrações ReVanced em vez da API", "sourcesResetDialogTitle": "Redefinir", "sourcesResetDialogText": "Você tem certeza que quer redefinir as fontes para o padrão?", "apiURLResetDialogText": "Tem certeza de que quer redefinir o URL da API para o padrão?", - "sourcesUpdateNote": "Nota: Isso irá baixar automaticamente os Patches ReVanced e as Integrações ReVanced de fontes alternativas.\n\nIsso irá conectá-lo à fonte alternativa.", "apiURLLabel": "URL da API", "apiURLHint": "Configure o URL da API do ReVanced Manager", "selectApiURL": "URL da API", "orgPatchesLabel": "Organização dos patches", "sourcesPatchesLabel": "Fonte dos patches", - "orgIntegrationsLabel": "Organização das integrações", "contributorsLabel": "Contribuidores", "contributorsHint": "Uma lista de contribuidores do ReVanced", "logsLabel": "Compartilhar logs", @@ -283,6 +277,7 @@ "status_failure_timeout_description": "A instalação levou muito tempo para terminar.\n\nGostaria de tentar novamente?", "status_failure_storage_description": "A instalação falhou devido ao armazenamento insuficiente.\n\nLibere algum espaço e tente novamente.", "status_failure_invalid_description": "A instalação falhou porque o app patcheado era inválido.\n\nDesinstalar o app e tentar de novo?", + "status_failure_incompatible_description": "O app é incompatível com este dispositivo.\n\nUse um APK que seja suportado por este dispositivo e tente de novo.", "status_failure_conflict_description": "A instalação foi impedida por uma instalação existente do app.\n\nDesinstalar o app instalado e tentar de novo?", "status_failure_blocked_description": "A instalação foi bloqueada por ${packageName}.\n\nAjuste suas configurações de segurança e tente novamente.", "install_failed_verification_failure_description": "A instalação falhou devido a um problema de verificação. U\n\nAjuste suas configurações de segurança e tente novamente.", diff --git a/assets/i18n/strings_pt_PT.i18n.json b/assets/i18n/strings_pt_PT.i18n.json old mode 100644 new mode 100755 index 06c87304ff..8d67e2a3d7 --- a/assets/i18n/strings_pt_PT.i18n.json +++ b/assets/i18n/strings_pt_PT.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Modificador", "patchButton": "Modificar", "incompatibleArchWarningDialogText": "Patrulhar nesta arquitetura ainda não é suportado e pode falhar. Continuar mesmo assim?", - "removedPatchesWarningDialogText": "As seguintes modificações foram removidas desde a última vez que as utilizaste.\n\n${patches}\n\nContinuar na mesma?", + "removedPatchesWarningDialogText": "Removido correções desde a última vez que você corrigiu este aplicativo:\n\n${patches}\n\n${newPatches}Continuar mesmo assim?", + "addedPatchesDialogText": "Adicionado patches desde a última vez que você corrigiu este aplicativo:\n\n${addedPatches}\n\n", "requiredOptionDialogText": "Algumas opções das Modificações precisam ser definidas." }, "appSelectorCard": { @@ -157,20 +158,17 @@ "languageLabel": "Idioma", "languageUpdated": "Idioma atualizado", "sourcesLabel": "Fontes alternativas", - "sourcesLabelHint": "Configurar as fontes alternativas para as Modificações ReVanced e Integrações ReVanced", - "sourcesIntegrationsLabel": "Fonte das Integrações", + "sourcesLabelHint": "Configure as fontes alternativas para Correções ReVanced", "useAlternativeSources": "Usar fontes alternativas", - "useAlternativeSourcesHint": "Usar fontes alternativas para as Modificações ReVanced e as Integrações ReVanced em vez da API", + "useAlternativeSourcesHint": "Usar fontes alternativas para correções redistribuídas em vez da API", "sourcesResetDialogTitle": "Repor", "sourcesResetDialogText": "Tens a certeza de que pretendes repor os valores predefinidos das fontes?", "apiURLResetDialogText": "Tens a certeza de que pretendes repor a URL da API para o seu valor predefinido?", - "sourcesUpdateNote": "Nota: Esta ação descarrega automaticamente as Modificações do ReVanced e as Integrações do ReVanced das fontes alternativas.\n\nIsto irá conectar-te com a fonte alternativa.", "apiURLLabel": "URL da API", "apiURLHint": "Configurar a URL da API do Gestor ReVanced", "selectApiURL": "URL da API", "orgPatchesLabel": "Organização de Modificações", "sourcesPatchesLabel": "Fonte das Modificações", - "orgIntegrationsLabel": "Organização de Integrações", "contributorsLabel": "Contribuidores", "contributorsHint": "Uma lista de contribuidores do ReVanced", "logsLabel": "Partilhar registos", @@ -198,6 +196,12 @@ "deleteTempDirLabel": "Apagar arquivos temporários", "deleteTempDirHint": "Apagar arquivos temporários não utilizados", "deletedTempDir": "Arquivos temporários apagados", + "exportSettingsLabel": "Exportar configurações", + "exportSettingsHint": "Exportar configurações para um arquivo JSON", + "exportedSettings": "Configurações exportadas", + "importSettingsLabel": "Importar configurações", + "importSettingsHint": "Importar configurações de um arquivo JSON", + "importedSettings": "Configurações importadas", "exportPatchesLabel": "Exportar a seleção de Modificações", "exportPatchesHint": "Exportar a seleção de Modificações para um ficheiro JSON", "exportedPatches": "Seleção de Modificações exportada", diff --git a/assets/i18n/strings_ro_RO.i18n.json b/assets/i18n/strings_ro_RO.i18n.json old mode 100644 new mode 100755 index a56c2ce0dd..d6b26d5fd0 --- a/assets/i18n/strings_ro_RO.i18n.json +++ b/assets/i18n/strings_ro_RO.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Patcher", "patchButton": "Patch", "incompatibleArchWarningDialogText": "Patcharea după această arhitectură nu este încă suportată și ar putea eșua. Continuați oricum?", - "removedPatchesWarningDialogText": "Următoarele patch-uri au fost eliminate de la ultima dată când le-ați folosit.\n\n${patches}\n\nContinuați oricum?", + "removedPatchesWarningDialogText": "Plasturii eliminați de la ultima dată când ați modificat această aplicație:\n\n${patches}\n\n${newPatches}Continuați oricum?", + "addedPatchesDialogText": "Plasturii adăugați de la ultima dată când ați modificat această aplicație:\n\n${addedPatches}\n\n", "requiredOptionDialogText": "Unele opțiuni pentru patch-uri trebuie setate." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Limbă", "languageUpdated": "Limbă actualizată", "sourcesLabel": "Surse alternative", - "sourcesLabelHint": "Configurați sursele alternative pentru patch-urile ReVanced și Integrările ReVanced", - "sourcesIntegrationsLabel": "Sursă integrări", + "sourcesLabelHint": "Configurați sursele alternative pentru patch-urile revanced", "useAlternativeSources": "Folosiți surse alternative", - "useAlternativeSourcesHint": "Utilizați surse alternative pentru patch-urile revanced și Integrările ReVanced în loc de API", + "useAlternativeSourcesHint": "Folosiți surse alternative pentru paturile revanced în loc de API", "sourcesResetDialogTitle": "Resetează", "sourcesResetDialogText": "Sunteți sigur că doriți să resetați sursele la valorile lor implicite?", "apiURLResetDialogText": "Sunteţi sigur că doriţi să resetaţi URL-ul API la valoarea sa implicită?", - "sourcesUpdateNote": "Notă: Acest lucru va descărca automat patch-urile ReVanced și Integrările ReVanced din sursele alternative.\n\nAceasta vă va conecta la sursa alternativă.", + "sourcesUpdateNote": "Notă: Aceasta va descărca automat plasturii ReVanced din sursele alternative.\n\nAceasta vă va conecta la sursa alternativă.", "apiURLLabel": "API URL", "apiURLHint": "Configurați URL-ul API al Managerului ReVanced", "selectApiURL": "API URL", "orgPatchesLabel": "Organizarea patch-urilor", "sourcesPatchesLabel": "Sursă patch-uri", - "orgIntegrationsLabel": "Organizare integrări", "contributorsLabel": "Contribuitori", "contributorsHint": "O listă cu contribuitorii ReVanced", "logsLabel": "Partajare jurnale", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Ștergeți fișierele temporare", "deleteTempDirHint": "Șterge fișierele temporare neutilizate", "deletedTempDir": "Fișierele temporare au fost șterse", + "exportSettingsLabel": "Exportă setările", + "exportSettingsHint": "Exportă setările într-un fișier JSON", + "exportedSettings": "Setări exportate", + "importSettingsLabel": "Importă setări", + "importSettingsHint": "Importă setările dintr-un fișier JSON", + "importedSettings": "Setări importate", "exportPatchesLabel": "Exportați selecția patch-urilor", "exportPatchesHint": "Exportați selecția patch-urilor într-un fișier JSON", "exportedPatches": "Selecția patch-urilor a fost exportată", diff --git a/assets/i18n/strings_ru_RU.i18n.json b/assets/i18n/strings_ru_RU.i18n.json old mode 100644 new mode 100755 index c02a75f89a..4793beda3b --- a/assets/i18n/strings_ru_RU.i18n.json +++ b/assets/i18n/strings_ru_RU.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Патчер", "patchButton": "Пропатчить", "incompatibleArchWarningDialogText": "Патчинг на этой архитектуре еще не поддерживается и может завершиться неудачей. Продолжить?", - "removedPatchesWarningDialogText": "Следующие патчи были удалены с момента их последнего использования.\n\n ${patches}\n\n Все равно продолжить?", + "removedPatchesWarningDialogText": "Удаленные патчи с момента последнего патчинга приложения:\n\n${patches}\n\n${newPatches}Все равно продолжить?", + "addedPatchesDialogText": "Добавленные патчи с момента последнего патчинга приложения:\n\n${addedPatches}\n\n", "requiredOptionDialogText": "Некоторые параметры патчей должны быть обязательно установлены." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Язык", "languageUpdated": "Язык обновлен", "sourcesLabel": "Альтернативные источники", - "sourcesLabelHint": "Настроить альтернативные источники для патчей и интеграций ReVanced", - "sourcesIntegrationsLabel": "Репозиторий интеграций", + "sourcesLabelHint": "Настроить альтернативные источники для ReVanced Patches", "useAlternativeSources": "Использовать альтернативные источники", - "useAlternativeSourcesHint": "Использовать альтернативные источники для патчей и интеграций ReVanced вместо API", + "useAlternativeSourcesHint": "Использовать альтернативные источники для ReVanced Patches вместо API", "sourcesResetDialogTitle": "Сброс", "sourcesResetDialogText": "Вы уверены, что хотите сбросить ваши источники до значений по умолчанию?", "apiURLResetDialogText": "Вы уверены, что хотите сбросить API-ссылку до значения по умолчанию?", - "sourcesUpdateNote": "Примечание: при этом будут автоматически загружены патчи и интеграции ReVanced из альтернативных источников.\n\nЭто соединит вас с альтернативным источником.", + "sourcesUpdateNote": "Примечание: Это автоматически загрузит ReVanced Patches из альтернативных источников.\n\nЭто соединит вас с альтернативным источником.", "apiURLLabel": "API-ссылка", "apiURLHint": "Настройте URL-адрес API ReVanced Менеджера", "selectApiURL": "API-ссылка", "orgPatchesLabel": "Организация патчей", "sourcesPatchesLabel": "Репозиторий патчей", - "orgIntegrationsLabel": "Организация интеграций", "contributorsLabel": "Соучастники проекта", "contributorsHint": "Список соучастников ReVanced", "logsLabel": "Поделиться логами", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Удалить временные файлы", "deleteTempDirHint": "Удалить неиспользуемые временные файлы", "deletedTempDir": "Временные файлы удалены", + "exportSettingsLabel": "Настройки экспорта", + "exportSettingsHint": "Экспорт настроек в JSON файл", + "exportedSettings": "Настройки экспортированы", + "importSettingsLabel": "Импорт настроек", + "importSettingsHint": "Импорт настроек из файла JSON", + "importedSettings": "Настройки импортированы", "exportPatchesLabel": "Экспорт выборки патчей", "exportPatchesHint": "Экспортировать выборку патчей в JSON файл", "exportedPatches": "Выборка патчей экспортирована", diff --git a/assets/i18n/strings_si_LK.i18n.json b/assets/i18n/strings_si_LK.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_sk_SK.i18n.json b/assets/i18n/strings_sk_SK.i18n.json old mode 100644 new mode 100755 index 162fae22e6..68a7f642e3 --- a/assets/i18n/strings_sk_SK.i18n.json +++ b/assets/i18n/strings_sk_SK.i18n.json @@ -111,13 +111,11 @@ "dynamicThemeLabel": "Material You", "dynamicThemeHint": "Užite si tému bližíe prispôsobenú vášmu zariadeniu", "languageLabel": "Jazyk", - "sourcesIntegrationsLabel": "Zdroj integrácie", "sourcesResetDialogTitle": "Resetovať", "apiURLLabel": "URL API", "selectApiURL": "URL API", "orgPatchesLabel": "Autor záplaty", "sourcesPatchesLabel": "Zdroj záplaty", - "orgIntegrationsLabel": "Autor integrácie", "contributorsLabel": "Prispievatelia", "contributorsHint": "Zoznam prispievateľov projektu ReVanced", "disablePatchesSelectionWarningText": "Chystáte sa zakázať zmenu výberu záplat. \nPredvolený výber záplat bude obnovený.\n\nZakázať aj napriek tomu?", diff --git a/assets/i18n/strings_sl_SI.i18n.json b/assets/i18n/strings_sl_SI.i18n.json old mode 100644 new mode 100755 index b3830054bd..bfc45970f7 --- a/assets/i18n/strings_sl_SI.i18n.json +++ b/assets/i18n/strings_sl_SI.i18n.json @@ -44,8 +44,7 @@ }, "patcherView": { "widgetTitle": "Popravljalnik", - "patchButton": "Popravi", - "removedPatchesWarningDialogText": "Spodnji popravki so bili odstranjeni, odkar ste jih nazadnje uporabili.\n\n${patches}\n\nVseeno nadaljujem?" + "patchButton": "Popravi" }, "appSelectorCard": { "widgetTitle": "Izberi aplikacijo", @@ -120,20 +119,15 @@ "languageLabel": "Jezik", "languageUpdated": "Jezik je posodobljen", "sourcesLabel": "Alternativni viri", - "sourcesLabelHint": "Nastavite alternativne vire za ReVanced Patches in ReVanced Integrations", - "sourcesIntegrationsLabel": "Vir integracij", "useAlternativeSources": "Uporabi alternativne vire", - "useAlternativeSourcesHint": "Namesto API-ja uporabi alternativne vire za ReVanced Patches in ReVanced Integrations", "sourcesResetDialogTitle": "Ponastavi", "sourcesResetDialogText": "Ali ste prepričani, da želite ponastaviti svoje vire na privzete vrednosti?", "apiURLResetDialogText": "Ali ste prepričani, da želite ponastaviti svojo povezavo do API-ja na privzeto vrednost?", - "sourcesUpdateNote": "Pozor: ReVanced Patches in ReVanced Integrations se bosta privzeto prenesla iz alternativnih virov.\n\nTa nastavitev bo vzpostavila povezavo na alternativni vir.", "apiURLLabel": "URL API-ja", "apiURLHint": "Nastavi naslov URL za API ReVanced Managerja", "selectApiURL": "URL API-ja", "orgPatchesLabel": "Organizacija popravkov", "sourcesPatchesLabel": "Vir popravkov", - "orgIntegrationsLabel": "Organizacija integracij", "contributorsLabel": "Sodelujoči", "contributorsHint": "Seznam sodelujočih pri projektu ReVanced", "logsLabel": "Deli dnevniške podatke", diff --git a/assets/i18n/strings_sq_AL.i18n.json b/assets/i18n/strings_sq_AL.i18n.json old mode 100644 new mode 100755 index b0421c3a88..e95b7dbdd4 --- a/assets/i18n/strings_sq_AL.i18n.json +++ b/assets/i18n/strings_sq_AL.i18n.json @@ -76,11 +76,9 @@ "dynamicThemeLabel": "Materiali Ti", "dynamicThemeHint": "Shijo një përvojë më të afërt me pajisjen tënde", "languageLabel": "Gjuha", - "sourcesIntegrationsLabel": "Burimi i integrimeve", "sourcesResetDialogTitle": "Rivendos", "orgPatchesLabel": "Organizimi i modifikimeve", "sourcesPatchesLabel": "Burimi i modifikuesëve", - "orgIntegrationsLabel": "Organizimi i integrimeve", "contributorsLabel": "Kontribuesit", "contributorsHint": "Lista e kontribuesve të ReVanced", "aboutLabel": "Rreth nesh", diff --git a/assets/i18n/strings_sr_CS.i18n.json b/assets/i18n/strings_sr_CS.i18n.json old mode 100644 new mode 100755 index 3abb273572..1b6acf101e --- a/assets/i18n/strings_sr_CS.i18n.json +++ b/assets/i18n/strings_sr_CS.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Pečer", "patchButton": "Pečuj", "incompatibleArchWarningDialogText": "Pečovanje na ovoj arhitekturi još uvek nije podržano i možda neće uspeti. Ipak nastaviti?", - "removedPatchesWarningDialogText": "Sledeći pečevi su uklonjeni od poslednjeg puta kada ste ih koristili.\n\n${patches}\n\nIpak nastaviti?", + "removedPatchesWarningDialogText": "Uklonjeni pečevi od poslednjeg puta kada ste pečovali ovu aplikaciju:\n\n${patches}\n\n${newPatches}Ipak nastaviti?", + "addedPatchesDialogText": "Dodati pečevi od poslednjeg puta kada ste pečovali ovu aplikaciju:\n\n${addedPatches}", "requiredOptionDialogText": "Neke opcije moraju biti izabrane." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Jezik", "languageUpdated": "Jezik je promenjen", "sourcesLabel": "Alternativni izvori", - "sourcesLabelHint": "Podesite alternativne izvore za ReVanced pečeve i integracije", - "sourcesIntegrationsLabel": "Izvor integracija", + "sourcesLabelHint": "Podesite alternativne izvore za ReVanced pečeve", "useAlternativeSources": "Koristi alternativne izvore", - "useAlternativeSourcesHint": "Koristite alternativne izvore za ReVanced pečeve i integracije umesto API-ja", + "useAlternativeSourcesHint": "Koristite alternativne izvore za ReVanced pečeve umesto API-ja", "sourcesResetDialogTitle": "Resetovanje", "sourcesResetDialogText": "Želite li zaista da vratite izvore na podrazumevane vrednosti?", "apiURLResetDialogText": "Želite li zaista da vratite URL API-ja na podrazumevanu vrednost?", - "sourcesUpdateNote": "Napomena: Ovo će automatski preuzeti ReVanced pečeve i integracije iz alternativnih izvora.\n\nBićete povezani sa alternativnim izvorom.", + "sourcesUpdateNote": "Napomena: Ovo će automatski preuzeti ReVanced pečeve iz alternativnih izvora.\n\nBićete povezani sa alternativnim izvorom.", "apiURLLabel": "URL API-ja", "apiURLHint": "Podesite URL API-ja za ReVanced Manager", "selectApiURL": "URL API-ja", "orgPatchesLabel": "Organizacija za pečeve", "sourcesPatchesLabel": "Izvor pečeva", - "orgIntegrationsLabel": "Organizacija za integracije", "contributorsLabel": "Saradnici", "contributorsHint": "Lista saradnika na ReVancedu", "logsLabel": "Deli evidencije", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Izbriši privremene fajlove", "deleteTempDirHint": "Izbrišite nekorišćene privremene fajlove", "deletedTempDir": "Privremeni fajlovi su izbrisani", + "exportSettingsLabel": "Izvezi podešavanja", + "exportSettingsHint": "Izvezite podešavanja u JSON fajl", + "exportedSettings": "Podešavanja su izvezena", + "importSettingsLabel": "Uvezi podešavanja", + "importSettingsHint": "Uvezite podešavanja iz JSON fajla", + "importedSettings": "Podešavanja su uvezena", "exportPatchesLabel": "Izvezi izbor pečeva", "exportPatchesHint": "Izvezite izbor pečeva u JSON fajl", "exportedPatches": "Izbor pečeva je izvezen", diff --git a/assets/i18n/strings_sr_SP.i18n.json b/assets/i18n/strings_sr_SP.i18n.json old mode 100644 new mode 100755 index 1e7f9c3e10..f6cbbe1571 --- a/assets/i18n/strings_sr_SP.i18n.json +++ b/assets/i18n/strings_sr_SP.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Печер", "patchButton": "Печуј", "incompatibleArchWarningDialogText": "Печовање на овој архитектури још увек није подржано и можда неће успети. Ипак наставити?", - "removedPatchesWarningDialogText": "Следећи печеви су уклоњени од последњег пута када сте их користили.\n\n${patches}\n\nИпак наставити?", + "removedPatchesWarningDialogText": "Уклоњени печеви од последњег пута када сте печовали ову апликацију:\n\n${patches}\n\n${newPatches}Ипак наставити?", + "addedPatchesDialogText": "Додати печеви од последњег пута када сте печовали ову апликацију:\n\n${addedPatches}", "requiredOptionDialogText": "Неке опције морају бити изабране." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Језик", "languageUpdated": "Језик је промењен", "sourcesLabel": "Алтернативни извори", - "sourcesLabelHint": "Подесите алтернативне изворе за ReVanced печеве и интеграције", - "sourcesIntegrationsLabel": "Извор интеграција", + "sourcesLabelHint": "Подесите алтернативне изворе за ReVanced печеве", "useAlternativeSources": "Користи алтернативне изворе", - "useAlternativeSourcesHint": "Користите алтернативне изворе за ReVanced печеве и интеграције уместо API-ја", + "useAlternativeSourcesHint": "Користите алтернативне изворе за ReVanced печеве уместо API-ја", "sourcesResetDialogTitle": "Ресетовање", "sourcesResetDialogText": "Желите ли заиста да вратите изворе на подразумеване вредности?", "apiURLResetDialogText": "Желите ли заиста да вратите URL API-ја на подразумевану вредност?", - "sourcesUpdateNote": "Напомена: Ово ће аутоматски преузети ReVanced печеве и интеграције из алтернативних извора.\n\nБићете повезани са алтернативним извором.", + "sourcesUpdateNote": "Напомена: Ово ће аутоматски преузети ReVanced печеве из алтернативних извора.\n\nБићете повезани са алтернативним извором.", "apiURLLabel": "URL API-ја", "apiURLHint": "Подесите URL API-ја за ReVanced Manager", "selectApiURL": "URL API-ја", "orgPatchesLabel": "Организација за печеве", "sourcesPatchesLabel": "Извор печева", - "orgIntegrationsLabel": "Организација за интеграције", "contributorsLabel": "Сарадници", "contributorsHint": "Листа сарадника на ReVanced-у", "logsLabel": "Дели евиденције", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Избриши привремене фајлове", "deleteTempDirHint": "Избришите некоришћене привремене фајлове", "deletedTempDir": "Привремени фајлови су избрисани", + "exportSettingsLabel": "Извези подешавања", + "exportSettingsHint": "Извезите подешавања у JSON фајл", + "exportedSettings": "Подешавања су извезена", + "importSettingsLabel": "Увези подешавања", + "importSettingsHint": "Увезите подешавања из JSON фајла", + "importedSettings": "Подешавања су увезена", "exportPatchesLabel": "Извези избор печева", "exportPatchesHint": "Извезите избор печева у JSON фајл", "exportedPatches": "Избор печева је извезен", diff --git a/assets/i18n/strings_sv_SE.i18n.json b/assets/i18n/strings_sv_SE.i18n.json old mode 100644 new mode 100755 index 68e6465a82..2c1e2b69fd --- a/assets/i18n/strings_sv_SE.i18n.json +++ b/assets/i18n/strings_sv_SE.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Patcher", "patchButton": "Patch", "incompatibleArchWarningDialogText": "Patchning av denna arkitektur stöds ännu inte och kan misslyckas. Fortsätt ändå?", - "removedPatchesWarningDialogText": "Följande patchar har tagits bort sedan du senast använde dem.\n\n${patches}\n\nFortsätt ändå?", + "removedPatchesWarningDialogText": "Tog bort patchar sedan du senast patchade denna app:\n\n${patches}\n\n${newPatches}Fortsätt ändå?", + "addedPatchesDialogText": "Lade till patchar sedan du senast patchade denna app:\n\n${addedPatches}\n\n", "requiredOptionDialogText": "Vissa patchalternativ måste anges." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Språk", "languageUpdated": "Språket uppdaterat", "sourcesLabel": "Alternativa källor", - "sourcesLabelHint": "Konfigurera alternativa källor för ReVanced patches och ReVanced integrations", - "sourcesIntegrationsLabel": "Källa för integrationer", + "sourcesLabelHint": "Konfigurera alternativa källor för ReVanced Patches", "useAlternativeSources": "Använd alternativa källor", - "useAlternativeSourcesHint": "Använd alternativa källor för ReVanced patches och ReVanced integrationer i stället för API", + "useAlternativeSourcesHint": "Använd alternativa källor för ReVanced Patches istället för API", "sourcesResetDialogTitle": "Återställ", "sourcesResetDialogText": "Är du säker på att du vill återställa dina källorna till deras standardvärden?", "apiURLResetDialogText": "Är du säker att du vill återställa API-webbadressen till standardvärdet?", - "sourcesUpdateNote": "Obs: Detta kommer automatiskt att ladda ner ReVanced patches och ReVanced integrationer från alternativa källor.\n\nDetta kommer att ansluta dig till den alternativa källan.", + "sourcesUpdateNote": "Obs: Detta kommer automatiskt att ladda ner ReVanced Patches från de alternativa källorna.\n\nDetta kommer att ansluta dig till den alternativa källan.", "apiURLLabel": "API-webbadress", "apiURLHint": "Konfigurera API-webbadressen för ReVanced-hanterare", "selectApiURL": "API-webbadress", "orgPatchesLabel": "Organisation för patchar", "sourcesPatchesLabel": "Källa för patchar", - "orgIntegrationsLabel": "Organisation för integrationer", "contributorsLabel": "Medverkande", "contributorsHint": "En lista över medverkare för ReVanced", "logsLabel": "Dela loggar", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Ta bort temporära filer", "deleteTempDirHint": "Ta bort oanvända temporära filer", "deletedTempDir": "Temporära filer borttagna", + "exportSettingsLabel": "Exportera inställningar", + "exportSettingsHint": "Exportera inställningar till en JSON-fil", + "exportedSettings": "Inställningar exporterade", + "importSettingsLabel": "Importera inställningar", + "importSettingsHint": "Importera inställningar från en JSON-fil", + "importedSettings": "Inställningar importerade", "exportPatchesLabel": "Exportera valda patchar", "exportPatchesHint": "Exportera valda patchar till en JSON-fil", "exportedPatches": "Valda patchar exporterade", diff --git a/assets/i18n/strings_sw_KE.i18n.json b/assets/i18n/strings_sw_KE.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_ta_IN.i18n.json b/assets/i18n/strings_ta_IN.i18n.json old mode 100644 new mode 100755 index 9836ccff06..b7de32f772 --- a/assets/i18n/strings_ta_IN.i18n.json +++ b/assets/i18n/strings_ta_IN.i18n.json @@ -55,7 +55,6 @@ "widgetTitle": "இணைப்பான்", "patchButton": "இணைப்பு", "incompatibleArchWarningDialogText": "இந்தக் கட்டமைப்பில் பிறழுதல் இன்னும் ஆதரிக்கப்படவில்லை மற்றும் தோல்வியடையக்கூடும். எப்படியும் தொடரவா?", - "removedPatchesWarningDialogText": "நீங்கள் கடைசியாகப் பயன்படுத்தியதிலிருந்து பின்வரும் பிறழ்கள் அகற்றப்பட்டன\n\n${patches}\n\nஎப்படியும் தொடரவா?", "requiredOptionDialogText": "சில பிறழ்களுக்கு விருப்பங்களை அமைக்க வேண்டும்." }, "appSelectorCard": { @@ -136,11 +135,9 @@ "dynamicThemeLabel": "Material You", "dynamicThemeHint": "உங்கள் கருவிக்கு நெருக்கமான அனுபவத்தை அனுபவிக்கவும்", "languageLabel": "மொழி", - "sourcesIntegrationsLabel": "ஒருங்கிணைப்புகளின் மூலம்", "sourcesResetDialogTitle": "மறுஅமை", "orgPatchesLabel": "இணைப்புகளின் அமைப்பு", "sourcesPatchesLabel": "இணைப்புகளின் மூலம்", - "orgIntegrationsLabel": "ஒருங்கிணைப்புகளின் அமைப்பு", "contributorsLabel": "பங்களிப்பாளர்கள்", "contributorsHint": "ReVancedற்குப் பங்களித்தோர் பட்டியல்", "aboutLabel": "இதைப் பற்றி", diff --git a/assets/i18n/strings_te_IN.i18n.json b/assets/i18n/strings_te_IN.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_th_TH.i18n.json b/assets/i18n/strings_th_TH.i18n.json old mode 100644 new mode 100755 index 53c50bbc1e..ba02e8be78 --- a/assets/i18n/strings_th_TH.i18n.json +++ b/assets/i18n/strings_th_TH.i18n.json @@ -4,7 +4,7 @@ "dismissButton": "ปิด", "quitButton": "ออก", "updateButton": "อัปเดต", - "suggested": "แนะนำ ${version}", + "suggested": "แนะนำ: ${version}", "yesButton": "ใช่", "noButton": "ไม่", "warning": "คำเตือน", @@ -103,13 +103,11 @@ "dynamicThemeHint": "เพลิดเพลินกับประสบการณ์ที่ใกล้ชิดกับอุปกรณ์ของคุณมากขึ้น", "languageLabel": "ภาษา", "languageUpdated": "อัพเดตภาษาแล้ว", - "sourcesIntegrationsLabel": "ที่มาของส่วนเสริม", "sourcesResetDialogTitle": "รีเซ็ต", "apiURLLabel": "ลิงค์ของ API", "selectApiURL": "ลิงค์ของ API", "orgPatchesLabel": "ผู้ดูแลการดัดแปลง", "sourcesPatchesLabel": "ที่มาของการดัดแปลง", - "orgIntegrationsLabel": "ผู้ดูแลส่วนเสริม", "contributorsLabel": "ผู้ช่วยเหลือโปรเจกต์", "contributorsHint": "รายชื่อผู้ที่ช่วยเหลือกับโปรเจ็กต์ ReVanced", "aboutLabel": "เกี่ยวกับ", @@ -119,6 +117,8 @@ "deleteTempDirHint": "ลบไฟล์ชั่วคราวที่ไม่ได้ใช้งาน", "deletedTempDir": "ลบไฟล์ชั่วคราวแล้ว", "deletedLogs": "ลบบันทึกแล้ว", + "regenerateKeystoreLabel": "สร้าง Keystore ใหม่", + "regenerateKeystoreDialogTitle": "สร้าง Keystore ใหม่", "exportKeystoreLabel": "ส่งออก keystore", "exportedKeystore": "ส่งออก keystore แล้ว", "noKeystoreExportFileFound": "ไม่มี keystore ให้ส่งออก", @@ -132,6 +132,8 @@ "openButton": "เปิด", "installButton": "ติดตั้ง", "uninstallButton": "ถอนการติดตั้ง", + "exportButton": "ส่งออก", + "deleteButton": "ลบ", "rootDialogTitle": "ข้อผิดพลาด", "rootDialogText": "แอปได้รับการติดตั้งด้วยสิทธิ์ผู้ใช้ขั้นสูงแต่ ReVanced Manager ปัจจุบันยังไม่ได้รับสิทธิ์\nโปรดอนุญาตสิทธิ์ผู้ใช้ขั้นสูงก่อน", "packageNameLabel": "ชื่อแพ็กเกจ", diff --git a/assets/i18n/strings_tl_PH.i18n.json b/assets/i18n/strings_tl_PH.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_tr_TR.i18n.json b/assets/i18n/strings_tr_TR.i18n.json old mode 100644 new mode 100755 index f0211fdadf..b5e6c145d9 --- a/assets/i18n/strings_tr_TR.i18n.json +++ b/assets/i18n/strings_tr_TR.i18n.json @@ -55,7 +55,8 @@ "widgetTitle": "Yamalayıcı", "patchButton": "Yamala", "incompatibleArchWarningDialogText": "Bu mimari cihazlarda yamalama henüz desteklenmiyor ve başarısız olabilir. Yine de devam edilsin mi?", - "removedPatchesWarningDialogText": "Aşağıdaki yamalar son kullanımınızdan sonra kaldırıldı.\n\n${patches}\n\nYine de devam edilsin mi?", + "removedPatchesWarningDialogText": "Bu uygulamayı son yamaladığınızdan beri kaldırılan yamalar:\n\n${patches}\n\n${newPatches}Yine de devam edilsin mi?", + "addedPatchesDialogText": "Bu uygulamayı son yamaladığınızdan beri eklenen yamalar:\n\n${addedPatches}", "requiredOptionDialogText": "Bazı yama seçeneklerinin ayarlanması gerekiyor." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Dil", "languageUpdated": "Dil güncellendi", "sourcesLabel": "Alternatif kaynaklar", - "sourcesLabelHint": "ReVanced Patches ve ReVanced Integrations için alternatif kaynakları ayarlayın", - "sourcesIntegrationsLabel": "Integrations source", + "sourcesLabelHint": "ReVanced Yamaları için alternatif kaynakları yapılandırın", "useAlternativeSources": "Alternatif kaynakları kullan", - "useAlternativeSourcesHint": "ReVanced Patches ve ReVanced Integrations için API yerine alternatif kaynakları kullanın", + "useAlternativeSourcesHint": "ReVanced Yamaları için API yerine alternatif kaynakları kullanın", "sourcesResetDialogTitle": "Sıfırla", "sourcesResetDialogText": "Kaynaklarınızı varsayılan değerlerine sıfırlamak istediğinizden emin misiniz?", "apiURLResetDialogText": "API URL'nizi varsayılan değerine sıfırlamak istediğinizden emin misiniz?", - "sourcesUpdateNote": "Not: Bu, ReVanced Patches'ı ve ReVanced Integrations'ı otomatik olarak alternatif kaynaklardan indirecektir.\n\nBu sizi alternatif kaynağa bağlayacaktır.", + "sourcesUpdateNote": "Not: Bu, ReVanced Yamalarını otomatik olarak alternatif kaynaklardan indirecektir.\n\nBu sizi alternatif kaynağa bağlayacaktır.", "apiURLLabel": "API URL'si", "apiURLHint": "ReVanced Manager'in API URL'sini ayarlayın", "selectApiURL": "API URL'si", "orgPatchesLabel": "Patches organization", "sourcesPatchesLabel": "Patches source", - "orgIntegrationsLabel": "Integrations organization", "contributorsLabel": "Katkıda bulunanlar", "contributorsHint": "ReVanced'a katkıda bulunanların listesi", "logsLabel": "Logları paylaş", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Geçici dosyaları sil", "deleteTempDirHint": "Kullanılmayan geçici dosyaları silin", "deletedTempDir": "Geçici dosyalar silindi", + "exportSettingsLabel": "Ayarları dışa aktar", + "exportSettingsHint": "Ayarları JSON dosyasına aktar", + "exportedSettings": "Ayarlar dışa aktarıldı", + "importSettingsLabel": "Ayarları içe aktar", + "importSettingsHint": "Ayarları JSON dosyasından içe aktar", + "importedSettings": "Ayarlar içe aktarıldı", "exportPatchesLabel": "Yama seçimini dışa aktar", "exportPatchesHint": "Yama seçimini bir JSON dosyasına kaydedin", "exportedPatches": "Yama seçimi dışa aktarıldı", diff --git a/assets/i18n/strings_uk_UA.i18n.json b/assets/i18n/strings_uk_UA.i18n.json old mode 100644 new mode 100755 index 8d54bcb44b..3906dbd2ce --- a/assets/i18n/strings_uk_UA.i18n.json +++ b/assets/i18n/strings_uk_UA.i18n.json @@ -54,8 +54,9 @@ "patcherView": { "widgetTitle": "Патчер", "patchButton": "Патчити", - "incompatibleArchWarningDialogText": "Патчінг на цій архітектурі ще не підтримується і може не спрацювати. Продовжити в будь-якому випадку?", - "removedPatchesWarningDialogText": "Наступні патчі було видалено з моменту останнього використання.\n\n${patches}\n\nВсе одно продовжити?", + "incompatibleArchWarningDialogText": "Патчінг на цій архітектурі ще не підтримується і може не спрацювати. Все одно продовжити?", + "removedPatchesWarningDialogText": "Видалені патчі з моменту останнього патчінгу цього застосунку:\n\n${patches}\n\n${newPatches}Все одно продовжити?", + "addedPatchesDialogText": "Додані патчі з моменту останнього патчінгу цього застосунку:\n\n${addedPatches}", "requiredOptionDialogText": "Потрібно встановити деякі параметри патчу." }, "appSelectorCard": { @@ -157,20 +158,18 @@ "languageLabel": "Мова", "languageUpdated": "Мову застосунку оновлено", "sourcesLabel": "Альтернативні джерела", - "sourcesLabelHint": "Налаштувати альтернативні джерела для ReVanced Patches та ReVanced Integrations", - "sourcesIntegrationsLabel": "Integrations source", + "sourcesLabelHint": "Налаштувати альтернативні джерела для ReVanced Patches", "useAlternativeSources": "Використовувати альтернативні джерела", - "useAlternativeSourcesHint": "Використовувати альтернативні джерела для ReVanced Patches та ReVanced Integrations замість API", + "useAlternativeSourcesHint": "Використовувати альтернативні джерела для ReVanced Patches замість API", "sourcesResetDialogTitle": "Скинути", "sourcesResetDialogText": "Ви дійсно бажаєте відновити стандартні значення джерел?", "apiURLResetDialogText": "Ви дійсно бажаєте відновити API URL до стандартного значення?", - "sourcesUpdateNote": "Примітка. Це автоматично завантажить ReVanced Patches і ReVanced Integrations з альтернативних джерел.\n\nЦе під'єднає Вас до альтернативного джерела.", + "sourcesUpdateNote": "Примітка: Це автоматично завантажить ReVanced Patches з альтернативних джерел.\n\nЦе під'єднає Вас до альтернативного джерела.", "apiURLLabel": "URL-адреса API", "apiURLHint": "Налаштувати API URL для ReVanced Manager", "selectApiURL": "URL-адреса API", "orgPatchesLabel": "Patches organization", "sourcesPatchesLabel": "Patches source", - "orgIntegrationsLabel": "Integrations organization", "contributorsLabel": "Розробники", "contributorsHint": "Список розробників ReVanced", "logsLabel": "Поділитися журналами", @@ -198,6 +197,12 @@ "deleteTempDirLabel": "Видалити тимчасові файли", "deleteTempDirHint": "Видалити невикористані тимчасові файли", "deletedTempDir": "Тимчасові файли видалено", + "exportSettingsLabel": "Експортувати налаштування", + "exportSettingsHint": "Експортувати налаштування у файл JSON", + "exportedSettings": "Налаштування експортовано", + "importSettingsLabel": "Імпортувати налаштування", + "importSettingsHint": "Імпортувати налаштування з файлу JSON", + "importedSettings": "Налаштування імпортовано", "exportPatchesLabel": "Експортувати вибір патчів", "exportPatchesHint": "Експортувати вибір патчів у файл JSON", "exportedPatches": "Вибір патчів експортовано", diff --git a/assets/i18n/strings_ur_IN.i18n.json b/assets/i18n/strings_ur_IN.i18n.json old mode 100644 new mode 100755 diff --git a/assets/i18n/strings_uz_UZ.i18n.json b/assets/i18n/strings_uz_UZ.i18n.json old mode 100644 new mode 100755 index cf76f368f9..81e736f2c9 --- a/assets/i18n/strings_uz_UZ.i18n.json +++ b/assets/i18n/strings_uz_UZ.i18n.json @@ -68,12 +68,10 @@ "settingsView": { "widgetTitle": "Sozlamalar", "exportSectionTitle": "Import & eksport", - "sourcesIntegrationsLabel": "Integratsiyani manbai", "sourcesResetDialogTitle": "Oddiy holga qaytarish", "apiURLLabel": "API URL", "selectApiURL": "API URL", "sourcesPatchesLabel": "Patchlarni manbai", - "orgIntegrationsLabel": "Integratsiyani tashkiloti", "contributorsLabel": "Yordamchilar", "contributorsHint": "ReVanced yordamchilani royxati", "aboutLabel": "Haqida", diff --git a/assets/i18n/strings_vi_VN.i18n.json b/assets/i18n/strings_vi_VN.i18n.json old mode 100644 new mode 100755 index a641e013cf..b622a50814 --- a/assets/i18n/strings_vi_VN.i18n.json +++ b/assets/i18n/strings_vi_VN.i18n.json @@ -55,7 +55,6 @@ "widgetTitle": "Trình vá", "patchButton": "Vá", "incompatibleArchWarningDialogText": "Việc vá ứng dụng trên kiến ​​trúc này hiện chưa được hỗ trợ và có thể thất bại. Bạn vẫn muốn tiếp tục?", - "removedPatchesWarningDialogText": "Những bản vá sau đây đã bị loại bỏ từ lần cuối bạn dùng chúng.\n\n${patches}\n\nVẫn tiếp tục?", "requiredOptionDialogText": "Một số tùy chọn bản vá cần được thiết đặt." }, "appSelectorCard": { @@ -157,20 +156,15 @@ "languageLabel": "Ngôn ngữ", "languageUpdated": "Ngôn ngữ đã cập nhập", "sourcesLabel": "Nguồn thay thế", - "sourcesLabelHint": "Cấu hình nguồn thay thế cho Bản vá ReVanced và Tích hợp ReVanced", - "sourcesIntegrationsLabel": "Nguồn tích hợp", "useAlternativeSources": "Dùng nguồn thay thế", - "useAlternativeSourcesHint": "Dùng nguồn thay thế cho Bản vá ReVanced và Tích hợp ReVanced thay cho API", "sourcesResetDialogTitle": "Đặt lại", "sourcesResetDialogText": "Bạn có chắc chắn muốn đặt lại nguồn của mình về giá trị mặc định không?", "apiURLResetDialogText": "Bạn có chắc bạn muốn đặt lại API URL của bạn về giá trị mặc định của nó không?", - "sourcesUpdateNote": "Lưu ý: Việc này sẽ tự động tải Bản vá ReVanced và Tích hợp ReVanced từ nguồn thay thế.", "apiURLLabel": "Địa chỉ URL của API", "apiURLHint": "Cấu hình địa chỉ URL API của ReVanced Manager", "selectApiURL": "Địa chỉ URL của API", "orgPatchesLabel": "Tác giả bản vá", "sourcesPatchesLabel": "Nguồn bản vá", - "orgIntegrationsLabel": "Tác giá bản tích hợp", "contributorsLabel": "Những người đóng góp", "contributorsHint": "Danh sách những người đóng góp cho ReVanced", "logsLabel": "Chia sẻ nhật ký", @@ -283,6 +277,7 @@ "status_failure_timeout_description": "Việc cài đặt mất quá lâu để hoàn thành.\n\nBạn có muốn thử lại?", "status_failure_storage_description": "Việc cài đặt đã thất bại do không đủ bộ nhớ.\n\nGiải phóng một phần bộ nhớ và thử lại.", "status_failure_invalid_description": "Việc cài đặt đã thất bại do ứng dụng đã vá không hợp lệ.\n\nGỡ cài đặt ứng dụng và thử lại?", + "status_failure_incompatible_description": "Ứng dụng không tương thích với thiết bị này.\n\nDùng một APK được hỗ trợ bởi thiết bị và thử lại.", "status_failure_conflict_description": "Việc cài đặt đã bị ngăn chặn bởi bản cài đã có của ứng dụng.\n\nGỡ cài đặt ứng dụng đã cài và thử lại?", "status_failure_blocked_description": "Việc cài đặt đã đã bị chặn bởi ${packageName}.\n\nĐiều chỉnh thiết lập bảo mật của bạn và thử lại.", "install_failed_verification_failure_description": "Việc cài đặt đã thất bại do phát sinh xác minh.\n\nĐiều chỉnh thiết lập bảo mật của bạn và thử lại.", diff --git a/assets/i18n/strings_zh_CN.i18n.json b/assets/i18n/strings_zh_CN.i18n.json old mode 100644 new mode 100755 index 17a3e98ce6..7115dc6ae7 --- a/assets/i18n/strings_zh_CN.i18n.json +++ b/assets/i18n/strings_zh_CN.i18n.json @@ -55,7 +55,6 @@ "widgetTitle": "修补器", "patchButton": "修补", "incompatibleArchWarningDialogText": "对此架构的修补尚不支持或可能失败。仍要继续吗?", - "removedPatchesWarningDialogText": "自您上次使用以下补丁以来,它们已被删除。\n\n${patches}\n\n还是继续吗?", "requiredOptionDialogText": "某些补丁选项必须设置。" }, "appSelectorCard": { @@ -157,20 +156,18 @@ "languageLabel": "语言", "languageUpdated": "语言已更新", "sourcesLabel": "其他来源", - "sourcesLabelHint": "配置 ReVanced 补丁和 ReVanced 集成的替代源", - "sourcesIntegrationsLabel": "集成源", + "sourcesLabelHint": "配置替代补丁来源", "useAlternativeSources": "使用其他来源", - "useAlternativeSourcesHint": "使用 ReVanced 补丁和 ReVanced 集成的替代来源而不是 API", + "useAlternativeSourcesHint": "使用 ReVic Patches 替代API 的其他来源", "sourcesResetDialogTitle": "重置", "sourcesResetDialogText": "您确定要将源重置为默认值吗?", "apiURLResetDialogText": "您确定要重置你的 API URL 为默认值吗?", - "sourcesUpdateNote": "注意:这将自动从其他来源下载 ReVanced 补丁和 ReVanced 集成。\n\n这将连接到替代源。", + "sourcesUpdateNote": "注意:这将自动从备选来源下载ReVanced 补丁。\n\n这将连接到您的备用源。", "apiURLLabel": "API 地址", "apiURLHint": "配置 ReVanced Manager 的 API URL", "selectApiURL": "API 地址", "orgPatchesLabel": "补丁组织", "sourcesPatchesLabel": "补丁来源", - "orgIntegrationsLabel": "集成组织", "contributorsLabel": "贡献者", "contributorsHint": "ReVanced 贡献者列表", "logsLabel": "分享日志", @@ -198,6 +195,12 @@ "deleteTempDirLabel": "删除临时文件", "deleteTempDirHint": "删除未使用的临时文件", "deletedTempDir": "已删除临时文件", + "exportSettingsLabel": "导出设置", + "exportSettingsHint": "导出设置到 JSON 文件", + "exportedSettings": "设置已导出", + "importSettingsLabel": "导入设置", + "importSettingsHint": "从 JSON 文件导入设置", + "importedSettings": "已导入设置", "exportPatchesLabel": "导出选择的补丁", "exportPatchesHint": "将选择的补丁导出到 JSON 文件", "exportedPatches": "导出选择的修补程序", diff --git a/assets/i18n/strings_zh_HK.i18n.json b/assets/i18n/strings_zh_HK.i18n.json old mode 100644 new mode 100755 index 0ec1a3c13b..eb669dd5b5 --- a/assets/i18n/strings_zh_HK.i18n.json +++ b/assets/i18n/strings_zh_HK.i18n.json @@ -90,7 +90,6 @@ "noSavedPatches": "冇保存咗嘅補丁選擇俾呢個應用。\n撳\"完成\"嚟保存當前嘅選擇。", "noPatchesFound": "冇補丁俾呢個揀咗嘅應用。" }, - "patchOptionsView": {}, "patchItem": { "unsupportedDialogText": "揀咗哩種修改可能會導致修改錯誤\n\nApp 版本: ${packageVersion}\n現時支援嘅版本: \n${supportedVersions}" }, @@ -111,7 +110,6 @@ "dynamicThemeLabel": "Material You", "dynamicThemeHint": "享受一個更貼近你裝置嘅體驗", "languageLabel": "語言", - "sourcesIntegrationsLabel": "項目整合來源", "sourcesResetDialogTitle": "重設", "sourcesResetDialogText": "真喺要重新設定你嘅來源返去預設值?", "apiURLResetDialogText": "真喺要重新設定 API URL 返去預設值?", @@ -119,7 +117,6 @@ "selectApiURL": "API 网址", "orgPatchesLabel": "修補檔組織", "sourcesPatchesLabel": "修補檔來源", - "orgIntegrationsLabel": "項目整合組織", "contributorsLabel": "貢獻者", "contributorsHint": "ReVanced 貢獻者列表", "logsLabel": "分享記錄檔", @@ -155,6 +152,5 @@ }, "contributorsView": { "widgetTitle": "貢獻者" - }, - "installErrorDialog": {} + } } \ No newline at end of file diff --git a/assets/i18n/strings_zh_TW.i18n.json b/assets/i18n/strings_zh_TW.i18n.json old mode 100644 new mode 100755 index e488a934d6..9d72f093cf --- a/assets/i18n/strings_zh_TW.i18n.json +++ b/assets/i18n/strings_zh_TW.i18n.json @@ -2,9 +2,9 @@ "okButton": "確認", "cancelButton": "取消", "dismissButton": "忽略", - "quitButton": "退出", + "quitButton": "離開", "updateButton": "更新", - "suggested": "建議的版本: ${version}", + "suggested": "建議版本:${version}", "yesButton": "是", "noButton": "否", "warning": "警告", @@ -31,11 +31,11 @@ "installUpdate": "繼續安裝此更新嗎?", "updateSheetTitle": "更新 ReVanced Manager", "updateDialogTitle": "有可用的更新", - "updatePatchesSheetTitle": "更新 ReVanced 補丁", + "updatePatchesSheetTitle": "更新 ReVanced 的修補檔", "updateChangelogTitle": "更新日誌", - "updateDialogText": "${file} 有新的更新可用。\n\n當前安裝的版本是 ${version}。", - "downloadConsentDialogTitle": "要下載必要檔案嗎?", - "downloadConsentDialogText": "ReVanced Manager 需要下載必要檔案才能正常運作。", + "updateDialogText": "${file} 有新的更新可用。\n\n目前安裝的版本是 ${version}。", + "downloadConsentDialogTitle": "需要下載必要檔案嗎?", + "downloadConsentDialogText": "ReVanced Manager 需要下載必要檔案才能正常執行。", "downloadConsentDialogText2": "這將帶您前往至 ${url}。", "downloadingMessage": "正在下載更新...", "downloadedMessage": "已下載更新", @@ -55,73 +55,74 @@ "widgetTitle": "修補工具", "patchButton": "補丁", "incompatibleArchWarningDialogText": "此架構尚未支援修補,可能會失敗。仍要繼續嗎?", - "removedPatchesWarningDialogText": "自從您上次使用以來,以下補丁已遭移除。\n\n${patches} \n\n仍要繼續執行嗎?", - "requiredOptionDialogText": "某些補丁需要進一步設定。" + "removedPatchesWarningDialogText": "自您上次修補此應用程式以來移除的修補程式:\n\n${patches}\n\n${newPatches}仍要繼續嗎?", + "addedPatchesDialogText": "自您上次修補此應用程式以來新增的修補程式:\n\n${addedPatches}", + "requiredOptionDialogText": "某些修補檔選項需要進行設定。" }, "appSelectorCard": { "widgetTitle": "選擇一個應用程式", "widgetTitleSelected": "已選取的應用程式", "widgetSubtitle": "未選取任何應用程式", - "noAppsLabel": "未找到應用程式", + "noAppsLabel": "找不到應用程式", "anyVersion": "任何版本" }, "patchSelectorCard": { - "widgetTitle": "選擇補丁", - "widgetTitleSelected": "已選取的補丁", - "widgetSubtitle": "請先選擇一個應用程式", - "widgetEmptySubtitle": "未選取任何補丁" + "widgetTitle": "選取修補檔", + "widgetTitleSelected": "已選取的修補檔", + "widgetSubtitle": "請先選取應用程式", + "widgetEmptySubtitle": "未選取修補檔" }, "socialMediaCard": { "widgetTitle": "社群媒體", "widgetSubtitle": "掃榻以待,歡迎造訪!" }, "appSelectorView": { - "viewTitle": "選擇一個應用程式", + "viewTitle": "選擇應用程式", "searchBarHint": "搜尋應用程式", "storageButton": "儲存空間", "selectFromStorageButton": "從儲存空間中選取", - "errorMessage": "無法使用已選取的應用程式", + "errorMessage": "無法使用所選的應用程式", "downloadToast": "下載功能尚不可用", "requireSuggestedAppVersionDialogText": "您選取的應用程式版本與建議版本不符,可能會導致意外問題。請使用建議的版本。\n\n選取的版本:${selected}\n建議的版本:${suggested}\n\n如果仍要繼續,請在設定中停用「要求使用建議的應用程式版本」。", "featureNotAvailable": "功能尚未實作", "featureNotAvailableText": "該應用程式為分割 APK,只能在具有 root 權限的情況下完成修補及安裝。不過,您也可以直接從儲存空間選取完整 APK 以修補及安裝。" }, "patchesSelectorView": { - "viewTitle": "選取補丁", - "searchBarHint": "搜尋補丁", - "universalPatches": "通用補丁", - "newPatches": "新的補丁", - "patches": "補丁", + "viewTitle": "選取修補檔", + "searchBarHint": "搜尋修補檔", + "universalPatches": "通用修補檔", + "newPatches": "新修補檔", + "patches": "修補檔", "doneButton": "完成", "defaultChip": "預設", - "defaultTooltip": "選取所有預設補丁", + "defaultTooltip": "選取全部預設修補檔", "noneChip": "無", - "noneTooltip": "取消選取所有補丁", - "loadPatchesSelection": "載入修補選取", - "noSavedPatches": "該應用程式暫未有選定的補丁。\n按下 [完成] 以儲存目前的選取。", - "noPatchesFound": "未找到適合所選應用程式的補丁", - "setRequiredOption": "這些補丁需要進一部設定:\n\n${patches}\n\n請先進行設定再繼續。" + "noneTooltip": "取消選取修補檔", + "loadPatchesSelection": "載入上次所選的補丁", + "noSavedPatches": "未儲存應用程式選定的修補選項。\n按下 [完成] 以儲存目前的選取。", + "noPatchesFound": "找不到適合所選應用程式的修補檔", + "setRequiredOption": "某些修補檔選項需要進行配置:\n\n${patches}\n\n請在繼續之前進行設定。" }, "patchOptionsView": { "customValue": "自訂值", "setToNull": "設為空值", "nullValue": "此選項的值目前為空", - "viewTitle": "補丁選項", + "viewTitle": "修補檔選項", "saveOptions": "儲存", - "unselectPatch": "取消選擇補丁", + "unselectPatch": "取消選取修補檔", "tooltip": "更多輸入選項", "selectFilePath": "請選取檔案路徑", "selectFolder": "請選取資料夾", - "requiredOption": "此選項必需被設定", - "unsupportedOption": "不支援此選項", + "requiredOption": "此選項必須設定", + "unsupportedOption": "此選項不支援本應用程式", "requiredOptionNull": "以下選項需要進行設定:\n\n${options}" }, "patchItem": { - "unsupportedDialogText": "選取此補丁將可能導致修補錯誤。\n應用程式版本:${packageVersion}\n支援的版本:${supportedVersions}", - "unsupportedPatchVersion": "該補丁不支援目前應用程式的版本。", - "unsupportedRequiredOption": "此補丁內含不支援此應用程式的必填選項。", - "patchesChangeWarningDialogText": "建議使用預設修補選項。更改它們可能導致意外問題。\n\n需要在設定中開啟「允許變更修補選項」才能繼續變更修補選項。", - "patchesChangeWarningDialogButton": "使用預設補丁選項" + "unsupportedDialogText": "選取此修補檔可能導致修補錯誤。\n應用程式版本: ${packageVersion}\n支援的版本: ${supportedVersions}", + "unsupportedPatchVersion": "此版本的應用程式不支援此修補檔。", + "unsupportedRequiredOption": "此修補檔內含不支援此應用程式的必填選項。", + "patchesChangeWarningDialogText": "建議使用預設的修補檔選擇和選項。更改它們可能導致意外問題。\n\n在變更任何修補檔選擇之前,您需要在設定中開啟「允許變更修補檔選擇」。", + "patchesChangeWarningDialogButton": "採用預設設定選項" }, "installerView": { "installType": "請選取安裝方式", @@ -135,7 +136,7 @@ "notificationTitle": "ReVanced Manager 正在修補", "notificationText": "輕觸以返回安裝程式", "exportApkButtonTooltip": "匯出已修補的 APK 檔案", - "exportLogButtonTooltip": "匯出日誌", + "exportLogButtonTooltip": "匯出記錄檔", "screenshotDetected": "偵測到螢幕截圖。如果您想要分享記錄檔,請改為複製文字分享。\n\n要將記錄檔複製到剪貼簿嗎?", "copiedToClipboard": "已將記錄檔複製到剪貼簿", "noExit": "安裝程式仍在執行,無法結束..." @@ -144,62 +145,66 @@ "widgetTitle": "設定", "appearanceSectionTitle": "外觀", "teamSectionTitle": "團隊", - "debugSectionTitle": "除錯", + "debugSectionTitle": "偵錯", "advancedSectionTitle": "進階", - "exportSectionTitle": "匯入及匯出", + "exportSectionTitle": "匯入和匯出", "dataSectionTitle": "資料來源", "themeModeLabel": "應用程式主題", "systemThemeLabel": "系統預設", "lightThemeLabel": "淺色模式", "darkThemeLabel": "深色模式", - "dynamicThemeLabel": "質感設計", + "dynamicThemeLabel": "Material You", "dynamicThemeHint": "享受更貼近您裝置的使用體驗", "languageLabel": "語言", "languageUpdated": "已更新語言", "sourcesLabel": "替代來源", - "sourcesLabelHint": "設定 ReVanced 補丁和 ReVanced 整合的替代來源", - "sourcesIntegrationsLabel": "整合來源", + "sourcesLabelHint": "為 ReVanced 修補檔設定備用來源", "useAlternativeSources": "使用替代來源", - "useAlternativeSourcesHint": "改用 ReVanced 補丁和 ReVanced 整合的替代來源,而不是 API", + "useAlternativeSourcesHint": "使用 ReVanced 修補檔備用來源以取代 API", "sourcesResetDialogTitle": "重設", "sourcesResetDialogText": "確定要將來源重設為預設值嗎?", "apiURLResetDialogText": "確定要還原 API URL 至預設值嗎?", - "sourcesUpdateNote": "注意:這將會自動從替代來源下載 ReVanced 補丁及 ReVanced 整合。\n\n這將連接您到替代來源。", + "sourcesUpdateNote": "注意: 本操作將自動從備用來源下載 ReVanced 修補檔。\n\n本操作將連線至備用來源。", "apiURLLabel": "API URL", "apiURLHint": "設定 ReVanced Manager 的 API URL", "selectApiURL": "API URL", - "orgPatchesLabel": "補丁組織", - "sourcesPatchesLabel": "補丁來源", - "orgIntegrationsLabel": "整合組織", + "orgPatchesLabel": "修補檔組織", + "sourcesPatchesLabel": "修補檔來源", "contributorsLabel": "貢獻者", "contributorsHint": "ReVanced 貢獻者清單", "logsLabel": "分享記錄檔", "logsHint": "分享 ReVanced Manager 記錄檔", "enablePatchesSelectionLabel": "允許變更修補選項", - "enablePatchesSelectionHint": "不要阻止選取或取消選取補丁", + "enablePatchesSelectionHint": "不要阻止選擇或取消選擇修補檔", "enablePatchesSelectionWarningText": "如果變更修補選項,可能會導致發生意外。\n\n仍要啟用嗎?", "disablePatchesSelectionWarningText": "即將停用修補選項的變更功能,並還原到預設選項。\n\n仍要停用嗎?", - "autoUpdatePatchesLabel": "自動更新補丁", - "autoUpdatePatchesHint": "自動更新補丁至最新版本", + "autoUpdatePatchesLabel": "自動更新修補檔", + "autoUpdatePatchesHint": "自動更新修補檔至最新版本", "showUpdateDialogLabel": "顯示更新對話框", "showUpdateDialogHint": "當有新更新可用時,顯示對話框", - "universalPatchesLabel": "顯示通用補丁", + "universalPatchesLabel": "顯示通用修補檔", "universalPatchesHint": "顯示所有應用程式和通用修補檔(可能會拖慢應用程式列表的速度)", "lastPatchedAppLabel": "儲存已修補的應用程式", "lastPatchedAppHint": "儲存最後一次修補以便稍後安裝或匯出", "versionCompatibilityCheckLabel": "檢查版本相容性", - "versionCompatibilityCheckHint": "防止選擇與所選應用程式版本不相容的補丁", + "versionCompatibilityCheckHint": "防止選擇與所選應用程式版本不相容的修補檔", "requireSuggestedAppVersionLabel": "要求使用建議的應用程式版本", "requireSuggestedAppVersionHint": "防止選取非建議版本的應用程式", - "requireSuggestedAppVersionDialogText": "選取非建議版本的應用程式可能導致意外問題。\n\n確定仍要繼續執行嗎?", + "requireSuggestedAppVersionDialogText": "目前選取的應用程式並非建議版本,可能造成未預期的狀況發生。\n\n確定仍要繼續執行嗎?", "aboutLabel": "關於", "snackbarMessage": "已複製到剪貼簿", "restartAppForChanges": "重新啟動應用程式以套用變更", "deleteTempDirLabel": "刪除暫存檔案", "deleteTempDirHint": "刪除未使用的暫存檔案", "deletedTempDir": "已刪除暫存檔案", + "exportSettingsLabel": "匯出設定", + "exportSettingsHint": "匯出設定至 JSON 檔", + "exportedSettings": "已匯出設定", + "importSettingsLabel": "匯入設定", + "importSettingsHint": "從 JSON 檔匯入設定", + "importedSettings": "已匯入設定", "exportPatchesLabel": "匯出修補選取", - "exportPatchesHint": "將修補選取匯出成 JSON 檔案", + "exportPatchesHint": "匯出修補選取到 JSON 檔案", "exportedPatches": "已匯出修補選取", "noExportFileFound": "沒有可匯出的修補選取", "importPatchesLabel": "匯入修補選取", @@ -208,21 +213,21 @@ "resetStoredPatchesLabel": "重設修補選取", "resetStoredPatchesHint": "重設已儲存的修補選取", "resetStoredPatchesDialogTitle": "確定要重設修補選取嗎?", - "resetStoredPatchesDialogText": "將還原為預設的修補選項。", + "resetStoredPatchesDialogText": "將還原為預設的修補檔選項。", "resetStoredPatches": "已重設修補選取", "resetStoredOptionsLabel": "重設修補選項", "resetStoredOptionsHint": "重設所有修補選項", "resetStoredOptionsDialogTitle": "確定要重設修補選項嗎?", - "resetStoredOptionsDialogText": "重設補丁選項將移除所有已儲存的設定。", + "resetStoredOptionsDialogText": "重設修補檔選項將移除所有已儲存的設定。", "resetStoredOptions": "已重設所有選項", "deleteLogsLabel": "清除記錄檔", "deleteLogsHint": "刪除已收集的 ReVanced Manager 記錄檔", "deletedLogs": "已刪除記錄檔", - "regenerateKeystoreLabel": "重新產生金鑰庫", - "regenerateKeystoreHint": "重新產生用於簽署應用程式的金鑰庫", - "regenerateKeystoreDialogTitle": "確定要重新產生金鑰庫嗎?", + "regenerateKeystoreLabel": "重新生成金鑰庫", + "regenerateKeystoreHint": "重新生成用於簽署應用程式的金鑰庫", + "regenerateKeystoreDialogTitle": "確定要重新生成金鑰庫嗎?", "regenerateKeystoreDialogText": "使用舊金鑰庫進行簽署的修補應用程式,將無法再進行更新。", - "regeneratedKeystore": "已重新產生金鑰庫", + "regeneratedKeystore": "金鑰庫已重新生成", "exportKeystoreLabel": "匯出金鑰庫", "exportKeystoreHint": "匯出用於簽署應用程式的金鑰庫", "exportedKeystore": "已匯出金鑰庫", @@ -255,10 +260,10 @@ "mountTypeLabel": "掛載", "regularTypeLabel": "一般", "patchedDateLabel": "修補日期", - "appliedPatchesLabel": "已套用補丁", + "appliedPatchesLabel": "已套用修補檔", "sizeLabel": "檔案大小", "patchedDateHint": "${date} ${time}", - "appliedPatchesHint": "已套用 ${quantity} 個補丁", + "appliedPatchesHint": "已套用 ${quantity} 個修補檔", "updateNotImplemented": "這項功能尚未實作" }, "contributorsView": { @@ -277,17 +282,17 @@ "status_failure_incompatible": "安裝不相容", "status_failure_timeout": "安裝逾時", "status_unknown": "安裝失敗", - "mount_version_mismatch_description": "由於安裝的應用程式與已修補的應用程式版本不同導致安裝失敗。\n\n請先安裝您正在掛載的應用程式版本後再嘗試看看。", + "mount_version_mismatch_description": "安裝失敗是由於安裝的應用程式與已修補的應用程式版本不同。\n\n請安裝您正在掛載的應用程式的版本,然後重試。", "mount_no_root_description": "由於沒有授予 root 存取權限導致安裝失敗\n\n請先授予 ReVanced Manager root 存取權限後再嘗試看看。", "mount_missing_installation_description": "由於先前未在此裝置上安裝未修補的應用程式並掛載導致安裝失敗。\n\n請先在掛載前安裝未修補的應用程式後再嘗試看看。", - "status_failure_timeout_description": "安裝耗時太長。\n\n您想要再試一次嗎?", - "status_failure_storage_description": "安裝失敗是因為儲存空間不足。\n\n請先釋放一些空間後再嘗試看看。", - "status_failure_invalid_description": "由於已修補的應用程式為無效導致安裝失敗。\n\n也許先解除安裝該應用程式後再嘗試看看?", + "status_failure_timeout_description": "安裝耗時太長。\n\n要再嘗試一次嗎?", + "status_failure_storage_description": "由於儲存空間不足,而造成安裝失敗。\n\n請先釋出空間,然後再嘗試一次。", + "status_failure_invalid_description": "由於已修補的應用程式為無效,造成安裝失敗。\n\n確定要解除安裝應用程式,以再次嘗試?", "status_failure_incompatible_description": "應用程式與此裝置不相容。\n\n請使用支援此裝置的 APK 檔,然後再試一次。", - "status_failure_conflict_description": "安裝應用程式時被現有的安裝阻止。\n\n也許先解除安裝已安裝的應用程式後再嘗試看看?", - "status_failure_blocked_description": "安裝被 ${packageName} 阻止。\n\n請先調整您的安全設定後再嘗試看看。", - "install_failed_verification_failure_description": "由於驗證問題導致安裝失敗。\n\n請先調整您的安全設定後再嘗試看看。", - "install_failed_version_downgrade_description": "由於已修補的應用程式版本低於已安裝的應用程式導致安裝失敗。\n\n也許先解除現有的應用程式後再嘗試看看?", + "status_failure_conflict_description": "安裝被應用程式的現有安裝阻止。\n\n請解除安裝已安裝的應用程式,然後重試?", + "status_failure_blocked_description": "安裝被 ${packageName} 阻止。\n\n請調整您的安全設定,然後重試。", + "install_failed_verification_failure_description": "安裝失敗是因為驗證問題。\n\n請調整您的安全設定,然後重試。", + "install_failed_version_downgrade_description": "安裝失敗是因為已修補的應用程式版本低於已安裝的應用程式。\n\n請解除安裝應用程式,然後重試?", "status_unknown_description": "由於未知原因導致安裝失敗。請重試。" } } \ No newline at end of file diff --git a/assets/i18n/strings_zu_ZA.i18n.json b/assets/i18n/strings_zu_ZA.i18n.json old mode 100644 new mode 100755 diff --git a/docs/2_4_settings.md b/docs/2_4_settings.md index 08dbf9d2e1..44bfa6951f 100644 --- a/docs/2_4_settings.md +++ b/docs/2_4_settings.md @@ -50,6 +50,7 @@ Learn how to configure ReVanced Manager. - 🔑 Keystore used to sign patched apps - 📄 Remembered selection of patches for each app - ⚙️ Remembered patch options + - 🛠️ Remembered settings > ℹ️ Note > These can be used to backup and restore or reset settings to default in case of issues. diff --git a/fastlane/Appfile b/fastlane/Appfile deleted file mode 100644 index 5f978f40e5..0000000000 --- a/fastlane/Appfile +++ /dev/null @@ -1,2 +0,0 @@ -json_key_file("") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one -package_name("app.revanced.manager.flutter") # e.g. com.krausefx.app diff --git a/fastlane/Fastfile b/fastlane/Fastfile deleted file mode 100644 index 19c557cc6e..0000000000 --- a/fastlane/Fastfile +++ /dev/null @@ -1,38 +0,0 @@ -# This file contains the fastlane.tools configuration -# You can find the documentation at https://docs.fastlane.tools -# -# For a list of all available actions, check out -# -# https://docs.fastlane.tools/actions -# -# For a list of all available plugins, check out -# -# https://docs.fastlane.tools/plugins/available-plugins -# - -# Uncomment the line if you want fastlane to automatically update itself -# update_fastlane - -default_platform(:android) - -platform :android do - desc "Runs all the tests" - lane :test do - gradle(task: "test") - end - - desc "Submit a new Beta Build to Crashlytics Beta" - lane :beta do - gradle(task: "clean assembleRelease") - crashlytics - - # sh "your_script.sh" - # You can also use other beta testing services here - end - - desc "Deploy a new version to the Google Play" - lane :deploy do - gradle(task: "clean assembleRelease") - upload_to_play_store - end -end diff --git a/fastlane/README.md b/fastlane/README.md deleted file mode 100644 index 7ec1207f1a..0000000000 --- a/fastlane/README.md +++ /dev/null @@ -1,48 +0,0 @@ -fastlane documentation ----- - -# Installation - -Make sure you have the latest version of the Xcode command line tools installed: - -```sh -xcode-select --install -``` - -For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane) - -# Available Actions - -## Android - -### android test - -```sh -[bundle exec] fastlane android test -``` - -Runs all the tests - -### android beta - -```sh -[bundle exec] fastlane android beta -``` - -Submit a new Beta Build to Crashlytics Beta - -### android deploy - -```sh -[bundle exec] fastlane android deploy -``` - -Deploy a new version to the Google Play - ----- - -This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run. - -More information about _fastlane_ can be found on [fastlane.tools](https://fastlane.tools). - -The documentation of _fastlane_ can be found on [docs.fastlane.tools](https://docs.fastlane.tools). diff --git a/fastlane/metadata/android/en-US/full_description.txt b/fastlane/metadata/android/en-US/full_description.txt deleted file mode 100644 index 673becbca2..0000000000 --- a/fastlane/metadata/android/en-US/full_description.txt +++ /dev/null @@ -1 +0,0 @@ -ReVanced Manager is an Android application that uses ReVanced Patcher to add, remove, and modify existing functionalities in Android applications diff --git a/fastlane/metadata/android/en-US/images/featureGraphic.png b/fastlane/metadata/android/en-US/images/featureGraphic.png deleted file mode 100644 index a872ceb726..0000000000 Binary files a/fastlane/metadata/android/en-US/images/featureGraphic.png and /dev/null differ diff --git a/fastlane/metadata/android/en-US/images/icon.png b/fastlane/metadata/android/en-US/images/icon.png deleted file mode 100644 index bef6f58706..0000000000 Binary files a/fastlane/metadata/android/en-US/images/icon.png and /dev/null differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.jpg deleted file mode 100644 index 4cc5f0c802..0000000000 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.jpg and /dev/null differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.jpg deleted file mode 100644 index cb85435142..0000000000 Binary files a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.jpg and /dev/null differ diff --git a/fastlane/metadata/android/en-US/short_description.txt b/fastlane/metadata/android/en-US/short_description.txt deleted file mode 100644 index 15d7c30faf..0000000000 --- a/fastlane/metadata/android/en-US/short_description.txt +++ /dev/null @@ -1 +0,0 @@ -Patch your favorite apps, right on your device. diff --git a/fastlane/metadata/android/en-US/title.txt b/fastlane/metadata/android/en-US/title.txt deleted file mode 100644 index 897c96afe8..0000000000 --- a/fastlane/metadata/android/en-US/title.txt +++ /dev/null @@ -1 +0,0 @@ -ReVanced Manager \ No newline at end of file diff --git a/fastlane/report.xml b/fastlane/report.xml deleted file mode 100644 index 35ac130b7b..0000000000 --- a/fastlane/report.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/lib/models/patch.dart b/lib/models/patch.dart index 1b86ba5b50..730df32681 100644 --- a/lib/models/patch.dart +++ b/lib/models/patch.dart @@ -62,11 +62,12 @@ class Option { required this.value, required this.values, required this.required, - required this.valueType, + required this.type, }); factory Option.fromJson(Map json) { _migrateV17ToV19(json); + _migrateV19ToV20(json); return _$OptionFromJson(json); } @@ -83,13 +84,25 @@ class Option { } } + static void _migrateV19ToV20(Map json) { + if (json['valueType'] != null) { + final String type = json['valueType']; + + json['type'] = type.endsWith('Array') + ? 'kotlin.collections.List' + : 'kotlin.$type'; + + json['valueType'] = null; + } + } + final String key; final String title; final String description; final dynamic value; final Map? values; final bool required; - final String valueType; + final String type; Map toJson() => _$OptionToJson(this); } diff --git a/lib/services/github_api.dart b/lib/services/github_api.dart index b4ab03a669..fb9cd4f942 100644 --- a/lib/services/github_api.dart +++ b/lib/services/github_api.dart @@ -49,18 +49,24 @@ class GithubAPI { } } - Future getManagerChangelogs() async { + Future getChangelogs(bool isPatches) async { + final String repoName = isPatches + ? _managerAPI.getPatchesRepo() + : _managerAPI.defaultManagerRepo; try { final response = await _dioGetSynchronously( - '/repos/${_managerAPI.defaultManagerRepo}/releases?per_page=50', + '/repos/$repoName/releases?per_page=50', ); final buffer = StringBuffer(); - final String currentVersion = - await _managerAPI.getCurrentManagerVersion(); + final String version = isPatches + ? _managerAPI.getLastUsedPatchesVersion() + : await _managerAPI.getCurrentManagerVersion(); + int releases = 0; for (final release in response.data) { - if (release['tag_name'] == currentVersion) { + if (release['tag_name'] == version) { if (buffer.isEmpty) { buffer.writeln(release['body']); + releases++; } break; } @@ -68,6 +74,10 @@ class GithubAPI { continue; } buffer.writeln(release['body']); + releases++; + if (isPatches && releases == 10) { + break; + } } return buffer.toString(); } on Exception catch (e) { @@ -101,11 +111,7 @@ class GithubAPI { ); if (asset != null) { final String downloadUrl = asset['browser_download_url']; - if (extension == '.apk') { - _managerAPI.setIntegrationsDownloadURL(downloadUrl); - } else { - _managerAPI.setPatchesDownloadURL(downloadUrl); - } + _managerAPI.setPatchesDownloadURL(downloadUrl); return await _downloadManager.getSingleFile( downloadUrl, ); diff --git a/lib/services/manager_api.dart b/lib/services/manager_api.dart index fa3f0d6920..37c6dfbc45 100644 --- a/lib/services/manager_api.dart +++ b/lib/services/manager_api.dart @@ -30,6 +30,7 @@ class ManagerAPI { final String patcherRepo = 'revanced-patcher'; final String cliRepo = 'revanced-cli'; late SharedPreferences _prefs; + Map? contributors; List patches = []; List