Compare commits

..

8 Commits

Author SHA1 Message Date
semantic-release-bot
c52edc99c0 chore(release): 1.23.0-dev.1 [skip ci]
# [1.23.0-dev.1](https://github.com/ReVanced/revanced-manager/compare/v1.22.1-dev.2...v1.23.0-dev.1) (2024-10-17)

### Bug Fixes

* Don't show toasts when export cancelled ([#2230](https://github.com/ReVanced/revanced-manager/issues/2230)) ([bd79496](bd79496433))
* missing parameter in translations ([1c6c5d5](1c6c5d53ae))

### Features

* Also show new patches in the removed patches dialog ([#2257](https://github.com/ReVanced/revanced-manager/issues/2257)) ([8872165](8872165a99))
2024-10-17 19:10:51 +00:00
aAbed
1c6c5d53ae fix: missing parameter in translations 2024-10-18 00:02:54 +05:45
aAbed
1b110e5bd5 fixup: string correction 2024-10-17 22:00:11 +05:45
aAbed
8872165a99 feat: Also show new patches in the removed patches dialog (#2257)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2024-10-17 17:48:19 +02:00
aAbed
bd79496433 fix: Don't show toasts when export cancelled (#2230) 2024-10-17 17:48:04 +02:00
oSumAtrIX
820cd720b5 chore: Modernize project setup
Update dependencies, move to Gradle KTs and overall improve build and project files.
2024-10-06 03:14:12 +02:00
ReVanced Bot
31ff1e0492 chore: Sync translations (#2200) 2024-10-01 00:02:20 +07:00
Pun Butrach
8b429f03c2 ci: Use the correct expression to grab translation files (#2232) 2024-09-30 23:59:43 +07:00
116 changed files with 467 additions and 686 deletions

View File

@@ -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

View File

@@ -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

88
.gitignore vendored
View File

@@ -1,41 +1,14 @@
# See https://www.dartlang.org/guides/libraries/private-files
# 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
.flutter-plugins
.flutter-plugins-dependencies
# Generated Builder file
**/*.g.dart
**/*.locator.dart
**/*.router.dart
flutter_*.png
#### Custom
local.properties
# Miscellaneous
*.class
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
migrate_working_dir/
# IntelliJ related
*.iml
@@ -43,8 +16,39 @@ local.properties
*.iws
.idea/
# Node Dependency directories
node_modules/
# 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/
# Symbolication related
app.*.symbols
# Obfuscation related
app.*.map.json
# Android Studio will place build artifacts here
/android/app/debug
/android/app/profile
/android/app/release
# Generated files
**/*.g.dart
**/*.locator.dart
**/*.router.dart
# Project specific
node_modules/
.vscode/
# FVM
.fvm

View File

@@ -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

View File

@@ -48,7 +48,8 @@
"assets": [
{
"path": "build/app/outputs/apk/release/revanced-manager*.apk"
}
},
"message": "chore: Release v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
],
"successComment": false
}

91
.vscode/tasks.json vendored
View File

@@ -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": []
}
]
}

2
android/.gitignore vendored
View File

@@ -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

View File

@@ -1,3 +0,0 @@
source "https://rubygems.org"
gem "fastlane"

View File

@@ -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")
}

View File

@@ -0,0 +1,91 @@
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 = 34
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 = 34
versionCode = flutter.versionCode
versionName = flutter.versionName
}
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")
}
} else {
resValue("string", "app_name", "ReVanced Manager (Debug)")
applicationIdSuffix = ".debug"
signingConfig = signingConfigs["debug"]
}
resValue("string", "app_name", "ReVanced Manager")
}
debug {
resValue("string", "app_name", "ReVanced Manager (Debug)")
applicationIdSuffix = ".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)
}

View File

@@ -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.** { *; }

View File

@@ -1,3 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

View File

@@ -1,3 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The INTERNET permission is required for development. Specifically,
the Flutter tool needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

View File

@@ -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
}

30
android/build.gradle.kts Normal file
View File

@@ -0,0 +1,30 @@
import com.android.build.api.dsl.CommonExtension
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")
subprojects {
afterEvaluate {
extensions.findByName("android")?.let {
it as CommonExtension<*, *, *, *, *, *>
it.compileSdk = 34
}
}
layout.buildDirectory = rootProject.layout.buildDirectory.file(name).get().asFile
evaluationDependsOn(":app")
}

View File

@@ -1,8 +1,8 @@
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

View File

@@ -0,0 +1,9 @@
[versions]
revanced-patcher = "19.3.1" # TODO: Update to non-dev
revanced-library = "2.2.1"
desugar_jdk_libs = "2.1.2"
[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" }

View File

@@ -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"

View File

@@ -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.0" apply false
id("org.jetbrains.kotlin.android") version "2.0.20" apply false
}
include(":app")

View File

@@ -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": {
@@ -290,4 +291,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."
}
}
}

0
assets/i18n/strings_af_ZA.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_am_ET.i18n.json Normal file → Executable file
View File

