Compare commits

..

29 Commits

Author SHA1 Message Date
semantic-release-bot
8c8df698d4 chore(release): 1.23.0-dev.4 [skip ci]
# [1.23.0-dev.4](https://github.com/ReVanced/revanced-manager/compare/v1.23.0-dev.3...v1.23.0-dev.4) (2024-10-26)
2024-10-26 15:50:06 +00:00
oSumAtrIX
8d0d782ab5 build(Needs bump): Bump ReVanced Patcher (#2242)
Co-authored-by: aAbed <aabedhkhan@gmail.com>
2024-10-26 17:41:49 +02:00
semantic-release-bot
4db4789a06 chore(release): 1.23.0-dev.3 [skip ci]
# [1.23.0-dev.3](https://github.com/ReVanced/revanced-manager/compare/v1.23.0-dev.2...v1.23.0-dev.3) (2024-10-22)

### Bug Fixes

* Restore apk renaming during compile ([abdd9dc](abdd9dc430))
2024-10-22 16:16:20 +00:00
validcube
abdd9dc430 fix: Restore apk renaming during compile
Signed-off-by: validcube <pun.butrach@gmail.com>
2024-10-22 23:01:51 +07:00
semantic-release-bot
5193042e6b chore(release): 1.23.0-dev.2 [skip ci]
# [1.23.0-dev.2](https://github.com/ReVanced/revanced-manager/compare/v1.23.0-dev.1...v1.23.0-dev.2) (2024-10-21)

### Features

* Show changelogs from the latest to the last used patches version ([#2219](https://github.com/ReVanced/revanced-manager/issues/2219)) ([daba737](daba737ecb))
2024-10-21 10:27:00 +00:00
aAbed
daba737ecb feat: Show changelogs from the latest to the last used patches version (#2219) 2024-10-21 17:17:23 +07:00
ReVanced Bot
bd96701103 chore: Sync translations (#2233) 2024-10-21 17:16:15 +07:00
Pun Butrach
69c20b74cf chore: Restore format consistency 2024-10-21 04:27:53 +07:00
Pun Butrach
7297436ab4 ci: Update config 2024-10-21 03:18:21 +07:00
dependabot[bot]
a329626715 build(deps-dev): bump semantic-release from 23.1.1 to 24.1.3 (#2265)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-20 03:47:39 +07:00
Robert
50a20d0535 ci: Use semantic-release-pub for updating build number (#2263) 2024-10-19 05:34:26 +02:00
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
semantic-release-bot
a68a83940d chore(release): 1.22.1-dev.2 [skip ci]
## [1.22.1-dev.2](https://github.com/ReVanced/revanced-manager/compare/v1.22.1-dev.1...v1.22.1-dev.2) (2024-09-19)

### Bug Fixes

* Get changelogs for alternative sources ([#1766](https://github.com/ReVanced/revanced-manager/issues/1766)) ([c729842](c7298424e5))
* Resolve EACCESS error in special cases ([#2135](https://github.com/ReVanced/revanced-manager/issues/2135)) ([1f95767](1f95767aeb))
2024-09-19 23:07:33 +00:00
LightCat
1f95767aeb fix: Resolve EACCESS error in special cases (#2135)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2024-09-20 00:59:27 +02:00
aAbed
c7298424e5 fix: Get changelogs for alternative sources (#1766) 2024-09-20 00:57:07 +02:00
semantic-release-bot
d53f8cf130 chore(release): 1.22.1-dev.1 [skip ci]
## [1.22.1-dev.1](https://github.com/ReVanced/revanced-manager/compare/v1.22.0...v1.22.1-dev.1) (2024-09-17)

### Bug Fixes

* Fix the connectivity check toast again ([#2216](https://github.com/ReVanced/revanced-manager/issues/2216)) ([a7e2281](a7e2281805))
2024-09-17 12:56:13 +00:00
kitadai31
a7e2281805 fix: Fix the connectivity check toast again (#2216) 2024-09-17 19:48:05 +07:00
semantic-release-bot
0ce23d2d60 chore(release): 1.22.0 [skip ci]
# [1.22.0](https://github.com/ReVanced/revanced-manager/compare/v1.21.2...v1.22.0) (2024-09-09)

### Bug Fixes

* Bump SDK of each plugin using SDK lower than 31 ([01e4a76](01e4a76caa)), closes [/github.com/flutter/flutter/issues/153281#issuecomment-2292201697](https://github.com//github.com/flutter/flutter/issues/153281/issues/issuecomment-2292201697)
* Empty “tmp-XXXXXX” directory keeps growing in cacheDir ([#2194](https://github.com/ReVanced/revanced-manager/issues/2194)) ([f5a12e0](f5a12e01bd))
* Fix missing notification icon when shrinking resouces ([#2195](https://github.com/ReVanced/revanced-manager/issues/2195)) ([224be29](224be29a3d))
* Handle selecting files and folders for patch options correctly ([#2144](https://github.com/ReVanced/revanced-manager/issues/2144)) ([f1c2f41](f1c2f4146c))
* Lack of connectivity toast not showing due to incorrect comparison ([81f05e1](81f05e1b19))
* Migrate to onPopInvokedWithResult ([43d5888](43d5888182))
* Move temporary files outside of the cache directory ([#2193](https://github.com/ReVanced/revanced-manager/issues/2193)) ([1ef1f8d](1ef1f8d47a))
* Reland commit 01e4a76caa ([3dc695e](3dc695eafb))
* Specify our own FGS Type ([37c912b](37c912b598))

### Features

* Improve "Installation incompatible" dialog message ([#2164](https://github.com/ReVanced/revanced-manager/issues/2164)) ([51c0f14](51c0f14055))
* Support Flutter 3.24 ([3d8318d](3d8318da14))
2024-09-09 10:59:13 +00:00
Ushie
d0fe57970f chore: Merge branch dev to main (#2149) 2024-09-09 13:51:11 +03:00
semantic-release-bot
4dcdc57ffd chore(release): 1.22.0-dev.4 [skip ci]
# [1.22.0-dev.4](https://github.com/ReVanced/revanced-manager/compare/v1.22.0-dev.3...v1.22.0-dev.4) (2024-09-09)

### Bug Fixes

* Move temporary files outside of the cache directory ([#2193](https://github.com/ReVanced/revanced-manager/issues/2193)) ([1ef1f8d](1ef1f8d47a))
2024-09-09 10:50:05 +00:00
kitadai31
1ef1f8d47a fix: Move temporary files outside of the cache directory (#2193)
Co-authored-by: Pun Butrach <pun.butrach@gmail.com>
2024-09-09 17:42:03 +07:00
ReVanced Bot
d688f38a63 chore: Sync translations (#2166)
Signed-off-by: validcube <pun.butrach@gmail.com>
Co-authored-by: validcube <pun.butrach@gmail.com>
2024-09-09 14:14:59 +07:00
134 changed files with 1710 additions and 1184 deletions

View File

@@ -16,6 +16,8 @@ on:
jobs: jobs:
release: release:
name: Release name: Release
permissions:
contents: write
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout - name: Checkout
@@ -35,8 +37,7 @@ jobs:
- name: Set up Flutter - name: Set up Flutter
uses: subosito/flutter-action@v2 uses: subosito/flutter-action@v2
with: with:
channel: "stable" channel: stable
flutter-version: 3.24.x
- name: Install dependencies - name: Install dependencies
run: npm ci run: npm ci
@@ -50,13 +51,15 @@ jobs:
- name: Generate code files - name: Generate code files
run: dart run build_runner build --delete-conflicting-outputs run: dart run build_runner build --delete-conflicting-outputs
- name: Setup keystore
run: |
echo "${{ secrets.KEYSTORE }}" | base64 --decode > "keystore.jks"}
- name: Release - name: Release
env: env:
GITHUB_TOKEN: ${{ secrets.REPOSITORY_PUSH_ACCESS }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
signingKey: "keystore.jks" KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
keyStorePassword: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }} KEYSTORE_ENTRY_ALIAS: ${{ secrets.KEYSTORE_ENTRY_ALIAS }}
keyAlias: ${{ secrets.SIGNING_KEY_ALIAS }} KEYSTORE_ENTRY_PASSWORD: ${{ secrets.KEYSTORE_ENTRY_PASSWORD }}
keyPassword: ${{ secrets.SIGNING_KEY_PASSWORD }}
run: | run: |
echo "${{ secrets.SIGNING_KEYSTORE }}" | base64 --decode > android/app/keystore.jks
npx semantic-release npx semantic-release

View File

@@ -68,6 +68,5 @@ jobs:
git config user.name revanced-bot git config user.name revanced-bot
git config user.email github@revanced.app git config user.email github@revanced.app
sudo chown -R $USER:$USER .git 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 git push origin HEAD:feat/translations

88
.gitignore vendored
View File

@@ -1,41 +1,14 @@
# See https://www.dartlang.org/guides/libraries/private-files # Miscellaneous
*.class
# Files and directories created by pub *.log
.dart_tool/ *.pyc
.packages *.swp
build/ .DS_Store
# If you're building an application, you may want to check-in your pubspec.lock .atom/
# pubspec.lock .buildlog/
.history
# Directory created by dartdoc .svn/
# If you don't generate documentation locally you can remove this line. migrate_working_dir/
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
# IntelliJ related # IntelliJ related
*.iml *.iml
@@ -43,8 +16,39 @@ local.properties
*.iws *.iws
.idea/ .idea/
# Node Dependency directories # The .vscode folder contains launch configuration and tasks you configure in
node_modules/ # 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. # This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc. # 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: version:
revision: 85684f9300908116a78138ea4c6036c35c9a1236 revision: "2663184aa79047d0a33a14a3b607954f8fdd8730"
channel: stable channel: "stable"
project_type: app project_type: app
@@ -13,26 +13,11 @@ project_type: app
migration: migration:
platforms: platforms:
- platform: root - platform: root
create_revision: 85684f9300908116a78138ea4c6036c35c9a1236 create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 85684f9300908116a78138ea4c6036c35c9a1236 base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
- platform: android - platform: android
create_revision: 85684f9300908116a78138ea4c6036c35c9a1236 create_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
base_revision: 85684f9300908116a78138ea4c6036c35c9a1236 base_revision: 2663184aa79047d0a33a14a3b607954f8fdd8730
- 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
# User provided section # User provided section

View File

@@ -17,15 +17,10 @@
"@semantic-release/changelog", "@semantic-release/changelog",
"@semantic-release/release-notes-generator", "@semantic-release/release-notes-generator",
[ [
"@droidsolutions-oss/semantic-release-update-file", "semantic-release-pub",
{ {
"files": [ "publishPub": false,
{ "updateBuildNumber": true
"path": ["pubspec.yaml"],
"type": "flutter",
"branches": ["main", "dev"]
}
]
} }
], ],
[ [
@@ -48,7 +43,10 @@
"assets": [ "assets": [
{ {
"path": "build/app/outputs/apk/release/revanced-manager*.apk" "path": "build/app/outputs/apk/release/revanced-manager*.apk"
} },
],
"commits": [
"message": "chore: Release v${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
], ],
"successComment": false "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 GeneratedPluginRegistrant.java
# Remember to never publicly share your keystore. # 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 key.properties
**/*.keystore **/*.keystore
**/*.jks **/*.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,92 @@
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")
setProperty("archivesBaseName", "revanced-manager-v${flutter.versionName}")
}
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 -dontobfuscate
-keep class app.revanced.** { *; } -keep class app.revanced.** { *; }

View File

@@ -1,3 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <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"/> <uses-permission android:name="android.permission.INTERNET"/>
</manifest> </manifest>

View File

@@ -9,14 +9,15 @@ import android.os.Handler
import android.os.Looper import android.os.Looper
import app.revanced.library.ApkUtils import app.revanced.library.ApkUtils
import app.revanced.library.ApkUtils.applyTo 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.Aapt
import app.revanced.manager.flutter.utils.packageInstaller.InstallerReceiver import app.revanced.manager.flutter.utils.packageInstaller.InstallerReceiver
import app.revanced.manager.flutter.utils.packageInstaller.UninstallerReceiver 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.Patcher
import app.revanced.patcher.PatcherConfig import app.revanced.patcher.PatcherConfig
import app.revanced.patcher.patch.Patch
import app.revanced.patcher.patch.PatchResult import app.revanced.patcher.patch.PatchResult
import app.revanced.patcher.patch.loadPatchesFromDex
import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel import io.flutter.plugin.common.MethodChannel
@@ -37,7 +38,7 @@ class MainActivity : FlutterActivity() {
private var cancel: Boolean = false private var cancel: Boolean = false
private var stopResult: MethodChannel.Result? = null private var stopResult: MethodChannel.Result? = null
private lateinit var patches: PatchSet private lateinit var patches: Set<Patch<*>>
override fun configureFlutterEngine(flutterEngine: FlutterEngine) { override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine) super.configureFlutterEngine(flutterEngine)
@@ -70,7 +71,6 @@ class MainActivity : FlutterActivity() {
"runPatcher" -> { "runPatcher" -> {
val inFilePath = call.argument<String>("inFilePath") val inFilePath = call.argument<String>("inFilePath")
val outFilePath = call.argument<String>("outFilePath") val outFilePath = call.argument<String>("outFilePath")
val integrationsPath = call.argument<String>("integrationsPath")
val selectedPatches = call.argument<List<String>>("selectedPatches") val selectedPatches = call.argument<List<String>>("selectedPatches")
val options = call.argument<Map<String, Map<String, Any>>>("options") val options = call.argument<Map<String, Map<String, Any>>>("options")
val tmpDirPath = call.argument<String>("tmpDirPath") val tmpDirPath = call.argument<String>("tmpDirPath")
@@ -80,7 +80,6 @@ class MainActivity : FlutterActivity() {
if ( if (
inFilePath != null && inFilePath != null &&
outFilePath != null && outFilePath != null &&
integrationsPath != null &&
selectedPatches != null && selectedPatches != null &&
options != null && options != null &&
tmpDirPath != null && tmpDirPath != null &&
@@ -92,14 +91,17 @@ class MainActivity : FlutterActivity() {
result, result,
inFilePath, inFilePath,
outFilePath, outFilePath,
integrationsPath,
selectedPatches, selectedPatches,
options, options,
tmpDirPath, tmpDirPath,
keyStoreFilePath, keyStoreFilePath,
keystorePassword keystorePassword
) )
} else result.notImplemented() } else result.error(
"INVALID_ARGUMENTS",
"Invalid arguments",
"One or more arguments are missing"
)
} }
"stopPatcher" -> { "stopPatcher" -> {
@@ -113,14 +115,16 @@ class MainActivity : FlutterActivity() {
try { try {
val patchBundleFile = File(patchBundleFilePath) val patchBundleFile = File(patchBundleFilePath)
patchBundleFile.setWritable(false) patchBundleFile.setWritable(false)
patches = PatchBundleLoader.Dex( patches = loadPatchesFromDex(
patchBundleFile, setOf(patchBundleFile),
optimizedDexDirectory = codeCacheDir optimizedDexDirectory = codeCacheDir
) )
} catch (ex: Exception) { } catch (t: Throwable) {
return@setMethodCallHandler result.notImplemented() return@setMethodCallHandler result.error(
} catch (err: Error) { "PATCH_BUNDLE_ERROR",
return@setMethodCallHandler result.notImplemented() "Failed to load patch bundle",
t.stackTraceToString()
)
} }
JSONArray().apply { JSONArray().apply {
@@ -130,13 +134,13 @@ class MainActivity : FlutterActivity() {
put("description", it.description) put("description", it.description)
put("excluded", !it.use) put("excluded", !it.use)
put("compatiblePackages", JSONArray().apply { put("compatiblePackages", JSONArray().apply {
it.compatiblePackages?.forEach { compatiblePackage -> it.compatiblePackages?.forEach { (name, versions) ->
val compatiblePackageJson = JSONObject().apply { val compatiblePackageJson = JSONObject().apply {
put("name", compatiblePackage.name) put("name", name)
put( put(
"versions", "versions",
JSONArray().apply { JSONArray().apply {
compatiblePackage.versions?.forEach { version -> versions?.forEach { version ->
put(version) put(version)
} }
}) })
@@ -172,7 +176,7 @@ class MainActivity : FlutterActivity() {
} }
}) })
} ?: put("values", null) } ?: put("values", null)
put("valueType", option.valueType) put("type", option.type)
}.let(::put) }.let(::put)
} }
}) })
@@ -211,7 +215,6 @@ class MainActivity : FlutterActivity() {
result: MethodChannel.Result, result: MethodChannel.Result,
inFilePath: String, inFilePath: String,
outFilePath: String, outFilePath: String,
integrationsPath: String,
selectedPatches: List<String>, selectedPatches: List<String>,
options: Map<String, Map<String, Any>>, options: Map<String, Map<String, Any>>,
tmpDirPath: String, tmpDirPath: String,
@@ -219,8 +222,10 @@ class MainActivity : FlutterActivity() {
keystorePassword: String keystorePassword: String
) { ) {
val inFile = File(inFilePath) 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 outFile = File(outFilePath)
val integrations = File(integrationsPath)
val keyStoreFile = File(keyStoreFilePath) val keyStoreFile = File(keyStoreFilePath)
val tmpDir = File(tmpDirPath) val tmpDir = File(tmpDirPath)
@@ -286,8 +291,8 @@ class MainActivity : FlutterActivity() {
updateProgress(0.02, "Loading patches...", "Loading patches") updateProgress(0.02, "Loading patches...", "Loading patches")
val patches = patches.filter { patch -> val patches = patches.filter { patch ->
val isCompatible = patch.compatiblePackages?.any { val isCompatible = patch.compatiblePackages?.any { (name, _) ->
it.name == patcher.context.packageMetadata.packageName name == patcher.context.packageMetadata.packageName
} ?: false } ?: false
val compatibleOrUniversal = val compatibleOrUniversal =
@@ -304,10 +309,7 @@ class MainActivity : FlutterActivity() {
updateProgress(0.05, "Executing...", "") updateProgress(0.05, "Executing...", "")
val patcherResult = patcher.use { val patcherResult = patcher.use {
patcher.apply { it += patches
acceptIntegrations(setOf(integrations))
acceptPatches(patches)
}
runBlocking { runBlocking {
// Update the progress bar every time a patch is executed from 0.15 to 0.7 // Update the progress bar every time a patch is executed from 0.15 to 0.7
@@ -315,7 +317,7 @@ class MainActivity : FlutterActivity() {
val progressStep = 0.55 / totalPatchesCount val progressStep = 0.55 / totalPatchesCount
var progress = 0.05 var progress = 0.05
patcher.apply(false).collect(FlowCollector { patchResult: PatchResult -> patcher().collect(FlowCollector { patchResult: PatchResult ->
if (cancel(patcher::close)) return@FlowCollector if (cancel(patcher::close)) return@FlowCollector
val msg = patchResult.exception?.let { val msg = patchResult.exception?.let {
@@ -343,10 +345,11 @@ class MainActivity : FlutterActivity() {
if (cancel(patcher::close)) return@Thread if (cancel(patcher::close)) return@Thread
ApkUtils.sign( ApkUtils.signApk(
inFile, inFile,
outFile, outFile,
ApkUtils.SigningOptions( "ReVanced",
ApkUtils.KeyStoreDetails(
keyStoreFile, keyStoreFile,
keystorePassword, keystorePassword,
"alias", "alias",
@@ -364,6 +367,9 @@ class MainActivity : FlutterActivity() {
"An error occurred:\n$stack" "An error occurred:\n$stack"
) )
} }
} finally {
inFile.delete()
tmpDir.deleteRecursively()
} }
handler.post { result.success(null) } handler.post { result.success(null) }

View File

@@ -1,3 +1,7 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <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"/> <uses-permission android:name="android.permission.INTERNET"/>
</manifest> </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
}

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

@@ -0,0 +1,31 @@
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<*, *, *, *, *, *>
if (it.compileSdk != null && it.compileSdk!! < 31)
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.parallel=true
org.gradle.daemon=true org.gradle.daemon=true
org.gradle.caching=true org.gradle.caching=true
android.useAndroidX=true
android.defaults.buildfeatures.buildconfig=true android.defaults.buildfeatures.buildconfig=true
android.nonTransitiveRClass=false android.nonTransitiveRClass=false
android.nonFinalResIds=false android.nonFinalResIds=false

View File

@@ -0,0 +1,9 @@
[versions]
revanced-patcher = "20.0.2"
revanced-library = "3.0.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.5.0" apply false
id("org.jetbrains.kotlin.android") version "2.0.20" apply false
}
include(":app")

View File

@@ -55,7 +55,8 @@
"widgetTitle": "Patcher", "widgetTitle": "Patcher",
"patchButton": "Patch", "patchButton": "Patch",
"incompatibleArchWarningDialogText": "Patching on this architecture is not yet supported and might fail. Continue anyways?", "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." "requiredOptionDialogText": "Some patch options have to be set."
}, },
"appSelectorCard": { "appSelectorCard": {
@@ -157,20 +158,18 @@
"languageLabel": "Language", "languageLabel": "Language",
"languageUpdated": "Language updated", "languageUpdated": "Language updated",
"sourcesLabel": "Alternative sources", "sourcesLabel": "Alternative sources",
"sourcesLabelHint": "Configure the alternative sources for ReVanced Patches and ReVanced Integrations", "sourcesLabelHint": "Configure the alternative sources for ReVanced Patches",
"sourcesIntegrationsLabel": "Integrations source",
"useAlternativeSources": "Use alternative sources", "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", "sourcesResetDialogTitle": "Reset",
"sourcesResetDialogText": "Are you sure you want to reset your sources to their default values?", "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?", "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", "apiURLLabel": "API URL",
"apiURLHint": "Configure the API URL of ReVanced Manager", "apiURLHint": "Configure the API URL of ReVanced Manager",
"selectApiURL": "API URL", "selectApiURL": "API URL",
"orgPatchesLabel": "Patches organization", "orgPatchesLabel": "Patches organization",
"sourcesPatchesLabel": "Patches source", "sourcesPatchesLabel": "Patches source",
"orgIntegrationsLabel": "Integrations organization",
"contributorsLabel": "Contributors", "contributorsLabel": "Contributors",
"contributorsHint": "A list of contributors of ReVanced", "contributorsHint": "A list of contributors of ReVanced",
"logsLabel": "Share logs", "logsLabel": "Share logs",
@@ -290,4 +289,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?", "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." "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

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

@@ -55,7 +55,8 @@
"widgetTitle": "المُعَّدِّل", "widgetTitle": "المُعَّدِّل",
"patchButton": "تعديل", "patchButton": "تعديل",
"incompatibleArchWarningDialogText": "لم يتم دعم التعديلات الخاصة بهذه البنية حتى الآن وقد تفشل. هل تريد المتابعة على أي حال؟", "incompatibleArchWarningDialogText": "لم يتم دعم التعديلات الخاصة بهذه البنية حتى الآن وقد تفشل. هل تريد المتابعة على أي حال؟",
"removedPatchesWarningDialogText": "تم إزالة التعديلات التالية منذ آخر مرة استخدمتها فيها.\n\n${patches}\n\nتابع على أي حال؟", "removedPatchesWarningDialogText": "تمت إزالة التعديلات منذ آخر مرة قمت فيها بتعديل هذا التطبيق:\n\n${patches}\n\n${newPatches}هل تريد المتابعة على أي حال؟",
"addedPatchesDialogText": "تمت إضافة التعديلات منذ آخر مرة قمت فيها بتعديل هذا التطبيق:\n\n${addedPatches}\n\n",
"requiredOptionDialogText": "يجب ضبط بعض خيارات التعديل." "requiredOptionDialogText": "يجب ضبط بعض خيارات التعديل."
}, },
"appSelectorCard": { "appSelectorCard": {
@@ -283,6 +284,7 @@
"status_failure_timeout_description": "استغرق التثبيت وقتا طويلا للانتهاء.\n\nهل تود أن تجرب مجددا؟", "status_failure_timeout_description": "استغرق التثبيت وقتا طويلا للانتهاء.\n\nهل تود أن تجرب مجددا؟",
"status_failure_storage_description": "فشل التثبيت بسبب عدم كفاية مساحة التخزين.\n\nقم بتحرير بعض المساحة وحاول مرة أخرى.", "status_failure_storage_description": "فشل التثبيت بسبب عدم كفاية مساحة التخزين.\n\nقم بتحرير بعض المساحة وحاول مرة أخرى.",
"status_failure_invalid_description": "فشل التثبيت نظرًا لأن التطبيق المعدل غير صالح.\n\nهل تريد إلغاء تثبيت التطبيق والمحاولة مرة أخرى؟", "status_failure_invalid_description": "فشل التثبيت نظرًا لأن التطبيق المعدل غير صالح.\n\nهل تريد إلغاء تثبيت التطبيق والمحاولة مرة أخرى؟",
"status_failure_incompatible_description": "التطبيق غير متوافق مع هذا الجهاز.\n\nاستخدم ملف APK متوافق مع هذا الجهاز وحاول مجددًا.",
"status_failure_conflict_description": "تم منع التثبيت من خلال تثبيت موجود للتطبيق.\n\nهل ترغب في إلغاء تثبيت التطبيق المثبت والمحاولة مرة أخرى؟", "status_failure_conflict_description": "تم منع التثبيت من خلال تثبيت موجود للتطبيق.\n\nهل ترغب في إلغاء تثبيت التطبيق المثبت والمحاولة مرة أخرى؟",
"status_failure_blocked_description": "تم حظر التثبيت بواسطة ${packageName}.\n\nاضبط إعدادات الأمان الخاصة بك وحاول مرة أخرى.", "status_failure_blocked_description": "تم حظر التثبيت بواسطة ${packageName}.\n\nاضبط إعدادات الأمان الخاصة بك وحاول مرة أخرى.",
"install_failed_verification_failure_description": "فشل التثبيت بسبب مشكلة التحقق.\n\nاضبط إعدادات الأمان وحاول مرة أخرى.", "install_failed_verification_failure_description": "فشل التثبيت بسبب مشكلة التحقق.\n\nاضبط إعدادات الأمان وحاول مرة أخرى.",

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

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

@@ -25,7 +25,7 @@
"updatesSubtitle": "Yeniləmələr", "updatesSubtitle": "Yeniləmələr",
"lastPatchedAppSubtitle": "Son yamaqlanmış tətbiq", "lastPatchedAppSubtitle": "Son yamaqlanmış tətbiq",
"patchedSubtitle": "Quraşdırılmış tətbiqlər", "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ı", "noSavedAppFound": "Heç bir tətbiq tapılmadı",
"noInstallations": "Yamaqlanmış tətbiq quraşdırılmayıb", "noInstallations": "Yamaqlanmış tətbiq quraşdırılmayıb",
"installUpdate": "Yeniləməni quraşdırmağa davam edilsin?", "installUpdate": "Yeniləməni quraşdırmağa davam edilsin?",
@@ -55,7 +55,8 @@
"widgetTitle": "Yamaqlayıcı", "widgetTitle": "Yamaqlayıcı",
"patchButton": "Yamaqla", "patchButton": "Yamaqla",
"incompatibleArchWarningDialogText": "Bu quruluşda yamaqlama hələ dəstəklənmir və uğursuz ola bilər. Yenə də davam edilsin?", "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." "requiredOptionDialogText": "Bəzi yamaq seçimləri təyin edilməlidir."
}, },
"appSelectorCard": { "appSelectorCard": {
@@ -194,7 +195,7 @@
"requireSuggestedAppVersionDialogText": "Təklif edilən versiya deyilsə tətbiq seçilməsi gözlənilməz problemlər yarada bilər.\n\nHər halda davam etmək istəyirsiniz?", "requireSuggestedAppVersionDialogText": "Təklif edilən versiya deyilsə tətbiq seçilməsi gözlənilməz problemlər yarada bilər.\n\nHər halda davam etmək istəyirsiniz?",
"aboutLabel": "Haqqında", "aboutLabel": "Haqqında",
"snackbarMessage": "Buferə köçürüldü", "snackbarMessage": "Buferə köçürüldü",
"restartAppForChanges": "Dəyişiklikləri tətbiq etmək üçün tətbiqi yenidən başlat", "restartAppForChanges": "Dəyişiklikləri işlətmək üçün tətbiqi yenidən başlat",
"deleteTempDirLabel": "Müvəqqəti faylları sil", "deleteTempDirLabel": "Müvəqqəti faylları sil",
"deleteTempDirHint": "İstifadəsiz, müvəqqəti faylları sil", "deleteTempDirHint": "İstifadəsiz, müvəqqəti faylları sil",
"deletedTempDir": "Müvəqqəti fayllar silindi", "deletedTempDir": "Müvəqqəti fayllar silindi",
@@ -283,8 +284,9 @@
"status_failure_timeout_description": "Quraşdırmanın bitməsi çox uzun çəkdi.\n\nYenidən cəhd etmək istəyirsiniz?", "status_failure_timeout_description": "Quraşdırmanın bitməsi çox uzun çəkdi.\n\nYenidən cəhd etmək istəyirsiniz?",
"status_failure_storage_description": "Yetərsiz yaddaş sahəsinə görə quraşdırma uğursuz oldu.\n\nBir az yer boşaldıb yenidən sınayın.", "status_failure_storage_description": "Yetərsiz yaddaş sahəsinə görə quraşdırma uğursuz oldu.\n\nBir az yer boşaldıb yenidən sınayın.",
"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_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_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_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?", "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." "status_unknown_description": "Naməlum səbəbə görə quraşdırma uğursuz oldu. Lütfən yenidən sınayın."

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

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

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

@@ -55,7 +55,8 @@
"widgetTitle": "Модификатор", "widgetTitle": "Модификатор",
"patchButton": "Модифицирайте", "patchButton": "Модифицирайте",
"incompatibleArchWarningDialogText": "Процесът на модифициране в момента не се поддържа на устройства с тази архитектура и може да се провали. Ще продължите ли?", "incompatibleArchWarningDialogText": "Процесът на модифициране в момента не се поддържа на устройства с тази архитектура и може да се провали. Ще продължите ли?",
"removedPatchesWarningDialogText": "Следните модификации са били премахнати след като са били употребени за последно от вас.\n\n${patches}\n\nПродължете въпреки това?", "removedPatchesWarningDialogText": "Премахнати пачове след последната корекция на приложението:\n\n${patches}\n\n${newPatches}Да продължа ли все пак?",
"addedPatchesDialogText": "След последната промяна на това приложение бяха добавени следните модификации:\n\n${addedPatches}",
"requiredOptionDialogText": "Опциите на някои модификации трябва да бъдат зададени." "requiredOptionDialogText": "Опциите на някои модификации трябва да бъдат зададени."
}, },
"appSelectorCard": { "appSelectorCard": {
@@ -283,6 +284,7 @@
"status_failure_timeout_description": "Инсталацията отне твърде много време.\n\nИскате ли да опитате отново?", "status_failure_timeout_description": "Инсталацията отне твърде много време.\n\nИскате ли да опитате отново?",
"status_failure_storage_description": "Инсталацията се провали поради недостатъчно място в хранилището.\n\nОсвободете малко място и опитайте отново.", "status_failure_storage_description": "Инсталацията се провали поради недостатъчно място в хранилището.\n\nОсвободете малко място и опитайте отново.",
"status_failure_invalid_description": "Инсталацията се провали поради невалидност на модифицираното приложение.\n\nДеинсталирайте приложението и опитайте отново?", "status_failure_invalid_description": "Инсталацията се провали поради невалидност на модифицираното приложение.\n\nДеинсталирайте приложението и опитайте отново?",
"status_failure_incompatible_description": "Приложението е несъвместимо с това устройство. \n\nИзползвайте APK, който се поддържа от това устройство, и опитайте отново.",
"status_failure_conflict_description": "Инсталацията беше възпрепятствана от съществуваща инсталация на това приложение.\n\nДеинсталирайте инсталираното приложение и опитайте отново?", "status_failure_conflict_description": "Инсталацията беше възпрепятствана от съществуваща инсталация на това приложение.\n\nДеинсталирайте инсталираното приложение и опитайте отново?",
"status_failure_blocked_description": "Инсталацията беше блокирана от ${packageName}.\n\nПроменете настройките си за сигурност и опитайте отново.", "status_failure_blocked_description": "Инсталацията беше блокирана от ${packageName}.\n\nПроменете настройките си за сигурност и опитайте отново.",
"install_failed_verification_failure_description": "Инсталацията се провали поради проблем с проверката.\n\nПроменете настройките си за сигурност и опитайте отново.", "install_failed_verification_failure_description": "Инсталацията се провали поради проблем с проверката.\n\nПроменете настройките си за сигурност и опитайте отново.",

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

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

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

@@ -55,7 +55,8 @@
"widgetTitle": "Záplatovač", "widgetTitle": "Záplatovač",
"patchButton": "Záplatovat", "patchButton": "Záplatovat",
"incompatibleArchWarningDialogText": "Úprava této architektury není zatím podporována a může selhat. Přesto pokračovat?", "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." "requiredOptionDialogText": "Je třeba nastavit některé možnosti záplat."
}, },
"appSelectorCard": { "appSelectorCard": {

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

@@ -55,7 +55,8 @@
"widgetTitle": "Patcher", "widgetTitle": "Patcher",
"patchButton": "Patch", "patchButton": "Patch",
"incompatibleArchWarningDialogText": "Patching på denne arkitektur understøttes endnu ikke og kan mislykkes. Fortsæt alligevel?", "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." "requiredOptionDialogText": "Nogle patch muligheder skal indstilles."
}, },
"appSelectorCard": { "appSelectorCard": {

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

@@ -55,7 +55,8 @@
"widgetTitle": "Patcher", "widgetTitle": "Patcher",
"patchButton": "Patchen", "patchButton": "Patchen",
"incompatibleArchWarningDialogText": "Patches auf dieser Architektur werden noch nicht unterstützt und könnten fehlschlagen. Trotzdem fortfahren?", "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." "requiredOptionDialogText": "Einige Patch-Optionen müssen gesetzt werden."
}, },
"appSelectorCard": { "appSelectorCard": {

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

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

View File

@@ -52,7 +52,7 @@
"patcherView": { "patcherView": {
"widgetTitle": "Parcheador", "widgetTitle": "Parcheador",
"patchButton": "Parchear", "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." "requiredOptionDialogText": "Algunas opciones de parche tienen que ser establecidas."
}, },
"appSelectorCard": { "appSelectorCard": {

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

@@ -55,7 +55,8 @@
"widgetTitle": "Parcheador", "widgetTitle": "Parcheador",
"patchButton": "Parchear", "patchButton": "Parchear",
"incompatibleArchWarningDialogText": "El parche en esta arquitectura aún no está soportado y podría fallar. ¿Continuar de todos modos?", "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." "requiredOptionDialogText": "Deben establecerse algunas opciones de parche."
}, },
"appSelectorCard": { "appSelectorCard": {

View File

@@ -52,7 +52,7 @@
"patcherView": { "patcherView": {
"widgetTitle": "Parcheador", "widgetTitle": "Parcheador",
"patchButton": "Parchear", "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." "requiredOptionDialogText": "Algunas opciones de parche tienen que ser establecidas."
}, },
"appSelectorCard": { "appSelectorCard": {

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

@@ -51,7 +51,6 @@
"patcherView": { "patcherView": {
"widgetTitle": "Parandaja", "widgetTitle": "Parandaja",
"patchButton": "Parandus", "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. " "requiredOptionDialogText": "Mõned paranduste sätted on vaja valida. "
}, },
"appSelectorCard": { "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", "okButton": "OK",
"cancelButton": "Peruuta", "cancelButton": "Peruuta",
"dismissButton": "Sulje", "dismissButton": "Hylkää",
"quitButton": "Sulje", "quitButton": "Sulje",
"updateButton": "Päivitä", "updateButton": "Päivitä",
"suggested": "Ehdotettu: ${version}", "suggested": "Ehdotettu: ${version}",
@@ -55,7 +55,7 @@
"widgetTitle": "Paikkaaja", "widgetTitle": "Paikkaaja",
"patchButton": "Paikkaa", "patchButton": "Paikkaa",
"incompatibleArchWarningDialogText": "Paikkaamista ei vielä tueta tällä kokoonpanolla, ja se saattaa epäonnistua. Jatketaanko silti?", "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ä." "requiredOptionDialogText": "Joitakin paikkausasetuksia on määritettävä."
}, },
"appSelectorCard": { "appSelectorCard": {
@@ -82,7 +82,7 @@
"selectFromStorageButton": "Valitse tallennustilasta", "selectFromStorageButton": "Valitse tallennustilasta",
"errorMessage": "Valittua sovellusta ei voida käyttää", "errorMessage": "Valittua sovellusta ei voida käyttää",
"downloadToast": "Lataustoiminto ei ole vielä käytettävissä", "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", "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." "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", "loadPatchesSelection": "Lataa paikkausvalikoima",
"noSavedPatches": "Valitulle sovellukselle ei ole tallennettu paikkausvalikoimaa.\nTallenna nykyinen valikoima painamalla \"Valmis\".", "noSavedPatches": "Valitulle sovellukselle ei ole tallennettu paikkausvalikoimaa.\nTallenna nykyinen valikoima painamalla \"Valmis\".",
"noPatchesFound": "Valitulle sovellukselle ei löytynyt paikkauksia", "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": { "patchOptionsView": {
"customValue": "Oma arvo", "customValue": "Oma arvo",
"setToNull": "Aseta nollaksi", "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", "viewTitle": "Paikkausasetukset",
"saveOptions": "Tallenna", "saveOptions": "Tallenna",
"unselectPatch": "Poista paikkauksen valinta", "unselectPatch": "Poista paikkauksen valinta",
"tooltip": "Enemmän syöttöasetuksia", "tooltip": "Enemmän syöttöasetuksia",
"selectFilePath": "Valitse tiedostosijainti", "selectFilePath": "Valitse tiedostosijainti",
"selectFolder": "Valitse kansio", "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", "unsupportedOption": "Tätä asetusta ei tueta",
"requiredOptionNull": "Seuraavat asetukset on määritettävä:\n\n${options}" "requiredOptionNull": "Seuraavat asetukset on määritettävä:\n\n${options}"
}, },
@@ -198,7 +198,7 @@
"deleteTempDirLabel": "Poista väliaikaistiedostot", "deleteTempDirLabel": "Poista väliaikaistiedostot",
"deleteTempDirHint": "Poista käyttämättömät väliaikaistiedostot", "deleteTempDirHint": "Poista käyttämättömät väliaikaistiedostot",
"deletedTempDir": "Väliaikaistiedostot poistettiin", "deletedTempDir": "Väliaikaistiedostot poistettiin",
"exportPatchesLabel": "Vie paikkasvalikoima", "exportPatchesLabel": "Vie paikkausvalikoima",
"exportPatchesHint": "Vie paikkausvalikoima JSON-tiedostoon", "exportPatchesHint": "Vie paikkausvalikoima JSON-tiedostoon",
"exportedPatches": "Paikkausvalikoima vietiin", "exportedPatches": "Paikkausvalikoima vietiin",
"noExportFileFound": "Vietäviä paikkausvalikoimia ei ole", "noExportFileFound": "Vietäviä paikkausvalikoimia ei ole",

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

@@ -52,7 +52,6 @@
"patcherView": { "patcherView": {
"widgetTitle": "Tagapagtapal", "widgetTitle": "Tagapagtapal",
"patchButton": "Tapalan", "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." "requiredOptionDialogText": "Kailangan mo i-set ang ilang mga opsyon para sa patch."
}, },
"appSelectorCard": { "appSelectorCard": {

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

@@ -55,7 +55,8 @@
"widgetTitle": "Patcheur", "widgetTitle": "Patcheur",
"patchButton": "Patcher", "patchButton": "Patcher",
"incompatibleArchWarningDialogText": "La correction sur cette architecture n'est pas encore prise en charge et pourrait échouer. Continuer quand même ?", "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." "requiredOptionDialogText": "Certaines options de patch doivent être définies."
}, },
"appSelectorCard": { "appSelectorCard": {

View File

@@ -0,0 +1,292 @@
{
"okButton": "CEART GO LEOR",
"cancelButton": "Cealaigh",
"dismissButton": "Díbhunaigh",
"quitButton": "Scoir",
"updateButton": "Nuashonraigh",
"suggested": "Molta: ${version}",
"yesButton": "Tá",
"noButton": "Níl",
"warning": "Rabhadh",
"notice": "Fógra",
"noShowAgain": "Ná taispeáin é seo arís",
"add": "Cuir",
"remove": "Bain",
"showChangelogButton": "Taispeáin athraitheoir",
"showUpdateButton": "Taispeáin nuashonrú",
"navigationView": {
"dashboardTab": "Deais",
"patcherTab": "Paisteálaí",
"settingsTab": "Socruithe"
},
"homeView": {
"refreshSuccess": "Athnuachan go rathúil",
"widgetTitle": "Deais",
"updatesSubtitle": "Nuashonruithe",
"lastPatchedAppSubtitle": "An aip deireanach a paisteáladh",
"patchedSubtitle": "Aipeanna Suiteáilte",
"changeLaterSubtitle": "Is féidir leat é seo a athrú sna socruithe níos déanaí.",
"noSavedAppFound": "Níl aon aip le fáil",
"noInstallations": "Níl aon aipeanna paiste suiteáilte",
"installUpdate": "Lean ar aghaidh ag suiteáil an nuashonrú?",
"updateSheetTitle": "Nuashonraigh an Bainisteoir ReVanced",
"updateDialogTitle": "Nuashonrú nua ar fáil",
"updatePatchesSheetTitle": "Nuashonraigh Paistí ReVanced",
"updateChangelogTitle": "Liosta athraithe",
"updateDialogText": "Tá nuashonrú nua ar fáil do ${file}.\n\nIs é ${version} an leagan atá suiteáilte faoi láthair.",
"downloadConsentDialogTitle": "Íoslódáil comhaid riachtanacha?",
"downloadConsentDialogText": "Ní mór do ReVanced Manager na comhaid riachtanacha a íoslódáil chun oibriú i gceart.",
"downloadConsentDialogText2": "Ceanglóidh sé seo tú le ${url}.",
"downloadingMessage": "Íoslódáil nuashonrú...",
"downloadedMessage": "Tá nuashonrú íosluchtaithe",
"installingMessage": "Nuashonrú a shuiteáil...",
"errorDownloadMessage": "Ní féidir nuashonrú a íoslódáil",
"errorInstallMessage": "Ní féidir nuashonrú a shuiteáil",
"noConnection": "Gan aon nasc idirlín"
},
"applicationItem": {
"infoButton": "Eolas"
},
"latestCommitCard": {
"loadingLabel": "Á lódáil...",
"timeagoLabel": "${time} ó shin"
},
"patcherView": {
"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?",
"requiredOptionDialogText": "Caithfear roinnt roghanna paiste a shocrú."
},
"appSelectorCard": {
"widgetTitle": "Roghnaigh aip",
"widgetTitleSelected": "Aip roghnaithe",
"widgetSubtitle": "Níl aon aip roghnaithe",
"noAppsLabel": "Níor aimsíodh aon fheidhmchláir",
"anyVersion": "Aon leagan"
},
"patchSelectorCard": {
"widgetTitle": "Roghnaigh paistí",
"widgetTitleSelected": "Paistí roghnaithe",
"widgetSubtitle": "Roghnaigh iarratas ar dtús",
"widgetEmptySubtitle": "Níl aon paistí roghnaithe"
},
"socialMediaCard": {
"widgetTitle": "Sóisialta",
"widgetSubtitle": "Táimid ar líne!"
},
"appSelectorView": {
"viewTitle": "Roghnaigh aip",
"searchBarHint": "Cuardaigh aip",
"storageButton": "Stóráil",
"selectFromStorageButton": "Roghnaigh ó stóráil",
"errorMessage": "Ní féidir feidhmchlár roghnaithe a úsáid",
"downloadToast": "Níl feidhm íoslódála ar fáil fós",
"requireSuggestedAppVersionDialogText": "Ní mheaitseálann leagan an aip a roghnaigh tú leis an leagan a mholtar a d'fhéadfadh saincheisteanna gan choinne a bheith mar thoradh air. Úsáid an leagan a mholtar le do thoil.\n\nLeagan roghnaithe: ${selected}\nLeagan mholta: ${suggested}\n\nChun leanúint ar aghaidh ar aon nós, díchumasaigh “Teastaíonn leagan aipe molta” sna socruithe.",
"featureNotAvailable": "Gné nach bhfuil cur i bhfeidhm",
"featureNotAvailableText": "Is APK scoilte é an aip seo agus ní féidir é a phaiteáil agus a shuiteáil go hiontaofa ach trí fheistiú le ceadanna fréimhe. Mar sin féin, is féidir leat APK iomlán a phaisteáil agus a shuiteáil trína roghnú ó stóráil."
},
"patchesSelectorView": {
"viewTitle": "Roghnaigh paistí",
"searchBarHint": "Cuardaigh paistí",
"universalPatches": "Paistí uilíocha",
"newPatches": "Paistí nua",
"patches": "Paistí",
"doneButton": "Déanta",
"defaultChip": "Réamhshocraithe",
"defaultTooltip": "Roghnaigh gach paistí réamhshocraithe",
"noneChip": "Níl aon",
"noneTooltip": "Díroghnaigh gach paiste",
"loadPatchesSelection": "Roghnú paiste luchtaigh",
"noSavedPatches": "Níl aon roghnú paiste sábháilte don aip roghnaithe.\nBrúigh Done chun an rogha reatha a shábháil.",
"noPatchesFound": "Níl aon paistí le fáil don aip roghnaithe",
"setRequiredOption": "Éilíonn roinnt paistí roghanna a shocrú:\n\n${patches}\n\nSocraigh iad le do thoil sula leanann ar aghaidh."
},
"patchOptionsView": {
"customValue": "Luach saincheaptha",
"setToNull": "Socraigh go null",
"nullValue": "Tá an luach rogha seo niall faoi láthair",
"viewTitle": "Roghanna paiste",
"saveOptions": "Sábháil",
"unselectPatch": "Díroghnaigh paiste",
"tooltip": "Tuilleadh roghanna ionchur",
"selectFilePath": "Roghnaigh cosán comhad",
"selectFolder": "Roghnaigh fillte",
"requiredOption": "Teastaíonn an rogha seo a shocrú",
"unsupportedOption": "Ní thacaítear leis an rogha seo",
"requiredOptionNull": "Caithfear na roghanna seo a leanas a shocrú:\n\n${options}"
},
"patchItem": {
"unsupportedDialogText": "D'fhéadfadh earráidí paiste a bheith mar thoradh ar an paiste seo a roghnú.\n\nLeagan aip: ${packageVersion}\nLeaganacha tacaithe:\n${supportedVersions}",
"unsupportedPatchVersion": "Ní thacaítear le paiste don leagan aip seo.",
"unsupportedRequiredOption": "Tá rogha riachtanach sa phaiste seo nach dtacaíonn an aip seo",
"patchesChangeWarningDialogText": "Moltar an roghnú agus na roghanna paiste réamhshocraithe a úsáid. D'fhéadfadh saincheisteanna gan choinne a bheith mar thoradh orthu a athrú\n\nBeidh ort “Ceadaigh roghnú paiste athraithe” a chasadh air sna socruithe sula n-athraíonn tú aon rogha paiste.",
"patchesChangeWarningDialogButton": "Úsáid rogha réamhshocraithe"
},
"installerView": {
"installType": "Roghnaigh cineál suiteála",
"installTypeDescription": "Roghnaigh an cineál suiteála le leanúint leis.",
"installButton": "Suiteáil",
"installRootType": "Ceangail",
"installNonRootType": "Rialta",
"warning": "Díchumasaigh nuashonruithe uathoibríoch don aip bhreactha chun fadhbanna gan choinne a sheachaint.",
"pressBackAgain": "Brúigh ar ais arís chun cealú",
"openButton": "Oscailte",
"notificationTitle": "Tá Bainisteoir ReVanced ag paisteáil",
"notificationText": "Tapáil chun filleadh ar an suiteálaí",
"exportApkButtonTooltip": "APK paiteáilte onnmhairi",
"exportLogButtonTooltip": "Logáil easpórtála",
"screenshotDetected": "Braithíodh scáileán. Má tá tú ag iarraidh an log a roinnt, roinn cóip téacs ina ionad.\n\nCóipeáil log go gearrthaisce?",
"copiedToClipboard": "Cóipeáladh an loga chuig an ngearrthaisce",
"noExit": "Tá an suiteálaí fós ag rith, ní féidir leo imeacht..."
},
"settingsView": {
"widgetTitle": "Socruithe",
"appearanceSectionTitle": "Dealramh",
"teamSectionTitle": "Foireann",
"debugSectionTitle": "Dífhabhtú",
"advancedSectionTitle": "Ardleibhéal",
"exportSectionTitle": "Iompórtáil & easpórtáil",
"dataSectionTitle": "Foinsí sonraí",
"themeModeLabel": "Téama aip",
"systemThemeLabel": "Córas",
"lightThemeLabel": "Solas",
"darkThemeLabel": "Dorcha",
"dynamicThemeLabel": "Ábhar Tú",
"dynamicThemeHint": "Bain sult as eispéireas níos gaire do do ghléas",
"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",
"useAlternativeSources": "Úsáid foinsí malartacha",
"useAlternativeSourcesHint": "Úsáid foinsí malartacha le haghaidh Paistí ReVanced agus Comhtháthaithe ReVanced 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.",
"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í",
"logsHint": "Comhroinn logaí Bainisteoir ReVanced",
"enablePatchesSelectionLabel": "Ceadaigh roghnú paiste a athrú",
"enablePatchesSelectionHint": "Ná cuir cosc ar phaistí a roghnú nó a dhíroghnú",
"enablePatchesSelectionWarningText": "D'fhéadfadh fadhbanna gan choinne a bheith mar thoradh ar rogha paistí a athrú\n\nCumasaigh ar aon chaoi?",
"disablePatchesSelectionWarningText": "Tá tú ar tí roghnú paistí a athrú a dhíchumasú.\nCuirfear an rogha réamhshocraithe paistí ar ais.\n\nDíchumasú ar aon chaoi?",
"autoUpdatePatchesLabel": "Paistí nuashonruithe uathoibríoch",
"autoUpdatePatchesHint": "Nuashonraigh go huathoibríoch paistí go dtí an leagan is déanaí",
"showUpdateDialogLabel": "Taispeáin dialóg nuashonrú",
"showUpdateDialogHint": "Taispeáin dialóg nuair a bhíonn nuashonrú nua ar fáil",
"universalPatchesLabel": "Taispeáin paistí uilíocha",
"universalPatchesHint": "Taispeáin gach aip agus paistí uilíoch (féadfaidh sé an liosta aipeanna a mhoilliú)",
"lastPatchedAppLabel": "Sábháil aip paisteáilte",
"lastPatchedAppHint": "Sábháil an paiste deireanach le suiteáil nó a onnmhairiú",
"versionCompatibilityCheckLabel": "Seiceáil comhoiriúnachta",
"versionCompatibilityCheckHint": "Cosc a chur ar roghnú paistí nach bhfuil comhoiriúnach leis an leagan aip roghnaithe",
"requireSuggestedAppVersionLabel": "Teastaíonn leagan aipe molta",
"requireSuggestedAppVersionHint": "Cosc a chur ar aip a roghnú le leagan nach é an leagan molta",
"requireSuggestedAppVersionDialogText": "D'fhéadfadh fadhbanna gan choinne a bheith mar thoradh ar aip nach é an leagan a mholtar a roghnú.\n\nAr mhaith leat dul ar aghaidh ar aon nós?",
"aboutLabel": "Maidir",
"snackbarMessage": "Cóipeáilte go gear",
"restartAppForChanges": "Athosaigh an aip chun athruithe a chur i bhfeidhm",
"deleteTempDirLabel": "Scrios comhaid shealadacha",
"deleteTempDirHint": "Scrios comhaid shealadacha gan úsáid",
"deletedTempDir": "Scriosta comhaid shealadacha",
"exportPatchesLabel": "Rogha paiste easpórtála",
"exportPatchesHint": "Roghnú paiste a easpórtáil chuig comhad JSON",
"exportedPatches": "Easpórtáil an roghnú paistí",
"noExportFileFound": "Gan roghnú paiste le heaspórtáil",
"importPatchesLabel": "Iompórtáil roghnú paiste",
"importPatchesHint": "Roghnú paiste a iompórtáil ó chomhad JSON",
"importedPatches": "Rogha paiste allmhairithe",
"resetStoredPatchesLabel": "Athshocraigh roghnú paiste",
"resetStoredPatchesHint": "Athshocraigh an rogha paiste stóráilte",
"resetStoredPatchesDialogTitle": "Athshocraigh roghnú paiste?",
"resetStoredPatchesDialogText": "Cuirfear an rogha réamhshocraithe paistí ar ais.",
"resetStoredPatches": "Athshocraíodh roghnú paiste",
"resetStoredOptionsLabel": "Athshocraigh roghanna paiste",
"resetStoredOptionsHint": "Athshocraigh gach rogha paiste",
"resetStoredOptionsDialogTitle": "Athshocraigh roghanna paiste?",
"resetStoredOptionsDialogText": "Bainfidh na roghanna paiste a athshocrú gach rogha sábháilte.",
"resetStoredOptions": "Athshocraíodh roghanna",
"deleteLogsLabel": "Glan Logaí",
"deleteLogsHint": "Scrios logaí Bainisteoir ReVanced bailithe",
"deletedLogs": "Logaí scriosta",
"regenerateKeystoreLabel": "Athghin stór eochracha",
"regenerateKeystoreHint": "Athghinigh an eochrstór a úsáidtear chun aipeanna a shíni",
"regenerateKeystoreDialogTitle": "Athghin stór eochracha?",
"regenerateKeystoreDialogText": "Ní bheidh aipeanna paiste sínithe leis an seanstór eochair in ann a nuashonrú a thuilleadh.",
"regeneratedKeystore": "Keystore athghinithe",
"exportKeystoreLabel": "Easpórtáil stór eochracha",
"exportKeystoreHint": "Easpórtáil an eochrstór a úsáidtear chun feidhmchláir",
"exportedKeystore": "Easpórtáil an stór eochair",
"noKeystoreExportFileFound": "Níl aon stór eochair le easpórtáil",
"importKeystoreLabel": "Iompórtáil stór eochracha",
"importKeystoreHint": "Iompórtáil stór eochracha a úsáidtear chun aipeanna",
"importedKeystore": "Keystore iompórtáilte",
"selectKeystorePassword": "Pasfhocal stór eochracha",
"selectKeystorePasswordHint": "Roghnaigh pasfhocal stór eochracha a úsáidtear chun aipeanna",
"jsonSelectorErrorMessage": "Ní féidir comhad JSON roghnaithe a úsáid",
"keystoreSelectorErrorMessage": "Ní féidir comhad stór eochracha roghnaithe a úsáid"
},
"appInfoView": {
"widgetTitle": "Eolas ar an aip",
"openButton": "Oscailte",
"installButton": "Suiteáil",
"uninstallButton": "Díshuiteáil",
"unmountButton": "Dícheangail",
"exportButton": "Easpórtáil",
"deleteButton": "Scrios",
"rootDialogTitle": "Earráid",
"lastPatchedAppDescription": "Is cúltaca é seo den aip a paisteadh go deireanach.",
"unmountDialogText": "An bhfuil tú cinnte gur mhaith leat an aip seo a dícheangail?",
"uninstallDialogText": "An bhfuil tú cinnte gur mhaith leat an aip seo a dhíshuiteáil?",
"rootDialogText": "Suiteáilíodh an aip le ceadanna sárúsáideora, ach faoi láthair níl aon cheadanna ag Bainisteoir ReVanced.\nDeonaigh ceadanna sárúsáideora ar dtús.",
"removeAppDialogTitle": "Aip a scriosadh?",
"removeAppDialogText": "An bhfuil tú cinnte gur mhaith leat an cúltaca seo a scriosadh?",
"packageNameLabel": "Ainm an phacáiste",
"installTypeLabel": "Cineál suiteála",
"mountTypeLabel": "Ceangail",
"regularTypeLabel": "Rialta",
"patchedDateLabel": "Dáta paisteáilte",
"appliedPatchesLabel": "Paistí feidhmithe",
"sizeLabel": "Méid an chomhaid",
"patchedDateHint": "${date} ag ${time}",
"appliedPatchesHint": "${quantity} paistí curtha i bhfeidhm",
"updateNotImplemented": "Níor cuireadh an ghné seo i bhfeidhm go fóill"
},
"contributorsView": {
"widgetTitle": "Rannpháirtithe"
},
"installErrorDialog": {
"mount_version_mismatch": "Neamhoiriúnú leagan",
"mount_no_root": "Gan rochtain fréimhe",
"mount_missing_installation": "Níor aimsíodh an suiteáil",
"status_failure_blocked": "Suiteáil blocáilte",
"install_failed_verification_failure": "Theip ar fhíorú",
"status_failure_invalid": "Suiteáil bailí",
"install_failed_version_downgrade": "Ní féidir íosghrádú",
"status_failure_conflict": "Coimhlint suiteála",
"status_failure_storage": "Saincheist stórála suiteála",
"status_failure_incompatible": "Suiteáil neamh-chomhoiriúnach",
"status_failure_timeout": "Teorainn ama suiteála",
"status_unknown": "Theip ar an suiteáil",
"mount_version_mismatch_description": "Theip ar an suiteáil toisc go raibh an aip suiteáilte ina leagan difriúil ná an aip paiste.\n\nSuiteáil an leagan den aip atá á shuiteáil agat agus bain triail as arís.",
"mount_no_root_description": "Theip ar an suiteáil toisc nár dheonaíodh rochtain fréimhe.\n\nDeonaigh rochtain fréimhe ar Bainisteoir ReVanced agus bain triail as arís.",
"mount_missing_installation_description": "Theip ar an suiteáil toisc nach raibh an aip neamhpháite á shuiteáil ar an bhfeiste seo d'fhonn suiteáil air.\n\nSuiteáil an aip gan patched sula gcuirtear é agus bain triail as arís.",
"status_failure_timeout_description": "Thóg an tsuiteáil rófhada chun críochnú.\n\nAr mhaith leat triail a bhaint as arís?",
"status_failure_storage_description": "Theip ar an suiteáil mar gheall ar stóráil neamhleor.\n\nSaor roinnt spáis agus bain triail as arís.",
"status_failure_invalid_description": "Theip ar an suiteáil toisc go raibh an aip paiste neamhbhailí.\n\nDíshuiteáil an aip agus bain triail as arís?",
"status_failure_incompatible_description": "Níl an aip comhoiriúnach leis an bhfeiste seo.\n\nÚsáid APK a dtacaíonn an gléas seo agus bain triail as arís.",
"status_failure_conflict_description": "Cuireadh cosc ar an suiteáil trí shuiteáil an aip atá ann cheana féin.\n\nDíshuiteáil an aip suiteáilte agus iarracht arís?",
"status_failure_blocked_description": "Chuir ${packageName} bac ar an suiteáil.\n\nCoigeartaigh do shocruithe slándála agus bain triail eile as.",
"install_failed_verification_failure_description": "Theip ar an suiteáil mar gheall ar shaincheist fíoraithe.\n\nCoigeartaigh do shocruithe slándála agus bain triail eile as.",
"install_failed_version_downgrade_description": "Theip ar an suiteáil toisc gur leagan níos ísle é an aip paiteáilte ná an aip suiteáilte.\n\nDíshuiteáil an aip agus bain triail as arís?",
"status_unknown_description": "Theip ar an suiteáil mar gheall ar chúis anaithnid. Bain triail as arís."
}
}

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

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

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

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

@@ -55,7 +55,8 @@
"widgetTitle": "Patchelő", "widgetTitle": "Patchelő",
"patchButton": "Patch", "patchButton": "Patch",
"incompatibleArchWarningDialogText": "Ezen az architektúrán a patchelés még nem támogatott, és sikertelen lehet. Mégis folytatod?", "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." "requiredOptionDialogText": "Néhány patch lehetőséget be kell állítani."
}, },
"appSelectorCard": { "appSelectorCard": {

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

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

@@ -1,7 +1,7 @@
{ {
"okButton": "Oke", "okButton": "Oke",
"cancelButton": "Batal", "cancelButton": "Batal",
"dismissButton": "Abaikan", "dismissButton": "Hilangkan",
"quitButton": "Keluar", "quitButton": "Keluar",
"updateButton": "Perbarui", "updateButton": "Perbarui",
"suggested": "Disarankan: ${version}", "suggested": "Disarankan: ${version}",
@@ -12,7 +12,7 @@
"noShowAgain": "Jangan tampilkan lagi", "noShowAgain": "Jangan tampilkan lagi",
"add": "Tambah", "add": "Tambah",
"remove": "Hapus", "remove": "Hapus",
"showChangelogButton": "Tampilkan log perubahan", "showChangelogButton": "Tampilkan daftar perubahan",
"showUpdateButton": "Tampilkan pembaruan", "showUpdateButton": "Tampilkan pembaruan",
"navigationView": { "navigationView": {
"dashboardTab": "Dasbor", "dashboardTab": "Dasbor",
@@ -23,19 +23,19 @@
"refreshSuccess": "Berhasil Memuat Ulang", "refreshSuccess": "Berhasil Memuat Ulang",
"widgetTitle": "Dasbor", "widgetTitle": "Dasbor",
"updatesSubtitle": "Pembaruan", "updatesSubtitle": "Pembaruan",
"lastPatchedAppSubtitle": "Patch terakhir app", "lastPatchedAppSubtitle": "Aplikasi terakhir yang ditambal",
"patchedSubtitle": "App terinstal", "patchedSubtitle": "Aplikasi terpasang",
"changeLaterSubtitle": "Anda dapat mengubahnya di pengaturan nanti.", "changeLaterSubtitle": "Anda dapat mengubahnya di pengaturan nanti.",
"noSavedAppFound": "App tidak ditemukan", "noSavedAppFound": "App tidak ditemukan",
"noInstallations": "Aplikasi tambalan tidak terpasang", "noInstallations": "Aplikasi tertambal tidak terpasang",
"installUpdate": "Lanjutkan untuk mengunduh pembaruan?", "installUpdate": "Lanjutkan untuk mengunduh pembaruan?",
"updateSheetTitle": "Perbarui Manajer ReVanced", "updateSheetTitle": "Perbarui ReVanced Manager",
"updateDialogTitle": "Pembaruan terkini telah tersedia", "updateDialogTitle": "Pembaruan baru telah tersedia",
"updatePatchesSheetTitle": "Perbarui Tambalan ReVanced", "updatePatchesSheetTitle": "Perbarui Tambalan ReVanced",
"updateChangelogTitle": "Catatan perubahan", "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?", "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}.", "downloadConsentDialogText2": "Ini akan menghubungkan Anda ke ${url}.",
"downloadingMessage": "Mengunduh pembaruan...", "downloadingMessage": "Mengunduh pembaruan...",
"downloadedMessage": "Pembaruan telah diunduh", "downloadedMessage": "Pembaruan telah diunduh",
@@ -54,16 +54,17 @@
"patcherView": { "patcherView": {
"widgetTitle": "Penambal", "widgetTitle": "Penambal",
"patchButton": "Tambalan", "patchButton": "Tambalan",
"incompatibleArchWarningDialogText": "Patching pada arsitektur ini belum didukung dan mungkin gagal. Lanjutkan saja?", "incompatibleArchWarningDialogText": "Menambal pada arsitektur ini belum didukung dan kemungkinan gagal. Lanjutkan saja?",
"removedPatchesWarningDialogText": "Patch berikut telah dihapus sejak terakhir kali Anda menggunakannya.\n\n${patches}\n\nTetap lanjut?", "removedPatchesWarningDialogText": "Tambalan yang dihapus sejak terakhir kali Anda menambal aplikasi ini:\n\n${patches}\n\n${newPatches}Tetap lanjutkan?",
"requiredOptionDialogText": "Beberapa opsi patch harus diatur." "addedPatchesDialogText": "Tambalan yang ditambahkan sejak terakhir kali Anda menambal aplikasi ini:\n\n${addedPatches}",
"requiredOptionDialogText": "Beberapa pilihan tambalan harus diatur."
}, },
"appSelectorCard": { "appSelectorCard": {
"widgetTitle": "Pilih aplikasi", "widgetTitle": "Pilih aplikasi",
"widgetTitleSelected": "Aplikasi yang dipilih", "widgetTitleSelected": "Aplikasi yang dipilih",
"widgetSubtitle": "Tidak ada aplikasi yang dipilih", "widgetSubtitle": "Tidak ada aplikasi yang dipilih",
"noAppsLabel": "Aplikasi tidak ditemukan", "noAppsLabel": "Aplikasi tidak ditemukan",
"anyVersion": "Versi apa saja" "anyVersion": "Versi apapun"
}, },
"patchSelectorCard": { "patchSelectorCard": {
"widgetTitle": "Pilih tambalan", "widgetTitle": "Pilih tambalan",
@@ -83,44 +84,44 @@
"errorMessage": "Tidak dapat menggunakan aplikasi yang dipilih", "errorMessage": "Tidak dapat menggunakan aplikasi yang dipilih",
"downloadToast": "Fungsi mengunduh belum tersedia", "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.", "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", "featureNotAvailable": "Fitur belum diterapkan",
"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": { "patchesSelectorView": {
"viewTitle": "Pilih tambalan", "viewTitle": "Pilih tambalan",
"searchBarHint": "Cari tambalan", "searchBarHint": "Cari tambalan",
"universalPatches": "Patch universal", "universalPatches": "Tambalan universal",
"newPatches": "Patch baru", "newPatches": "Tambalan baru",
"patches": "Patch", "patches": "Tambalan",
"doneButton": "Selesai", "doneButton": "Selesai",
"defaultChip": "Bawaan", "defaultChip": "Bawaan",
"defaultTooltip": "Pilih semua tambalan bawaan", "defaultTooltip": "Pilih semua tambalan bawaan",
"noneChip": "Tidak ada", "noneChip": "Tidak ada",
"noneTooltip": "Batalkan semua tambalan", "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.", "noSavedPatches": "Tidak ada pilihan tambalan yang disimpan untuk aplikasi yang dipilih.\nTekan Selesai untuk menyimpan pilihan saat ini.",
"noPatchesFound": "Tidak ada tambalan untuk aplikasi", "noPatchesFound": "Tidak ada tambalan untuk aplikasi terpilih",
"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": { "patchOptionsView": {
"customValue": "Nilai kustom", "customValue": "Nilai khusus",
"setToNull": "Setel ke null", "setToNull": "Setel ke null",
"nullValue": "Nilai opsi ini saat ini adalah null", "nullValue": "Nilai pilihan ini saat ini adalah null",
"viewTitle": "Opsi tambalan", "viewTitle": "Pilihan tambalan",
"saveOptions": "Simpan", "saveOptions": "Simpan",
"unselectPatch": "Batalkan pilihan patch", "unselectPatch": "Batalkan pilihan tambalan",
"tooltip": "Opsi masukan lainnya", "tooltip": "Pilihan masukan lainnya",
"selectFilePath": "Pilih lokasi berkas", "selectFilePath": "Pilih lokasi berkas",
"selectFolder": "Pilih folder", "selectFolder": "Pilih folder",
"requiredOption": "Pengaturan opsi ini diperlukan", "requiredOption": "Pengaturan pilihan ini diperlukan",
"unsupportedOption": "Pilihan ini tidak didukung", "unsupportedOption": "Pilihan ini tidak didukung",
"requiredOptionNull": "Pilihan ini harus terpilih:\n\n${options}" "requiredOptionNull": "Pilihan ini harus terpilih:\n\n${options}"
}, },
"patchItem": { "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.", "unsupportedPatchVersion": "Tambalan ini tidak mendukung versi aplikasi ini.",
"unsupportedRequiredOption": "Patch ini berisi opsi wajib yang tidak didukung oleh aplikasi ini", "unsupportedRequiredOption": "Tambalan ini berisi pilihan 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.", "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" "patchesChangeWarningDialogButton": "Gunakan pemilihan bawaan"
}, },
"installerView": { "installerView": {
@@ -129,13 +130,13 @@
"installButton": "Pasang", "installButton": "Pasang",
"installRootType": "Mount", "installRootType": "Mount",
"installNonRootType": "Reguler", "installNonRootType": "Reguler",
"warning": "Nonaktifkan pembaruan pada aplikasi tertambal untuk menghindari isu.", "warning": "Nonaktifkan pembaruan pada aplikasi tertambal untuk menghindari masalah.",
"pressBackAgain": "Tekan tombol balik lagi untuk membatalkan", "pressBackAgain": "Tekan tombol kembali untuk membatalkan",
"openButton": "Buka", "openButton": "Buka",
"notificationTitle": "ReVanced Manager sedang menambal", "notificationTitle": "ReVanced Manager sedang menambal",
"notificationText": "Ketuk untuk kembali ke pemasang", "notificationText": "Ketuk untuk kembali ke pemasang",
"exportApkButtonTooltip": "Ekspor APK yang ditambal", "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?", "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", "copiedToClipboard": "Menyalin log ke papan klip",
"noExit": "Pemasangan masih berjalan, tidak bisa keluar..." "noExit": "Pemasangan masih berjalan, tidak bisa keluar..."
@@ -150,45 +151,45 @@
"dataSectionTitle": "Sumber data", "dataSectionTitle": "Sumber data",
"themeModeLabel": "Tema aplikasi", "themeModeLabel": "Tema aplikasi",
"systemThemeLabel": "Sistem", "systemThemeLabel": "Sistem",
"lightThemeLabel": "Cahaya", "lightThemeLabel": "Terang",
"darkThemeLabel": "Mode gelap", "darkThemeLabel": "Gelap",
"dynamicThemeLabel": "Material You", "dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Nikmati pengalaman lebih dekat ke perangkat Anda", "dynamicThemeHint": "Nikmati pengalaman lebih dekat ke perangkat Anda",
"languageLabel": "Bahasa", "languageLabel": "Bahasa",
"languageUpdated": "Bahasa diperbaharui", "languageUpdated": "Bahasa diperbarui",
"sourcesLabel": "Sumber-sumber alternatif", "sourcesLabel": "Sumber alternatif",
"sourcesLabelHint": "Mengonfigurasi sumber alternatif untuk ReVanced Patches dan ReVanced Integrations", "sourcesLabelHint": "Atur sumber alternatif untuk ReVanced Patches dan ReVanced Integrations",
"sourcesIntegrationsLabel": "Sumber Integrasi", "sourcesIntegrationsLabel": "Sumber Integrasi",
"useAlternativeSources": "Gunakan sumber-sumber alternatif", "useAlternativeSources": "Gunakan sumber alternatif",
"useAlternativeSourcesHint": "Gunakan sumber alternatif untuk ReVanced Patches dan ReVanced Integrations alih-alih API", "useAlternativeSourcesHint": "Gunakan sumber alternatif untuk ReVanced Patches dan ReVanced Integrations daripada API",
"sourcesResetDialogTitle": "Atur ulang", "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?", "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 ReVanced Patches dan ReVanced Integrations dari sumber alternatif.\n\nIni akan menghubungkan Anda ke sumber alternatif.",
"apiURLLabel": "URL API", "apiURLLabel": "URL API",
"apiURLHint": "Konfigurasikan URL API dari ReVanced Manager", "apiURLHint": "Atur URL API dari ReVanced Manager",
"selectApiURL": "URL API", "selectApiURL": "URL API",
"orgPatchesLabel": "Perapihan tambalan", "orgPatchesLabel": "Organisasi tambalan",
"sourcesPatchesLabel": "Sumber tambalan", "sourcesPatchesLabel": "Sumber tambalan",
"orgIntegrationsLabel": "Organisasi Intergrasi", "orgIntegrationsLabel": "Organisasi Integrasi",
"contributorsLabel": "Kontributor", "contributorsLabel": "Kontributor",
"contributorsHint": "Daftar kontributor ReVanced", "contributorsHint": "Daftar kontributor ReVanced",
"logsLabel": "Bagikan log", "logsLabel": "Bagikan log",
"logsHint": "Bagikan log ReVanced Manager", "logsHint": "Bagikan log ReVanced Manager",
"enablePatchesSelectionLabel": "Izinkan mengubah pemilihan tambalan", "enablePatchesSelectionLabel": "Izinkan mengubah pemilihan tambalan",
"enablePatchesSelectionHint": "Jangan mencegah pemilihan atau pembatalan pemilihan tambalan", "enablePatchesSelectionHint": "Jangan mencegah pemilihan atau pembatalan pemilihan tambalan",
"enablePatchesSelectionWarningText": "Mengubah pilihan dari tambalan akan menyebabkan isu tak terduga.\n\nAktifkan saja?", "enablePatchesSelectionWarningText": "Mengubah pilihan dari tambalan akan menyebabkan masalah tak terduga.\n\nAktifkan saja?",
"disablePatchesSelectionWarningText": "Anda akan menonaktifkan pengubahan pilihan tambalan.\nPilihan tambalan default akan dikembalikan.\n\nMenonaktifkan?", "disablePatchesSelectionWarningText": "Anda akan menonaktifkan pengubahan pilihan tambalan.\nPilihan tambalan bawaan akan dikembalikan.\n\nTetap nonaktifkan?",
"autoUpdatePatchesLabel": "Otomatis perbarui tambalan", "autoUpdatePatchesLabel": "Otomatis perbarui tambalan",
"autoUpdatePatchesHint": "Otomatis perbarui tambalan ke versi terkini", "autoUpdatePatchesHint": "Otomatis perbarui tambalan ke versi terbaru",
"showUpdateDialogLabel": "Tampilkan dialog pembaruan", "showUpdateDialogLabel": "Tampilkan dialog pembaruan",
"showUpdateDialogHint": "Tampilkan dialog ketika pembaruan tersedia", "showUpdateDialogHint": "Tampilkan dialog ketika pembaruan tersedia",
"universalPatchesLabel": "Tampilkan tambalan universal", "universalPatchesLabel": "Tampilkan tambalan universal",
"universalPatchesHint": "Menampilkan semua aplikasi dan tambalan universal (dapat memperlambat daftar aplikasi)", "universalPatchesHint": "Tampilkan semua aplikasi dan tambalan universal (dapat memperlambat daftar aplikasi)",
"lastPatchedAppLabel": "Simpan patch aplikasi", "lastPatchedAppLabel": "Simpan aplikasi tertambal",
"lastPatchedAppHint": "Simpan patch terakhir untuk diinstal atau diekspor nanti", "lastPatchedAppHint": "Simpan tambalan terakhir untuk dipasang atau diekspor nanti",
"versionCompatibilityCheckLabel": "Periksa versi kompatibilitas", "versionCompatibilityCheckLabel": "Pemeriksaan kompatibilitas versi",
"versionCompatibilityCheckHint": "Cegah pemilihan tambalan yang tidak kompatibel dengan versi aplikasi yang dipilih", "versionCompatibilityCheckHint": "Cegah pemilihan tambalan yang tidak cocok dengan versi aplikasi yang dipilih",
"requireSuggestedAppVersionLabel": "Memerlukan versi aplikasi yang disarankan", "requireSuggestedAppVersionLabel": "Memerlukan versi aplikasi yang disarankan",
"requireSuggestedAppVersionHint": "Cegah memilih versi aplikasi yang tidak 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?", "requireSuggestedAppVersionDialogText": "Memilih versi aplikasi yang tidak disarankan dapat menyebabkan masalah yang tidak terduga.\n\nApakah anda ingin melanjutkan?",
@@ -198,39 +199,39 @@
"deleteTempDirLabel": "Hapus berkas sementara", "deleteTempDirLabel": "Hapus berkas sementara",
"deleteTempDirHint": "Hapus berkas sementara yang tidak dipakai", "deleteTempDirHint": "Hapus berkas sementara yang tidak dipakai",
"deletedTempDir": "Berkas sementara dihapus", "deletedTempDir": "Berkas sementara dihapus",
"exportPatchesLabel": "Ekspor tambalan pilihan", "exportPatchesLabel": "Ekspor pilihan tambalan",
"exportPatchesHint": "Ekspor tambalan terpilih ke berkas JSON", "exportPatchesHint": "Ekspor pilihan tambalan ke berkas JSON",
"exportedPatches": "Tambalan pilihan diekspor", "exportedPatches": "Tambalan terpilih diekspor",
"noExportFileFound": "Belum pilih tambalan untuk diekspor", "noExportFileFound": "Belum pilih tambalan untuk diekspor",
"importPatchesLabel": "Impor modifikasi terpilih", "importPatchesLabel": "Impor tambalan pilihan",
"importPatchesHint": "Impor tembalan terpilih dari berkas JSON", "importPatchesHint": "Impor tembalan pilihan dari berkas JSON",
"importedPatches": "Tambalan pilihan diimpor", "importedPatches": "Tambalan pilihan diimpor",
"resetStoredPatchesLabel": "Setel ulang tambalan pilihan", "resetStoredPatchesLabel": "Atur ulang tambalan pilihan",
"resetStoredPatchesHint": "Mulai ulang tambalan pilihan yang disimpan", "resetStoredPatchesHint": "Atur ulang tambalan pilihan yang disimpan",
"resetStoredPatchesDialogTitle": "Mulai ulang tambalan pilihan?", "resetStoredPatchesDialogTitle": "Atur ulang tambalan pilihan?",
"resetStoredPatchesDialogText": "Tambalan pilihan bawaan akan dikembalikan.", "resetStoredPatchesDialogText": "Tambalan pilihan bawaan akan dikembalikan.",
"resetStoredPatches": "Tambalan pilihan telah diatur ulang", "resetStoredPatches": "Tambalan pilihan telah diatur ulang",
"resetStoredOptionsLabel": "Setel ulang opsi tambalan", "resetStoredOptionsLabel": "Atur ulang pilihan tambalan",
"resetStoredOptionsHint": "Setel ulang semua opsi tambalan", "resetStoredOptionsHint": "Atur ulang semua pilihan tambalan",
"resetStoredOptionsDialogTitle": "Setel ulang opsi tambalan?", "resetStoredOptionsDialogTitle": "Atur ulang pilihan tambalan?",
"resetStoredOptionsDialogText": "Menyetel ulang opsi tambalan akan menghapus semua opsi yang disimpan.", "resetStoredOptionsDialogText": "Menyetel ulang pilihan tambalan akan menghapus semua pilihan yang disimpan.",
"resetStoredOptions": "Opsi telah diatur ulang", "resetStoredOptions": "Pilihan telah diatur ulang",
"deleteLogsLabel": "Hapus riwayat", "deleteLogsLabel": "Hapus catatan",
"deleteLogsHint": "Hapus log ReVanced Manager terkumpul", "deleteLogsHint": "Hapus log ReVanced Manager yang dikumpulkan",
"deletedLogs": "Log dihapus", "deletedLogs": "Log dihapus",
"regenerateKeystoreLabel": "Menghasilkan penyimpanan kunci", "regenerateKeystoreLabel": "Buat ulang keystore",
"regenerateKeystoreHint": "Buat ulang penyimpanan kunci yang digunakan untuk menandatangani aplikasi", "regenerateKeystoreHint": "Buat ulang keystore yang digunakan untuk menandatangani aplikasi",
"regenerateKeystoreDialogTitle": "Membuat ulang kunci penyimpanan?", "regenerateKeystoreDialogTitle": "Buat ulang keystore?",
"regenerateKeystoreDialogText": "Aplikasi tambalan yang ditandatangani dengan kunci penyimpanan lama tidak dapat diperbarui lagi.", "regenerateKeystoreDialogText": "Aplikasi tambalan yang ditandatangani dengan keystore lama tidak dapat diperbarui lagi.",
"regeneratedKeystore": "Kunci penyimpanan dibuat ulang", "regeneratedKeystore": "Keystore dibuat ulang",
"exportKeystoreLabel": "Ekspor keystore", "exportKeystoreLabel": "Ekspor keystore",
"exportKeystoreHint": "Ekspor kunci penyimpanan yang digunakan untuk menandatangani aplikasi", "exportKeystoreHint": "Ekspor keystore yang digunakan untuk menandatangani aplikasi",
"exportedKeystore": "Keystore diekspor", "exportedKeystore": "Keystore diekspor",
"noKeystoreExportFileFound": "Tidak ada keystore untuk diekspor", "noKeystoreExportFileFound": "Tidak ada keystore untuk diekspor",
"importKeystoreLabel": "Impor keystore", "importKeystoreLabel": "Impor keystore",
"importKeystoreHint": "Impor kunci penyimpanan yang digunakan untuk menandatangani aplikasi", "importKeystoreHint": "Impor keystore yang digunakan untuk menandatangani aplikasi",
"importedKeystore": "Keystore diimpor", "importedKeystore": "Keystore diimpor",
"selectKeystorePassword": "Kata Sandi Keystore", "selectKeystorePassword": "Kata sandi keystore",
"selectKeystorePasswordHint": "Pilih kata sandi keystore yang digunakan untuk menandatangani aplikasi", "selectKeystorePasswordHint": "Pilih kata sandi keystore yang digunakan untuk menandatangani aplikasi",
"jsonSelectorErrorMessage": "Tidak bisa menggunakan berkas JSON tersebut", "jsonSelectorErrorMessage": "Tidak bisa menggunakan berkas JSON tersebut",
"keystoreSelectorErrorMessage": "Tidak bisa menggunakan berkas keystrore tersebut" "keystoreSelectorErrorMessage": "Tidak bisa menggunakan berkas keystrore tersebut"
@@ -240,26 +241,26 @@
"openButton": "Buka", "openButton": "Buka",
"installButton": "Pasang", "installButton": "Pasang",
"uninstallButton": "Copot", "uninstallButton": "Copot",
"unmountButton": "Lepas mount", "unmountButton": "Unmount",
"exportButton": "Ekspor", "exportButton": "Ekspor",
"deleteButton": "Hapus", "deleteButton": "Hapus",
"rootDialogTitle": "Kesalahan", "rootDialogTitle": "Kesalahan",
"lastPatchedAppDescription": "Ini adalah cadangan patch aplikasi terakhir.", "lastPatchedAppDescription": "Ini adalah cadangan dari aplikasi yang terakhir ditambal.",
"unmountDialogText": "Apakah yakin ingin melepas mount aplikasi ini?", "unmountDialogText": "Apakah Anda yakin ingin unmount aplikasi ini?",
"uninstallDialogText": "Apakah yakin ingin mencopot aplikasi ini?", "uninstallDialogText": "Apakah Anda yakin ingin mencopot aplikasi ini?",
"rootDialogText": "Aplikasi dipasang dengan izin superuser, tapi saat ini ReVanced Manager belum diizinkan.\nMohon berikan izin superuser dulu.", "rootDialogText": "Aplikasi dipasang dengan izin superuser, tapi saat ini ReVanced Manager tidak mempunyai izin.\nMohon berikan izin superuser terlebih dahulu.",
"removeAppDialogTitle": "Hapus Aplikasi?", "removeAppDialogTitle": "Hapus aplikasi?",
"removeAppDialogText": "Yakin akan menghapus data backup ini?", "removeAppDialogText": "Apakah Anda yakin ingin menghapus cadangan ini?",
"packageNameLabel": "Nama paket", "packageNameLabel": "Nama paket",
"installTypeLabel": "Tipe pemasangan", "installTypeLabel": "Jenis pemasangan",
"mountTypeLabel": "Mount", "mountTypeLabel": "Mount",
"regularTypeLabel": "Reguler", "regularTypeLabel": "Reguler",
"patchedDateLabel": "Kapan ditambal", "patchedDateLabel": "Tanggal ditambal",
"appliedPatchesLabel": "Tambalan terterap", "appliedPatchesLabel": "Tambalan yang diterapkan",
"sizeLabel": "Ukuran file", "sizeLabel": "Ukuran berkas",
"patchedDateHint": "${date} pukul ${time}", "patchedDateHint": "${date} pada pukul ${time}",
"appliedPatchesHint": "${quantity} tambalan terterap", "appliedPatchesHint": "${quantity} tambalan yang diterapkan",
"updateNotImplemented": "Fitur ini belum diimplementasi" "updateNotImplemented": "Fitur ini belum diterapkan"
}, },
"contributorsView": { "contributorsView": {
"widgetTitle": "Kontributor" "widgetTitle": "Kontributor"
@@ -270,24 +271,24 @@
"mount_missing_installation": "Pemasangan tidak ada", "mount_missing_installation": "Pemasangan tidak ada",
"status_failure_blocked": "Pemasangan diblokir", "status_failure_blocked": "Pemasangan diblokir",
"install_failed_verification_failure": "Verifikasi gagal", "install_failed_verification_failure": "Verifikasi gagal",
"status_failure_invalid": "Pemasangan tidak absah", "status_failure_invalid": "Pemasangan tidak sah",
"install_failed_version_downgrade": "Tak bisa turun versi", "install_failed_version_downgrade": "Tidak dapat menurunkan versi",
"status_failure_conflict": "Pemasangan cekcok", "status_failure_conflict": "Pemasangan berselisih",
"status_failure_storage": "Ruang pemasangan bermasalah", "status_failure_storage": "Ruang pemasangan bermasalah",
"status_failure_incompatible": "Pemasangan tidak kompatibel", "status_failure_incompatible": "Pemasangan tidak cocok",
"status_failure_timeout": "Pemasangan kelamaan", "status_failure_timeout": "Pemasangan kehabisan waktu",
"status_unknown": "Pemasangan gagal", "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_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 ini gagal karena akses root belum dizinkan.\n\nIzinkan akses root ke ReVanced Manager 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": "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 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": "Instalasi memakan waktu terlalu lama untuk diselesaikan.\n\nApakah anda ingin mencoba lagi?", "status_failure_timeout_description": "Pemasangan 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_storage_description": "Pemasangan gagal karena ruang penyimpanan tidak cukup.\n\nKosongkan sebagian ruang dan coba lagi.",
"status_failure_invalid_description": "Instalasi gagal karena aplikasi yang ditambal tidak valid.\n\nCopot pemasangan aplikasi 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 kompatibel dengan perangkat ini.\n\nGunakan APK sesuai jenis perangkat 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": "Penginstalan dicegah oleh aplikasi yang sudah ada.\n\nCopot pemasangan aplikasi yang terpasang dan coba kembali?", "status_failure_conflict_description": "Pemasangan dicegah oleh aplikasi yang sudah ada.\n\nCopot pemasangan aplikasi yang terpasang dan coba lagi?",
"status_failure_blocked_description": "Instalasi diblokir oleh ${packageName}.\n\nSesuaikan pengaturan keamanan anda dan coba kembali.", "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_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 lagi?",
"status_unknown_description": "Instalasi gagal karena alasan yang tidak diketahui. Silakan coba kembali." "status_unknown_description": "Pemasangan gagal karena alasan yang tidak diketahui. Silakan coba lagi."
} }
} }

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

@@ -51,7 +51,6 @@
"patcherView": { "patcherView": {
"widgetTitle": "Patcher", "widgetTitle": "Patcher",
"patchButton": "Bót", "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." "requiredOptionDialogText": "Það þarf að stilla nokkra patch valkosti."
}, },
"appSelectorCard": { "appSelectorCard": {

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

@@ -55,7 +55,8 @@
"widgetTitle": "Patcher", "widgetTitle": "Patcher",
"patchButton": "Patch", "patchButton": "Patch",
"incompatibleArchWarningDialogText": "La patch su questa architettura non è ancora supportata e potrebbe fallire. Continuare comunque?", "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." "requiredOptionDialogText": "Alcune opzioni di patch devono essere impostate."
}, },
"appSelectorCard": { "appSelectorCard": {

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

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

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

@@ -55,7 +55,8 @@
"widgetTitle": "Patcher", "widgetTitle": "Patcher",
"patchButton": "패치하기", "patchButton": "패치하기",
"incompatibleArchWarningDialogText": "이 아키텍처에 대한 패치는 아직 지원되지 않으므로 실패할 수 있습니다. 그래도 계속하시겠습니까?", "incompatibleArchWarningDialogText": "이 아키텍처에 대한 패치는 아직 지원되지 않으므로 실패할 수 있습니다. 그래도 계속하시겠습니까?",
"removedPatchesWarningDialogText": "최근 적용된 패치들 중 다음 패치가 제거됩니다.\n\n${patches}\n\n그래도 계속하시겠습니까?", "removedPatchesWarningDialogText": "이 앱을 마지막으로 패치한 이후 제거된 패치입니다:\n\n${patches}\n\n${newPatches}그래도 계속하시겠습니까?",
"addedPatchesDialogText": "이 앱을 마지막으로 패치한 이후 추가된 패치입니다:\n\n${addedPatches}",
"requiredOptionDialogText": "일부 패치 옵션을 설정해야 합니다." "requiredOptionDialogText": "일부 패치 옵션을 설정해야 합니다."
}, },
"appSelectorCard": { "appSelectorCard": {
@@ -186,7 +187,7 @@
"universalPatchesLabel": "공용 패치 보기", "universalPatchesLabel": "공용 패치 보기",
"universalPatchesHint": "기기에 설치된 모든 앱과 공용 패치를 표시합니다 (앱 목록이 느려질 수 있음)", "universalPatchesHint": "기기에 설치된 모든 앱과 공용 패치를 표시합니다 (앱 목록이 느려질 수 있음)",
"lastPatchedAppLabel": "패치된 앱 저장", "lastPatchedAppLabel": "패치된 앱 저장",
"lastPatchedAppHint": "나중에 설치하거나 내보내고 싶은 '마지막으로 패치된 앱'을 저장 수 있습니다", "lastPatchedAppHint": "마지막으로 패치된 앱을 저장하여 나중에 설치하거나 내보낼 수 있습니다",
"versionCompatibilityCheckLabel": "버전 호환성 체크", "versionCompatibilityCheckLabel": "버전 호환성 체크",
"versionCompatibilityCheckHint": "선택한 앱 버전과 호환되지 않는 패치를 선택할 수 없습니다", "versionCompatibilityCheckHint": "선택한 앱 버전과 호환되지 않는 패치를 선택할 수 없습니다",
"requireSuggestedAppVersionLabel": "권장 앱 버전 요구", "requireSuggestedAppVersionLabel": "권장 앱 버전 요구",
@@ -219,7 +220,7 @@
"deleteLogsHint": "수집된 ReVanced Manager 로그를 제거합니다", "deleteLogsHint": "수집된 ReVanced Manager 로그를 제거합니다",
"deletedLogs": "로그를 제거하였습니다", "deletedLogs": "로그를 제거하였습니다",
"regenerateKeystoreLabel": "키스토어 재생성", "regenerateKeystoreLabel": "키스토어 재생성",
"regenerateKeystoreHint": "앱을 서명할 때 사용 키스토어를 재생성합니다", "regenerateKeystoreHint": "앱을 서명할 때 사용 키스토어를 재생성합니다",
"regenerateKeystoreDialogTitle": "키스토어를 재생성하시겠습니까?", "regenerateKeystoreDialogTitle": "키스토어를 재생성하시겠습니까?",
"regenerateKeystoreDialogText": "기존 키스토어로 서명한 패치된 앱을 더 이상 업데이트할 수 없게 됩니다.", "regenerateKeystoreDialogText": "기존 키스토어로 서명한 패치된 앱을 더 이상 업데이트할 수 없게 됩니다.",
"regeneratedKeystore": "키스토어를 재생성하였습니다", "regeneratedKeystore": "키스토어를 재생성하였습니다",
@@ -283,6 +284,7 @@
"status_failure_timeout_description": "설치하는 데 시간이 너무 오래 걸립니다.\n\n다시 시도하시겠습니까?", "status_failure_timeout_description": "설치하는 데 시간이 너무 오래 걸립니다.\n\n다시 시도하시겠습니까?",
"status_failure_storage_description": "저장소 공간이 충분하지 않아서 설치에 실패하였습니다.\n\n저장소 공간을 확보한 후에 다시 시도하세요.", "status_failure_storage_description": "저장소 공간이 충분하지 않아서 설치에 실패하였습니다.\n\n저장소 공간을 확보한 후에 다시 시도하세요.",
"status_failure_invalid_description": "패치된 앱이 유효하지 않아서 설치에 실패하였습니다.\n\n앱을 제거한 후에 다시 시도하시겠습니까?", "status_failure_invalid_description": "패치된 앱이 유효하지 않아서 설치에 실패하였습니다.\n\n앱을 제거한 후에 다시 시도하시겠습니까?",
"status_failure_incompatible_description": "이 앱은 이 기기와 호환되지 않습니다.\n\n이 기기에서 지원되는 APK를 사용하여 다시 시도하세요.",
"status_failure_conflict_description": "기존에 설치된 앱이 설치를 방해하였습니다.\n\n설치된 앱을 제거한 후에 다시 시도하시겠습니까?", "status_failure_conflict_description": "기존에 설치된 앱이 설치를 방해하였습니다.\n\n설치된 앱을 제거한 후에 다시 시도하시겠습니까?",
"status_failure_blocked_description": "설치가 '${packageName}'에 의해 차단되었습니다.\n\n보안 설정을 조정한 후에 다시 시도하세요.", "status_failure_blocked_description": "설치가 '${packageName}'에 의해 차단되었습니다.\n\n보안 설정을 조정한 후에 다시 시도하세요.",
"install_failed_verification_failure_description": "인증 문제로 인해 설치에 실패하였습니다.\n\n보안 설정을 조정한 후에 다시 시도하세요.", "install_failed_verification_failure_description": "인증 문제로 인해 설치에 실패하였습니다.\n\n보안 설정을 조정한 후에 다시 시도하세요.",

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

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

@@ -49,8 +49,7 @@
}, },
"patcherView": { "patcherView": {
"widgetTitle": "Pačeris", "widgetTitle": "Pačeris",
"patchButton": "Pačot", "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ā?"
}, },
"appSelectorCard": { "appSelectorCard": {
"widgetTitle": "Izvēlaties lietotni", "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

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

@@ -55,6 +55,8 @@
"widgetTitle": "Patcher", "widgetTitle": "Patcher",
"patchButton": "Oppdatering", "patchButton": "Oppdatering",
"incompatibleArchWarningDialogText": "Patching på denne arkitekturen er ennå ikke støttet og kan mislykkes. Fortsette likevel?", "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." "requiredOptionDialogText": "Noen oppdateringsalternativer må angis."
}, },
"appSelectorCard": { "appSelectorCard": {

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

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

@@ -55,7 +55,8 @@
"widgetTitle": "Patcher", "widgetTitle": "Patcher",
"patchButton": "Patch", "patchButton": "Patch",
"incompatibleArchWarningDialogText": "Patchen op deze architectuur wordt nog niet ondersteund en zal mogelijk mislukken. Toch doorgaan?", "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." "requiredOptionDialogText": "Er moeten enkele patch-opties worden ingesteld."
}, },
"appSelectorCard": { "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

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

@@ -55,7 +55,8 @@
"widgetTitle": "Program łatający", "widgetTitle": "Program łatający",
"patchButton": "Popraw", "patchButton": "Popraw",
"incompatibleArchWarningDialogText": "Aktualizowanie na tej architekturze nie jest jeszcze obsługiwane i może się nie powieść. Czy chcesz kontynuować mimo to?", "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." "requiredOptionDialogText": "Niektóre opcje muszą być ustawione."
}, },
"appSelectorCard": { "appSelectorCard": {

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

@@ -55,7 +55,6 @@
"widgetTitle": "Patcher", "widgetTitle": "Patcher",
"patchButton": "Patch", "patchButton": "Patch",
"incompatibleArchWarningDialogText": "A aplicação de patches nesta arquitetura ainda não é suportada e pode falhar. Continuar mesmo assim?", "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." "requiredOptionDialogText": "Algumas opções de patch tiveram que ser definidas."
}, },
"appSelectorCard": { "appSelectorCard": {
@@ -68,7 +67,7 @@
"patchSelectorCard": { "patchSelectorCard": {
"widgetTitle": "Selecionar patches", "widgetTitle": "Selecionar patches",
"widgetTitleSelected": "Patches selecionados", "widgetTitleSelected": "Patches selecionados",
"widgetSubtitle": "Selecione um aplicativo primeiro", "widgetSubtitle": "Selecione um app primeiro",
"widgetEmptySubtitle": "Nenhum patch selecionado" "widgetEmptySubtitle": "Nenhum patch selecionado"
}, },
"socialMediaCard": { "socialMediaCard": {
@@ -157,7 +156,7 @@
"languageLabel": "Idioma", "languageLabel": "Idioma",
"languageUpdated": "Idioma atualizado", "languageUpdated": "Idioma atualizado",
"sourcesLabel": "Fontes alternativas", "sourcesLabel": "Fontes alternativas",
"sourcesLabelHint": "Configure as fontes alternativas para Patches ReVanced Integrações ReVanced", "sourcesLabelHint": "Configure as fontes alternativas para Patches ReVanced e Integrações ReVanced",
"sourcesIntegrationsLabel": "Fonte das integrações", "sourcesIntegrationsLabel": "Fonte das integrações",
"useAlternativeSources": "Usar fontes alternativas", "useAlternativeSources": "Usar fontes alternativas",
"useAlternativeSourcesHint": "Use fontes alternativas para Patches ReVanced e Integrações ReVanced em vez da API", "useAlternativeSourcesHint": "Use fontes alternativas para Patches ReVanced e Integrações ReVanced em vez da API",
@@ -283,6 +282,7 @@
"status_failure_timeout_description": "A instalação levou muito tempo para terminar.\n\nGostaria de tentar novamente?", "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_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_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_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.", "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.", "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.",

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

@@ -55,7 +55,8 @@
"widgetTitle": "Modificador", "widgetTitle": "Modificador",
"patchButton": "Modificar", "patchButton": "Modificar",
"incompatibleArchWarningDialogText": "Patrulhar nesta arquitetura ainda não é suportado e pode falhar. Continuar mesmo assim?", "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." "requiredOptionDialogText": "Algumas opções das Modificações precisam ser definidas."
}, },
"appSelectorCard": { "appSelectorCard": {

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

@@ -55,7 +55,8 @@
"widgetTitle": "Patcher", "widgetTitle": "Patcher",
"patchButton": "Patch", "patchButton": "Patch",
"incompatibleArchWarningDialogText": "Patcharea după această arhitectură nu este încă suportată și ar putea eșua. Continuați oricum?", "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." "requiredOptionDialogText": "Unele opțiuni pentru patch-uri trebuie setate."
}, },
"appSelectorCard": { "appSelectorCard": {

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

@@ -7,7 +7,7 @@
"suggested": "Рекомендуемая: ${version}", "suggested": "Рекомендуемая: ${version}",
"yesButton": "Да", "yesButton": "Да",
"noButton": "Нет", "noButton": "Нет",
"warning": "Внимание", "warning": "Предупреждение",
"notice": "Примечание", "notice": "Примечание",
"noShowAgain": "Не показывать снова", "noShowAgain": "Не показывать снова",
"add": "Добавить", "add": "Добавить",
@@ -55,7 +55,8 @@
"widgetTitle": "Патчер", "widgetTitle": "Патчер",
"patchButton": "Пропатчить", "patchButton": "Пропатчить",
"incompatibleArchWarningDialogText": "Патчинг на этой архитектуре еще не поддерживается и может завершиться неудачей. Продолжить?", "incompatibleArchWarningDialogText": "Патчинг на этой архитектуре еще не поддерживается и может завершиться неудачей. Продолжить?",
"removedPatchesWarningDialogText": "Следующие патчи были удалены с момента их последнего использования.\n\n ${patches}\n\n Все равно продолжить?", "removedPatchesWarningDialogText": "Удаленные патчи с момента последнего патчинга приложения:\n\n${patches}\n\n${newPatches}Все равно продолжить?",
"addedPatchesDialogText": "Добавленные патчи с момента последнего патчинга приложения:\n\n${addedPatches}\n\n",
"requiredOptionDialogText": "Некоторые параметры патчей должны быть обязательно установлены." "requiredOptionDialogText": "Некоторые параметры патчей должны быть обязательно установлены."
}, },
"appSelectorCard": { "appSelectorCard": {
@@ -117,7 +118,7 @@
"requiredOptionNull": "Следующие опции должны быть установлены:\n\n${options}" "requiredOptionNull": "Следующие опции должны быть установлены:\n\n${options}"
}, },
"patchItem": { "patchItem": {
"unsupportedDialogText": "Выбор этого патча может привести к ошибкам во время патчинга.\n\nВерсия приложения: ${packageVersion}\nПоддерживаемые версии:\n${supportedVersions}", "unsupportedDialogText": "Выбор этого патча может привести к ошибкам во время патчинга.\n\nВерсия приложения: ${packageVersion}\nПоддерживаемые версии: ${supportedVersions}",
"unsupportedPatchVersion": "Патч не поддерживается этой версией приложения.", "unsupportedPatchVersion": "Патч не поддерживается этой версией приложения.",
"unsupportedRequiredOption": "Этот патч содержит обязательную опцию, не поддерживаемую этим приложением", "unsupportedRequiredOption": "Этот патч содержит обязательную опцию, не поддерживаемую этим приложением",
"patchesChangeWarningDialogText": "Рекомендуется использовать выборку патчей и параметры по умолчанию. Их изменение может привести к неожиданным проблемам.\n\n Вам необходимо включить «Разрешить изменение выборки патчей» в настройках, прежде чем изменять какие-либо выборки патчей.", "patchesChangeWarningDialogText": "Рекомендуется использовать выборку патчей и параметры по умолчанию. Их изменение может привести к неожиданным проблемам.\n\n Вам необходимо включить «Разрешить изменение выборки патчей» в настройках, прежде чем изменять какие-либо выборки патчей.",
@@ -283,6 +284,7 @@
"status_failure_timeout_description": "Установка заняла слишком много времени.\n\nХотите попробовать еще раз?", "status_failure_timeout_description": "Установка заняла слишком много времени.\n\nХотите попробовать еще раз?",
"status_failure_storage_description": "Установка не удалась из-за недостаточного объема памяти.\n\nОсвободите место и повторите попытку.", "status_failure_storage_description": "Установка не удалась из-за недостаточного объема памяти.\n\nОсвободите место и повторите попытку.",
"status_failure_invalid_description": "Установка не удалась из-за недействительности пропатченного приложения.\n\nУдалить приложение и попробовать еще раз?", "status_failure_invalid_description": "Установка не удалась из-за недействительности пропатченного приложения.\n\nУдалить приложение и попробовать еще раз?",
"status_failure_incompatible_description": "Приложение несовместимо с этим устройством.\n\nИспользуйте APK, поддерживаемый этим устройством, и повторите попытку.",
"status_failure_conflict_description": "Установка была прервана существующей установкой приложения.\n\nУдалить установленное приложение и попробовать еще раз?", "status_failure_conflict_description": "Установка была прервана существующей установкой приложения.\n\nУдалить установленное приложение и попробовать еще раз?",
"status_failure_blocked_description": "Установка была заблокирована ${packageName}.\n\nНастройте параметры безопасности и повторите попытку.", "status_failure_blocked_description": "Установка была заблокирована ${packageName}.\n\nНастройте параметры безопасности и повторите попытку.",
"install_failed_verification_failure_description": "Установка не удалась из-за проблемы с проверкой.\n\nИзмените настройки безопасности и повторите попытку.", "install_failed_verification_failure_description": "Установка не удалась из-за проблемы с проверкой.\n\nИзмените настройки безопасности и повторите попытку.",

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

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

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

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

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

@@ -12,8 +12,8 @@
"noShowAgain": "Ne prikazuj ponovo", "noShowAgain": "Ne prikazuj ponovo",
"add": "Dodaj", "add": "Dodaj",
"remove": "Ukloni", "remove": "Ukloni",
"showChangelogButton": "Vidi evidenciju promena", "showChangelogButton": "Prikaži evidenciju promena",
"showUpdateButton": "Vidi ažuriranje", "showUpdateButton": "Prikaži ažuriranje",
"navigationView": { "navigationView": {
"dashboardTab": "Kontrolna tabla", "dashboardTab": "Kontrolna tabla",
"patcherTab": "Pečer", "patcherTab": "Pečer",
@@ -30,13 +30,13 @@
"noInstallations": "Nema instaliranih pečovanih aplikacija", "noInstallations": "Nema instaliranih pečovanih aplikacija",
"installUpdate": "Nastaviti sa instalacijom ažuriranja?", "installUpdate": "Nastaviti sa instalacijom ažuriranja?",
"updateSheetTitle": "Ažuriranje ReVanced Managera", "updateSheetTitle": "Ažuriranje ReVanced Managera",
"updateDialogTitle": "Novo ažuriranje je dostupno", "updateDialogTitle": "Dostupno je novo ažuriranje",
"updatePatchesSheetTitle": "Ažuriranje ReVanced pečeva", "updatePatchesSheetTitle": "Ažuriranje ReVanced pečeva",
"updateChangelogTitle": "Evidencija promena", "updateChangelogTitle": "Evidencija promena",
"updateDialogText": "Novo ažuriranje je dostupno za ${file}.\n\nTrenutno instalirana verzija je ${version}.", "updateDialogText": "Dostupno je novo ažuriranje na ${file}.\n\nInstalirana verzija je ${version}.",
"downloadConsentDialogTitle": "Preuzeti neophodne fajlove?", "downloadConsentDialogTitle": "Preuzeti neophodne fajlove?",
"downloadConsentDialogText": "ReVanced Manager mora da preuzme neophodne fajlove da bi ispravno radio.", "downloadConsentDialogText": "ReVanced Manager mora da preuzme neophodne fajlove da bi ispravno radio.",
"downloadConsentDialogText2": "Ovo će vas povezati sa ${url}.", "downloadConsentDialogText2": "Bićete povezani sa ${url}.",
"downloadingMessage": "Preuzimanje ažuriranja…", "downloadingMessage": "Preuzimanje ažuriranja…",
"downloadedMessage": "Ažuriranje je preuzeto", "downloadedMessage": "Ažuriranje je preuzeto",
"installingMessage": "Instaliranje ažuriranja…", "installingMessage": "Instaliranje ažuriranja…",
@@ -55,15 +55,16 @@
"widgetTitle": "Pečer", "widgetTitle": "Pečer",
"patchButton": "Pečuj", "patchButton": "Pečuj",
"incompatibleArchWarningDialogText": "Pečovanje na ovoj arhitekturi još uvek nije podržano i možda neće uspeti. Ipak nastaviti?", "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?",
"requiredOptionDialogText": "Neke opcije moraju biti podešene." "addedPatchesDialogText": "Dodati pečevi od poslednjeg puta kada ste pečovali ovu aplikaciju:\n\n${addedPatches}",
"requiredOptionDialogText": "Neke opcije moraju biti izabrane."
}, },
"appSelectorCard": { "appSelectorCard": {
"widgetTitle": "Izaberi aplikaciju", "widgetTitle": "Izaberi aplikaciju",
"widgetTitleSelected": "Izabrana aplikacija", "widgetTitleSelected": "Izabrana aplikacija",
"widgetSubtitle": "Nije izabrana nijedna aplikacija", "widgetSubtitle": "Nije izabrana nijedna aplikacija",
"noAppsLabel": "Nijedna aplikacija nije pronađena", "noAppsLabel": "Nijedna aplikacija nije pronađena",
"anyVersion": "Sve verzije" "anyVersion": "sve verzije"
}, },
"patchSelectorCard": { "patchSelectorCard": {
"widgetTitle": "Izaberi pečeve", "widgetTitle": "Izaberi pečeve",
@@ -84,7 +85,7 @@
"downloadToast": "Preuzimanje trenutno nije dostupno", "downloadToast": "Preuzimanje trenutno nije dostupno",
"requireSuggestedAppVersionDialogText": "Verzija aplikacije koju ste izabrali nije preporučena, što može dovesti do neočekivanih problema. Izaberite preporučenu verziju.\n\nIzabrana verzija: v${selected}\nPreporučena verzija: v${suggested}\n\nDa biste ipak nastavili, onemogućite opciju „Zahtevaj preporučenu verziju aplikacije” u podešavanjima.", "requireSuggestedAppVersionDialogText": "Verzija aplikacije koju ste izabrali nije preporučena, što može dovesti do neočekivanih problema. Izaberite preporučenu verziju.\n\nIzabrana verzija: v${selected}\nPreporučena verzija: v${suggested}\n\nDa biste ipak nastavili, onemogućite opciju „Zahtevaj preporučenu verziju aplikacije” u podešavanjima.",
"featureNotAvailable": "Funkcija nije implementirana", "featureNotAvailable": "Funkcija nije implementirana",
"featureNotAvailableText": "Ova aplikacija je podeljeni APK i može se pečovati i pouzdano instalirati samo montiranjem sa root dozvolama. Međutim, možete da pečujete i instalirate potpuni APK tako što ćete ga izabrati iz memorije." "featureNotAvailableText": "Ova aplikacija je podeljeni APK i može se pouzdano pečovati i instalirati samo montiranjem sa root dozvolama. Međutim, možete da pečujete i instalirate potpuni APK tako što ćete ga izabrati iz memorije."
}, },
"patchesSelectorView": { "patchesSelectorView": {
"viewTitle": "Izaberite pečeve", "viewTitle": "Izaberite pečeve",
@@ -98,9 +99,9 @@
"noneChip": "Nijedan", "noneChip": "Nijedan",
"noneTooltip": "Poništi izbor svih pečeva", "noneTooltip": "Poništi izbor svih pečeva",
"loadPatchesSelection": "Učitaj izbor pečeva", "loadPatchesSelection": "Učitaj izbor pečeva",
"noSavedPatches": "Za izabranu aplikaciju nema sačuvanog izbora pečeva.\nPritisnite „Gotovo” da biste sačuvali trenutni izbor.", "noSavedPatches": "Za izabranu aplikaciju nema sačuvanog izbora pečeva.\nDodirnite „Gotovo” da biste sačuvali trenutni izbor.",
"noPatchesFound": "Za izabranu aplikaciju nisu pronađeni pečevi", "noPatchesFound": "Za izabranu aplikaciju nije pronađen nijedan peč",
"setRequiredOption": "Nekim pečevima je potrebno podešavanje opcija: \n\n${patches}\n\nPodesite ih pre nego što nastavite." "setRequiredOption": "Za neke pečeve je potreban izbor opcija:\n\n${patches}\n\nIzaberite ih pre nego što nastavite."
}, },
"patchOptionsView": { "patchOptionsView": {
"customValue": "Prilagođena vrednost", "customValue": "Prilagođena vrednost",
@@ -109,16 +110,16 @@
"viewTitle": "Opcije peča", "viewTitle": "Opcije peča",
"saveOptions": "Sačuvaj", "saveOptions": "Sačuvaj",
"unselectPatch": "Poništi izbor peča", "unselectPatch": "Poništi izbor peča",
"tooltip": "Više opcija za unos", "tooltip": "Više ulaznih parametara",
"selectFilePath": "Izaberi putanju fajla", "selectFilePath": "Izaberi putanju fajla",
"selectFolder": "Izaberi folder", "selectFolder": "Izaberi folder",
"requiredOption": "Podešavanje ove opcije je obavezno", "requiredOption": "Ova opcija je obavezna",
"unsupportedOption": "Ova opcija nije podržana", "unsupportedOption": "Ova opcija nije podržana",
"requiredOptionNull": "Potrebno je podesiti sledeće opcije:\n\n${options}" "requiredOptionNull": "Potrebno je izabrati sledeće opcije:\n\n${options}"
}, },
"patchItem": { "patchItem": {
"unsupportedDialogText": "Izborom ovog peča može doći do grešaka prilikom pečovanja.\n\nVerzija aplikacije: ${packageVersion}\nPodržane verzije:\n${supportedVersions}", "unsupportedDialogText": "Izborom ovog peča može doći do grešaka prilikom pečovanja.\n\nVerzija aplikacije: ${packageVersion}\nPodržane verzije:\n${supportedVersions}",
"unsupportedPatchVersion": "Peč nije primenljiv na ovu verziju aplikacije.", "unsupportedPatchVersion": "Peč se ne može primeniti na ovu verziju aplikacije.",
"unsupportedRequiredOption": "Ovaj peč sadrži obaveznu opciju koju ova aplikacija ne podržava", "unsupportedRequiredOption": "Ovaj peč sadrži obaveznu opciju koju ova aplikacija ne podržava",
"patchesChangeWarningDialogText": "Preporučuje se da koristite podrazumevani izbor i opcije pečeva. Njihova promena može dovesti do neočekivanih problema.\n\nMoraćete da uključite „Dozvoli promenu izbora pečeva” u podešavanjima pre nego što promenite bilo koji izbor pečeva.", "patchesChangeWarningDialogText": "Preporučuje se da koristite podrazumevani izbor i opcije pečeva. Njihova promena može dovesti do neočekivanih problema.\n\nMoraćete da uključite „Dozvoli promenu izbora pečeva” u podešavanjima pre nego što promenite bilo koji izbor pečeva.",
"patchesChangeWarningDialogButton": "Koristi podrazumevani izbor" "patchesChangeWarningDialogButton": "Koristi podrazumevani izbor"
@@ -128,7 +129,7 @@
"installTypeDescription": "Izaberite tip instalacije da biste nastavili.", "installTypeDescription": "Izaberite tip instalacije da biste nastavili.",
"installButton": "Instaliraj", "installButton": "Instaliraj",
"installRootType": "Privilegovana", "installRootType": "Privilegovana",
"installNonRootType": "Obična", "installNonRootType": "Uobičajena",
"warning": "Onemogućite automatska ažuriranja za pečovanu aplikaciju da biste izbegli neočekivane probleme.", "warning": "Onemogućite automatska ažuriranja za pečovanu aplikaciju da biste izbegli neočekivane probleme.",
"pressBackAgain": "Pritisnite ponovo da biste otkazali", "pressBackAgain": "Pritisnite ponovo da biste otkazali",
"openButton": "Otvori", "openButton": "Otvori",
@@ -148,25 +149,25 @@
"advancedSectionTitle": "Napredno", "advancedSectionTitle": "Napredno",
"exportSectionTitle": "Uvoz i izvoz", "exportSectionTitle": "Uvoz i izvoz",
"dataSectionTitle": "Izvori podataka", "dataSectionTitle": "Izvori podataka",
"themeModeLabel": "Tema aplikacije", "themeModeLabel": "Tema",
"systemThemeLabel": "Sistemska", "systemThemeLabel": "Sistemska",
"lightThemeLabel": "Svetla", "lightThemeLabel": "Svetla",
"darkThemeLabel": "Tamna", "darkThemeLabel": "Tamna",
"dynamicThemeLabel": "Material You", "dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Uživajte u temi koja se prilagođava vašem uređaju", "dynamicThemeHint": "Uživajte u temi koja se prilagođava vašem uređaju",
"languageLabel": "Jezik", "languageLabel": "Jezik",
"languageUpdated": "Jezik je ažuriran", "languageUpdated": "Jezik je promenjen",
"sourcesLabel": "Alternativni izvori", "sourcesLabel": "Alternativni izvori",
"sourcesLabelHint": "Konfigurišite alternativne izvore za ReVanced pečeve i ReVanced integracije", "sourcesLabelHint": "Podesite alternativne izvore za ReVanced pečeve i integracije",
"sourcesIntegrationsLabel": "Izvor integracija", "sourcesIntegrationsLabel": "Izvor integracija",
"useAlternativeSources": "Koristi alternativne izvore", "useAlternativeSources": "Koristi alternativne izvore",
"useAlternativeSourcesHint": "Korišćenje alternativnih izvora za ReVanced pečeve i ReVanced integracije umesto API-ja", "useAlternativeSourcesHint": "Koristite alternativne izvore za ReVanced pečeve i integracije umesto API-ja",
"sourcesResetDialogTitle": "Resetovanje", "sourcesResetDialogTitle": "Resetovanje",
"sourcesResetDialogText": "Želite li zaista da vratite izvore na podrazumevane vrednosti?", "sourcesResetDialogText": "Želite li zaista da vratite izvore na podrazumevane vrednosti?",
"apiURLResetDialogText": "Želite li zaista da vratite URL API-ja na podrazumevanu vrednost?", "apiURLResetDialogText": "Želite li zaista da vratite URL API-ja na podrazumevanu vrednost?",
"sourcesUpdateNote": "Napomena: Ovo će automatski preuzeti ReVanced pečeve i ReVanced integracije iz alternativnih izvora.\n\nOvo će vas povezati sa alternativnim izvorom.", "sourcesUpdateNote": "Napomena: Ovo će automatski preuzeti ReVanced pečeve i integracije iz alternativnih izvora.\n\nBićete povezani sa alternativnim izvorom.",
"apiURLLabel": "URL API-ja", "apiURLLabel": "URL API-ja",
"apiURLHint": "Konfigurišite URL API-ja za ReVanced Manager", "apiURLHint": "Podesite URL API-ja za ReVanced Manager",
"selectApiURL": "URL API-ja", "selectApiURL": "URL API-ja",
"orgPatchesLabel": "Organizacija za pečeve", "orgPatchesLabel": "Organizacija za pečeve",
"sourcesPatchesLabel": "Izvor pečeva", "sourcesPatchesLabel": "Izvor pečeva",
@@ -231,9 +232,9 @@
"importKeystoreHint": "Uvezite skladište ključeva koje se koristi za potpisivanje aplikacija", "importKeystoreHint": "Uvezite skladište ključeva koje se koristi za potpisivanje aplikacija",
"importedKeystore": "Skladište ključeva je uvezeno", "importedKeystore": "Skladište ključeva je uvezeno",
"selectKeystorePassword": "Lozinka skladišta ključeva", "selectKeystorePassword": "Lozinka skladišta ključeva",
"selectKeystorePasswordHint": "Izaberite lozinku skladišta ključeva koja se koristi za potpisivanje aplikacija", "selectKeystorePasswordHint": "Izaberite lozinku skladišta ključeva koje se koristi za potpisivanje aplikacija",
"jsonSelectorErrorMessage": "Nije moguće koristiti izabrani JSON fajl", "jsonSelectorErrorMessage": "Nije moguće koristiti izabrani JSON fajl",
"keystoreSelectorErrorMessage": "Nije moguće koristiti izabrani fajl sa skladištem ključeva" "keystoreSelectorErrorMessage": "Nije moguće koristiti izabrani fajl skladišta ključeva"
}, },
"appInfoView": { "appInfoView": {
"widgetTitle": "O aplikaciji", "widgetTitle": "O aplikaciji",
@@ -253,40 +254,41 @@
"packageNameLabel": "Naziv paketa", "packageNameLabel": "Naziv paketa",
"installTypeLabel": "Tip instalacije", "installTypeLabel": "Tip instalacije",
"mountTypeLabel": "Privilegovana", "mountTypeLabel": "Privilegovana",
"regularTypeLabel": "Obična", "regularTypeLabel": "Uobičajena",
"patchedDateLabel": "Datum pečovanja", "patchedDateLabel": "Datum pečovanja",
"appliedPatchesLabel": "Primenjeni pečevi", "appliedPatchesLabel": "Primenjeni pečevi",
"sizeLabel": "Veličina fajla", "sizeLabel": "Veličina fajla",
"patchedDateHint": "${date} u ${time}", "patchedDateHint": "${date} u ${time}",
"appliedPatchesHint": "Primenjeno pečeva: ${quantity}", "appliedPatchesHint": "Primenjenih pečeva: ${quantity}",
"updateNotImplemented": "Ova funkcija još uvek nije implementirana" "updateNotImplemented": "Ova funkcija još uvek nije implementirana"
}, },
"contributorsView": { "contributorsView": {
"widgetTitle": "Saradnici" "widgetTitle": "Saradnici"
}, },
"installErrorDialog": { "installErrorDialog": {
"mount_version_mismatch": "Verzija se ne poklapa", "mount_version_mismatch": "Neodgovarajuća verzija",
"mount_no_root": "Nema root pristupa", "mount_no_root": "Nema root pristupa",
"mount_missing_installation": "Instalacija nije pronađena", "mount_missing_installation": "Instalacija nije pronađena",
"status_failure_blocked": "Instalacija je blokirana", "status_failure_blocked": "Instalacija je blokirana",
"install_failed_verification_failure": "Verifikacija nije uspela", "install_failed_verification_failure": "Verifikacija nije uspela",
"status_failure_invalid": "Instalacija nije važeća", "status_failure_invalid": "Nevažeća instalacija",
"install_failed_version_downgrade": "Nije moguće sniziti verziju", "install_failed_version_downgrade": "Nije moguće sniziti verziju",
"status_failure_conflict": "Problem sa instalacijom", "status_failure_conflict": "Konflikt pri instalaciji",
"status_failure_storage": "Memorijski problem instalacije", "status_failure_storage": "Problem sa memorijom pri instalaciji",
"status_failure_incompatible": "Instalacija nije kompatibilna", "status_failure_incompatible": "Instalacija nije kompatibilna",
"status_failure_timeout": "Instalacija je istekla", "status_failure_timeout": "Vremensko ograničenje instalacije je isteklo",
"status_unknown": "Instalacija nije uspela", "status_unknown": "Instalacija nije uspela",
"mount_version_mismatch_description": "Instalacija nije uspela jer je instalirana aplikacija drugačija verzija od pečovane aplikacije.\n\nInstalirajte verziju aplikacije koju montirate i pokušajte ponovo.", "mount_version_mismatch_description": "Instalacija nije uspela jer se verzija instalirane aplikacije razlikuje od pečovane.\n\nInstalirajte verziju aplikacije koju montirate i pokušajte ponovo.",
"mount_no_root_description": "Instalacija nije uspela jer root pristup nije dat.\n\nDajte root pristup ReVanced Manageru i pokušajte ponovo.", "mount_no_root_description": "Instalacija nije uspela jer nije dodeljen root pristup.\n\nDodelite ga ReVanced Manageru i pokušajte ponovo.",
"mount_missing_installation_description": "Instalacija nije uspela jer nepečovana aplikacija nije instalirana na ovom uređaju da bi se montirala preko njega.\n\nInstalirajte nepečovanu aplikaciju pre montiranja i pokušajte ponovo.", "mount_missing_installation_description": "Instalacija nije uspela zbog odsustva nepečovane aplikacije.\n\nInstalirajte je pre montiranja i pokušajte ponovo.",
"status_failure_timeout_description": "Instalacija traje predugo.\n\nŽelite li da pokušate ponovo?", "status_failure_timeout_description": "Instalacija traje predugo.\n\nŽelite li da pokušate ponovo?",
"status_failure_storage_description": "Instalacija nije uspela zbog nedovoljno memorije.\n\nOslobodite malo memorije i pokušajte ponovo.", "status_failure_storage_description": "Instalacija nije uspela zbog nedostatka memorijskog prostora.\n\nOslobodite prostora i pokušajte ponovo.",
"status_failure_invalid_description": "Instalacija nije uspela jer pečovana aplikacija nije važeća.\n\nDeinstalirati aplikaciju i pokušati ponovo?", "status_failure_invalid_description": "Instalacija nije uspela jer je pečovana aplikacija nevažeća.\n\nDeinstalirati aplikaciju i pokušati ponovo?",
"status_failure_conflict_description": "Instalacija je sprečena postojećom instalacijom aplikacije.\n\nDeinstalirati instaliranu aplikaciju i pokušati ponovo?", "status_failure_incompatible_description": "Aplikacija nije kompatibilna sa ovim uređajem.\n\nKoristite APK koji podržava ovaj uređaj i pokušajte ponovo.\n\n",
"status_failure_blocked_description": "Instalacija je blokirana od: ${packageName}.\n\nPodesite bezbednosna podešavanja i pokušajte ponovo.", "status_failure_conflict_description": "Instalacija je sprečena usled postojeće instalacije.\n\nDeinstalirati instaliranu aplikaciju i pokušati ponovo?",
"status_failure_blocked_description": "Instalaciju je blokirala aplikacija ${packageName}.\n\nPodesite bezbednosna podešavanja i pokušajte ponovo.",
"install_failed_verification_failure_description": "Instalacija nije uspela zbog problema sa verifikacijom.\n\nPodesite bezbednosna podešavanja i pokušajte ponovo.", "install_failed_verification_failure_description": "Instalacija nije uspela zbog problema sa verifikacijom.\n\nPodesite bezbednosna podešavanja i pokušajte ponovo.",
"install_failed_version_downgrade_description": "Instalacija nije uspela jer je pečovana aplikacija niža verzija od instalirane aplikacije.\n\nDeinstalirati aplikaciju i pokušati ponovo?", "install_failed_version_downgrade_description": "Instalacija nije uspela jer je verzija pečovane aplikacije niža od instalirane.\n\nDeinstalirati aplikaciju i pokušati ponovo?",
"status_unknown_description": "Instalacija nije uspela iz nepoznatog razloga. Pokušajte ponovo." "status_unknown_description": "Instalacija nije uspela iz nepoznatog razloga. Pokušajte ponovo."
} }
} }

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

@@ -55,7 +55,8 @@
"widgetTitle": "Печер", "widgetTitle": "Печер",
"patchButton": "Печуј", "patchButton": "Печуј",
"incompatibleArchWarningDialogText": "Печовање на овој архитектури још увек није подржано и можда неће успети. Ипак наставити?", "incompatibleArchWarningDialogText": "Печовање на овој архитектури још увек није подржано и можда неће успети. Ипак наставити?",
"removedPatchesWarningDialogText": "Следећи печеви су уклоњени од последњег пута када сте их користили.\n\n${patches}\n\nИпак наставити?", "removedPatchesWarningDialogText": "Уклоњени печеви од последњег пута када сте печовали ову апликацију:\n\n${patches}\n\n${newPatches}Ипак наставити?",
"addedPatchesDialogText": "Додати печеви од последњег пута када сте печовали ову апликацију:\n\n${addedPatches}",
"requiredOptionDialogText": "Неке опције морају бити изабране." "requiredOptionDialogText": "Неке опције морају бити изабране."
}, },
"appSelectorCard": { "appSelectorCard": {
@@ -283,6 +284,7 @@
"status_failure_timeout_description": "Инсталација траје предуго.\n\nЖелите ли да покушате поново?", "status_failure_timeout_description": "Инсталација траје предуго.\n\nЖелите ли да покушате поново?",
"status_failure_storage_description": "Инсталација није успела због недостатка меморијског простора.\n\nОслободите простора и покушајте поново.", "status_failure_storage_description": "Инсталација није успела због недостатка меморијског простора.\n\nОслободите простора и покушајте поново.",
"status_failure_invalid_description": "Инсталација није успела јер је печована апликација неважећа.\n\nДеинсталирати апликацију и покушати поново?", "status_failure_invalid_description": "Инсталација није успела јер је печована апликација неважећа.\n\nДеинсталирати апликацију и покушати поново?",
"status_failure_incompatible_description": "Апликација није компатибилна са овим уређајем.\n\nКористите APK који подржава овај уређај и покушајте поново.",
"status_failure_conflict_description": "Инсталација је спречена услед постојеће инсталације.\n\nДеинсталирати инсталирану апликацију и покушати поново?", "status_failure_conflict_description": "Инсталација је спречена услед постојеће инсталације.\n\nДеинсталирати инсталирану апликацију и покушати поново?",
"status_failure_blocked_description": "Инсталацију је блокирала апликација ${packageName}.\n\nПодесите безбедносна подешавања и покушајте поново.", "status_failure_blocked_description": "Инсталацију је блокирала апликација ${packageName}.\n\nПодесите безбедносна подешавања и покушајте поново.",
"install_failed_verification_failure_description": "Инсталација није успела због проблема са верификацијом.\n\nПодесите безбедносна подешавања и покушајте поново.", "install_failed_verification_failure_description": "Инсталација није успела због проблема са верификацијом.\n\nПодесите безбедносна подешавања и покушајте поново.",

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

@@ -55,7 +55,8 @@
"widgetTitle": "Patcher", "widgetTitle": "Patcher",
"patchButton": "Patch", "patchButton": "Patch",
"incompatibleArchWarningDialogText": "Patchning av denna arkitektur stöds ännu inte och kan misslyckas. Fortsätt ändå?", "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." "requiredOptionDialogText": "Vissa patchalternativ måste anges."
}, },
"appSelectorCard": { "appSelectorCard": {

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

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

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

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

@@ -55,7 +55,8 @@
"widgetTitle": "Yamalayıcı", "widgetTitle": "Yamalayıcı",
"patchButton": "Yamala", "patchButton": "Yamala",
"incompatibleArchWarningDialogText": "Bu mimari cihazlarda yamalama henüz desteklenmiyor ve başarısız olabilir. Yine de devam edilsin mi?", "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." "requiredOptionDialogText": "Bazı yama seçeneklerinin ayarlanması gerekiyor."
}, },
"appSelectorCard": { "appSelectorCard": {

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

@@ -36,7 +36,7 @@
"updateDialogText": "Доступне нове оновлення для ${file}.\n\nВстановлена версія ${version}.", "updateDialogText": "Доступне нове оновлення для ${file}.\n\nВстановлена версія ${version}.",
"downloadConsentDialogTitle": "Завантажити необхідні файли?", "downloadConsentDialogTitle": "Завантажити необхідні файли?",
"downloadConsentDialogText": "ReVanced Manager повинен завантажити необхідні файли для належної роботи.", "downloadConsentDialogText": "ReVanced Manager повинен завантажити необхідні файли для належної роботи.",
"downloadConsentDialogText2": "Це приєднає вас до ${url}.", "downloadConsentDialogText2": "Це приєднає Вас до ${url}.",
"downloadingMessage": "Оновлення завантажується...", "downloadingMessage": "Оновлення завантажується...",
"downloadedMessage": "Оновлення завантажено", "downloadedMessage": "Оновлення завантажено",
"installingMessage": "Оновлення встановлюєтся...", "installingMessage": "Оновлення встановлюєтся...",
@@ -54,8 +54,9 @@
"patcherView": { "patcherView": {
"widgetTitle": "Патчер", "widgetTitle": "Патчер",
"patchButton": "Патчити", "patchButton": "Патчити",
"incompatibleArchWarningDialogText": "Патчінг на цій архітектурі ще не підтримується і може не спрацювати. Продовжити в будь-якому випадку?", "incompatibleArchWarningDialogText": "Патчінг на цій архітектурі ще не підтримується і може не спрацювати. Все одно продовжити?",
"removedPatchesWarningDialogText": "Наступні патчі було видалено з моменту останнього використання.\n\n${patches}\n\nВсе одно продовжити?", "removedPatchesWarningDialogText": "Видалені патчі з моменту останнього патчінгу цього застосунку:\n\n${patches}\n\n${newPatches}Все одно продовжити?",
"addedPatchesDialogText": "Додані патчі з моменту останнього патчінгу цього застосунку:\n\n${addedPatches}",
"requiredOptionDialogText": "Потрібно встановити деякі параметри патчу." "requiredOptionDialogText": "Потрібно встановити деякі параметри патчу."
}, },
"appSelectorCard": { "appSelectorCard": {
@@ -84,7 +85,7 @@
"downloadToast": "Функція завантаження поки що недоступна", "downloadToast": "Функція завантаження поки що недоступна",
"requireSuggestedAppVersionDialogText": "Вибрана Вами версія застосунку не відповідає запропонованій версії, це може призвести до неочікуваних проблем. Будь ласка, використовуйте запропоновану версію.\n\nВибрана версія: v${selected}\nЗапропонована версія: v${suggested}\n\nЩоб продовжити, вимкніть \"Вимагати запропоновану версію застосунку\" в налаштуваннях.", "requireSuggestedAppVersionDialogText": "Вибрана Вами версія застосунку не відповідає запропонованій версії, це може призвести до неочікуваних проблем. Будь ласка, використовуйте запропоновану версію.\n\nВибрана версія: v${selected}\nЗапропонована версія: v${suggested}\n\nЩоб продовжити, вимкніть \"Вимагати запропоновану версію застосунку\" в налаштуваннях.",
"featureNotAvailable": "Функція не реалізована", "featureNotAvailable": "Функція не реалізована",
"featureNotAvailableText": "Цей застосунок є розділеним файлом APK, і він може бути пропатчений та надійно встановлений лише за допомогою монтування з правами root. Однак ви можете пропатчити та встановити повний APK, вибравши його зі сховища." "featureNotAvailableText": "Цей застосунок є розділеним файлом APK, і він може бути пропатчений та надійно встановлений лише за допомогою монтування з правами root. Однак Ви можете пропатчити та встановити повний APK, вибравши його зі сховища."
}, },
"patchesSelectorView": { "patchesSelectorView": {
"viewTitle": "Вибір патчів", "viewTitle": "Вибір патчів",
@@ -120,7 +121,7 @@
"unsupportedDialogText": "Вибір цього патчу може призвести до помилок при встановленні патчу.\n\nВерсія застосунку: ${packageVersion}\nПідтримувані версії:\n${supportedVersions}", "unsupportedDialogText": "Вибір цього патчу може призвести до помилок при встановленні патчу.\n\nВерсія застосунку: ${packageVersion}\nПідтримувані версії:\n${supportedVersions}",
"unsupportedPatchVersion": "Патч не підтримується для цієї версії застосунку.", "unsupportedPatchVersion": "Патч не підтримується для цієї версії застосунку.",
"unsupportedRequiredOption": "Цей патч містить необхідний параметр, який не підтримується цим застосунком", "unsupportedRequiredOption": "Цей патч містить необхідний параметр, який не підтримується цим застосунком",
"patchesChangeWarningDialogText": "Рекомендується використовувати стандартний вибір патчів та параметрів. Їх зміна може призвести до неочікуваних проблем.\n\nПерш ніж змінювати вибір патчів, вам потрібно увімкнути параметр «Дозволити зміну вибору патчів» у налаштуваннях.", "patchesChangeWarningDialogText": "Рекомендується використовувати стандартний вибір патчів та параметрів. Їх зміна може призвести до неочікуваних проблем.\n\nПерш ніж змінювати вибір патчів, Вам потрібно увімкнути параметр \"Дозволити зміну вибору патчів\" у налаштуваннях.",
"patchesChangeWarningDialogButton": "Використовувати стандартний вибір" "patchesChangeWarningDialogButton": "Використовувати стандартний вибір"
}, },
"installerView": { "installerView": {
@@ -164,7 +165,7 @@
"sourcesResetDialogTitle": "Скинути", "sourcesResetDialogTitle": "Скинути",
"sourcesResetDialogText": "Ви дійсно бажаєте відновити стандартні значення джерел?", "sourcesResetDialogText": "Ви дійсно бажаєте відновити стандартні значення джерел?",
"apiURLResetDialogText": "Ви дійсно бажаєте відновити API URL до стандартного значення?", "apiURLResetDialogText": "Ви дійсно бажаєте відновити API URL до стандартного значення?",
"sourcesUpdateNote": "Примітка. Це автоматично завантажить ReVanced Patches і ReVanced Integrations з альтернативних джерел.\n\nЦе під'єднає вас до альтернативного джерела.", "sourcesUpdateNote": "Примітка. Це автоматично завантажить ReVanced Patches і ReVanced Integrations з альтернативних джерел.\n\nЦе під'єднає Вас до альтернативного джерела.",
"apiURLLabel": "URL-адреса API", "apiURLLabel": "URL-адреса API",
"apiURLHint": "Налаштувати API URL для ReVanced Manager", "apiURLHint": "Налаштувати API URL для ReVanced Manager",
"selectApiURL": "URL-адреса API", "selectApiURL": "URL-адреса API",
@@ -177,7 +178,7 @@
"logsHint": "Поділитися журналами налагодження ReVanced Manager", "logsHint": "Поділитися журналами налагодження ReVanced Manager",
"enablePatchesSelectionLabel": "Дозволити зміну вибору патчів", "enablePatchesSelectionLabel": "Дозволити зміну вибору патчів",
"enablePatchesSelectionHint": "Не перешкоджати вибору або скасуванню вибору патчів", "enablePatchesSelectionHint": "Не перешкоджати вибору або скасуванню вибору патчів",
"enablePatchesSelectionWarningText": "Зміна вибору патчів може спричинити несподівані проблеми.\n\nУвімкнути все одно?", "enablePatchesSelectionWarningText": "Зміна вибору патчів може спричинити несподівані проблеми.\n\nВсе одно увімкнути?",
"disablePatchesSelectionWarningText": "Ви збираєтеся вимкнути зміну вибору патчів.\nБуде відновлено стандартний вибір патчів.\n\nВсе одно вимкнути?", "disablePatchesSelectionWarningText": "Ви збираєтеся вимкнути зміну вибору патчів.\nБуде відновлено стандартний вибір патчів.\n\nВсе одно вимкнути?",
"autoUpdatePatchesLabel": "Автоматичне оновлення патчів", "autoUpdatePatchesLabel": "Автоматичне оновлення патчів",
"autoUpdatePatchesHint": "Автоматично оновлювати патчі до останньої версії", "autoUpdatePatchesHint": "Автоматично оновлювати патчі до останньої версії",
@@ -191,7 +192,7 @@
"versionCompatibilityCheckHint": "Запобігати вибору патчів, які несумісні з вибраною версією застосунку", "versionCompatibilityCheckHint": "Запобігати вибору патчів, які несумісні з вибраною версією застосунку",
"requireSuggestedAppVersionLabel": "Вимагати запропоновану версію застосунку", "requireSuggestedAppVersionLabel": "Вимагати запропоновану версію застосунку",
"requireSuggestedAppVersionHint": "Запобігати вибору застосунку з не рекомендованою версією", "requireSuggestedAppVersionHint": "Запобігати вибору застосунку з не рекомендованою версією",
"requireSuggestedAppVersionDialogText": "Вибір застосунку не запропонованої версії може спричинити непередбачувані проблеми.\n\nВсе одно бажаєте продовжити?", "requireSuggestedAppVersionDialogText": "Вибір застосунку не запропонованої версії може спричинити неочікувані проблеми.\n\nВсе одно бажаєте продовжити?",
"aboutLabel": "Про застосунок", "aboutLabel": "Про застосунок",
"snackbarMessage": "Скопійовано в буфер обміну", "snackbarMessage": "Скопійовано в буфер обміну",
"restartAppForChanges": "Перезапустіть застосунок, щоб застосувати зміни", "restartAppForChanges": "Перезапустіть застосунок, щоб застосувати зміни",

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

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

@@ -55,7 +55,6 @@
"widgetTitle": "Trình vá", "widgetTitle": "Trình vá",
"patchButton": "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?", "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." "requiredOptionDialogText": "Một số tùy chọn bản vá cần được thiết đặt."
}, },
"appSelectorCard": { "appSelectorCard": {
@@ -283,6 +282,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_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_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_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_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.", "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.", "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.",

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

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

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

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