2
assets/i18n/strings_ar_SA.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"widgetTitle": "المُعَّدِّل",
"patchButton": "تعديل",
"incompatibleArchWarningDialogText": "لم يتم دعم التعديلات الخاصة بهذه البنية حتى الآن وقد تفشل. هل تريد المتابعة على أي حال؟",
"removedPatchesWarningDialogText": "تم إزالة التعديلات التالية منذ آخر مرة استخدمتها فيها.\n\n${patches}\n\nتابع على أي حال؟",
"removedPatchesWarningDialogText": "تم إزالة التعديلات التالية منذ آخر مرة استخدمتها فيها.\n\n${patches}\n\n${newPatches}تابع على أي حال؟",
"requiredOptionDialogText": "يجب ضبط بعض خيارات التعديل."
},
"appSelectorCard": {

0
assets/i18n/strings_as_IN.i18n.json Normal file → Executable file
View File

6
assets/i18n/strings_az_AZ.i18n.json Normal file → Executable file
View File

@@ -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,7 @@
"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": "Aşağıdakı yamaqlar son istifadənizdən bəri silindi.\n\n${patches}\n\n${newPatches}Yenə də davam edilsin?",
"requiredOptionDialogText": "Bəzi yamaq seçimləri təyin edilməlidir."
},
"appSelectorCard": {
@@ -285,7 +285,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."

2
assets/i18n/strings_be_BY.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"widgetTitle": "Праграма выпраўлення",
"patchButton": "Выправіць",
"incompatibleArchWarningDialogText": "Выпраўленні на гэтай архітэктуры пакуль не падтрымліваюцца і могуць не працаваць. Працягнуць?",
"removedPatchesWarningDialogText": "Наступныя выпраўленні былі выдалены з моманту іх апошняга выкарыстання.\n\n${patches}\n\nУсё роўна працягнуць?",
"removedPatchesWarningDialogText": "Наступныя выпраўленні былі выдалены з моманту іх апошняга выкарыстання.\n\n${patches}\n\n${newPatches}Усё роўна працягнуць?",
"requiredOptionDialogText": "Неабходна задаць некаторыя параметры выпраўленняў."
},
"appSelectorCard": {

2
assets/i18n/strings_bg_BG.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"widgetTitle": "Модификатор",
"patchButton": "Модифицирайте",
"incompatibleArchWarningDialogText": "Процесът на модифициране в момента не се поддържа на устройства с тази архитектура и може да се провали. Ще продължите ли?",
"removedPatchesWarningDialogText": "Следните модификации са били премахнати след като са били употребени за последно от вас.\n\n${patches}\n\nПродължете въпреки това?",
"removedPatchesWarningDialogText": "Следните модификации са били премахнати след като са били употребени за последно от вас.\n\n${patches}\n\n${newPatches}Продължете въпреки това?",
"requiredOptionDialogText": "Опциите на някои модификации трябва да бъдат зададени."
},
"appSelectorCard": {

11
assets/i18n/strings_bn_BD.i18n.json Normal file → Executable file
View File

@@ -23,7 +23,10 @@
"refreshSuccess": "সফলভাবে রিফ্রেশ করা হয়েছে",
"widgetTitle": "ড্যাশবোর্ড",
"updatesSubtitle": "আপডেটসমূহ",
"lastPatchedAppSubtitle": "সর্বশেষ প্যাচকৃত অ্যাপ",
"patchedSubtitle": "ইনস্টল করা অ্যাপ",
"changeLaterSubtitle": "পরবর্তীতে আপনি এটি সেটিং থেকে পরিবর্তন করতে পারবেন।",
"noSavedAppFound": "কোনো অ্যাপ পাওয়া যায় নি",
"noInstallations": "কোন প্যাচড অ্যাপ্লিকেশন ইনস্টল করা হয়নি",
"installUpdate": "আপডেট ইনস্টল করতে এগিয়ে যেতে চান?",
"updateSheetTitle": "ReVanced Manager আপডেট করুন",
@@ -51,7 +54,8 @@
"patcherView": {
"widgetTitle": "প্যাচার",
"patchButton": "প্যাচ",
"removedPatchesWarningDialogText": "আপনি এর আগে যখন ব্যবহার করেছিলেন তারপর এই প্যাচগুলো অপসারণ করা হয়।\n\n${patches}\n\nযেকোন ভাবে এগিয়ে যেতে চান?",
"incompatibleArchWarningDialogText": "এই আর্কিটেকচারে প্যাচিং এখনো সমর্থিত নয় এবং সফল নাও হতে পারে। যেকোন ভাবে এগিয়ে যেতে চান?",
"removedPatchesWarningDialogText": "আপনি এর আগে যখন ব্যবহার করেছিলেন তারপর এই প্যাচগুলো অপসারণ করা হয়।\n\n${patches}\n\n${newPatches}যেকোন ভাবে এগিয়ে যেতে চান?",
"requiredOptionDialogText": "কিছু প্যাচ অপশন সেট করতে হবে।"
},
"appSelectorCard": {
@@ -100,11 +104,15 @@
},
"patchOptionsView": {
"customValue": "কাস্টম ভ্যালু",
"setToNull": "null সেট করুন",
"nullValue": "এই অপশন ভ্যালু বর্তমানে null",
"viewTitle": "প্যাচ অপশন",
"saveOptions": "সংরক্ষণ করুন",
"unselectPatch": "প্যাচ অনির্বাচন করুন",
"tooltip": "আরও ইনপুট অপশন",
"selectFilePath": "ফাইলের স্থান নির্বাচন করুন",
"selectFolder": "ফোল্ডার নির্বাচন করুন",
"requiredOption": "এই অপশনটি সেট করা আবশ্যক",
"unsupportedOption": "এই অপশনসটি অসমর্থিত",
"requiredOptionNull": "এই অপশনগুলো সেট করতে হবে:\n\n${options}"
},
@@ -177,6 +185,7 @@
"showUpdateDialogHint": "যখন হালনাগাদ উপলব্ধ থাকবে তখন একটি ডায়ালগ দেখান",
"universalPatchesLabel": "বৈশ্বিক প্যাচসমূহ দেখান",
"universalPatchesHint": "সকল অ্যাপ এবং বৈশ্বিক প্যাচসমূহ দেখায় (অ্যাপ লিস্ট দেখানো একটু ধীর হতে পারে)",
"lastPatchedAppLabel": "প্যাচকৃত অ্যাপ সংরক্ষণ করুন",
"versionCompatibilityCheckLabel": "সংস্করণ সামঞ্জস্যতা পরীক্ষা করা",
"versionCompatibilityCheckHint": "নির্বাচিত অ্যাপ সংস্করণের সাথে সামঞ্জস্যপূর্ণ নয় এমন প্যাচ নির্বাচন করা আটকায়",
"requireSuggestedAppVersionLabel": "প্রস্তাবিত অ্যাপ সংস্করণ প্রয়োজন",

0
assets/i18n/strings_bs_BA.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_ca_ES.i18n.json Normal file → Executable file
View File

2
assets/i18n/strings_cs_CZ.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"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": "Následující záplaty byly odstraněny od doby, kdy jste je naposledy použili.\n\n${patches}\n\n${newPatches}Přesto pokračovat?",
"requiredOptionDialogText": "Je třeba nastavit některé možnosti záplat."
},
"appSelectorCard": {

2
assets/i18n/strings_da_DK.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"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": "Følgende patches er blevet fjernet siden sidste gang du brugte dem.\n\n${patches}\n\n${newPatches}Fortsæt alligevel?",
"requiredOptionDialogText": "Nogle patch muligheder skal indstilles."
},
"appSelectorCard": {

2
assets/i18n/strings_de_DE.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"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": "Die folgenden Patches wurden seit der letzten Verwendung entfernt.\n\n${patches}\n\n${newPatches}Trotzdem fortfahren?",
"requiredOptionDialogText": "Einige Patch-Optionen müssen gesetzt werden."
},
"appSelectorCard": {

2
assets/i18n/strings_el_GR.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"widgetTitle": "Τροποποιητής",
"patchButton": "Τροποποίηση",
"incompatibleArchWarningDialogText": "Η διαδικασία της τροποποίησης δεν υποστηρίζεται προς το παρόν σε συσκευές της συγκεκριμένης αρχιτεκτονικής και μπορεί να αποτύχει. Συνέχεια παρόλα αυτά;",
"removedPatchesWarningDialogText": "Οι παρακάτω τροποποιήσεις αφαιρέθηκαν από την τελευταία φορά που τις χρησιμοποιήσατε.\n\n${patches}\n\nΣυνέχεια παρόλα αυτά;",
"removedPatchesWarningDialogText": "Οι παρακάτω τροποποιήσεις αφαιρέθηκαν από την τελευταία φορά που τις χρησιμοποιήσατε.\n\n${patches}\n\n${newPatches}Συνέχεια παρόλα αυτά;",
"requiredOptionDialogText": "Κάποιες επιλογές τροποποιήσεων πρέπει να οριστούν."
},
"appSelectorCard": {

View File

@@ -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": {

2
assets/i18n/strings_es_ES.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"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": "Los siguientes parches han sido eliminados desde la última vez que los usaste.\n\n${patches}\n\n${newPatches}¿Continuar de todos modos?",
"requiredOptionDialogText": "Deben establecerse algunas opciones de parche."
},
"appSelectorCard": {

View File

@@ -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": {

2
assets/i18n/strings_et_EE.i18n.json Normal file → Executable file
View File

@@ -51,7 +51,7 @@
"patcherView": {
"widgetTitle": "Parandaja",
"patchButton": "Parandus",
"removedPatchesWarningDialogText": "Väljatoodud parandused on vahepeal eemaldatud.\n\n${patches}\n\nJätka ikkagi? ",
"removedPatchesWarningDialogText": "Väljatoodud parandused on vahepeal eemaldatud.\n\n${patches}\n\n${newPatches}Jätka ikkagi? ",
"requiredOptionDialogText": "Mõned paranduste sätted on vaja valida. "
},
"appSelectorCard": {

0
assets/i18n/strings_eu_ES.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_fa_IR.i18n.json Normal file → Executable file
View File

14
assets/i18n/strings_fi_FI.i18n.json Normal file → Executable file
View File

@@ -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": "Seuraavat paikkaukset on poistettu edellisen käyttökerran jälkeen.\n\n${patches}\n\n${newPatches}Jatketaanko silti?",
"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}"
},
@@ -198,7 +198,7 @@
"deleteTempDirLabel": "Poista väliaikaistiedostot",
"deleteTempDirHint": "Poista käyttämättömät väliaikaistiedostot",
"deletedTempDir": "Väliaikaistiedostot poistettiin",
"exportPatchesLabel": "Vie paikkasvalikoima",
"exportPatchesLabel": "Vie paikkausvalikoima",
"exportPatchesHint": "Vie paikkausvalikoima JSON-tiedostoon",
"exportedPatches": "Paikkausvalikoima vietiin",
"noExportFileFound": "Vietäviä paikkausvalikoimia ei ole",

2
assets/i18n/strings_fil_PH.i18n.json Normal file → Executable file
View File

@@ -52,7 +52,7 @@
"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?",
"removedPatchesWarningDialogText": "Ang mga sumusunod na patches ay tinanggal mula noong huling beses mong gamitin ang mga ito.\n\n${patches}\n\n${newPatches}Ituloy pa rin ba?",
"requiredOptionDialogText": "Kailangan mo i-set ang ilang mga opsyon para sa patch."
},
"appSelectorCard": {

2
assets/i18n/strings_fr_FR.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"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 suivants ont été supprimés depuis la dernière fois que vous les avez utilisés.\n\n${patches}\n\n${newPatches}Continuer quand même ?",
"requiredOptionDialogText": "Certaines options de patch doivent être définies."
},
"appSelectorCard": {

2
assets/i18n/strings_ga_IE.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"widgetTitle": "Paisteálaí",
"patchButton": "Paiste",
"incompatibleArchWarningDialogText": "Níl paisteáil ar an ailtireacht seo tacaítear leis go fóill agus dfhé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": "Baineadh na paistí seo a leanas ón uair dheireanach a d'úsáid tú iad.\n\n${patches}\n\n${newPatches}Lean ar aghaidh fós?",
"requiredOptionDialogText": "Caithfear roinnt roghanna paiste a shocrú."
},
"appSelectorCard": {

0
assets/i18n/strings_gl_ES.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_gu_IN.i18n.json Normal file → Executable file
View File

2
assets/i18n/strings_he_IL.i18n.json Normal file → Executable file
View File

@@ -51,7 +51,7 @@
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "תיקון",
"removedPatchesWarningDialogText": "התיקונים הבאים הוסרו מאז הפעם האחרונה שהשתמשת בהם.\n${patches}\nלהמשיך בכל זאת?",
"removedPatchesWarningDialogText": "התיקונים הבאים הוסרו מאז הפעם האחרונה שהשתמשת בהם.\n\n${patches}\n\n${newPatches}להמשיך בכל זאת?",
"requiredOptionDialogText": "כמה אפשרויות תיקון חייבות להיקבע."
},
"appSelectorCard": {

0
assets/i18n/strings_hi_IN.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_hr_HR.i18n.json Normal file → Executable file
View File

2
assets/i18n/strings_hu_HU.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"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": "A következő patcheket a legutóbbi használatuk óta eltávolították.\n\n${patches}\n\n${newPatches}Mindenképpen folytatja?",
"requiredOptionDialogText": "Néhány patch lehetőséget be kell állítani."
},
"appSelectorCard": {

0
assets/i18n/strings_hy_AM.i18n.json Normal file → Executable file
View File

42
assets/i18n/strings_id_ID.i18n.json Normal file → Executable file
View File

@@ -23,11 +23,11 @@
"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",
@@ -54,9 +54,9 @@
"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 berikut telah dihapus sejak terakhir kali Anda menggunakannya.\n\n${patches}\n\n${newPatches}Tetap lanjut?",
"requiredOptionDialogText": "Beberapa pilihan tambalan harus diatur."
},
"appSelectorCard": {
"widgetTitle": "Pilih aplikasi",
@@ -84,32 +84,32 @@
"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."
"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."
"setRequiredOption": "Beberapa tambalan memerlukan pilihan untuk diatur:\n\n${patches}\n\nAturlah sebelum melanjutkan."
},
"patchOptionsView": {
"customValue": "Nilai kustom",
"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",
@@ -117,10 +117,10 @@
"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 akan menyebabkan kegagalan tambal.\n\nVersi apli: ${packageVersion}\nVersi anjuran:\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 opsi 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": {
@@ -279,7 +279,7 @@
"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.",
"mount_missing_installation_description": "Pemasangan gagal karena 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": "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?",
@@ -287,7 +287,7 @@
"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.",
"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?",
"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 kembali?",
"status_unknown_description": "Instalasi gagal karena alasan yang tidak diketahui. Silakan coba kembali."
}
}

2
assets/i18n/strings_is_IS.i18n.json Normal file → Executable file
View File

@@ -51,7 +51,7 @@
"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?",
"removedPatchesWarningDialogText": "Eftirfarandi patches hafa verið fjarlægðir síðan þú notaðir þá síðast.\n\n${patches}\n\n${newPatches}Halda samt áfram?",
"requiredOptionDialogText": "Það þarf að stilla nokkra patch valkosti."
},
"appSelectorCard": {

2
assets/i18n/strings_it_IT.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"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 seguenti patch sono state rimosse dall'ultima volta che le hai usate.\n\n${patches}\n\n${newPatches}Continuare comunque?",
"requiredOptionDialogText": "Alcune opzioni di patch devono essere impostate."
},
"appSelectorCard": {

2
assets/i18n/strings_ja_JP.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"widgetTitle": "パッチャー",
"patchButton": "パッチ",
"incompatibleArchWarningDialogText": "このアーキテクチャへのパッチ適用はまだサポートされておらず、失敗する可能性があります。とにかく続けますか?",
"removedPatchesWarningDialogText": "以下のパッチはもう使用できません。\n\n${patches}\n\n続行しますか?",
"removedPatchesWarningDialogText": "以下のパッチはもう使用できません。\n\n${patches}\n\n${newPatches}続行しますか?",
"requiredOptionDialogText": "一部のパッチオプションを設定する必要があります。"
},
"appSelectorCard": {

0
assets/i18n/strings_ka_GE.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_kk_KZ.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_km_KH.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_kn_IN.i18n.json Normal file → Executable file
View File

4
assets/i18n/strings_ko_KR.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"widgetTitle": "Patcher",
"patchButton": "패치하기",
"incompatibleArchWarningDialogText": "이 아키텍처에 대한 패치는 아직 지원되지 않으므로 실패할 수 있습니다. 그래도 계속하시겠습니까?",
"removedPatchesWarningDialogText": "최근 적용된 패치들 중 다음 패치가 제거됩니다.\n\n${patches}\n\n그래도 계속하시겠습니까?",
"removedPatchesWarningDialogText": "최근 적용된 패치들 중 다음 패치가 제거됩니다.\n\n${patches}\n\n${newPatches}그래도 계속하시겠습니까?",
"requiredOptionDialogText": "일부 패치 옵션을 설정해야 합니다."
},
"appSelectorCard": {
@@ -186,7 +186,7 @@
"universalPatchesLabel": "공용 패치 보기",
"universalPatchesHint": "기기에 설치된 모든 앱과 공용 패치를 표시합니다 (앱 목록이 느려질 수 있음)",
"lastPatchedAppLabel": "패치된 앱 저장",
"lastPatchedAppHint": "나중에 설치하거나 내보낼 마지막으로 패치된 앱을 저장 수 있습니다",
"lastPatchedAppHint": "마지막으로 패치된 앱을 저장하여 나중에 설치하거나 내보낼 수 있습니다",
"versionCompatibilityCheckLabel": "버전 호환성 체크",
"versionCompatibilityCheckHint": "선택한 앱 버전과 호환되지 않는 패치를 선택할 수 없습니다",
"requireSuggestedAppVersionLabel": "권장 앱 버전 요구",

0
assets/i18n/strings_ky_KG.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_lo_LA.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_lt_LT.i18n.json Normal file → Executable file
View File

2
assets/i18n/strings_lv_LV.i18n.json Normal file → Executable file
View File

@@ -50,7 +50,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ā?"
"removedPatchesWarningDialogText": "Kopš pēdējās lietošanas reizes ir noņemti šādi ielāpi.\n\n${patches}\n\n${newPatches}Turpināt jebkurā gadījumā?"
},
"appSelectorCard": {
"widgetTitle": "Izvēlaties lietotni",

0
assets/i18n/strings_mk_MK.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_ml_IN.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_mn_MN.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_mr_IN.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_ms_MY.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_my_MM.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_nb_NO.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_ne_IN.i18n.json Normal file → Executable file
View File

2
assets/i18n/strings_nl_NL.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"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": "De volgende patches zijn verwijderd sinds de laatste keer dat je ze hebt gebruikt.\n\n${patches}\n\n${newPatches}Toch doorgaan?",
"requiredOptionDialogText": "Er moeten enkele patch-opties worden ingesteld."
},
"appSelectorCard": {

0
assets/i18n/strings_or_IN.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_pa_IN.i18n.json Normal file → Executable file
View File

2
assets/i18n/strings_pl_PL.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"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": "Następujące łatki zostały usunięte od ostatniego użycia.\n\n${patches}\n\n${newPatches}Kontynuować mimo to?",
"requiredOptionDialogText": "Niektóre opcje muszą być ustawione."
},
"appSelectorCard": {

5
assets/i18n/strings_pt_BR.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"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?",
"removedPatchesWarningDialogText": "Os seguintes patches foram removidos desde a última vez que você os utilizou:\n\n${patches}\n\n${newPatches}Continuar mesmo assim?",
"requiredOptionDialogText": "Algumas opções de patch tiveram que ser definidas."
},
"appSelectorCard": {
@@ -68,7 +68,7 @@
"patchSelectorCard": {
"widgetTitle": "Selecionar patches",
"widgetTitleSelected": "Patches selecionados",
"widgetSubtitle": "Selecione um aplicativo primeiro",
"widgetSubtitle": "Selecione um app primeiro",
"widgetEmptySubtitle": "Nenhum patch selecionado"
},
"socialMediaCard": {
@@ -283,6 +283,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.",

2
assets/i18n/strings_pt_PT.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"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": "As seguintes modificações foram removidas desde a última vez que as utilizaste.\n\n${patches}\n\n${newPatches}Continuar na mesma?",
"requiredOptionDialogText": "Algumas opções das Modificações precisam ser definidas."
},
"appSelectorCard": {

2
assets/i18n/strings_ro_RO.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"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": "Următoarele patch-uri au fost eliminate de la ultima dată când le-ați folosit.\n\n${patches}\n\n${newPatches}Continuați oricum?",
"requiredOptionDialogText": "Unele opțiuni pentru patch-uri trebuie setate."
},
"appSelectorCard": {

2
assets/i18n/strings_ru_RU.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"widgetTitle": "Патчер",
"patchButton": "Пропатчить",
"incompatibleArchWarningDialogText": "Патчинг на этой архитектуре еще не поддерживается и может завершиться неудачей. Продолжить?",
"removedPatchesWarningDialogText": "Следующие патчи были удалены с момента их последнего использования.\n\n ${patches}\n\n Все равно продолжить?",
"removedPatchesWarningDialogText": "Следующие патчи были удалены с момента их последнего использования.\n\n ${patches}\n\n ${newPatches}Все равно продолжить?",
"requiredOptionDialogText": "Некоторые параметры патчей должны быть обязательно установлены."
},
"appSelectorCard": {

0
assets/i18n/strings_si_LK.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_sk_SK.i18n.json Normal file → Executable file
View File

2
assets/i18n/strings_sl_SI.i18n.json Normal file → Executable file
View File

@@ -45,7 +45,7 @@
"patcherView": {
"widgetTitle": "Popravljalnik",
"patchButton": "Popravi",
"removedPatchesWarningDialogText": "Spodnji popravki so bili odstranjeni, odkar ste jih nazadnje uporabili.\n\n${patches}\n\nVseeno nadaljujem?"
"removedPatchesWarningDialogText": "Spodnji popravki so bili odstranjeni, odkar ste jih nazadnje uporabili.\n\n${patches}\n\n${newPatches}Vseeno nadaljujem?"
},
"appSelectorCard": {
"widgetTitle": "Izberi aplikacijo",

0
assets/i18n/strings_sq_AL.i18n.json Normal file → Executable file
View File

2
assets/i18n/strings_sr_CS.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"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": "Sledeći pečevi su uklonjeni od poslednjeg puta kada ste ih koristili.\n\n${patches}\n\n${newPatches}Ipak nastaviti?",
"requiredOptionDialogText": "Neke opcije moraju biti izabrane."
},
"appSelectorCard": {

2
assets/i18n/strings_sr_SP.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"widgetTitle": "Печер",
"patchButton": "Печуј",
"incompatibleArchWarningDialogText": "Печовање на овој архитектури још увек није подржано и можда неће успети. Ипак наставити?",
"removedPatchesWarningDialogText": "Следећи печеви су уклоњени од последњег пута када сте их користили.\n\n${patches}\n\nИпак наставити?",
"removedPatchesWarningDialogText": "Следећи печеви су уклоњени од последњег пута када сте их користили.\n\n${patches}\n\n${newPatches}Ипак наставити?",
"requiredOptionDialogText": "Неке опције морају бити изабране."
},
"appSelectorCard": {

2
assets/i18n/strings_sv_SE.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"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": "Följande patchar har tagits bort sedan du senast använde dem.\n\n${patches}\n\n${newPatches}Fortsätt ändå?",
"requiredOptionDialogText": "Vissa patchalternativ måste anges."
},
"appSelectorCard": {

0
assets/i18n/strings_sw_KE.i18n.json Normal file → Executable file
View File

2
assets/i18n/strings_ta_IN.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"widgetTitle": "இணைப்பான்",
"patchButton": "இணைப்பு",
"incompatibleArchWarningDialogText": "இந்தக் கட்டமைப்பில் பிறழுதல் இன்னும் ஆதரிக்கப்படவில்லை மற்றும் தோல்வியடையக்கூடும். எப்படியும் தொடரவா?",
"removedPatchesWarningDialogText": "நீங்கள் கடைசியாகப் பயன்படுத்தியதிலிருந்து பின்வரும் பிறழ்கள் அகற்றப்பட்டன\n\n${patches}\n\nஎப்படியும் தொடரவா?",
"removedPatchesWarningDialogText": "நீங்கள் கடைசியாகப் பயன்படுத்தியதிலிருந்து பின்வரும் பிறழ்கள் அகற்றப்பட்டன\n\n${patches}\n\n${newPatches}எப்படியும் தொடரவா?",
"requiredOptionDialogText": "சில பிறழ்களுக்கு விருப்பங்களை அமைக்க வேண்டும்."
},
"appSelectorCard": {

0
assets/i18n/strings_te_IN.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_th_TH.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_tl_PH.i18n.json Normal file → Executable file
View File

2
assets/i18n/strings_tr_TR.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"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": "Aşağıdaki yamalar son kullanımınızdan sonra kaldırıldı.\n\n${patches}\n\n${newPatches}Yine de devam edilsin mi?",
"requiredOptionDialogText": "Bazı yama seçeneklerinin ayarlanması gerekiyor."
},
"appSelectorCard": {

2
assets/i18n/strings_uk_UA.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"widgetTitle": "Патчер",
"patchButton": "Патчити",
"incompatibleArchWarningDialogText": "Патчінг на цій архітектурі ще не підтримується і може не спрацювати. Продовжити в будь-якому випадку?",
"removedPatchesWarningDialogText": "Наступні патчі було видалено з моменту останнього використання.\n\n${patches}\n\nВсе одно продовжити?",
"removedPatchesWarningDialogText": "Наступні патчі було видалено з моменту останнього використання.\n\n${patches}\n\n${newPatches}Все одно продовжити?",
"requiredOptionDialogText": "Потрібно встановити деякі параметри патчу."
},
"appSelectorCard": {

0
assets/i18n/strings_ur_IN.i18n.json Normal file → Executable file
View File

0
assets/i18n/strings_uz_UZ.i18n.json Normal file → Executable file
View File

3
assets/i18n/strings_vi_VN.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"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?",
"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\n${newPatches}Vẫn tiếp tục?",
"requiredOptionDialogText": "Một số tùy chọn bản vá cần được thiết đặt."
},
"appSelectorCard": {
@@ -283,6 +283,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.",

2
assets/i18n/strings_zh_CN.i18n.json Normal file → Executable file
View File

@@ -55,7 +55,7 @@
"widgetTitle": "修补器",
"patchButton": "修补",
"incompatibleArchWarningDialogText": "对此架构的修补尚不支持或可能失败。仍要继续吗?",
"removedPatchesWarningDialogText": "自您上次使用以下补丁以来,它们已被删除。\n\n${patches}\n\n还是继续吗",
"removedPatchesWarningDialogText": "自您上次使用以下补丁以来,它们已被删除。\n\n${patches}\n\n${newPatches}还是继续吗?",
"requiredOptionDialogText": "某些补丁选项必须设置。"
},
"appSelectorCard": {

0
assets/i18n/strings_zh_HK.i18n.json Normal file → Executable file
View File

138
assets/i18n/strings_zh_TW.i18n.json Normal file → Executable file
View File

@@ -2,9 +2,9 @@
"okButton": "確認",
"cancelButton": "取消",
"dismissButton": "忽略",
"quitButton": "退出",
"quitButton": "離開",
"updateButton": "更新",
"suggested": "建議版本: ${version}",
"suggested": "建議版本${version}",
"yesButton": "是",
"noButton": "否",
"warning": "警告",
@@ -31,12 +31,12 @@
"installUpdate": "繼續安裝此更新嗎?",
"updateSheetTitle": "更新 ReVanced Manager",
"updateDialogTitle": "有可用的更新",
"updatePatchesSheetTitle": "更新 ReVanced 補丁",
"updatePatchesSheetTitle": "更新 ReVanced 的修補檔",
"updateChangelogTitle": "更新日誌",
"updateDialogText": "${file} 有新的更新可用。\n\n前安裝的版本是 ${version}。",
"downloadConsentDialogTitle": "要下載必要檔案嗎?",
"downloadConsentDialogText": "ReVanced Manager 需要下載必要檔案才能正常運作。",
"downloadConsentDialogText2": "這將帶您前往至 ${url}。",
"updateDialogText": "${file} 有新的更新可用。\n\n前安裝的版本是 ${version}。",
"downloadConsentDialogTitle": "要下載必要檔案嗎?",
"downloadConsentDialogText": "ReVanced Manager 需要下載必要檔案才能正常執行。",
"downloadConsentDialogText2": "這項操作將連結至 ${url}。",
"downloadingMessage": "正在下載更新...",
"downloadedMessage": "已下載更新",
"installingMessage": "正在安裝更新...",
@@ -53,75 +53,75 @@
},
"patcherView": {
"widgetTitle": "修補工具",
"patchButton": "補",
"patchButton": "補",
"incompatibleArchWarningDialogText": "此架構尚未支援修補,可能會失敗。仍要繼續嗎?",
"removedPatchesWarningDialogText": "自從您上次使用以來,以下補丁已遭移除。\n\n${patches} \n\n仍要繼續執行嗎",
"requiredOptionDialogText": "某些補丁需要進一步設定。"
"removedPatchesWarningDialogText": "自從您上次使用以來,以下修補檔已遭移除。\n\n${patches} \n\n${newPatches} 仍要繼續執行嗎?",
"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 +135,7 @@
"notificationTitle": "ReVanced Manager 正在修補",
"notificationText": "輕觸以返回安裝程式",
"exportApkButtonTooltip": "匯出已修補的 APK 檔案",
"exportLogButtonTooltip": "匯出日誌",
"exportLogButtonTooltip": "匯出記錄檔",
"screenshotDetected": "偵測到螢幕截圖。如果您想要分享記錄檔,請改為複製文字分享。\n\n要將記錄檔複製到剪貼簿嗎",
"copiedToClipboard": "已將記錄檔複製到剪貼簿",
"noExit": "安裝程式仍在執行,無法結束..."
@@ -144,54 +144,54 @@
"widgetTitle": "設定",
"appearanceSectionTitle": "外觀",
"teamSectionTitle": "團隊",
"debugSectionTitle": "錯",
"debugSectionTitle": "錯",
"advancedSectionTitle": "進階",
"exportSectionTitle": "匯入匯出",
"exportSectionTitle": "匯入匯出",
"dataSectionTitle": "資料來源",
"themeModeLabel": "應用程式主題",
"systemThemeLabel": "系統預設",
"lightThemeLabel": "淺色模式",
"darkThemeLabel": "深色模式",
"dynamicThemeLabel": "質感設計",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "享受更貼近您裝置的使用體驗",
"languageLabel": "語言",
"languageUpdated": "已更新語言",
"sourcesLabel": "替代來源",
"sourcesLabelHint": "設定 ReVanced 補和 ReVanced 整合的替代來源",
"sourcesLabelHint": "設定 ReVanced 補和 ReVanced 整合的備用來源",
"sourcesIntegrationsLabel": "整合來源",
"useAlternativeSources": "使用替代來源",
"useAlternativeSourcesHint": "改用 ReVanced 補丁和 ReVanced 整合的替代來源,而不是 API",
"useAlternativeSourcesHint": "改用 ReVanced 修補檔和 ReVanced 整合的替代來源,而不是 API",
"sourcesResetDialogTitle": "重設",
"sourcesResetDialogText": "確定要將來源重設為預設值嗎?",
"apiURLResetDialogText": "確定要還原 API URL 至預設值嗎?",
"sourcesUpdateNote": "注意:這將自動從替代來源下載 ReVanced 補丁及 ReVanced 整合。\n\n這將連接您到替代來源。",
"sourcesUpdateNote": "注意:這項操作操作將自動從備用來源下載 ReVanced 修補檔和 ReVanced 整合。\n\n這項操作將連結至備用來源。",
"apiURLLabel": "API URL",
"apiURLHint": "設定 ReVanced Manager 的 API URL",
"selectApiURL": "API URL",
"orgPatchesLabel": "補丁組織",
"sourcesPatchesLabel": "補丁來源",
"orgPatchesLabel": "修補檔組織",
"sourcesPatchesLabel": "修補檔來源",
"orgIntegrationsLabel": "整合組織",
"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": "重新啟動應用程式以套用變更",
@@ -199,7 +199,7 @@
"deleteTempDirHint": "刪除未使用的暫存檔案",
"deletedTempDir": "已刪除暫存檔案",
"exportPatchesLabel": "匯出修補選取",
"exportPatchesHint": "修補選取匯出成 JSON 檔案",
"exportPatchesHint": "匯出修補選取 JSON 檔案",
"exportedPatches": "已匯出修補選取",
"noExportFileFound": "沒有可匯出的修補選取",
"importPatchesLabel": "匯入修補選取",
@@ -208,21 +208,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 +255,10 @@
"mountTypeLabel": "掛載",
"regularTypeLabel": "一般",
"patchedDateLabel": "修補日期",
"appliedPatchesLabel": "已套用補丁",
"appliedPatchesLabel": "已套用修補檔",
"sizeLabel": "檔案大小",
"patchedDateHint": "${date} ${time}",
"appliedPatchesHint": "已套用 ${quantity} 個補丁",
"appliedPatchesHint": "已套用 ${quantity} 個修補檔",
"updateNotImplemented": "這項功能尚未實作"
},
"contributorsView": {
@@ -277,17 +277,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": "由於未知原因導致安裝失敗。請重試。"
}
}

Some files were not shown because too many files have changed in this diff Show More